Payday Timer

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
  • Guten Morgen Brotfischler :)


    Und zwar bastel ich gerade meinen payday um damit er gespeichert und mittels OnPlayerUpdate gecheckt wird.Das drumherum ist nun alles fertig, nur diesen Teil vom Timer bekomme ich nicht ganz hin.In diesem Fall würde der Wert immer auf 1 gesetzt aber ich möchte ja das der Wert immer um 1 erhöht wird damit er irgendwann die magische 60 erreicht und von update ausgeführt wird :) .Meinen durchbruch bei dini mit speichern und laden von Daten hatte ich erst vor kurzem, daher bin ich mir garnicht sicher ob die Methode "dini_IntSet" überhaupt richtig ist um einen Wert zu erhöhen. Hoffe ihr könnt mir weiterhelfen :)



    public paydayset()
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    pInfo[i][payday] =1; dini_IntSet(save,"Payday",1);
    }
    return 1;
    }



    Vielen dank im vorraus :)



    MfG


    Traxter

    2 Mal editiert, zuletzt von Traxter ()

  • versuchs mal so:



    public paydayset()
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    pInfo[i][payday] +=1;
    dini_IntSet(save,"Payday",pInfo[i][payday]);
    }
    return 1;
    }




    nicht getestet, aber müsste eig funktionieren...

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

  • 1000 Dank !


    Das mit dem +1 funktioniert schonmal aber nach jeden reconnect fängt er wieder bei 0 an. Der Wert wird zwar bei disconnect gespeichert und beim connecten aus der ini geladen wird dann aber mit 1 überschrieben und zählt ab da wieder hoch und speichert diesen:(

    Einmal editiert, zuletzt von Traxter ()

  • dann musst du bei OnPlayerLoggin oder wie du es genannt hast das noch machen:


    pInfo[playerid][payday] = dini_Int(save,"Payday");


    wenn ich mich nicht verschrieben habe müsste es gehen^^

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

  • Genauso hab ichs ja :)



    Da alle anderen Werte aus der Ini auch geladen werden schliesse ich mal aus das ein Fehler in meinem Login Script ist.Daten werden beim diconnect gespeichert und beim connect geladen aber trotzdem fängt es bei es immer wieder bei 1 zu zählen denn wenn ich nach dem connect in die ini schaue ist der wert der nach dem disconnect gespeichert wurde wieder niedriger.

  • dann könntest du es mal noch ohne das gleichzeichen bei pInfo versuchen... also so:
    public paydayset()
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    pInfo[i][payday] +1;
    dini_IntSet(save,"Payday",pInfo[i][payday]);
    }
    return 1;
    }

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

  • C:\Dokumente und Einstellungen\Trax\RL\xxx.pwn(3186) : warning 215: expression has no effect
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    1 Warning.



    Geht leider nicht.....will dir damit auch nicht auf die nerven gehen aber möche es unbedingt zum laufen bringen.Kann es vielleicht sein das der Wert aus der ini in einen string geladen werden muss, dann +1 und dann erst save ?Bzw das saven beim timer kann ich mir ja eigentlich sparen wobei das sicherer ist. Um rauszukriegen wie ich das mache müsste ich nochmal rumtüfteln aber vielleicht weißt du ja wie es geht falls man diese möglichkeit überhaupt in betracht ziehen kann ?




    EDIT:



    WIe durch ein Wunder geht es jetzt doch.......merkwürdig, heute morgen funktionierte es nicht und jetzt auf einmal wird der Wert geladen und er zählt weiter.

    Einmal editiert, zuletzt von Traxter ()

  • wieso willst du denn das mit dem Payday saven machs doch so



    forward Payday(playerid);


    SetTimer("Payday",600000,1);


    public Payday(playerid){
    for(new i;i<MAX_PLAYERS;i++){
    GivePlayerMoney(i,3000);
    SendClientMessage(i, 0xFF9900AA, "Zahltag Du Bekommst 3000$");
    }
    return 1;
    }



    so ist es bei mir ein einfacher payday

  • Ja genauso hatte ich es vorher, bloss das der Timer bei mir auf 1 Stunde gestellt war. Problem dabei ist, wenn nun jemand 59 Minuten auf dem Server ist und dann off geht bekommt er keinen pd und sein timer fängt wieder bei 0 an wenn er on kommt. Und genau das will ich vermeiden^^



    Deswegen ist der timer nun auf 1 Minute gestellt und jeweils zum ende der zeit wird in der ini ein variabler wert um 1 erhöht. Zusätzlich habe ich eine abfrage bei OnPlayerUpdate die regelmässig checkt ob der Wert in der ini 60 beträgt und is das der Fall wird der payday ausgeführt und der Wert wieder auf 0 gesetzt.



    Somit kann jemand off gehen und wenn er wieder on kommt, kann er da weitermachen wo er aufgehört hat.



    Aber wie gesagt:

    Zitat

    Wie durch ein Wunder geht es jetzt doch.......merkwürdig, heute morgen funktionierte es nicht und jetzt auf einmal wird der Wert geladen und er zählt weiter.

    Problem gelöst :) Danke nochmal an Marshall :thumbup:




    -closed-

    Einmal editiert, zuletzt von Traxter ()