Dialog immer jede Minute öffnen!

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 zusammen,
    ich habe ein kleines Problem.


    Ich habe einen Dialog erstellt der immer aufgerufen wird wenn ein spieler in ein Pickup geht.
    Jedoch wird er immer wieder aufgerufen, sprich alle 4 sekunden wenn er da steht.
    Wie schafe ich es das dies nur jede Minute passiert?
    mit Timer ist klar, doch das verstehe ich nicht.


    Danke im vorraus.



    if(dialogid==DIALOG_STADTHALLEMENU) { if(response==1) { switch(listitem) { case 0 : { if(GetPVarInt(playerid,"Personalausweis")==0) { if(GetPlayerMoney(playerid)<100)return SendClientMessage(playerid,ROT,"Du hast zu wenig Geld"); { SendClientMessage(playerid,GRAU,"Du hast dir einen Personalausweis gekauft!"); GivePlayerMoney(playerid,-100); SetPVarInt(playerid,"Personalausweis",1); return 1; } } else if(GetPVarInt(playerid,"Personalausweis")==1) { SendClientMessage(playerid,ROT,"Du besitzt schon einen Personalausweis!"); return 1; }
    } case 1 : { SendClientMessage(playerid,BLAU,"Du hast ein Gespräch angefordert!"); } } } }


    /edit Entschuldigung ich bekomme den Coe nicht richtig gepostet;(

  • Das ganze würde ich mit einer Variable für jeden Spieler (SetPVarInt) und einem Timer machen, und dann bei OnPlayerPickupPickup einfach abfragen ob die Sekundenzahl schon abgelaufen ist, wenn ja, zeigen, wenn nicht, warten.

  • new LastInPickup[MAX_PLAYERS];


    OnPlayerPickupPickup


    if(gettimestamp() - LastInPickup[playerid] >= 60)
    {
    // 60 Sekunden vergangen
    LastInPickup[playerid] = gettimestamp();
    }


    stock gettimestamp()
    {
    new sek, min, hour, day, month, year, timestamp;
    getdate(year, month, day);
    gettime(hour, min, sek);
    timestamp = sek;
    timestamp += min * 60;
    timestamp += hour * 60 * 60;
    timestamp += day * 60 * 60 * 24;
    timestamp += month * 60 * 60 * 24 * 31;
    timestamp += (year - 1980) * 60 * 60 * 24 * 31 * 12;
    return timestamp;
    }


    Könnten Fehler drinne sein, habe ich auf schnell meinem Tablet geschrieben :)