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: pisti525 - 2012. november 29. - 21:03:28

Cím: Fizetés
Írta: pisti525 - 2012. november 29. - 21:03:28
Sziasztok!
Azt hogy lehetne megoldani hogy 10 percenként fizessen egy adott munkában dolgozó embernek a szerver 200 ezret ??  :hmmm: :hmmm:
Cím: Fizetés
Írta: Place - 2012. november 29. - 21:21:02
Parancsolj, remélem megteszi a számodra  :unsure:

http://sampforum.hu/index.php?topic=34657.0
Cím: Fizetés
Írta: Iceaac - 2012. november 29. - 21:25:17
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. :)
Cím: Fizetés
Írta: pisti525 - 2012. november 29. - 21:51:03
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);
Cím: Fizetés
Írta: CANNONN - 2012. november 29. - 21:51:58
new Tmunka = SetTimerEx(playerid, 600000, true, \"d\", playerid);
Helyett
new Tmunka = SetTimerEx(Fizetes, 600000, true, \"d\", playerid);
Cím: Fizetés
Írta: pisti525 - 2012. november 29. - 21:53:01
Idézetet írta: Cannonn date=1354222318\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"30395\" data-ipsquote-contentclass=\"forums_Topic
new Tmunka = SetTimerEx(playerid, 600000, true, \"d\", playerid);
Helyett
new Tmunka = SetTimerEx(Fizetes, 600000, true, \"d\", playerid);
 
és ezt hova rakjam ??
Cím: Fizetés
Írta: Iceaac - 2012. november 29. - 22:00:15
Idézetet írta: Cannonn date=1354222318\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"30395\" data-ipsquote-contentclass=\"forums_Topic
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.
Cím: Fizetés
Írta: pisti525 - 2012. november 29. - 22:08:14
a 2 pontban amikor leírtad ezeket azokat ott melyikben lehet megadni az idõt ??
Cím: Fizetés
Írta: Place - 2012. november 29. - 23:03:01
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
Cím: Fizetés
Írta: Iceaac - 2012. november 30. - 14:17:52
Idézetet írta: pisti525 date=1354223294\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"30395\" data-ipsquote-contentclass=\"forums_Topic
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)