- 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
This version just updated ranks. Doesn't touch country ranks
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:
And it will run as expected.
Enjoy,
Aaron/KiRo.
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");
}
?>
You must be registered to see links
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
Enjoy,
Aaron/KiRo.
Last edited: