Not that I know of, But I do think it has something to do with the unoptimized way of reading data like this for example.
PHP код:
public OnUserPlayerLogin(playerid, password[])
{
new hash[65], DBResult:Result, sz_Query[92];
SHA256_PassHash(password, PlayerInfo[playerid][pSalt], hash, 64);
format(sz_Query, sizeof(sz_Query), "SELECT * FROM `users` WHERE `admin_name` = '%s'", GetPlayersName(playerid));
Result = db_query(Database, sz_Query);
if(!strcmp(hash, PlayerInfo[playerid][pKey]))
{
db_get_field_assoc(Result, "admin_name", PlayerInfo[playerid][pAdminName], MAX_PLAYER_NAME);
db_get_field_assoc(Result, "email", PlayerInfo[playerid][pEmail], 64);
PlayerInfo[playerid][pAdmin] = db_get_field_assoc_int(Result, "adminlevel");
PlayerInfo[playerid][pBanned] = db_get_field_assoc_int(Result, "banned");
PlayerInfo[playerid][pPermaBanned] = db_get_field_assoc_int(Result, "permbanned");
PlayerInfo[playerid][pWarns] = db_get_field_assoc_int(Result, "warnings");
PlayerInfo[playerid][pLWarns] = db_get_field_assoc_int(Result, "logwarnings");
PlayerInfo[playerid][pDonateRank] = db_get_field_assoc_int(Result, "donaterank");
PlayerInfo[playerid][pBuddyInvited] = db_get_field_assoc_int(Result, "buddyinvited");
PlayerInfo[playerid][pBanAppealer] = db_get_field_assoc_int(Result, "banappealer");
PlayerInfo[playerid][pShopTech] = db_get_field_assoc_int(Result, "shoptech");
PlayerInfo[playerid][pVehMods] = db_get_field_assoc_int(Result, "vehmodder");
PlayerInfo[playerid][pUndercover] = db_get_field_assoc_int(Result, "undercover");
PlayerInfo[playerid][pTogReports] = db_get_field_assoc_int(Result, "togreports");
PlayerInfo[playerid][pFactionModerator] = db_get_field_assoc_int(Result, "factionmod");
PlayerInfo[playerid][pGangModerator] = db_get_field_assoc_int(Result, "gangmod");
PlayerInfo[playerid][gPupgrade] = db_get_field_assoc_int(Result, "upgradepoints");
PlayerInfo[playerid][pConnectTime] = db_get_field_assoc_int(Result, "connectedtime");
PlayerInfo[playerid][pHelper] = db_get_field_assoc_int(Result, "helper");
PlayerInfo[playerid][pDutyHours] = db_get_field_assoc_int(Result, "helphours");
PlayerInfo[playerid][pAcceptedHelp] = db_get_field_assoc_int(Result, "acceptedhelp");
PlayerInfo[playerid][pAcceptReport] = db_get_field_assoc_int(Result, "acceptreport");
PlayerInfo[playerid][pTrashReport] = db_get_field_assoc_int(Result, "trashreport");
PlayerInfo[playerid][pGangWarn] = db_get_field_assoc_int(Result, "gangwarn");
PlayerInfo[playerid][pAMSSent] = db_get_field_assoc_int(Result, "amsent");
db_get_field_assoc(Result, "prisonedby", PlayerInfo[playerid][pPrisonedBy], MAX_PLAYER_NAME);
db_get_field_assoc(Result, "prisonreason", PlayerInfo[playerid][pPrisonReason], 128);
PlayerInfo[playerid][pOrder] = db_get_field_assoc_int(Result, "order");
PlayerInfo[playerid][pOBlocked] = db_get_field_assoc_int(Result, "oblocked");
PlayerInfo[playerid][pUnListed] = db_get_field_assoc_int(Result, "unlisted");
PlayerInfo[playerid][pTokens] = db_get_field_assoc_int(Result, "viptokens");
PlayerInfo[playerid][pMuted] = db_get_field_assoc_int(Result, "muted");
PlayerInfo[playerid][pNMute] = db_get_field_assoc_int(Result, "newbmuted");
PlayerInfo[playerid][pADMute] = db_get_field_assoc_int(Result, "admuted");
PlayerInfo[playerid][pOOCMute] = db_get_field_assoc_int(Result, "oocmuted");
PlayerInfo[playerid][pAmute] = db_get_field_assoc_int(Result, "amuted");
PlayerInfo[playerid][pCMute] = db_get_field_assoc_int(Result, "cmuted");
PlayerInfo[playerid][pRMuted] = db_get_field_assoc_int(Result, "rmuted");
PlayerInfo[playerid][pRMutedTime] = db_get_field_assoc_int(Result, "rmutedtime");
PlayerInfo[playerid][pVMuted] = db_get_field_assoc_int(Result, "vmuted");
db_free_result(Result);
// Loads Characters Data
LoadCharacter(playerid);
LoadCharItems(playerid);
LoadCharJobSkills(playerid);
LoadCharLicenses(playerid);
LoadCharGuns(playerid);
LoadCharTime(playerid); // waiting time (jail time etc..)
LoadCharSkills(playerid); // weapon skills
LoadCharVehiclesModification(playerid);
LoadCharVehiclesWeapon(playerid);
LoadCharVehicles(playerid);
LoadCharToys(playerid);
SetPlayerName(playerid, PlayerInfo[playerid][pRPName]);
ResetPlayerMoney(playerid);
CurrentMoney[playerid] = GetPVarInt(playerid, "Cash");
TotalLogin++;
OnHelp[playerid] = INVALID_PLAYER_ID;
PlayerInfo[playerid][pJustLogged] = 30;
PlayerInfo[playerid][pLoggedIn] = 1;
PlayerInfo[playerid][pLoginTime] = 0;
if(PlayerInfo[playerid][pTruckingLevel] == 0) PlayerInfo[playerid][pTruckingLevel] = 1;
//SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
if(PlayerInfo[playerid][pHospital] == 1)
{
PlayerInfo[playerid][pHospital] = 0;
SetPVarInt(playerid, "MedicBill", 1);
}
if( PlayerInfo[playerid][pBanAppealer] >= 1 && PlayerInfo[playerid][pAdmin] < 1) PlayerInfo[playerid][pBanAppealer] = 0;
if( PlayerInfo[playerid][pUndercover] >= 1 && PlayerInfo[playerid][pAdmin] < 1) PlayerInfo[playerid][pUndercover] = 0;
if( PlayerInfo[playerid][pFactionModerator] >= 1 && PlayerInfo[playerid][pAdmin] < 1) PlayerInfo[playerid][pFactionModerator] = 0;
if( PlayerInfo[playerid][pBanAppealer] > 1) PlayerInfo[playerid][pBanAppealer] = 0;
if( PlayerInfo[playerid][pShopTech] > 1) PlayerInfo[playerid][pShopTech] = 0;
if( PlayerInfo[playerid][pUndercover] > 1) PlayerInfo[playerid][pUndercover] = 0;
if( PlayerInfo[playerid][pFactionModerator] > 1) PlayerInfo[playerid][pFactionModerator] = 0;
if( PlayerInfo[playerid][pGangModerator] > 1) PlayerInfo[playerid][pGangModerator] = 0;
if(PlayerInfo[playerid][pJob2] >= 1 && PlayerInfo[playerid][pDonateRank] < 1)
{
PlayerInfo[playerid][pJob2] = 0;
SendClientMessageEx(playerid, COLOR_YELLOW, "VIP: You have lost your secondary job due to the fact that you are longer a VIP.");
}
if(PlayerInfo[playerid][pDonateRank] >= 4 && PlayerInfo[playerid][pArmsSkill] < 400)
{
PlayerInfo[playerid][pArmsSkill] = 401;
SendClientMessageEx(playerid, COLOR_YELLOW, "Platinum VIP Feature: You have been given Level 5 Arms Dealer.");
}
if (PlayerInfo[playerid][pAdmin] >= 1)
{
PlayerInfo[playerid][pToggedVIPChat] = 1;
}
if (PlayerInfo[playerid][pLevel] < 6 || PlayerInfo[playerid][pAdmin] > 0)
{
gNewbie[playerid] = 0;
}
if (PlayerInfo[playerid][pHelper] >= 1 || PlayerInfo[playerid][pAdmin] == 1)
{
gNewbie[playerid] = 0;
}
if (PlayerInfo[playerid][pAdmin] > 0)
{
if(PlayerInfo[playerid][pAdmin] >= 1)
{
format(sz_Query, sizeof(sz_Query), "{6CC417}AdminNotice{FFFFFF}: You are logged in as a level %d Administrator.",PlayerInfo[playerid][pAdmin]);
SendClientMessageEx(playerid, COLOR_WHITE,sz_Query);
}
if(PlayerInfo[playerid][pAdmin] >= 1)
{
format( sz_Query, sizeof( sz_Query ), "{6CC417}AdminNotice{FFFFFF}: Administrator %s has just logged in.", PlayerInfo[playerid][pAdminName]);
}
foreach(Player, i)
{
if( PlayerInfo[i][pAdmin] >= 1337 )
{
if(PlayerInfo[i][pAdmin] >= PlayerInfo[playerid][pAdmin]) SendClientMessageEx(i, COLOR_WHITE, sz_Query);
}
}
}
ToggleMainMenu(playerid, 0);
printf("%s has logged in.", GetPlayersName(playerid));
format(sz_Query, sizeof(sz_Query), "Welcome to Andreas Nations Roleplay, %s.", PlayerInfo[playerid][pAdminName]);
SendClientMessageEx(playerid, COLOR_YELLOW, sz_Query);
SetSpawnInfo(playerid, PlayerInfo[playerid][pTeam], PlayerInfo[playerid][pModel], PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z], 1.0, -1, -1, -1, -1, -1, -1);
SpawnPlayer(playerid);
SkinDelay(playerid);
if(PlayerInfo[playerid][pInt] > 0 || PlayerInfo[playerid][pVW] > 0)
{
TogglePlayerControllable(playerid, 0);
GameTextForPlayer(playerid, "Objects loading...", 4000, 5);
SetPVarInt(playerid, "LoadingObjects", 1);
SetTimerEx("SafeLoadObjects", 4000, 0, "d", playerid);
}
gPlayerLogged{playerid} = 1;
SetPVarInt(playerid, "MedicBill", 0);
format(sz_Query, sizeof(sz_Query), "~w~Welcome~n~~y~%s~n~~h~~b~www.an-rp.com", PlayerInfo[playerid][pAdminName]);
GameTextForPlayer(playerid, sz_Query, 5000, 1);
SendClientMessageEx(playerid, COLOR_YELLOW, GlobalMOTD);
if(PlayerInfo[playerid][pAdmin] >= 1)
{
SendClientMessageEx(playerid, COLOR_GREEN, AdminMOTD);
}
if(PlayerInfo[playerid][pAdmin] > 0)
{
SendClientMessageEx(playerid, TEAM_AZTECAS_COLOR, CAMOTD);
}
if(PlayerInfo[playerid][pDonateRank] >= 1) SendClientMessageEx(playerid, COLOR_VIP, VIPMOTD);
if(PlayerInfo[playerid][pHelper] >= 1) SendClientMessageEx(playerid, COLOR_LIGHTBLUE, CAMOTD);
if(PlayerInfo[playerid][pMember] == 1) SendClientMessageEx(playerid, COLOR_DBLUE, PDMOTD);
if(PlayerInfo[playerid][pMember] == 19) SendClientMessageEx(playerid, COLOR_DBLUE, LVPDMOTD);
SetPlayerFightingStyle(playerid, PlayerInfo[playerid][pFightStyle]);
LoadPlayerVehicles(playerid);
SetPlayerToTeamColor(playerid);
if(PlayerInfo[playerid][pFMember] < 255)
{
format(sz_Query, sizeof(sz_Query), "Family MOTD: %s.", FamilyInfo[PlayerInfo[playerid][pFMember]][FamilyMOTD]);
SendClientMessageEx(playerid, TEAM_VAGOS_COLOR, sz_Query);
}
if(PlayerInfo[playerid][pOrder] > 0)
{
format(sz_Query, sizeof(sz_Query), "SERVER: %s has an outstanding market place order.", PlayerInfo[playerid][pAdminName]);
ShopTechBroadCast(COLOR_WHITE, sz_Query);
}
new hcheck = INVALID_HOUSE_ID, hcheck2 = INVALID_HOUSE_ID;
for(new i = 0; i < MAX_HOUSES; i++)
{
if(!strcmp(PlayerInfo[playerid][pRPName], HouseInfo[i][hOwner], false) && HouseInfo[i][hOwned] != 0)
{
if(hcheck != INVALID_HOUSE_ID)
{
hcheck2 = i;
}
else
{
hcheck = i;
}
}
}
if(hcheck != INVALID_HOUSE_ID)
{
PlayerInfo[playerid][pPhousekey] = hcheck;
}
if(hcheck2 != INVALID_HOUSE_ID)
{
PlayerInfo[playerid][pPhousekey2] = hcheck2;
}
if(hcheck == INVALID_HOUSE_ID)
{
PlayerInfo[playerid][pPhousekey] = INVALID_HOUSE_ID;
return 1;
}
if(hcheck2 == INVALID_HOUSE_ID)
{
PlayerInfo[playerid][pPhousekey2] = INVALID_HOUSE_ID;
return 1;
}
}
else
{
db_free_result(Result);
ShowMainMenuDialog(playerid, 3);
gPlayerLogTries[playerid] += 1;
if(gPlayerLogTries[playerid] == 3) {
ShowPlayerDialog(playerid, DIALOG_SHOW_INFO, DIALOG_STYLE_MSGBOX, "{008000}You've been Auto-Kicked from the Server", "{FF0000}You've typed the wrong password too many times.", "Ok", "Cancel");
SetTimerEx("SendToKick", 1500, 0, "i", playerid);
}
}
return 1;
}
stock LoadCharToys(playerid)
{
new DBResult:Result, sz_Query[128], var[32];
format(sz_Query, sizeof(sz_Query), "SELECT * FROM `char_toys` WHERE `charid` = %d", PlayerInfo[playerid][pCharID]);
Result = db_query(Database, sz_Query);
if(db_num_rows(Result))
{
for(new v = 0; v < MAX_PLAYERTOYS; v++)
{
format(var, 32, "pt%dModelID",v);
PlayerToyInfo[playerid][v][ptModelID] = db_get_field_assoc_int(Result, var);
format(var, 32, "pt%dBone",v);
PlayerToyInfo[playerid][v][ptBone] = db_get_field_assoc_int(Result, var);
format(var, 32, "pt%dPosX",v);
PlayerToyInfo[playerid][v][ptPosX] = db_get_field_assoc_float(Result, var);
format(var, 32, "pt%dPosY",v);
PlayerToyInfo[playerid][v][ptPosY] = db_get_field_assoc_float(Result, var);
format(var, 32, "pt%dPosZ",v);
PlayerToyInfo[playerid][v][ptPosZ] = db_get_field_assoc_float(Result, var);
format(var, 32, "pt%dRotX",v);
PlayerToyInfo[playerid][v][ptRotX] = db_get_field_assoc_float(Result, var);
format(var, 32, "pt%dRotY",v);
PlayerToyInfo[playerid][v][ptRotY] = db_get_field_assoc_float(Result, var);
format(var, 32, "pt%dRotZ",v);
PlayerToyInfo[playerid][v][ptRotZ] = db_get_field_assoc_float(Result, var);
format(var, 32, "pt%dScaleX",v);
PlayerToyInfo[playerid][v][ptScaleX] = db_get_field_assoc_float(Result, var);
format(var, 32, "pt%dScaleY",v);
PlayerToyInfo[playerid][v][ptScaleY] = db_get_field_assoc_float(Result, var);
format(var, 32, "pt%dScaleZ",v);
PlayerToyInfo[playerid][v][ptScaleZ] = db_get_field_assoc_float(Result, var);
}
}
db_free_result(Result);
return 1;
}
stock LoadCharacter(playerid)
{
new DBResult:Result, sz_Query[128];
format(sz_Query, sizeof(sz_Query), "SELECT * FROM `characters` WHERE `userid` = %d", PlayerInfo[playerid][pUserID]);
Result = db_query(Database, sz_Query);
if(db_num_rows(Result))
{
PlayerInfo[playerid][pCharID] = db_get_field_assoc_int(Result, "charid");
db_get_field_assoc(Result, "rp_name", PlayerInfo[playerid][pRPName], MAX_PLAYER_NAME);
PlayerInfo[playerid][pTut] = db_get_field_assoc_int(Result, "tutorial");
PlayerInfo[playerid][pLevel] = db_get_field_assoc_int(Result, "level");
PlayerInfo[playerid][pSex] = db_get_field_assoc_int(Result, "sex");
PlayerInfo[playerid][pAge] = db_get_field_assoc_int(Result, "age");
PlayerInfo[playerid][pExp] = db_get_field_assoc_int(Result, "respect");
SetPVarInt(playerid, "Cash", db_get_field_assoc_int(Result, "money"));
PlayerInfo[playerid][pAccount] = db_get_field_assoc_int(Result, "bank");
PlayerInfo[playerid][pCrimes] = db_get_field_assoc_int(Result, "crimes");
db_get_field_assoc(Result, "accent", PlayerInfo[playerid][pAccent], 32);
PlayerInfo[playerid][pArrested] = db_get_field_assoc_int(Result, "arrested");
PlayerInfo[playerid][pJob] = db_get_field_assoc_int(Result, "job");
PlayerInfo[playerid][pJob2] = db_get_field_assoc_int(Result, "job2");
PlayerInfo[playerid][pPayCheck] = db_get_field_assoc_int(Result, "paycheck");
PlayerInfo[playerid][pJailed] = db_get_field_assoc_int(Result, "jailed");
PlayerInfo[playerid][pLeader] = db_get_field_assoc_int(Result, "leader");
PlayerInfo[playerid][pMember] = db_get_field_assoc_int(Result, "member");
PlayerInfo[playerid][pDivision] = db_get_field_assoc_int(Result, "division");
PlayerInfo[playerid][pFMember] = db_get_field_assoc_int(Result, "family");
PlayerInfo[playerid][pRank] = db_get_field_assoc_int(Result, "rank");
PlayerInfo[playerid][pFightStyle] = db_get_field_assoc_int(Result, "fightstyle");
PlayerInfo[playerid][pHealth] = db_get_field_assoc_float(Result, "health");
PlayerInfo[playerid][pArmor] = db_get_field_assoc_float(Result, "armor");
PlayerInfo[playerid][pSHealth] = db_get_field_assoc_float(Result, "spawn_armor");
PlayerInfo[playerid][pInt] = db_get_field_assoc_int(Result, "interior");
PlayerInfo[playerid][pLocal] = db_get_field_assoc_int(Result, "local");
PlayerInfo[playerid][pVW] = db_get_field_assoc_int(Result, "virtualworld");
PlayerInfo[playerid][pPos_x] = db_get_field_assoc_float(Result, "x");
PlayerInfo[playerid][pPos_y] = db_get_field_assoc_float(Result, "y");
PlayerInfo[playerid][pPos_z] = db_get_field_assoc_float(Result, "z");
PlayerInfo[playerid][pPos_r] = db_get_field_assoc_float(Result, "r");
PlayerInfo[playerid][pModel] = db_get_field_assoc_int(Result, "model");
PlayerInfo[playerid][pPhousekey] = db_get_field_assoc_int(Result, "house");
PlayerInfo[playerid][pPhousekey2] = db_get_field_assoc_int(Result, "house2");
PlayerInfo[playerid][pRenting] = db_get_field_assoc_int(Result, "renting");
PlayerInfo[playerid][pWins] = db_get_field_assoc_int(Result, "wins");
PlayerInfo[playerid][pLoses] = db_get_field_assoc_int(Result, "loses");
PlayerInfo[playerid][pDuty] = db_get_field_assoc_int(Result, "duty");
SetPVarInt(playerid, "Hospital", db_get_field_assoc_int(Result, "hospital"));
PlayerInfo[playerid][pMarried] = db_get_field_assoc_int(Result, "married");
PlayerInfo[playerid][pWantedLevel] = db_get_field_assoc_int(Result, "wanted");
PlayerInfo[playerid][pInsurance] = db_get_field_assoc_int(Result, "insurance");
PlayerInfo[playerid][pPayDay] = db_get_field_assoc_int(Result, "payday");
PlayerInfo[playerid][pPayDayHad] = db_get_field_assoc_int(Result, "paydayhad");
PlayerInfo[playerid][pNoble] = db_get_field_assoc_int(Result, "noble");
PlayerInfo[playerid][pNoble2] = db_get_field_assoc_int(Result, "noble2");
PlayerInfo[playerid][pNoble3] = db_get_field_assoc_int(Result, "noble3");
PlayerInfo[playerid][pNoble4] = db_get_field_assoc_int(Result, "noble4");
PlayerInfo[playerid][pCitizen] = db_get_field_assoc_int(Result, "citizen");
PlayerInfo[playerid][pDispatch] = db_get_field_assoc_int(Result, "dispatch");
PlayerInfo[playerid][pHospital] = db_get_field_assoc_int(Result, "sendtohospital");
PlayerInfo[playerid][pSpeedTix] = db_get_field_assoc_int(Result, "speedtickets");
db_get_field_assoc(Result, "warrants", PlayerInfo[playerid][pWarrant], 128);
PlayerInfo[playerid][pJudgeJailType] = db_get_field_assoc_int(Result, "judgejail");
PlayerInfo[playerid][pBeingSentenced] = db_get_field_assoc_int(Result, "sentenced");
PlayerInfo[playerid][pCallsAccepted] = db_get_field_assoc_int(Result, "callsaccepted");
PlayerInfo[playerid][pPatientsDelivered] = db_get_field_assoc_int(Result, "ptdelivered");
PlayerInfo[playerid][pLiveBanned] = db_get_field_assoc_int(Result, "livebanned");
PlayerInfo[playerid][pFreezeBank] = db_get_field_assoc_int(Result, "bankfroze");
PlayerInfo[playerid][pTogRadio] = db_get_field_assoc_int(Result, "togradio");
PlayerInfo[playerid][pTruckingLevel] = db_get_field_assoc_int(Result, "truckinglevel");
PlayerInfo[playerid][pTruckingXP] = db_get_field_assoc_int(Result, "truckingxp");
PlayerInfo[playerid][pJackAttempts] = db_get_field_assoc_int(Result, "jackattempts");
PlayerInfo[playerid][pBadgeNum] = db_get_field_assoc_int(Result, "badgenumber");
PlayerInfo[playerid][p911sAccepted] = db_get_field_assoc_int(Result, "911accepted");
PlayerInfo[playerid][pArrestsMade] = db_get_field_assoc_int(Result, "arrestmade");
PlayerInfo[playerid][pInfractionsIssued] = db_get_field_assoc_int(Result, "infractionissued");
PlayerInfo[playerid][pEnrolledEZPass] = db_get_field_assoc_int(Result, "ezpass");
PlayerInfo[playerid][pChopShopped] = db_get_field_assoc_int(Result, "chopshopped");
PlayerInfo[playerid][pHouseSpawn] = db_get_field_assoc_int(Result, "housespawn");
PlayerInfo[playerid][pTimedOut] = db_get_field_assoc_int(Result, "timedout");
}
db_free_result(Result);
return 1;
}