Beiträge von Artus

    Das bedeutet einfach, dass du "GetPlayerAdmin" schon vorher im Script deklariert hast. Das heißt du versuchst an der angegeben Zeile beim Error "GetPlayerAdmin" zum 2. Mal zu definieren.


    Ich habe es mit "print" ausprobiert und auch bei der Funktion, dass er bei OnPlayerRequestClass gespawnt wird eingefügt.


    Alle prints, welche bei OnPlayerConnect drin waren, waren NICHT in der ServerLog, dafür aber der print von der Funktion 8|

    Mein Problem ist, dass bei mir OnPlayerConnect nicht ausgeführt wird, sondern sofort OnPlayerRequestClass.


    Da ich das OnPlayerRequestClass mit einem Spawn überspringe wird der Spieler dann nur sofort gespawnt ohne sich einloggen zu müssen.


    Der Login-Dialog befindet sich nämlich in OnPlayerConnect.


    Wie kann ich das beheben?

    Was ich aber nicht verstehe, wieso lässt du ihn Spawnen,
    wenn er doch garkein Account hat ?


    Habe bei OnPlayerSpawn auch eine Abfrage. Wenn die Datei nicht existiert, dann wird er automatisch registriert. Weil davor hat das ganze nicht funktioniert, als ich es da hatte und so wie es jetzt ist finde ich es gut. Bis auf, dass das Loginsystem nicht funktioniert.


    Edit:


    Es liegt daran, dass die OnPlayerRequestClass vor dem OnPlayerConnect ausgeführt wird und ich gemacht habe, dass die Skinauswahl übersprungen wird.


    Wie mache ich, dass das OnPlayerConnect vor dem OnPlayerRequestClass ausgeführt wird? Oder wie mache ich, dass OnPlayerConnect überhaupt ausgeführt wird?

    new name[MAX_PLAYER_NAME], Spielerdatei[64];
    GetPlayerName(playerid, name, sizeof(name));
    format(Spielerdatei, sizeof(Spielerdatei), "/Accounts/%s.ini", name);
    format(Spieler[playerid][Wohnort],64,inputtext);
    dini_Set(Spielerdatei,"Wohnort",Spieler[playerid][Wohnort]);
    So dürfte das funktionieren.


    Edit1.: Sachen wie "Spielerdatei" und dem Pfad zur Accountdatei musst du halt noch anpassen.


    Funktioniert auch nicht. Habe das wenn sie existiert, dass dann der Dialog kommt und sonst wird der Spieler gespawnt.

    Das Registrierungssystem funktioniert ohne Probleme, nur das Loginsystem funktioniert nicht.


    Wenn ich registriert bin und ich den Server betrete werde ich ohne, dass die Daten geladen werden einfach gespawnt, obwohl die Spielerdatei besteht.


    public OnPlayerConnect(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(Spielerdatei, sizeof(Spielerdatei), "/Accounts/%s.ini", name);


    if(!dini_Exists(Spielerdatei))
    {
    SpawnPlayer(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid ,DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00BFFF}Login", "{FFFFFF}Willkommen zurück auf {FF8000}[LPR] Las Payasadas Reallife{FFFFFF}.\n\nBitte gib deinen Code ein, um dich einzuloggen","Login","Beenden");
    }
    return 1;
    }


    case DIALOG_LOGIN:
    {
    if(!response)
    {
    SendClientMessage(playerid, Rot, "Du hast die Verbindung zum Server unterbrochen.");
    Kick(playerid);
    }
    else
    {
    new pwlaenge = strlen(inputtext);
    if(pwlaenge > 0)
    {
    new code[16];
    format(code, sizeof(code), "%s", dini_Get(Spielerdatei, "Password"));
    if(strcmp(inputtext, code) == 0)
    {
    SpielerLaden(playerid);
    }
    else
    {
    SendClientMessage(playerid, Rot, "Deine Eingabe war ungültig. Bitte versuche es erneut.");
    ShowPlayerDialog(playerid ,DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00BFFF}Login", "{FFFFFF}Willkommen zurück auf {FF8000}[LPR] Las Payasadas Reallife{FFFFFF}.\n\nBitte gib deinen Code ein, um dich einzuloggen","Login","Beenden");
    }
    }
    else
    {
    SendClientMessage(playerid, Rot, "Deine Eingabe war ungültig. Bitte versuche es erneut.");
    ShowPlayerDialog(playerid ,DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00BFFF}Login", "{FFFFFF}Willkommen zurück auf {FF8000}[LPR] Las Payasadas Reallife{FFFFFF}.\n\nBitte gib deinen Code ein, um dich einzuloggen","Login","Beenden");
    }
    }
    }
    Bei "Spielerladen(playerid);" werden logischerweise die Daten des Accounts geladen.

    Habe gerade die Koordinaten von den erstellten Objekten durchgeschaut. Es gibt keine Gleichen. Oder meinst du, dass es einfach zu viele in einem bestimmten Bereich sind?


    Habe die komplette Map in ein Filterscript geschrieben. Jetzt wird alles geladen und entfernt.


    Aber woran könnte es denn liegen, dass es im Gamemode nicht akzeptiert wird? 8|

    Wurde erkannt.


    Habe auch schon mit "print" mir Rückmeldung geben lassen, dass es ausgeführt wurde. Die Rückmeldung funktioniert. Nur halt die Map nicht.


    Mindestens 10-mal, weil ich noch andere Funktionen getestet habe :)

    Ich habe Objekte mit RemoveBuildingForPlayer (unter OnPlayerConnect) entfernt und neue mit CreateDynamicObject (unter OnGamemodeInit) ginzugefügt.


    Der Streamer ist im Gamemode mit includiert und auch in der Server.cfg als Plugin enthalten.


    Der Gamemode kompiliert ohne Warning und Errors.


    Wenn ich dann den Server betrete ist aber immer noch die originale Map vorhanden und nicht mein gemapptes Zeugs.


    Streamer habe ich auch nochmal erneut heruntergeladen und neu kompiliert und getestet. Keine Veränderung.


    Wie bekomme ich es hin, dass meine Mapveränderungen wirksam werden? 8|


    Edit: Ich habe nirgendwo SetPlayerVirtualWorld verwendet.

    SpielerDaten[playerid][pPasswort] = inputtext;
    pPasswort ist als String deklariert und da kommt --> error 047: array sizes do not match, or destination array is too small


    Außerdem gibt er mir denselben Fehler nochmal bei folgendem Code:
    SpielerDaten[playerid][pPasswort] = dini_Get(Spielerdatei,"Passwort");


    Oben bei der enum SpielerDaten ist pPasswort[64]