Spawn Probleme seit 1 Woche unlösbar :(

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
  • Hallo Community,
    seit ca 2 Wochen beschäftige Ich mich damit und bis heute habe ich keine Lösung gefunden.
    Ich spawne mit dem Skin "26" (wanderer Skin) ... und überspringe dadurch am anfang die Skin Selection. Dass will ich ja auch so haben.
    Im Spiel geh ich in einen Skin Shop und ändere denn Skin .. bei /kill bleibt der Skin auch beim neuem Spawn erhalten. Sobald Ich aber das Game restarte bzw einfach mal beende und
    später nochmal starte, dann spawn er wieder mit dem wanderer Skin.
    D.h. ja im Grunde irgendetwas stimmt beim OnPlayerDisco nicht? oder beim SpielerSpeichern ... ich weiß es nicht!! :(



    enum playerdata
    {
    SkinID,
    Skinshop
    }


    new pInfo[MAX_PLAYERS][playerdata];
    public OnPlayerRequestClass(playerid, classid)
    {
    if(pInfo[playerid][Skinshop]==1)
    {
    SetPlayerPos(playerid,216.8071,-98.6221,1005.2578);
    SetPlayerFacingAngle(playerid,271.9583);
    SetPlayerCameraPos(playerid,216.8071,-98.6221,1005.2578);
    SetPlayerCameraLookAt(playerid,216.8071,-98.6221,1005.2578);
    SetPlayerInterior(playerid,15);
    pInfo[playerid][SkinID]=GetPlayerSkin(playerid);
    pInfo[playerid][Skinshop]=1;
    ApplyAnimation(playerid,"DANCING","DNCE_M_B",4.0,1,0,0,0,-1);
    PlayerPlaySound(playerid, 1097,-119.9460,23.1096,12.2238);
    }
    else
    {
    SetSpawnInfo( playerid, 0, 26, 2001.1754,1520.2993,17.0625,0.9500, 0, 0,0, 0, 0, 0 );
    SpawnPlayer(playerid);
    }
    return 1;
    }


    public OnPlayerConnect(playerid)
    {


    if(IsPlayerNPC(playerid))return 1;
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
    }
    return 1;



    }
    public OnPlayerDisconnect(playerid, reason)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    SpielerSpeichern(playerid);
    }
    }
    public OnPlayerSpawn(playerid)
    {
    // LSPD SPAWN
    if(isPlayerInFrakt(playerid,1))
    {
    SetPlayerPos(playerid,246.783996,63.900199,1003.64062); SetPlayerInterior(playerid,6);
    }

    // MAFIA SPAWN
    if(isPlayerInFrakt(playerid,2))
    {
    if(GetPVarInt(playerid,"Rang")<=4)
    {
    SetPlayerSkin(playerid,111);
    }
    }
    if(isPlayerInFrakt(playerid,2))
    {
    if(GetPVarInt(playerid,"Rang")>4)
    {
    SetPlayerSkin(playerid,113);GivePlayerWeapon(playerid,4,1);GivePlayerWeapon(playerid,23,40);
    }
    }
    if(pInfo[playerid][Skinshop]==1)
    {
    SetPlayerPos(playerid,216.8071,-98.6221,1005.2578);
    SetPlayerFacingAngle(playerid,271.9583);
    SetPlayerInterior(playerid,15);
    pInfo[playerid][Skinshop]=0;
    PlayerPlaySound(playerid, 1186, 0.0, 0.0, 0.0);
    ClearAnimations(playerid);
    }

    return 1;
    }
    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerSkin(playerid,dini_Int(Spielerdatei,"SkinID"));

    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"SkinID",GetPlayerSkin(playerid));
    }
    return 1;
    }
    public OnPlayerDisconnect(playerid, reason)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    SpielerSpeichern(playerid);
    }
    }


  • stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);


    if(gettime()<dini_Int(Spielerdatei,"timeban"))
    {
    SendClientMessage(playerid,ROT,"Du bist noch gebannt. Komm später wieder.");
    Kick(playerid);
    return 1;
    }


    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,BLAU,"Erfolgreich eingeloggt.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,BLAU,"Falsches Passwort.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    return 1;
    }
    }

  • public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }
    }

    • Wird der Skin in der Datei abgespeichert? Ja/Nein? Schau in der Datei nach.
    • Wird die Player Variable 'loggedin' gesetzt, sobald sich der Spieler einloggt?
    • Hast du schon probiert zu debuggen? (= Werte beim Disconnecten und Einloggen ausgeben).
  • habs rausgenommen ..



    ich hab gerade aus jucks bei meiner spielerdatei die SkinID auf 15 gesetzt
    bin dann ins spiel gegangen und dann war wieder der CJ skin ..
    jetzt bei beenden des spiels wurde die SkinID unter der Spielerdatei auf 0 gesetzt ..
    :/


    was ist da los ...


    zum Spawn :


    public OnPlayerSpawn(playerid)
    {
    // LSPD SPAWN
    if(isPlayerInFrakt(playerid,1))
    {
    SetPlayerPos(playerid,246.783996,63.900199,1003.64062); SetPlayerInterior(playerid,6);
    }

    // MAFIA SPAWN
    if(isPlayerInFrakt(playerid,2))
    {
    if(GetPVarInt(playerid,"Rang")<=4)
    {
    SetPlayerSkin(playerid,111);
    }
    }
    if(isPlayerInFrakt(playerid,2))
    {
    if(GetPVarInt(playerid,"Rang")>4)
    {
    SetPlayerSkin(playerid,113);GivePlayerWeapon(playerid,4,1);GivePlayerWeapon(playerid,23,40);
    }
    }
    if(pInfo[playerid][Skinshop]==1)
    {
    SetPlayerPos(playerid,216.8071,-98.6221,1005.2578);
    SetPlayerFacingAngle(playerid,271.9583);
    SetPlayerInterior(playerid,15);
    pInfo[playerid][Skinshop]=0;
    PlayerPlaySound(playerid, 1186, 0.0, 0.0, 0.0);
    ClearAnimations(playerid);
    }
    new Spielerdatei[64];
    SetPlayerSkin(playerid,dini_Int(Spielerdatei,"SkinID"));
    return 1;
    }

  • new Spielerdatei[64];
    SetPlayerSkin(playerid,dini_Int(Spielerdatei,"SkinID"));


    Wo öffnest du bitte die Spielerdatei?
    darum geht es nicht

  • ich weiß nicht was du meinst...



    ;(



    das mit dem skinshop funktioniert wegen dem new Spielerdatei[64];
    SetPlayerSkin(playerid,dini_Int(Spielerdatei,"SkinID"));
    auch nicht also wenn ich im skinshop nen skin aussuche wird das zu cj ..



    ;(

  • mach das bei OnPlayerSpawn

    new Spielerdatei[64], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerSkin(playerid,dini_Int(Spielerdatei,"SkinID"));

  • dann Speicher den Skin beim Kauf direkt in die datei

  • joker du bist der größte



    croxx sry ^^ habs nicht gesehen :D dann bist du der 2 größte



    hört sich alles im endeffekt logisch an ... hab 2 wochen nicht mehr dran arbeiten können nur deswegen!



    danke :* an euch