The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Arcade Anti-Cheater Mod Details »» | |||||||||||||||||||||||||
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
|
Comments |
#2
|
|||
|
|||
Why's this in the V2 section?
|
#3
|
|||
|
|||
good point, i must have misread the forum i clicked on
can someone move this? |
#4
|
|||
|
|||
No problem, its easily done aint it?
|
#5
|
||||
|
||||
I'll move it for you
|
#6
|
||||
|
||||
*installed*
THANKS ! |
#7
|
||||
|
||||
Thanks for sharing your work - this is an addon though so I've moved it into that section
|
#8
|
||||
|
||||
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..
|
#9
|
||||
|
||||
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 |
#10
|
|||
|
|||
Quote:
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|