Register/Login System Fehler

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 ,
    habe keinen Thread mit diesem Problem gefunden.


    Also habe hier ein Filterscript für ein Register+Login System (Problem steht unten)



    Zum Problem :
    das Registrieren funktioniert und das Einloggen auch , danach muss ich einen Skin wählen und wenn ich dann auf Spawn drücke(eigentlicher Spawn Punkt LS Cityhall) , falle ich durch den Boden , aber nicht an der Cityhall sondern irgendwo auf dem Land und dann werde ich wieder hoch geportet auf den boden , aber stehe dann irgendwo im nirgendwo.


    habe bei OnPlayerRequestClass im Filterscript schon meine Werte von meinem Gamemode eingefügt , aber hat nichts gebracht , weil es ja eh nur die Skinauswahl einstellt , die ja funktioniert.
    aber irgendwie sind die spawn koords falsch , aber habe bei meinem gamemode eigentlich garkeine speziellen spawnkords angegeben , spawn punkt ist bei mir da wo die skinauswahl ist (vor der LS Cityhall).


    hab noch eine Frage:


    wenn ich mich einlogge läd er den Skin nicht sondern die Skinauswahl kommt und das jedesmal nach dem Einloggen , wie genau muss ich das filterscript ändern um das zu verhindern?


    *EDIT* Kennt ihr vielleicht ein besseres Register-Login Script? Bei diesem hier wird nur sehr wenig gespeichert und geladen , bräuchte was wo auch das gekaufte Auto etc. gespeichert wird und die Fraktion usw.


    Bin noch Anfänger , bitte keine komplizierten Erklärungen


    Danke im Vorraus , hoffe ihr habt eine Lösung :thumbup:


    MfG Loquax

  • Zum 1.
    Das Problem liegt wohl bei public "OnPlayerSpawn".
    Man wird an seine alte Position wieder gespawnt.
    Einfach die Funktion einklammern ^^.
    Wenn machs mal so:


    ganz oben

    forward SpawnenLassen(playerid);


    Bei OnPlayerSpawn:

    SpawnenLassen(playerid);


    und dann unten im Script

    public SpawnenLassen(playerid);
    {
    if(IsPlayerConnected(playerid))//ob spieler connectet ist
    {
    SetPlayerPos(playerid, x,y,z); // deine Koordinaten
    SetPlayerInterior(playerid, interiornummer);//wenn nötig
    }
    }


    zu deinem 2. Problem.
    Das liegt vielleicht darann das dass Login/Register System ein Filterscript ist.
    Einfach mal das in den Gamemode einbauen ^^.
    Ist auch viel nützlicher.



    edit:
    Wegen dem Auto speichern: Das ist ganz einfach ^^.


    Also gehen wir mal zu deinem enum.

    enum spieler_daten
    {
    wanted,
    skin,
    Float:lastx,Float:lasty,Float:lastz,
    eingeloggt
    }
    new Spieler[MAX_PLAYERS][spieler_daten];

    einfach unter eingeloggt das hinzufügen.
    Also:

    enum spieler_daten
    {
    wanted,
    skin,
    Float:lastx,Float:lasty,Float:lastz,
    eingeloggt,
    auto
    }
    new Spieler[MAX_PLAYERS][spieler_daten];


    und jetzt muss dein Auto noch gespeichert werden.
    das machen wir mit:

    dini_FloatSet(accFormat,"auto",Spieler[playerid][auto]);//kommt unter OnPlayerDisconnect


    und: Spieler[playerid][auto] = 0;


    Um ein Auto zu kaufen , musst du wieder ein neues Command erstellen.

    if(strcmp(cmdtext,"/autokaufen",true)==0)
    {
    if(IsPlayerConnected(playerid))//ob spieler aufn server ist
    {
    if(IsPlayerInAnyVehicle(playerid))//ob spieler im auto ist
    {
    if(Spieler[playerid][auto] == 1)//ob es sein auto ist
    {
    SendClientMessage(playerid,FARBE,"Du hast schon das Auto gekauft !");//message
    }
    else//wenn er es noch nicht hat
    {
    SendClientMessage(playerid,FARBE,"Du hast das Auto gekauft !");//message
    Spieler[playerid][auto] = 1;//gibt das auto dem spieler als besitzer
    }
    }
    }

    das war jetzt nur ein kleines beispiel. man könnte ja viel mehr machen :thumbup:




    MFG KingMS



    }

    Einmal editiert, zuletzt von KingMS () aus folgendem Grund: was hinzugefügt

  • soo hab auch mal en frage =)


    bei mir siehts so aus:
    enum pInfo
    {
    passwort[128],
    skin,
    money,
    loggedin,
    };


    new pInfo[MAX_PLAYERS][pInfo];
    asso des steht oben und


    public OnPlayerSpawn(playerid)
    {
    new name[128], save[128];
    if (pInfo[playerid][loggedin] == 1);
    {
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Spieler/%s.ini",name);
    SetPlayerSkin(playerid,dini_Int(save,"Skin"));
    }
    else if (pInfo[playerid][loggedin] == 0);
    {
    Kick(playerid);
    }
    return 1;
    }


    und dann kommen diese errors.. <.<


    C:\Dokumente und Einstellungen\Marco1\Desktop\server\gamemodes\123.pwn(114) : error 017: undefined symbol "Info"
    C:\Dokumente und Einstellungen\Marco1\Desktop\server\gamemodes\123.pwn(114) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\Marco1\Desktop\server\gamemodes\123.pwn(114) : error 001: expected token: ";", but found "]"
    C:\Dokumente und Einstellungen\Marco1\Desktop\server\gamemodes\123.pwn(114) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Marco1\Desktop\server\gamemodes\123.pwn(114) : fatal error 107: too many error messages on one line


    bitte um Hilfe hab keine Ahnung..

  • gleiche errors...
    aber danke =)
    aber des muss an was anderem liegen.. da kommt ja:


    undefined symbol "pInfo"


    asso müsste ja ein new pinfo;
    fehlen... aber ganz oben hab ich ja: new pInfo[MAX_PLAYERS][pInfo];
    ist des falsch definiert oder wie wo was? :>

  • hab jetzt einfach eingestellt , dass wenn er ein passwort für den user gespeichert hat ( hat er ja immer , auch nach der registration) , dann setplaypos (spawnpunkt)
    hab einfach das last x y z zeug gelöscht :D


    nun noch eine Frage:
    wie lasse ich das Filterscript denn neue Sachen laden wie Fraktionen


    *EDIT*
    wie füge ich denn jetzt noch ein , dass dem Spieler Geld abgezogen wird ,also den Preis des Autos ?

    Einmal editiert, zuletzt von Loquax ()

  • okay nun hab ich noch ein problem vielleicht kannste das auch lösen.
    wenn ich in meinem userfile fraktion z.B. auf 1 setze (Cops)
    dann kann ich bei der skinauswhal die cop skins auswählen (skins kann jeder nehmen , weiß nicht wie ich das umstell)
    aber wenn ich dann meinen portbefehl zum LSPD benutzen will /cbase
    dann kommt
    du bist kein cop


    irgendwie gehör ich nicht zur fraktion
    als ob das speichern und laden von fraktion total egal wäre