01.02.2013, 01:45
i deleted alot of code from here and i misplaced a bracket but im having a hard time finding it :S
database:
saving part
enum
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_LOGIN)
{
if(!response) return Kick(playerid);
if(IsPlayerConnected(playerid))
{
new DBResult:query, string[256];
format(string, sizeof(string), "SELECT * FROM `USERS` WHERE `NAME`='%s' AND `PASSWORD`='%s'", DB_Escape(GetPlayerNameEx(playerid)), HashInput(inputtext));
query = db_query(UserDatabase, string);
if(db_num_rows(query) > 0) // Logged In
{
new szValue[64];
db_get_field_assoc(query, "MONEY", szValue, sizeof(szValue));
SetPVarInt(playerid, "pMoney", strval(szValue));
db_get_field_assoc(query, "SKIN", szValue, sizeof(szValue));
PlayerInfo[playerid][pSkin] = strval(szValue);
db_get_field_assoc(query, "ADMINLEVEL", szValue, sizeof(szValue));
PlayerInfo[playerid][pAdminLevel] = strval(szValue);
db_get_field_assoc(query, "ADMINDUTY", szValue, sizeof(szValue));
PlayerInfo[playerid][pAdminDuty] = strval(szValue);
db_get_field_assoc(query, "POSITION_X", szValue, sizeof(szValue));
PlayerInfo[playerid][pPositionX] = floatstr(szValue);
db_get_field_assoc(query, "POSITION_Y", szValue, sizeof(szValue));
PlayerInfo[playerid][pPositionY] = floatstr(szValue);
db_get_field_assoc(query, "POSITION_Z", szValue, sizeof(szValue));
PlayerInfo[playerid][pPositionZ] = floatstr(szValue);
db_get_field_assoc(query, "POSITION_ANGLE", szValue, sizeof(szValue));
PlayerInfo[playerid][pFacingAngle] = floatstr(szValue);
db_get_field_assoc(query, "HEALTH", szValue, sizeof(szValue));
PlayerInfo[playerid][pHealth] = strval(szValue);
db_get_field_assoc(query, "ARMOUR", szValue, sizeof(szValue));
PlayerInfo[playerid][pArmour] = strval(szValue);
db_get_field_assoc(query, "WEAPON_SLOT1", szValue, sizeof(szValue));
PlayerInfo[playerid][pWeapons][0] = strval(szValue);
db_get_field_assoc(query, "WEAPON_SLOT2", szValue, sizeof(szValue));
PlayerInfo[playerid][pWeapons][1] = strval(szValue);
db_get_field_assoc(query, "WEAPON_SLOT3", szValue, sizeof(szValue));
PlayerInfo[playerid][pWeapons][2] = strval(szValue);
db_get_field_assoc(query, "WEAPON_SLOT4", szValue, sizeof(szValue));
PlayerInfo[playerid][pWeapons][3] = strval(szValue);
db_get_field_assoc(query, "WEAPON_SLOT5", szValue, sizeof(szValue));
PlayerInfo[playerid][pWeapons][4] = strval(szValue);
db_get_field_assoc(query, "WEAPON_SLOT6", szValue, sizeof(szValue));
PlayerInfo[playerid][pWeapons][5] = strval(szValue);
db_get_field_assoc(query, "WEAPON_SLOT7", szValue, sizeof(szValue));
PlayerInfo[playerid][pWeapons][6] = strval(szValue);
db_get_field_assoc(query, "WEAPON_SLOT8", szValue, sizeof(szValue));
PlayerInfo[playerid][pWeapons][7] = strval(szValue);
db_get_field_assoc(query, "INTERIOR", szValue, sizeof(szValue));
PlayerInfo[playerid][pInterior] = strval(szValue);
db_get_field_assoc(query, "VIRTUALWORLD", szValue, sizeof(szValue));
PlayerInfo[playerid][pVirtualWorld] = strval(szValue);
db_get_field_assoc(query, "BANNED", szValue, sizeof(szValue));
PlayerInfo[playerid][pBanned] = strval(szValue);
db_get_field_assoc(query, "JAILED", szValue, sizeof(szValue));
PlayerInfo[playerid][pJail] = strval(szValue);
TextDrawHideForPlayer(playerid, Welcome);
if(PlayerInfo[playerid][pBanned] == 1)
{
SendClientMessage(playerid, COLOR_WHITE, "You are currently banned from {0093FF}"servername"!");
SendClientMessage(playerid, COLOR_WHITE, "You may post a ban appeal at www.sa-mp.com");
format(string, sizeof(string), "AdmWarning: %s was kicked for attempting to login while being banned", GetPlayerNameEx(playerid));
SendAdminMessage(COLOR_LIGHTRED, string);
Ban(playerid);
}
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{0093FF}"servername":{FFFFFF} Authentication", "{FFFFFF}Welcome to {0093FF}"servername"!{FFFFFF}\nThis account is currently registered, please enter your password to login:", "Login", "Quit");
}
db_free_result(query);
}
}
else if(dialogid == DIALOG_REGISTER)
{
if(!response) return Kick(playerid);
if(IsPlayerConnected(playerid))
{
new string[256];
format(string, sizeof(string), "INSERT INTO `USERS` (`NAME`, `PASSWORD`) VALUES ('%s','%s')", DB_Escape(GetPlayerNameEx(playerid)), HashInput(inputtext));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `MONEY`='%i' WHERE `NAME`='%s'", PLAYER_START_CASH, DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{0093FF}"servername":{FFFFFF} Authentication", "{FFFFFF}Welcome to {0093FF}"servername"!{FFFFFF}\nThis account is currently registered, please enter your password to login:", "Login", "Quit");
}
}
return 1;
}
pawn Код:
BEGIN TRANSACTION;
CREATE TABLE USERS (REPORTCOUNT NUMERIC, ID INTEGER PRIMARY KEY, NAME TEXT, PASSWORD TEXT, MONEY INTEGER, SKIN INTEGER, ADMINLEVEL INTEGER, ADMINDUTY INTEGER, POSITION_X FLOAT, POSITION_Y FLOAT, POSITION_Z FLOAT, POSITION_ANGLE FLOAT, HEALTH INTEGER, ARMOUR INTEGER, WEAPON_SLOT1 INTEGER, WEAPON_SLOT2 INTEGER, WEAPON_SLOT3 INTEGER, WEAPON_SLOT4 INTEGER, WEAPON_SLOT5 INTEGER, WEAPON_SLOT6 INTEGER, WEAPON_SLOT7 INTEGER, WEAPON_SLOT8 INTEGER, INTERIOR INTEGER, VIRTUALWORLD INTEGER, BANNED INTEGER, BANREASON TEXT, JAIL INTEGER);
CREATE TABLE sqlite_sequence(name,seq);
COMMIT;
pawn Код:
SavePlayerProfile(playerid)
{
if(IsPlayerLogged(playerid))
{
new string[128];
GetPlayerPos(playerid, PlayerInfo[playerid][pPositionX], PlayerInfo[playerid][pPositionY], PlayerInfo[playerid][pPositionZ]);
GetPlayerFacingAngle(playerid, PlayerInfo[playerid][pFacingAngle]);
GetPlayerHealth(playerid, PlayerInfo[playerid][pHealth]);
GetPlayerArmour(playerid, PlayerInfo[playerid][pArmour]);
PlayerInfo[playerid][pInterior] = GetPlayerInterior(playerid);
PlayerInfo[playerid][pVirtualWorld] = GetPlayerVirtualWorld(playerid);
format(string, sizeof(string), "UPDATE `USERS` SET `MONEY`='%i' WHERE `NAME`='%s'", GetPlayerCash(playerid), DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `SKIN`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pSkin], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `ADMINLEVEL`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pAdminLevel], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `ADMINDUTY`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pAdminDuty], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `POSITION_X`='%f' WHERE `NAME`='%s'", PlayerInfo[playerid][pPositionX], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `POSITION_Y`='%f' WHERE `NAME`='%s'", PlayerInfo[playerid][pPositionY], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `POSITION_Z`='%f' WHERE `NAME`='%s'", PlayerInfo[playerid][pPositionZ], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `POSITION_ANGLE`='%f' WHERE `NAME`='%s'", PlayerInfo[playerid][pFacingAngle], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `HEALTH`='%i' WHERE `NAME`='%s'", floatround(PlayerInfo[playerid][pHealth]), DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `ARMOUR`='%i' WHERE `NAME`='%s'", floatround(PlayerInfo[playerid][pArmour]), DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `WEAPON_SLOT1`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pWeapons][0], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `WEAPON_SLOT2`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pWeapons][1], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `WEAPON_SLOT3`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pWeapons][2], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `WEAPON_SLOT4`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pWeapons][3], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `WEAPON_SLOT5`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pWeapons][4], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `WEAPON_SLOT6`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pWeapons][5], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `WEAPON_SLOT7`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pWeapons][6], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `WEAPON_SLOT8`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pWeapons][7], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `INTERIOR`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pInterior], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `VIRTUALWORLD`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pVirtualWorld], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
format(string, sizeof(string), "UPDATE `USERS` SET `JAIL`='%i' WHERE `NAME`='%s'", PlayerInfo[playerid][pJail], DB_Escape(GetPlayerNameEx(playerid)));
db_free_result(db_query(UserDatabase, string));
return 1;
}
return 0;
}
pawn Код:
enum pInfo
{
pSkin,
pAdminLevel,
pAdminDuty,
Float:pPositionX,
Float:pPositionY,
Float:pPositionZ,
Float:pFacingAngle,
Float:pHealth,
Float:pArmour,
pWeapons[8],
pInterior,
pVirtualWorld,
pBanned,
pJail
}