Beiträge von Helixxx

    hab ich :/


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


    bevor jemand nach dem inhalt der resetPlayer funktion fragt:


    Code
    resetPlayer(playerid)
    {
    	sInfo[playerid][eingeloggt] =0;
    	sInfo[playerid][level] =0;
    	sInfo[playerid][id] =0;
    	return 1;
    }


    edit:
    konnte den fehler selber beheben indem ich in meinen gmx befehl ein resetPlayer(); eingefügt habe. vielen dank euch allen :thumbup:

    okay, hier einmal ein der gewünschte mysql log(hab mich einmal während des spiels einegloggt und wieder ausgeloggt:


    da habe ich auch schon drann gedacht und es wie folgt umgebaut:


    Code
    new query[512],skinID;
    skinID = GetPlayerSkin(playerid);
     format(query,sizeof(query),"UPDATE user SET level='%i',money='%i', adminlevel='%i', permban='%i', skin='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][adminlevel], sInfo[playerid][permban], skinID, sInfo[playerid][id]);
    mysql_function_query(dbhandle, query, false,"","");


    jedoch hat sich nichts geändert :/

    habe jetzt folgendes "gebastelt:

    Code
    ocmd:test1(playerid)
    {
    
    
    	SendClientMessage(playerid, gelb, "Test1:");
    	SendClientMessage(playerid, gelb, sInfo[playerid][skin]);
    	return 1;
    }


    dieser befehl sollte ja eigentlich die skinid ausgeben, welche beim spieler laden gelden wurde, richtig?



    Jedoch zeigt der befehl mal was ganz anderes an :




    edit://
    hab das hier mal in den public OnPasswordResponse rangehangen:

    Code
    printf("Adminlevel: %d", sInfo[playerid][adminlevel]);
    printf("SkinID: %d", sInfo[playerid][skin]);
    
    
    
    
    und hier einmal das ergebnis:
    [code]
    [12:29:57] Adminlevel: 5
    [12:29:57] SkinID: 0

    hast du oben bei den includes das hier stehen?

    Code
    #include <md5>


    damit müsste es eigentlich gehen... deine fehlermeldungen deuten darauf hin das etwas nicht mit dem includen hingehauen hat..


    Hab dir ansonsten nochmal mein include hochgeladen:
    (rechtsklick-> ziel speichern unter)

    Code
    http://files.stinkefaul.de/pawno/includes/md5.inc


    das kommt dann in folgenden pfad:

    Code
    ...\samp\pawno\include


    ansonsten mal abspeichern und pawno als administrator neu starten.

    dies ist relativ einfach.


    Zuerst schauen wir uns deinen register stock an:

    Code
    dini_Set(Spielerdatei,"Passwort",key);


    Wie dir sicher klar ist ist "key" deine variable welche dein kennwort enthält. um aus der eingabe jetzt einen md5hash zu erstellen nutzen wir das md5 include:


    Code
    dini_Set(Spielerdatei,"Passwort",md5(key));


    Jetzt wird bereits beim registrieren das gewünschte userpasswort verschlüsselt gespeichert.
    Nun müssen wir nurnoch den login modifizieren:


    Hier wird NOCH die variable der usereingabe mit dem wert in der spielerdatei verglichen:

    Code
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),true)


    Modifiziert würde das ganze so aussehen:

    Code
    if(!strcmp(md5(key),dini_Get(Spielerdatei,"Passwort"),true)



    das passende include findest du hier:
    http://www.bfxsoftware.kilu.de/downloads/md5_mirror/


    includen tust du es indem du es im pawno ordner in den include ordner reinhaust und in deinem script oben "#include <md5>" hinzufügst.


    mfg
    Helixxx

    Moinsen,


    habe neulich angefangen scripten zu lernen, was mir bis jetzt für meine verhältnisse auch recht gut geling.
    Es wird ein nutzername, ein passwort, geld des spielers sowie die skinid in einer Mysql-Datenbank gespeichert.


    Sofern man als Spieler disconnected wird auch alles vollständig gespeichert, bei einem restart verbindet man jedoch wieder mit der skinid 0 (also cj)



    Hat evt jemand ne ahnung wieso, weshalb und warum? 8|



    Hier einmal ein paar codeausschnitte:


    hier der code indem alles gespeichert wird:


    Code
    savePlayer(playerid)
    {
    	if(sInfo[playerid][eingeloggt]==0)return 1;
    	{
    	new query[512];
    	format(query,sizeof(query),"UPDATE user SET level='%i',money='%i', adminlevel='%i', permban='%i', skin='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][adminlevel], sInfo[playerid][permban], sInfo[playerid][skin], sInfo[playerid][id]);
    	mysql_function_query(dbhandle, query, false,"","");
    	}
    	return 1;
    }




    hier werden die userdaten nach eingeben eines korrekten passwortes geladen:




    ich hoffe mir kann jemand weiterhelfen, bin echt am verzweifeln :/ :(


    mfg
    Helixxx