Armor Befehl hinzufügen + Problem behebung

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 Tag,
    Es geht um den Houseupgrade-Befehl und dem /heal Befehl.


    Hier erstmal die Beiden Befehle:


    if(strcmp(cmd, "/houseupgrade", true) == 0 || strcmp(cmd, "/hu", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new house = PlayerInfo[playerid][pPhousekey];
    GetPlayerName(playerid, playername, sizeof(playername));
    if (house != 255 && strcmp(playername, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "NUTZUNG: /houseupgrade [item number]");
    SendClientMessage(playerid, COLOR_GRAD1, "|_______ Haus Upgrades _______|");
    SendClientMessage(playerid, COLOR_GRAD2, "| 1: Health Upgrade $5000 (Level 3)");
    SendClientMessage(playerid, COLOR_GRAD3, "| 2: Fernseher $1000 (Admin)");
    return 1;
    }
    new item = strval(tmp);
    switch (item)
    {
    case 1:
    {
    if(SBizzInfo[4][sbProducts] == 0)
    {
    GameTextForPlayer(playerid, "~r~Ausverkauft", 5000, 1);
    return 1;
    }
    if(PlayerInfo[playerid][pLevel] < 2)
    {
    SendClientMessage(playerid, COLOR_GRAD5, "Du musst Level 2 sein um das tun zu Können");
    return 1;
    }
    if(GetPlayerMoney(playerid) < 5000)
    {
    SendClientMessage(playerid, COLOR_GRAD5, "Du hast nicht genug Geld dafür.");
    return 1;
    }
    HouseInfo[house][hHel] = 1;
    GivePlayerMoney(playerid,-5000);
    SBizzInfo[5][sbTill] += 5000;//heal buisness
    ExtortionSBiz(5, 5000);
    SBizzInfo[5][sbProducts]--;
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, COLOR_GRAD5, "Du kannst deine Energie im haus mit /heal auffüllen.");
    }
    case 2:
    {
    if(SBizzInfo[5][sbProducts] == 0)
    {
    GameTextForPlayer(playerid, "~r~Ausverkauft", 5000, 1);
    return 1;
    }
    if (PlayerInfo[playerid][pAdmin] < 3)
    {
    SendClientMessage(playerid, COLOR_GRAD5, "Das Upgrade ist nur für Admins verfügbar");
    return 1;
    }
    if(GetPlayerMoney(playerid) < 1000)
    {
    SendClientMessage(playerid, COLOR_GRAD5, "Du hast nicht ausreichend Geld dafür.");
    return 1;
    }
    HouseInfo[house][hHealthx] = 1;
    GivePlayerMoney(playerid,-1000);
    SBizzInfo[5][sbTill] += 1000;
    ExtortionSBiz(5, 1000);
    SBizzInfo[5][sbProducts]--;
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, COLOR_GRAD5, "Du kanst nun Tv gucken!");
    }
    }
    OnPropUpdate();
    PlayerUpdate(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, " Du hast kein Haus");
    return 1;
    }
    }
    return 1;
    }


    if(strcmp(cmd, "/heal", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new location = PlayerInfo[playerid][pLocal];
    if(!strlen(tmp))
    {
    if(location != 255)
    {
    if(location < 255)
    {
    if(HouseInfo[location][hArm] == 1)
    {
    format(string, sizeof(string), "* %s legt die Schutzweste an.", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    FreezePlayer(playerid);
    GetPlayerPos(playerid, Unspec[playerid][sPx], Unspec[playerid][sPy], Unspec[playerid][sPz]);
    Unspec[playerid][sPint] = PlayerInfo[playerid][pInt];
    Unspec[playerid][sLocal] = PlayerInfo[playerid][pLocal];
    SetPlayerPos(playerid,1527.5,-12.1,1002.0);
    PlayerInfo[playerid][pLocal] = 255;
    SetPlayerInterior(playerid,99);
    Spectate[playerid] = 257;
    }
    else
    {
    format(string, sizeof(string), "Dieser Ort hat keine Upgrades.");
    SendClientMessage(playerid, TEAM_GREEN_COLOR,string);
    }
    if(HouseInfo[location][hHel] == 1)
    {
    new Float:tempheal;
    GetPlayerHealth(playerid,tempheal);
    if ( tempheal < 100.0)
    {
    SetPlayerHealth(playerid,100.0);
    PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
    format(string, sizeof(string), "Du wurdest wieder zu 100% geheilt.");
    SendClientMessage(playerid, TEAM_GREEN_COLOR,string);
    }
    else
    {
    SendClientMessage(playerid, TEAM_GREEN_COLOR,"Du wurdest wieder zu 100% geheilt.");
    }
    }
    else
    {
    format(string, sizeof(string), "Dieser Ort ist nicht zum Healing Upgrade.");
    SendClientMessage(playerid, TEAM_GREEN_COLOR,string);
    }
    return 1;
    }
    else if(location == 101)//Restaurant
    {
    new Float:tempheal;
    GetPlayerHealth(playerid,tempheal);
    if ( tempheal < 100.0)
    {
    SetPlayerHealth(playerid,100.0);
    PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
    format(string, sizeof(string), "Du wurdest wieder zu 100% geheilt.");
    SendClientMessage(playerid, TEAM_GREEN_COLOR,string);
    }
    else
    {
    SendClientMessage(playerid, TEAM_GREEN_COLOR,"You are already healed to 100.");
    }
    }
    else if(location == 102 && IsACop(playerid))//Police Armoury
    {
    SetPlayerHealth(playerid,100.0);
    SetPlayerArmour(playerid,100.0);
    format(string, sizeof(string), "* %s legt die Schutzweste an.", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    FreezePlayer(playerid);
    GetPlayerPos(playerid, Unspec[playerid][sPx], Unspec[playerid][sPy], Unspec[playerid][sPz]);
    Unspec[playerid][sPint] = PlayerInfo[playerid][pInt];
    Unspec[playerid][sLocal] = PlayerInfo[playerid][pLocal];
    SetPlayerPos(playerid,1527.5,-12.1,1002.0);
    PlayerInfo[playerid][pLocal] = 255;
    SetPlayerInterior(playerid,99);
    Spectate[playerid] = 257;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /heal [ID/NAME] [Preis]");
    return 1;
    }
    }
    giveplayerid = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /heal [ID/NAME] [Preis]");
    return 1;
    }
    moneys = strval(tmp);
    if(moneys < 1 || moneys > 1000) { SendClientMessage(playerid, COLOR_GREY, " Behandlungspreis nicht weniger als: 1$ und höher als 3000$ !"); return 1; }
    if (giveplayerid == playerid)
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du kannst dich leider nicht selber Heilen!");
    return 1;
    }
    if (IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new giveambu = GetPlayerVehicleID(giveplayerid);
    new playambu = GetPlayerVehicleID(playerid);
    if(gTeam[playerid] == TEAM_CYAN || PlayerInfo[playerid][pMember]== 4||PlayerInfo[playerid][pLeader] == 4 )//model
    {
    if (IsAnAmbulance(playambu) && playambu == giveambu)
    {
    new Float:tempheal;
    GetPlayerHealth(giveplayerid,tempheal);
    if(tempheal >= 160)
    {
    SendClientMessage(playerid, TEAM_GREEN_COLOR," Diese Person ist schon Geheilt.");
    return 1;
    }
    format(string, sizeof(string), "~y~Du heilst: ~n~~w~%s~n~~g~$%d", giveplayer,moneys);
    GameTextForPlayer(playerid, string, 5000, 1);
    GivePlayerMoney(playerid,moneys);
    GivePlayerMoney(giveplayerid,-moneys);
    new hp = 0;
    if(PlayerInfo[playerid][pPainPerk] > 0)
    {
    hp = 20 * PlayerInfo[playerid][pPainPerk];
    hp += 100;
    SetPlayerHealth(giveplayerid, hp);
    }
    else
    {
    hp = 100;
    SetPlayerHealth(giveplayerid, 100);
    }
    PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
    PlayerPlaySound(giveplayerid, 1150, 0.0, 0.0, 0.0);
    format(string, sizeof(string), "Du wurdest für $%d geheilt.",moneys);
    SendClientMessage(giveplayerid, TEAM_GREEN_COLOR,string);
    if(STDPlayer[giveplayerid] > 0)
    {
    STDPlayer[giveplayerid] = 0;
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "* Du bist nun nicht mehr an STD erkrankt. Die Ärzte konnten dich retten! !");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Nicht im Rettungswagen / Rettungshelikopter!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du darfst diesen Befehl nicht benutzen !");
    return 1;
    }
    }
    }
    else
    {
    format(string, sizeof(string), " %d ist kein aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }


    Ich möchte als 3. Variante ein Armorkauf Hinzufügen.


    ----------------------------------------------------------
    Und jetzt zu dem Problem:
    Wenn ich /heal mache, dann steht dort, "NAME hat seine Schutzweste angelegt"
    Obwohl es ja garkein Armor gibt. Da dies ja nur bei dem PD etc so ist.


    Also ich möchte, dass diese Nachricht nur kommt, wenn auch Armor eingebaut wurden ist.


    Diese Signatur wird erneuert.
    Bitte haben Sie ein wenig geduld...



  • format(string,sizeof(string),"/ban %d %s",pClicked[playerid],inputtext);
    OnPlayerCommandText(playerid,string);
    }
    }
    return 1;
    }


    if(dialogid == DIALOG_CLICK_HEALTH)
    {
    if(PlayerInfo[playerid][pAdmin] >= 2)
    {
    if(response == 1)
    {
    if(!IsNumeric(inputtext))
    {
    SendClientMessage(playerid,COLOR_RED," ERROR: Kein gültiger Wert!");
    return 1;
    }
    new hp = strval(inputtext);
    if(hp < 0 || hp > 100)
    {
    SendClientMessage(playerid,COLOR_RED," ERROR: Health zwischen 0 und 100!");
    return 1;
    }
    format(string,sizeof(string),"/sethp %d %d",pClicked[playerid],hp);

    KingFurkan
    Spitzenreiter SA-MP Scripting