Sziasztok,csináltam a szerveremhez egy tapasztalat rendszert.
El vannak mentve de nem tudom,hogy hogy adjam oda a jutalmat amikor megvan az 1000.
OnPlayerUpdate-nél próbáltam,de rájöttem,hogy nem jó,mert minden pillanatban friissít.
Kéne hozzá egy timer,de sajanos,azt még nem csináltam,tehát nincs hozzá tapasztalatom.
Amit bele kéne rakni:
[pawn]if(GetPlayerScore(playerid) == 1000)
{
SendClientMessage(playerid, 0x00FF00FF, \"Level Up!Grat. a 1-es szinthez.\");
SendClientMessage(playerid, 0xFF0000FF, \"Jutalmad:3 db gránát,és $250 000.\");
GivePlayerMoney(playerid, 250000);
GivePlayerWeapon(playerid, 16, 3);
return 1;
}
if(GetPlayerScore(playerid) == 1500)
{
SendClientMessage(playerid, 0x00FF00FF, \"Level Up!Grat. a 2-es szinthez.\");
SendClientMessage(playerid, 0xFF0000FF, \"Jutalmad:3 db lõszerrel egy rakétavetõ,és $500 000.\");
GivePlayerMoney(playerid, 500000);
GivePlayerWeapon(playerid, 35, 3);
return 1;
}
if(GetPlayerScore(playerid) == 2300)
{
SendClientMessage(playerid, 0x00FF00FF, \"Level Up!Grat. a 3-as szinthez.\");
SendClientMessage(playerid, 0xFF0000FF, \"Jutalmad:10 db gránát,és $750 000.\");
GivePlayerMoney(playerid, 750000);
GivePlayerWeapon(playerid, 16, 10);
return 1;
}
if(GetPlayerScore(playerid) == 3000)
{
SendClientMessage(playerid, 0x00FF00FF, \"Level Up!Grat. a 4-es szinthez.\");
SendClientMessage(playerid, 0xFF0000FF, \"Jutalmad:5 db lõszerrel egy hõkövetõ rakéta,és $1 250 000.\");
GivePlayerMoney(playerid, 1250000);
GivePlayerWeapon(playerid, 36, 5);
return 1;
}
if(GetPlayerScore(playerid) == 5000)
{
SendClientMessage(playerid, 0x00FF00FF, \"Level Up!Grat. a 5-ös szinthez.\");
SendClientMessage(playerid, 0xFF0000FF, \"Jutalmad:5 db gránát,7 lõszerrel egy rakétavetõ,és $2 000 000.\");
GivePlayerMoney(playerid, 2000000);
GivePlayerWeapon(playerid, 16, 5);
GivePlayerWeapon(playerid, 35, 7);
return 1;
}[/pawn]
a Timerrel kapcsoltban van elképzelésem,de erroros:
forward pontok(playerid);
new PontTimer;
PontTimer = SetTimer(\"Üzenet\", 1, 1);
[pawn]forward pontok(playerid);
if(GetPlayerScore(playerid) == 1000)
{
SendClientMessage(playerid, 0x00FF00FF, \"Level Up!Grat. a 1-es szinthez.\");
SendClientMessage(playerid, 0xFF0000FF, \"Jutalmad:3 db gránát,és $250 000.\");
GivePlayerMoney(playerid, 250000);
GivePlayerWeapon(playerid, 16, 3);
return 1;
}
[/pawn]
Itt csak én veszek észre minden kis hibát??
A timer nem fog lefutni, mert van adva a callbackodnál egy változó, a \"playerid\"
Ha ezt nem írod be a timerbe, akkor nem fogja lefuttatni..
Maximum így lehetne.
public OnPlayerConnect(playerid)
{
SetTimerEx(\"Pontok\", 1000, 1, \"d\", playerid);
return 1;
}
A floodot pedig
[pawn]new ScoreFlood[MAX_PALYERS][6]; // mode vagy script elejére[/pawn]
Azért 6, mert ahogy néztem, 5 szinted van és +1 mivel a 0 is egy szint asszem
[pawn]if(GetPlayerScore(playerid) == xxxx) //lekérdezi a score-t
{
if(ScoreFlood[playerid][0] == 1) return 1; //ha a változó értéke 1, akkor nem csinál semmit
ScoreFlood[playerid][0] = 1; //az elsõ lefutás, azaz amikor a játékos score pontja eléri az 1000-t, és leküldi az üzenetet, akkor megváltoztatja a változó értékét 1-re, hogy mégegyszer ne küldje el az üzenetet
//többi cucc, ami ennél van
}[/pawn]
ScoreFlood[playerid][0] --> 0 helyére a szintet, növekedve
Az elsõ szintnél 0, a másodiknál 1, és így tovább