Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases

Reply
 
Thread Tools
V3Arcade - Game Rating addon Details »»
V3Arcade - Game Rating addon
Version: 1.00, by GenSec GenSec is offline
Developer Last Online: Jun 2010 Show Printable Version Email this Page

Version: 3.0.3 Rating:
Released: 11-06-2004 Last Update: Never Installs: 24
 
No support by the author.

These hack adds rating system for your arcade games.

Files to edit: 1
Templates to edit: 2
Files to add: 1

Add 1 new db table + 2 changes for games table

Very easy to install...
################################################## ##############################################
Before the installation!
Please make a Backup of your database and the changed files!
################################################## ##############################################

1. ADD this to MySQL DB using phpmyadmin or admincp :
Code:
ALTER TABLE `games` ADD `votetotal` smallint(5)  UNSIGNED DEFAULT '0' NOT NULL ;

ALTER TABLE `games` ADD `votenum` smallint(5)  UNSIGNED DEFAULT '0' NOT NULL ;

CREATE TABLE `game_rate` (
  `gamerateid` int(11) NOT NULL auto_increment,
  `gameid` int(11) NOT NULL default '0',
  `userid` int(10) NOT NULL default '0',
  `vote` smallint(5) default NULL,
  `ipaddress` char(15) NOT NULL default '',
  PRIMARY KEY  (`gamerateid`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;
2. Upload gamerate.php to your forumroot directory.
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
There are somу redirects phrases like "redirect_threadrate_add", "error_threadratevoted" etc.
You саn change them to similar with the word "game" instead of "thread".
I didn't. And it works fine on my board.

3. Edit arcade.php
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Find:
Code:
$phrasegroups = array();
Change to:
Code:
$phrasegroups = array('arcade','showthread');
* in case you decide to use the above "thread" phrases


Find:
Code:
	// While loop constructs the $gamebits variable, with games where scores have been recorded
	while ($game = $DB_site->fetch_array($result_topscore2)) {

Add right after:
Code:
      // display ratings if enabled
    	if ($game['votenum'] > 0)
	    {
		$game['voteavg'] = vb_number_format($game['votetotal'] / $game['votenum'], 2);
		$game['rating'] = round($game['voteavg']);
		} else { 
        $game['rating']=0;
	    }
        //
Find:
Code:
$thisGame = $DB_site->query_first("SELECT * FROM " . TABLE_PREFIX . "games WHERE gameid=$gameid");


Add right after:
Code:
// display ratings if enabled
$show['rating'] = false;

	if ($thisGame['votenum'] > 0)
	{
		$thisGame['voteavg'] = vb_number_format($thisGame['votetotal'] / $thisGame['votenum'], 2);
		$game['rating'] = round($thisGame['voteavg']);
			$show['rating'] = true;
	}

	 if ($rating = $DB_site->query_first("
	 	SELECT vote, gamerateid FROM " . TABLE_PREFIX . "game_rate
		WHERE userid = $bbuserinfo[userid] AND gameid = $gameid
	")) {

    		if ($$rating['vote'])
 	          {
				$voteselected["$rating[vote]"] = HTML_SELECTED;
				$votechecked["$rating[vote]"] = HTML_CHECKED;
			  }	else {
				$voteselected[0] = HTML_SELECTED;
				$votechecked[0] = HTML_CHECKED;
			  }
     }
//
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Save arcade.php

4. Edit arcade templates

to place the voting form in play control panel

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



In arcade_play template find:
Code:
<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%"> 
  <tr> 
    <td class="thead" colspan="2"><span class="smallfont">$thisGame[title]</span></td> 
  </tr>


Add right after:
Code:
<tr>
<td class="alt2" align="center" id="gamerating" nowrap="nowrap"><span class="smallfont">
<a href="#goto_gamerating">
<if condition="$show['rating']">$vbphrase[rating]</a>: <img class="inlineimg" src="$stylevar[imgdir_rating]/rating_$game[rating].gif" alt="<phrase 1="$thisGame[votenum]" 2="$thisGame[voteavg]">$vbphrase[thread_rating_x_votes_y_average]</phrase>" border="0" />
                  <else />$vbphrase[rate_thread]</a></if>
<if condition="$show['popups']"><script type="text/javascript"> vbmenu_register("gamerating"); </script></if>
</span></td></tr>

Find:
Code:
 <tr><td class="alt1" align="center"><img src="$stylevar[imgdir_arcade]/backtip.gif" border=0></td>
</table>
</td>
</tr></table>

Add right after:

Code:
<div class="vbmenu_popup" id="gamerating_menu" style="display:none">
<form action="gamerate.php" method="post">
	<table cellpadding="4" cellspacing="1" border="0">
	<tr>
		<td class="thead">Зацени игру<a name="goto_gamerating"></a></td>
	</tr>
	<tr>
		<td class="vbmenu_option" title="nohilite">
		<div><img class="inlineimg" src="$stylevar[imgdir_rating]/rating_5.gif" alt="$vbphrase[excellent]" /><label for="vote5"><input type="radio" name="vote" id="vote5" value="5" $votechecked[5] />$vbphrase[excellent]</label></div>
		<div><img class="inlineimg" src="$stylevar[imgdir_rating]/rating_4.gif" alt="$vbphrase[good]" /><label for="vote4"><input type="radio" name="vote" id="vote4" value="4" $votechecked[4] />$vbphrase[good]</label></div>
		<div><img class="inlineimg" src="$stylevar[imgdir_rating]/rating_3.gif" alt="$vbphrase[average]" /><label for="vote3"><input type="radio" name="vote" id="vote3" value="3" $votechecked[3] />$vbphrase[average]</label></div>
		<div><img class="inlineimg" src="$stylevar[imgdir_rating]/rating_2.gif" alt="$vbphrase[bad]" /><label for="vote2"><input type="radio" name="vote" id="vote2" value="2" $votechecked[2] />$vbphrase[bad]</label></div>
		<div><img class="inlineimg" src="$stylevar[imgdir_rating]/rating_1.gif" alt="$vbphrase[terrible]" /><label for="vote1"><input type="radio" name="vote" id="vote1" value="1" $votechecked[1] />$vbphrase[terrible]</label></div>
		</td>
	</tr>
	<tr>
		<td class="vbmenu_option" title="nohilite" align="center">
	<input type="hidden" name="s" value="$session[dbsessionhash]" />
	<input type="hidden" name="gameid" value="$gameid" />
	<input type="submit" class="button" value="$vbphrase[vote_now]" />
		</td>
	</tr>
	</table>
</form>
</div>
Save arcade_play


5. At last find the right place to show the game rating

I placed in arcade_main_games_bit temlate :
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


Code:
<if condition="$game['rating'] > 0"><img class="inlineimg" src="$stylevar[imgdir_rating]/rating_$game[rating].gif" alt="<phrase 1="$game[votenum]" 2="$game[voteavg]">$vbphrase[thread_rating_x_votes_y_average]</phrase>" border="0" />
</if>
#############################
Thats all!

I hope it works :classic:

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #32  
Old 11-14-2004, 04:23 AM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by GenSec
No problem
Now link to the page http://www.yourdomain/forum/arcade.php?show=best and you have list of games wiht rating >3
OK, cool. I got it by using that link because of the category mode.

PHP Code:
arcade.php?do=category&categoryid=1&show=best 
Thank you!

and I changed pagenav to

PHP Code:
if ($_GET['show'] == "best")
    {
        
define('BESTRATED''true');
    
$pagenav construct_page_nav($g,"arcade.php?$session[sessionurl]do=category&categoryid=$categoryid&show=best$searchstring");
    } else {
    
$pagenav construct_page_nav($g"arcade.php?$session[sessionurl]do=category&categoryid=$categoryid$searchstring");
    } 
and made the ORDER BY ASC so higher rated display first
Reply With Quote
  #33  
Old 11-14-2004, 07:38 AM
GenSec GenSec is offline
 
Join Date: Oct 2001
Posts: 156
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by NightWalk8r
I keep getting this error
The best way to open phpmyadmin and check the current state of games and game_rate tables. Then to edit them corr.
Reply With Quote
  #34  
Old 11-14-2004, 11:00 AM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I also added:

PHP Code:
    $navbits = array("arcade.php?$session[sessionurl]=> "Arcade");
    
$navbits[""] = "Top Rated Games"
before the } else {

Reply With Quote
  #35  
Old 11-14-2004, 11:24 AM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Based on your code, here is my "Newest Additions"

PHP Code:
if ($_GET['latest'] == "true")
{
                
define('LATEST''true');
 
// Selects latest
$result_allgames $DB_site->query("
SELECT * FROM " 
TABLE_PREFIX "games  AS l 
ORDER BY gameid DESC LIMIT 5
"
);
    
$navbits = array("arcade.php?$session[sessionurl]=> "Arcade");
    
$navbits[""] = "Last 5 Games Added";

} else {

// and of course the closing



// before

$gamecount $DB_site->num_rows($result_allgames); 
Reply With Quote
  #36  
Old 11-14-2004, 01:18 PM
Intex Intex is offline
 
Join Date: Apr 2002
Posts: 576
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by GenSec
Most popular is another hack
GenSec - I've installed this most popular hack and it seems to work, but it doesn't seem to show the rating in the correct numerical order if there is a decimal point in the equation. For example if one user rates a game '1' and another rates it '4', the average is '2.5'.

Any games that have a decimal place appear at the top of the list. Do you know a workaround? Also, would it be difficult to have the titles of the games appear alphabetically from A>Z. Currently they appear as highest ranked in DESC order which shows the game titles from Z>A.
Reply With Quote
  #37  
Old 11-14-2004, 01:50 PM
NightWalk8r NightWalk8r is offline
 
Join Date: Jul 2002
Posts: 56
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by GenSec
The best way to open phpmyadmin and check the current state of games and game_rest tables. Then to edit them corr.
What do i need to check for in games and game_rest??
Reply With Quote
  #38  
Old 11-14-2004, 10:36 PM
GenSec GenSec is offline
 
Join Date: Oct 2001
Posts: 156
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by NightWalk8r
What do i need to check for in games and game_rest??
Sorry I mean vb3_game_rate table. Did you create it?

Also you should have fields votetotal and votenum at the end of "vb3_games"
table.
Reply With Quote
  #39  
Old 11-14-2004, 10:50 PM
GenSec GenSec is offline
 
Join Date: Oct 2001
Posts: 156
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Intex
GenSec - I've installed this most popular hack and it seems to work, but it doesn't seem to show the rating in the correct numerical order if there is a decimal point in the equation. For example if one user rates a game '1' and another rates it '4', the average is '2.5'.

Any games that have a decimal place appear at the top of the list. Do you know a workaround? Also, would it be difficult to have the titles of the games appear alphabetically from A>Z. Currently they appear as highest ranked in DESC order which shows the game titles from Z>A.
Code is "WHERE g.votetotal>3 ORDER BY votetotal DESC" thus show games with sum of votes >3 in sum of votes order from highest.

Your ex. has votetotal=5. You саn change it to alphabetically from A>Z
just using instead of above "ORDER BY title".
Reply With Quote
  #40  
Old 11-14-2004, 11:17 PM
GenSec GenSec is offline
 
Join Date: Oct 2001
Posts: 156
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Lionel
Based on your code, here is my "Newest Additions"
[high]* GenSec clicks install [/high]
Reply With Quote
  #41  
Old 11-15-2004, 07:52 AM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I found some code by Natch over there and adjusted a bit.

PHP Code:
if ($_GET['popular'] == "true")
{
                
define('POPULAR''true');
// Select most played
    
$result_allgames $DB_site->query(
                    SELECT  *, " 
TABLE_PREFIX "games.gameid AS gameid, " TABLE_PREFIX "games.title AS title, " 

TABLE_PREFIX "games.gamesettings as gamesettings, COUNT(" TABLE_PREFIX "gamesessions.gamename) AS popularity 
                    FROM " 
TABLE_PREFIX "games 
                    INNER JOIN " 
TABLE_PREFIX "gamesessions 
                    ON " 
TABLE_PREFIX "games.shortname = " TABLE_PREFIX "gamesessions.gamename 
                    WHERE gamesessions.valid = 1
                    GROUP BY title 
                    ORDER BY popularity DESC 
                    LIMIT 10
                    "
); 
    
$navbits = array("arcade.php?$session[sessionurl]=> "Arcade");
    
$navbits[""] = "Most Popular Games";


} else {

//and of course not to for get the closing
}
//before 
$gamecount $DB_site->num_rows($result_allgames); 
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 02:45 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05444 seconds
  • Memory Usage 2,354KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (12)bbcode_code
  • (5)bbcode_php
  • (7)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete