pInfo[playerid][pGeburtsdatum]=strval(inputtext);
Nein, nicht strval nutzen.
Das ist ja keine Zahl, sondern ein String.
Dementsprechend ist
format(PlayerInfo[playerid][e_Birthday], 11, inputtext);
richtig.
pInfo[playerid][pGeburtsdatum]=strval(inputtext);
Nein, nicht strval nutzen.
Das ist ja keine Zahl, sondern ein String.
Dementsprechend ist
format(PlayerInfo[playerid][e_Birthday], 11, inputtext);
richtig.
hat mir gesagt das ich es so speichern soll (Geburtsdatum) ich verstehe es aber nicht warum die 11?
Du speicherst einfach einen String.
Die 11, weil ein Geburstag wie z.B. 00.00.0000 immer exakt 10 Zeichen lang ist + NULL Byte macht also genau 11 Zeichen ![]()
Deshalb musst du das mit dem format benutzen und im bei mysql einfach %s verwenden, das war schon richtig, so wie du z.B. den Namen des Spielers speicherst ![]()
Jaa, da kannst du keine Tags übergeben ![]()
SetTimerEx("DeleteDeathLabel", 10000, 0, "dd", pickup, _:label);
Warum ist in dieser Zeile ein tag mismatch?
Weil du new label anstatt new Text3D:label geschrieben hast ![]()
Schreibe das mal ganz oben in die Funktion:
if(strlen(dStr) != 10 || dStr[2] != '.' || dStr[5] != '.') return false;
Jaa und ich habe dir doch gerade gesagt, wie du das machst hahaha ![]()
Ich weiß zwar nicht was genau du für Werte erwartest, aber ändere doch einfach von %1000 zu %100
Gerade wird es als Beispiel so angezeigt 0.127 wie kann ich das machen dass er maximal 0.12 Anzeigt ?
Welchen Wert hat denn t_tankp?
3 Vermutungen:
1. Mal crashdetect laden und schauen, ob dann etwas im Log steht.
2. Da ja offensichtlich nichts mysteriöses in dem Befehl steht, gibt es eventuell einen Timer o.ä. was darauf prüft, ob pJailed oder pSchaufel auf 0 ist und dich dann bannt oder einen RCON Befehl o.ä. ausführt?
3. Generell erstmal herausfinden, welche Funktion aufgerufen wird, die dich vom Server schmeißt. Gibt es einen Ban Eintrag? Oder poste mal den Server Log, da steht ja drinnen aus welchem "reason" du den Server verlässt. Daran kann man schon mal ableiten, ob eine Funktion hier im Spiel ist oder nicht.
Wenn dem so ist, mal schauen, wo man überall Ban/Kick verwendet und einen Print davor setzen und dann kannst du das ganz schnell eindämmen, wo die Ursache dafür liegt ![]()
Sry, hatte nicht gesehen, dass du es da lädst.
Dann ist offensichtlich der Wert den du da lädst immer -1...
Steht denn in der Datenbank ein anderer Wert?
//EDIT habs dennoch mal getan, war ebenfalls nicht die Lösung.
Was kam denn dann als Fehlermeldung..die selbe kann es ja nicht gewesen sein...da ja i < rows ist.
Und geladen:
Da beim Laden hast du vergessen es zu setzen.
Da fehlt das Group[id][groupid] = i; //oder was auch immer du für einen Wert da haben magst
Ja stimmt, da hat er wohl was vergessen, dass muss:
GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
heißen ![]()
damit
Ja...und wann wo und wie wird das aufgerufen..und wie rufst du die andere Funktion auf...
Der ausschnitt bringt mir allein ja nix ![]()
Bekomme ingame aber keine Meldung
Du hast GetPlayerName vergessen ![]()
Die zeilen dazu:
Was für einen Sinn hat denn new id = i+1; ?
Das ist Blödsinn, nutze anstatt id nur i.
bekomme immer nur ID 1 bei getFreeGroupID
Dann ist diese Wohl auch immer frei.
Wie belegst du denn die Gruppen? ![]()
und 3 Zahlen minimum, aber wie frage ich das?
strlen gibt dir die String-Länge.
Und in der Abfrage steht len >= 6 && len <= 12 ...was bedeutet...die länge muss mindestens 6 sein und kleiner gleich 12.
Und LeonMrBonnie meinte mit strval dass es sich um einen Zahlenwert handelt, das macht ja aber keinen Sinn, weil die Länge ja mind 6 sein muss xD
Also die richtige Abfrage ist das hier:
Wieso machst du es dir immer so kompliziert, die ganzen Dinge kann man einfacher schreiben:
format(SpielerInfo[playerid][pRPName], MAX_PLAYER_NAME, inputtext);
PlayerTextDrawSetString(playerid, loginscreen[playerid][32], inputtext);
SetPlayerName(playerid, inputtext);
Es reichen die 3 Zeilen hahaha ![]()
Und bei dem speichern das hier:
stock SaveAccount(playerid)
{
new query[2048];
format(query, sizeof(query), "UPDATE `accounts` SET `level`='%i',`adminlevel`='%i', `fraktion`='%i', `geld`='%i', `verwarnung`='%i', ",
SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pAdmin], SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pVerwarnung]);
format(query, sizeof(query),"%s`alter`='%i', `rank`='%i', `banned`='%i', `sex`='%i', `skin`='%i', `textsperre`='%i', `rpname`='%s' ",
query,SpielerInfo[playerid][pAlter], SpielerInfo[playerid][pRank],SpielerInfo[playerid][pBanned], SpielerInfo[playerid][pSex],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pTextsperre],SpielerInfo[playerid][pRPName]);
format(query, sizeof(query), "%sWHERE `name`='%s' ", query, GetName(playerid));
mysql_tquery(MySQLConnection,query);
print(query);
return true;
}
Alles anzeigen
und schau dir doch einfach an, was das print hier ist, bzw der query ![]()
Kannst auch in den MySQL Log schauen, da werden dir sogar Fehler angezeigt ![]()
oder du nimmst das query und führst es 1:1 mal in PHPMyAdmin aus, da werden dir dann auch Fehler direkt angezeigt ![]()
Steht denn im MySQL Log, dass dieser query erfolgreich ausgeführt wurde? ![]()
Nein...ich meine im Code...den Log hatteste doch schon gepostet ![]()
Was steht denn alles bei dir unter OnGameModeExit? ![]()
In anderen Sprachen macht es Sinn hier double/float Werte zu nehmen.
In Pawn meiner Ansicht nach nicht.
Es treten einfach zu starke Rundungsfehler auf, die man nicht so leicht beheben kann.
Ich empfehle dir daher wirklich 2 Integer zu nehmen.
//Edit:
PS: Gibt dafür bereits auch schon fertige Systeme: https://forum.sa-mp.com/showthread.php?t=276588
Einfach mal googlen ![]()