Skin-Auswahl Problem!

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. Ich sollte hier ein Thema aufmachen.
    Um euch zu informieren:
    Ich versuche eine Skin-Auswahl zu machen, sodass Mitglieder die sich Registrieren wollen danach den Skin aussuchen und gespawnt werden. Bei denen die schon registriert sind und man in der .txt Datei z.B. schon Skin 192 schrieb, funktioniert es. Die können sich dann problemlos mit dem Skin immer und immer wieder einloggen.


    Mein Problem ist es:
    Insofern einer der noch nicht registriert ist ein Skin auswählen möchte und sich spawnt wird nach (gefühlten 5 Sekunden) der Skin wieder zu CJ umgeändert.


    OnPlayerConnect:

    public OnPlayerConnect(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    SendClientMessage(playerid,gelb,"Herzlich Willkommen zurück auf EnjoyYourLife!");
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde in der Datenbank gefunden.\nBitte gebe hier dein Passwort ein:","OK","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Dein Account wurde noch nicht gefunden.\nBitte schreibe dein Passwort hier rein:","OK","Abbrechen");
    }
    return 1;
    }



    OnPlayerRequestClass

    public OnPlayerRequestClass(playerid, classid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    new skin = dini_Int(Spieler,"Skin");
    if(dini_Exists(Spieler) && skin != -1)
    {
    SetPVarInt(playerid,"Skin",skin);
    SetSpawnInfo(playerid,0,skin,1766.2850,-1895.8571,13.5629,273.2245,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetCameraBehindPlayer(playerid);
    }
    return 1;
    }


    OnPlayerRequestSpawn

    public OnPlayerRequestSpawn(playerid)
    {
    if(GetPVarInt(playerid,"Skin") == 0) SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));
    return 1;
    }


    OnPlayerSpawn

    public OnPlayerSpawn(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    new skin = dini_Int(Spieler,"Skin");
    SetPVarInt(playerid,"Skin",skin);
    if(IstSpielerInFraktion(playerid,0)) // ZIVI SPAWN
    {
    SetSpawnInfo(playerid,0,skin,1766.2850,-1895.8571,13.5629,273.2245,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetPlayerColor(playerid, weiß);
    return 1;
    }
    if(IstSpielerInFraktion(playerid,1)) //LSPD SPAWN
    {
    SetPlayerPos(playerid,1535.9575,-1623.2018,13.3828);
    SetPlayerColor(playerid, blau);
    SendClientMessage(playerid,blau,"Du bist beim LSPD gespawnt!");
    return 1;
    }
    return 1;
    }

  • Kannst du das OnDialogResponse Callback auch noch posten? Hatte vergessen, dass du da noch Dialoge hast.



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == BUY)
    {
    if(response == 0)
    {
    return 1;
    }
    if(listitem == 0)
    {
    GivePlayerMoney(playerid, -20);
    GivePlayerWeapon(playerid,367,100);
    SendClientMessage(playerid,gelb,"Du hast dir erfolgreich die Kamera für 20$ gekauft!");
    GivePlayerWeapon(playerid,43,200);
    }
    if(listitem == 1)
    {
    GivePlayerMoney(playerid, -50);
    GivePlayerWeapon(playerid,323,100);
    SendClientMessage(playerid,gelb,"Du hast dir erfolgreich den Vibrator für 50$ gekauft!");
    GivePlayerWeapon(playerid,12,1);
    }
    if(listitem == 2)
    {
    GivePlayerMoney(playerid, -90);
    GivePlayerWeapon(playerid,336,100);
    SendClientMessage(playerid,gelb,"Du hast dir erfolgreich den Baseballschläger für 90$ gekauft!");
    GivePlayerWeapon(playerid,5,1);
    }
    if(listitem == 3)
    {
    GivePlayerMoney(playerid, -2000);
    GivePlayerWeapon(playerid,369,100);
    SendClientMessage(playerid,gelb,"Du hast dir erfolgreich die Infrarot-Schutzbrille für 2000$ gekauft!");
    GivePlayerWeapon(playerid,45,1);
    }
    }
    if(dialogid == LOGIN)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,rot,"Du wolltest dich nicht einloggen!");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    SpielerLaden(playerid,inputtext);
    return 1;
    }
    }
    if(dialogid == REGISTER)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,gelb,"Du hast den Registrierungsvorgang abgebrochen!");
    Kick(playerid);
    }
    if(response == 1)
    {
    Register(playerid,inputtext);
    }
    }


    if(dialogid == INFO)
    { if(response == 0)
    {
    return 1;
    }
    if(listitem == 1)
    {
    ShowPlayerDialog(playerid,BERUFE,DIALOG_STYLE_LIST,"Berufe","Busfahrer/in\nMechaniker/in","OK","Abbrechen");
    }
    }


    if(dialogid == BERUFE)
    {
    if(response == 0)
    {
    return 1;
    }
    if(listitem == 0)
    {
    SendClientMessage(playerid,gelb,"Ein Checkpoint wurde bei dem Beruf gesetzt!");
    SetPlayerCheckpoint(playerid,1154.3901,-1771.3240,16.5992,5.0);
    }
    }
    return 1;
    }


  • stock Register(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Adminlevel",0);
    dini_IntSet(Spieler,"Level",0);
    dini_IntSet(Spieler,"Fraktion",0);
    dini_IntSet(Spieler,"Team",0);
    dini_IntSet(Spieler,"Beruf",0);
    SendClientMessage(playerid,gelb,"Du hast dich ERFOLGREICH registriert!");
    SpielerReset(playerid);
    SetPVarInt(playerid,"loggedin",1);
    GivePlayerMoney(playerid,5000);
    dini_Set(Spieler,"Skin","-1");
    SetPlayerPos(playerid,1766.2850,-1895.8571,13.5629);
    SetPlayerCameraPos(playerid,1771.3131,-1897.6000,13.5551);
    SetPlayerCameraLookAt(playerid,1766.2850,-1895.8571,13.5629);
    SendClientMessage(playerid,gelb,"Mit /navigation findest du alle wichtigen Orte.");
    return 1;
    }

  • OnPlayerSpawn:

    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    new skin = dini_Int(Spieler,"Skin");
    SetPVarInt(playerid,"Skin",skin);
    SetPlayerSkin(playerid, skin);
    if(IstSpielerInFraktion(playerid,0)) // ZIVI SPAWN
    {
    SetSpawnInfo(playerid,0,skin,1766.2850,-1895.8571,13.5629,273.2245,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetPlayerColor(playerid, weiß);
    return 1;
    }
    if(IstSpielerInFraktion(playerid,2)) //LSPD SPAWN
    {
    SetPlayerPos(playerid,1535.9575,-1623.2018,13.3828);
    SetPlayerColor(playerid, blau);
    SendClientMessage(playerid,blau,"Du bist beim LSPD gespawnt!");
    return 1;
    }
    return 1;

  • Versuche es so:
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    new skin = GetPVarInt(playerid,"Skin");
    SetPlayerSkin(playerid, skin);
    if(IstSpielerInFraktion(playerid,0)) // ZIVI SPAWN
    {
    SetSpawnInfo(playerid,0,skin,1766.2850,-1895.8571,13.5629,273.2245,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetPlayerColor(playerid, weiß);
    return 1;
    }
    if(IstSpielerInFraktion(playerid,2)) //LSPD SPAWN
    {
    SetPlayerPos(playerid,1535.9575,-1623.2018,13.3828);
    SetPlayerColor(playerid, blau);
    SendClientMessage(playerid,blau,"Du bist beim LSPD gespawnt!");
    return 1;
    }
    return 1;

  • Dann ändere mal:
    if(IstSpielerInFraktion(playerid,0)) // ZIVI SPAWN
    {
    SetSpawnInfo(playerid,0,skin,1766.2850,-1895.8571,13.5629,273.2245,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetPlayerColor(playerid, weiß);
    return 1;
    }
    zu:
    if(IstSpielerInFraktion(playerid,0)) // ZIVI SPAWN
    {
    SetPlayerPos(playerid,1766.2850,-1895.8571,13.5629);
    SetPlayerColor(playerid, weiß);
    return 1;
    }