Nach Login direkt Spawnen ohne Spawbutton

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Yoa hi,
    ich bin grade bei mich an einem Selfmade zu versuchen.
    ich habe jetzt ein Register system fertig.
    Logindialog habe ich auch shcon.
    Jedoch jetzt mein Problem.
    Wenn ich eingeloggt bin also mein pw richtig war dann verschwindet der Dialog und ich habe immernoch das anfangsbild.
    Jedoch will ich dann Spawnen.
    Wie mache ich das.
    Wen ich auf den Spawnknopf drücke steht da server closed the connection.
    Ich will es ohne Spawnknopf.
    Hier mein ganzes system:
    //enums
    enum Info
    {
    passwort[128],
    alevel,
    fRank,
    gTeam,
    gLeader,
    fLeader,
    skin,
    eingeloggt
    };
    //news
    new pInfo[MAX_PLAYERS][Info];
    public OnPlayerConnect(playerid)
    {
    new name[128], save[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Spieler/%s.ini",name);
    if(dini_Exists(save) && pInfo[playerid][eingeloggt])
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
    }
    TextDrawShowForPlayer(playerid,Copyright);
    SetTimer("Textdrawname", 300000, 0);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new name[128], save[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Spieler/%s.ini",name);
    if(dini_Exists(save))
    {
    dini_IntSet(save,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(save,"Wanteds",GetPlayerWantedLevel(playerid));
    dini_IntSet(save,"Skin",GetPlayerSkin(playerid));
    dini_IntSet(save,"Adminlevel",pInfo[playerid][alevel]);
    dini_IntSet(save,"Fraktionsleader",pInfo[playerid][fLeader]);
    dini_IntSet(save,"Fraktionsrank",pInfo[playerid][fRank]);
    pInfo[playerid][eingeloggt] = 0;
    }
    return 1;
    }
    public OnPlayerSpawn(playerid)
    {
    new name[128], save[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Spieler/%s.ini",name);
    if(loggedin[playerid] == false)
    {
    Kick(playerid);
    }
    SetPlayerSkin(playerid,dini_Int(save,"Skin"));

    return 1;
    }

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new save[40];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save,sizeof(save),"Spieler/%s.ini",spieler);
    if(response)
    {
    switch(dialogid) // dialogid auswählen
    {
    case DIALOG_LOGIN: // ID Login
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(save,"passwort")) == 0) // Passwort Direkt aus der Datei Laden
    {
    GivePlayerMoney(playerid,dini_Int(save,"Geld"));
    SetPlayerWantedLevel(playerid,dini_Int(save,"Wanteds"));
    SetPlayerSkin(playerid,dini_Int(save,"Skin"));
    pInfo[playerid][fLeader] =dini_Int(save,"Fraktionsleader");
    pInfo[playerid][alevel] =dini_Int(save,"Adminlevel");
    pInfo[playerid][fRank] =dini_Int(save,"Fraktionsrank");
    pInfo[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    }
    case DIALOG_REG: // ID Registrieren
    {
    if(!strlen(inputtext)) // Text darf nicht = Null sein Null im Sinne von nichts
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
    }
    dini_Create(save);
    dini_Set(save,"passwort",inputtext);
    pInfo[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingeloggt.");
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
    case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
    }
    }
    return 1;
    }
    Ich hoffe mir kann jemand helfen.
    mfg lolli
    P.S.: Ich habe keine errors oder sonstiges.


    Bewerte mich und meine Transaktionen als Mittelsmann

  • Auf Youtube gibt es ein Tutorial wo eine Person das ganz genau erklärt,ich kann es dir jetzt auch nicht wirklich erklären aber du musst unter "public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])"


    SetPlayerPos
    und so weiter
    und so weiter einsetzen.


    D.h.: wenn du auf "Spawn" klickst nachdem du dein PW richtig eingegeben hast spawnt er den Spieler an die richtige Position.


    Z.B.:
    SetPlayerPos(playerid,X-Koordinate,Y-Koordinate,Z-Koordinate);


    Aber ich bin selber noch am Lernen. Tut mir Leid wenn ich es Falsch erklärt habe.


    Ich schick dir einfach mal den Youtube Link.


    Part1: http://www.youtube.com/watch?v=GYqJdj45pmI&feature=related


    Part2: http://www.youtube.com/watch?v=8aoJTaQi-gg&feature=related


    Liebe Grüße,
    Ocean

  • Ich will es ohne Spawnknopf.


    Ups.. Überlesen..


    Aber naja,im dem Tutorial was ich (Siehe Links) gepostet habe,geht es mit Spawn-Knopf. Ansonsten wüsste ich nur die Möglichkeit das man (wir reden von Zeiten in 0.2) /register bzw /login tippen muss (DAS WAS ICH GUT FINDE xD).


    Lg,
    Ocean

  • Geht leider immernoch nicht.
    Ich habe SpawnPlayer(playerid); eingefügt.
    Es geht jedoch immernoch nicht.
    Ich musste mich immer wieder registrieren den Fehler konnte ich selbst behebn war nur zu schnell geschrieben ;D
    Und nochmal es anzusprechen.
    Wenn ich Spawn drücke steht da server closed the connection deswegen soll man ja driekt spawnen.
    mfg lolli


    Bewerte mich und meine Transaktionen als Mittelsmann

  • @Lolli


    Du musst ja nach
    "SetPlayerPos(playerid,"


    Noch die Koordinaten einfügen WO er gespawnt werden soll z.B. so:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    SetPlayerPos(playerid,1344.9188,-978.4855,29.7498);
    return 1;
    }


    Es ist aber nur ein Beispiel. & geht nur wenn du einen Dialog mit "Spawn" Button hast,wie im Tut von Youtube ;)
    Versuche es nach dem Tut zu Scripten,es funktioniert wirklich ;)

  • Firefox wenn er einen Dialog macht (nach Meiner erfahrung) geht es auch wenn er es unter OnDialogResponse scriptet.

  • Tomyleee das war der fehler den habe ich geifxt.
    Ocean Dream so shclau war ich auch shcon.
    Ich habe dies jetzt mal gemacht.
    Ich Spawne trotzdem nicht.
    Der Dialog verschwindet nur und wenn ich auf Spawn drücke dann steht immernoch server closed the connection.
    mfg lolli


    Bewerte mich und meine Transaktionen als Mittelsmann

  • public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new save[40];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save,sizeof(save),"Spieler/%s.ini",spieler);
    if(response)
    {
    switch(dialogid) // dialogid auswählen
    {
    case DIALOG_LOGIN: // ID Login
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(save,"passwort")) == 0) // Passwort Direkt aus der Datei Laden
    {
    GivePlayerMoney(playerid,dini_Int(save,"Geld"));
    SetPlayerWantedLevel(playerid,dini_Int(save,"Wanteds"));
    SetPlayerSkin(playerid,dini_Int(save,"Skin"));
    pInfo[playerid][fLeader] =dini_Int(save,"Fraktionsleader");
    pInfo[playerid][alevel] =dini_Int(save,"Adminlevel");
    pInfo[playerid][fRank] =dini_Int(save,"Fraktionsrank");
    pInfo[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
    SpawnPlayer(playerid);
    SpawnPlayer(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    }
    case DIALOG_REG: // ID Registrieren
    {
    if(!strlen(inputtext)) // Text darf nicht = Null sein Null im Sinne von nichts
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
    }
    dini_Create(save);
    dini_Set(save,"passwort",inputtext);
    pInfo[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingeloggt.");
    SpawnPlayer(playerid);
    SpawnPlayer(playerid);
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
    case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
    }
    }
    return 1;
    }


    Bitteschön.
    SpawnPlayer muss 2 mal drinne stehen sonst spawnt er den Spieler nicht.