Tudom-tudom, nem azért vagytok, hogy helyettem gondolkozzatok, de a Timerekkel még nem vagyok 100% tisztában, ezért kéne egy kis segítség...a dolog egyszerű. Amikor a játékos meghal, elindítok egy 4,5 mp-s timert, ami ha lecseng, berakja a kórházba a játékost, megadja neki a változókat, stb. Erre ugye azért volt szükség, mert halál után egyből visszarakta a halál helyszínére. Mindegy, nem is ez a lényeg.
A dolog lényege az lenne, hogyha meghal, ötre rakja a Korhazban változóját, ami öt másodpercenként -1-el csökken, és ez addig tart, amíg ez a változója nagyobb, mint 0. Ha 0, akkor ki tud jönni a kórházajtón. Ez mind szép és jó, egészen szépen működik, azonban ha a játékos meghal, amíg kórházban van (Vagyis a változója nagyobb, mint 0) akkor valamiért egy idő után -1 lesz a változó...gondolom valahol kétszer számlálja, vagy nem tudom, gondoltam rá, hogy KillTimert kéne berakni, meg is csináltam, de csak rosszabb lett mint gondoltam. Mi lehet a probléma?
public OnPlayerDeath(playerid, killerid, reason)
{
SetTimerEx( \"korhazbaraktimer\", 4500, false, \"i\", playerid);
Rendorszolg[playerid] = false;
JatekosInfo[playerid][meghivas_aktiv] = false;
JatekosInfo[playerid][visz] = false;
JatekosInfo[playerid][Animban] = 0;
JatekosInfo[playerid][Korhazban] = 5;
return 1;
}
public korhazbaraktimer (playerid);
public korhazbaraktimer (playerid)
{
SetPlayerPos(playerid,-204.2514,-1779.7922,675.7687);
SetPlayerInterior(playerid, 3);
SetPlayerFacingAngle(playerid,0.0);
SetCameraBehindPlayer(playerid);
SendFormattedMessage(playerid,COLOR_LIGHTBLUE,\"(( Súlyosan megsérültél, ezért kórházba kerültél. ))\");
SetTimerEx(\"korhazido\", 5000, false, \"i\", playerid);
}
public korhazido (playerid);
public korhazido (playerid)
{
JatekosInfo[playerid][Korhazban] -= 1;
if(JatekosInfo[playerid][Korhazban] > 0)
{
SetTimerEx( \"korhazido\", 5000, false, \"i\", playerid);
}
}