pName
Das war ein Beispiel
pName
Das war ein Beispiel
Letztendlich würde ich aber trotzdem gerne wissen wieso er es erst speichert und in der Speicherung wieder überschreibt.
[21:46:18] CMySQLHandler::Query(UPDATE `accounts` SET `Ausfuehrender`='Excuse',`Grund` = 'Healhacker' WHERE `Name`='Excuse') - Successfully executed.
[21:46:18] >> mysql_query( Connection handle: 1 )
[21:46:18] CMySQLHandler::Query(UPDATE `accounts` SET `Gebannt` = '1',`Ausfuehrender` = '',`Grund` = '' WHERE Name='Excuse') - Successfully executed.
[21:46:18] >> mysql_query( Connection handle: 1 )
[21:46:18] CMySQLHandler::Query(UPDATE `accounts` SET `Gebannt` = '1',`Ausfuehrender` = '',`Grund` = '' WHERE Name='Excuse') - Successfully executed.
[21:46:18] >> mysql_query( Connection handle: 1 )
[21:46:18] CMySQLHandler::Query(UPDATE `accounts` SET `Online`='0',`Datum` = '14.03.2014' WHERE `Name`='Excuse') - Successfully executed.
Zeig mal wie du es machst ?
Hier im Ban Befehl, da geht das ja auch.
new query[128];
format(query,128,"UPDATE `accounts` SET `Ausfuehrender`='%s',`Grund` = '%s' WHERE `Name`='%s'",SpielerInfo[pID][pName],reason,SpielerInfo[pID][pName]);
mysql_query(query);
Dann kommt letztendlich nur noch die normale SavePlayer Funktion.
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;
}
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;
}
Zeigt trotzdem kein Mucks.
[23:22:43] CMySQLHandler::Query(UPDATE `accounts` SET `Level` = '1',`Adminlevel` = '4',`Online` = '0',`Datum` = '',`Geschlecht` = '1',`Alter` = '16',`Skin` = '2',`Fraktion` = '0',`Fraktionsrang` = '0',`Leader` = '0',`MuteZeit` = '0',`Gemutet` = '0' WHERE Name='Excuse') - Successfully executed.
[23:22:43] >> mysql_query( Connection handle: 1 )
[23:22:43] CMySQLHandler::Query(UPDATE `accounts` SET `Gebannt` = '1',`Ausfuehrender` = '',`Grund` = '' WHERE Name='Excuse') - Successfully executed.
[23:22:43] >> mysql_query( Connection handle: 1 )
Zeig uns mal deinen stock von mysql_GetString .
stock mysql_GetString(Table[], Field[], Where[], Is[])
{
new query[128], Get[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(Get);
mysql_free_result();
return Get;
}
new string[128];
format(string,sizeof(string),"Dieser Account ist gesperrt, mit ihm kann nicht mehr gespielt werden.\n\nAusführendes Team-Mitglied: %s\nGrund: %s\nDauer: Permanent",SpielerInfo[playerid][pAusfuehrender],SpielerInfo[playerid][pGrund]);
ShowPlayerDialog(playerid,DIALOG_GEBANNT,DIALOG_STYLE_MSGBOX,"{00AFFF}"#SERVERNAME"{FFFFFF}: Information",string,"Verlassen","");
Da ist schon mal ein Fehler und zwar die Größe des Strings das sind 152 Zeichen oder so und du hast nur 128 angegeben. Dieses Problem hatte ich heute auch schon 2x.
Zeigt trotzdem kein Mucks.
[23:22:43] CMySQLHandler::Query(UPDATE `accounts` SET `Level` = '1',`Adminlevel` = '4',`Online` = '0',`Datum` = '',`Geschlecht` = '1',`Alter` = '16',`Skin` = '2',`Fraktion` = '0',`Fraktionsrang` = '0',`Leader` = '0',`MuteZeit` = '0',`Gemutet` = '0' WHERE Name='Excuse') - Successfully executed.
[23:22:43] >> mysql_query( Connection handle: 1 )
[23:22:43] CMySQLHandler::Query(UPDATE `accounts` SET `Gebannt` = '1',`Ausfuehrender` = '',`Grund` = '' WHERE Name='Excuse') - Successfully executed.
[23:22:43] >> mysql_query( Connection handle: 1 )
Wieso wir das hier den immer wieder überschrieben, obwohl es richtig gesetzt ist?
Wieso gibst du du denn Excuse als name an ?
Weil Excuse nun mal pID ist, die gebannt wird?
Was zum Teufel geht mit euch, wenn ihr keinen Plan habt, dann lasst gefälligst das spammen sein!
SA:MP-Designs:
Ganz einfach, warum speicherst du beim Disconnect die werte wie der Banadmin und den Banngrund, wenn du es beim Bannen eh in die Tabelle einträgst?
Das hat da nichts zusuchen beim Ausloggen.
Gut danke funktioniert, jetzt habe ich nur noch ein Problem mit der Abfrage.
new string[128];
format(string,sizeof(string),"Dieser Account ist gesperrt, mit ihm kann nicht mehr gespielt werden.\n\nAusführendes Team-Mitglied: %s\nGrund: %s\nDauer: Permanent",SpielerInfo[playerid][pAusfuehrender],SpielerInfo[playerid][pGrund]);
ShowPlayerDialog(playerid,DIALOG_GEBANNT,DIALOG_STYLE_MSGBOX,"{00AFFF}"#SERVERNAME"{FFFFFF}: Information",string,"Verlassen","");
SetTimerEx("KickDelayed",100,0,"i",playerid);
Die beiden Zeilen die einen Wert wiedergeben sollen, bleiben leer.
Zeig mal wie du das zeug lädst.
/e die GANZE load funktion.
Letztendlich hier nur in der Funktion, woanders wird das nicht geladen.
SpielerInfo[playerid][pAusfuehrender],SpielerInfo[playerid][pGrund]
Hier noch die 2 Variablen von Enum
pAusfuehrender[30],
pGrund[40]
sowie die LoadPlayer Funktion
mysql_fetch_field_row(data,"Ausfuehrender");
SpielerInfo[playerid][pAusfuehrender]=strval(data);
mysql_fetch_field_row(data,"Grund");
SpielerInfo[playerid][pGrund]=strval(data);
strval = string(Text) zum Integer(Zahl) konvertieren
Dann ist wohl klar das dass nicht Hinhauen kann, dass musst du mit einem Format machen.
mysql_fetch_field_row(data,"Ausfuehrender");
format(SpielerInfo[playerid][pAusfuehrender],30,"%s",data):
mysql_fetch_field_row(data,"Grund");
format(SpielerInfo[playerid][pGrund],40,"%s",data);
/e
Kurzen fehler ausgebessert.
Jetzt kommt der Ban Dialog aber nicht, obwohl Gebannt auf 1 steht.
public OnPlayerRequestClass(playerid, classid)
{
if(SpielerInfo[playerid][pGebannt] == 0)
{
if(mysql_CheckAccount(playerid) == 0)
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"{00AFFF}"#SERVERNAME" {FFFFFF}- Registrierung","Willkommen auf "#SERVERNAME"\n\nEs wurde kein Account in der Datenbank gefunden, bitte gebe nun dein gewünschtes Passwort ein.\nSolltest du dein Passwort vergessen haben, melde dich bei einem Head Administrator.","Registrieren","Abbrechen");
InterpolateCameraPos(playerid, 1327.365844, -1589.601684, 83.515167, 2475.331787, -1668.155273, 41.523700, 28000);
InterpolateCameraLookAt(playerid, 1332.219238, -1589.629394, 82.313415, 2478.929199, -1668.136474, 38.051193, 3000);
SetPlayerColor(playerid,COLOR_GRAU);
}
else if(mysql_CheckAccount(playerid) == 1)
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{00AFFF}"#SERVERNAME" {FFFFFF}- Login","Willkommen auf "#SERVERNAME"\n\nDein Account wurde in der Datenbank gefunden, bitte gebe nun dein Passwort ein.\nSolltest du dein Passwort vergessen haben, melde dich bei einem Head Administrator.","Login","Abbrechen");
InterpolateCameraPos(playerid, 1327.365844, -1589.601684, 83.515167, 2475.331787, -1668.155273, 41.523700, 28000);
InterpolateCameraLookAt(playerid, 1332.219238, -1589.629394, 82.313415, 2478.929199, -1668.136474, 38.051193, 3000);
SetPlayerColor(playerid,COLOR_GRAU);
}
}
else
{
new string[128];
format(string,sizeof(string),"Dieser Account ist gesperrt, mit ihm kann nicht mehr gespielt werden.\n\nAusführendes Team-Mitglied: %s\nGrund: %s\nDauer: Permanent",SpielerInfo[playerid][pAusfuehrender],SpielerInfo[playerid][pGrund]);
ShowPlayerDialog(playerid,DIALOG_GEBANNT,DIALOG_STYLE_MSGBOX,"{00AFFF}"#SERVERNAME"{FFFFFF}: Information",string,"Verlassen","");
SetTimerEx("KickDelayed",100,0,"i",playerid);
}
return 1;
}
Wo liest du das aus? Mach es doch nachdem du den spieler Komplett geladen hast, das du den bann abfrägst.