Float Random Problem

  • Moin Gemeinde,


    ist vieleicht jemand Online, der mir mal erklären kann, wie ich einen "Float Random" benutze?
    Ich habe minx,max,miny,maxy .


    Er sagt mir aber Tag mistach:


    PAWN
    1. new Float:X = random(405.9860 )- 381.0157;
    2. new Float:Y = random(-1826.9744) - -1810.9653;
    3. SetPlayerPos(playerid,X,Y, 19.58);

    vielen Dank im vorraus.


    Lg

  • #define randomEx(%0,%1) (random((%1)-(%0)+1)+(%0))
    Das schreib mal oben in dein Skript :)


    Und dann mach einfach sowas:


    new Float:X = randomEx(floatround(381.0157), floatround(405.9860));


    Es geht zwar der Float an sich verloren, aber auf diese 0.9 kommt es glaube ich nicht an und es ist der einfachste Weg :D

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Zeig mal deinen Code und printe die Koordinaten :)


    Also mit printf("%.02f | %.02f",X,Y);

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Hier die savepositions:


    AddPlayerClass(20,381.0157,-1811.2117,7.8315,358.7239,0,0,0,0,0,0); // 1 min x /
    AddPlayerClass(20,405.8052,-1810.9653,7.8281,270.6765,0,0,0,0,0,0); // 2 min y / MIN Z
    AddPlayerClass(20,405.9860,-1826.7716,7.8359,180.1223,0,0,0,0,0,0); // 3 max X /
    AddPlayerClass(20,381.7617,-1826.9744,7.8359,89.8814,0,0,0,0,0,0); // 4 max y / MAX Z


    Den Code siehst du ja oben schon.
    Ober vertausche ich da irgendwelche koordinaten?


    Man soll halt random in dem Gebiet spawnen

  • Nein :D


    Ich will deinen Code sehen, wie du meine Funktion nun verwendest.


    Und ich will Gegenprüfen wie die Koordinaten am Ende sind, die aus der random Funktion kommen, deshalb das print :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Hey, mein Rechner hat sich gestern Abend verabschiedet ^^.


    Hier ist der Code wie ich ihn jetzt habe :



    PAWN
    1. new Float:X = randomEx(floatround(381.0157), floatround(405.9860));
    2. new Float:Y = randomEx(floatround(-1810.9653), floatround(-1826.9744));
    3. SetPlayerPos(playerid,X,Y, 19.58);

    //Edit : Zusatz //


    Hier ist der print:


  • new Float:Y = randomEx(floatround(-1810.9653), floatround(-1826.9744));

    Du hast hier die Werte Vertauscht, der kleinere Wert muss immer vorne stehen ^^


    Also so schreiben:


    new Float:Y = randomEx(floatround(-1826.9744), floatround(-1810.9653));

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S