Das ist zum Saven
Beim laden einfach
new Weapons[MAX_PLAYERS][2];
Weapons[playerid][0] = dini_Int(pfad, "Waffe%i");
Weapons[playerid][1] = dini_Int(pfad, "Ammo%i");
GivePlayerWeapon(playerid, Weapons[playerid][0], Weapons[playerid][1]);
Das ist zum Saven
Beim laden einfach
new Weapons[MAX_PLAYERS][2];
Weapons[playerid][0] = dini_Int(pfad, "Waffe%i");
Weapons[playerid][1] = dini_Int(pfad, "Ammo%i");
GivePlayerWeapon(playerid, Weapons[playerid][0], Weapons[playerid][1]);
Vllt kein Streamer angegeben ?
SELECT * FROM `accounts` WHERE `Username` ='%s' AND `Password`='%s' LIMIT 1
Nach deinem CODE geht es immer noch nicht
Das steht in der debug
[12:07:26] [DEBUG] mysql_tquery - connection: 1, query: "SELECT id FROM accounts WHERE Username='Mega_Joe'", callback: "PlayerCheck", format: "i"
[12:07:26] [DEBUG] CMySQLQuery::CMySQLQuery() - constructor called
[12:07:26] [DEBUG] mysql_tquery - scheduling query "SELECT id FROM accounts WHERE Username='Mega_Joe'"..
[12:07:26] [DEBUG] CMySQLQuery::Execute[PlayerCheck(i)] - starting query execution
[12:07:26] [DEBUG] CMySQLQuery::Execute[PlayerCheck(i)] - query was successful
[12:07:26] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
[12:07:26] [DEBUG] CMySQLQuery::Execute[PlayerCheck(i)] - data being passed to ProcessCallbacks()
[12:07:26] [DEBUG] Calling callback "PlayerCheck"..
[12:07:26] [DEBUG] cache_get_data - connection: 1
[12:07:26] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
[12:07:26] [DEBUG] CMySQLQuery::~CMySQLQuery() - deconstructor called
[12:07:32] [DEBUG] mysql_escape_string - source: "12345678", connection: 1, max_len: 35
[12:07:32] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM `accounts` WHERE `Username` ='Mega_Joe' AND `Passw", callback: "CheckPasswort", format: "i"
[12:07:32] [DEBUG] CMySQLQuery::CMySQLQuery() - constructor called
[12:07:32] [DEBUG] mysql_tquery - scheduling query "SELECT * FROM `accounts` WHERE `Username` ='Mega_Joe' AND `Password`='25D55AD283AA400AF464C76D713C07AD' LIMIT 1"..
[12:07:32] [DEBUG] CMySQLQuery::Execute[CheckPasswort(i)] - starting query execution
[12:07:32] [DEBUG] CMySQLQuery::Execute[CheckPasswort(i)] - query was successful
[12:07:32] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
[12:07:32] [DEBUG] CMySQLQuery::Execute[CheckPasswort(i)] - data being passed to ProcessCallbacks()
[12:07:32] [DEBUG] Calling callback "CheckPasswort"..
[12:07:32] [DEBUG] cache_get_data - connection: 1
[12:07:32] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
[12:07:32] [DEBUG] CMySQLQuery::~CMySQLQuery() - deconstructor called
[12:07:33] [DEBUG] mysql_escape_string - source: "1", connection: 1, max_len: 35
[12:07:33] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM `accounts` WHERE `Username` ='Mega_Joe' AND `Passw", callback: "CheckPasswort", format: "i"
[12:07:33] [DEBUG] CMySQLQuery::CMySQLQuery() - constructor called
[12:07:33] [DEBUG] mysql_tquery - scheduling query "SELECT * FROM `accounts` WHERE `Username` ='Mega_Joe' AND `Password`='C4CA4238A0B923820DCC509A6F75849B' LIMIT 1"..
[12:07:33] [DEBUG] CMySQLQuery::Execute[CheckPasswort(i)] - starting query execution
[12:07:33] [DEBUG] CMySQLQuery::Execute[CheckPasswort(i)] - query was successful
[12:07:33] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
[12:07:33] [DEBUG] CMySQLQuery::Execute[CheckPasswort(i)] - data being passed to ProcessCallbacks()
[12:07:33] [DEBUG] Calling callback "CheckPasswort"..
[12:07:33] [DEBUG] cache_get_data - connection: 1
[12:07:33] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
[12:07:33] [DEBUG] CMySQLQuery::~CMySQLQuery() - deconstructor called
mysql_escape_string(inputtext, Passwort, handle);
format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `Username` ='%s' AND `Password`='%s' LIMIT 1",getPlayerName(playerid), MD5_Hash(Passwort));
mysql_function_query(handle, query, true, "CheckPasswort", "i", playerid);
Ja das von Blueg r34
TextDrawSetSelectable(textdrawid, true/false);
Muss ich dafür nicht erstmal unter ongamemodeinit mysql_debug(0); schreiben ?
ja dann musst du es unter OnGamemodeInit machen
Also da dann reinschreiben
for(new i = 0; i < GetMaxPlayers(); i++)
{
loadCar(i);
}
Hey leute, ich habe gerade ein MD5 Hash gescriptet und ehm
'Voher ging alles aber nun wenn ich mich einloggen möchte ist anscheinend jedes Passwort "falsch" was ich eingebe ??
mysql_escape_string(inputtext, Passwort, handle);
format(query, sizeof(query), "SELECT * FROM accounts WHERE Username='%s' AND Password=MD5('%s')",getPlayerName(playerid), Passwort);
mysql_function_query(handle, query, true, "CheckPasswort", "i", playerid);
Also nochmal Allgemein,
Du machst n GMX, server.exe geht aus und NICHT wieder an richtig?
Somit ist dann deine SQL verbindung tot?
Ich kann ihn danach noch mal Starten aber normal wenn man gmx in die console eingibbt beendet sich der server nur für kurze zeit und startet dann wd
Ich schreibe dir hier mal den befehl erneut und auf ocmd:
ocmd:auftraggeben(playerid, params[])
{
if(!IsPlayerInFrac(playerid, 8))return SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Hitman!");
if(PlayerInfo[playerid][pRank] < 2)return SendClientMessage(playerid, COLOR_GREY, "Es gibt derzeit keine Aufträge, schau vorher unter /auftrag nach.");
if(sscanf(params, "ui", id, Value))return SendClientMessage(playerid, COLOR_GRAD1, "Benutzung: /auftraggeben [Spielerid/Spielername] [Betrag]");
if(id == INVALID_PLAYER_ID)return SendClientMessage(playerid, COLOR_GRAD1, "Dieser Spieler ist nicht online!");
if(id == playerid)return SendClientMessage(playerid, COLOR_GRAD1, "Du kannst keinen Auftrag auf die selber ausgeben!");
if(CMoney[id] > 0)return SendClientMessage(playerid, COLOR_GRAD1, "Dieser Spieler hat bereits einen Auftrag!");
if(IsPlayerInFrac(playerid, 8))return SendClientMessage(playerid, COLOR_GRAD1, "Du kannst auf keinen Hitman einen Auftrag aufgeben!");
format(string, sizeof(string), "* Spieler %s hat den Auftrag gegeben, %s(ID:%i) für %i$ zu töten.",Spielername(playerid), Spielername(id), id, Value);
SendFamilyMessage(8, COLOR_YELLOW, string);
CMoney[id] = Value;
return 1;
}
Function OnPlayerDeath(playerid, killerid, reason)
{
if(killerid!= INVALID_PLAYER_ID)
{
if(CMoney[playerid] > 0 && IsPlayerInFrac(killerid, 8))
{
//Contract kill
}
}
return 1;
}
Das ganze war nur ein Beispiel müsstest dann halt paar andere sachen im gf ändern wenn du meinen quellcode nimmst
Leute .. ich habe einen Lokalen Server mit einer Server.exe
Die schliest sich beim restart und das sollte nicht passieren
Und nein sie öffnet sich nicht aus heiterem himmel wieder
Du kappierst es nicht
GMX = SERVERRESTART der server sollte sich nicht stoppen
ne beim gmx beendet der sich
Hey leute ich bekomme einen Fehler übermittelt in der mysql_log.txt wenn ich den server restarte:
[18:51:34] [ERROR] CMySQLQuery::Execute[()] - (error #2013) Lost connection to MySQL server during query
Was soll das genau heißen ?
Und wieso tritt es auf
public OnGameModeExit()
{
//MySQL Verbindungs Trennung
mysql_close(handle);
return 1;
}
PS: Der server beendet sich beim Restart
new string[128],inputtext;
format(string,sizeof(string),"Dieser Befehl (%s) wurde nicht gefunden. Benutze (/help).",inputtext);
return SCM(p,BLAU,string);
zu
new string[128];
format(string,sizeof(string),"Dieser Befehl (%s) wurde nicht gefunden. Benutze (/help).",cmdtext);
return SCM(p,BLAU,string);
Wieso gibst du du denn Excuse als name an ?
stock SavePlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
if(GetPVarInt(playerid,"Eingeloggt") == 1)
{
new query[800];
format(query, sizeof(query), "UPDATE `accounts` SET `Level` = '%d',`Adminlevel` = '%d',`Online` = '%d',`Datum` = '%s',`Geschlecht` = '%i',`Alter` = '%i',`Skin` = '%i',`Fraktion` = '%i',`Fraktionsrang` = '%i',`Leader` = '%i',`MuteZeit` = '%i',`Gemutet` = '%i' WHERE Name='%s'",
SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pOnline],SpielerInfo[playerid][pDatum],SpielerInfo[playerid][pGeschlecht],SpielerInfo[playerid][pAlter],GetPlayerSkin(playerid),SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pFraktionsrang],SpielerInfo[playerid][pLeader],SpielerInfo[playerid][pMuteZeit],SpielerInfo[playerid][pGemutet],SpielerInfo[playerid][pName]);
format(query, sizeof(query), "UPDATE `accounts` SET `Gebannt` = '%i',`Ausfuehrender` = '%s',`Grund` = '%s' WHERE Name='%s'",
SpielerInfo[playerid][pGebannt],SpielerInfo[playerid][pAusfuehrender],SpielerInfo[playerid][pGrund],SpielerInfo[playerid][pName]);
mysql_query(query);
printf(query);
}
}
return 1;
}
zu
stock SavePlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
if(GetPVarInt(playerid,"Eingeloggt") == 1)
{
new query[800];
format(query, sizeof(query), "UPDATE `accounts` SET `Level` = '%d',`Adminlevel` = '%d',`Online` = '%d',`Datum` = '%s',`Geschlecht` = '%i',`Alter` = '%i',`Skin` = '%i',`Fraktion` = '%i',`Fraktionsrang` = '%i',`Leader` = '%i',`MuteZeit` = '%i',`Gemutet` = '%i' WHERE Name='%s'",
SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pOnline],SpielerInfo[playerid][pDatum],SpielerInfo[playerid][pGeschlecht],SpielerInfo[playerid][pAlter],GetPlayerSkin(playerid),SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pFraktionsrang],SpielerInfo[playerid][pLeader],SpielerInfo[playerid][pMuteZeit],SpielerInfo[playerid][pGemutet],SpielerInfo[playerid][pName]);
mysql_query(query);
format(query, sizeof(query), "UPDATE `accounts` SET `Gebannt` = '%i',`Ausfuehrender` = '%s',`Grund` = '%s' WHERE Name='%s'",
SpielerInfo[playerid][pGebannt],SpielerInfo[playerid][pAusfuehrender],SpielerInfo[playerid][pGrund],SpielerInfo[playerid][pName]);
mysql_query(query);
printf(query);
}
}
return 1;
}
Zeig mal wie du es machst ?
pName
Das war ein Beispiel
Du gibst ja am ende WHERE Name = '%s' dass muss du auch am ende angeben so z.B
stock getPlayerName(playerid){
new name[24];
GetPlayerName(playerid, name, 24);
return name;
}
new query[128];
format(query, sizeof(query), "UPDATE table SET variable = '%s' WHERE Name = '%s' ", string, getPlayerName(playerid));
mysql_query(query);