Beiträge von Campbell

    Was das Script machen wird:

    • Holt sich den jetzigen Timestamp (siehe Link oben).
    • Vergleicht, ob der Timestamp gleich oder kleiner der Soll-Timestamp ist.
    • Wenn gleich Soll-Timestamp dann wird "0:20" ausgegeben.
    • Wenn kleiner als Soll-Timestamp rechne: Soll-Timestamp - Timestamp.
    • Wenn die Rechnung 20 oder kleiner ergibt, dies ausgeben. (Max. 0, nicht kleiner!)

    Nun gut, das ist ja nun nicht all zu schwer. Kurze Liste, was du erreichen möchtest:

    • Abfrage ob Player in Fraktion X ist.
    • Abfrage ob Player Rang höher als 5 ist und dementsprechend Waffen zuweisen.

    if(PlayerInfo[playerid][pMember] == /* FRAKTIONS_NUMMER */)
    {
    if(PlayerInfo[playerid][pRank] < 5}
    {
    /* Waffen für Members unter Rang 5. */
    }
    else
    {
    /* Waffen für Members über Rang 5. */
    }
    }

    Code
    multi-dimensional arrays must be fully initialized

    Bedeutung: Zu viele Einträge festgelegt.


    Code
    array index out of bounds

    Bedeutung: Zu wenig Einträge festgelegt.


    Möglichkeiten:

    • Index entfernen und selbst errechnen lassen (siehe Goldkillers Beitrag).
    • Index anpassen.

    Ja ist mir auch grade aufgefallen das ich das vergessen habe.
    Jedoch zeigt er mir in der PlayerSpectatePlayer einen Error

    Und der wäre ... ? Versuche follgendes zu benutzen:


    Code
    Important Note: Order is CRITICAL! Ensure that you use TogglePlayerSpectating before PlayerSpectatePlayer.


    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid, i);


    EDIT: Fehler verbessert.

    Solange die Datenbanken nicht exakt gleich sind wird dir dein Vorhaben leider massiv Probleme bringen. Im jetzigen Fall bekommst du keinen Zutritt um die Tabelle zu erstellen. Schaue demnach nach deinen MySQL Daten und ob die stimmen.


    P.S: Mache dir lieber ein Backup deiner Datenbank, bevor du irgendetwas kaputt machst.

    Nun scheint es, als ob du eine zu kleine Zahl eingetragen hast, da die Anzahl die Grenzen des Arrays sprengt, versuche den Index um 1 bzw. 2 zu erhöhen.

    Ein mehrdimensionaler Array (hier vorhanden) muss immer komplett initialisiert (= gefüllt/zugewiesen) sein. Demnach sind hier nicht alle 118 Einträge gefüllt, passe diese Zahl an.

    Du hast drei Möglichkeiten:

    • Diese Funktion in einen Callback einzubauen, welcher konstant aufgerufen wird. (Ressourcenfressend!)
    • Einen Timer aufzustellen, der konstant den Textdraw updatet mithilfe der Funktion. (Etwas Ressourcenfressend und könnte je nach Zeiteinstellung Probleme hinsichtlich des "Up-To-Date-Seins" darstellen.)
    • Wie bereits gepostet, die jeweilig betreffenden Punkte im Textdraw zu updaten, sobald sich etwas ändert.

    Das Script sucht nach der nächstbesten Funktion, da brauch man nicht unbedingt geschweifte Klammern (vorausgesetzt man möchte mehrere Funktionen mit einem Semikolon trennen ; )

    Das stimmt, dennoch ...

    • ... ist es von Coding Conventions vorgeschlagen es zu nutzen.
    • ... verbessert nach meiner Meinung den Schreibstil - es zählt nicht nur Kürze.
    • ... lesbarer.
    • ... weniger fehlerbetrachtet.
    • ... für später folgende Bearbeitungen hilfreich.

    #Apple - Was die Funktion eben machen sollte ist TRUE im Falle des "Adminseins" zurückzugeben und FALSE im Falle des "Nicht-Adminseins".


    stock IsAdmin(playerid, rang)
    {
    if(GetPVarInt(playerid, "Adminlevel") >= rang)
    return 1;
    return 0;
    }


    Dass du hier einmal return 1 und einmal return 0 einbaust macht eigentlich wenig Sinn. Ebenfalls wundert mich, dass hier kein Error ausgegeben wird, da hier garkeine geschweiften Klammern benutzt werden, nachdem du die Bedinung gesetzt hast. Versuche zunächst diesen Stock zu verbessern.

    Passiert auch nichts wenn ich beides draussen habe..
    Habe schon mehrere Varianten ausprobiert.. Hoffe das ich es noch gefixxt bekomme..


    MFG K3VIN

    Debuggen wird dir in diesem Fall helfen, lass dir Variablen und Arrays ausgeben und vergleiche sie mit dem Soll-Zustand. Somit wirst du recht schnell die betreffende Zeile finden und somit den Fehler beheben können.