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
  • Tag Leute,
    bin jz mal echt am verzweifeln,
    komme nicht mehr weiter, ich möchte, dass wenn man /heal Player macht, der spieler, der gehealt wird, geld abgezogen bekommt. naja kann es nicht beschrieben hier ein bespiel:
    ich werde gehealt, habe vorher 64HP und bekomme dann 100HP , also muss ich 36$ bezahlen da mir 36HP hinzugefügt wurden, hier mal mein befehl, kann mir einer den so machen wie anhand des beispiels?



    ocmd:heal(playerid,params[])
    {
    new pID, Float:health, OldHealth = GetPlayerHealth(pID,health),str[50];
    if(IsSpielerInJob(playerid,0))
    {
    if(IsPlayerInRangeOfPlayer(playerid, pID, 2.0))
    {
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,ROT,"Benutzung: /heal [Spieler]");
    new price = 100 - OldHealth; price -= GetPlayerHealth(pID,health);
    if(GetPlayerMoney(playerid) > price*1)
    price = price*1;
    SetPlayerHealth(pID, 100.0);
    GivePlayerMoney(pID, -price);
    GivePlayerMoney(playerid, price);
    format(str, sizeof str, "Du wurdest für %d$ gehealt!", price);
    SendClientMessage(pID, GRUEN, str);
    format(str, sizeof str, "Du hast den Spieler für %d$ gehealt!", price);
    SendClientMessage(playerid, GRUEN, str);
    return 1;
    }
    }
    return 1;
    }

  • ocmd:heal(playerid,params[]){
    new pID, Float:health, OldHealth = GetPlayerHealth(pID,health),str[50];
    if(IsSpielerInJob(playerid,0))
    {
    if(IsPlayerInRangeOfPlayer(playerid, pID, 2.0))
    {
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,ROT,"Benutzung: /heal [Spieler]");
    new price = 100 - OldHealth; price -= GetPlayerHealth(pID,health);
    if(GetPlayerMoney(playerid) > price*1)
    price = price*1;
    SetPlayerHealth(pID, 100.0);
    GivePlayerMoney(pID, -price);
    GivePlayerMoney(playerid, price);
    format(str, sizeof str, "Du wurdest für %d$ gehealt!", price);
    SendClientMessage(pID, GRUEN, str);
    format(str, sizeof str, "Du hast den Spieler für %d$ gehealt!", price);
    SendClientMessage(playerid, GRUEN, str);
    return 1;
    }
    }
    return 1; }


    Machst doch einfach so

  • Hier noch eine etwas kürzere Variante, aber die Praktisch genauso funktioniert (falls errors drinne sind, sag bescheid) ^^
    Hier ziehe ich einfach von 100 das Leben ab, was der Spieler zurzeit hat


    ocmd:heal(playerid,params[])
    {
    new pID, Float:health,str[50];
    if(IsSpielerInJob(playerid,0))
    {
    if(IsPlayerInRangeOfPlayer(playerid, pID, 2.0))
    {
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,ROT,"Benutzung: /heal [Spieler]");
    if(GetPlayerMoney(pID) >= 100 - GetPlayerHealth(pID)){
    GivePlayerMoney(pID, -(100 - GetPlayerHealth(pID)));
    GivePlayerMoney(plyerid, 100 - GetPlayerHealth(pID));
    format(str, sizeof str, "Du wurdest für %d$ gehealt!", 100 - GetPlayerHealth(pID));
    SendClientMessage(pID, GRUEN, str);
    format(str, sizeof str, "Du hast den Spieler für %d$ gehealt!",100 - GetPlayerHealth(pID));
    SendClientMessage(playerid, GRUEN, str);
    SetPlayerHealth(pID, 100);
    }
    return 1;
    }
    }
    return 1;
    }

  • Sebastian =



    C:\Users\Philip\Documents\Spiele\Rockstar Games\SAMP Server\gamemodes\FunX.pwn(2347) : warning 202: number of arguments does not match definition
    C:\Users\Philip\Documents\Spiele\Rockstar Games\SAMP Server\gamemodes\FunX.pwn(2348) : warning 202: number of arguments does not match definition
    C:\Users\Philip\Documents\Spiele\Rockstar Games\SAMP Server\gamemodes\FunX.pwn(2349) : error 017: undefined symbol "plyerid"
    C:\Users\Philip\Documents\Spiele\Rockstar Games\SAMP Server\gamemodes\FunX.pwn(2351) : error 017: undefined symbol "price"
    C:\Users\Philip\Documents\Spiele\Rockstar Games\SAMP Server\gamemodes\FunX.pwn(2353) : error 017: undefined symbol "price"
    C:\Users\Philip\Documents\Spiele\Rockstar Games\SAMP Server\gamemodes\FunX.pwn(2341) : warning 203: symbol is never used: "health"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.

    Zeile 2339 - 2360


    //edit:
    so war fehler , hab die klammern nich richtig eingefügt, jz sind die zwei errors noch da

    C:\Users\Philip\Documents\Spiele\Rockstar Games\SAMP Server\gamemodes\FunX.pwn(2351) : error 017: undefined symbol "price"
    C:\Users\Philip\Documents\Spiele\Rockstar Games\SAMP Server\gamemodes\FunX.pwn(2353) : error 017: undefined symbol "price"

  • ocmd:heal(playerid,params[]){
    new pID, Float:health,str[50];
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,ROT,"Benutzung: /heal [Spieler]");
    if(!IsSpielerInJob(playerid,0)) return SendClientMessage(playerid,ROT,"Du hast nicht den richtigen Job.");
    if(!IsPlayerInRangeOfPlayer(playerid, pID, 2.0)) return SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Spielers.");
    GetPlayerHealth(pID,health);
    new Cash = 100-floatround(health);
    if(GetPlayerMoney(pID) < Cash) return SendClientMessage(playerid,ROT,"Der Spieler hat nicht genug Geld bei sich.");
    GivePlayerMoney(pID,-Cash);
    GivePlayerMoney(playerid,Cash);
    format(str, sizeof str, "Du wurdest für %d$ gehealt!",Cash);
    SendClientMessage(pID, GRUEN, str);
    format(str, sizeof str, "Du hast den Spieler für %d$ gehealt!",Cash);
    SendClientMessage(playerid, GRUEN, str);
    SetPlayerHealth(pID, 100);
    return 1;
    }


    EDIT:
    Code fixed

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • ocmd:heal(playerid,params[]){
    new pID, Float:health,str[50];
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,ROT,"Benutzung: /heal [Spieler]");
    if(!IsSpielerInJob(playerid,0)) return SendClientMessage(playerid,ROT,"Du hast nicht den richtigen Job.");
    if(!IsPlayerInRangeOfPlayer(playerid, pID, 2.0)) return SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Spielers.");
    if(GetPlayerMoney(pID) < 100 - GetPlayerHealth(pID)) return SendClientMessage(playerid,ROT,"Der Spieler hat nicht genug Geld bei sich.");
    health = GetPlayerHealth(pID);
    GivePlayerMoney(pID,-health);
    GivePlayerMoney(playerid,health);
    format(str, sizeof str, "Du wurdest für %d$ gehealt!",health);
    SendClientMessage(pID, GRUEN, str);
    format(str, sizeof str, "Du hast den Spieler für %d$ gehealt!",health);
    SendClientMessage(playerid, GRUEN, str);
    SetPlayerHealth(pID, 100);
    return 1;
    }


    Probier ob es klappt, glaube jedoch nicht :D

  • klar, Sebastian, undblunt, dann werden immer 99$ abgezogen und hinzugefügt also IMMER 99$ auch im chat, genau so wie bei mir vorher :S


    ocmd:heal(playerid,params[]){
    new pID, Float:health,str[50];
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,ROT,"Benutzung: /heal [Spieler]");
    if(!IsSpielerInJob(playerid,0)) return SendClientMessage(playerid,ROT,"Du hast nicht den richtigen Job.");
    if(!IsPlayerInRangeOfPlayer(playerid, pID, 2.0)) return SendClientMessage(playerid,ROT,"Du bist nicht in der nähe des Spielers.");
    GetPlayerHealth(pID,health);
    new Cash = 100-floatround(health);
    if(GetPlayerMoney(pID) < Cash) return SendClientMessage(playerid,ROT,"Der Spieler hat nicht genug Geld bei sich.");
    GivePlayerMoney(pID,-Cash);
    GivePlayerMoney(playerid,Cash);
    format(str, sizeof str, "Du wurdest für %d$ gehealt!",Cash);
    SendClientMessage(pID, GRUEN, str);
    format(str, sizeof str, "Du hast den Spieler für %d$ gehealt!",Cash);
    SendClientMessage(playerid, GRUEN, str);
    SetPlayerHealth(pID, 100);
    return 1;
    }


    So sollte es funzen, sry :3


    sLy:
    So wird das defintiv nicht funktionieren :whistling:


    EDIT: fixed

  • funktioniert nicht sly


    //edit blunt diese errors kommen! z 2316 - 2333


    C:\Users\Philip\Documents\Spiele\Rockstar Games\SAMP Server\gamemodes\FunX.pwn(2322) : warning 217: loose indentation
    C:\Users\Philip\Documents\Spiele\Rockstar Games\SAMP Server\gamemodes\FunX.pwn(2323) : warning 217: loose indentation
    C:\Users\Philip\Documents\Spiele\Rockstar Games\SAMP Server\gamemodes\FunX.pwn(2324) : warning 213: tag mismatch
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Warnings.


  • Die 1. beiden Fehler sind nur einrückungsfehler. Poste mal bitte die letze Zeile, wo du Tag mismatch bekommst :pinch: