/Gotoxyz befehl funktioniert nicht?

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 gerade einen Goto befehl schreiben um mich per befehl zu bestimmten Koordinaten zu Porten
    Das habe ich bisher geschrieben

    if(strcmp(strget(cmdtext,3),"/gotoxyz",true)==0)
    {
    if(!strlen(strget(cmdtext,3))) return SendClientMessage(playerid,COLOR_ROT,"Benutze /gotoxyz [xcords] [ycords] [zcords]");
    {
    new Float:X, Float:Y, Float:Z;
    X = strval(strget(cmdtext,1));
    Y = strval(strget(cmdtext,2));
    Z = strval(strget(cmdtext,3));
    SetPlayerPos(playerid,X,Y,Z);
    }
    return 1;
    }


    Allerdings passiert nichts wenn ich den befehl eingebe.
    Wenn ich nur /gotoxyz eingebe kommt halt die Meldung was ich angeben soll..


    Was genau habe ich nun vergessen? :)


    Mit freundlichen Grüßen

    Mit freundlichen Grüßen
    Siepac

  • Verwende am besten ocmd.


    Code
    ocmd:gotopos(playerid,params[])
    {
    	new basic_floats;
    	if(sscanf(params,"fff",x,y,z))return SendClientMessage(playerid,-1,"Verwendung: /goto (POSX) (POSY) (POSZ)");
    	SetPlayerPos(playerid,x,y,z);
    	SendClientMessage(playerid,-1,"Du hast dich teleportiert.");
    	return 1;
    }
  • Verwende am besten ocmd.


    Code
    ocmd:gotopos(playerid,params[])
    {
    	new basic_floats;
    	if(sscanf(params,"fff",x,y,z))return SendClientMessage(playerid,-1,"Verwendung: /goto (POSX) (POSY) (POSZ)");
    	SetPlayerPos(playerid,x,y,z);
    	SendClientMessage(playerid,-1,"Du hast dich teleportiert.");
    	return 1;
    }

    Wenn ich richtig sehe muss ich dafür ocmd + sscanf includen
    Allerdings kommt dann folgendes in der Console


    Run time error 19: "File or function is not found"


    Wie würde der befehl denn bei meiner Methode Funktionieren?

    Mit freundlichen Grüßen
    Siepac

  • Was genau habe ich nun vergessen?

    In der ersten Zeile musst du Index 0 nehmen:
    if(strcmp(strget(cmdtext,0),"/gotoxyz",true)==0)
    {
    if(!strlen(strget(cmdtext,3))) return SendClientMessage(playerid,COLOR_ROT,"Benutze /gotoxyz [xcords] [ycords] [zcords]");
    new Float:X, Float:Y, Float:Z;
    X = floatstr(strget(cmdtext,1));
    Y = floatstr(strget(cmdtext,2));
    Z = floatstr(strget(cmdtext,3));
    SetPlayerPos(playerid,X,Y,Z);
    return 1;
    }

  • Allerdings kommt dann folgendes in der Console


    Run time error 19: "File or function is not found"


    Wie würde der befehl denn bei meiner Methode Funktionieren?

    Wenn das bei dir kommt, wenn du die Console startest bzw. den Server, dann hast du wahrscheinlich
    1) in deinem "plugins"-Ordner sscanf.dll nicht drinne hast, wenn du Linux hast sscanf.so - mach am besten alle beiden Dateien da rein ^^
    2) in der Server.cfg vergessen ganz unten ein "plugins sscanf" hinzuschreiben, denn somit weiß die Konsole "Ah ja, das Plugin sscanf muss geladen werden"
    und dadurch gibts auch kein Problem mehr.
    3) im pawno -> include Ordner -> sscanf2.inc nicht drinne und diese auch in deinem Skript via

    Code
    #include <sscanf2>


    includiert.


    Nach diesen ganzen Vorgängen, sollte der Runtime Error weg sein. und ocmd, was du auch bitte im include Ordner von pawno hast,
    auch im Skript inkludieren via

    Code
    #include <ocmd>