Beim ocmd:put Befehl bei:
putid
eine 24 hinmachen, also:
putid[24]
Beim ocmd:put Befehl bei:
putid
eine 24 hinmachen, also:
putid[24]
Okay werde es nun ingame testen,
Wäre es auch irgendwie möglich statt 1 und 2 einzugeben drugs und mats zu verwenden
Okay, habe nochmal dran gearbeitet und jetzt versuche es bitte hiermit - ist nach deinem Wunsch angepasst.
ocmd:put(playerid,params[])
{
//Safebox Koordinaten hier einfügen!!
new savethings, putid, putstring[128];
if(sscanf(params, "dd", putid, savethings))return SendClientMessage(playerid,GELB,"Verwendung: /put [drugs | drugs] [Anzahl an Drogen/Mats]");
if(strcmp(putid,"drugs",true) == 0)
{
if(sSpieler[playerid][DDrogen] => savethings)
{
sSpieler[playerid][DDrogen] -= savethings;
sSpieler[playerid][SBDrogen] += savethings;
format(putstring, sizeof(putstring),"Du hast %d Drogen in der Safebox eingelagert. Benutze /gtake um sie wieder rauszuholen.", savethings);
SendClientMessage(playerid, -1, string);
}
else
{
SendClientMessage(playerid, -1, "So eine Drogenmenge besitzt du nicht auf bei dir.");
}
}
else if(strcmp(putid,"mats",true) == 0)
{
if(sSpieler[playerid][Materials] >= savethings)
{
sSpieler[playerid][Materials] -= savethings;
sSpieler[playerid][SBMats] += savethings;
format(putstring, sizeof(putstring),"Du hast %d Materials in der Safebox eingelagert. Benutze /gtake um sie wieder rauszuholen.", savethings);
SendClientMessage(playerid, -1, string);
}
else
{
SendClientMessage(playerid, -1, "So eine Material-Menge besitzt du nicht auf bei dir.");
}
}
else
{
SendClientMessage(playerid,GELB,"Verwendung: /put [drugs | drugs] [Anzahl an Drogen/Mats]");
}
return 1;
}
ocmd:gtake(playerid,params[])
{
//Safebox Koordinaten hier einfügen!!
new takethings, putid[24], putstring[128];
if(sscanf(params, "dd", putid, takethings)) return SendClientMessage(playerid,GELB,"Verwendung: /gtake [drugs | mats] [Anzahl an Drogen/Mats]");
if(strcmp(putid,"drugs",true) == 0)
{
if(takethings <= sSpieler[playerid][SBDrogen])
{
sSpieler[playerid][DDrogen] += savethings;
sSpieler[playerid][SBDrogen] -= savethings;
format(putstring, sizeof(putstring),"Du hast %d Drogen aus der Safebox entnommen. Benutze /put um sie wieder einzulagern.",takethings);
SendClientMessage(playerid, -1, string);
}
else
{
SendClientMessage(playerid, -1, "So eine Drogenmenge besitzt du nicht in deiner Safebox.");
}
}
else if(strcmp(putid,"mats",true) == 0)
{
if(takethings <= sSpieler[playerid][SBMats)
{
sSpieler[playerid][Materials] += savethings;
sSpieler[playerid][SBMats] -= savethings;
format(putstring, sizeof(putstring),"Du hast %d Materials in der Safebox eingelagert. Benutze /gtake um sie wieder rauszuholen.",takethings);
SendClientMessage(playerid, -1, string);
}
else
{
SendClientMessage(playerid, -1, "So eine Material-Menge besitzt du nicht auf deienr Safebox.");
}
}
else
{
SendClientMessage(playerid,GELB,"Verwendung: /gtake [drugs | mats] [Anzahl an Drogen/Mats]");
}
return 1;
}
Alles anzeigen
Schick mal bitte dein "stats" Befehl, versuch aber auch nochmal so, wie ich es dir jetzt schicke.
Alles anzeigen@Kristik47 erstmal vielen dank für das System als ich es einfügen wollte kam jedoch dies:
C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3266) : error 017: undefined symbol "string"
C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3280) : error 017: undefined symbol "string"
C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3300) : error 017: undefined symbol "savethings"
C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3302) : error 017: undefined symbol "savethings"
C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3303) : error 017: undefined symbol "savethings"
C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3305) : error 017: undefined symbol "string"
C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3314) : error 017: undefined symbol "savethings"
C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3316) : error 017: undefined symbol "savethings"
C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3317) : error 017: undefined symbol "savethings"
C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3319) : error 017: undefined symbol "string"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
10 Errors.
/edit Erros fixxed aber ich kann keine Drugs reinpacken aber permanent etwas hinaus nehmen
![]()
Tut mir Leid, mach es bitte so beim "Put-Befehl" Case 1
if(sSpieler[playerid][DDrogen] < savethings)
zu
if(sSpieler[playerid][DDrogen] >= savethings)
Gleiches bei "Put-Befehl" Case 2:
if(sSpieler[playerid][Materials] < savethings)
zu
if(sSpieler[playerid][Materials] >= savethings)
Weiterhin bitte beim gtake Befehl bei Case 1 und 2 folgendes ersetzen:
savethings zu takethings bei diesen Abfragen hier:
if(savethings <= sSpieler[playerid][SBDrogen]) //Case 1
if(savethings <= sSpieler[playerid][SBMats]) //Case 2
zu
if(takethings<= sSpieler[playerid][SBDrogen]) //Case 1
if(takethings<= sSpieler[playerid][SBMats]) //Case 2
Entschuldige bitte für die Fehler.
Habe dir mal auf die schnelle das komplette System zusammengemeistert. Versuchs mal so:
enum SpielerDaten
{
Adminlevel,
Suplvl,
level,
Fraktion,
Alter,
Geschlecht,
Skin,
slogin,
Rang,
PaydayZeit,
Bargeld,
DDrogen,
Materials,//Änderung
SBDrogen,//Änderung
SBMats,//Änderung
Bankguthaben,
Festgeld,
FestgeldTime,
Gangjailticket,
Bauerticket,
Pilotticket
};
ocmd:put(playerid,params[])
{
//Safebox Koordinaten hier einfügen!!
new savethings, putid, putstring[128];
if(sscanf(params, "dd", putid, savethings))return SendClientMessage(playerid,GELB,"Verwendung: /put [1 Drogen | 2 Materials] [Anzahl an Drogen/Mats]");
switch(putid)
{
case 1:
{
if(sSpieler[playerid][DDrogen] < savethings)
{
sSpieler[playerid][DDrogen] -= savethings;
sSpieler[playerid][SBDrogen] += savethings;
format(putstring, sizeof(putstring),"Du hast %d Drogen in der Safebox eingelagert. Benutze /gtake um sie wieder rauszuholen.", savethings);
SendClientMessage(playerid, -1, string);
}
else
{
SendClientMessage(playerid, -1, "So eine Drogenmenge besitzt du nicht auf bei dir.");
}
}
case 2:
{
if(sSpieler[playerid][Materials] < savethings)
{
sSpieler[playerid][Materials] -= savethings;
sSpieler[playerid][SBMats] += savethings;
format(putstring, sizeof(putstring),"Du hast %d Materials in der Safebox eingelagert. Benutze /gtake um sie wieder rauszuholen.", savethings);
SendClientMessage(playerid, -1, string);
}
else
{
SendClientMessage(playerid, -1, "So eine Material-Menge besitzt du nicht auf bei dir.");
}
}
}
return 1;
}
ocmd:gtake(playerid,params[])
{
//Safebox Koordinaten hier einfügen!!
new takethings, putid, putstring[128];
if(sscanf(params, "dd", putid, takethings))return SendClientMessage(playerid,GELB,"Verwendung: /gtake [1 Drogen | 2 Materials] [Anzahl an Drogen/Mats]");
switch(putid)
{
case 1:
{
if(savethings <= sSpieler[playerid][SBDrogen])
{
sSpieler[playerid][DDrogen] += savethings;
sSpieler[playerid][SBDrogen] -= savethings;
format(putstring, sizeof(putstring),"Du hast %d Drogen aus der Safebox entnommen. Benutze /put um sie wieder einzulagern.",takethings);
SendClientMessage(playerid, -1, string);
}
else
{
SendClientMessage(playerid, -1, "So eine Drogenmenge besitzt du nicht in deiner Safebox.");
}
}
case 2:
{
if(savethings <= sSpieler[playerid][SBMats)
{
sSpieler[playerid][Materials] += savethings;
sSpieler[playerid][SBMats] -= savethings;
format(putstring, sizeof(putstring),"Du hast %d Materials in der Safebox eingelagert. Benutze /gtake um sie wieder rauszuholen.",takethings);
SendClientMessage(playerid, -1, string);
}
else
{
SendClientMessage(playerid, -1, "So eine Material-Menge besitzt du nicht auf deienr Safebox.");
}
}
}
return 1;
}
stock SpielerSpeichern(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(dini_Exists(Spieler))
{
dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
dini_IntSet(Spieler,"Suplvl",sSpieler[playerid][Suplvl]);
dini_IntSet(Spieler,"level",sSpieler[playerid][level]);
dini_IntSet(Spieler,"Rang",sSpieler[playerid][Rang]);
dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
dini_IntSet(Spieler,"Alter",sSpieler[playerid][Alter]);
dini_IntSet(Spieler,"Geschlecht",sSpieler[playerid][Geschlecht]);
dini_IntSet(Spieler,"Skin",sSpieler[playerid][Skin]);
dini_IntSet(Spieler,"PaydayZeit",sSpieler[playerid][PaydayZeit]);
dini_IntSet(Spieler,"Gangjailticket",sSpieler[playerid][Gangjailticket]);
dini_IntSet(Spieler,"Bauerticket",sSpieler[playerid][Bauerticket]);
dini_IntSet(Spieler,"Bankguthaben",sSpieler[playerid][Bankguthaben]);
dini_IntSet(Spieler,"Bargeld",GetPlayerMoney(playerid));
dini_IntSet(Spieler,"Materials",GetPlayerMoney(playerid)); //Änderung
dini_IntSet(Spieler,"DDrogen",sSpieler[playerid][DDrogen]);
dini_IntSet(Spieler,"SBDrogen",sSpieler[playerid][SBDrogen]); //Änderung
dini_IntSet(Spieler,"SBMats",sSpieler[playerid][SBMats]); //Änderung
dini_IntSet(Spieler,"FestgeldTime",sSpieler[playerid][FestgeldTime]);
}
return 1;
}
PAWN-Quellcode
stock SpielerLaden(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(dini_Exists(Spieler))
{
SetPlayerScore(playerid,dini_Int(Spieler,"level"));
sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
sSpieler[playerid][level] = dini_Int(Spieler,"level");
sSpieler[playerid][Rang] = dini_Int(Spieler,"Rang");
sSpieler[playerid][Suplvl] = dini_Int(Spieler,"Suplvl");
sSpieler[playerid][Alter] = dini_Int(Spieler,"Alter");
sSpieler[playerid][Geschlecht] = dini_Int(Spieler,"Geschlecht");
sSpieler[playerid][Skin] = dini_Int(Spieler,"Skin");
sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
sSpieler[playerid][PaydayZeit] = dini_Int(Spieler,"PaydayZeit");
sSpieler[playerid][Gangjailticket] = dini_Int(Spieler,"Gangjailticket");
sSpieler[playerid][Bauerticket] = dini_Int(Spieler,"Bauerticket");
sSpieler[playerid][Bankguthaben] = dini_Int(Spieler,"Bankguthaben");
sSpieler[playerid][FestgeldTime] = dini_Int(Spieler,"FestgeldTime");
sSpieler[playerid][Bargeld] = dini_Int(Spieler,"Bargeld");
sSpieler[playerid][DDrogen] = dini_Int(Spieler,"DDrogen"); //Änderung
sSpieler[playerid][DDrogen] = dini_Int(Spieler,"DDrogen");
sSpieler[playerid][SBDrogen] = dini_Int(Spieler,"SBDrogen"); //Änderung
sSpieler[playerid][SBMats] = dini_Int(Spieler,"SBMats"); //Änderung
sSpieler[playerid][slogin] = 1;
GivePlayerMoney(playerid,sSpieler[playerid][Bargeld]);
}
return 1;
}
Allerdings kommt dann folgendes in der Console
Run time error 19: "File or function is not found"
Wie würde der befehl denn bei meiner Methode Funktionieren?
Wenn das bei dir kommt, wenn du die Console startest bzw. den Server, dann hast du wahrscheinlich
1) in deinem "plugins"-Ordner sscanf.dll nicht drinne hast, wenn du Linux hast sscanf.so - mach am besten alle beiden Dateien da rein
2) in der Server.cfg vergessen ganz unten ein "plugins sscanf" hinzuschreiben, denn somit weiß die Konsole "Ah ja, das Plugin sscanf muss geladen werden"
und dadurch gibts auch kein Problem mehr.
3) im pawno -> include Ordner -> sscanf2.inc nicht drinne und diese auch in deinem Skript via
includiert.
Nach diesen ganzen Vorgängen, sollte der Runtime Error weg sein. und ocmd, was du auch bitte im include Ordner von pawno hast,
auch im Skript inkludieren via
//Kannst auch ganz unten diesen Stock erstellen und dann diesen bei name = '%s' immer benutzen. Hier so würde es aussehen:
stock sName(playerid)
{
new name[MAX_PLAYER_NAME]
GetPlayerName(playerid, name, sizeof(name));
return name;
}
//und dann halt wie gesagt immer statt die new's zu erstellen, um dann am Ende des Formats ein "name" reinzupacken
//sName(playerid); schreiben statt name. sName ist dann so gesagt global definiert und immer nutzbar. Bei einer Schleife
//zum Beispiel bei der hier:
for(new i = 0; i < MAX_PLAYERS; i++)
{
}
benutzt du sName(i); , wenns dazu kommt.
Unsere Meinung wird wahrscheinlich niemanden erreichen, aber dennoch: Die machen doch sowieso was die wollen.
Ob es jemandem Schaden zurichtet oder nicht, interessiert keinen. Sicherheit hin oder her, aber woher weiß man, dass
sie mal nicht einfach so zum Zwecke des Eigens beim Konkurrenten oder Personen die stören vorbeischaut, sich reinhackt
und Daten stiehlt, entfernt, um sich sauber zu halten. Menschenrechte sind heutzutage irgendwie von zweiseitiger
Wichtigkeit gespalten.
Danke Jeffry, es hat geklappt, aber woran hast du gesehen, dass ich mein Plugin aktualisieren muss?
Das kommt entweder durch Jeffry's Erfahrung, da er nicht den ersten Tag in dieser Branche hilft oder
er ist einfach nur der Code-Gott, was man nicht ausschließen kann, und er weiß halt über alles Bescheid.
Wahrscheinlich am sinnvollsten wäre meine 1. Variante, aber die 2. ist auch nicht unmöglich.
Zudem: Wenn dort steht: "File or Function not found" kann man, wenn man in dem Skripting-Bereich
eine Weile tätig ist, durch eigenes Denken drauf kommen, dass irgendwas aktualisiert ist/nicht ist/werden muss, denn alles was
im Skript vorhanden ist samt der ganzen Funktionen und so weiter muss compiled werden und wenn der Compiler
eine Funktion findet, die weder im Skript noch im Include definiert ist, so spuckt er einen Fehler aus - so stelle
ich es mir zumindest von der Logik her vor.
Ich sehe da echt keinen Fehler oder sonstiges - aber vielleicht bin ich auch im dem Sinne einfach nur blind.
Da kann dir ein so genanntes PAWN Genie wie @Jeffry mehr weiterhelfen.
@Kristik47 Kann ja nicht hab das selbe Problem auch und Wenn Ich das Touchpad vom Laptop benutze funktioniert es nicht.
Ich spreche explizit von einer Maus, denn dieses Problem ist nicht wirklich spezifiziert, weshalb ich der
Meinung bin, alles was möglich ist durchzuprobieren und vielleicht kommt man irgendwie zu einer Lösung.
Ich hatte das Problem wie gesagt auch schon mal; ich habe zwar keine neue Maus probiert, da meine Maus
neu war, aber vielleicht kann man ja einen Wert auf den Versuch legen und es mal tun. Vielleicht könnte
das ja sogar was bringen.
Wenns nicht an der Maus liegt, es also bei beiden "Mäusen" gleich problematisch bleibt, dann sollte man vielleicht
versuchen eine ältere Version des Programms runterzuladen und schauen, ob dann irgendwas anders ist. Klappt es
nicht, dann vielleicht über einen anderen PC, Laptop, wenn es die Gelegenheit Zuhause gibt, probieren und wenn es
auf den anderen Geräten genauso ist, dann würde ich behaupten, dass die das gleiche Windows haben, wie dein Laptop
und das Problem am Windows liegt und es irgendwie an der Kompatibilität zwischen Windows und dem Programm
liegt.
Kann dir da in professioneller Sicht nichts raten, da ich kein Experte bin, aber vielleicht hilft ja irgendwas davon.
Wenn es nicht der Fall ist, dann bin ich da echt ideenlos was das Weitere angeht.
case DIALOG_GESCHLECHT:
{
if(response)
{
switch(listitem)
{
case 0:
{
//new string[512];
ClearPlayerChat(playerid);
SendClientMessage(playerid, -1, "["#FARBE_ORANGE"SYSTEM"#FARBE_WEISS"]: Du hast als Geschlecht `Männlich` ausgewählt!");
SendClientMessage(playerid, -1, "Dein Aussehen kannst du später in einem Kleidungsgeschäft ändern.");
sInfo[playerid][sGeschlecht] = 1;
SetPlayerSkin(playerid, 1);
OnUserSave(playerid);
IsPlayerTutorialInsel(playerid, 0);
return 1;
}
case 1:
{
//new string[512];
ClearPlayerChat(playerid);
SendClientMessage(playerid, -1, "["#FARBE_ORANGE"SYSTEM"#FARBE_WEISS"]: Du hast als Geschlecht `Weiblich` ausgewählt!");
SendClientMessage(playerid, -1, "Dein Aussehen kannst du später in einem Kleidungsgeschäft ändern.");
sInfo[playerid][sGeschlecht] = 2;
SetPlayerSkin(playerid, 12);
OnUserSave(playerid);
IsPlayerTutorialInsel(playerid, 0);
return 1;
}
}
}
else
{
ShowPlayerDialog(playerid, DIALOG_GESCHLECHT, DIALOG_STYLE_LIST, ""#SERVERNAME_TAG"", ""#FARBE_WEISS"Männlich\nWeiblich", "Weiter", "");
}
}
Alles anzeigen
Konstruier den Dialog doch so. Außerdem sehe ich nirgends einen Kick(playerid); Befehl. Weder im stock noch in diesem Case.
Somit kann das Kick(playerid); von wo anders ausgeführt werden. Ich würde auf OnUserSave(playerid); tippen.
Zeige doch mal bitte OnUserSave(playerid);
Und versichere uns bitte, dass es denn wirklich nur ein Kick und kein Servercrash ist, also die Konsole schließt.
Ich hätte für dich vielleicht die Variante, dass du mal eine andere Maus anschließt, denn auch
das könnte aus welchem Grund auch immer ein Auslöser für dieses merkwürdige Phänomen sein.
Das Problem kenne ich sehr gut. Habe ich auch manchmal. Es kommt einfach mal
beim Mappen ganz plötzlich zum Schein und ich werde direkt hektisch, sodass ich
alles verstelle und sich irgendwas verändert. Einmal habe ich einfach, während
ich im Map-Editor bin, auf die Windows-Taste gedrückt, bin auf Desktop gegangen
und dann wieder rein in den Map-Editor und das Problem ist verschwunden.
Also wie gesagt: Kommt plötzlich, schwindet genauso plötzlich nach irgendeiner bestimmten Umschaltung oder Interaktion.
Ich kann nicht bekräftigen, dass es bei dir genauso sein wird, aber kannst ja mal bisschen "hektisch" dran rumspielen
Zieh diesen Zaun in die grünen Büsche rein, mach ihn ein bisschen tiefer, sodass er bei den grünen Büschen
nicht zusehen ist und es sollte deinem Wunsch entsprechen. Kann aber auch passieren, dass es zu tief ist,
denn dann kannst du wie gesagt eine andere Wahl bezüglich der Zäune treffen. Gibt genug Variationen.
Also der Server ist aufjedenfall der Hit, auch sehr konkrete sowie seriöse Bangründe.
Interessant, dass du uns zeigst, wie du gebannt wirst, aber den Chat zwischen dir und Tim aka AIDS_Qualle nicht
zeigst. Vielleicht warst du zu aufdringlich, wirktest beleidigend, hast beleidigt und außerdem: Wieso nimmst du dir das Recht raus,
ohne irgendwelche Beweisbilder oder sonstiges anzukommen und zu sagen: "Jo... hatten mehrere Servernamen -> wechseln
die wie Unterhosen -> Jo war auf meinem Testserver hat Namen geklaut." Wer hat dir erlaubt, den Ruf anderer
zu schaden. Meine Fresse; sowas sollte in diesem Forum mal sanktioniert werden, wenn keine Beweise vorliegen.
Dein Bild hier kann man ja nicht mal als Beweis nehmen, weil du davor einen Chat mit Tim hattest und niemand
weiß, wieso du gebannt wurdest.
Werbung ist nicht die schlechteste, aber auch nicht die beste, die man jemals sah. Ist auf jeden Fall noch
sehr ausbaufähig. Zudem sehe ich auch leider keine Bilder bzw. diese laden bei mir nicht. Vielleicht
sollte mal noch ein wenig am Skript arbeiten, denn nur "das Feeling von früher" wird keine Abwechslung
und Spaß an einzigartigen Sachen/Funktionen bringen.
Viel Erfolg.
stock GetFracName(playerid)
{
new fname[32];
if(PlayerInfo[playerid][pLeader] == 0)
{
switch(PlayerInfo[playerid][pMember])
{
case 0:{fname="Zivilist";}
case 1:{fname="Los Santos Police Department";}
case 2:{fname="Federal Bureau of Investigation";}
case 3:{fname="United States of Army";}
case 4:{fname="Notdienst";}
case 5:{fname="La Cosa Nostra";}
case 6:{fname="Yakuza";}
case 7:{fname="Regierung";}
case 8:{fname="Hitman Agency";}
case 9:{fname="Center News Network";}
case 10:{fname="Taxi Company";}
case 11:{fname="Fahrschule";}
case 12:{fname="Triaden";}
case 13:{fname="Grove Street Family";}
case 14:{fname="Front Yard Ballas";}
case 15:{fname="Biker Club";}
case 16:{fname="Vagos";}
case 17:{fname="Atzecas";}
case 18:{fname="Rifas";}
case 19:{fname="Red Soldiers";}
case 20:{fname="Terrorist";}
case 21:{fname="Wheelman Agency";}
case 22:{fname="SWAT";}
case 23:{fname="Ordnungsamt";}
}
}
return fname;
}
So sollte es funktionieren.
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
if(issuerid == INVALID_PLAYER_ID) return 1;
PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
if(weaponid == 34 && bodypart == 9) //Headshot System
{
GameTextForPlayer(playerid,!"~r~~h~~h~] Boom Headshot ]",5000,5);
GameTextForPlayer(issuerid,!"~g~~h~~h~] Boom Headshot ]",5000,5);
SetPlayerHealth(playerid, 0.0);
return 1;
}//diese Klammer hat gefehlt
}
Ich bedanke mich ganz herzlich bei dir... es funktioniert.
Kein Jeffry = keine funktionstüchtigen Skripts.
Ja, habe ich eingefügt. Ein Fehler hat sich gelöst. nun kam der hier:
Also man sieht unten, dass 'morde' = '85' gesetzt wird. Keine Ahnung
weshalb. Eigentlich sterbe ich im Spiel nach 30 Sekunden keine 85 Male.
Hatte davor eine Sache entfernt. Davor war dort "Klasse". Da zeigte
sich auch einen 85 an.
[21:31:07] [DEBUG] mysql_format - connection: 1, len: 500, format: "UPDATE users SET registriert = '%d', anfangsskin = '%d', skin = '%d', level = '%d', money = '%d', adminlevel = '%d', fraktion = ..."
[21:31:07] [DEBUG] mysql_format - connection: 1, len: 500, format: "morde = '%d', tode = '%d', verbrechen = '%d', ap = '%d', premium = '%d', donator = '%d', contractgeld = '%d', changeteamzeit = '..."
[21:31:07] [DEBUG] mysql_pquery - connection: 1, query: "morde = '85', tode = '0', verbrechen = '0', ap = '0', premium = ", callback: "(null)", format: "(null)"
[21:31:07] [DEBUG] CMySQLQuery::Execute[] - starting query execution
[21:31:07] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'morde = '85', tode = '0', verbrechen = '0', ap = '0', premium = '0', donator = '' at line 1
[21:31:07] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError
stock SaveUserStats(playerid)
{
if(!Spieler[playerid][Eingeloggt]) return 1;
new query[500];
mysql_format(handle, query, sizeof(query), "UPDATE users SET registriert = '%d', anfangsskin = '%d', skin = '%d', level = '%d', money = '%d', adminlevel = '%d', fraktion = '%d',vteam = '%d', rang = '%d', wanteds = '%d', wantedgrund = '%s', muted = '%d', mutetime = '%d', spielzeit = '%d', email = '%s', jailtime = '%d', jailed = '%d', jailtype = '%d',",
Spieler[playerid][Registriert],
Spieler[playerid][Anfangsskin],
Spieler[playerid][Skin] = GetPlayerSkin(playerid),
Spieler[playerid][Level] = GetPlayerScore(playerid),
Spieler[playerid][Money] = GetPlayerMoney(playerid),
Spieler[playerid][Adminlevel],
Spieler[playerid][Fraktion],
Spieler[playerid][vTeam],
Spieler[playerid][Rang],
Spieler[playerid][Wanteds],
Spieler[playerid][WantedGrund],
Spieler[playerid][Muted],
Spieler[playerid][MuteTime],
Spieler[playerid][Spielzeit],
Spieler[playerid][Email],
Spieler[playerid][JailTime],
Spieler[playerid][Jailed],
Spieler[playerid][JailType]);
mysql_format(handle, query, sizeof(query),"morde = '%d', tode = '%d', verbrechen = '%d', ap = '%d', premium = '%d', donator = '%d', contractgeld = '%d', changeteamzeit = '%d', carkey = '%d', eventmann = '%d', ooctog = '%d', pntog = '%d', killstreaksoundtog = '%d', hitsoundtog = '%d', connecttog = '%d', advertisetog = '%d', mitgliedertog = '%d', lottonr = '%d' WHERE id = '%d'",
query,
Spieler[playerid][Morde],
Spieler[playerid][Tode],
Spieler[playerid][Verbrechen],
Spieler[playerid][AP],
Spieler[playerid][Premium],
Spieler[playerid][Donator],
Spieler[playerid][ContractGeld],
Spieler[playerid][ChangeteamZeit],
Spieler[playerid][Carkey],
Spieler[playerid][Eventmann],
Tog[playerid][OOCTog],
Tog[playerid][PNTog],
Tog[playerid][KillstreakSoundTog],
Tog[playerid][HitsoundTog],
Tog[playerid][ConnectTog],
Tog[playerid][Advertise],
Tog[playerid][Mitglieder],
Spieler[playerid][pLottoNr],
Spieler[playerid][p_id]);
mysql_pquery(handle, query);
return 1;
}
Alles anzeigen
Wenn ich mir einen neuen Account im Spiel erstelle, geschieht alles problemlos, kommts aber zur Speicherung
macht MySQL Faxen. Die Frage ist warum? Ich habe mal die MySQL_LOG beobachtet und konnte nichts
fehlerhaftes finden. Habe auch meinen SaveUserStats Stock mehrmals überarbeitet und einen Backup eingefügt,
aber zeigt dennoch Errors an.
So sieht mein SaveUserStats-Stock aus:
stock SaveUserStats(playerid)
{
if(!Spieler[playerid][Eingeloggt]) return 1;
new query[500];
mysql_format(handle, query, sizeof(query), "UPDATE users SET registriert = '%d', anfangsskin = '%d', skin = '%d', level = '%d', money = '%d', adminlevel = '%d', fraktion = '%d',vteam = '%d', rang = '%d', wanteds = '%d', wantedgrund = '%s', muted = '%d', mutetime = '%d', spielzeit = '%d', email = '%s', jailtime = '%d', jailed = '%d', jailtype = '%d',",
Spieler[playerid][Registriert],
Spieler[playerid][Anfangsskin],
Spieler[playerid][Skin] = GetPlayerSkin(playerid),
Spieler[playerid][Level] = GetPlayerScore(playerid),
Spieler[playerid][Money] = GetPlayerMoney(playerid),
Spieler[playerid][Adminlevel],
Spieler[playerid][Fraktion],
Spieler[playerid][vTeam],
Spieler[playerid][Rang],
Spieler[playerid][Wanteds],
Spieler[playerid][WantedGrund],
Spieler[playerid][Muted],
Spieler[playerid][MuteTime],
Spieler[playerid][Spielzeit],
Spieler[playerid][Email],
Spieler[playerid][JailTime],
Spieler[playerid][Jailed],
Spieler[playerid][JailType]);
mysql_format(handle, query, sizeof(query),"klasse = '%d', morde = '%d', tode = '%d', verbrechen = '%d', ap = '%d', premium = '%d', donator = '%d', contractgeld = '%d', changeteamzeit = '%d', carkey = '%d', eventmann = '%d', ooctog = '%d', pntog = '%d', killstreaksoundtog = '%d', hitsoundtog = '%d', connecttog = '%d', advertisetog = '%d', mitgliedertog = '%d', lottonr = '%d' WHERE id = '%d'",
Spieler[playerid][Klasse],
Spieler[playerid][Morde],
Spieler[playerid][Tode],
Spieler[playerid][Verbrechen],
Spieler[playerid][AP],
Spieler[playerid][Premium],
Spieler[playerid][Donator],
Spieler[playerid][ContractGeld],
Spieler[playerid][ChangeteamZeit],
Spieler[playerid][Carkey],
Spieler[playerid][Eventmann],
Tog[playerid][OOCTog],
Tog[playerid][PNTog],
Tog[playerid][KillstreakSoundTog],
Tog[playerid][HitsoundTog],
Tog[playerid][ConnectTog],
Tog[playerid][Advertise],
Tog[playerid][Mitglieder],
Spieler[playerid][pLottoNr],
Spieler[playerid][p_id]);
mysql_pquery(handle, query);
return 1;
}
Alles anzeigen
So sieht meine MySQL Log aus:
[20:53:51] [WARNING] cache_get_field_content_int - no active cache
[20:53:51] [WARNING] cache_get_field_content_int - no active cache
[20:53:51] [WARNING] cache_get_field_content_int - no active cache
[20:53:51] [WARNING] cache_get_field_content_int - no active cache
[20:53:51] [WARNING] cache_get_field_content_int - no active cache
[20:53:51] [DEBUG] mysql_connect - host: "localhost", user: "kristik47", database: "samp_db", password: "****", port: 3306, autoreconnect: true, pool_size: 2
[20:53:51] [DEBUG] CMySQLHandle::Create - creating new connection..
[20:53:51] [DEBUG] CMySQLHandle::CMySQLHandle - constructor called
[20:53:51] [DEBUG] CMySQLHandle::Create - connection created (id: 1)
[20:53:51] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
[20:53:51] [DEBUG] CMySQLConnection::Connect - connection was successful
[20:53:51] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
[20:53:51] [DEBUG] mysql_errno - connection: 1
[20:53:51] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
[20:53:51] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
[20:53:51] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
[20:53:52] [DEBUG] CMySQLConnection::Connect - connection was successful
[20:53:52] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
[20:53:52] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
[20:53:52] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
[20:54:16] [DEBUG] mysql_format - connection: 1, len: 256, format: "SELECT id FROM users WHERE name = '%e'"
[20:54:16] [DEBUG] mysql_pquery - connection: 1, query: "SELECT id FROM users WHERE name = 'Don_Calypso'", callback: "OnUserCheck", format: "d"
[20:54:16] [DEBUG] CMySQLQuery::Execute[OnUserCheck] - starting query execution
[20:54:16] [DEBUG] CMySQLQuery::Execute[OnUserCheck] - query was successfully executed within 0.793 milliseconds
[20:54:16] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
[20:54:16] [DEBUG] Calling callback "OnUserCheck"..
[20:54:16] [DEBUG] cache_get_row_count - connection: 1
[20:54:16] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
[20:54:22] [DEBUG] mysql_format - connection: 1, len: 256, format: "INSERT INTO users (name, password) VALUES ('%e', MD5('%e'))"
[20:54:22] [DEBUG] mysql_pquery - connection: 1, query: "INSERT INTO users (name, password) VALUES ('Don_Calypso', MD5('S", callback: "OnUserRegister", format: "d"
[20:54:22] [DEBUG] CMySQLQuery::Execute[OnUserRegister] - starting query execution
[20:54:22] [DEBUG] CMySQLQuery::Execute[OnUserRegister] - query was successfully executed within 1.96 milliseconds
[20:54:22] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
[20:54:22] [DEBUG] Calling callback "OnUserRegister"..
[20:54:22] [DEBUG] cache_insert_id - connection: 1
[20:54:22] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
[20:54:26] [DEBUG] mysql_format - connection: 1, len: 128, format: "UPDATE users SET email = '%s' WHERE id = '%d'"
[20:54:26] [DEBUG] mysql_pquery - connection: 1, query: "UPDATE users SET email = 'kristik1999xd@gmail.com' WHERE id = '4", callback: "(null)", format: "(null)"
[20:54:26] [DEBUG] CMySQLQuery::Execute[] - starting query execution
[20:54:26] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 5.136 milliseconds
[20:54:26] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving
[20:54:28] [DEBUG] mysql_format - connection: 1, len: 256, format: "SELECT * FROM users WHERE name = '%e' AND password = MD5('%e')"
[20:54:28] [DEBUG] mysql_pquery - connection: 1, query: "SELECT * FROM users WHERE name = 'Don_Calypso' AND password = MD", callback: "OnUserLogin", format: "d"
[20:54:28] [DEBUG] CMySQLQuery::Execute[OnUserLogin] - starting query execution
[20:54:28] [DEBUG] CMySQLQuery::Execute[OnUserLogin] - query was successfully executed within 0.545 milliseconds
[20:54:28] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
[20:54:28] [DEBUG] Calling callback "OnUserLogin"..
[20:54:28] [DEBUG] cache_get_row_count - connection: 1
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "id", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "id", data: "42"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "registriert", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "registriert", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "anfangsskin", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "anfangsskin", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "skin", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "skin", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "level", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "level", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "money", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "money", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "adminlevel", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "adminlevel", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "fraktion", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "fraktion", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "vteam", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "vteam", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "rang", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "rang", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "wanteds", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "wanteds", data: "0"
[20:54:28] [DEBUG] cache_get_field_content - row: 0, field_name: "wantedgrund", connection: 1, max_len: 128
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "wantedgrund", data: "NULL"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "muted", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "muted", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "mutetime", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "mutetime", data: "0"
[20:54:28] [DEBUG] cache_get_field_content - row: 0, field_name: "email", connection: 1, max_len: 128
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "email", data: "kristik1999xd@gmail.com"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "spielzeit", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "spielzeit", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "jailtime", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "jailtime", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "jailed", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "jailed", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "jailtype", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "jailtype", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "lottozahl", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "lottozahl", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "klasse", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "klasse", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "morde", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "morde", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "tode", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "tode", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "verbrechen", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "verbrechen", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "ap", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "ap", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "premium", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "premium", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "donator", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "donator", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "contractgeld", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "contractgeld", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "changeteamzeit", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "changeteamzeit", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "carkey", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "carkey", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "eventmann", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "eventmann", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "lottonr", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "lottonr", data: "0"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "ooctog", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "ooctog", data: "1"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "pntog", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "pntog", data: "1"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "killstreaksoundtog", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "killstreaksoundtog", data: "1"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "hitsoundtog", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "hitsoundtog", data: "1"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "connecttog", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "connecttog", data: "1"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "advertisetog", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "advertisetog", data: "1"
[20:54:28] [DEBUG] cache_get_field_content_int - row: 0, field_name: "mitgliedertog", connection: 1
[20:54:28] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "mitgliedertog", data: "1"
[20:54:28] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
[20:57:20] [DEBUG] mysql_format - connection: 1, len: 750, format: "UPDATE users SET registriert = '%d', anfangsskin = '%d', skin = '%d', level = '%d', money = '%d', adminlevel = '%d', fraktion = ..."
[20:57:20] [DEBUG] mysql_format - connection: 1, len: 750, format: "klasse = '%d', morde = '%d', tode = '%d', verbrechen = '%d', ap = '%d', premium = '%d', donator = '%d', contractgeld = '%d', cha..."
[20:57:20] [DEBUG] mysql_pquery - connection: 1, query: "klasse = '0', morde = '0', tode = '0', verbrechen = '0', ap = '0", callback: "(null)", format: "(null)"
[20:57:20] [DEBUG] CMySQLQuery::Execute[] - starting query execution
[20:57:20] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'klasse = '0', morde = '0', tode = '0', verbrechen = '0', ap = '0', premium = '0'' at line 1
[20:57:20] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError
Alles anzeigen
Ich bedanke mich schon mal im Voraus.
Mit freundlichen Grüßen
Kristik47