Két lehetõség van:
1. Minden az adott munkában dolgozónak ugyan akkor fizet.
2. 10 percenként fizet a munka felvételétõl számítva, külön, minden dolgozó játékosnak.
Az elsõ megoldás elõnye az, hogy csak egyetlen idõzítõ van, míg az utóbbiban dolgozónként egy.
1.
Játékmód elején:
forward Fizetes();
OnGameModeInit:
SetTimer(\"Fizetes\", 600000, true);
Amikor a játékos felveszi a munkát, ezt illeszd be a parancsba:
SetPVarInt(playerid, \"munka\", 1)
Amikor a játékos kilép a munkából, ezt illeszd be a parancsba:
SetPVarInt(playerid, \"munka\", 0)
Játékmód végén:
public Fizetes()
{
for(new i;i<MAX_PLAYERS;i++) if(IsPlayerConnected(i) && !IsPlayerNPC(i) && GetPVarInt(i, \"munka\"))
{
SendClientMessage(i, 0xFF9900AA, \"Fizetés: $200.000\");
GivePlayerMoney(i, 200000);
}
}
2.
Játékmód elejére:
forward Fizetes(playerid);
Mikor felveszi a munkát:
new Tmunka = SetTimerEx(\"Fizetes\", 600000, true, \"d\", playerid);
SetPVarInt(playerid, \"munkatimer\", Tmunka);
Mikor kilép a munkából:
KillTimer(GetPVarInt(playerid, \"munkatimer\"));
OnPlayerDisconnect:
KillTimer(GetPVarInt(playerid, \"munkatimer\"));
Játékmód végére:
public Fizetes(playerid)
{
SendClientMessage(playerid, 0xFF9900AA, \"Fizetés: $200.000\");
GivePlayerMoney(playerid, 200000);
}
Ha elírtam valamit, szólj. :)
Figyi csak nekem ebbe kellene
SetPlayerFacingAngle(playerid, 269.0383);
SetPlayerPos(playerid, -2020.659, 68.6443, 28.50055);
HideMenuForPlayer(tele, playerid);
TogglePlayerControllable(playerid, true);
SetPlayerSkin(playerid,277);
new string[256];
new pName[30];
GetPlayerName(playerid, pName, 30);
format(string, 280,\"%s Tûzoltóként dolgozik\", pName);
GivePlayerWeapon(playerid,42,5000);
SendClientMessage(playerid, COLOR_GREEN, \"Kaptál egy poroltót!\");
SendClientMessageToAll(COLOR_CHARTREUSE, string);
new Tmunka = SetTimerEx(playerid, 600000, true, \"d\", playerid);
Helyett
new Tmunka = SetTimerEx(Fizetes, 600000, true, \"d\", playerid);
Igaz, elírtam. :) (bár Te is hibáztál, a \"Fizetes\"-rõl lemaradt az idézõjel :) )
Figyi csak nekem ebbe kellene
SetPlayerFacingAngle(playerid, 269.0383);
SetPlayerPos(playerid, -2020.659, 68.6443, 28.50055);
HideMenuForPlayer(tele, playerid);
TogglePlayerControllable(playerid, true);
SetPlayerSkin(playerid,277);
new string[256];
new pName[30];
GetPlayerName(playerid, pName, 30);
format(string, 280,\"%s Tûzoltóként dolgozik\", pName);
GivePlayerWeapon(playerid,42,5000);
SendClientMessage(playerid, COLOR_GREEN, \"Kaptál egy poroltót!\");
SendClientMessageToAll(COLOR_CHARTREUSE, string);
[/quote]
Az elõbb írtam le, két módon, mit hova hogyan, a lehetõ legegyszerûbben.
Elõször is olvasgasd ezt: http://wiki.sa-mp.com/wiki/SetTimerEx
SetTimer(\"Fizetes\", 600000, true);
Szerintem, 60000 est kell át írni mikkor kapd!!
Attisz[playerid] = SetTimerEx(\"Morpheusz\",ZEUSZ*1000*60,true,\"d\",playerid)
Vagy pedig itt, a 60 astnem tudom kezdõ scripter vagyok!!
Jah, és a végére amit pawno kódban bemásoltál abba nincs SetTimierEx hogy mikor kapd a fizetést
De egy bizonyos, fügvény alá bekel írni ezt a kódot:
SetTimer(\"Fizetes\", 600000, true);
Az a 60000 azt jelenti mennyi fizetést kapj vagy pedig, mennyi idõnként kapj fizetést, Remélem, jó lesz Sok szerencsét!!
Üdvözlettel: Place
a 2 pontban amikor leírtad ezeket azokat ott melyikben lehet megadni az idõt ??
new Tmunka = SetTimerEx(\"Fizetes\", 600000, true, \"d\", playerid);
Itt a 600000 az idõ, miliszekundumban. 10 perced adtam meg, ahogyan kérted. (1 másodperc = 1000 ms, egy perc 60 másodperc, egy perc 60.000ms, 10 perc 600.000ms)