enum pDataEnum
{
p_id,
bool:pLoggedIn,
pName[MAX_PLAYER_NAME],
pLevel,
pMoney,
pKills,
pDeaths,
pBanned,
pTBanned,
pSpawnchange,
admin_level,
pBannedGrund,
pBanner
}
public OnPlayerConnect(playerid)
{
PlayerInfo[playerid][p_id] = 0;
PlayerInfo[playerid][pLoggedIn] = false;
PlayerInfo[playerid][pLevel] = 0;
PlayerInfo[playerid][pMoney] = 0;
PlayerInfo[playerid][pKills] = 0;
PlayerInfo[playerid][pDeaths] = 0;
GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME);
if(PlayerInfo[playerid][pBanned]==1)
{
SendClientMessage(playerid,-1,"Du bist gebannt");
SetTimerEx("DelayedKick", 100, false, "i", playerid);
return 1;
}
return 1;
}
public OnPlayerRequestClass(playerid)
{
if(!PlayerInfo[playerid][pLoggedIn])
{
new query[128];
mysql_format(handle, query, sizeof(query), "SELECT id FROM users WHERE name = '%e'", PlayerInfo[playerid][pName]);
mysql_pquery(handle, query, "OnUserCheck", "d", playerid);
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTER)
{
if(!response) return Kick(playerid);
if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Bitte registriere Dich:\n{FF0000}Mindestens 3 Zeichen!", "Ok", "Abbrechen");
new query[256];
mysql_format(handle, query, sizeof(query), "INSERT INTO users (name, password) VALUES ('%e', MD5('%e'))", PlayerInfo[playerid][pName], inputtext);
mysql_pquery(handle, query, "OnUserRegister", "d", playerid);
return 1;
}
if(dialogid == DIALOG_LOGIN)
{
if(!response) return Kick(playerid);
if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Mindestens 3 Zeichen!", "Ok", "Abbrechen");
//Wenn alles passt wird die Datenbank ausgelesen
new query[256];
mysql_format(handle, query, sizeof(query), "SELECT * FROM users WHERE name = '%e' AND password = MD5('%e')", PlayerInfo[playerid][pName], inputtext);
mysql_pquery(handle, query, "OnUserLogin", "d", playerid);
SpawnPlayer(playerid);
return 1;
}
return 0;
}
public OnPlayerDisconnect(playerid, reason)
{
SaveUserStats(playerid);
return 1;
}
forward OnUserCheck(playerid);
public OnUserCheck(playerid)
{
if(cache_get_row_count() == 0)
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Bitte registriere Dich:", "Ok", "Abbrechen");
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:", "Ok", "Abbrechen");
}
return 1;
}
forward OnUserRegister(playerid);
public OnUserRegister(playerid)
{
PlayerInfo[playerid][p_id] = cache_insert_id();
SendClientMessage(playerid, 0x00FF00FF, "[Konto] Registration erfolgreich.");
SpawnPlayer(playerid);
return 1;
}
forward OnUserLogin(playerid);
public OnUserLogin(playerid)
{
if(cache_get_row_count() == 0)
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Falsches Passwort!", "Ok", "Abbrechen");
}
else
{
PlayerInfo[playerid][p_id] = cache_get_field_content_int(0, "id", handle);
PlayerInfo[playerid][pLevel] = cache_get_field_content_int(0, "level", handle);
PlayerInfo[playerid][pMoney] = cache_get_field_content_int(0, "money", handle);
PlayerInfo[playerid][pKills] = cache_get_field_content_int(0, "kills", handle);
PlayerInfo[playerid][pDeaths] = cache_get_field_content_int(0, "deaths", handle);
PlayerInfo[playerid][pBanned] = cache_get_field_content_int(0, "ban", handle);
PlayerInfo[playerid][pTBanned] = cache_get_field_content_int(0, "tban", handle);
PlayerInfo[playerid][pSpawnchange] = cache_get_field_content_int(0, "spawn", handle);
PlayerInfo[playerid][pLoggedIn] = true;
SendClientMessage(playerid, 0x00FF00FF, "[Konto] Eingeloggt.");
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
}
return 1;
}