/heal Befehl

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
  • ocmd:heal(playerid,params[])
    {
    if(!IsPlayerInFrakt(playerid,3))return 0;
    {
    new Medic;
    new verletzter;
    if(sscanf(params,"u",verletzter))return SendClientMessage(playerid,ROT,"/heal [SpielerID]");
    {
    SetPlayerHealth(verletzter,100);
    GivePlayerMoney(Medic,50);
    GivePlayerMoney(verletzter,-50);
    new string[256];
    format(string,sizeof(verletzter),"Du wurdest von Artzt %s geheilt und bezahlst 50$.",verletzter);
    SendClientMessage(verletzter,ROT,string);
    }
    }
    return 1;
    }



    Ist ne grobe Lösung und ist in ocmd gescriptet


    Musst halt anpassen

  • Ihr schreibt, dass ein Preis auch eingegeben werden muss, doch bestimmt den Preis selber.
    Und GoldHamster, das hier ist völliger Schwachsinn:
    format(string,sizeof(verletzter)
    Und Medic brauchst Du garnicht extra zu definieren, (playerid) reicht auch aus, soweit ich weiß ;)



    ocmd:heal(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,3))
    {
    new verletzter;
    new preis;
    if(sscanf(params,"ui",verletzter,preis))return SendClientMessage(playerid,ROT,"/heal [SpielerID] [Preis]");
    SetPlayerHealth(verletzter,100);
    GivePlayerMoney(playerid,preis);
    GivePlayerMoney(verletzter,-preis);
    new string[128];// 128 reicht vollkommen
    format(string,sizeof(string),"Du wurdest von Artzt %s geheilt und bezahlst %d$.",SpielerName(playerid),preis);// Da gehört nicht verletzer sonder Medic weil du wirst ja nicht vom verletzten geheilt
    SendClientMessage(verletzter,ROT,string);

    }
    else
    {
    SendClientMessage(playerid,FARBE,"Du bist kein Medic!");
    }
    return 1;
    }


    So dürfte es klappen ;)

  • GoldHamster deins ist auch Falsch, da du eine Klammer zuviel gemacht hast.


    Einfach:



    ocmd:heal(playerid,params[])
    {
    new pID, string[128], money, namepID[MAX_PLAYER_NAME], nameplayerid[MAX_PLAYER_NAME];
    if(!isPlayerInFrakt(playerid,3))return 0;
    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;
    }


    ;)


    (edit): Kleiner Fehler (GivePlayerMoney(playerid, +money) -> GivePlayerMoney(playerid, money);)


  • C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(421) : error 036: empty statement
    C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(422) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Hier die Zeilen:



    if(GetPlayerMoney(pID) < money);return SendClientMessage(playerid, Rot, "Der Spieler hat nicht genügend Geld");//Zeile 421
    SetPlayerHealth(pID, 100);//Zeile 422