Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Arcade Anti-Cheater Mod Details »»
Arcade Anti-Cheater Mod
Version: 1.00, by Ron1n Ron1n is offline
Developer Last Online: Jun 2008 Show Printable Version Email this Page

Version: 3.0.3 Rating:
Released: 07-15-2004 Last Update: Never Installs: 26
 
No support by the author.

Board: 3.x

Purpose:
If your board is a scripting/coding board you probably have cheaters using your arcade. They are people that use memoryhacks/colorbots, and believe me, people do cheat. This hack is to clean up scores. Before, if you wanted to remove a score, you had to create your own mysql query and even though the score was removed the highscore still showed up as belonging to them. This process has been fixed by this hack.

Functionaliy:
- Remove all scores from a user
- Remove a users highscores
- Fix the titleholders/highscores

Screenshot: http://www.elitecoders.org/ftp/ronin...rcadeadmin.jpg
Code: Attatched
No Edits Required PHP script: Attatched

Instructions: Perform the following edits, OR upload the attatched PHP file in place of your own arcadeadmin.php.

#-------------------------------------------------------------------------------#
Find In arcadeadmin.php
#-------------------------------------------------------------------------------#
Code:
	print_form_header('arcadeadmin', 'pruneinvalid');
	print_table_header("Remove All Invalid Scores");
	print_description_row("This action will remove all invalid score records from the database. Invalid records are created during automated score pruning, or if a session is terminated prematurely.");
	print_submit_row("Remove All Invalid Scores", 0);
#-------------------------------------------------------------------------------#
Add Below
#-------------------------------------------------------------------------------#
Code:
// ARCADE HACK BY RONIN	
	print_form_header('arcadeadmin', 'prunebyuser');
	print_table_header("Remove User Scores");
	print_description_row("This action will remove a users scores from the database.");
	print_input_row("Enter the userid here", 'userid');
	print_yes_no_row("Remove highscores only? (as opposed to all scores)", 'high', 0);
	print_submit_row("Remove User Scores", 0);
	
	print_form_header('arcadeadmin', 'fixhighscores');
	print_table_header("Fix High Scores");
	print_description_row("This action will update the highscore listings and awards with the actual highscore information for each game");
	print_submit_row("Update Highscores", 0);
// ARCADE HACK BY RONIN
#-------------------------------------------------------------------------------#
Find in arcadeadmin.php
#-------------------------------------------------------------------------------#
Code:
// ###################### INVALID RECORD PRUNING #######################
if ($_POST['do'] == "prunenoscore") {
	if ($_POST['confirmation']=="YES") {
		$DB_site->query("DELETE FROM " . TABLE_PREFIX . "gamesessions WHERE sessiontype=1");
	}

	define('CP_REDIRECT', 'arcadeadmin.php?do=scores');
	print_stop_message('arcade_cp_settingssaved');
}
#-------------------------------------------------------------------------------#
Add Below
#-------------------------------------------------------------------------------#
Code:
// ###################### PRUNE BY USER #######################
if ($_POST['do'] == "prunebyuser") {
	$userid=$_POST['userid'];
	$high=$_POST['high'];
	
 if ($high) {
	$query = "	SELECT gamename, MAX(score) AS score
				FROM gamesessions
				WHERE valid=1
				GROUP BY gamename	";
	$myquery = $DB_site->query($query);
	while($row = $DB_site->fetch_array($myquery)) {
		$delete = "DELETE FROM gamesessions WHERE gamename = '".$row['gamename']."' && userid ='".$userid."' && score = ".$row['score'];
		$DB_site->query($delete);
	}
	define('CP_REDIRECT', 'arcadeadmin.php?do=scores');
	print_stop_message('arcade_cp_settingssaved');
 } else {
	$DB_site->query("DELETE FROM " . TABLE_PREFIX . "gamesessions WHERE userid=".$userid);
	define('CP_REDIRECT', 'arcadeadmin.php?do=scores');
	print_stop_message('arcade_cp_settingssaved');
 }
}
// ###################### FIX HIGHSCORES #######################
if ($_POST['do'] == "fixhighscores") {
	$query = "	SELECT gamename, MAX(score) AS score
				FROM gamesessions
				WHERE valid=1
				GROUP BY gamename	";
	$myquery = $DB_site->query($query);
	while($row = $DB_site->fetch_array($myquery)) {
		$user = 	"SELECT userid
					FROM gamesessions
					WHERE valid=1 AND score='".$row['score']."' AND gamename='".$row['gamename']."'";
		$userquery = $DB_site->query($user);
		while($useid = $DB_site->fetch_array($userquery)) {
			$update = 	"UPDATE games
					SET `highscore`='".$row['score']."', `highscorerid`='".$useid['userid']."'
					WHERE shortname='".$row['gamename']."'";
			$DB_site->query($update);
		}
	}
	define('CP_REDIRECT', 'arcadeadmin.php?do=scores');
	print_stop_message('arcade_cp_settingssaved');
}

Show Your Support

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

Comments
  #2  
Old 07-16-2004, 10:03 PM
Musicpill Musicpill is offline
 
Join Date: Jun 2004
Location: Eng-er-land
Posts: 26
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Why's this in the V2 section?
Reply With Quote
  #3  
Old 07-16-2004, 10:24 PM
Ron1n Ron1n is offline
 
Join Date: Jun 2004
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

good point, i must have misread the forum i clicked on

can someone move this?
Reply With Quote
  #4  
Old 07-16-2004, 10:29 PM
Musicpill Musicpill is offline
 
Join Date: Jun 2004
Location: Eng-er-land
Posts: 26
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

No problem, its easily done aint it?
Reply With Quote
  #5  
Old 07-16-2004, 10:31 PM
assassingod's Avatar
assassingod assassingod is offline
 
Join Date: Jul 2002
Posts: 3,337
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'll move it for you
Reply With Quote
  #6  
Old 07-17-2004, 01:08 PM
MrZeropage's Avatar
MrZeropage MrZeropage is offline
 
Join Date: Nov 2003
Location: Munich, Germany
Posts: 3,012
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

*installed*

THANKS !
Reply With Quote
  #7  
Old 07-17-2004, 01:30 PM
Dean C's Avatar
Dean C Dean C is offline
 
Join Date: Jan 2002
Location: England
Posts: 9,071
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for sharing your work - this is an addon though so I've moved it into that section
Reply With Quote
  #8  
Old 07-17-2004, 02:38 PM
Oblivion Knight's Avatar
Oblivion Knight Oblivion Knight is offline
 
Join Date: May 2002
Location: Sheffield, UK
Posts: 1,757
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If a user has a highscore and becomes the champion of a game, does this also clear the news associated with that user being the new champion? If not, it would be a good addition..
Reply With Quote
  #9  
Old 07-17-2004, 03:11 PM
Littlebit's Avatar
Littlebit Littlebit is offline
 
Join Date: Nov 2001
Posts: 313
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hey, thanks for this add
I did run into an error with the /admincp/arcadeadmin.php?do=scores
When I used the option with an admin username and with a registered user, it gave this error: Invalid SQL: DELETE FROM gamesessions WHERE userid=fred
mysql error: Unknown column 'fred' in 'where clause'

with 3.0.3
Reply With Quote
  #10  
Old 07-17-2004, 04:00 PM
Ron1n Ron1n is offline
 
Join Date: Jun 2004
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Littlebit
Hey, thanks for this add
I did run into an error with the /admincp/arcadeadmin.php?do=scores
When I used the option with an admin username and with a registered user, it gave this error: Invalid SQL: DELETE FROM gamesessions WHERE userid=fred
mysql error: Unknown column 'fred' in 'where clause'

with 3.0.3
I am willing to bet $500 that "fred" is not a valid userid. When you visited fred's arcade profile it should have had all the links and then u=# at the end. The number at the end of the URL is their userID. You can also view the userid from the admin pannel via a search.
Reply With Quote
Reply


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 07:02 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06209 seconds
  • Memory Usage 2,300KB
  • Queries Executed 23 (?)
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
  • (4)bbcode_code
  • (1)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
  • (2)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (9)postbit
  • (10)postbit_onlinestatus
  • (10)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