Ich würde gerne wissen wie ich z.B von einem einzigen Spieler in der Datenbank z.B das Bargeld ändern kann.
Mfg.
Ich würde gerne wissen wie ich z.B von einem einzigen Spieler in der Datenbank z.B das Bargeld ändern kann.
Mfg.
@Douq Ich weiß nicht ganz genau wie ich das mache Bin neu im bereich MySQL
Was genau weißt du nicht? Musst du konkreter werden, dann versuche ich es deutlicher zu erklären
@Douq Wo z.B muss dieses UPDATE usw. hin? meine DB sieht so aus:
https://www.pic-upload.de/view-33749621/DB.png.html
Erst einmal als Tipp, ich würde an deiner Stelle auto_increment + primary key bei der Spalte id aktivieren. Dann kannst du auch einfach per phpMyAdmin auf die jeweilige Spalte drücken und den Wert beliebig ändern
Von deinem Screenshot ausgesehen: Struktur (oben der Reiter), bei id auf bearbeiten, bei A_I einen Haken setzen und dann zurück, den Datensatz auswählen und unten auf Primärenschlüssel.
Ich glaube, du musst aber alle Datensätze löschen oder die ID ändern, da nun dreimal die 0 vergeben ist.
Lösch ambesten nochmal deine users Tabelle und geh auf SQL und füg diesen Query ein!
CREATE TABLE IF NOT EXISTS `users` (`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(24) NOT NULL, `password` VARCHAR(30) NOT NULL, `level` TINYINT(4) NOT NULL DEFAULT '1', `money` INT(11) NOT NULL DEFAULT '100', `deaths` SMALLINT(5) NOT NULL DEFAULT '0')
die Standard Werte können natürlich geändert werden!
@Szertockz Ich hab den Code so eingegeben nur wenn sobald ich bei dem money TAB etwas ändere komme ich nicht mehr Ingame und es wird immer gesagt falsches Passwort
/edit auch wenn ich nicht änder ist mein Passwort falsch bin grad überfordert
/edit Bin wieder bei dem Punkt angekommen das ich es so hab wie vorher mit meiner Tabelle ohne diesen "Query" und nun kann ich mich wieder einloggen... So jetzt kann ich komischerweise auch mein money "TAB" bearbeiten hab ihn mal auf 5000$ gesetzt aber nach einem gmx hab ich trotzdem noch 0$
das ganze speichern lassen durch nen Timer und bei OnPlayerDisconnect ebenfalls
Das wird eigentlich schon gespeichert @Szertockz
public OnPlayerDisconnect(playerid, reason)
{
//NPC Bot Abfrage
if(IsPlayerNPC(playerid)) return 1;
SaveUserStats(playerid); //Spieler wird Gespeichert
return 1;
}
Jetzt habe ich grade auch noch ein AdminSystem eingebaut... Aber als ich in der Datenbank Adminlevel 3 meinem Spieler gesettet habe kam ich Ingame und bin angeblich kein Admin... aber in der Datenbank ist es noch als Adminlevel 3 eingetragen...
@Jeffry hast du vielleicht eine Lösung?
Magst du uns mal zeigen wie du die Spieler lädst?
@Whice. Das Problem ist das dass ganze System von Jeffry ist und ich da selbst nicht richtig durch blicke weil ich halt einfach nur seinem Tutorial von MySQL gefolgt bin.
/edit
Ich weiß nichtmal ob es eine Laden funktion gibt aber anscheinend nicht da auch ständig mein Geld auf 0 gesetzt wird in der DB sobald ich auf dem Server Connecte
Ein paar Punkte darunter OnUserRegister bzw. wenn er schon registriert ist OnUserLogin, dort fügst du dann nur dein AdminLevel hinzu
Mein Enum sieht so aus:
enum pDataEnum{ p_id, bool:pLoggedIn, pName[MAX_PLAYER_NAME], pLevel, pMoney, pKills, pDeaths, pAlevel}
Hab ich aber schon
public OnUserLogin(playerid){ //Query wurde ausgeführt und das Ergebnis im Cache gespeichert new rows; cache_get_row_count(rows); if(rows == 0) { //Der Spieler hat ein falsches Passwort eingegeben ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge dich ein, gebe dazu dein Passwort ein:\n{FF0000}Falsches Passwort!", "Bestätigen", "Abbrechen"); } else { //Es existiert ein Ergebnis, das heißt der Spieler hat das richtige Passwort eingegeben //Wir lesen nun die erste Zeile des Caches aus (ID 0) cache_get_value_name_int(0, "id", PlayerInfo[playerid][p_id]); cache_get_value_name_int(0, "level", PlayerInfo[playerid][pLevel]); cache_get_value_name_int(0, "money", PlayerInfo[playerid][pMoney]); cache_get_value_name_int(0, "kills", PlayerInfo[playerid][pKills]); cache_get_value_name_int(0, "deaths", PlayerInfo[playerid][pDeaths]); cache_get_value_name_int(9, "alevel", PlayerInfo[playerid][pAlevel]); PlayerInfo[playerid][pLoggedIn] = true; SendClientMessage(playerid,GELB,"Du hast dich erfolgreich eingeloggt!"); GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); SpawnPlayer(playerid); } return 1;}
/edit sehe grade bei alevel hab ich 9,"alevel", habe es von 9 auf 0 geändert und jetzt habe ich admin level 3 gehabt
nur wie sieht das mit dem geld aus
Wird das ganze denn auch ausgeführt? Gibt es überhaupt eine Verbindung zur Datenbank?