[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Moin, mal eine frage warum Funktioniert das nicht ?
    Der Baum bewegt sich kein bisschen


    Code
    MoveDynamicObject(Holzfb[i][holzfb_ID], Holzfb[i][holzfb_x], Holzfb[i][holzfb_y]+0.001, Holzfb[i][holzfb_z], 0.0007, Holzfb[i][holzfb_urx], Holzfb[i][holzfb_ury], Holzfb[i][holzfb_urz]);


    Wenn ich es so mache dann macht er keine Bewegung sondern ist direkt in der Position wo er sich "hinbewegen" soll

    Code
    MoveDynamicObject(Holzfb[i][holzfb_ID], Holzfb[i][holzfb_x], Holzfb[i][holzfb_y], Holzfb[i][holzfb_z], 0.0007, Holzfb[i][holzfb_urx], Holzfb[i][holzfb_ury], Holzfb[i][holzfb_urz]);
  • Der Baum bewegt sich kein bisschen

    MoveDynamicObject(Holzfb[i][holzfb_ID], Holzfb[i][holzfb_x], Holzfb[i][holzfb_y], Holzfb[i][holzfb_z]+0.001, 0.001, Holzfb[i][holzfb_urx], Holzfb[i][holzfb_ury], Holzfb[i][holzfb_urz]);


    und so? :)

    ast2ufdyxkb1.png


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

  • Kleine Frage.
    Habe OnPlayerClickPlayer drinnen.
    Jedoch wird das irgendwie nicht gecalled.
    Woran kann das liegen? Es wird einfach jarnichts davon ausgefuehrt.


  • Hast du einmal geklickt ? Musst glaub ich 2 mal quasi klicken einmal zum markieren und einmal für das aufrufen des callbacks.

    Eigentlich sollte einmal klicken reichen, durch das hovern wird es automatisch markiert :)



    Es wird einfach jarnichts davon ausgefuehrt.

    Crashdetect geladen, mal einen print gesetzt nach ganz oben, wird dieser ausgeführt?


    Es kann sein, dass der Callback falsch gehookt wird durch ein Include, wenn selbst das print nicht ausgeführt wird :)

    ast2ufdyxkb1.png


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

  • innerhalb einer Area zurückgibt.

    Meinst du ein Rechteck?


    Dann:


    ast2ufdyxkb1.png


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

  • Ja genau halt wie in einer gangzone z.B


    Aber warum returnt die zweite Funktion das Ergebnis nicht?


    RandomFloat returnt ja die random koordinaten aber bei RandomPointInRectangle müssten


    die beiden Ergebnisse doch zusammengefügt und returnt werden, oder nutzt man diese Funktion anders?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hey,
    Habe DynamicAreas (8 Stück) und will in einer Funktion abfragen ob er in einer von dieser ist.
    Die Funktion wird alle 2 Sekunden aufgerufen, ich weiß jetzt nicht genau was das schlauste wäre.


    So frage ich ja nach einer Area ab.

    C
    forward CheckMS(playerid);
    public CheckMS(playerid)
    {
        if(IsPlayerInDynamicArea(playerid,ZoneX[0//0-7]))
        {

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Du brauchst das doch gar nicht abfragen.


    Du gibst ihm einfach eine ID.


    ast2ufdyxkb1.png


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

  • Ich habe ein Problem. Ich will ein Timer setzten, dieser wird aber öfters gesetzt, wenn ich in den anderen Areas rein gehe.
    Könnte ich noch eine Variable erstellen und dann abfragen, ob der Timer bereits gesetzt ist, oder gibt es eine vernünftige Lösung?


    C
    if(areaid == XArea[0])
    	{
    SetTimerEx("X",2000,true,"i",playerid);
    		PlayerArea[playerid] = 1;
    	}
    	if(areaid == XArea[1])
    	{
    SetTimerEx("X",2000,true,"i",playerid);
    		PlayerArea[playerid] = 1;
    	}

    I

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Ich habe ein Problem. Ich will ein Timer setzten, dieser wird aber öfters gesetzt, wenn ich in den anderen Areas rein gehe.
    Könnte ich noch eine Variable erstellen und dann abfragen, ob der Timer bereits gesetzt ist, oder gibt es eine vernünftige Lösung?


    C
    if(areaid == XArea[0])
    	{
    SetTimerEx("X",2000,true,"i",playerid);
    		PlayerArea[playerid] = 1;
    	}
    	if(areaid == XArea[1])
    	{
    SetTimerEx("X",2000,true,"i",playerid);
    		PlayerArea[playerid] = 1;
    	}

    I

    SetTimerEx() gibt eine Zahl zurück, die eine einmalige ID für die Timer darstellt. Wenn du diese in eine Variable speicherst, kannst du checken ob bereits ein Timer existiert und ggf. diesen per KillTimer killen. Solltest du den Weg gehen, solltest du entsprechend auch beim Aufruf des Timers die Variable auf einen invaliden Wert setzen (z.B. -1).

  • Danke dir!
    Wie kann ich ein Delay erstellen?


    Ich habe eine KeyState abfrage, ich will nicht, dass man die Taste penetrieren kann und das dadurch die weiteren Funktionen öfters aufgerufen werden.
    Was kann ich da machen?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Was kann ich da machen?

    Timestamp nutzen.


    ast2ufdyxkb1.png


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

  • Danke dir!
    Wie kann ich ein Delay erstellen?


    Ich habe eine KeyState abfrage, ich will nicht, dass man die Taste penetrieren kann und das dadurch die weiteren Funktionen öfters aufgerufen werden.
    Was kann ich da machen?

    Wenn ich es richtig verstehe, möchtest du dass wenn man eine bestimmte Taste drückt, erst nach drei Sekunden (z.B.) wieder die Taste drücken kann bzw. der Code ausgeführt wird? Das würde sich beispielsweise über das Speichern des aktuellen Timestamps (gettime()) realisieren. Dann kannst du den Wert in einer Variable speichern, die Differenz bilden und schauen, ob diese beispielsweise drei ist.


    Sollte die Differenz unter einer Sekunde liegen (beispielsweise alle 500ms) kannst du mit [wiki]GetTickCount[/wiki]() arbeiten. Falls du dich für diese Funktion entscheidest, kann ich dir den Wikieintrag ans Herz legen.