Armor Bug

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 Liebes Breadfish ich habe ein Armor befehl und mann kann es tausend mall benutzen bitte helfen!



    if(strcmp(cmd, "/atzearmor", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 17 || PlayerInfo[playerid][pLeader] == 17)
    if (IsPlayerInRangeOfPoint(playerid,3.0,-691.8252,937.3750,13.6328)||IsPlayerInRangeOfPoint(playerid,3.0,-691.8252,937.3750,13.6328))
    {
    if(GetPlayerMoney(playerid) >= 0)
    {
    // SetPlayerHealth(playerid,160.0);
    SetPlayerArmour(playerid,100.0);
    SendClientMessage(playerid,RED,"Du hast dir Armor geholt!");
    GameTextForPlayer(playerid,"Du hast 100 armor bekommen!",5000,5);
    GivePlayerMoney(playerid, -0);
    }
    else
    {


    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du befindest dich nicht am armor Poin!");
    }
    }
    return 1;
    }

  • ka aber warum kann mann tausend mall?

    Versuch ma damit



    if(strcmp(cmd, "/atzearmor", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInFrakt[playerid][Frakt] == 17 )
    {
    if (IsPlayerInRangeOfPoint(playerid,3.0,-691.8252,937.3750,13.632||IsPlayerInRangeOfPoint(playerid,3.0,-691.8252,937.3750,13.632)
    {
    if(GetPlayerMoney(playerid) >= 0)
    {
    // SetPlayerHealth(playerid,160.0);
    SetPlayerArmour(playerid,100.0);
    SendClientMessage(playerid,RED,"Du hast dir Armor geholt!");
    GameTextForPlayer(playerid,"Du hast 100 armor bekommen!",5000,5);
    // GivePlayerMoney(playerid, -0); Unnötig
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du befindest dich nicht am armor Poin!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kein Mitlgied diser Fraktion!");
    }
    }
    }



    //Edit Zeile 5: if(IsPlayerInFrakt[playerid][Frakt] == 17 ) musst du pls bei dir anpassen weiß nicht wie das bei dir ist.


    //Edit: Oder ändere Zeile 5 zu

    if(IsPlayerInFrakt(playerid,17)


    Es ist nur die frage ob bei dir " IsPlayerInFrakt " gibt sonst müsst du die Zeile an dein script anpassen.

  • nochmal überarbeitet



    if(strcmp(cmd, "/atzearmor", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 17 || PlayerInfo[playerid][pLeader] == 17)
    {
    if (IsPlayerInRangeOfPoint(playerid,3.0,-691.8252,937.3750,13.632)||IsPlayerInRangeOfPoint(playerid,3.0,-691.8252,937.3750,13.632))
    {
    if(GetPlayerMoney(playerid) >= 0)
    {
    // SetPlayerHealth(playerid,160.0);
    SetPlayerArmour(playerid,100.0);
    SendClientMessage(playerid,RED,"Du hast dir Armor geholt!");
    GameTextForPlayer(playerid,"Du hast 100 armor bekommen!",5000,5);
    // GivePlayerMoney(playerid, -0); Unnötig
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du befindest dich nicht am armor Poin!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kein Mitlgied diser Fraktion!");
    }
    }
    }


    /Edit: Bei mir funktioniert der!

  • @Mr.ElectRoX
    Der Befehl funktioniert zwar, aber das hilft ihn ja nicht.
    Der Befehl soll ja (laut ihn) nur nach XY mal ausgeführt werden.
    Dass heißt er müsste halt eine Variante erstellen, wo dann z.b. nach 3 oder 4 Minuten auf 0 setzt ...

  • // OnPlayerConnect:
    SetPVarInt(playerid, AtzeArmor, 0);


    // Dein Befehl:
    if(strcmp(cmd, "/atzearmor", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 17 || PlayerInfo[playerid][pLeader] == 17)
    if (IsPlayerInRangeOfPoint(playerid,3.0,-691.8252,937.3750,13.6328)||IsPlayerInRangeOfPoint(playerid,3.0,-691.8252,937.3750,13.6328))
    {
    if(GetPlayerMoney(playerid) >= 0)
    {
    if(GetPVarInt(playerid, AtzeArmor, 0))
    {
    SetPlayerArmour(playerid,100.0);
    SendClientMessage(playerid,RED,"Du hast dir Armor geholt!");
    GameTextForPlayer(playerid,"Du hast 100 armor bekommen!",5000,5);
    SetPVarInt(playerid, AtzeArmor, 1);
    }
    else {
    SendClientMessage(playerid, COLOR_RED, "Du darfst diesen Befehl nur einmal nutzen!");
    }
    }
    } else {
    SendClientMessage(playerid, COLOR_GREY, "Du befindest dich nicht am armor Poin!");
    }
    }
    return 1;
    }


    Soweit ich das jetzt richtig verstanden habe, willst du den Befehl nur EINMAL nutzen dürfen/können.


    Das heisst, du musst unter "OnPlayerConnect"(<-//EDITED) die Variable "AtzeArmor" auf 0 setzen, um abzufragen ob man den Befehl schon einmal genutzt hat.



    Mit dem Script da oben dürftest du den Befehl nur einmal nutzen (Theoretisch, nicht getestet!)


    - LolRiTTeR

    [align=center]

  • @Mr.ElectRoX
    Der Befehl funktioniert zwar, aber das hilft ihn ja nicht.
    Der Befehl soll ja (laut ihn) nur nach XY mal ausgeführt werden.
    Dass heißt er müsste halt eine Variante erstellen, wo dann z.b. nach 3 oder 4 Minuten auf 0 setzt ...


    Achsoooo , ja dann hilft der Befehl nicht .
    Hab gedacht das sich alles um das Armour dreht :/