Mach doch mal das LIMIT 1 weg, das hatte ich doch am Anfang schon weg gelassen.
Und wenn das nicht geht ändere
GetCash(playerid),
zu
money[playerid],
Und wenn es immer noch nicht geht schalte den MySQL Debug an und poste was im Log steht.
Mach doch mal das LIMIT 1 weg, das hatte ich doch am Anfang schon weg gelassen.
Und wenn das nicht geht ändere
GetCash(playerid),
zu
money[playerid],
Und wenn es immer noch nicht geht schalte den MySQL Debug an und poste was im Log steht.
Im Anhang anfügen. Ich kann es zwar heute selbst nicht mehr testen, aber vielleicht macht es ja jemand anderes. Ansonsten prüfe ich deinen Record und den Code morgen.
Du kannst bis dahin auch mal prüfen, ob der Code mit dem du den Spieler ins Auto setzt überhaupt aufgerufen wird.
Wenn ja, kannst du das Auto auch mal an der Startposition des NPCs spawnen lassen.
Bist du sicher, dass du es wieder rückgängig gemacht hast? Schau dir nochmal deine GetCash Funktion im Code an.
Anderweitig kann ich mir es nicht erklären, als dass du dort return 1 stehen hast.
Du kannst auch anstatt GetCash im query direkt money[playerid] schreiben.
GetCash(playerid)
{
return money[playerid];
}
Das muss schon so sein, nicht wie der Vorposter es meinte.
Vielleicht hast du den NPC doch aus Versehen als Fußgänger aufgenommen, obwohl du auf dem Motorrad warst.
Nimm nochmal einen NPC auf (vrecord wenn du npcrecord verwendest) und füge den ein, anstatt die alte Aufnahme.
Wenn es damit auch nicht klappt, poste den pwn Code des NPCs und die rec Datei.
Super! Sieht gut so aus!
Aber Jeffry, durch dich hab ich das mit dem Debug auch verstanden.. so werden meine Posts bestimmt weniger..
Freut mich zu hören! Dann haben wir zwei Fliegen mit einer Klatsche geschlagen.
mysql_format(dbhandle,query,sizeof(query),"UPDATE `user` SET `admin`='%i',`spielern`='%i',`geld`='%i',`skin`='%i',`gebannt`='%i' WHERE id='%i' LIMIT 1",
zu:
mysql_format(dbhandle,query,sizeof(query),"UPDATE user SET admin='%i', spielern ='%i', geld='%i', skin='%i', gebannt='%i' WHERE id='%i'",
Klappt es dann?
Werden die anderen Sachen gespeichert?
ocmd:test(playerid,params[])
{
SCM(playerid,Rot,"test");
SetTimerEx("ShowMessage", 1000, 0, "dd", playerid, 0);
return 1;
}
forward ShowMessage(playerid, num);
public ShowMessage(playerid, num)
{
switch(num)
{
case 0: SCM(playerid,Rot,"test0");
case 1: SCM(playerid,Rot,"test1");
case 2: SCM(playerid,Rot,"test2");
}
num++;
if(num <= 2) SetTimerEx("ShowMessage", 1000, 0, "dd", playerid, num);
return 1;
}
Das kannste laut sagen, dass da was nicht stimmt.
Setze mal noch vor
SpielerSpeichern(playerid);
im Befehl:
printf("Cmd für: %d => Wanted: %d", pID, sDatei[playerid][pWanteds]);
Und bei OnPlayerCommandText:
printf(cmdtext);
Dann führe den Befehl nochmal aus und poste den Log.
Wo muss ich das eintragen das ein spieler nach tot einen Skin bekommt??!?!
OnPlayerDeath
public SpielerSpeichern(playerid)
{
printf("SpielerSpeichern: %d", playerid);
new SpielerName[MAX_PLAYER_NAME], Account[200];
GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
format(Account,sizeof(Account),"/Spielerdateien/%s.ini",SpielerName);
printf("SpielerSpeichern: %s", Account);
dini_IntSet(Account, "Alter", sDatei[playerid][pAlter]);
dini_IntSet(Account, "Admin", sDatei[playerid][pAdmin]);
dini_IntSet(Account, "Maske", sDatei[playerid][pMaske]);
dini_IntSet(Account, "Spawn", sDatei[playerid][pSpawn]);
sDatei[playerid][pSkin] = GetPlayerSkin(playerid);
printf("Step 1");
dini_IntSet(Account, "Skin", sDatei[playerid][pSkin]);
dini_IntSet(Account, "pBan", sDatei[playerid][pBan]);
dini_IntSet(Account, "pBanAdmin", sDatei[playerid][pBanAdmin]);
dini_IntSet(Account, "pBanGrund", sDatei[playerid][pBanGrund]);
dini_IntSet(Account, "pMember", sDatei[playerid][pMember]);
dini_IntSet(Account, "pLeader", sDatei[playerid][pLeader]);
dini_IntSet(Account, "pFRank", sDatei[playerid][pFRank]);
dini_IntSet(Account, "pTimeban", sDatei[playerid][pTimeban]);
dini_IntSet(Account, "pKopfgeld", sDatei[playerid][pKopfgeld]);
dini_IntSet(Account, "pCash", sDatei[playerid][pCash]);
dini_IntSet(Account, "pScore", sDatei[playerid][pScore]);
printf("Step 2");
dini_IntSet(Account, "pBlacklist", sDatei[playerid][pBlacklist]);
dini_IntSet(Account, "pBlacklistName", sDatei[playerid][pBlacklistName]);
dini_IntSet(Account, "pArrest", sDatei[playerid][pArrest]);
printf("Step 3: pWanted = %d", sDatei[playerid][pWanteds]);
dini_IntSet(Account, "pWanteds", sDatei[playerid][pWanteds]);
printf("Step 4: pWanted = %d", sDatei[playerid][pWanteds]);
dini_IntSet(Account, "pPerso", sDatei[playerid][pPerso]);
dini_IntSet(Account, "pFuehrerschein", sDatei[playerid][pFuehrerschein]);
dini_IntSet(Account, "pMotorradschein", sDatei[playerid][pMotorradschein]);
dini_IntSet(Account, "pFlugschein", sDatei[playerid][pFlugschein]);
dini_IntSet(Account, "pLKWschein", sDatei[playerid][pLKWschein]);
dini_IntSet(Account, "pBootsschein", sDatei[playerid][pBootsschein]);
dini_IntSet(Account, "pWaffenschein", sDatei[playerid][pWaffenschein]);
dini_IntSet(Account, "pGWD", sDatei[playerid][pGWD]);
dini_IntSet(Account, "pSFGWD", sDatei[playerid][pSFGWD]);
dini_IntSet(Account, "pLWGWD", sDatei[playerid][pLWGWD]);
dini_IntSet(Account, "pBank", sDatei[playerid][pBank]);
dini_IntSet(Account, "pPayday", sDatei[playerid][pPayday]);
dini_IntSet(Account, "pExp", sDatei[playerid][pExp]);
dini_IntSet(Account, "pGesamtMinutes", sDatei[playerid][pGesamtMinutes]);
dini_IntSet(Account, "pPlayMinutes", sDatei[playerid][pPlayMinutes]);
dini_IntSet(Account, "pLSCcoins", sDatei[playerid][pLSCcoins]);
dini_IntSet(Account, "pKills", sDatei[playerid][pKills]);
dini_IntSet(Account, "pDeaths", sDatei[playerid][pDeaths]);
dini_IntSet(Account, "pHandy", sDatei[playerid][pHandy]);
dini_IntSet(Account, "pHandyNummer", sDatei[playerid][pHandyNummer]);
sDatei[playerid][pLiveChat] = 0;
sDatei[playerid][pReport] = 0;
sDatei[playerid][pRPartner] = 0;
sDatei[playerid][pLogged] = 0;
BigEar[playerid] = 0;
printf("Ende");
return 1;
}
Was wird geprintet?
Prüfe bitte, ob die playerid im print übereinstimmt, mit der die du eingegeben hast.
Wie sieht denn dein SpielerSpeichern aus?
SpielerSpeichern(playerid);
zu:
SpielerSpeichern(pID);
Hast du den NPC auch als Fahrer-Typ aufgenommen? http://wiki.sa-mp.com/wiki/Recordingtypes
Lässt du ihn als Faher-Typ starten (in der .pwn für den NPC)?
Mehr Info dazu: http://forum.sa-mp.com/showthread.php?t=95034
Hast du den NPC in einem Interior aufgenommen?
Setzt du den NPC auch auf das Motorrad?
Zeig mal den Code und ein Bild von dem NPC.
Mal ne kleine Frage: Kann man ein Script reloaden, ohne den Server neu zu starten?
@CrashGamesDE: Ganz ohne Neustarten gehts nicht, entweder Ingame über den RCON Befehl /rcon gmx oder direkt in die Serverkonsole gmx schreiben
Öh, doch?
Filterscript heißt das Stichwort.
=> Erstelle deinen Code in einem Filterscript, dann kannst du den Filterscript über RCON reloadfs scriptname neu laden, ohne dass der Server neu gestartet wird, und ohne dass du einen GMX machen musst. Ich habe bei meinem Server zum Beispiel 99.9% des gesamten Codes in Filterscripts. Der Gamemode ist bei mir fast leer, dadurch muss ich nie den GMX machen, sondern kann in der Theorie alles ohne einen Neustart des Servers regeln.
Unter welcher Funktion machst du das? Ich kann das in deinem OnPlayerDeath nirgends finden.
Machst du es unter dem GW_OnPlayerDeath? Wenn ja, das hast du auskommentiert. Wenn nicht, poste wo du es machst und zeige den Code.
Poste bitte das gesamte "OnPlayerCommandText".
Und bitte nicht in einer Zeile.
Wenn es nicht geht, füge es in MS Word ein kopiere es dort wieder raus und füge es dann hier ein.
Oder nutze http://www.pastebin.com
return -14;
zu:
return -255;
Die Funktion GetPlayerFightzone brauchen wir ebenfalls. Falls darin nochmal Unterfunktionen aufgerufen werden, diese bitte auch posten.