/heal System

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
  • 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;
    }

  • Kein Wunder das es nicht geht das ganze soll ja auch nicht einfach kopiert werden und mal eben in dein Script gebombt werden :pinch:


    überleg dir doch erstmal das Prinzip des ganzen


    • Der Befehl selber, Anzahl der Parameter , Wirkung ...
    • Welches/Welchen Level/Beruf soll der Spieler haben der den Befehl verwendet
    • Ist das Gegenüber in deiner Nähe/Im Notarzt Auto damit er überhaupt geheilt werden kann
    • Wie viel Lebensenergie hat der, der geheilt werden soll ( wäre ein auffüllen der Lebenspunkte überhaupt nötig ? )
    • Hat der das Gegenüber genug Geld für den Vorgang ?

    Wenn das alles so stimmt nach Bedingung kannst du dem Spieler den du im Paramter angegeben hast heilen mit dem angegebenen Preis der eventuell fest ist oder auch via weiteren Parameter bestimmt wird.
    Würdest du jetzt noch die Grundlagen eines solchen Scripts verstehen und die Sprache einigermaßen können würde eine Umsetzung eines solchen Befehles keine Schwierigkeiten darstellen.
    aber scheint für dich bestimmt nur blödes gequatsche zu sein.
    Kopieren und Einfügen wird dir sicher nicht helfen.

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • dann schau dir mal diese Abfrage an...


    if(gTeam[playerid] == TEAM_CYAN || PlayerInfo[playerid][pMember]== 4||PlayerInfo[playerid][pLeader] == 4 )


    Bedingung hierbei ist das die Variablen einen bestimmten Wert enthalten und hier muss nur eine der Variablen die genannte Zahl enthalten sprich eine "oder" Reihenfolge
    Klartext, die Variable für deinen Spieler enthält nicht die ID 4 für das Team 4 daher kann der Vorgang auch nicht forgesetzt werden.


    Ich empfehle dir noch immer die Grundkenntnisse zu lernen da ist es nämlich ganz wichtig zu wissen was "Bedingungen" in einem Code darstellen

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Probier das mal!

    ocmd:heal(playerid,params[])
    {
    new pID, string[128], money, namepID[MAX_PLAYER_NAME], nameplayerid[MAX_PLAYER_NAME];
    if(!isPlayerInFrakt(playerid,3))return SendClientMessage(playerid,RED,"* Du bist kein Arzt!"); //Da ist die Abfrage in welcher Fraktion der Spieler ist du kannst es auch als Admin ausführen (if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,RED,"* Du bist kein Administrator/Supporter!");)
    if(sscanf(params,"ui", pID, money))return SendClientMessage(playerid, farbe, "Benutze: /heal [SpielerID/TeilDesNamens] [Preis]");
    if(GetPlayerMoney(pID) < money)return SendClientMessage(playerid, farbe, "Der Spieler hat nicht genügend Geld");
    SetPlayerHealth(pID, 100);
    GivePlayerMoney(playerid, money);
    GivePlayerMoney(pID, -money);
    GetPlayerName(pID, namepID, MAX_PLAYER_NAME);
    GetPlayerName(playerid, nameplayerid, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du hast %s für $%d geheilt.", namepID, money);
    SendClientMessage(playerid, farbe, string);
    format(string, sizeof(string), "Du wurdest von Arzt %s für $%d geheilt.", nameplayerid, money);
    SendClientMessage(pID, farbe, string);
    return 1;
    }



    Ungetestet!

    Warum fällt immer die Wand um, wenn ein Mantafahrer dagegen fährt? - Der Klügere gibt nach!