Probleme beim Spawn

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
  • Moin Moin


    Ich habe es nun so hinbekommen das die spielerposition beim Disconnecten gespeichert wird.
    Nur wenn man jetzt auf dem Server Connectet und sein Passwort eingegeben hat(Man muss nicht auf Spawn klicken).Passiert folgendes(ist nicht beschreibar deshalb ein Video)


    Man fliegt immer zwischen dem Registerpunkt und dem gespeicherten Punkt hin und her:


    [video]

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
    [/video]




    HIer die Zeilen:


    public OnPlayerSpawn(playerid)
    {
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    new Float:x,Float:y,Float:z;
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
    SetPlayerSkin(playerid,dini_Int(Playerdatei,"Skin"));
    SetPlayerPos(playerid,x,y,z);
    x = dini_Float(Playerdatei,"PosX");
    y = dini_Float(Playerdatei,"PosY");
    z = dini_Float(Playerdatei,"PosZ");
    }
    return 1;
    }


    stock Login(playerid,key[])
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
    if(!strcmp(key,dini_Get(Playerdatei,"Passwort"),false))
    {
    AccountLaden(playerid);
    SendClientMessage(playerid,Grün,"Du hast dich erfolgreich eingeloggt.");
    }
    else
    {
    SendClientMessage(playerid,Orange,"Dein hast ein falsches Passwort eingegeben!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Log In Vorgang","Dein Account wurde in unserer Datenbank gefunden!\nBitte gib nun dein Passwort ein! ","LogIn", "Abbrechen");
    }
    return 1;
    }


    stock AccountLaden(playerid)
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
    SetPlayerScore(playerid,dini_Int(Playerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Playerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Playerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Playerdatei,"Fraktion"));
    SetPVarInt(playerid,"Rank",dini_Int(Playerdatei,"Rank"));
    SetPVarInt(playerid,"Job",dini_Int(Playerdatei,"Job"));
    SetPVarInt(playerid,"PayDay",dini_Int(Playerdatei,"PayDay"));
    SetPVarInt(playerid,"Monate",dini_Int(Playerdatei,"Monate"));
    SetPVarInt(playerid,"Eingeloggt",1);
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,Rot,"Du bist vom Server gebannt!");
    Kick(playerid);
    }
    SetTimer("Spawn",200,1);
    return 1;

    public Spawn(playerid)
    {
    SpawnPlayer(playerid);
    return 1;
    }


    Hoffentlich könnt ihr mir helfen.

  • Wie wäre es, wenn du den Standart Spawn löscht? Damit der Spieler nur bei der alten Position spawnt?


    //Edit


    Oder halt nur so machst, das wenn der Spieler neu ist bei dem Standart Spawn spawnt.

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Ich glaube das in der player datei nicht gespeichert wird das spieler xy das tutorial durchgemacht hat somit denkt der server spieler xy muss das tutorial machen

    Mit freundlichen Grüßen
    E IL o LI n ER

  • Habe es jetzt so gemacht:


    public OnPlayerSpawn(playerid)
    {
    if(GetPVarInt(playerid,"Tutorial")==1)
    {


    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    new Float:x,Float:y,Float:z;
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
    SetPlayerSkin(playerid,dini_Int(Playerdatei,"Skin"));
    x = dini_Float(Playerdatei,"PosX");
    y = dini_Float(Playerdatei,"PosY");
    z = dini_Float(Playerdatei,"PosZ");
    SetPlayerPos(playerid,x,y,z);
    }
    else
    {
    SendClientMessage(playerid,Grau,"Du wirst zum Tutorial weitergeleitet");
    SetPlayerPos(playerid,NoobSpawn);
    SetPVarInt(playerid,"Tutorial",1);
    }
    return 1;
    }


    Nur wird man leider immernoch hin und her geportet :(