Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

GunBound WC Ranking Script

ex visor
Loyal Member
Joined
May 17, 2007
Messages
2,741
Reaction score
937
Since I no longer own a WC server anymore, or a server in general I guess I'll release my ranking script for GunBound WC. This is season 1 ranks, not season 2

The following script is based off of the official ranking scale. All of the under 6,899 GP will be based off of static GP requirements.

With this script you will notice that if you have more than 6,899 GP your rank will jump to a dragon, and then once the dragon spots are filled (1-21), your rank will start at Battle Axe+ and work its way up.

To make it start at Diamond Wand and work its way down, just change the script around, it's not that hard, lols.

I suggest having the gamesnapshot table there, as it deletes the gamesnapshot data, calculates the ranks, and then enters the data back into the gamesnapshot table.

If you're using a website, also suggest viewing the ranks from the gamesnapshot table, and not directly from the "GAME" table. But do what you want! ^^

This version updates the ranks to where Country Ranks=TotalRanks
PHP:
<?php
/*Ranking Script released 11/6/2010 - Made by KiRo.-Aaron*/

/*EDIT THE FOLLOWING DATABASE CREDENTIALS*/

//Connecting to database
  $host = '127.0.0.1'; //Usually 127.0.0.1, I suggest not changing it
  $user = 'x'; //User
  $pass = 'x'; //Pass
  $db = 'gunbound'; //Database name, normally "GUNBOUND"
 
mysql_connect("$host","$user","$pass") or die(mysql_error());
mysql_select_db("$db") or die(mysql_error());

$lp = 1;
/*DO NOT EDIT ANYTHING BELOW UNLESS YOU KNOW WHAT YOU ARE DOING*/

//New Ranking Script
if($lp != 1){
echo "<u><b>Updating Rank by Number</u></b><p>";
$rank = 0;
$findusr1 = mysql_query("SELECT Id,TotalScore,TotalRank FROM Game WHERE NoRankUpdate=0 ORDER BY TotalScore DESC");

while($row = mysql_fetch_array($findusr1, MYSQL_ASSOC)){
$rank++;
$sql = "UPDATE Game SET TotalRank='$rank' WHERE Id='".$row["Id"]."'";
mysql_query($sql) or die("Rank number update failed.");
echo " - The user <b>'".$row["Id"]."'</b> is rank <b>".$row["TotalRank"]."</b><br>";

}

/*Total Ranking has been tested and works */
/////////////////////////////////////////////////////////////////////////////////////////

echo "<u><b>Updating Rank by Grade - Lower</u></b><p>";
$Chick = mysql_query("UPDATE game SET TotalGrade=19 WHERE TotalScore < 6899 AND NoRankUpdate=0") or die(mysql_error());
$Wdn = mysql_query("UPDATE game SET TotalGrade=18 WHERE TotalScore >=  1100 and TotalScore <= 1199 AND NoRankUpdate=0") or  die(mysql_error());
$DbleWdn = mysql_query("UPDATE game SET TotalGrade=17 WHERE  TotalScore  >= 1200 and TotalScore <= 1499 AND NoRankUpdate=0") or  die(mysql_error());
$Stne = mysql_query("UPDATE game SET TotalGrade=16 WHERE  TotalScore  >= 1500 and TotalScore <= 1799 AND NoRankUpdate=0") or  die(mysql_error());;
$DbleStone = mysql_query("UPDATE game SET TotalGrade=15 WHERE   TotalScore >= 1800 and TotalScore <= 2299 AND NoRankUpdate=0") or  die(mysql_error());
$Axe = mysql_query("UPDATE game SET TotalGrade=14 WHERE  TotalScore  >= 2300 and TotalScore <= 2799 AND NoRankUpdate=0") or  die(mysql_error());
$DbleAxe = mysql_query("UPDATE game SET TotalGrade=13 WHERE TotalScore  >= 2800 and TotalScore <= 3499 AND NoRankUpdate=0") or  die(mysql_error());
$SilAxe = mysql_query("UPDATE game SET TotalGrade=12 WHERE TotalScore  >= 3500 and TotalScore <= 4199 AND NoRankUpdate=0") or  die(mysql_error());
$DbleSAxe = mysql_query("UPDATE game SET TotalGrade=11 WHERE TotalScore  >= 4200 and TotalScore <= 5099 AND NoRankUpdate=0") or  die(mysql_error());
$GoldAxe =  mysql_query("UPDATE game SET TotalGrade=10 WHERE TotalScore  >= 5100 and TotalScore <= 5999 AND NoRankUpdate=0") or  die(mysql_error());
$DbleGoldenAxe = mysql_query("UPDATE game SET TotalGrade=9 WHERE  TotalScore >= 6000 and TotalScore <= 6899 AND NoRankUpdate=0") or  die(mysql_error());

/*Lower Ranks has been tested and works */
/////////////////////////////////////////////////////////////////////////////////////////

echo "Updating higher ranks";
$GettingPercentages= mysql_query("SELECT * FROM `game` WHERE  `TotalRank`>21 AND `TotalScore`>6899 AND NoRankUpdate=0") or  die(mysql_error());
$all = mysql_num_rows($GettingPercentages);
echo $all;
//Getting Battle axes
//100% Of all are battle axe, so update them accordingly.
$BattleAxe = mysql_query("UPDATE game SET TotalGrade=8 WHERE TotalScore  > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT $all") or  die(mysql_error());;

//Battle Axe Plus
$calc_bap = $all * 0.7; //70%
$rounded_calc_bap = ceil($calc_bap);
$BattleAxePlus = mysql_query("UPDATE game SET TotalGrade=7 WHERE  TotalScore > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_bap") or die(mysql_error());;

//SilverBattle Axe
$calc_sba = $all * 0.5;//50%
$rounded_calc_sba = ceil($calc_sba);
$SilverBattleAxe = mysql_query("UPDATE game SET TotalGrade=6 WHERE  TotalScore > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_sba") or die(mysql_error());;


//SilverBattle Axe +
$calc_sbap = $all * 0.3;//30%
$rounded_calc_sbap = ceil($calc_sbap);
$SilverBattleAxePlus = mysql_query("UPDATE game SET TotalGrade=5 WHERE  TotalScore > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_sbap") or die(mysql_error());;

//Golden Battle Axe
$calc_gba = $all * 0.2;//20%
$rounded_calc_gba = ceil($calc_gba);
$GoldenBattleAxe = mysql_query("UPDATE game SET TotalGrade=4 WHERE  TotalScore > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_gba") or die(mysql_error());;

//Golden Battle Axe+
$calc_gbap = $all * 0.1;//10%
$rounded_calc_gbap = ceil($calc_gbap);
$GoldenBattleAxePlus = mysql_query("UPDATE game SET TotalGrade=3 WHERE  TotalScore > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_gbap") or die(mysql_error());;

//VioletWand
$calc_vw = $all * 0.06;//6%
$rounded_calc_vw = ceil($calc_vw);
$VioletWand = mysql_query("UPDATE game SET TotalGrade=2 WHERE TotalScore  > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_vw") or die(mysql_error());;

//SapphireWand
$calc_sw = $all * 0.03;//3%
$rounded_calc_sw = ceil($calc_sw);
$SapphireWand = mysql_query("UPDATE game SET TotalGrade=1 WHERE  TotalScore > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_sw") or die(mysql_error());;

//RubyWand
$calc_rw = $all * 0.01;//2%
$rounded_calc_rw = ceil($calc_sw);
$RubbyWand = mysql_query("UPDATE game SET TotalGrade=0 WHERE TotalScore  > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_rw") or die(mysql_error());;

//DiamondWand
$calc_dw = $all * 0.01;//2%
$rounded_calc_dw = ceil($calc_dw);
$RubbyWand = mysql_query("UPDATE game SET TotalGrade=-1 WHERE TotalScore  > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_dw") or die(mysql_error());;


$BlueDragon = mysql_query("UPDATE game SET TotalGrade=-2 WHERE TotalRank  >= 6 and TotalRank <=21  AND NoRankUpdate=0 ORDER BY TotalScore  DESC LIMIT 21") or die(mysql_error());;
$RedDragon =  mysql_query("UPDATE game SET TotalGrade=-3 WHERE TotalRank  >= 2 and TotalRank <=5  AND NoRankUpdate=0 ORDER BY TotalScore  DESC LIMIT 4") or die(mysql_error());;
$SilverDragon = mysql_query("UPDATE game SET TotalGrade=-4 WHERE  TotalRank=1  AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT 1") or  die(mysql_error());;

echo "Higher ranks updated";

//Matching COUNTRY GRADE with TOTAL GRADE
$sqlcg = mysql_query("SELECT * FROM `game`") or die(mysql_error());
while($sqllycg = mysql_fetch_assoc($sqlcg)){
mysql_query("UPDATE `game` SET  `CountryGrade`='".$sqllycg['TotalGrade']."' WHERE  `Id`='".$sqllycg['Id']."'") or die(mysql_error());
}

}else{
  die("Leech protection enabled. Disable it. Having trouble disabling it? www.php.net");
}
?>

This version just updated ranks. Doesn't touch country ranks
PHP:
<?php
/*Ranking Script released 11/6/2010 - Made by KiRo.-Aaron*/

/*EDIT THE FOLLOWING DATABASE CREDENTIALS*/

//Connecting to database
  $host = '127.0.0.1'; //Usually 127.0.0.1, I suggest not changing it
  $user = 'x'; //User
  $pass = 'x'; //Pass
  $db = 'gunbound'; //Database name, normally "GUNBOUND"
 
mysql_connect("$host","$user","$pass") or die(mysql_error());
mysql_select_db("$db") or die(mysql_error());

$lp = 1;
/*DO NOT EDIT ANYTHING BELOW UNLESS YOU KNOW WHAT YOU ARE DOING*/

//New Ranking Script
if($lp != 1){
echo "<u><b>Updating Rank by Number</u></b><p>";
$rank = 0;
$findusr1 = mysql_query("SELECT Id,TotalScore,TotalRank FROM Game WHERE NoRankUpdate=0 ORDER BY TotalScore DESC");

while($row = mysql_fetch_array($findusr1, MYSQL_ASSOC)){
$rank++;
$sql = "UPDATE Game SET TotalRank='$rank' WHERE Id='".$row["Id"]."'";
mysql_query($sql) or die("Rank number update failed.");
echo " - The user <b>'".$row["Id"]."'</b> is rank <b>".$row["TotalRank"]."</b><br>";

}

/*Total Ranking has been tested and works */
/////////////////////////////////////////////////////////////////////////////////////////

echo "<u><b>Updating Rank by Grade - Lower</u></b><p>";
$Chick = mysql_query("UPDATE game SET TotalGrade=19 WHERE TotalScore < 6899 AND NoRankUpdate=0") or die(mysql_error());
$Wdn = mysql_query("UPDATE game SET TotalGrade=18 WHERE TotalScore >=  1100 and TotalScore <= 1199 AND NoRankUpdate=0") or  die(mysql_error());
$DbleWdn = mysql_query("UPDATE game SET TotalGrade=17 WHERE  TotalScore  >= 1200 and TotalScore <= 1499 AND NoRankUpdate=0") or  die(mysql_error());
$Stne = mysql_query("UPDATE game SET TotalGrade=16 WHERE  TotalScore  >= 1500 and TotalScore <= 1799 AND NoRankUpdate=0") or  die(mysql_error());;
$DbleStone = mysql_query("UPDATE game SET TotalGrade=15 WHERE   TotalScore >= 1800 and TotalScore <= 2299 AND NoRankUpdate=0") or  die(mysql_error());
$Axe = mysql_query("UPDATE game SET TotalGrade=14 WHERE  TotalScore  >= 2300 and TotalScore <= 2799 AND NoRankUpdate=0") or  die(mysql_error());
$DbleAxe = mysql_query("UPDATE game SET TotalGrade=13 WHERE TotalScore  >= 2800 and TotalScore <= 3499 AND NoRankUpdate=0") or  die(mysql_error());
$SilAxe = mysql_query("UPDATE game SET TotalGrade=12 WHERE TotalScore  >= 3500 and TotalScore <= 4199 AND NoRankUpdate=0") or  die(mysql_error());
$DbleSAxe = mysql_query("UPDATE game SET TotalGrade=11 WHERE TotalScore  >= 4200 and TotalScore <= 5099 AND NoRankUpdate=0") or  die(mysql_error());
$GoldAxe =  mysql_query("UPDATE game SET TotalGrade=10 WHERE TotalScore  >= 5100 and TotalScore <= 5999 AND NoRankUpdate=0") or  die(mysql_error());
$DbleGoldenAxe = mysql_query("UPDATE game SET TotalGrade=9 WHERE  TotalScore >= 6000 and TotalScore <= 6899 AND NoRankUpdate=0") or  die(mysql_error());

/*Lower Ranks has been tested and works */
/////////////////////////////////////////////////////////////////////////////////////////

echo "Updating higher ranks";
$GettingPercentages= mysql_query("SELECT * FROM `game` WHERE  `TotalRank`>21 AND `TotalScore`>6899 AND NoRankUpdate=0") or  die(mysql_error());
$all = mysql_num_rows($GettingPercentages);
echo $all;
//Getting Battle axes
//100% Of all are battle axe, so update them accordingly.
$BattleAxe = mysql_query("UPDATE game SET TotalGrade=8 WHERE TotalScore  > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT $all") or  die(mysql_error());;

//Battle Axe Plus
$calc_bap = $all * 0.7; //70%
$rounded_calc_bap = ceil($calc_bap);
$BattleAxePlus = mysql_query("UPDATE game SET TotalGrade=7 WHERE  TotalScore > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_bap") or die(mysql_error());;

//SilverBattle Axe
$calc_sba = $all * 0.5;//50%
$rounded_calc_sba = ceil($calc_sba);
$SilverBattleAxe = mysql_query("UPDATE game SET TotalGrade=6 WHERE  TotalScore > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_sba") or die(mysql_error());;


//SilverBattle Axe +
$calc_sbap = $all * 0.3;//30%
$rounded_calc_sbap = ceil($calc_sbap);
$SilverBattleAxePlus = mysql_query("UPDATE game SET TotalGrade=5 WHERE  TotalScore > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_sbap") or die(mysql_error());;

//Golden Battle Axe
$calc_gba = $all * 0.2;//20%
$rounded_calc_gba = ceil($calc_gba);
$GoldenBattleAxe = mysql_query("UPDATE game SET TotalGrade=4 WHERE  TotalScore > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_gba") or die(mysql_error());;

//Golden Battle Axe+
$calc_gbap = $all * 0.1;//10%
$rounded_calc_gbap = ceil($calc_gbap);
$GoldenBattleAxePlus = mysql_query("UPDATE game SET TotalGrade=3 WHERE  TotalScore > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_gbap") or die(mysql_error());;

//VioletWand
$calc_vw = $all * 0.06;//6%
$rounded_calc_vw = ceil($calc_vw);
$VioletWand = mysql_query("UPDATE game SET TotalGrade=2 WHERE TotalScore  > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_vw") or die(mysql_error());;

//SapphireWand
$calc_sw = $all * 0.03;//3%
$rounded_calc_sw = ceil($calc_sw);
$SapphireWand = mysql_query("UPDATE game SET TotalGrade=1 WHERE  TotalScore > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_sw") or die(mysql_error());;

//RubyWand
$calc_rw = $all * 0.01;//2%
$rounded_calc_rw = ceil($calc_sw);
$RubbyWand = mysql_query("UPDATE game SET TotalGrade=0 WHERE TotalScore  > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_rw") or die(mysql_error());;

//DiamondWand
$calc_dw = $all * 0.01;//2%
$rounded_calc_dw = ceil($calc_dw);
$RubbyWand = mysql_query("UPDATE game SET TotalGrade=-1 WHERE TotalScore  > 6900 AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT  $rounded_calc_dw") or die(mysql_error());;


$BlueDragon = mysql_query("UPDATE game SET TotalGrade=-2 WHERE TotalRank  >= 6 and TotalRank <=21  AND NoRankUpdate=0 ORDER BY TotalScore  DESC LIMIT 21") or die(mysql_error());;
$RedDragon =  mysql_query("UPDATE game SET TotalGrade=-3 WHERE TotalRank  >= 2 and TotalRank <=5  AND NoRankUpdate=0 ORDER BY TotalScore  DESC LIMIT 4") or die(mysql_error());;
$SilverDragon = mysql_query("UPDATE game SET TotalGrade=-4 WHERE  TotalRank=1  AND NoRankUpdate=0 ORDER BY TotalScore DESC LIMIT 1") or  die(mysql_error());;

echo "Higher ranks updated";
}else{
  die("Leech protection enabled. Disable it. Having trouble disabling it? www.php.net");
}
?>
NOTE: Anti-Leech protection is enabled. It's a noob system, to disable it is simple. If you cannot disable the protection, visit



FYI:
If you're on a virtual machine, or something and you want to test it via Scheduled Tasks or cmd simply type in CMD:

Code:
C:/path/to/php.exe C:/path/to/rankingscript.php
And it will run as expected.

Enjoy,
Aaron/KiRo.
 
Last edited:
Newbie Spellweaver
Joined
Mar 15, 2010
Messages
21
Reaction score
9
Thanks Aaron but what you mean with this?
NOTE: Anti-Leech protection is enabled. It's a noob system, to disable it is simple. If you cannot disable the protection, visit

And it looks like it doesn't update country grade? how can i update country grade with the same level than Total grade or anyways?
 
Last edited:
ex visor
Loyal Member
Joined
May 17, 2007
Messages
2,741
Reaction score
937
I updated my original post with two different versions.
One updates country ranks, one doesn't.

NOTE: The country ranks will just be the same as total ranks once the script has finished running (LEVEL WISE: CountryGrade=TotalGrade).

-KiRo
 
Newbie Spellweaver
Joined
Mar 15, 2010
Messages
21
Reaction score
9
Excuse me Aaron, How to use? when i open it just says Leech protection enabled. Disable it. Having trouble disabling it?

I've Solved it thanks anyways, if you are looking how to solve this, before read the scripts many times till you understand every command it's wrote in. Eg. "UPDATE" EXECUTE" "if" "echo" and all those scripts are wrote
 
Last edited:
ex visor
Loyal Member
Joined
May 17, 2007
Messages
2,741
Reaction score
937
Uh, yeah. Or just change the leech protection variable to the opposite value.
 
Initiate Mage
Joined
Nov 27, 2010
Messages
1
Reaction score
0
hmm sorry, wer should i put the .php file after i made it? and how do i run it, sry i'm noob in this kind of thing
 
ex visor
Loyal Member
Joined
May 17, 2007
Messages
2,741
Reaction score
937
Root of your website and run it as
And it should run as expected, if leech protection is disabled.
 
~永遠の美~
Joined
Apr 27, 2011
Messages
772
Reaction score
70
Damn, My PHP is not that strong. I need some advice here. I have no idea how to enable the ranking Script
 
ex visor
Loyal Member
Joined
May 17, 2007
Messages
2,741
Reaction score
937
I linked you to some resources at the bottom of my OP. Enabling the script isn't that difficult-- you should at least learn the basics of PHP before preparing to start a server.

Just my two cents.
 
Initiate Mage
Joined
May 5, 2014
Messages
1
Reaction score
0
Warning: mysql_connect() [ ]: Access denied for user 'x'@'localhost' (using password: YES) in C:\wamp\www\gunbound\rangking.php on line 12
Access denied for user 'x'@'localhost' (using password: YES)

need help ?

Solved
 
Last edited:
Back
Top