GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: dexi - 2011. november 14. - 11:31:57

Cím: miért nem jó?=(
Írta: dexi - 2011. november 14. - 11:31:57
[pawn]public OnPlayerUpdate(playerid)
{
new penz;
penz = GetPlayerMoney(playerid);
if(penz < 0 && minuszertesitve[playerid] == false)
{
SendClientMessage(playerid, RED, \"Adósságba verted magad, figyelj oda!\");
minuszertesitve[playerid] = true;
}
}[/pawn]
BElépek minden okéé... leviszem lémet 0 alá akkor egyfojtában befloodolja hogy \"Adosságba verted magad, figyelj oda!\"
Cím: miért nem jó?=(
Írta: hunfiu - 2011. november 14. - 13:03:43
mert ez automatán mindig megnézi a pénzed szóval 1megnézi utána megint és megint...
Sorry: kijavítást nem tom hogy kell :(
Cím: miért nem jó?=(
Írta: Gentleman - 2011. november 14. - 13:11:01
A hibát én sejtem mi lehet: van egy olyan kódrészlet ami felülírja a minuszertesitve változót ajánlott más logikai elvet használni, vagy felülírással megoldani.
A felülírásra (ami pazarolni fog neked nagyon) itt egy példa:
[pawn]
public OnPlayerUpdate(playerid)
{
new penz;
penz = GetPlayerMoney(playerid);
if(penz > 0 && minuszertesitve[playerid] == true)
{
   minuszertesitve[playerid] = false;
}
else
{
   SendClientMessage(playerid, RED, \"Adósságba verted magad, figyelj oda!\");
   minuszertesitve[playerid] = true;
}
[/pawn]
Arról, hogy mûködni fog nincs ötletem mivel nem próbáltam ki a kódot. Lehet rossz a logikai elvem de én ilyesmi irányba indulnék el a megoldás terén.
Cím: miért nem jó?=(
Írta: staubka - 2011. november 14. - 14:34:45
Elvileg jónak kéne lennie...
Próbáld meg így:
[pawn]if(penz < 0 && minuszertesitve[playerid] != true)[/pawn]
Ugyanaz amit eddigis írtál, de hátha jó lesz így. Ha nem jó akkor próbáld meg timerrel megoldani (timert indítod ongminit / onfsinit alatt: [pawn]for(new i = 0; i<MAX_PLAYERS;i++)SetTimerEx(\"MoneyCheck\", 300, 1, \"i\",i);[/pawn] A többit meg tudod gondolom ha nem ak szólj.