Beiträge von Jeffry

    Wo hast du das denn hingeschrieben? In welchem Zusammenhang, im Code.
    Hast du noch andere Timer im Code? Wenn ja, wie werden die denn gestartet? Möglicherweise ist da ein hook drin.

    ocmd:mute(playerid,params[])
    {
    if(!isAdmin(playerid,10))return SendClientMessage(playerid,COLOR_WHITE,"Dir ist es nicht erlaubt, diesen Befehl zu benutzen!");
    new pID;
    new reason[64];
    new time;
    if(sscanf(params,"uis",pID,time,reason))return SendClientMessage(playerid,COLOR_GREY,"Tipp: /mute [PlayerID] [Time (In Minuten) [Grund]");
    {
    if(isAdmin(pID,1))
    {
    SendClientMessage(playerid,COLOR_RED,"Du kannst kein Admin muten!");
    return 1;
    }
    else if(time > 0 && time < 999999)
    {
    new string[128],tmptime = time;
    format(string,sizeof(string),"%s wurde von %s fuer %i Minuten. Grund: %s",getPlayerName(pID),getPlayerName(playerid),tmptime,reason);
    SendClientMessageToAll(COLOR_RED,string);
    SendClientMessage(playerid,COLOR_GREEN,"Erfolgreich.");
    SetPVarInt(pID,"Mute",tmptime);
    return 1;
    }
    }
    return 1;
    }

    Bist du sicher, dass du den richtigen Gamemode bearbeitest, und kompilierst? Und auch den richtigen Server startest?
    Schau mal auf das Änderungsdatum der .amx Datei in /gamemodes/ von dem Ordner dessen samp-server.exe du startest. Ändert sich das, wenn du den Gamemode kompilierst?


    Oder hast du es auf einem Host? Lädst du die .amx auch hoch? :huh:



    EDIT:
    Ist erledigt. Ich habe es ihm über TeamViewer gemacht.
    Problem war, dass er die prints & Änderungen nicht eingefügt hatte, und noch ca. 100 Warnungen im Code hatte.

    Komisch.


    Füge mal das hier bei OnGameModeInit als erste Zeile ein:
    SetTimer("Mein_TestTimer", 100, true);


    und das hier ganz unten im GameMode:
    forward Mein_TestTimer();
    public Mein_TestTimer()
    {
    printf("Mein_TestTimer Called at %d", gettime());
    return 1;
    }


    Steht jetzt was im Log?

    Willkommen auf Breadfish!


    Hast du mal versucht die Tabelle "user" komplett zu löschen und neu zu erstellen, also alle Spalten wieder neu einzutragen? Trage dann mal die Spalte "leader" als zweites oder drittes ein, wird sie dann angezeigt?
    Wenn nicht, nenne sie mal pLeader oder so, vielleicht liegt es daran.

    Das liegt möglicherweise daran, dass du dort SpawnPlayer aufrufst. Soll er denn neu gespawnt werden?
    Klappt denn alles, wenn der Spieler nicht im Fahrzeug ist? Wenn ja, dann könntest du ihn ja zuvor aus dem Fahrzeug setzen.

    Du hattest einen Klammerfehler drin, und mehrere Syntaxfehler.
    Außerdem kannst du mit mysql_format direkt über %e strings einlesen, dann sparst du dir das mysql_real_escape_string.


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new query[256], key[50];
    if(dialogid == DIALOG_REGISTER)
    {
    if(!response)
    {
    return Kick(playerid);
    }
    if(!strlen(inputtext))return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registrierung", "In der Datenbank wurde kein Account mit diesem Namen gefunden.\nBitte registrieren Sie sich:", "Anmelden", "Abbrechen");
    format(key, 50, "%s", inputtext);
    mysql_format(Handle, query, sizeof(query), "INSERT INTO (username, passwort) VALUES ('%e',MD5('%e'))", Spielername(playerid), key);
    mysql_tquery(Handle, query);
    SendClientMessage(playerid, -1, "Dein Account wurde erfolgreich erstellt.");
    GivePlayerMoney(playerid, 10000);
    SetPlayerScore(playerid, 1);
    return 1;
    }
    if(dialogid == DIALOG_LOGIN)
    {
    if(!response)
    {
    return Kick(playerid);
    }
    format(key, 50, "%s", inputtext);
    mysql_format(Handle, query, sizeof(query), "SELECT * FROM user WHERE username='%e' AND password='%e'", Spielername(playerid), key);
    mysql_tquery(Handle, query, "OnPasswordResponse", "i", playerid);
    return 1;
    }
    return 0;
    }

    Ja, so ist es. :thumbup:
    Dann geht's.


    Musst dich zuvor ggf. nochmal neu registrieren, da die Datei ja nicht mehr stimmt.

    Das ruft aber das "public SetSekundenTimer3()" auf. Sollte allerdings nichts daran ändern, dass die Zeile die ich dir gegeben habe eigentlich deinen Timer starten soll.


    Deshalb nochmal die Fragen:
    - Hast du Meldungen im Compiler?
    - Hast du es mal direkt als erste Zeile in OnGameModeInit gesetzt, das SetTimer das ich dir gegeben habe, mit den 1000 ms?

    Ah, das haste reineditiert während ich geschrieben habe.
    Poste bitte dein aktuelles SavePlayer und LoginPlayer (beim registrieren geht es ja, oder?).

    Geh mal zu den Fahrzeugen und gebe /dl ein.
    Dann suche in deinem Code nach der Position die bei sPos steht. Findest du da was?


    Wenn nicht, wie ist der Unterschied von cPos zu sPos? Wenn du nämlich nichts findest könnte man die Fahrzeuge mit einem einmaligen oder sich wiederholenden Timer (je nach dem ob sie wieder kommen) entfernen.