Beiträge von Jeffry

    Diees denke ich ist eher das Problem.. Aber sobald ich "TimerFix" darauf installiere, spinnt der Server komplett...


    Auf Anfrage in PN:


    Wenn du TimerFix raus nimmst geht alles normal?


    Also scripttechnisch ist das Problem mit der Tab Liste nicht zu erklären, daß Einzige ist, dass Deine Verbindung so schlecht ist, dass du nicht mehr synchronisiert wirst.
    Hast du einen Teleport Befehl? Wenn ja, dann teleportiere dich doch mal zu einem solchen Spieler den du nicht siehst. Was passiert?

    So, dann auch noch dem dritten innerhalb von 5 Minuten dem ich das sagen darf oder muss: Wenn du nicht machst, was man dir sagt das du machen sollst (Debugging), dann kannst du auch keine weitere Hilfe erwarten. Ich werde nicht über Teamviewer auf den Code schauen, da ich keinen Support via TeamViewer gebe.


    Du hast meine Frage nicht beantwortet und du hast den Code nicht debuggt noch sonst was gemacht.

    Wie rufst du "PaydayTD(playerid)" und "Geldanzigen(playerid)" auf? Und unter welchem callback?


    Ich werde mich nicht nochmal wiederholen. Wenn du wieder nur die Hälfte antwortest, scheinst du keine ernsthafte Hilfe zu suchen bzw. zu wollen.

    Dann beschreibe bitte Schritt für Schritt was du eingibst bzw. machst.


    Wenn du nicht machst was man dir sagt kann man dir nicht helfen, und das Ganze verzögert sich. Du solltest schon zu dem Code sagen, was du machst und ab wann der Fehler auftritt.



    EDIT: Post unten:
    ShadowSura: Das ist schon gut so, das war was ich wollte. Den Code brauchst du nicht zu erklären, daß ist ja sinnlos. Ich werde mir es anschauen sobald ich Zeit habe (heute eher nicht).


    EDIT2:
    ShadowSura: Wird Sonntag oder Montag.






    EDIT3:
    User bekommt keine Hilfe mehr. Grund:
    http://pokit.org/get/img/47230…357e78846f8d1c498aac9.jpg

    Auf Anfrage in PN:


    Poste mal den ganzen dazugehörigen Code, um dir helfen zu können muss ich das selbst testen. Mit dem Code alleine wird das hier nur zur Raterei und das hat keinen Sinn.
    Außerdem bitte ich dich, ganz genau zu beschreiben was wann und wie passieren soll.




    EDIT:
    An Post unten:
    ErikSon: Den Code hättest du nicht kommentieren brauchen, den verstehe ich auch so. :D Mir fehlt die Beschreibung wie es aussehen soll, du hast gerade nur beschrieben wie es aussieht.


    EDIT2:
    ErikSon: Passt so, hab das Prinzip verstanden. Sobald ich Zeit habe schaue ich es mir an.



    EDIT3: Problem von Thread-Starter behoben.

    Auf Anfrage in PN:


    format(wbs, sizeof(wbs), "/Textdraws/%s.ini", Textdrawname);
    zu:


    format(wbs, sizeof(wbs), "/Textdraws/%s.ini", Textdrawname);
    printf("Ausw: %s TDN: %s wbs: %d playerid: %d", Auswahl, Textdrawname, wbs, playerid);
    Dann poste bitte was geprintet wird und prüfe die Werte.


    Bekommst du im Compiler eine "Header size" Meldung angezeigt?

    Alle Textdraw2 zu Textdraw2[playerid] machen.
    Bei der Deklaration von Textdraw2 noch [MAX_PLAYERS] = {Text:-1,...}; hin hängen.


    Bei dem Befehl vor dem Erstellen des Textdraws:


    if(Textdraw2[playerid] != Text:-1) DisableTextDraw2(playerid);



    Für den Timer erstellst du auch eine Spieler Variable und killst ihn nach der selben Methode.

    SetTimerEx("SchliesseTor", 5000, 0, "d", 1); //oder 2 für das zweite Objekt, oder eben die Nummer die du im switch aufrufen willst.



    forward SchliesseTor(id);
    public SchliesseTor(id)
    {
    switch(id)
    {
    case 1: MoveObject(objekt1,...);
    case 2: MoveObject(objekt2,...);
    }
    return 1;
    }

    format(string, sizeof(string), "%d|%d|%d|", wert1,wert2,wert3);

    SQL
    UPDATE DATENBANKNAME SET Feld = '%s' WHERE...


    Du speicherst das so wie zum Beispiel einen Name, als VARCHAR. Auslesen ebenso.


    Falls es nicht klappt, poste bitte den Code wie du ihn hast.

    Welches der Arrays die du in deinem Befehl nutzt hast du mit [2] initialisiert?


    Bei OnVehicleSpawn bekommst du den Fehler, weil du eine Variable mit -1 in ein Array gesetzt hast, sowas:
    test = -1;
    array[test] = x;


    Das gibt Fehler.


    Da debuggst du den Code am besten, und schaust, welche Variable den Wert -1 bekommt.
    http://wiki.sa-mp.com/wiki/Debugging

    Aber nun kommt inGame immer die Zeile "Verwendung: [ ... ]" und es passiert sonst nichts :huh:


    Nicht sscanf nutzen, das ist Müll. Meine Meinung.


    CMD:kick( playerid, params[])
    {
    new string[144], pID, tmp[256], tmp2[256], idx;
    tmp = strtok(params, idx); tmp2 = strtok(params, idx);
    if(!strlen(tmp2)) return SendClientMessage(playerid, -1, ""COLOR_GREY"Verwendung: /kick <Name/ID> <Grund>");
    if(GetPVarInt(playerid,"Level")<2) return SendClientMessage(playerid, -1, "Du musst ein "COLOR_BLUE"Administrator Level 2 {FFFFFF}sein, um diese Funktion nutzen zu können.");
    if(!IsNumeric(tmp)) pID = ReturnPlayerID(tmp);
    else pID = strval(tmp);
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, -1, ""COLOR_GREY"Dieser Spieler ist nicht online.");


    format(string, sizeof string, "%s ( %s | ID: %i ) hat %s ( %s | ID: %i ) gekickt, Grund: %s",pName(playerid),GetPlayerLevelName(playerid),playerid,pName(pID),GetPlayerLevelName(pID),pID,params[strlen(tmp)+1]);
    SendClientMessageToAll(-1, string);
    SetTimerEx("KickPlayer", 1000, false, "i", pID);
    return 1;
    }
    strtok und solche Funktionen können viel flexibler eingesetzt werden und ich hatte damit noch nie unerklärliche Probleme.


    Falls dir die Funktionen fehlen:

    Spoiler anzeigen
    //Aus der dutils.inc
    stock strtok(const string[], &index,seperator=' ')
    {
    new length = strlen(string);
    new offset = index;
    new result[256];
    while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }

    Spoiler anzeigen
    result[index - offset] = EOS;
    if ((index < length) && (string[index] == seperator))
    {
    index++;
    }
    return result;
    }

    Spoiler anzeigen
    stock ReturnPlayerID(PlayerName[]) //©Jeffry
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(!strcmp(pName(i),PlayerName, true)) return i;
    }
    }
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(strfind(pName(i),PlayerName,true)!=-1) return i;
    }
    }
    return INVALID_PLAYER_ID;
    }

    Spoiler anzeigen
    stock IsNumeric(string[])
    {
    for (new i = 0, j = strlen(string); i < j; i++)
    {
    if ((string[i] > '9' || string[i] < '0')) return 0;
    }
    return 1;
    }