-
El szeretném érni hogy fél másodpercenként töltõdjön a hp ne egyszerre adja de nem tudok rájönni mit csinálok rosszul
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/give\", cmdtext, true, 10) == 0)
{
new timer;
timer = SetTimerEx(\"Health\", 500, true, \"i\", playerid);
new Float:elet;
GetPlayerHealth(playerid,elet);
SetPlayerHealth(playerid, elet +5);
timer ++;
if(timer == 20)
{
KillTimer(timer);
return 1;
}
return 1;
}
return 0;
}
-
Hello.Hat igy csinald:
new valtozo;
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/give\", cmdtext, true, 10) == 0)
{
new timer;
timer = SetTimerEx(\"Health\", 500, true, \"i\", playerid);
return 1;
}
return 0;
}
forward Health(playerid);
public Health(playerid) {
new Float:elet;
GetPlayerHealth(playerid,elet);
SetPlayerHealth(playerid, elet + 5);
valtozo++;
if(valtozo == 20) {
KillTimer(timer);
}
return 1;
}
-
Én Inkább az OnGameModeInit alá teném, de megírom hátha tetszene.. :D
Mód Elejére
forward elet20( playerid );
OnGameModeInit alá.
SetTimer(\"elet20\", 10000, false);
Tedd be a módba valahová
public elet20( playerid )
{
SendClientMessage(playerid,-1,\"A szerver adott +20 életerõt!\");
GivePlayerHealth(playerid, 20);
return 1;
}
Te még írjál hozzá csak timer kell oda írj a public elet20 alá és menni fog neked.. A timer idõt ragd átt az OnGameModeInitalatt! :)
-
A playerid változónak nincs értéke. Nem adtál neki. SetTimerEx-el tudsz neki adni, kedves ZyZu..
-
Hat en se igy kepzeltem ahogy leirtam, de ha o igy akarja, akkor ugy legyen.O ugy akarja, hogy ha beirja a /give parancsot, akkor ne egybol lokjon fel neki X hp-t hanem regeneraljon neki 5.0 saval, 20 +5.0 utan pedig alljon meg.