Script/programmeertaal: PHP/SQL
Probleem (duidelijke uitleg vereist):
Ik gebruik voor mijn eigen game het rangen systeem van vendetta, dit werkt prima in de vendetta source, maar in mijn source blijft hij berichten sturen.
En hij blijft de rang +1 zetten, dus dat is niet de bedoeling.
Klein voorbeeld:
20 & 50 is, blijft hij berichten sturen dat je level up bent.
Vendetta Source: Eenmalig bericht sturen.
Ik ben al een tijd bezig geweest met het bekijken en oplossen van dit probleem in mijn source maar helaas zonder resultaat.
Hij blijft berichten sturen, totdat je over het aantal experience bent, of ervoor.
Code:
<?php
if ($data->woodcutxp < 80 && $data->woodcutxp >= 70) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 98 && $data->woodcutxp >= 80) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 98 && $data->woodcutxp >= 118) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 119 && $data->woodcutxp >= 241) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 242 && $data->woodcutxp >= 270) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 271 && $data->woodcutxp >= 299) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 300 && $data->woodcutxp >= 377) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 378 && $data->woodcutxp >= 467) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 468 && $data->woodcutxp >= 527) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 528 && $data->woodcutxp >= 599) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 600 && $data->woodcutxp >= 758) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 759 && $data->woodcutxp >= 898) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 899 && $data->woodcutxp >= 1049) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 1050 && $data->woodcutxp >= 1199) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 1200 && $data->woodcutxp >= 1566) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 1567 && $data->woodcutxp >= 1923) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 1924 && $data->woodcutxp >= 2141) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 2142 && $data->woodcutxp >= 2353) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 2354 && $data->woodcutxp >= 2611) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
elseif ($data->woodcutxp < 2612 && $data->woodcutxp >= 2612) { mysql_query("UPDATE `gamestats` SET `gstart`='1' WHERE `username`='$data->username'"); }
$wcmsgnum = rand(0,0);
$wcmessage = Array(
"Congratulations, you grew an Woodcutting Level! <br /> You are now Level $data->woodcutlvl");
$wcmsg = "{$wcmessage[$wcmsgnum]}";
if ($data->gstart > 0)
{
mysql_query("INSERT INTO `messages`(`time`,`from`,`to`,`subject`,`message`) values(NOW(),'Skill increased!','{$data->username}','Level up!','{$wcmsg}')") or die(mysql_error());
mysql_query("UPDATE `gamestats` SET `woodcutlvl`=`woodcutlvl`+1 WHERE `username`='$data->username'") or die(mysql_error());
mysql_query("UPDATE `gamestats` SET `gstart`='0' WHERE `username`='$data->username'") or die(mysql_error());
}
?>
Toon Meer
Overige informatie:
Deze code werkt perfect op Vendetta, maar daar is ook een ongedefineerde variable in genaamd: $vordering <= 20
if ($vordering <= 20 && $data->gstart > 0) { mysql_query("INSERT INTO `messages`(`time`,`from`,`to`,`subject`,`message`) values(NOW(),'Notificatie','{$data->login}','Rank','{$msg}')"); mysql_query("UPDATE `users` SET `gstart`='0' WHERE `login`='$data->login'"); }
Mijn vraag is dus:
Hoe kan ik dit soepel laten verlopen dat dit alleen word opgeroepen als persoon een bepaalde xp heeft behaald.
Dit word door een rand(); bepaald, dus de XP aantallen zijn variabel en kunnen nooit een bepaalde waarde krijgen om dus een rang omhoog te gaan.
De berichten blijven verstuurd worden omdat hij binnen de xp blijft, en elke klik op een link geeft een bericht...
Hoe kan ik dit verhelpen?
Alvast bedankt voor uw hulp en tijd