Jump to content
  • 0

pomoc Bug s timerom


Danny

Dotaz

Zdravim, mam mensi problem, pozeral som sa mu na zub asi pol hodinu, ale nenapadlo ma, co by ho mohlo sposobovat vzhladom na fakt, ze kod je vlastne bezchybny, robi to, co ma.

 

Ide o to, ze hracom sa na mojom serveri odcitavaju potreby tak, ako chcu, nuz jedine odcitavanie v kode, je pod timerom "Needs", tento timer sa spusta, ak sa hrac spawne za team vazna, timer je nastaveny na 5 minut a ma sa opakovat:

if(GetPlayerTeam(playerid) == TEAM_VAZEN)
{
needs_timer[playerid] = SetTimerEx("Needs",300000,true,"i",playerid);
}

V tomto timeri kazdych 5 minut teda znizujem potreby o hodnotu 10:

PlayerInfo[playerid][pToilet] -= 10;
PlayerInfo[playerid][pEnergy] -= 10;
PlayerInfo[playerid][pHunger] -= 10;

V pripade, ze hodnota hraca narazi na 0, vykonam akciu, ale toto problem nieje.

 

Informaciu o znizeni potrieb hracom oznamujem nasledovne (inak ma to nenapadlo):

new string[128];
format(string, sizeof(string), "WC: %d/100", PlayerInfo[playerid][pToilet]);
SendClientMessage(playerid, COLOR_DARKRED, string);
format(string, sizeof(string), "Energia: %d/100", PlayerInfo[playerid][pEnergy]);
SendClientMessage(playerid, COLOR_DARKRED, string);
format(string, sizeof(string), "Hlad: %d/100", PlayerInfo[playerid][pHunger]);
SendClientMessage(playerid, COLOR_DARKRED, string);

Toto zas a opet nemoze byt pricinou problemu, nakolko je to len formatovanie stringu a zapisovanie do SCM.

 

Tak kde je problem? Mozu ho sposobovat ostatne timery? Netusim, nakolko som sa s niecim podobnym este nestretol a hraci na mojom servery si z toho uz trhaju vlasy, za kazdu pomoc budem teda vdacny.

Link to comment
Share on other sites

4 odpovědí na tuto otázku

Recommended Posts

  • 0

Timer zabijam len ked si hrac berie dozorcu, neviem o tom, ze by som ich mal zabijat aj pri odpojeni hraca, ine timery tak nezabijam a problemy s nimi neboli.

Link to comment
Share on other sites

  • 0
  • Globální moderátor

Aha... takže při spawnu se vytvoří novej timer a tím se přepíše starý... bravo, to znamená že jednomu hráči běží timer tolikrát kolikrát se spawnul. Nemluvě o tom, že je nekillíš, takže se jednomu playerID může nahromaždit stovky timerů. 

Edited by HighPrint
Link to comment
Share on other sites

  • 0

Mal som za to, ze timer sa po odpojeni hraca zabije automaticky, ze je to uz v jadre SA:MP a po odpojeni sa nacitavaju normalne timery od zaciatku, kazdopadne okej, zmysel to dava, budem ich odteraz zabijat aj pri odpojeni hraca.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...