Frage zum 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
  • und Zwar ich Habe ein /drivein Dialog etc.


    Ich möchte aber das der spieler Das essen sagen wir nach 10 sec bekommt


    Das ich SetTimerEx benutzen mus weiß ich also sollte man das so machen oder ?


    forward Essenstimer(playerid);




    public Essenstimer(playerid)
    {


    //Hier bekommt er das MAMPFMAMPF ^^
    return 1;
    }



    if (strcmp("/drivein", cmdtext, true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(IsAtDrivein(playerid))
    {
    ShowPlayerDialog(playerid,DIALOG_ESSEN,DIALOG_STYLE_LIST, "Willkommen am Burger Shot Drivein", "Moo Kids Menu [4$]\nBeef Tower [12$]\nMeat Stack [24$]\nSalad Meal [12$]", "Auswählen", "Abbrechen");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du musst in einem Fahrzeug sein!");
    return 1;
    }
    }
    return 1;
    }



    //da rein wo er auf das MAMPFMAMPF warten muss:
    SetTimerEx("Essenstimer",10000,0,"i",playerid);
    //////////////////////////////////////////////


    if(dialogid == DIALOG_ESSEN)
    {
    if(response)
    {
    if(listitem == 0)
    {
    GivePlayerHealth(playerid, 15.0);
    GivePlayerMoney(playerid, -4);
    SendClientMessage(playerid, COLOR_WHITE, "Guten Appetit!");
    GameTextForPlayer(playerid, "~r~ -4$", 3000, 1);
    SetTimerEx("Essenstimer",10000,0,"i",playerid);
    }
    if(listitem == 1)
    {
    GivePlayerHealth(playerid, 35.0);
    GivePlayerMoney(playerid, -12);
    SendClientMessage(playerid, COLOR_WHITE, "Guten Appetit!");
    GameTextForPlayer(playerid, "~r~ -12$", 3000, 1);
    SetTimerEx("Essenstimer",10000,0,"i",playerid);
    }
    if(listitem == 2)
    {
    GivePlayerHealth(playerid, 70.0);
    GivePlayerMoney(playerid, -24);
    SendClientMessage(playerid, COLOR_WHITE, "Guten Appetit!");
    GameTextForPlayer(playerid, "~r~ -24$", 3000, 1);
    SetTimerEx("Essenstimer",10000,0,"i",playerid);
    }
    if(listitem == 3)
    {
    GivePlayerHealth(playerid, 40.0);
    GivePlayerMoney(playerid, -12);
    SendClientMessage(playerid, COLOR_WHITE, "Guten Appetit!");
    GameTextForPlayer(playerid, "~r~ -12$", 3000, 1);
    SetTimerEx("Essenstimer",10000,0,"i",playerid);
    }
    }
    }


    aber es klappt nicht würde mich Freuen auf eure hilfe und falls code schnippsel auch kommen würde ich bitten mit erklärung wieso etc.


    Danke !

  • Mach es so erstelle eine globale variable für alle spieler also essen[MAX_PLAYERS];
    das giveplayerhealth löscht du im dialog response und fügst dafür dann z.b beim ersten gericht essen[playerid] = 1; und beim zweiten essen[playerid] = 2; u.s.w ein
    beim public der vom timer aus abgerufen wird fragst du mit einer simplen if abfrage ab ob die variable essen[playerid] == 1 ist wenn ja gibst du die entsprechenden leben bei essen[playerid] == 2 auch u.s.w.