Hallo liebe Comunity, ich habe vor kurzem angefangen für SA-MP mit Scripts zu arbeiten und stoße dabei leider immer wieder auf allerlei Probleme, jetzt ist es so das ich versuche beim Registrieren bereits bestimmte Werte für die Nutzer festzulegen wie z.B. Geld, Anfangslevel etc. und genau das funktioniert nicht so richtig.
#include <a_samp>
#include <Dini>
#include <MD5>
#define GRÜN 0x00C000FF
#define ROT 0xC30000FF
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
//Spieler-Name-Stock
stock SpielerName(playerid)
{
new GetName[MAX_PLAYER_NAME];
GetPlayerName(playerid,GetName,sizeof(GetName)); //Wir getten den Spielernamen
return GetName; //Und returnen ihn hier...
}
stock Register(playerid,key[])//Wir benötigen die Parameter Playerid, sowie key, wobei key das passwort des Users sein soll.....)
{
new Spielerdatei[64];//Wir erstelllen uns eine neue Spielerdatei, in der die Daten des Spielers gespeichert werden sollen
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid)); //Wir formatieren die Spielerdatei um, und sagen so dem Script , dass die Daten in dem Scriptfiles Ordner unseres Servers im Ordner "Accounts" gespeichert werden sollen....(Man kann auch /Accounts/%s.txt nehmen,wobei ich .ini jedoch schöner finde..%s ist der String zum Abfragen des Spielernamens...
dini_Create(Spielerdatei); //Hier wird die Dini-datei erstellt
dini_Set(Spielerdatei,"Passwort",key); //In die Spielerdatei soll das Passwort gesetzt werden
SendClientMessage(playerid,GRÜN,"Erfolgreich registriert."); //Die Message die kommt ,wenn man sich erfolgreich registriert hat.....
dini_IntSet(Spielerdatei,"Level",1); //Wir setzen in die Datei das Level 1
dini_IntSet(Spielerdatei,"Geld",2000); //Wir setzen das Geld auf 2000
dini_IntSet(Spielerdatei,"Fraktion",0); //Wir setzen die Fraktion auf 0 = Zivilisten bzw. keine Fraktion
dini_IntSet(Spielerdatei,"Banned",0); //Wir setzen Banned auf 0 = Nicht gebannt 1=Gebannt
dini_IntSet(Spielerdatei,"Adminlevel",1); //Wir setzen das Adminlevel auf 1
SetPVarInt(playerid,"loggedin",1); //Hier setzen wir die Variable, ob der Spieler eingeloggt ist auf 1, um Sie später wieder abfragenzukönnen...
GivePlayerMoney(playerid, 5000);
return 1;
}
Die Werte:
dini_IntSet(Spielerdatei,"Level",1); //Wir setzen in die Datei das Level 1
dini_IntSet(Spielerdatei,"Geld",2000); //Wir setzen das Geld auf 2000
dini_IntSet(Spielerdatei,"Fraktion",0); //Wir setzen die Fraktion auf 0 = Zivilisten bzw. keine Fraktion
dini_IntSet(Spielerdatei,"Banned",0); //Wir setzen Banned auf 0 = Nicht gebannt 1=Gebannt
dini_IntSet(Spielerdatei,"Adminlevel",1); //Wir setzen das Adminlevel auf 1
haben keinerlei Wirkung aber mit "GivePlayerMoney(playerid, 5000);" kann ich beim Registrieren Geld einmalig vergeben und dieses wird auch später beim Logout gespeichert daher nehme ich an das sich mir in den obigen Zeilen ein dummer Noob Fehler eingeschlichen hat.
Über Hilfe würde ich mich sehr freuen.