Oh, ich meinte eigentlich das Query beim SpielerSpeichern, das sollte geprintet werden. Füge dort den Print ein.
Kannst du zusätzlich mal posten, was im MySQL Log steht, wenn du den Spieler speicherst?
Oh, ich meinte eigentlich das Query beim SpielerSpeichern, das sollte geprintet werden. Füge dort den Print ein.
Kannst du zusätzlich mal posten, was im MySQL Log steht, wenn du den Spieler speicherst?
[Sun Jun 28 14:41:09 2015] Connected (0) to zrl @ 134.255.220.143 via TCP/IP.
[Sun Jun 28 14:41:09 2015] MySQL Server Version 5.5.41-0+wheezy1.
Das steht nur.
Das sieht dahingehend gut aus, dann geht das Query. Wäre trotzdem gut, wenn du den Query-Print von SpielerSpeichern posten könntest, damit wir sehen, was dort beim Geld und beim Level gespeichert wird.
Alle anderen Stats werden korrekt gespeichert und geladen?
Keine Staats werde geladen, ausser wenn ich die in der Datenbank manuell einstelle.
Hab das schon bei SpielerSpeichern gemacht, tut sich aber nichts in Log.
LG Trabuhot
Dann rufst du SpielerSpeichern(playerid) vielleicht gar nirgends auf?
Wo rufst du das auf?
Wenn der Spieler aus den Server geht
Code:
SpielerSpeichern(playerid);
Public:
LG Trabuhot
Dann schreibe es so und poste dann was im Server Log steht, wenn du den Server verlässt.
Sevrer Log:
LG Trabuhot
Also dort wird das Level mit 15000 gespeichert, und das Adminlevel mit 0.
Das Query ist syntaktisch korrekt, daher sollte es auch so in der Datenbank stehen (gegebenenfalls aktualisiere die Ansicht). Es sollte dann auch korrekt geladen werden.
Also an sich sehe ich da nirgends einen Fehler, der darauf deutet, dass das Level (Score) nicht richtig geladen wird. Es müsste wieder 15000 sein, wenn du dich einloggst.
Also das Level wurde geladen, habe es zu "11" verändert & reloggt und dann wurde es zu 5001, Skin wird dann auch nicht nach den verändern gelade und das Geld auch nicht.
Ok, komisch.
Was wird dann so geprintet?
Entschuldige für die späte Antwort:
ServerLog:
LG Trabuhot
Also am Login liegt es nicht. Er lädt Level 1 = Score 1 aus der Datenbank und setzt es auch so. Da stimmt alles.
Bist du sicher, dass du es nirgends anders veränderst?
Ich gehe morgen nochmal das Script durch und kucke ob mir irgendetwas auffällt.
//EDIT : Konnte nichts finden Andere Möglichkeiten?
Dann wäre es mal interessant zu wissen, woran du denn erkennst, dass der Spieler plötzlich 5000 Score mehr hat. Wo siehst du das, bzw wie fällt es dir auf?
Wenn ich die Tab -Taste drücke sieht man ja von den Spieler den "Score".
Dann füge das hier bitte mal direkt unter den Includes ein und poste was dann im Server Log steht, wenn du dich einloggst und der Score dann nicht stimmt.
stock test_SetPlayerScore(playerid, score)
{
printf("Setze Score für playerid %d zu %d.", playerid, score);
return SetPlayerScore(playerid, score);
}
#if defined _HOOK_SetPlayerScore
#undef SetPlayerScore
#else
#define _HOOK_SetPlayerScore
#endif
#define SetPlayerScore test_SetPlayerScore
Server Log:
Habe übrigens diese Warnings (vlt. liegt es darran):
Zeile 13825 :
Zeile 15202 :
Includes habe ich angehängt.
LG Trabuhot
Also er setzt dir nur einmal den Score, und den setzt er auf 1. Ich verstehe daher nicht, wie du 5000 bekommst. Höchstens, dass es von einem anderen Filterscript kommt.
Suche mal alle deine Codes und Includes nach SetPlayerScore ab, ob da irgendwas den Score erhöht.
Zwecks den Warnungen:
SpielerInfo[playerid][sWeaponLic] == 1;
zu:
SpielerInfo[playerid][sWeaponLic] = 1;
Das hat damit aber nichts zu tun.
Die anderen Warnungen sind:
- color ist bereits definiert, da kannst du die Variable einfach umbenennen.
- Fehlerhafte/Doppelte Hooks
- Falsche Einrückung des Codes.
Ja, aber wenn ich aus den Server gehe und wieder connecte wird dies geprinted:
[16:08:23] Setze Score für playerid 0 zu 10000.
also es ändert sich immer.