error bei /heal command

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
  • Wie die überschrift sagte ich hab ein error beim heal command
    error:


    C:\Users\ascom\Desktop\Samp server\gamemodes\Untitled.pwn(1051) : error 035: argument type mismatch (argument 1)


    in zeile:
    SetPlayerHealth(Verletzte,100);
    Hoffe einer kann helfen ^^

  • hier :)

    ocmd:heal(playerid,params[])
    {
    if(!IstSpielerInFraktion(playerid,7)) return 0;
    new Medic[128],Verletzte[128];
    if(sscanf(params,"uis",Verletzte,Medic))return SendClientMessage(playerid,Blau,"/heal [SpielerID]");
    format(Verletzte,sizeof(Verletzte),"Du wurdest vom Sanitäter %s geheilt!",Medic,Verletzte);
    format(Medic,sizeof(Medic),"Du hast einen Patienten geheilt!");
    SetPlayerHealth(Verletzte,100);
    return 1;
    }

  • So sollte es richtig sein ;D



    ocmd:heal(playerid,params[])
    {
    new string[128];
    if(!IstSpielerInFraktion(playerid,7)) return 1;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Blau,"/heal [SpielerID]");
    format(string,sizeof(string),"Du wurdest vom Sanitäter %s geheilt!",SpielerName(playerid));
    format(string,sizeof(string),"Du hast %s geheilt!",SpielerName(pID));
    SetPlayerHealth(pID,100);
    return 1;
    }


    stock SpielerName(playerid)
    {
    new GAMER[MAX_PLAYER_NAME];
    GetPlayerName(playerid,GAMER,sizeof(GAMER));
    return GAMER;
    }

  • Den Fehler, den du gemacht hast ist, dass du für die ID im SetPlayerHealth keine Zahl, sondern einen string, Text, verwendet hast.

  • Wtf, ich versteh iwie nicht was du dir dabei gedacht hast. So müsste es richtig heißen:


    ocmd:heal(playerid,params[])
    {
    if(!IstSpielerInFraktion(playerid,7)) return 1; // Hier musst du 1 statt 0 returnen, sonst kommt bei dem Spieler Unknown Command. Würde dir auch ampfehlen dem Spieler noch ne Nachricht zu senden von wegen "Du bist kein Medic" oder so
    new medic[MAX_PLAYER_NAME],pID,string[128];

    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,Blau,"/heal [SpielerID]");

    GetPlayerName(playerid,medic,sizeof(medic));

    format(string,128,"Du wurdest vom Sanitäter %s geheilt!",medic);
    SendClientMessage(pID,Blau,string);
    SendClientMessage(playerid,Blau,"Du hast einen Patienten geheilt!");
    SetPlayerHealth(pID,100);
    return 1;
    }


    //Edit: Shoxx: Ebenfalls zwei Fehler die mir direkt ins Auge stechen. Erstens hast du pID nicht definiert ("new pID;") und zweitens wird der string zwar formatiert aber nichts ausgegeben ;)