Das habe ich aber auch obwohl ich kein Passwort eingestellt habe?
Es kann auch sein, dass der Nutzer zu wenige Rechte hat, um auf die Datenbank zuzugreifen.
Das habe ich aber auch obwohl ich kein Passwort eingestellt habe?
Es kann auch sein, dass der Nutzer zu wenige Rechte hat, um auf die Datenbank zuzugreifen.
Access denied for user 'MAKAROV68'@'94.134.xx.xxx' (using password: YES)'
Das sieht danach aus, als ob der Benutzername oder das Passwort falsch sei ![]()
Mein FS speichert irgendwie nichts in der MySQL Datenbank ab ^
1. Was sagt der MySQL Log?
2.
cache_get_value_name_int(i, "2", ClothesInfo[playerid][i][cModelID]);
Das ist falsch in die Mitte muss der Name der Spalte.
Also so schreiben:
cache_get_value_name_int(i, "model", ClothesInfo[playerid][i][cModelID]);
Also musste bei allen ändern ![]()
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? ![]()