aber wo muss ich da was schreiben das es in Mysql abgespeichert wird?
In dein Query unter SaveUserStats. Einfach neben das Level usw setzen.
Wenn GetPlayerSkin 0 ist, dann wurde der Skin noch nicht gesetzt.
Versuchs dann unter OnPlayerSpawn o.ä.
aber wo muss ich da was schreiben das es in Mysql abgespeichert wird?
In dein Query unter SaveUserStats. Einfach neben das Level usw setzen.
Wenn GetPlayerSkin 0 ist, dann wurde der Skin noch nicht gesetzt.
Versuchs dann unter OnPlayerSpawn o.ä.
wie mache ich das?
Genauso wie alles andere ![]()
Eine Variable anlegen, wie pSkin und dann entweder manuell setzten oder GetPlayerSkin(playerid); verwenden.
Oki, schreibe es so:
ocmd:fishes(playerid)
{
SendClientMessage(playerid, COLOR_WHITE, "|____________________Fische____________________|");
for(new i=1, string[128]; i<6; i++)
{
if(Spieler[playerid][pFishID][i] == -1) format(string, sizeof(string), "** (%d) Fisch: Nicht vorhanden",i);
else format(string, sizeof(string), "** (%d) Fisch: %s (%d LBS)", i, Fische[Spieler[playerid][pFishID][i]], Spieler[playerid][pFishweight][i]);
SendClientMessage(playerid, COLOR_WHITE, string); //3640
}
SendClientMessage(playerid, COLOR_WHITE, "|______________________________________________|");
return 1;
}
Alles anzeigen
Und wen er garkeine hat steht oben Fische und als zweiter das der Befehl nicht exestiert :/?
Dann erwähne diesen Fehler doch ![]()
Das liegt wohl daran, dass da ein falscher index ist.
Lade mal crashdetect + zeig mal wie du das Array deklariert hast ![]()
Warum. -> Kann man bei Fisch wen keine Vorhanden sind das da steht "Nicht Vorhanden"?
ocmd:fishes(playerid)
{
SendClientMessage(playerid, COLOR_WHITE, "|____________________Fische____________________|");
for(new i=1,string[128]; i<6; i++)
{
if(!Spieler[playerid][pFishweight][i]) format(string, sizeof(string), "** (%d) Fisch: Nicht vorhanden",i);
else format(string, sizeof(string), "** (%d) Fisch: %s (%d LBS)", i, Fische[Spieler[playerid][pFishID][i]], Spieler[playerid][pFishweight][i]);
SendClientMessage(playerid, COLOR_WHITE, string);
}
SendClientMessage(playerid, COLOR_WHITE, "|______________________________________________|");
return 1;
}
Alles anzeigen
Meinst du so? ![]()
Wie speicher ich das jetzt in der MYSQL DB?
Da müsste es noch eine Spieler Variable geben, wie SpielerInfo[playerid][pGeld] oder sowas.
Das musst du natürlich in den Befehl auch noch einbauen, z.B. so:
SpielerInfo[pID][pGeld] += geld;
SpielerInfo[playerid][pGeld] -= geld;
//Und dann eben die Variablen speichern
um dem Spieler einen beliebigen Geldbetrag geben zu können?
Wenn du:
GivePlayerMoney(pID, geld);
schreibst, dann macht der Code das doch.
Wenn es dem eigenen Spieler abgezogen werden soll:
GivePlayerMoney(playerid, -geld);
PS: Solltest dann natürlich prüfen, ob der Spieler genug Geld auf der Hand hat ![]()
Ahh okay, dann ist dein Befehl falsch, schreib den so:
ocmd:taxis(playerid, params[])
{
new string[MAX_PLAYER_NAME+4+21];
SendClientMessage(playerid, COLOR_WHITE, "{33CCFF}Taxifahrer online:");
for(new i; i < sizeof(pTaxi); i++)
{
if(!pTaxi[i][taxiUsed]) continue;
format(string,sizeof(string),"Fahrer: %s, Preis: %d$", GetName(pTaxi[i][taxiPlayer]), pTaxi[i][taxiFare]);
SendClientMessage(playerid, COLOR_WHITE, string);
}
return 1;
}
Alles anzeigen
Da kamste durcheinander mit den Schleifen und Indizes ![]()
UPDATE user SET alter='%i' WHERE id='%i'
Musst du so schreiben:
Das liegt daran, dass ALTER ein SQL Keyword ist ![]()
Kurze frage:
Wo setzt du das denn...was genau willst du denn machen..bisschen mehr Kontext bitte ![]()
Ich empfehle dir, downloade von den SA-MP Includes und dem Streamer die Neuste Version.
Da zerschießt du dir nix, sondern behebst deine Fehler.
Und lade mal crashdetect und poste dann noch mal den Log, dann steht da, was dir fehlt ![]()
Tja, man kann dir jetzt so schlecht helfen, da der Code den du postest korrekt ist.
Hast du AnyDesk und magst mir PN mal kurz deine ID geben, dann schau ich da mal kurz drüber, das scheint interessant ![]()
er gibt mir leider keine query log oder error log aus das ist es ja -.-
Das müsstest du ja auch mit mysql_log(ALL); unter OnGameModeInit erstmal aktivieren.
Abgesehen davon, reicht ja auch ein einfaches print ![]()
new ServerCFG[MAX_SERVERCFG][serverPickup]
Schreib das mal:
stock const ServerCFG[MAX_SERVERCFG][serverPickup]
Es ist egal, wo sich das im Skript befindet, entscheidend ist, wo es aufgerufen wird.
Zudem scheinst du meine Fragen nicht richtig zu lesen, ich frage dich, WAS IM QUERY steht.
Das bedeutet, du schaust in den MySQL Log oder printest dir das query um diese Frage zu beantworten ![]()
Beruhige dich, solche Fehler treten super oft auf und sind meistens Kleinigkeiten.
//Edit:
Ahh ja, dann geht ja alles ![]()
Da siehst du eine 0.
Das heißt irgendwo setzt du ServerCFG[i][sLoggedIn] wo i = 1 ist auf 0 bzw false ![]()
Ich hoffe Ihr könnt mir das Irrtum erklären
Der Code stimmt eigentlich, zwar solltest du ihn aus Übersichtlichkeit eventuell etwas auslagern, aber ansonsten müsste das so gehen.
for(new i; i!=MAX_SERVERCFG; i++)
{
printf("%d|%d",i,ServerCFG[i][sLoggedIn]);
if(ServerCFG[i][sLoggedIn])
{
Was gibt denn das print dann aus?
Diese Aussage ist zu wischi waschi...
Was bleibt null, die Werte in der Datenbank oder die im Query?
Und rufst du das GetPlayerPos vor dem Query auf? ![]()
Werden sie denn richtig in die Datenbank gespeichert?
Was sagt der MySQL Log oder printe dir mal das query, dann weißt du ja, wo der Fehler liegt ![]()
Okay...dann bedarf es mehr CSS.
Denn wie du hier siehst: https://jsfiddle.net/oenxfzj8/
Würde das mit dem reinen Code, perfekt funktionieren ![]()
Hat jemand ein Plan was man dagegen machen kann ?
Da es hier um kleine Coding Fragen geht wäre es wirklich von Vorteil, wenn du uns deinen CSS Stil von dem Input zeigen könntest + das HTML Element.
Dann müssen wir das nicht reproduzieren und schätzen, wie du das gemacht haben könntest ![]()