Account erstellung geht nicht so wie FraktionsSystem buggt

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
  • Guten Abend


    Mir ist grade aufgefallen das wenn ich mich auf mein Server Verbinde kann ich nur auf Spawn drücken.


    Ich habe kein Plan ob es am Script liegt oder nicht.


    Hier die Sachen die Für die Account-Erstellung wichtig sind:


    Define:

    Code
    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2




    Mysql Daten:

    Code
    #define MYSQL_HOST "85.131.156.213"
    #define MYSQL_USER "ni630601_1_DB"
    #define MYSQL_PASS "0fufEL1y"
    #define MYSQL_DBSE "ni630601_1_DB"
    new MySQL:handle;

    Spielerinfo:

    FraktionsEnum:

    OnGameModeExit:


    Code
    public OnGameModeExit()
    {
    	mysql_close(handle);
    	return 1;
    }

    OnPlayerRequestClass:



    OnPlayerConnect:



    OnUserCheck:



    OnPlayerSpawn:




    Fraktion und Adminfunktion:


    Code
    isPlayerInFrakt(playerid,f_id){
    	if(sInfo[playerid][Fraktion]==f_id)return 1;
    	return 0;
    }
    isAdmin(playerid,alevel)
    {
    	if(sInfo[playerid][Adminlevel]>=alevel)return 1;
    	return 0;
    }

    Spawnchange:


    Register/Login Dialog:


    MySQL_SetupConnection:


    OnUserRegister:




    Code
    public OnUserRegister(playerid)
    {
    	//Der Spieler wurde in die Datenbank eingetragen, es wird die id ausgelsen
    	sInfo[playerid][db_id] = cache_insert_id();
    	SendClientMessage(playerid,grün,"[Konto]Registration erfolgreich");
    	return 1;
    }

    OnUserLogin:




    SaveUserStats und SpielerName:



  • @Mar.cel


    Kann dir nur die Server.Log gebe.



    Server.log:

  • Beitrag von Markuslobicher ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Ich habe die Logs gefunden:


    Mysq_Log Datei:


  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ja..und wie du siehst existiert nur die Spalte username...und nicht Name... :rolleyes:


    Also im Query entweder username verwenden..oder die Spalte zu Name umbenennen :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • @Kaliber


    Ich habe es gemacht aber dennoch Fehler :


    Account wird nicht erstellt.


    Mysql_Log:

  • Ja...weil die Spalte password auch nicht existiert...


    Schau doch mal was du verwendest..und was du für Spalten hast..ist doch nicht so schwer ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • @Kaliber


    Folgedes Gehört zum Register/Login verfahren:


    Bild von meiner DatenBank Link;
    http://www.pic-upload.de/view-31884324/Datenbank.png.html


    Dialoge Definiert:


    Code
    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2

    SpielerEnum:

    OnPlayerRequestClass:


    OnUserCheck:




    OnPlayerDisconnect:




    Code
    public OnPlayerDisconnect(playerid, reason)
    {
    	SaveUserStats(playerid);
    	resetPlayer(playerid);
    	return 1;
    }

    OnPlayerSpawn:




    GetPlayerName:

    Code
    getPlayerName(playerid)
    {
    	new name[MAX_PLAYER_NAME];
    	GetPlayerName(playerid,name,sizeof(name));
    	return name;
    }

    OnDialogResponse:

    OnUserRegister:


    Code
    public OnUserRegister(playerid)
    {
    	//Der Spieler wurde in die Datenbank eingetragen, es wird die id ausgelsen
    	sInfo[playerid][db_id] = cache_insert_id();
    	SendClientMessage(playerid,grün,"[Konto]Registration erfolgreich");
    	return 1;
    }

    OnUserLogin:




    SaveUserStats und SpielerName:




  • Du musst auch ein bisschen darauf achten, wie du alles schreibst (Groß- und Kleinschreibung).
    Die Spalte in der Tabelle heißt "Name", das heißt du musst im Script auch "Name" verwenden und nicht "name".


    Versuche das mal alles in Ordnung zu bringen, sollten dann immer noch Fehler sein, dann melde dich erneut.

  • @AirM4X Danke!



    Neues Problem:


    Nach dem man sich Registriert hat sehen die Spieler Stats so aus:


    Spieler: x
    Adminlevel: 0
    Spieler: 1
    Money: 0
    Fraktion: 0
    Rang:-0
    Spawn: 0


    Nach dem man sich erneut einloggt sehen die Spielerstats aber so aus in der Datenbank:
    http://www.pic-upload.de/view-31884342/Datenbank2.png.html


    Wenn man in einer Fraktion ist und Spawnchange benutzt und man Stirbt wird man nicht in die Fraktionsbase gesetzt:


    Fraktionsbefehle:





    Laut der Mysql_Log:












    Möchte das aber in der Datenbank die Spielerstats alle gespeichert werden.



    So sieht Mein Code für Register/Login Spielerenum und Fraktionsenum aus:


    Dialoge:


    Code
    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2


    Spielerenum und Fraktionsenum:


    fraktionsinformation:



    OnPlayerRequestClass:




    OnPlayerConnect:



    resetPlayer:


    Code
    resetPlayer(playerid)
    {
    	for(new i=0; i<sizeof(sInfo[]); i++)
    	{
    	    sInfo[playerid][playerInfo:i]=0;
    	}
    	return 1;
    }

    OnPlayerDisconnect:



    Code
    public OnPlayerDisconnect(playerid, reason)
    {
    	SaveUserStats(playerid);
    	resetPlayer(playerid);
    	return 1;
    }

    OnPlayerSpawn:




    Fraktionsabfrage und Adminabfrage:



    Code
    isPlayerInFrakt(playerid,f_id){
    	if(sInfo[playerid][Fraktion]==f_id)return 1;
    	return 0;
    }
    isAdmin(playerid,alevel)
    {
    	if(sInfo[playerid][Adminlevel]>=alevel)return 1;
    	return 0;
    }

    Welche Fraktion es gibt und Adminränge:



    OnUserLogin:




    SaveUserStats:


  • Bei SaveUserStats hast du vergessen, die ID in die Query einzutragen, sprich nach sInfo[playerid][Spawn] müsste noch die ID folgen (für die Datenbank-ID).


    Was du jetzt mit dem Speichern meintest, habe ich nicht ganz verstanden, aber vielleicht behebt das ja schon das Problem.

  • @AirM4X


    Du meinst ?


    von:

    Code
    mysql_format(handle,query,sizeof(query),"UPDATE Accounts Set Name = '%s',Adminlevel = '%d',Level = '%d',Money = '%d',Fraktion = '%d',Rang = '%d',Spawn = '%d'  WHERE id = '%d' ",
            sInfo[playerid][Name],sInfo[playerid][Adminlevel],sInfo[playerid][Level],sInfo[playerid][Money],sInfo[playerid][Fraktion],sInfo[playerid][Rang],sInfo[playerid][Spawn




    Zu:


    Code
    mysql_format(handle,query,sizeof(query),"UPDATE Accounts Set Name = '%s',Adminlevel = '%d',Level = '%d',Money = '%d',Fraktion = '%d',Rang = '%d',Spawn = '%d'  WHERE id = '%d' ",
            sInfo[playerid][Name],sInfo[playerid][Adminlevel],sInfo[playerid][Level],sInfo[playerid][Money],sInfo[playerid][Fraktion],sInfo[playerid][Rang],sInfo[playerid][Spawn],sInfo[playerid][db_id]);