eine Zeile für GetPlayerPos[ähnlich wie in Squirell]

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
  • ich hab gerade mal Langeweile und hab etwas Ausprobiert


    PHP
    stock Float:GetPlayerP(playerid)
    {
    	new Float:spos[3];
    	GetPlayerPos(playerid,spos[0],spos[1],spos[2]);
    	return spos[3];
    }


    und habs so benutzt

    PHP
    new Float:Pos[3] = GetPlayerP(playerid);


    weiß jemand vll ob es etwas anderes gehen könnte


    die Fehlermeldung hab ich übrigens

    PHP
    C:\Dokumente und Einstellungen\jahn1\Desktop\Alle Dynamischen Selfmades\truckscript.pwn(224) : error 032: array index out of bounds (variable "spos")
    C:\Dokumente und Einstellungen\jahn1\Desktop\Alle Dynamischen Selfmades\truckscript.pwn(235) : error 008: must be a constant expression; assumed zero
    C:\Dokumente und Einstellungen\jahn1\Desktop\Alle Dynamischen Selfmades\truckscript.pwn(235) : warning 204: symbol is assigned a value that is never used: "Pos"

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

  • Der Gedanke ist eigentlich gut. Nur bei Deiner Umsetzung happert es aber noch.


    Dein Stock ist falsch, die gibst jedes mal den letzten Wert aus Deinem Array zurück.
    Außerdem ist der Aufruf der Funktion nicht richtig.


    So ohne weiteres ist Deine Methode nicht zu realisieren. Dabei bleibt immer noch die Frage offen, ob dass auch effizienter ist.

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

  • Versuch es mal so
    stock Float:GetPlayerP(playerid)
    {
    new Float:spos[3];
    GetPlayerPos(playerid,spos[0],spos[1],spos[2]);
    return;
    }


    printf("%f", GetPlayerP);


    bin mir nicht sicher


    p.s. "return spos[3];" bedeutet das er den 4 Wert returnt, da der Wert nicht existiert ist es nicht möglich.


  • Da jedes mal die funktion aufgerufen werden müsste, ist es auf keinen fall effizienter, besser wäre es jedesmal neu die posis herauszufinden.


    Stimme Dir da zu. Solch eine Funktion ist eigentlich überflüssig.

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

  • [BlaZZeR]BirD: Durch dich bin ich schon ein Stück weiter
    habs jetzt so


    PHP
    stock Float:GetPlayerP(playerid)
    {
        new Float:spos[3];
        GetPlayerPos(playerid,spos[0],spos[1],spos[2]);
        return spos;
    }


    PHP
    CMD:vehicle(playerid,params[])
    {
    	new Float:Pos[3] = GetPlayerP(playerid); //Zeile 235
    	printf("%f,%f,%f",Pos[0],Pos[1],Pos[2]);
    	return 1;
    }


    und nurnoch 1 Fehler

    PHP
    C:\Dokumente und Einstellungen\jahn1\Desktop\Alle Dynamischen Selfmades\truckscript.pwn(235) : error 008: must be a constant expression; assumed zero

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

  • Fehler zeigt er nicht mehr an, nur blöd das es nicht kürzer geht denn bei Squirell sieht es so aus


    PHP
    local cposi = getPlayerPosition( playerid );
    			local vehicle = createVehicle( MID.tointeger(), cposi[0] + 2.0, cposi[1], cposi[2] + 1.3, 0.0, 0.0, 0.0 );

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.


  • stock Float:GetPlayerP(playerid)
    {
    new Float:spos[3];
    GetPlayerPos(playerid,spos[0],spos[1],spos[2]);
    return spos[3];
    }

    • spos[3] existiert in diesem Code nicht
    • auch wenn es existieren würde, hättest du den Wert zurückgegeben, der sich nur in spos[3] befinden würde und nicht das gesamte Array
  • so habs hinbekommen


    so ist jetzt der Stock

    PHP
    stock Float:GetPlayerP(playerid)
    {
        new Float:spos[4];
        GetPlayerPos(playerid,spos[0],spos[1],spos[2]);
        GetPlayerFacingAngle(playerid, spos[3]);
        return spos;
    }


    so das Define

    PHP
    #define GetPlayerPo(%0) new Float:Pos[4]; Pos = GetPlayerP(%0)


    und so der Befehl zum Scripten

    PHP
    CMD:vehicle(playerid,params[])
    {
    	GetPlayerPo(playerid);
    	printf("%f,%f,%f,%f",Pos[0],Pos[1],Pos[2],Pos[3]);
    	return 1;
    }


    und nochmals Danke an Alle Helfer

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

    Einmal editiert, zuletzt von whitetiiger ()

  • Mach doch dann gleich alles als #define ;)
    Dann muss er den stock nicht extra aufrufen ...

  • ich selber finde es so aber übersichtlicher, ausserdem hab ich das jetzt GetPlayerData genannt und bietet neben den Positionen und Rotationen jetzt auch schon Heath

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

  • ich selber finde es so aber übersichtlicher, ausserdem hab ich das jetzt GetPlayerData genannt und bietet neben den Positionen und Rotationen jetzt auch schon Heath


    Ob das so sinnvoll ist?
    Dann lässt du ja die ganze Zeit Daten auslesen, die du ja garnicht brauchst.
    Angenommen du brauchst nur sein Leben.
    Dann hast du ja auch immer seine Position, seine Rüstung, seine Waffen, seine keine Ahnung was noch alles :P

  • hiermit kann ich nur die ganzen Floats vom Spieler auslesen
    ausserdem dadurch das, dass ganze Script nachher Dynamisch ist hab ich noch genug ressourcen verfügbar.
    Es soll ja so kurz wie möglich und wenn ich so fast 5 Zeilen je Spare find ich es so besser
    Winter: so kann ich ja gleich die Standart functions verwenden

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.