/setvhp (playerid) (health)

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,


    ich wollte mir einen Befehl ins GM einbauen, nur irgendwie klappt das mit den Variablen nicht so ganz, wie ich es gerne hätte.


    Der Befehl sollte in etwa so aufgebaut sein:


    /setvhp (playerid/playername) (carhealth)


    /setvhp sollte deswegen eigentlich für "setvehiclehp" stehen (ist abgekürzt also).


    Und dann sollte man - ähnlich wie bei /sethp (playerid / playername) (hp) eine Zahl als Wert eintragen können.


    Also wenn man z.B. "/setvhp Testuser 200" eingibt, dann sollte das Auto nur noch 200 HP haben (und fängt somit an zu brennen).


    Vorher sollte natürlich abgefragt werden, ob der jeweilige User überhaupt im Auto sitzt (mit IsPlayerInAnyVehicle z.B.).


    Ich würde mich sehr über eure Hilfe freuen!


    Vielen Dank


    TRS_Sebastian

  • Naja, ich hab's mal mit deinem Ratschlag probiert, jedoch sind da noch einige Inkompatibilitäten:


    ---------------------------------[setvhp]------------------------------------------------
    if(strcmp(cmd, "/setvhp", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /setvhp [playerid/PartOfName] [health]");
    return 1;
    }
    new playa;
    new health;
    playa = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    health = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if (PlayerInfo[playerid][pAdmin] >= 4)
    {
    if(IsPlayerConnected(playa))
    {
    if(playa != INVALID_PLAYER_ID)
    {
    SetVehicleHealth(playa, health);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht befugt diesen Command zu benutzen (R4 +)!");
    }
    }
    return 1;
    }


    Es kompiliert zwar, der Befehl funktioniert ingame jedoch nicht.

  • Versuch es mal so:
    (Ungetestet)


    if(strcmp(cmd, "/setvhp", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /setvhp [playerid/PartOfName] [health]");
    new carid, health;
    tmp = strtok(cmdtext, idx);
    carid = strval(tmp);
    tmp = strtok(cmdtext, idx);
    health = floatstr(tmp);
    if(PlayerInfo[playerid][pAdmin] >= 4)
    {
    if(carid != INVALID_VEHICLE_ID)
    {
    SetVehicleHealth(carid, health);
    }
    }
    else SendClientMessage(playerid, COLOR_RED, "Du bist nicht befugt diesen Command zu benutzen (R4 +)!");
    }
    return 1;
    }


    Mit freundlichen Grüßen,
    Zunno

  • @ Zunno


    So muss man allerdings die Vehicle-ID eingeben.
    Was der Threadersteller möchte, ist allerdings, dass man eine SpielerID eingibt und dann die Health des Fahrzeuges, in dem der Spieler ist, verändert wird.
    Folgende Funktionen werden dazu benötigt:

    if(!IsPlayerInAVehicle(parameter)) return SendClientMessage(playerid,Farbe,"Der Spieler ist in keinem Fahrzeug!");
    SetVehicleHealth(GetPlayerVehicleID(parameter),parameter2)


    Grüße,
    tonyalva

  • Ich hab's jetzt so, aber es klappt leider nocht nicht:


    if(strcmp(cmd, "/setvhp", true) == 0)
    {
    new vhealth;
    new vehicleid = GetPlayerVehicleID(playerid);
    vhealth = strval(tmp);
    giveplayerid = ReturnUser(tmp);
    if(PlayerInfo[playerid][pAdmin] >=3)
    {
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "Benutzung: /setvhp [playerid/PartOfName] [vehiclehealth]");
    return 1;
    }
    else
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(!IsPlayerInVehicle(giveplayerid, vehicleid))
    {
    SendClientMessage(playerid, COLOR_RED, "Der Spieler sitzt in keinem Auto!");
    }
    else
    {
    SetVehicleHealth(GetPlayerVehicleID(giveplayerid),vhealth);
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Spieler nicht online!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht befugt diesen Command zu benutzen (R3 +)!");
    }
    return 1;
    }


    Kann mir einer helfen?