Beiträge von ciaxx

    Vielen Vielen dank der Error is schonmal weg. Ich habe mein Login/Register Sytsem nun fertig und wenn ich mit einem Account joine der nicht eingetragen ist kommt auch das register Fenster doch sobald ich dort weiter drücke spawne ich in LV wie wenn man unter auf Spawn drücken würde ...
    Hier ist einmal meine OnDialogResponse:

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);

    //Login/Register System
    if(response)// They pressed the first button.
    {
    switch(dialogid)// If you only have one dialog, then this isn't required, but it's neater for when you implement more dialogs.
    {
    case 1:// LOGIN FENSTER
    {
    if(strlen(inputtext) > 0)
    {
    new string[64];
    GetPlayerName(playerid,string,MAX_PLAYER_NAME);
    format(string,sizeof string,"/Accounts/%s.ini",string);
    format(string,sizeof string, dini_Get(string, "Passwort"));
    if(!strcmp(inputtext, string))
    {
    //Geld setzen
    new string1[64];
    GetPlayerName(playerid,string1,MAX_PLAYER_NAME);
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid, dini_Int("/Accounts/%s.ini", "Geld"));
    //Scroe setzen
    new string2[64];
    GetPlayerName(playerid,string2,MAX_PLAYER_NAME);
    SetPlayerScore(playerid, dini_Int("/Accounts/%s.ini", "Level"));
    //Narchicht und spawn
    SetSpawnInfo(playerid, 0, 26, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
    SpawnPlayer(playerid);
    SendClientMessage(playerid, COLOR_YELLOW, "Willkommen auf 'Empire Bay Reallife'");
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Falsches Passwort");
    Kick(playerid);
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Das Passwort ist zu kurz!");
    }
    }
    case 2:// REGISTER FENSTER
    {
    if(strlen(inputtext) > 3)
    {
    new string[64];
    GetPlayerName(playerid, string, MAX_PLAYER_NAME);
    dini_Create("/Accounts/%s.ini");
    //Sachen eintragen: (Key=Value)
    dini_Set("/Accounts/%s.ini", "Passwort", inputtext);
    dini_IntSet("/Accounts/%s.ini", "Geld", 5000);
    dini_IntSet("/Accounts/%s.ini", "Level", 1);

    SendClientMessage(playerid, COLOR_GREEN, "Dein Account wurde erfolgreich eingerichtet.\nMache bitte einen relog!");
    Kick(playerid);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Das Passwort muss mindestens 4 Zeichen lang sein!");
    Kick(playerid);
    }
    }
    }
    }
    else
    {
    Kick(playerid);
    }
    return 1;
    }


    Weisst du da auch noch eine Lösung?


    //EDIT: Habe bemerkt hatte falsche IDs beim erstellen der Dialoge. Hab die angepasst werde jetzt aber direkt gekickt wenn ich beim register mein pw eingeben und bekommne keine Narchicht


    //EDIT2: Anscheinend werden mir alle SendClientMessage nicht angezeigt und die TextDatei in Account heisst nicht wie der Spielername sondern %s (öhm lol). So wie es aussieht scheint man sich auch mit jedem Passwort einloggen zu können und nicht mit dem was in der Datei steht ... (Kann es sein dass das ganze Ding nich geht? ...)

    Hi,
    ich möchte 2 Strings mit strcmp Vergleichen doch es kommt dieser Error:

    Code
    error 008: must be a constant expression; assumed zero


    Die betreffenden Zeilen sind diese:

    new password[] = dini_Get("/Accounts/%s.ini", "Passwort");
    if(!strcmp(inputtext, password, false, strlen(password)))
    {

    Kann mir da jemand helfen?

    Oh okay jetzt funktioniert es doch ich habe name im SendPlayerDialog nicht verwendet und auch sonst nur in der Zeile darunter deswegen ist jetzt meine Frage warum das funktioniert obwohl es nichts damit zu tun hat? Oder liege ich da gerade ganz falsch?

    Ich bezweifle sehr das es an dem ausklammern oder dem Account liegt da ich noch nichts gemacht habe zum erstellen und somit kann man auch nicht in der Datei drin stehen und mein jetziger OnPlayerConnect Teil sieht so aus:

    public OnPlayerConnect(playerid)
    {
    new name[] = "";
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);


    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Enter your password below:", "Login", "Cancel");
    //Login/Register System
    /*if(dini_Exists("/Accounts/registriert.ini"))
    {
    if(dini_Isset("/Accounts/registriert.ini", name))
    {
    //Account existiert
    }
    else
    {
    //Account existiert nicht
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Test", "funzt es?", "Weiter", "Abbrechen");
    }
    }
    else
    {
    print("Die Datei Accounts.ini wurde nicht gefunden!");
    SendClientMessage(playerid, COLOR_RED, "Es gab einen Fehler bei den Accounts.\nBitte mache einen relog!");
    dini_Create("/Accounts/registriert.ini");
    }*/


    return 1;
    }


    Somit die Frage wie das da an dem ausklammern liegen kann und den namen habe ich da ja momentan gar nich verwendet ... Oder muss ich erst irgendwie dieses spawn ding ingame wegbekommen also es steht bei mir unten am rand ein pfeil nach links, einer nach rechts und spawn in schwazen buttons

    Okay vielen Dank
    Ich habe die if-Abfragen (mit der file und so) mal als kommentar (also mit //) gemacht da mit der Dialog nicht angezeigt wird aber wenn im onPlayerConnect nur das ShowPlayDialog (ohne irgendwelche abfragen) drinne steht zeigt er mir diesen dennoch nicht an. Wenn ich das ShowPlayerDialog aber in einen Command kopiere kann ich ihn mir da anzeigen lassen.
    Muss ich im OnPlayerConnect etwas machen bevor mir der Dialog angezeit wird?

    Hallo,
    ich bin noch neu im scripten und bitte euch das zu berücksichtige. Also zu meinem Problem ich wollte mir als erstes mal ein Login/Register System erstellen. So wie ich es habe müsste (soweit ich weiss) sich das register Fenster schonmal öffnen doch wenn ich das auf meinem Server testen möchte ist der Spieler einfach in LV und man kann auf Spawn drücken (??? habe garnichts in den gm mit spawnen oder so ...) aber es erscheint kein Fenster ...


    Hier ist einmal wie ich das bis jetzt gemacht habe:


    Ich hoffe ihr könnt mir helfen und Vielen Dank