/heal [Spieler] [Preis]

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 liebe User,


    bei mir auf meinem Deathmatchserver gibt es die Spielerklasse " Medic ". Der Medic soll andere Spieler mit dem Befehl "/heal [ Spielerid ] [ Preis ] healen können.
    Dann bekommt der Medic einen Timer von einer Minute, bis er erneut einen Spieler heilen kann. Der Medic muss natürlich in der Nähe des gewünschten Spieleres sein.


    Schonmal Danke im Vorraus.


    Mfg, Sunny123321


  • if(strcmp(cmd, "/heal", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    giveplayerid = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_RED, "FEHLER: /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 1000$ !"); 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));
    if(gTeam[playerid] == TEAM_CYAN||SpielerInfo[playerid][sMember]==4)//model
    {
    for(new i=0; i<sizeof(Krankenwagen); i++)
    {
    if(IsPlayerInVehicle(playerid,Krankenwagen[i]))
    {
    if(!IsPlayerInVehicle(giveplayerid,Krankenwagen[i]))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Spieler ist nicht im Krankenwagen");
    return 1;
    }
    if(PlayerMoney[giveplayerid] < moneys)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Spieler hat nicht genug Geld!");
    return 1;
    }
    new Float:tempheal;
    GetPlayerHealth(giveplayerid,tempheal);
    if(tempheal >= 99.0)
    {
    SendClientMessage(playerid, COLOR_RED," 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);
    PlayerMoney[playerid] = PlayerMoney[playerid]+ moneys;
    PlayerMoney[giveplayerid] = PlayerMoney[giveplayerid]- moneys;
    new hp = 0;
    if(SpielerInfo[playerid][pPainPerk] > 0)
    {
    hp = 20 * SpielerInfo[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, COLOR_GREEN,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! !");
    }
    return 1;
    }
    }
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht im Krankenwagen");
    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;
    }

    Mit freundlichen Grüßen,
    Dachdecker

  • Arbeitest du mit einem bestimmten Command Prozessor (ocmd,dcmd,...)?
    Tipps:
    -Leichte Orientierung am Beitrag des Vorposters.
    -sscanf
    -Timestamp (Tutorial suchen)