Hilfe sscanf

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 diesen Befehl in mein Script einfügen
    ocmd:heal(playerid, params[])
    {
    new pID;
    if(sscanf(playerid,"u",pID)) return SendClientMessage(playerid,ROT,"Benutze: /heal [Spielername/Spielerid]");
    SetPlayerHealth(pID,100);
    }


    beim Compilieren kommt dieser Error.


    Zeile (282) : Falscher Variablentyp als Parameter (Parameter #1)
    Zeile (284) : warning 209: function "ocmd_heal" should return a value


    1 Errors, 1 Warnungen
    Du hast Errors im Skript. Kompilierung abgebrochen


    PWNMod Compiler Version 1.2
    (c) Trooper[Y]
    In Kooperation mit GTA-Servers.de


    MFG

  • ocmd:heal(playerid, params[])
    {
    if(IsPlayerConnected(playerid))
    {
    new pID;
    if(sscanf(playerid,"u",pID)) return SendClientMessage(playerid,ROT,"Benutze: /heal [Spielername/Spielerid]");
    SetPlayerHealth(pID, 100);
    }
    return 1;
    }

  • ocmd:heal(playerid, params[])
    {
    if(IsPlayerConnected(playerid))
    {
    new pID;
    if(sscanf(playerid, "u", pID)) SendClientMessage(playerid,ROT,"Benutze: /heal [Spielername/Spielerid]");
    SetPlayerHealth(pID, 100.0);
    return 1;
    }
    return 1;
    }
    Wenn es so auch nicht richtig ist,
    kann ich es Dir auch nicht sagen.


    Ich arbeite nicht mit ocmd.

  • Piet du hast Recht, das ist sowas wie eine unnötige Zeile im Script.


    //Der Befehl ist schon richtig von 4#Future, du hast vielleicht "sscanf" in deinen plugin ordner nicht getan oder die include vergessen.
    OMG Natürlich, es heißt "if(sscanf(params..." nicht "if(sscanf(playerid..."
    Peinlich Peinlich :S


    // Edit peinlichen Fehler ausgebessert.

    Einmal editiert, zuletzt von D4rkCl3ric ()

  • ich bin ebenfalls nicht der ocmd oder sscanf fan, jedoch finde ich es komisch, wenn man versucht
    aus dem "string" "playerid" etwas zu lesen.


    Syntax:

    Code
    string[] - String to extract parameters from.
    	format[] - Parameter types to get.
    	{Float,_}:... - Data return variables.


    Ihr lest also aus playerid, macht nicht "params" da etwas mehr sinn ?



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • Falls es (noch) nicht klar ist:



    ocmd:heal(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    new pID;
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,ROT,"Benutze: /heal [Spielername/Spielerid]");
    SetPlayerHealth(pID, 100);
    }
    return 1;
    }

    Berlin - Tel Aviv - Moskau

  • Jetzt lass doch die blöde Connected abfrage des Spielers selbst weg.
    Wenn schon kann man diese für den betreffenden Spieler machen, aber doch nicht für den ausführenden Spieler.



    ocmd:heal(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid, 0xFFFFFF,"Benutze: /heal [Spielername/SpielerID]");
    if(IsPlayerConnected(pID)) return SendClientMessage(playerid, 0xFFFFFF,"Sorry, der Spieler ist nicht online!");
    SetPlayerHealth(pID,100);


    return 1;
    }


    Wie immer um die Zeit, keine Garantie ;)



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )



  • als erstes ist hier die benutzung von sscanf falsch
    also if(sscanf(playerid, "u", pID))


    zu
    if(sscanf(params,"u",pID)) da die params vergessen wurden


    zu dem ist das doppel returnen sinnlos und es reicht auch 1 return
    es würde dir auch reichen SendClientMessage zu returnen
    sprich
    if(sscanf(playerid, "u", pID)) return SendClientMessage(playerid,ROT,"Benutze: /heal [Spielername/Spielerid]");
    . Zu dem ist die abfrage ob der Spielerconnectet ist sinnlos wenn da wäre die einzigste sinnvolle
    abfrage vllt ob der spieler eingeloggt

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