Was ist Falsch Payday System ?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Community,
    Ich habe ein Problem und kriege es einfach nicht weg :O


    In der Konsole wird Min angezeigt aber ingame kriege ich nie eine Minute :O


    Forward:
    forward serverminute(playerid);


    Timer:
    SetTimer("serverminute", 60000, true);


    Public:
    public serverminute(playerid)
    {
    print("Min");
    if(IsPlayerConnected(playerid))
    {
    SetPVarInt(playerid,"pdtime",GetPVarInt(playerid,"pdtime")+1);
    if(GetPVarInt(playerid,"pdtime")==45)
    {
    SetPVarInt(playerid,"paydays",GetPVarInt(playerid,"paydays")+1);
    SetPVarInt(playerid,"pdtime",0);
    GameTextForPlayer(playerid,"~b~P~w~a~r~y~g~d~y~a~p~y", 3000, 1);
    GivePlayerMoney(playerid,3500);
    }
    }
    }


    Mit Freundlichen Grüßen
    - Kevin

  • Mal ne Frage was denkst du denn, wo der Parameter "playerid" herkommt den übergibst du ja nicht und das kannst du mit SetTimer auch nicht :wacko:


    Du hast 2 Möglichkeiten
    entweder
    Du lässt beim Connecten eines Spieler einen Timer für den Spieler einzeln laufen und killst den wenn man disconnected


    Oder
    Du benutzt weiterhin SetTimer und loopst jede Minute alle Spieler durch und setzt die Variable hoch


    Je nachdem welche "Version" dir lieber ist kann ich dir natürlich helfen


    /edit: Ok die 2.Version wurde ja schon geposted^^

  • der fehler ist das du SetTimer verwendest aber den parameter playerid im forward & public nutzt die lösung währe eine schleife so währe es dann richtig



    forward serverminute();
    public serverminute()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    print("Min");
    if(IsPlayerConnected(i))
    {
    SetPVarInt(i,"pdtime",GetPVarInt(i,"pdtime")+1);
    if(GetPVarInt(i,"pdtime")==45)
    {
    SetPVarInt(i,"paydays",GetPVarInt(i,"paydays")+1);
    SetPVarInt(i,"pdtime",0);
    GameTextForPlayer(i,"~b~P~w~a~r~y~g~d~y~a~p~y", 3000, 1);
    GivePlayerMoney(i,3500);
    }
    }
    }
    }