/heal ID /kill ID etc.

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
  • Ich hab ne ganz knappe Frage.
    Ich habe ein Kommando mit dem man sich selbst healt
    if(strcmp(cmdtext,"/heal",true)==0)
    {
    SetPlayerHealth(playerid, 100);
    SendClientMessage(playerid, 0xFFFFFFFF, "Du wurdest geheilt!");
    }
    Wie kann man nun /heal Crossline oder /heal ID einfügen?
    Crossline

  • Mit OCMD kannst du Parameter schnell und einfach verwenden, würde dann so aussehen:
    ocmd:heal(playerid,params[])
    {
    new pID; //Der Parameter wird in dieser Variable gespeichert
    if(sscanf(params, "i", pID))
    {
    return SendClientMessage(playerid,0xFFFFFFFF,"/heal [Spieler-ID 1]"); //Hier wird eine Fehlermeldung ausgegeben, sollte kein Parameter eingegeben worden sein
    }
    SetPlayerHealth(pID, 100); // Dieser Spieler wird gehealt ...
    SendClientMessage(pID, 0xFFFFFFFF, "Du wurdest geheilt!"); //... und bekommt diese Message ausgegeben
    return 1;
    }

  • ocmd:heal(playerid,params[])
    {
    new pID; //Der Parameter wird in dieser Variable gespeichert
    if(sscanf(params, "i", pID))
    {
    return SendClientMessage(playerid,0xFFFFFFFF,"/heal [Spieler-ID 1]"); //Hier wird eine Fehlermeldung ausgegeben, sollte kein Parameter eingegeben worden sein
    }
    SetPlayerHealth(pID, 100); // Dieser Spieler wird gehealt ...
    SendClientMessage(pID, 0xFFFFFFFF, "Du wurdest geheilt!"); //... und bekommt diese Message ausgegeben
    return 1;
    }


    C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(1) : error 029: invalid expression, assumed zero
    C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(1) : error 017: undefined symbol "ocmd_heal"
    C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(1) : error 029: invalid expression, assumed zero
    C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(1) : fatal error 107: too many error messages on one line


    // Die 1'en wurden geändert damit es verständlich ist

  • #include <a_samp>
    #include <Dini>
    #include <dudb>
    #include <ocmd>
    #include <Sscanf>


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    ocmd:heal(playerid,params[])
    {
    new pID; //Der Parameter wird in dieser Variable gespeichert
    if(sscanf(params, "i", pID))
    {
    return SendClientMessage(playerid,0xFFFFFFFF,"/heal [Spieler-ID 1]"); //Hier wird eine Fehlermeldung ausgegeben, sollte kein Parameter eingegeben worden sein
    }
    SetPlayerHealth(pID, 100); // Dieser Spieler wird gehealt ...
    SendClientMessage(pID, 0xFFFFFFFF, "Du wurdest geheilt!"); //... und bekommt diese Message ausgegeben
    return 1;
    }
    return 0;
    }

  • ocmd-Befehle gehören in keine Publics.. mach es am besten ganz unten vom Script unter "OnPlayerClickPlayer(playerid, clickedplayerid, source)"
    (Standartsgemäß)


    Beispiel:

    public LOL(playerid)
    {
    return 1;
    }
    ocmd:wtf(playerid,params[]) //IN KEINEM PUBLIC
    {
    SCM(playerid,Grau,"WTF");
    return 1;
    }

    Einmal editiert, zuletzt von Sh12 ()

  • Vielen Dank! Hat geklappt!
    Jetzt wollte ich noch ein Kommando "/up ID" einfügen, womit man Spieler nach oben versetzt.


    ocmd:up(playerid,params[])
    {
    new pID2; //Der Parameter wird in dieser Variable gespeichert
    if(sscanf(params, "i", pID2))
    {
    return SendClientMessage(playerid,0xFFFFFFFF,"/up [Spieler-ID]"); //Hier wird eine Fehlermeldung ausgegeben, sollte kein Parameter eingegeben worden sein
    }
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    SetPlayerPos(playerid,x,y,z+20.0);
    SendClientMessage(pID2, 0xFFFFFFFF, "Du wurdest nach oben versetzt!"); //... und bekommt diese Message ausgegeben
    return 1;
    }
    Bei /up kommt die Fehlermeldung, dass eine ID fehlt, das ist ja auch gut so.
    Aber egal welche ID ich eingebe, immer werde ich hochversetzt. Warum?