Hallo Brotfischer,
ich bin ja derzeit dabei ein Selfmade zu erstellen und hab ein kleines Problem mit den PVar`s. Unzwar wollte ich gern den Namen von dem man Gebannt wurde speichern in der ini und sie dann im UCP abfragen lassen, es geht halt nur darum das ich versucht habe per SetPVarString zu speichern aber in der Ini nicht der Name drin steht. hier man mein Code
dcmd_ban(playerid,params[]) {
new sGrund[128], pID, ThePlayer[MAX_PLAYER_NAME],Aname[MAX_PLAYER_NAME], string[128],h,m,s,tag,monat,jahr;
if(SpielerEingeloggt[playerid] == 0) { return SendClientMessage(playerid,rot,"Du bist nicht eingeloggt!"); }
if(GetPVarInt(playerid,"Adminlevel") < 3) { return SendClientMessage(playerid,rot,"Du bist kein Admin oder dein Adminlevel ist zu Niedrig."); }
if(sscanf(params, "is",pID,sGrund)) { return SendClientMessage(playerid,rot,"Nutzung: /ban [playerid] ([grund],optional)"); }
if(!IsPlayerConnected(pID)) { return SendClientMessage(playerid,rot,"Kein Spieler mit angegebener ID Online"); }
GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
GetPlayerName(playerid,Aname,sizeof(Aname));
format(string,sizeof(string),"%s[%d] wurde von %s[%d] gebannt | Grund: %s",ThePlayer,pID,Aname,playerid,sGrund[0] ? sGrund : "");
SendClientMessageToAll(rot,string);
gettime(h,m,s);
getdate(jahr,monat,tag);
SetPVarInt(pID,"Gebannt",1);
format(string,sizeof(string),"%s",Aname);
SetPVarString(pID,"BanVon",string);
format(string,sizeof(string),"%d.%d.%d",tag,monat,jahr);
SetPVarString(pID,"BanDatum",string);
format(string,sizeof(string),"%d.%d:%d",h,m,s);
SetPVarString(pID,"BanZeit",string);
format(string,sizeof(string),"%s",sGrund);
SetPVarString(pID,"BanGrund",string);
SaveAccount(pID);
Ban(pID);
return 1;
}
Und meine 2.nd Frage ist ob es möglich ist per Pawn in eine .cfg datei eine neue Zeile erstellen zu lassen oder sie zu löschen. Quasi das ich im game ein command eingebe und dann in der ini steht halt in einer neuen Zeile meine coordinaten.
Grüßee David
-
-
SetPVar_* schreibt auch nicht in die Datei.
PVars sind Daten die nur der Server kennt.SetPVarInt(pID,"Gebannt",1);
//format(string,sizeof(string),"%s",Aname);
SetPVarString(pID,"BanVon",Aname); // Aname
format(string,sizeof(string),"%d.%d.%d",tag,monat,jahr);
SetPVarString(pID,"BanDatum",string);
format(string,sizeof(string),"%d.%d:%d",h,m,s);
SetPVarString(pID,"BanZeit",string);
//format(string,sizeof(string),"%s",sGrund);
SetPVarString(pID,"BanGrund",sGrund); //sGrundWahrscheinlich speicherst du an dieser Stelle die Daten:
SaveAccount(pID);
Je nachdem welches System du nutz,DINI,SINI,Y_INI, MYSQL usw usf musst du damit die Daten speichern.Zum zweiten, dafür gibt es ja eigentlich /save.
Hier ein Beispiel aus meinem Gamemode :-O
// Die Datei position.txt muss existieren
COMMAND:savepos(playerid,params[]) {
new
File:fFile;
fFile = fopen("position.txt",io_append);
if(fFile) {
new
Float:_X,
Float:_Y,
Float:_Z,
String[64];
GetPlayerPos(playerid,_X,_Y,_Z);
format(String,sizeof(String),"%.3f,%.3f,%.3f\r\n",_X,_Y,_Z);
fwrite(fFile,String);
PlayerPlaySound(playerid,SOUND_GOOD,0.0,0.0,0.0);
SendClientMessage(playerid,COLOR_RED,String);
fclose(fFile);
}
else {
SendClientMessage(playerid,COLOR_RED,"ERROR");
}
return 1;
} -
Danke für die Schnelle Antwort
Ja ich Speichere mit Dini, oh und mir fällt grade auf das ich ein Integer speichereWie ist denn die Funktion um Arrays zu speichern?
wegen der 2.nd Frage, war nur ein beispiel, ich wollte mir eingentlich ein gangcar sys bauen wo man sich ein auto für die gang kaufen kann und auch verkaufen kann. Nur soll das ja in die Ini gespeichert werden und wenn man es verkaufen will soll es ja wieer gelöscht werden. Ich hab lediglich nur keine Ahnung wie ich eine Zeile erstelle oder lösche. -
dini_Set(filename[],key[],value[])
Hättest aber auch einfach in der DINI Include nachschauen können.Löschen ist nicht so einfach wie hinnein schreiben.Was du da auch vor hast scheint mit ziemlich komplex.
-
ok danke jetz funktionierts
naja ich hab bisher noch nicht gesehn das man gangcars in game kaufen kann und auch verkaufen kann aber so das sie eben auch gespeichert werden falls gmx ist. ich guck mal was sich machen lässt.
//EDIT: Hab noch ein kleines Problem mit GetPVarString könnte mir jemand dazu ein beispiel geben ich check das nich ganz -
-
Danke sehr
clööösed