Beiträge von Kaliber

    bei mir compilet der einfach nicht wenn ich das so habe, kann mir jemand helfen?

    Da ist vermutlich ein Klammerfehler und deine Schleifen sind falsch...


    Aber ich würd dir eh empfehlen, es so zu schreiben:


    Wie muss ich nun mit einer Schleife vorgehen, das er Beachtet welches Geschlecht er ist und welche Fraktion er ist.
    Und das er dann natürlich nur den Skin aus meiner Liste Erhält.

    Das könntest du so lösen:




    Beispiel Nutzung:


    C
    new skin = GetRandomSkin(playerid, gender, fraktion);
    if(skin == -1) return -1; //Fehler, weil kein Skin mit diesen Kriterien gefunden!!
    SetPlayerSkin(playerid, skin);

    Erklärung wie funktioniert der Code?



    Noch ein Mini Vorschlag:


    Hoffe ich hatte dich richtig verstanden und die Antwort hilft dir weiter! :)

    bzw, am besten das ganze noch fuer 3 Sprachen.

    Du kannst dafür ein Makro nutzen :)


    Habe mal eins Geschrieben, exakt für 3 Sprachen:



    Bei LANGUAGE_B würde eben B: 5 ausgegeben werden und bei LANGUAGE_C eben C: 5 :)

    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.