Beiträge von Kaliber

    Achsoo sehe erst jetzt, dass sich der Name nicht auf den Spielernamen bezieht, okay.

    Verstehe aber nicht warum man das nicht "wollen" wollte

    Weil der Server in dieser Zeit nichts machen kann und auf das Ergebnis von der Datenbank warten muss.



    Nutze bei Strings zudem IMMER %e, sonst wäre eine SQL-Injection möglich.

    Bin mir sicher, dass man das alles in eine Funktion packen kann

    Natürlich kann man das, aber das will man nicht :D


    Bzw man sollte es eigentlich schlicht weg vermeiden, da das keine asynchronen calls wären, sondern synchrone...


    Dann lade die User_ID doch einfach 1x am Start und dann speichere sie zwischen in einer Variable?


    Dann kannst du sie immer direkt nutzen, ohne eine Funktion verwenden zu müssen :)

    Nein ich lade den Spieler nicht, diese Funktion muss wirklich die userID returnen

    Naja, dann solltest du es so lösen:

    C
    //Hier ist Code 1
    Funktion_Der_UserID();
    //Hier ist Code 2


    Nimm nun den Code 2 und Kapsel ihn in eine neue Funktion:

    C
    //Hier ist Code 1
    Funktion_Der_UserID();
    
    
    stock Code2(playerid, user_ID)
    {
        //Hier ist nun Code 2
    }


    Und dann kannst du einfach Code2 aufrufen, sobald du den Wert der User_ID hast und dahin alles übergeben und nutzen :)

    Ist so etwas möglich

    Natürlich, einfach mit [wiki]SetTimerEx[/wiki] :)

    Wie krieg ich das alles in eine einzige Funktion?

    Das solltest du nicht tun wollen.


    Du solltest die User_ID einfach im Enum zwischenspeichern, wenn du den Spieler eh lädst.



    Wie mache ich, dass ich beim erstellen alle Index-Werte im Array auf 100 setze?

    new HP[10] = {100, ...};



    oder so ist ja auch doof.

    Wieso?


    Wenn es um solche Delays geht, muss man einen Timer verwenden.


    Kannst ja immer die selbe Funktion aufrufen. Übergibst und zählst halt immer den Parameter hoch :)
    (Mit [wiki]SetTimerEx[/wiki])

    //e: Generell brauchst du für einen Stock auch kein Forward, lediglich muss ein Public mit Forward genutzt werden.

    Nein, das stimmt so beides nicht.


    1. Tags wie (Float:) müssen für Funktionen angegeben werden, ansonsten weiß der Compiler ja nicht, dass es sich um einen Tag handelt.


    2. Wenn man die Funktion von der Code Logik her verwendet, bevor sie definiert wurde, muss man sie forwarden, damit der Compiler weiß, um welchen Tag es sich handelt. (Nur nötig bei TAG Funktionen)


    Keine Ahnung wieso da der Compiler bei dir crasht, aber nutz es doch lieber als Makro:


    #define GetDistance(%0,%1,%2,%3,%4,%5) VectorSize((%0)-(%3),(%1)-(%4),(%2)-(%5))

    Was kann ich da machen?

    Timestamp nutzen.


    Du brauchst das doch gar nicht abfragen.


    Du gibst ihm einfach eine ID.


    Danke für die Kritik.



    Warum nutzt du streamer funktionen, wenn du den Streamer nicht mit "includierst" mit der a_samp machst du das auch.

    True dat.


    Vor allem brauchst du die nicht (VectorSize) lässt sich auch selbst basteln °L°

    VectorSize ist für diese Berechnung optimiert und somit schneller xD



    So find ich das irgendwie uncool - so nimmst du den Leuten die Chance zu verstehen was du dort gebastelt hast.

    Das stimmt wohl, wobei ich das auch in nem Tutorial mal erklärt habe, aber das irgendwie einfach zur Gewohnheit geworden.



    Wo ist Map/ColAndreas

    Wollte ja das gerade ohne die großen Plugins lösen.


    Alternativ war ja das Physic Include etc verlinkt, aber diese ziehen halt echt viele Ressourcen, für etwas, was man eben auch so grob lösen kann.

    innerhalb einer Area zurückgibt.

    Meinst du ein Rechteck?


    Dann:


    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 :)

    Folgender stock speichert nicht die Stats

    Du musst auch immer wieder den string hinten dran hängen (also als Parameter angeben, das %s hast du immer brav gemacht ^^)


    Hallöle,


    hier ein kleines Skript, womit man ein Projektil in den Himmel feuern kann und es dann wieder runterkommt.


    Angestoßen durch den Thread: SA:MP Mörser 1 & 2 WK.


    Nur kurz als Information:
    Das Include dient eher als Prototyp für Skripter und nicht direkt für Endnutzer.


    Primär ging es mir nur darum, dass das Projektil einen Bogen fliegt und nicht straight einfach wie von einem Raketenwerfer gefeuert fliegt.


    Habe mal mit ein paar schönen Bällchen die Flugbahn simuliert:



    Funktionen im Include:


    C
    /*
    Erstellt eine Route mit den Bällchen von Punkt A nach Punkt B.
    (Dient nur zur Demonstration ist für die eig Missile nicht notwendig)
    */
    ShowRoute(Float:x,Float:y,Float:z, Float:x2,Float:y2,Float:z2);
    
    
    DestroyRoute(); //Löscht die Route eben wieder


    C
    /*
    Rakete fliegt von Punkt A nach Punkt B.
    In dem Bogen, der per ShowRoute angezeigt werden kann.
    */
    StartMissile(Float:x,Float:y,Float:z, Float:x2,Float:y2,Float:z2);


    Es gibt einen Callback:



    C
    public OnMissileFinished(Float:x,Float:y,Float:z)
    {
        CreateExplosion(x,y,z,2,20); //Damit es bumms macht
        return 1;
    }


    Das erstellt am Zielort eine Explosion, wenn die Rakete eben da ist (Rakete wird automatisch zerstört).


    Wenn die Rakete höher fliegen soll, kann man einfach mit dem Define MAX_MISSILE_HEIGHT ein wenig rumspielen :)



    BUGs:
    Also die Ziel und End Höhe (Z-Koordinate) sollte ca gleich sein, ansonsten kommt es zu Fehlern.
    Dann bleibt die Rakete über dem Ziel oder unter dem Ziel hängen. Allerdings sind die End-Koordinaten bei OnMissileFinished, immer die des Ziels!


    Downlaod: PasteBin


    Related Work:
    https://forum.sa-mp.com/showthread.php?t=630602
    https://forum.sa-mp.com/showthread.php?t=446286
    https://forum.sa-mp.com/showthread.php?t=591010



    Mit freundlichen Grüßen,
    Euer Kalle :P