Skip Class Selection

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • So guten Morgen ^^


    Also mein Problem ist, dass ich einen Roleplay Server erstellen will, aber nur sehr wenig über scripten bescheid weiß.


    Also ich will, dass wenn man neu ist, zwar das Class Selection sehen kann. Aber egal auf welchen Skin man klickt, man als Neuling immer Skin ID 101 bekommt.
    Erst wenn man in einem Kleiderladen geht und dort /clothes eingibt, dass man dann stirbt und zum Class Selection kommt und sich einen Skin aussuchen kann. Und dieser Skin soll gespeichert und immer wieder beim einloggen benutzt werden.


    Register/Login System habe ich schon.
    Ich weiß auch wie man Skin speichert und alles ! Aber man soll sich es halt nicht beim Class Selection am Anfang aussuchen können. Nicht Registrierte Spieler müssen Skin ID 101 nehmen bis sie im Kleiderladen waren und dort /clothes eingegeben haben.
    Und Registrierte Spieler kriegen beim Einloggen den Skin, den sie sich im Kleiderladen ausgesucht haben.


    Hab schon stunden ein meinem GM gehockt und rumprobiert, aber nichts erreicht....deshalb: HILFE !!


    danke schon mal im vorraus. ^^


    Mit freundlichen Grüßen


    Jokertime !

  • Du machst einfach nur eine klasse rein mit AddPlayerClass


    ODER


    Du lässt beim login und registrieren den Skin festlegen, dh. du speichert den Skin mit in eine Spielerdatei


    Beispiel:


    unter deinem Reg-Vorgang:


    Spieler[playerid][Skin] = 101;



    und dann unter OnPlayerSpawn:

    SetPlayerSkin(playerid, Spieler[playerid][Skin]);


    und beim disconnect:


    GetPlayerSkin (weiß grad nicht was in der klammer stehen muss)


    und dann speicherst du es wieder in die Datei.


    und beim Login rufst du es wieder ab:


    Spieler[playerid][Skin] = Dini(blablabla);


    Wenn du Login und Register schon hast dann müsste das kein Problem sein..


    du musst ja nicht Dini verwenden, kannst es ja von dem Passwort abschauen


    und das mit dem /clothes ist bischen komplizierter.. da müsste ich nachschauen, was ich derzeit aber nicht kann =( Sry


    Hoffe ich konnte dir trotzdem helfen


    Gruß

  • Damit lässt sich die Classselection überspringen:


    public OnPlayerRequestClass(playerid, classid)
    {
    SpawnPlayer(playerid);
    return 1;
    }


    edit verbessert

    mfg RedDragon 8)


    Was ist GFKD?


    Ein revolutionärer Clan, dessen Eröffnung kurz bevorsteht.
    Mehr Informationen folgen bald.

  • Ich danke euch erstmal für eure Antworten.



    so..
    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",Name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,YELLOW,"Du hast dich Erfolgreich registriert.");
    SetPlayerScore(playerid,0);
    return 1;
    }


    Das ist mein Reg-Vorgang, wenn du mir Reg... Register meinst. Wo soll und wie soll ich des jetzt einfügen.
    Als ich Spieler[player][Skin]=101 eingefügt habe, gab es Errors.


    Und dass ist mein OnPlayerSpawn:
    public OnPlayerConnect(playerid)
    {
    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,3,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
    }
    return 1;
    }


    Was soll ich bei OnPlayerSpawn einfügen ?


    Mit freundlichen Grüßen


    Jokertime

  • Was ich neu hinzugefügt habe ist mit den Zeichen "//" kommentiert:


    public OnPlayerConnect(playerid)
    {
    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))
    {
    SetPVarInt(playerid,"SpielerRegistriert",1); //Wenn Spieler Registriert ist, setze Wert '1'
    ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein","Login","Abbrechen");
    }
    else
    {
    SetPVarInt(playerid,"SpielerRegistriert",2); //Wenn Spieler Nicht Registriert ist, setze Wert '2'
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
    }
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new account=GetPVarInt(playerid,"SpielerRegistriert"); //Welcher Wert hat SpielerRegistriert für Spieler.
    if(account!=0) //Ist Spieler "sozusagen" noch nicht eingeloggt.
    {
    /*
    Wie vorhin schon kommentiert wird dem Spieler angezeigt, wenn...
    ...er Registriert ist (SpielerRegistriert Wert auf '1') den Loginvorgang
    ...er nicht registriert ist (SpielerRegistriert Wert auf '2') den Registrierungsvorgang
    */
    if(account==1) ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein","Login","Abbrechen");
    else if(account==2) ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
    return 1; //Hindert Spieler am Spawnen, oder wie man es in dem Fall nennen würde ^^...
    }
    //Restlicher Code wenn er bereits eingeloggt ist...
    return 1;
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Ich danke dir erstmal ^^


    Aufjedenfall wird der Spieler nach dem registrieren mit dem Skin ID 101 gespawnt.
    Nur..
    Wenn ich dann im Kleiderladen bin und /clothes eingebe, und zu Class Selection komme, meinen neuen Skin auswähle und spawnwn will, wird der Spieler wieder mit Skin ID 101 gespawnt!


    Hier mal OnPlayerSpawn
    public OnPlayerSpawn(playerid)
    {
    new account=GetPVarInt(playerid,"SpielerRegistriert"); //Welcher Wert hat SpielerRegistriert für Spieler.
    if(account!=0) //Ist Spieler "sozusagen" noch nicht eingeloggt.
    {
    if(account==1) LoadAccount(playerid);
    else if(account==2) SetPlayerSkin(playerid,101);
    return 1; //Hindert Spieler am Spawnen, oder wie man es in dem Fall nennen würde ^^...
    }
    GangZoneShowForPlayer(playerid,RedSoldiers,0xCD000067);
    return 1;
    }


    Habs jetzt so gemacht. Wo ist der Fehler ?


    Mit freundlichen Grüßen


    Jokertime