auch so funktioniert es nicht...nachdem neustart sind die Werte : Fraktion, FraktionLevel sowie Adminlevel alle auf 0
Beiträge von Helix91
-
-
Guten Tag,
habe folgendes problem mit meinem login script welches auf dini basiert... unswar werden die spielerdaten wie fraktion, fraktionlvl sowie das adminlevel nicht gespeichert. ich habe die vermutung das dies an der verwendung von pvars liegen könnte.
hier einmal die ausschnitte die beim serverrestart tätig werden.
// serverneustart befehl if (strcmp("/serverneustart", cmdtext, true, 10) == 0) { if(istSpielerAdmin(playerid,3)) { StatsSpeichernRestart(); GameModeExit(); return 1;
stock StatsSpeichernRestart(){ for(new playerid = 0; playerid < GetMaxPlayers(); playerid++) { if(IsPlayerConnected(playerid) && playerid != INVALID_PLAYER_ID) { StatsSpeichern(playerid); } } return 1;}
stock StatsSpeichern(playerid){ new Spieler[64];new Sname[MAX_PLAYER_NAME]; GetPlayerName(playerid,Sname,sizeof(Sname)); format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname); dini_IntSet(Spieler,"Geld",GetPlayerMoney(playerid)); dini_IntSet(Spieler,"Adminlevel",GetPVarInt(playerid,"Adminlevel")); dini_IntSet(Spieler,"Fraktion",GetPVarInt(playerid,"Fraktion")); dini_IntSet(Spieler,"FraktionLevel",GetPVarInt(playerid,"FraktionLevel")); return 1;}
einer ne idee woran es liegen könnte?
-
Wieso "oder sogar"? SetPlayerMoney gibt es nativ nicht.
Ich denke GivePlayerMoney mit negativem Wert (wie TheSven) sagte ist das was er sucht.absolut richtig
vielen dank TheSven, den anderen natürlich auch für die schnellen gutgemeinten kommentare
-
hallo,
mein anliegen lässt sich relativ kurz beschreiben.
unswar suche ich quasi genau das gegenteil vom befehl GivePlayerMoney()
gibt es sowas?
-
problem gelöst. ich hatte noch einen zweites mal einen geld befehl der uhrsprünglich mal auskommentiert war. bei dem war in der tat ein s vorhanden.
meine lektion die ich daraus ziehe:
Beim Scripten stehts auf Ordnung und Überschaubarkeit achtendanke für eure hilfe
-
ja habe ich das ganze sieht jetzt so aus:
//geld befehlocmd:geld(playerid, params[]) {new pID, betrag;
if(!istSpielerAdmin(playerid, 3)) return SendClientMessage(playerid, rot, "Ey bist du doof. Das ist ein ADMIN KOMMANDO!!!!!!!!!!!1111111");if(sscanf(params,"ud",pID,betrag))return SendClientMessage(playerid,rot,"/geld ID BETRAG");GivePlayerMoney(pID, betrag);return 1;} -
nun ergibt
/geld 0 1
49$ich verstehe die welt nicht mehr
-
Guten Tag,
ich habe ein problem
unswar habe ich mir mit hilfe von ocmd und sscanf einen kleinen befehl zum geld geben gebastelt.
funktionieren soll das ganze wie folgt:
/give ID BETRAGprinzipiell funktioniert es ja auch bloß das man auch bei einen wunschbetrag von 1$ in wirklichkeit 65535$ vergibt.
hier einmal der scriptausschnitt vom befehl:
//geld befehl ocmd:geld(playerid,params[]) { if(istSpielerAdmin(playerid,3)) { new pID,betrag; if(sscanf(params,"uu",pID,betrag))return SendClientMessage(playerid,rot,"/geld ID BETRAG"); GivePlayerMoney(pID,betrag); return 1; } SendClientMessage(playerid,rot,"Dazu bist du nicht berechtigt"); return 1; }
ich hoffe jemand kann mir anfänger auf die sprünge helfen