/heal befehl mit Zeit abfrage!

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
  • Hey, so ist mein Befehl bis jetzt:


    if(strcmp("/heal",cmdtext, true, 10) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(GetPlayerMoney(playerid) >= 1000)
    {
    SendClientMessage(playerid, COLOR_GREEN,"*** Die Heilung kostete dich $1000 ***");
    SetPlayerHealth(playerid, 100);
    GivePlayerMoney(playerid,-1000);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"*** Du hast keine $1000! ***");
    }
    }
    return 1;
    }


    Ich hätte es allerdings gerne, dass man den Befehl nur alle 30 Sekunden benutzen könnte ;)

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • Ein boolean erstellen, (bsp. healUseable), den auf true setzen und mit einem SetTimeEx später auf false setzen.
    Danach in /heal noch eine Abfrage rein und fertig.

    Kalcor: "... it makes the game look like it's not GTA. This mod is called San Andreas Multiplayer. It's not a custom game engine which you can script..."

  • Ein boolean erstellen, (bsp. healUseable), den auf true setzen und mit einem SetTimeEx später auf false setzen.
    Danach in /heal noch eine Abfrage rein und fertig.

    Leider habe ich davon kaum was verstanden xD


    Mit Timern etc habe ich mich nonit auseinander gesetzt un so :S

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • Kann mir das nit einfach mal einer so machen?^^


    Grade keine Zeit/Lust mich damit auseinander zu setzen ._.


    (Praktikum .. :<)

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • new healed[MAX_PLAYERS];
    forward heal(playerid)


    if(strcmp("/heal",cmdtext, true, 10) == 0)
    {
    if(healed[playerid] == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(GetPlayerMoney(playerid) >= 1000)
    {
    SendClientMessage(playerid, COLOR_GREEN,"*** Die Heilung kostete dich $1000 ***");
    SetPlayerHealth(playerid, 100);
    GivePlayerMoney(playerid,-1000);
    healed[playerid] = 1;
    SetTimerEx("heal", 15000, 0,"i",playerid);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"*** Du hast keine $1000! ***");
    }
    }
    }
    return 1;
    }
    public heal(playerid)
    {
    healed[playerid] = 0;
    return 1;
    }

  • EIne Frage, wo soll dann das 'SCM' rein für: "Du kannst dich nur alle 30 Sekunden healen!" ??

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • es geht auch optimierter mit


    SetPVarInt und GetPVarInt



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp("/heal",cmdtext, true, 10) == 0)
    {
    if(GetPVarInt(playerid, "Healed") == 1)
    {
    if(IsPlayerConnected(playerid))
    {
    if(GetPlayerMoney(playerid) >= 1000)
    {
    SendClientMessage(playerid, COLOR_GREEN,"*** Die Heilung kostete dich $1000 ***");
    SetPlayerHealth(playerid, 100);
    GivePlayerMoney(playerid,-1000);
    healed[playerid] = 1;
    SetTimerEx("heal", 30000, 0,"i",playerid);
    SetPVarInt(playerid, "Healed", 0);

    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"*** Du hast keine $1000! ***");
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du kannst diesen Befehl nur alles 30 Sekunden benutzen");
    }
    return 1;
    }
    return 0;
    }
    forward heal(playerid);
    public heal(playerid)
    {
    SetPVarInt(playerid, "Healed", 1);
    return true;
    }

    RFT

    Einmal editiert, zuletzt von RFT ()

  • Ich machs auf die Art von Meepareal, da es auf der anderen Errort, nur eine Frage:


    if(strcmp("/heal",cmdtext, true, 10) == 0)
    {
    if(healed[playerid] == 0)
    {
    if(GetPlayerMoney(playerid) >= 1000)
    {
    SendClientMessage(playerid, COLOR_GREEN,"*** Die Heilung kostete dich $1000 ***");
    SetPlayerHealth(playerid, 100);
    GivePlayerMoney(playerid,-1000);
    healed[playerid] = 1;
    SetTimerEx("heal", 30000, 0,"i",playerid);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"*** Du hast keine $1000! ***");
    }
    }
    }
    return 1;
    }


    Wo füge ich da das SendClientMessage für "Du musst 30 Sec warten!" ein?

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


    Einmal editiert, zuletzt von Hijashy ()