Guten Tag, ich hab ein Problem, undzwar hab ich mal ein MySQL Script-Vorlage Genommen, und dann mein Dini System auf MySQL umgeschrieben. Jedoch hab ich 1 (1/2) Probleme.
Undzwar: Kills/Deaths werden nicht geladen. Wenn ich sterbe dann speichert er zwar +1 Death (eigentlich ja 0 aber dazu komm ich gleich nochmal zurück), wenn ich dann in MySQL gucke steht dann auch 1(0), wenn ich dann connecte hab ich dann 0(-1).
Hier ist Laden + Speichern:
stock LoadPlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))//Wir fragen ab ob der angegebene Spieler auch Online ist, und kein NPC ist (nur zur sicherhheit)
{
GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME); //Wir Speichern den Namen des Spielers in der Variable [i]SpielerInfo[playerid][pName][/i]
SetPlayerScore(playerid,mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName])); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
GivePlayerMoney(playerid,mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]));
SpielerInfo[playerid][Adminlevel] = mysql_GetInt("accounts", "Adminlevel", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][ban] = mysql_GetInt("accounts", "ban", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][Kills] = mysql_GetInt("account", "Kills", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][Deaths] = mysql_GetInt("account", "Deaths", "Name", SpielerInfo[playerid][pName]);
}
new querys[128];
format(querys, sizeof(querys), "UPDATE accounts SET IP = '%s' WHERE Name = '%s'", SpielerIP(playerid), SpielerName(playerid));
mysql_query(querys);
if(SpielerInfo[playerid][ban]==1)
{
Kick(playerid);
}
return 1;
}
stock SavePlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
{
if(GetPVarInt(playerid,"Eingeloggt") == 1)
{
mysql_SetInt("accounts", "Level", GetPlayerScore(playerid), "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Geld", GetPlayerMoney(playerid), "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Adminlevel", SpielerInfo[playerid][Adminlevel], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "ban", SpielerInfo[playerid][ban], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][Kills], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Deaths", SpielerInfo[playerid][Deaths], "Name", SpielerInfo[playerid][pName]);
}
}
new querys[128];
format(querys, sizeof(querys), "UPDATE accounts SET IP = '%s' WHERE Name = '%s'", SpielerIP(playerid), SpielerName(playerid));
mysql_query(querys);
return 1;
}Aber ich habe KEINE Ahnung warum er es nicht speichert....
Außérdem habe ich das Problem, dass jeder Account am Anfang -1 Kills & Deaths hat.
Register:
stock createtable()
{
mysql_query("CREATE TABLE IF NOT EXISTS `accounts` (`id` int(11) AUTO_INCREMENT, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
mysql_query("ALTER TABLE `accounts` ADD `Name` varchar(64)");
mysql_query("ALTER TABLE `accounts` ADD `Passwort` varchar(128) NOT NULL");
mysql_query("ALTER TABLE `accounts` ADD `IP` varchar(128) NOT NULL");
mysql_query("ALTER TABLE `accounts` ADD `Level` int(11) NOT NULL DEFAULT '0'");
mysql_query("ALTER TABLE `accounts` ADD `Geld` int(11) NOT NULL DEFAULT '0'");
mysql_query("ALTER TABLE `accounts` ADD `Adminlevel` int(11) NOT NULL DEFAULT '0'");
mysql_query("ALTER TABLE `accounts` ADD `ban` varchar(128) NOT NULL");
mysql_query("ALTER TABLE `accounts` ADD `banngrund` varchar(128) NOT NULL");
mysql_query("ALTER TABLE `accounts` ADD `Kills` int(128) NOT NULL DEFAULT '0'");
mysql_query("ALTER TABLE `accounts` ADD `Deaths` int(128) NOT NULL DEFAULT '0'");
}
Hoffe mir kann jemand helfen.
MfG.
Achja, eben alles wird mit Enums gemacht.