/*
/$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$$
| $$$ | $$ /$$__ $$ | $$__ $$| $$__ $$
| $$$$| $$| $$ \__/ | $$ \ $$| $$ \ $$
| $$ $$ $$| $$ /$$$$ /$$$$$$| $$$$$$$/| $$$$$$$/
| $$ $$$$| $$|_ $$|______/| $$__ $$| $$____/
| $$\ $$$| $$ \ $$ | $$ \ $$| $$
| $$ \ $$| $$$$$$/ | $$ | $$| $$
|__/ \__/ \______/ |__/ |__/|__/
//--------------------------------[MYSQL.PWN]--------------------------------
* Copyright (c) 2016, Next Generation Gaming, LLC
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are not permitted in any case.
*
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
stock SQLUpdateBuild(query[], table[], sqlplayerid)
{
new querylen = strlen(query);
if (!query[0]) {
format(query, 2048, "UPDATE `%s` SET ", table);
}
else if (2048-querylen < 200)
{
new whereclause[32];
format(whereclause, sizeof(whereclause), " WHERE `id`=%d", sqlplayerid);
strcat(query, whereclause, 2048);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
format(query, 2048, "UPDATE `%s` SET ", table);
}
else if (strfind(query, "=", true) != -1) strcat(query, ",", 2048);
return 1;
}
stock SQLUpdateFinish(query[], table[], sqlplayerid)
{
if (strcmp(query, "WHERE id=", false) == 0) mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
else
{
new whereclause[32];
format(whereclause, sizeof(whereclause), " WHERE id=%d", sqlplayerid);
strcat(query, whereclause, 2048);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
format(query, 2048, "UPDATE `%s` SET ", table);
}
return 1;
}
stock SaveInteger(query[], table[], sqlid, Value[], Integer)
{
SQLUpdateBuild(query, table, sqlid);
new updval[64];
format(updval, sizeof(updval), "`%s`=%d", Value, Integer);
strcat(query, updval, 2048);
return 1;
}
stock SaveString(query[], table[], sqlid, Value[], String[])
{
SQLUpdateBuild(query, table, sqlid);
new escapedstring[160], string[160];
mysql_escape_string(String, escapedstring);
format(string, sizeof(string), "`%s`='%s'", Value, escapedstring);
strcat(query, string, 2048);
return 1;
}
stock SaveFloat(query[], table[], sqlid, Value[], Float:Number)
{
new flotostr[32];
format(flotostr, sizeof(flotostr), "%0.2f", Number);
SaveString(query, table, sqlid, Value, flotostr);
return 1;
}
//--------------------------------[ FUNCTIONS ]---------------------------
PinLogin(playerid)
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT `Pin` FROM `accounts` WHERE `id` = %d", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, string, "OnPinCheck", "i", playerid);
return 1;
}
//--------------------------------[ INITIATE/EXIT ]---------------------------
// g_mysql_Init()
// Description: Called with Gamemode Init.
stock g_mysql_Init()
{
new SQL_HOST[64], SQL_DB[64], SQL_USER[32], SQL_PASS[128], SQL_DEBUG, SQL_DEBUGLOG;
new SQL_SHOST[64], SQL_SDB[64], SQL_SUSER[32], SQL_SPASS[128];
new fileString[128], File: fileHandle = fopen("mysql.cfg", io_read);
while(fread(fileHandle, fileString, sizeof(fileString))) {
if(ini_GetValue(fileString, "HOST", SQL_HOST, sizeof(SQL_HOST))) continue;
if(ini_GetValue(fileString, "DB", SQL_DB, sizeof(SQL_DB))) continue;
if(ini_GetValue(fileString, "USER", SQL_USER, sizeof(SQL_USER))) continue;
if(ini_GetValue(fileString, "PASS", SQL_PASS, sizeof(SQL_PASS))) continue;
if(ini_GetInt(fileString, "SHOPAUTOMATED", ShopToggle)) continue;
if(ini_GetValue(fileString, "SHOST", SQL_SHOST, sizeof(SQL_SHOST))) continue;
if(ini_GetValue(fileString, "SDB", SQL_SDB, sizeof(SQL_SDB))) continue;
if(ini_GetValue(fileString, "SUSER", SQL_SUSER, sizeof(SQL_SUSER))) continue;
if(ini_GetValue(fileString, "SPASS", SQL_SPASS, sizeof(SQL_SPASS))) continue;
if(ini_GetInt(fileString, "SERVER", servernumber)) continue;
if(ini_GetInt(fileString, "BETASERVER", betaserver)) continue;
if(ini_GetInt(fileString, "DEBUG", SQL_DEBUG)) continue;
if(ini_GetInt(fileString, "DEBUGLOG", SQL_DEBUGLOG)) continue;
}
fclose(fileHandle);
mysql_log(NONE); // Has to be NONE for some the server will crash (runs out of memory)
MainPipeline = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DB);
printf("[MySQL] (Main Pipelines) Connecting to %s...", SQL_HOST);
if(mysql_errno(MainPipeline) != 0)
{
printf("[MySQL] (MainPipeline) Fatal Error! Could not connect to MySQL: Host %s - DB: %s - User: %s", SQL_HOST, SQL_DB, SQL_USER);
print("[MySQL] Note: Make sure that you have provided the correct connection credentials.");
printf("[MySQL] Error number: %d", mysql_errno(MainPipeline));
SendRconCommand("exit");
}
else print("[MySQL] (MainPipeline) Connection successful toward MySQL Database Server!");
if(ShopToggle == 1)
{
ShopPipeline = mysql_connect(SQL_SHOST, SQL_SUSER, SQL_SPASS, SQL_SDB);
printf("[MySQL] (Shop Pipelines) Connecting to %s...", SQL_SHOST);
if(mysql_errno(ShopPipeline) != 0)
{
printf("[MySQL] (ShopPipeline) Fatal Error! Could not connect to MySQL: Host %s - DB: %s - User: %s", SQL_SHOST, SQL_SDB, SQL_SUSER);
print("[MySQL] Note: Make sure that you have provided the correct connection credentials.");
printf("[MySQL] Error number: %d", mysql_errno(ShopPipeline));
//SendRconCommand("exit");
}
else print("[MySQL] (ShopPipeline) Connection successful toward MySQL Database Server!");
}
InitiateGamemode(); // Start the server
return 1;
}
// g_mysql_Exit()
// Description: Called with Gamemode Exit.
stock g_mysql_Exit()
{
mysql_close(MainPipeline);
if(ShopToggle == 1) mysql_close(ShopPipeline);
return 1;
}
//--------------------------------[ CALLBACKS ]--------------------------------
forward OnQueryFinish(resultid, extraid, handleid);
public OnQueryFinish(resultid, extraid, handleid)
{
new rows, fields, value;
szMiscArray[0] = 0;
if(resultid != SENDDATA_THREAD) {
if(extraid != INVALID_PLAYER_ID) {
if(g_arrQueryHandle{extraid} != -1 && g_arrQueryHandle{extraid} != handleid) return 0;
}
cache_get_row_count(rows);
cache_get_field_count(fields);
}
switch(resultid)
{
case LOADSALEDATA_THREAD:
{
if(rows > 0)
{
for(new i;i < rows;i++)
{
new szResult[32], szField[15];
for(new z = 0; z < MAX_ITEMS; z++)
{
format(szField, sizeof(szField), "TotalSold%d", z);
cache_get_value_name(i, szField, szResult);
AmountSold[z] = strval(szResult);
//ShopItems[z][sSold] = strval(szResult);
format(szField, sizeof(szField), "AmountMade%d", z);
cache_get_value_name(i, szField, szResult);
AmountMade[z] = strval(szResult);
//ShopItems[z][sMade] = strval(szResult);
printf("TotalSold%d: %d | AmountMade%d: %d", z, AmountSold[z], z, AmountMade[z]);
}
new result[128];
cache_get_value_name(i, "TotalSoldMicro", result);
sscanf(result, MicroSpecifier, AmountSoldMicro);
cache_get_value_name(i, "AmountMadeMicro", result);
sscanf(result, MicroSpecifier, AmountMadeMicro);
for(new m = 0; m < MAX_MICROITEMS; m++)
{
printf("TotalSoldMicro%d: %d | AmountMadeMicro%d: %d", m, AmountSoldMicro[m], m, AmountMadeMicro[m]);
}
break;
}
}
else
{
mysql_tquery(MainPipeline, "INSERT INTO `sales` (`Month`) VALUES (NOW())", "OnQueryFinish", "i", SENDDATA_THREAD);
mysql_tquery(MainPipeline, "SELECT * FROM `sales` WHERE `Month` > NOW() - INTERVAL 1 MONTH", "OnQueryFinish", "iii", LOADSALEDATA_THREAD, INVALID_PLAYER_ID, -1);
print("[LOADSALEDATA] Inserted new row into `sales`");
}
}
case LOADSHOPDATA_THREAD:
{
for(new i;i < rows;i++)
{
new szResult[32], szField[14];
for(new z = 0; z < MAX_ITEMS; z++)
{
format(szField, sizeof(szField), "Price%d", z);
cache_get_value_name(i, szField, szResult);
ShopItems[z][sItemPrice] = strval(szResult);
Price[z] = strval(szResult);
if(ShopItems[z][sItemPrice] == 0) ShopItems[z][sItemPrice] = 99999999;
printf("Price%d: %d", z, ShopItems[z][sItemPrice]);
}
new result[128];
cache_get_value_name(i, "MicroPrices", result);
sscanf(result, MicroSpecifier, MicroItems);
for(new m = 0; m < MAX_MICROITEMS; m++)
{
if(MicroItems[m] == 0) MicroItems[m] = 99999999;
printf("MicroPrice%d: %d", m, MicroItems[m]);
}
//printf("[LOADSHOPDATA] Price0: %d, Price1: %d, Price2: %d, Price3: %d, Price4: %d, Price5: %d, Price6: %d, Price7: %d, Pricr8: %d, Price9: %d, Price10: %d", Price[0], Price[1], Price[2], Price[3], Price[4], Price[5], Price[6], Price[7], Price[8], Price[9], Price[10]);
break;
}
}
case LOADMOTDDATA_THREAD:
{
for(new i;i < rows;i++)
{
new szResult[32];
cache_get_value_name(i, "gMOTD", GlobalMOTD);
cache_get_value_name(i, "aMOTD", AdminMOTD);
cache_get_value_name(i, "vMOTD", VIPMOTD);
cache_get_value_name(i, "cMOTD", CAMOTD);
cache_get_value_name(i, "pMOTD", pMOTD);
cache_get_value_name_float(i, "ShopTechPay", ShopTechPay);
cache_get_value_name(i, "GiftCode", GiftCode);
cache_get_value_name_int(i, "GiftCodeBypass", GiftCodeBypass);
cache_get_value_name(i, "SecurityCode", SecurityCode);
cache_get_value_name_int(i, "ShopClosed", ShopClosed);
cache_get_value_name_int(i, "RimMod", RimMod);
cache_get_value_name_int(i, "CarVoucher", CarVoucher);
cache_get_value_name_int(i, "PVIPVoucher", PVIPVoucher);
cache_get_value_name_int(i, "GarageVW", GarageVW);
cache_get_value_name_int(i, "PumpkinStock", PumpkinStock);
cache_get_value_name_int(i, "HalloweenShop", HalloweenShop);
cache_get_value_name_int(i, "PassComplexCheck", PassComplexCheck);
cache_get_value_name(i, "prisonerMOTD", prisonerMOTD[0]);
cache_get_value_name(i, "prisonerMOTD2", prisonerMOTD[1]);
cache_get_value_name(i, "prisonerMOTD3", prisonerMOTD[2]);
for(new x = 0; x < 7; x++)
{
format(szResult, sizeof(szResult), "GunPrice%d", x);
cache_get_value_name_int(i, szResult, GunPrices[x]);
}
CallLocalFunction("LoadInactiveResourceSettings", "i", i);
break;
}
}
case LOADUSERDATA_THREAD:
{
if(IsPlayerConnected(extraid))
{
new szField[MAX_PLAYER_NAME], szResult[64];
for(new row;row < rows;row++)
{
cache_get_value_name(row, "Username", szField, MAX_PLAYER_NAME);
if(strcmp(szField, GetPlayerNameExt(extraid), true) != 0)
{
return 1;
}
cache_get_value_name_int(row, "id", PlayerInfo[extraid][pId]);
cache_get_value_name_int(row, "Online", PlayerInfo[extraid][pOnline]);
cache_get_value_name(row, "Email", PlayerInfo[extraid][pEmail]);
cache_get_value_name(row, "IP", PlayerInfo[extraid][pIP]);
cache_get_value_name(row, "SecureIP", PlayerInfo[extraid][pSecureIP]);
cache_get_value_name_int(row, "ConnectedTime", PlayerInfo[extraid][pConnectHours]);
cache_get_value_name(row, "BirthDate", PlayerInfo[extraid][pBirthDate]);
cache_get_value_name_int(row, "Sex", PlayerInfo[extraid][pSex]);
cache_get_value_name_int(row, "Band", PlayerInfo[extraid][pBanned]);
cache_get_value_name_int(row, "PermBand", PlayerInfo[extraid][pPermaBanned]);
cache_get_value_name_int(row, "Registered", PlayerInfo[extraid][pReg]);
cache_get_value_name_int(row, "Warnings", PlayerInfo[extraid][pWarns]);
cache_get_value_name_int(row, "Disabled", PlayerInfo[extraid][pDisabled]);
cache_get_value_name_int(row, "Level", PlayerInfo[extraid][pLevel]);
cache_get_value_name_int(row, "AdminLevel", PlayerInfo[extraid][pAdmin]);
cache_get_value_name_int(row, "SeniorModerator", PlayerInfo[extraid][pSMod]);
cache_get_value_name_int(row, "DonateRank", PlayerInfo[extraid][pDonateRank]);
cache_get_value_name_int(row, "Respect", PlayerInfo[extraid][pExp]);
cache_get_value_name_int(row, "Money", PlayerInfo[extraid][pCash]);
cache_get_value_name_int(row, "Bank", PlayerInfo[extraid][pAccount]);
cache_get_value_name_float(row, "pHealth", PlayerInfo[extraid][pHealth]);
cache_get_value_name_float(row, "pArmor", PlayerInfo[extraid][pArmor]);
cache_get_value_name_float(row, "pSHealth", PlayerInfo[extraid][pSHealth]);
cache_get_value_name_int(row, "Int", PlayerInfo[extraid][pInt]);
cache_get_value_name_int(row, "VirtualWorld", PlayerInfo[extraid][pVW]);
cache_get_value_name_int(row, "Model", PlayerInfo[extraid][pModel]);
cache_get_value_name_float(row, "SPos_x", PlayerInfo[extraid][pPos_x]);
cache_get_value_name_float(row, "SPos_y", PlayerInfo[extraid][pPos_y]);
cache_get_value_name_float(row, "SPos_z", PlayerInfo[extraid][pPos_z]);
cache_get_value_name_float(row, "SPos_r", PlayerInfo[extraid][pPos_r]);
cache_get_value_name_int(row, "BanAppealer", PlayerInfo[extraid][pBanAppealer]);
cache_get_value_name_int(row, "PR", PlayerInfo[extraid][pPR]);
cache_get_value_name_int(row, "HR", PlayerInfo[extraid][pHR]);
cache_get_value_name_int(row, "AP", PlayerInfo[extraid][pAP]);
cache_get_value_name_int(row, "Security", PlayerInfo[extraid][pSecurity]);
cache_get_value_name_int(row, "ShopTech", PlayerInfo[extraid][pShopTech]);
cache_get_value_name_int(row, "FactionModerator", PlayerInfo[extraid][pFactionModerator]);
cache_get_value_name_int(row, "GangModerator", PlayerInfo[extraid][pGangModerator]);
cache_get_value_name_int(row, "Undercover", PlayerInfo[extraid][pUndercover]);
cache_get_value_name_int(row, "TogReports", PlayerInfo[extraid][pTogReports]);
cache_get_value_name_int(row, "Radio", PlayerInfo[extraid][pRadio]);
cache_get_value_name_int(row, "RadioFreq", PlayerInfo[extraid][pRadioFreq]);
cache_get_value_name_int(row, "UpgradePoints", PlayerInfo[extraid][gPupgrade]);
cache_get_value_name_int(row, "Origin", PlayerInfo[extraid][pOrigin]);
cache_get_value_name_int(row, "Muted", PlayerInfo[extraid][pMuted]);
cache_get_value_name_int(row, "Crimes", PlayerInfo[extraid][pCrimes]);
cache_get_value_name_int(row, "Accent", PlayerInfo[extraid][pAccent]);
cache_get_value_name_int(row, "CHits", PlayerInfo[extraid][pCHits]);
cache_get_value_name_int(row, "FHits", PlayerInfo[extraid][pFHits]);
cache_get_value_name_int(row, "Arrested", PlayerInfo[extraid][pArrested]);
cache_get_value_name_int(row, "Phonebook", PlayerInfo[extraid][pPhoneBook]);
cache_get_value_name_int(row, "LottoNr", PlayerInfo[extraid][pLottoNr]);
cache_get_value_name_int(row, "Fishes", PlayerInfo[extraid][pFishes]);
cache_get_value_name_int(row, "BiggestFish", PlayerInfo[extraid][pBiggestFish]);
cache_get_value_name_int(row, "Job", PlayerInfo[extraid][pJob]);
cache_get_value_name_int(row, "Job2", PlayerInfo[extraid][pJob2]);
cache_get_value_name_int(row, "Job3", PlayerInfo[extraid][pJob3]);
cache_get_value_name_int(row, "Paycheck", PlayerInfo[extraid][pPayCheck]);
cache_get_value_name_int(row, "HeadValue", PlayerInfo[extraid][pHeadValue]);
cache_get_value_name_int(row, "JailTime", PlayerInfo[extraid][pJailTime]);
cache_get_value_name_int(row, "WRestricted", PlayerInfo[extraid][pWRestricted]);
cache_get_value_name_int(row, "Materials", PlayerInfo[extraid][pMats]);
cache_get_value_name_int(row, "Crates", PlayerInfo[extraid][pCrates]);
cache_get_value_name_int(row, "StaffBanned", PlayerInfo[extraid][pStaffBanned]);
// PlayerInfo[extraid][pPot] = cache_get_value_name_int(row, "Pot");
// PlayerInfo[extraid][pCrack] = cache_get_value_name_int(row, "Crack");
cache_get_value_name_int(row, "Nation", PlayerInfo[extraid][pNation]);
cache_get_value_name_int(row, "Leader", PlayerInfo[extraid][pLeader]);
cache_get_value_name_int(row, "Member", PlayerInfo[extraid][pMember]);
cache_get_value_name_int(row, "Division", PlayerInfo[extraid][pDivision]);
cache_get_value_name(row, "Badge", PlayerInfo[extraid][pBadge]);
cache_get_value_name_int(row, "Rank", PlayerInfo[extraid][pRank]);
cache_get_value_name_int(row, "DetSkill", PlayerInfo[extraid][pDetSkill]);
cache_get_value_name_int(row, "SexSkill", PlayerInfo[extraid][pSexSkill]);
cache_get_value_name_int(row, "BoxSkill", PlayerInfo[extraid][pBoxSkill]);
cache_get_value_name_int(row, "LawSkill", PlayerInfo[extraid][pLawSkill]);
cache_get_value_name_int(row, "MechSkill", PlayerInfo[extraid][pMechSkill]);
cache_get_value_name_int(row, "TruckSkill", PlayerInfo[extraid][pTruckSkill]);
cache_get_value_name_int(row, "DrugSmuggler", PlayerInfo[extraid][pDrugSmuggler]);
cache_get_value_name_int(row, "ArmsSkill", PlayerInfo[extraid][pArmsSkill]);
cache_get_value_name_int(row, "FishSkill", PlayerInfo[extraid][pFishSkill]);
cache_get_value_name_int(row, "FightingStyle", PlayerInfo[extraid][pFightStyle]);
cache_get_value_name_int(row, "PhoneNr", PlayerInfo[extraid][pPnumber]);
cache_get_value_name_int(row, "Apartment", PlayerInfo[extraid][pPhousekey]);
cache_get_value_name_int(row, "Apartment2", PlayerInfo[extraid][pPhousekey2]);
cache_get_value_name_int(row, "Apartment3", PlayerInfo[extraid][pPhousekey3]);
cache_get_value_name_int(row, "Renting", PlayerInfo[extraid][pRenting]);
cache_get_value_name_int(row, "CarLic", PlayerInfo[extraid][pCarLic]);
cache_get_value_name_int(row, "FlyLic", PlayerInfo[extraid][pFlyLic]);
cache_get_value_name_int(row, "BoatLic", PlayerInfo[extraid][pBoatLic]);
cache_get_value_name_int(row, "FishLic", PlayerInfo[extraid][pFishLic]);
cache_get_value_name_int(row, "CheckCash", PlayerInfo[extraid][pCheckCash]);
cache_get_value_name_int(row, "Checks", PlayerInfo[extraid][pChecks]);
cache_get_value_name_int(row, "GunLic", PlayerInfo[extraid][pGunLic]);
for(new i = 0; i < 12; i++)
{
format(szField, sizeof(szField), "Gun%d", i);
cache_get_value_name_int(row, szField, PlayerInfo[extraid][pGuns][i]);
}
cache_get_value_name_int(row, "DrugsTime", PlayerInfo[extraid][pDrugsTime]);
cache_get_value_name_int(row, "LawyerTime", PlayerInfo[extraid][pLawyerTime]);
cache_get_value_name_int(row, "LawyerFreeTime", PlayerInfo[extraid][pLawyerFreeTime]);
cache_get_value_name_int(row, "MechTime", PlayerInfo[extraid][pMechTime]);
cache_get_value_name_int(row, "SexTime", PlayerInfo[extraid][pSexTime]);
cache_get_value_name_int(row, "PayDay", PlayerInfo[extraid][pConnectSeconds]);
cache_get_value_name_int(row, "PayDayHad", PlayerInfo[extraid][pPayDayHad]);
cache_get_value_name_int(row, "CDPlayer", PlayerInfo[extraid][pCDPlayer]);
cache_get_value_name_int(row, "Dice", PlayerInfo[extraid][pDice]);
cache_get_value_name_int(row, "Spraycan", PlayerInfo[extraid][pSpraycan]);
cache_get_value_name_int(row, "Rope", PlayerInfo[extraid][pRope]);
cache_get_value_name_int(row, "Rags", PlayerInfo[extraid][pRags]);
cache_get_value_name_int(row, "Cigars", PlayerInfo[extraid][pCigar]);
cache_get_value_name_int(row, "Sprunk", PlayerInfo[extraid][pSprunk]);
cache_get_value_name_int(row, "Bombs", PlayerInfo[extraid][pBombs]);
cache_get_value_name_int(row, "Wins", PlayerInfo[extraid][pWins]);
cache_get_value_name_int(row, "Loses", PlayerInfo[extraid][pLoses]);
cache_get_value_name_int(row, "Tutorial", PlayerInfo[extraid][pTut]);
cache_get_value_name_int(row, "OnDuty", PlayerInfo[extraid][pDuty]);
cache_get_value_name_int(row, "Hospital", PlayerInfo[extraid][pHospital]);
cache_get_value_name_int(row, "MarriedID", PlayerInfo[extraid][pMarriedID]);
cache_get_value_name(row, "ContractBy", PlayerInfo[extraid][pContractBy]);
cache_get_value_name(row, "ContractDetail", PlayerInfo[extraid][pContractDetail]);
cache_get_value_name_int(row, "WantedLevel", PlayerInfo[extraid][pWantedLevel]);
cache_get_value_name_int(row, "Insurance", PlayerInfo[extraid][pInsurance]);
cache_get_value_name_int(row, "911Muted", PlayerInfo[extraid][p911Muted]);
cache_get_value_name_int(row, "NewMuted", PlayerInfo[extraid][pNMute]);
cache_get_value_name_int(row, "NewMutedTotal", PlayerInfo[extraid][pNMuteTotal]);
cache_get_value_name_int(row, "AdMuted", PlayerInfo[extraid][pADMute]);
cache_get_value_name_int(row, "AdMutedTotal", PlayerInfo[extraid][pADMuteTotal]);
cache_get_value_name_int(row, "HelpMute", PlayerInfo[extraid][pHelpMute]);
cache_get_value_name_int(row, "Helper", PlayerInfo[extraid][pHelper]);
cache_get_value_name_int(row, "ReportMuted", PlayerInfo[extraid][pRMuted]);
cache_get_value_name_int(row, "ReportMutedTotal", PlayerInfo[extraid][pRMutedTotal]);
cache_get_value_name_int(row, "ReportMutedTime", PlayerInfo[extraid][pRMutedTime]);
cache_get_value_name_int(row, "DMRMuted", PlayerInfo[extraid][pDMRMuted]);
cache_get_value_name_int(row, "VIPMuted", PlayerInfo[extraid][pVMuted]);
cache_get_value_name_int(row, "VIPMutedTime", PlayerInfo[extraid][pVMutedTime]);
cache_get_value_name_int(row, "GiftTime", PlayerInfo[extraid][pGiftTime]);
cache_get_value_name_int(row, "AdvisorDutyHours", PlayerInfo[extraid][pDutyHours]);
cache_get_value_name_int(row, "AcceptedHelp", PlayerInfo[extraid][pAcceptedHelp]);
cache_get_value_name_int(row, "AcceptReport", PlayerInfo[extraid][pAcceptReport]);
cache_get_value_name_int(row, "ShopTechOrders", PlayerInfo[extraid][pShopTechOrders]);
cache_get_value_name_int(row, "TrashReport", PlayerInfo[extraid][pTrashReport]);
cache_get_value_name_int(row, "GangWarn", PlayerInfo[extraid][pGangWarn]);
cache_get_value_name_int(row, "CSFBanned", PlayerInfo[extraid][pCSFBanned]);
cache_get_value_name_int(row, "VIPInviteDay", PlayerInfo[extraid][pVIPInviteDay]);
cache_get_value_name_int(row, "TempVIP", PlayerInfo[extraid][pTempVIP]);
cache_get_value_name_int(row, "BuddyInvite", PlayerInfo[extraid][pBuddyInvited]);
cache_get_value_name_int(row, "Tokens", PlayerInfo[extraid][pTokens]);
cache_get_value_name_int(row, "PTokens", PlayerInfo[extraid][pPaintTokens]);
cache_get_value_name_int(row, "TriageTime", PlayerInfo[extraid][pTriageTime]);
cache_get_value_name(row, "PrisonedBy", PlayerInfo[extraid][pPrisonedBy]);
cache_get_value_name(row, "PrisonReason", PlayerInfo[extraid][pPrisonReason]);
cache_get_value_name_int(row, "TaxiLicense", PlayerInfo[extraid][pTaxiLicense]);
cache_get_value_name_int(row, "TicketTime", PlayerInfo[extraid][pTicketTime]);
cache_get_value_name_int(row, "Screwdriver", PlayerInfo[extraid][pScrewdriver]);
cache_get_value_name_int(row, "Smslog", PlayerInfo[extraid][pSmslog]);
cache_get_value_name_int(row, "Wristwatch", PlayerInfo[extraid][pWristwatch]);
cache_get_value_name_int(row, "Surveillance", PlayerInfo[extraid][pSurveillance]);
cache_get_value_name_int(row, "Tire", PlayerInfo[extraid][pTire]);
cache_get_value_name_int(row, "Firstaid", PlayerInfo[extraid][pFirstaid]);
cache_get_value_name_int(row, "Rccam", PlayerInfo[extraid][pRccam]);
cache_get_value_name_int(row, "Receiver", PlayerInfo[extraid][pReceiver]);
cache_get_value_name_int(row, "GPS", PlayerInfo[extraid][pGPS]);
cache_get_value_name_int(row, "Sweep", PlayerInfo[extraid][pSweep]);
cache_get_value_name_int(row, "SweepLeft", PlayerInfo[extraid][pSweepLeft]);
cache_get_value_name_int(row, "Bugged", PlayerInfo[extraid][pBugged]);
cache_get_value_name_int(row, "pWExists", PlayerInfo[extraid][pWeedObject]);
cache_get_value_name_int(row, "pWSeeds", PlayerInfo[extraid][pWSeeds]);
cache_get_value_name(row, "Warrants", PlayerInfo[extraid][pWarrant]);
cache_get_value_name_int(row, "JudgeJailTime", PlayerInfo[extraid][pJudgeJailTime]);
cache_get_value_name_int(row, "JudgeJailType", PlayerInfo[extraid][pJudgeJailType]);
cache_get_value_name_int(row, "BeingSentenced", PlayerInfo[extraid][pBeingSentenced]);
cache_get_value_name_int(row, "ProbationTime", PlayerInfo[extraid][pProbationTime]);
cache_get_value_name_int(row, "DMKills", PlayerInfo[extraid][pDMKills]);
cache_get_value_name_int(row, "Order", PlayerInfo[extraid][pOrder]);
cache_get_value_name_int(row, "OrderConfirmed", PlayerInfo[extraid][pOrderConfirmed]);
cache_get_value_name_int(row, "CallsAccepted", PlayerInfo[extraid][pCallsAccepted]);
cache_get_value_name_int(row, "PatientsDelivered", PlayerInfo[extraid][pPatientsDelivered]);
cache_get_value_name_int(row, "LiveBanned", PlayerInfo[extraid][pLiveBanned]);
cache_get_value_name_int(row, "FreezeBank", PlayerInfo[extraid][pFreezeBank]);
cache_get_value_name_int(row, "FreezeHouse", PlayerInfo[extraid][pFreezeHouse]);
cache_get_value_name_int(row, "FreezeCar", PlayerInfo[extraid][pFreezeCar]);
cache_get_value_name_int(row, "Firework", PlayerInfo[extraid][pFirework]);
cache_get_value_name_int(row, "Boombox", PlayerInfo[extraid][pBoombox]);
cache_get_value_name_int(row, "Hydration", PlayerInfo[extraid][pHydration]);
cache_get_value_name_int(row, "Speedo", PlayerInfo[extraid][pSpeedo]);
cache_get_value_name_int(row, "DoubleEXP", PlayerInfo[extraid][pDoubleEXP]);
cache_get_value_name_int(row, "EXPToken", PlayerInfo[extraid][pEXPToken]);
cache_get_value_name_int(row, "RacePlayerLaps", PlayerInfo[extraid][pRacePlayerLaps]);
cache_get_value_name_int(row, "Ringtone", PlayerInfo[extraid][pRingtone]);
cache_get_value_name_int(row, "Wallpaper", PlayerInfo[extraid][pWallpaper]);
cache_get_value_name_int(row, "VIPM", PlayerInfo[extraid][pVIPM]);
cache_get_value_name_int(row, "VIPMO", PlayerInfo[extraid][pVIPMO]);
cache_get_value_name_int(row, "VIPExpire", PlayerInfo[extraid][pVIPExpire]);
cache_get_value_name_int(row, "GVip", PlayerInfo[extraid][pGVip]);
cache_get_value_name_int(row, "Watchdog", PlayerInfo[extraid][pWatchdog]);
cache_get_value_name_int(row, "VIPSold", PlayerInfo[extraid][pVIPSold]);
cache_get_value_name_int(row, "GoldBoxTokens", PlayerInfo[extraid][pGoldBoxTokens]);
cache_get_value_name_int(row, "DrawChance", PlayerInfo[extraid][pRewardDrawChance]);
cache_get_value_name_float(row, "RewardHours", PlayerInfo[extraid][pRewardHours]);
cache_get_value_name_int(row, "CarsRestricted", PlayerInfo[extraid][pRVehRestricted]);
cache_get_value_name_int(row, "LastCarWarning", PlayerInfo[extraid][pLastRVehWarn]);
cache_get_value_name_int(row, "CarWarns", PlayerInfo[extraid][pRVehWarns]);
cache_get_value_name_int(row, "Flagged", PlayerInfo[extraid][pFlagged]);
cache_get_value_name_int(row, "Paper", PlayerInfo[extraid][pPaper]);
cache_get_value_name_int(row, "MailEnabled", PlayerInfo[extraid][pMailEnabled]);
cache_get_value_name_int(row, "Mailbox", PlayerInfo[extraid][pMailbox]);
cache_get_value_name_int(row, "Business", PlayerInfo[extraid][pBusiness]);
cache_get_value_name_int(row, "BusinessRank", PlayerInfo[extraid][pBusinessRank]);
cache_get_value_name_int(row, "TreasureSkill", PlayerInfo[extraid][pTreasureSkill]);
cache_get_value_name_int(row, "MetalDetector", PlayerInfo[extraid][pMetalDetector]);
cache_get_value_name_int(row, "HelpedBefore", PlayerInfo[extraid][pHelpedBefore]);
cache_get_value_name_int(row, "Trickortreat", PlayerInfo[extraid][pTrickortreat]);
cache_get_value_name_int(row, "LastCharmReceived", PlayerInfo[extraid][pLastCharmReceived]);
cache_get_value_name_int(row, "RHMutes", PlayerInfo[extraid][pRHMutes]);
cache_get_value_name_int(row, "RHMuteTime", PlayerInfo[extraid][pRHMuteTime]);
cache_get_value_name_int(row, "GiftCode", PlayerInfo[extraid][pGiftCode]);
cache_get_value_name_int(row, "Table", PlayerInfo[extraid][pTable]);
cache_get_value_name_int(row, "OpiumSeeds", PlayerInfo[extraid][pOpiumSeeds]);
cache_get_value_name_int(row, "RawOpium", PlayerInfo[extraid][pRawOpium]);
//PlayerInfo[extraid][pHeroin] = cache_get_value_name_int(row, "Heroin", value);
cache_get_value_name_int(row, "Syringe", PlayerInfo[extraid][pSyringes]);
cache_get_value_name_int(row, "Skins", PlayerInfo[extraid][pSkins]);
cache_get_value_name_int(row, "Fitness", PlayerInfo[extraid][pFitness]);
cache_get_value_name_int(row, "ForcePasswordChange", PlayerInfo[extraid][pForcePasswordChange]);
cache_get_value_name_int(row, "Credits", PlayerInfo[extraid][pCredits]);
cache_get_value_name_int(row, "HealthCare", PlayerInfo[extraid][pHealthCare]);
cache_get_value_name_int(row, "TotalCredits", PlayerInfo[extraid][pTotalCredits]);
//PlayerInfo[extraid][pReceivedCredits] = cache_get_value_name_int(row, "ReceivedCredits", value);
cache_get_value_name_int(row, "RimMod", PlayerInfo[extraid][pRimMod]);
cache_get_value_name_int(row, "Tazer", PlayerInfo[extraid][pHasTazer]);
cache_get_value_name_int(row, "Cuff", PlayerInfo[extraid][pHasCuff]);
cache_get_value_name_int(row, "CarVoucher", PlayerInfo[extraid][pCarVoucher]);
cache_get_value_name(row, "ReferredBy", PlayerInfo[extraid][pReferredBy]);
cache_get_value_name_int(row, "PendingRefReward", PlayerInfo[extraid][pPendingRefReward]);
cache_get_value_name_int(row, "Refers", PlayerInfo[extraid][pRefers]);
cache_get_value_name_int(row, "Famed", PlayerInfo[extraid][pFamed]);
cache_get_value_name_int(row, "FamedMuted", PlayerInfo[extraid][pFMuted]);
cache_get_value_name_int(row, "DefendTime", PlayerInfo[extraid][pDefendTime]);
cache_get_value_name_int(row, "VehicleSlot", PlayerInfo[extraid][pVehicleSlot]);
cache_get_value_name_int(row, "PVIPVoucher", PlayerInfo[extraid][pPVIPVoucher]);
cache_get_value_name_int(row, "ToySlot", PlayerInfo[extraid][pToySlot]);
cache_get_value_name_int(row, "RFLTeam", PlayerInfo[extraid][pRFLTeam]);
cache_get_value_name_int(row, "RFLTeamL", PlayerInfo[extraid][pRFLTeamL]);
cache_get_value_name_int(row, "VehVoucher", PlayerInfo[extraid][pVehVoucher]);
cache_get_value_name_int(row, "SVIPVoucher", PlayerInfo[extraid][pSVIPVoucher]);
cache_get_value_name_int(row, "GVIPVoucher", PlayerInfo[extraid][pGVIPVoucher]);
cache_get_value_name_int(row, "GiftVoucher", PlayerInfo[extraid][pGiftVoucher]);
cache_get_value_name_int(row, "FallIntoFun", PlayerInfo[extraid][pFallIntoFun]);
cache_get_value_name_int(row, "HungerVoucher", PlayerInfo[extraid][pHungerVoucher]);
cache_get_value_name_int(row, "BoughtCure", PlayerInfo[extraid][pBoughtCure]);
cache_get_value_name_int(row, "Vials", PlayerInfo[extraid][pVials]);
cache_get_value_name_int(row, "AdvertVoucher", PlayerInfo[extraid][pAdvertVoucher]);
cache_get_value_name_int(row, "ShopCounter", PlayerInfo[extraid][pShopCounter]);
cache_get_value_name_int(row, "ShopNotice", PlayerInfo[extraid][pShopNotice]);
cache_get_value_name_int(row, "SVIPExVoucher", PlayerInfo[extraid][pSVIPExVoucher]);
cache_get_value_name_int(row, "GVIPExVoucher", PlayerInfo[extraid][pGVIPExVoucher]);
cache_get_value_name_int(row, "VIPSellable", PlayerInfo[extraid][pVIPSellable]);
cache_get_value_name_int(row, "ReceivedPrize", PlayerInfo[extraid][pReceivedPrize]);
cache_get_value_name_int(row, "VIPSpawn", PlayerInfo[extraid][pVIPSpawn]);
cache_get_value_name_int(row, "FreeAdsDay", PlayerInfo[extraid][pFreeAdsDay]);
cache_get_value_name_int(row, "FreeAdsLeft", PlayerInfo[extraid][pFreeAdsLeft]);
cache_get_value_name_int(row, "BuddyInvites", PlayerInfo[extraid][pBuddyInvites]);
cache_get_value_name_int(row, "ReceivedBGift", PlayerInfo[extraid][pReceivedBGift]);
cache_get_value_name_int(row, "pVIPJob", PlayerInfo[extraid][pVIPJob]);
cache_get_value_name_int(row, "LastBirthday", PlayerInfo[extraid][pLastBirthday]);
cache_get_value_name_int(row, "AccountRestricted", PlayerInfo[extraid][pAccountRestricted]);
cache_get_value_name_int(row, "Watchlist", PlayerInfo[extraid][pWatchlist]);
cache_get_value_name_int(row, "WatchlistTime", PlayerInfo[extraid][pWatchlistTime]);
cache_get_value_name_int(row, "Backpack", PlayerInfo[extraid][pBackpack]);
cache_get_value_name_int(row, "BEquipped", PlayerInfo[extraid][pBEquipped]);
cache_get_value_name_int(row, "BStoredH", PlayerInfo[extraid][pBStoredH]);
cache_get_value_name_int(row, "BStoredV", PlayerInfo[extraid][pBStoredV]);
cache_get_value_name_int(row, "BRTimeout", PlayerInfo[extraid][pBugReportTimeout]);
cache_get_value_name_int(row, "PrisonCredits", PlayerInfo[extraid][pPrisonCredits]);
cache_get_value_name_int(row, "PrisonMaterials", PlayerInfo[extraid][pPrisonMaterials]);
cache_get_value_name_int(row, "PrisonWineTime", PlayerInfo[extraid][pPrisonWineTime]);
cache_get_value_name_int(row, "PrisonCell", PlayerInfo[extraid][pPrisonCell]);
cache_get_value_name_int(row, "CopKit", value);
SetPVarInt(extraid, "MedVestKit", value);
cache_get_value_name_int(row, "PrisonSoap", value);
SetPVarInt(extraid, "pPrisonSoap", value);
cache_get_value_name_int(row, "PrisonSugar", value);
SetPVarInt(extraid, "pPrisonSugar", value);
cache_get_value_name_int(row, "PrisonBread", value);
SetPVarInt(extraid, "pPrisonBread", value);
cache_get_value_name_int(row, "PrisonShank", value);
SetPVarInt(extraid, "pPrisonShank", value);
cache_get_value_name_int(row, "PrisonShankOut", value);
SetPVarInt(extraid, "pPrisonShankOut", value);
cache_get_value_name_int(row, "ShankUsages", value);
SetPVarInt(extraid, "pShankUsages", value);
cache_get_value_name_int(row, "PrisonWine", value);
SetPVarInt(extraid, "pPrisonWine", value);
cache_get_value_name_int(row, "PrisonMWine", value);
SetPVarInt(extraid, "pPrisonMWine", value);
cache_get_value_name_int(row, "PrisonChisel", value);
SetPVarInt(extraid, "pPrisonChisel", value);
cache_get_value_name_int(row, "PrisonCellChisel", value);
SetPVarInt(extraid, "pPrisonCellChisel", value);
cache_get_value_name_int(row, "FishingSkill", PlayerInfo[extraid][pFishingSkill]);
cache_get_value_name_int(row, "FishWeight", PlayerInfo[extraid][pFishWeight]);
cache_get_value_name_int(row, "GarbageSkill", PlayerInfo[extraid][pGarbageSkill]);
for(new i = 0; i < 12; i++) {
format(szField, sizeof(szField), "BItem%d", i);
cache_get_value_name_int(row, szField, PlayerInfo[extraid][pBItems][i]);
}
for(new i = 0; i < sizeof(Drugs); i++) {
format(szField, sizeof(szField), "BDrug%d", i);
cache_get_value_name_int(row, szField, PlayerInfo[extraid][pBDrugs][i]);
}
cache_get_value_name_int(row, "pDigCooldown", PlayerInfo[extraid][pDigCooldown]);
cache_get_value_name_int(row, "ToolBox", PlayerInfo[extraid][pToolBox]);
cache_get_value_name_int(row, "CrowBar", PlayerInfo[extraid][pCrowBar]);
cache_get_value_name_int(row, "CarLockPickSkill", PlayerInfo[extraid][pCarLockPickSkill]);
cache_get_value_name_int(row, "LockPickVehCount", PlayerInfo[extraid][pLockPickVehCount]);
cache_get_value_name_int(row, "LockPickTime", PlayerInfo[extraid][pLockPickTime]);
cache_get_value_name_int(row, "SEC", PlayerInfo[extraid][pSEC]);
cache_get_value_name_int(row, "BM", PlayerInfo[extraid][pBM]);
cache_get_value_name_int(row, "ASM", PlayerInfo[extraid][pASM]);
cache_get_value_name_int(row, "Isolated", PlayerInfo[extraid][pIsolated]);
cache_get_value_name_int(row, "WantedJailTime", PlayerInfo[extraid][pWantedJailTime]);
cache_get_value_name_int(row, "WantedJailFine", PlayerInfo[extraid][pWantedJailFine]);
cache_get_value_name_int(row, "NextNameChange", PlayerInfo[extraid][pNextNameChange]);
cache_get_value_name(row, "pExamineDesc", PlayerInfo[extraid][pExamineDesc]);
cache_get_value_name(row, "FavStation", PlayerInfo[extraid][pFavStation]);
// Austin's DP System
cache_get_value_name_int(row, "pDedicatedPlayer", PlayerInfo[extraid][pDedicatedPlayer]);
cache_get_value_name_int(row, "pDedicatedEnabled", PlayerInfo[extraid][pDedicatedEnabled]);
cache_get_value_name_int(row, "pDedicatedMuted", PlayerInfo[extraid][pDedicatedMuted]);
cache_get_value_name_int(row, "pDedicatedWarn", PlayerInfo[extraid][pDedicatedWarn]);
cache_get_value_name(row, "mInventory", szResult);
sscanf(szResult, MicroSpecifier, PlayerInfo[extraid][mInventory]);
cache_get_value_name(row, "mPurchaseCounts", szResult);
sscanf(szResult, MicroSpecifier, PlayerInfo[extraid][mPurchaseCount]);
new result[256];
cache_get_value_name(row, "mCooldowns", result);
sscanf(result, MicroSpecifier, PlayerInfo[extraid][mCooldown]);
cache_get_value_name(row, "mBoost", szResult);
sscanf(szResult, "p<|>e
", PlayerInfo[extraid][mBoost]);
cache_get_value_name(row, "mShopNotice", szResult);
sscanf(szResult, "p<|>dd", PlayerInfo[extraid][mShopCounter], PlayerInfo[extraid][mNotice]);
cache_get_value_name_int(row, "zFuelCan", PlayerInfo[extraid][zFuelCan]);
cache_get_value_name_int(row, "bTicket", PlayerInfo[extraid][bTicket]);
// Austin's Punishment Revamp
cache_get_value_name(row, "JailedInfo", szResult);
sscanf(szResult, "p<|>e", PlayerInfo[extraid][pJailedInfo]);
cache_get_value_name(row, "JailedWeapons", szResult);
sscanf(szResult, "p<|>e", PlayerInfo[extraid][pJailedWeapons]);
cache_get_value_name_int(row, "pVIPMod", PlayerInfo[extraid][pVIPMod]);
cache_get_value_name_int(row, "EmailConfirmed", value);
SetPVarInt(extraid, "EmailConfirmed", value);
cache_get_value_name_int(row, "pEventTokens", PlayerInfo[extraid][pEventTokens]);
cache_get_value_name_int(row, "pBailPrice", PlayerInfo[extraid][pBailPrice]);
cache_get_value_name_int(row, "pLastPoll", PlayerInfo[extraid][pLastPoll]);
cache_get_value_name_int(row, "VIPGunsCount", PlayerInfo[extraid][pVIPGuncount]);
cache_get_value_name_int(row, "GroupToyBone", PlayerInfo[extraid][pGroupToyBone]);
cache_get_value_name_float(row, "GroupToy0", PlayerInfo[extraid][pGroupToy][0]);
cache_get_value_name_float(row, "GroupToy1", PlayerInfo[extraid][pGroupToy][1]);
cache_get_value_name_float(row, "GroupToy2", PlayerInfo[extraid][pGroupToy][2]);
cache_get_value_name_float(row, "GroupToy3", PlayerInfo[extraid][pGroupToy][3]);
cache_get_value_name_float(row, "GroupToy4", PlayerInfo[extraid][pGroupToy][4]);
cache_get_value_name_float(row, "GroupToy5", PlayerInfo[extraid][pGroupToy][5]);
cache_get_value_name_float(row, "GroupToy6", PlayerInfo[extraid][pGroupToy][6]);
cache_get_value_name_float(row, "GroupToy7", PlayerInfo[extraid][pGroupToy][7]);
cache_get_value_name_float(row, "GroupToy8", PlayerInfo[extraid][pGroupToy][8]);
cache_get_value_name_int(row, "Pot", PlayerInfo[extraid][pDrugs][0]);
cache_get_value_name_int(row, "Crack", PlayerInfo[extraid][pDrugs][1]);
cache_get_value_name_int(row, "Meth", PlayerInfo[extraid][pDrugs][2]);
cache_get_value_name_int(row, "Ecstasy", PlayerInfo[extraid][pDrugs][3]);
cache_get_value_name_int(row, "Heroin", PlayerInfo[extraid][pDrugs][4]);
cache_get_value_name_int(row, "Hitman", PlayerInfo[extraid][pHitman]);
cache_get_value_name_int(row, "HitmanLeader", PlayerInfo[extraid][pHitmanLeader]);
cache_get_value_name_int(row, "HitmanBlacklisted", PlayerInfo[extraid][pHitmanBlacklisted]);
cache_get_value_name(row, "BlacklistReason", PlayerInfo[extraid][pBlacklistReason]);
cache_get_value_name(row, "PollKeyA", PlayerInfo[extraid][pPollKey1]);
cache_get_value_name(row, "PollKeyB", PlayerInfo[extraid][pPollKey2]);
cache_get_value_name(row, "PollKeyC", PlayerInfo[extraid][pPollKey3]);
if(isnull(PlayerInfo[extraid][pPollKey1])) format(PlayerInfo[extraid][pPollKey1], 12, "Invalid Key");
if(isnull(PlayerInfo[extraid][pPollKey2])) format(PlayerInfo[extraid][pPollKey2], 12, "Invalid Key");
if(isnull(PlayerInfo[extraid][pPollKey3])) format(PlayerInfo[extraid][pPollKey3], 12, "Invalid Key");
cache_get_value_name_int(row, "FurnitureSlots", PlayerInfo[extraid][pFurnitureSlots]);
cache_get_value_name(row, "DedicatedDaymarker", PlayerInfo[extraid][pDedicatedDaymarker]);
cache_get_value_name(row, "DedicatedTimestamp", PlayerInfo[extraid][pDedicatedTimestamp]);
cache_get_value_name_int(row, "DedicatedHours", PlayerInfo[extraid][pDedicatedHours]);
cache_get_value_name_int(row, "WalkStyle", PlayerInfo[extraid][pWalkStyle]);
if(PlayerInfo[extraid][pWalkStyle]) SetPlayerWalkingStyle(extraid, PlayerInfo[extraid][pWalkStyle]);
/*for(new i = 0; i < MAX_POLLS; i++)
{
format(szField, sizeof(szField), "HasVoted%d", i);
PlayerInfo[extraid][pGuns][i] = cache_get_value_name_int(row, szField);
}*/
// Jingles' Drug System:
//for(new d; d != sizeof(Drugs); ++d) PlayerInfo[extraid][pDrugs][d] = cache_get_value_name_int(row, GetDrugName(d));
//for(new d; d != sizeof(szIngredients); ++d) PlayerInfo[extraid][p_iIngredient][d] = cache_get_value_name_int(row, DS_Ingredients_GetSQLName(d));
/*szMiscArray[0] = 0;
for(new d; d != sizeof(Drugs); ++d)
{
format(szMiscArray, sizeof(szMiscArray), "Prison%s", GetDrugName(d));
PlayerInfo[extraid][p_iPrisonDrug][d] = cache_get_value_name_int(row, szMiscArray);
} old */
/*cache_get_value_name(row, "PrisonDrugs", szResult);
sscanf(szResult, "p<|>e", PlayerInfo[extraid][p_iPrisonDrug]);*/
/*cache_get_value_name(row, "DrugQuality", szResult);
sscanf(szResult, "p<|>e", PlayerInfo[extraid][p_iDrugQuality]);*/
// Account settings:
/*cache_get_value_name(row, "ToggledChats", szResult);
sscanf(szResult, "p<|>e", PlayerInfo[extraid][pToggledChats]);*/
for(new c = 0; c < MAX_CHATSETS; c++) {
format(szMiscArray, sizeof(szMiscArray), "ChatTog%d", c);
cache_get_value_name_int(row, szMiscArray, PlayerInfo[extraid][pToggledChats][c]);
}
cache_get_value_name_int(row, "FlagCredits", PlayerInfo[extraid][pFlagCredits]);
cache_get_value_name_int(row, "FlagClaimed", PlayerInfo[extraid][pFlagClaimed]);
/*cache_get_value_name(row, "ChatboxSettings", szResult);
sscanf(szResult, "p<|>e", PlayerInfo[extraid][pChatbox]);*/
if(PlayerInfo[extraid][pCredits] > 0)
{
new szLog[128];
format(szLog, sizeof(szLog), "[LOGIN] [User: %s(%i)] [IP: %s] [Credits: %s]", GetPlayerNameEx(extraid), PlayerInfo[extraid][pId], GetPlayerIpEx(extraid), number_format(PlayerInfo[extraid][pCredits]));
Log("logs/logincredits.log", szLog), print(szLog);
}
GetPartnerName(extraid);
g_mysql_LoadPVehicles(extraid);
LoadPlayerNonRPPoints(extraid);
g_mysql_LoadPlayerToys(extraid);
g_mysql_LoadFIFInfo(extraid);
SetPVarInt(extraid, "pSQLID", PlayerInfo[extraid][pId]);
//g_mysql_LoadPVehiclePositions(extraid);
OnPlayerLoad(extraid);
break;
}
}
return 1;
}
case SENDDATA_THREAD:
{
if(GetPVarType(extraid, "RestartKick")) {
gPlayerLogged{extraid} = 0;
GameTextForPlayer(extraid, "Scheduled Maintenance...", 5000, 5);
SendClientMessage(extraid, COLOR_LIGHTBLUE, "* The server will be going down for Scheduled Maintenance. A brief period of downtime will follow.");
SendClientMessage(extraid, COLOR_GRAD2, "We will be going down to do some maintenance on the server/script, we will be back online shortly.");
SetTimerEx("KickEx", 1000, 0, "i", extraid);
foreach(extraid: Player) if(gPlayerLogged{extraid}) {
SetPVarInt(extraid, "RestartKick", 1);
return OnPlayerStatsUpdate(extraid);
}
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Account saving finished!", 1);
//g_mysql_DumpAccounts();
SetTimer("FinishMaintenance", 1500, false);
}
if(GetPVarType(extraid, "AccountSaving") && (GetPVarInt(extraid, "AccountSaved") == 0)) {
SetPVarInt(extraid, "AccountSaved", 1);
foreach(new i: Player)
{
if(gPlayerLogged{i} && (GetPVarInt(i, "AccountSaved") == 0))
{
SetPVarInt(i, "AccountSaving", 1);
OnPlayerStatsUpdate(i);
}
}
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Account saving finished!", 2);
print("Account Saving Complete");
foreach(new i: Player)
{
DeletePVar(i, "AccountSaved");
DeletePVar(i, "AccountSaving");
}
//g_mysql_DumpAccounts();
}
return 1;
}
case AUTH_THREAD:
{
new name[24];
for(new i;i < rows;i++)
{
cache_get_value_name(i, "Username", name, MAX_PLAYER_NAME);
if(strcmp(name, GetPlayerNameExt(extraid), true) == 0)
{
HideNoticeGUIFrame(extraid);
SafeLogin(extraid, 1);
return 1;
}
else
{
return 1;
}
}
HideNoticeGUIFrame(extraid);
SafeLogin(extraid, 2);
return 1;
}
case LOGIN_THREAD:
{
for(new i;i < rows;i++)
{
CheckAdminWhitelist(extraid);
new
szPass[129],
szResult[129],
szBuffer[129],
salt[11];
cache_get_value_name(i, "Username", szResult, MAX_PLAYER_NAME);
if(strcmp(szResult, GetPlayerNameExt(extraid), true) != 0)
{
//g_mysql_AccountAuthCheck(extraid);
return 1;
}
cache_get_value_name(i, "Key", szResult, 129);
cache_get_value_name(i, "Salt", salt, 11);
GetPVarString(extraid, "PassAuth", szBuffer, sizeof(szBuffer));
if(!isnull(salt)) strcat(szBuffer, salt);
WP_Hash(szPass, sizeof(szPass), szBuffer);
/*if(cache_get_value_name_int(i, "Online")) {
SendClientMessage(extraid, COLOR_RED, "SERVER: This account has already logged in.");
SetTimerEx("KickEx", 1000, 0, "i", extraid);
return 1;
}*/
if((isnull(szPass)) || (isnull(szResult)) || (strcmp(szPass, szResult) != 0)) {
// Invalid Password - Try Again!
ShowMainMenuDialog(extraid, 3);
HideNoticeGUIFrame(extraid);
if(++gPlayerLogTries[extraid] == 2) {
SendClientMessage(extraid, COLOR_RED, "SERVER: Wrong password, you have been kicked out automatically.");
SetTimerEx("KickEx", 1000, 0, "i", extraid);
}
return 1;
}
if(PassComplexCheck && CheckPasswordComplexity(szBuffer) != 1) ShowLoginDialogs(extraid, 0);
break;
}
GetPVarString(extraid, "PassAuth", PlayerInfo[extraid][pLastPass], 65);
DeletePVar(extraid, "PassAuth");
HideNoticeGUIFrame(extraid);
g_mysql_LoadAccount(extraid);
return 1;
}
case REGISTER_THREAD:
{
if(IsPlayerConnected(extraid))
{
AdvanceTutorial(extraid);
g_mysql_AccountLoginCheck(extraid);
format(szMiscArray, sizeof(szMiscArray), "WARNING: %s (ID: %d) has registered from %s", GetPlayerNameEx(extraid), extraid, GetPlayerCountry(extraid));
ABroadCast(COLOR_LIGHTRED, szMiscArray, 2);
TotalRegister++;
}
}
case LOADPTOYS_THREAD:
{
if(IsPlayerConnected(extraid))
{
new i = 0;
while( i < rows)
{
if(i >= MAX_PLAYERTOYS)
break;
//new szResult[32];
cache_get_value_name_int(i, "id", PlayerToyInfo[extraid][i][ptID]);
cache_get_value_name_int(i, "modelid", PlayerToyInfo[extraid][i][ptModelID]);
if(PlayerToyInfo[extraid][i][ptModelID] != 0)
{
cache_get_value_name_int(i, "bone", PlayerToyInfo[extraid][i][ptBone]);
if(PlayerToyInfo[extraid][i][ptBone] > 18 || PlayerToyInfo[extraid][i][ptBone] < 1) PlayerToyInfo[extraid][i][ptBone] = 1;
cache_get_value_name_int(i, "tradable", PlayerToyInfo[extraid][i][ptTradable]);
cache_get_value_name_float(i, "posx", PlayerToyInfo[extraid][i][ptPosX]);
cache_get_value_name_float(i, "posy", PlayerToyInfo[extraid][i][ptPosY]);
cache_get_value_name_float(i, "posz", PlayerToyInfo[extraid][i][ptPosZ]);
cache_get_value_name_float(i, "rotx", PlayerToyInfo[extraid][i][ptRotX]);
cache_get_value_name_float(i, "roty", PlayerToyInfo[extraid][i][ptRotY]);
cache_get_value_name_float(i, "rotz", PlayerToyInfo[extraid][i][ptRotZ]);
cache_get_value_name_float(i, "scalex", PlayerToyInfo[extraid][i][ptScaleX]);
cache_get_value_name_float(i, "scaley", PlayerToyInfo[extraid][i][ptScaleY]);
cache_get_value_name_float(i, "scalez", PlayerToyInfo[extraid][i][ptScaleZ]);
cache_get_value_name_int(i, "special", PlayerToyInfo[extraid][i][ptSpecial]);
cache_get_value_name_int(i, "autoattach", PlayerToyInfo[extraid][i][ptAutoAttach]);
if(PlayerToyInfo[extraid][i][ptAutoAttach] == -1 || PlayerToyInfo[extraid][i][ptAutoAttach] == GetPlayerSkin(extraid)) AttachToy(extraid, i, 0);
format(szMiscArray, sizeof(szMiscArray), "[TOYSLOAD] [User: %s(%i)] [Toy Model ID: %d] [Toy ID]", GetPlayerNameEx(extraid), PlayerInfo[extraid][pId], PlayerToyInfo[extraid][i][ptModelID], PlayerToyInfo[extraid][i][ptID]);
Log("logs/toydebug.log", szMiscArray);
}
else
{
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "DELETE FROM `toys` WHERE `id` = '%d'", PlayerToyInfo[extraid][i][ptID]);
mysql_tquery(MainPipeline, szMiscArray, "OnQueryFinish", "i", SENDDATA_THREAD);
printf("Deleting Toy ID %d for Player %s (%i)", PlayerToyInfo[extraid][i][ptID], GetPlayerNameEx(extraid), GetPlayerSQLId(extraid));
}
i++;
}
}
}
case LOADPVEHICLE_THREAD:
{
if(IsPlayerConnected(extraid))
{
new i = 0;
while(i < rows)
{
if(i >= MAX_PLAYERVEHICLES)
break;
//new szResult[32];
cache_get_value_name_int(i, "pvModelId", PlayerVehicleInfo[extraid][i][pvModelId]);
cache_get_value_name_int(i, "id", PlayerVehicleInfo[extraid][i][pvSlotId]);
if(PlayerVehicleInfo[extraid][i][pvModelId] != 0)
{
cache_get_value_name_float(i, "pvPosX", PlayerVehicleInfo[extraid][i][pvPosX]);
cache_get_value_name_float(i, "pvPosY", PlayerVehicleInfo[extraid][i][pvPosY]);
cache_get_value_name_float(i, "pvPosZ", PlayerVehicleInfo[extraid][i][pvPosZ]);
cache_get_value_name_float(i, "pvPosAngle", PlayerVehicleInfo[extraid][i][pvPosAngle]);
cache_get_value_name_int(i, "pvLock", PlayerVehicleInfo[extraid][i][pvLock]);
cache_get_value_name_int(i, "pvLocked", PlayerVehicleInfo[extraid][i][pvLocked]);
cache_get_value_name_int(i, "pvPaintJob", PlayerVehicleInfo[extraid][i][pvPaintJob]);
cache_get_value_name_int(i, "pvColor1", PlayerVehicleInfo[extraid][i][pvColor1]);
cache_get_value_name_int(i, "pvColor2", PlayerVehicleInfo[extraid][i][pvColor2]);
cache_get_value_name_int(i, "pvPrice", PlayerVehicleInfo[extraid][i][pvPrice]);
cache_get_value_name_int(i, "pvTicket", PlayerVehicleInfo[extraid][i][pvTicket]);
cache_get_value_name_int(i, "pvRestricted", PlayerVehicleInfo[extraid][i][pvRestricted]);
cache_get_value_name_int(i, "pvWeapon0", PlayerVehicleInfo[extraid][i][pvWeapons][0]);
cache_get_value_name_int(i, "pvWeapon1", PlayerVehicleInfo[extraid][i][pvWeapons][1]);
cache_get_value_name_int(i, "pvWeapon2", PlayerVehicleInfo[extraid][i][pvWeapons][2]);
cache_get_value_name_int(i, "pvWepUpgrade", PlayerVehicleInfo[extraid][i][pvWepUpgrade]);
cache_get_value_name_float(i, "pvFuel", PlayerVehicleInfo[extraid][i][pvFuel]);
cache_get_value_name_int(i, "pvImpound", PlayerVehicleInfo[extraid][i][pvImpounded]);
cache_get_value_name(i, "pvPlate", PlayerVehicleInfo[extraid][i][pvPlate]);
cache_get_value_name_int(i, "pvVW", PlayerVehicleInfo[extraid][i][pvVW]);
cache_get_value_name_int(i, "pvInt", PlayerVehicleInfo[extraid][i][pvInt]);
for(new m = 0; m < MAX_MODS; m++)
{
format(szMiscArray, sizeof(szMiscArray), "pvMod%d", m);
cache_get_value_name_int(i, szMiscArray, PlayerVehicleInfo[extraid][i][pvMods][m]);
}
/*for(new m = 0; m < sizeof(Drugs); m++)
{
PlayerVehicleInfo[extraid][i][pvDrugs][m] = cache_get_value_name_int(i, GetDrugName(m));
}*/
cache_get_value_name_int(i, "pvCrashFlag", PlayerVehicleInfo[extraid][i][pvCrashFlag]);
cache_get_value_name_int(i, "pvCrashVW", PlayerVehicleInfo[extraid][i][pvCrashVW]);
cache_get_value_name_float(i, "pvCrashX", PlayerVehicleInfo[extraid][i][pvCrashX]);
cache_get_value_name_float(i, "pvCrashY", PlayerVehicleInfo[extraid][i][pvCrashY]);
cache_get_value_name_float(i, "pvCrashZ", PlayerVehicleInfo[extraid][i][pvCrashZ]);
cache_get_value_name_float(i, "pvCrashAngle", PlayerVehicleInfo[extraid][i][pvCrashAngle]);
cache_get_value_name_int(i, "pvAlarm", PlayerVehicleInfo[extraid][i][pvAlarm]);
cache_get_value_name(i, "pvLastLockPickedBy", PlayerVehicleInfo[extraid][i][pvLastLockPickedBy]);
cache_get_value_name_int(i, "pvLocksLeft", PlayerVehicleInfo[extraid][i][pvLocksLeft]);
cache_get_value_name_float(i, "pvHealth", PlayerVehicleInfo[extraid][i][pvHealth]);
format(szMiscArray, sizeof(szMiscArray), "[VEHICLELOAD] [User: %s(%i)] [Model: %d] [Vehicle ID: %d]", GetPlayerNameEx(extraid), PlayerInfo[extraid][pId], PlayerVehicleInfo[extraid][i][pvModelId], PlayerVehicleInfo[extraid][i][pvSlotId]);
Log("logs/vehicledebug.log", szMiscArray);
}
else
{
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "DELETE FROM `vehicles` WHERE `id` = '%d'", PlayerVehicleInfo[extraid][i][pvSlotId]);
mysql_tquery(MainPipeline, szMiscArray, "OnQueryFinish", "ii", SENDDATA_THREAD, extraid);
}
i++;
}
}
}
case LOADPVEHPOS_THREAD:
{
if(IsPlayerConnected(extraid))
{
new bool:bVehRestore;
for(new i;i < rows;i++)
{
bVehRestore = true;
for(new v; v < MAX_PLAYERVEHICLES; v++)
{
new tmpVehModelId, Float:tmpVehArray[4];
format(szMiscArray, sizeof(szMiscArray), "pv%dModelId", v);
cache_get_value_name_int(i, szMiscArray, tmpVehModelId);
format(szMiscArray, sizeof(szMiscArray), "pv%dPosX", v);
cache_get_value_name_float(i, szMiscArray, tmpVehArray[0]);
format(szMiscArray, sizeof(szMiscArray), "pv%dPosY", v);
cache_get_value_name_float(i, szMiscArray, tmpVehArray[1]);
format(szMiscArray, sizeof(szMiscArray), "pv%dPosZ", v);
cache_get_value_name_float(i, szMiscArray, tmpVehArray[2]);
format(szMiscArray, sizeof(szMiscArray), "pv%dPosAngle", v);
cache_get_value_name_float(i, szMiscArray, tmpVehArray[3]);
if(tmpVehModelId >= 400)
{
printf("Stored %d Vehicle Slot", v);
format(szMiscArray, sizeof(szMiscArray), "tmpVeh%dModelId", v);
SetPVarInt(extraid, szMiscArray, tmpVehModelId);
format(szMiscArray, sizeof(szMiscArray), "tmpVeh%dPosX", v);
SetPVarFloat(extraid, szMiscArray, tmpVehArray[0]);
format(szMiscArray, sizeof(szMiscArray), "tmpVeh%dPosY", v);
SetPVarFloat(extraid, szMiscArray, tmpVehArray[1]);
format(szMiscArray, sizeof(szMiscArray), "tmpVeh%dPosZ", v);
SetPVarFloat(extraid, szMiscArray, tmpVehArray[2]);
format(szMiscArray, sizeof(szMiscArray), "tmpVeh%dAngle", v);
SetPVarFloat(extraid, szMiscArray, tmpVehArray[3]);
}
}
break;
}
if(bVehRestore == true) {
// person Vehicle Position Restore Granted, Now Purge them from the Table.
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "DELETE FROM `pvehpositions` WHERE `id`='%d'", PlayerInfo[extraid][pId]);
mysql_tquery(MainPipeline, szMiscArray, "OnQueryFinish", "ii", SENDDATA_THREAD, extraid);
}
OnPlayerLoad(extraid);
}
}
case IPBAN_THREAD:
{
if(rows > 0)
{
SendClientMessage(extraid, COLOR_RED, "Your IP is banned! You can appeal this at http://www.ng-gaming.net/forums");
SetTimerEx("KickEx", 1000, 0, "i", extraid);
}
else
{
g_mysql_AccountAuthCheck(extraid);
}
}
case MAIN_REFERRAL_THREAD:
{
new newrows, newfields;
cache_get_row_count(newrows);
cache_get_field_count(newfields);
if(newrows == 0)
{
format(szMiscArray, sizeof(szMiscArray), "Nobody");
strmid(PlayerInfo[extraid][pReferredBy], szMiscArray, 0, strlen(szMiscArray), MAX_PLAYER_NAME);
ShowPlayerDialogEx(extraid, DIALOG_REGISTER_REFERRED, DIALOG_STYLE_INPUT, "{FF0000}Error - Invalid Player", "There is no player registered to our server with such name.\nPlease enter the full name of the player who referred you.\nExample: FirstName_LastName", "Enter", "Cancel");
}
else {
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "SELECT `IP` FROM `accounts` WHERE `Username` = '%s'", PlayerInfo[extraid][pReferredBy]);
mysql_tquery(MainPipeline, szMiscArray, "ReferralSecurity", "i", extraid);
}
}
case REWARD_REFERRAL_THREAD:
{
new newrows, newfields;
cache_get_row_count(newrows);
cache_get_field_count(newfields);
if(newrows != 0)
{
SendClientMessageEx(extraid, COLOR_YELLOW, "The player who referred you does not have a account on our server anymore, therefore he has not received any credits");
}
}
case OFFLINE_FAMED_THREAD:
{
new newrows, newfields, szQuery[128], string[128], szName[MAX_PLAYER_NAME];
cache_get_row_count(newrows);
cache_get_field_count(newfields);
if(newrows == 0)
{
SendClientMessageEx(extraid, COLOR_RED, "Error - This account does not exist.");
}
else {
new
ilevel = GetPVarInt(extraid, "Offline_Famed");
GetPVarString(extraid, "Offline_Name", szName, MAX_PLAYER_NAME);
mysql_format(MainPipeline, szQuery, sizeof(szQuery), "UPDATE `accounts` SET `Famed` = %d WHERE `Username` = '%s'", ilevel, szName);
mysql_tquery(MainPipeline, szQuery, "OnQueryFinish", "i", SENDDATA_THREAD);
format(string, sizeof(string), "AdmCmd: %s has offline set %s to a level %d famed", GetPlayerNameEx(extraid), szName, ilevel);
SendFamedMessage(COLOR_LIGHTRED, string);
ABroadCast(COLOR_LIGHTRED, string, 2);
Log("logs/setfamed.log", string);
DeletePVar(extraid, "Offline_Famed");
DeletePVar(extraid, "Offline_Name");
}
}
case BUG_LIST_THREAD:
{
if(rows == 0) return 1;
new szResult[MAX_PLAYER_NAME];
for(new i; i < rows; i++)
{
cache_get_value_name(i, "Username", szResult); SendClientMessageEx(extraid, COLOR_GRAD2, szResult);
}
}
case ADMINWHITELIST_THREAD:
{
new string[128];
for(new i;i < rows;i++)
{
new secureip[16], szResult[32], alevel, wdlevel;
cache_get_value_name(i, "AdminLevel", szResult); alevel = strval(szResult);
cache_get_value_name(i, "Watchdog", szResult); wdlevel = strval(szResult);
cache_get_value_name(i, "SecureIP", secureip, 16);
if((alevel > 1 || wdlevel > 2) && betaserver == 0) // Beta server check ( beta server does not require whitelisting)
{
if(isnull(secureip) || strcmp(GetPlayerIpEx(extraid), secureip, false, strlen(secureip)) != 0)
{
SendClientMessage(extraid, COLOR_WHITE, "SERVER: Your IP does not match the whitelisted IP of that account. Contact a Senior+ Admin to whitelist your current IP.");
foreach(new x: Player)
{
{
if(PlayerInfo[x][pAdmin] < 1337 && (PlayerInfo[x][pAdmin] >= 2 || PlayerInfo[x][pWatchdog] >= 2))
{
format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s has been auto kicked for logging in with a non-whitelisted IP.", GetPlayerNameEx(extraid));
SendClientMessageEx(x, COLOR_YELLOW, string);
}
else if(PlayerInfo[x][pAdmin] >= 1337)
{
if(alevel >= 1337) // If the person being checked for the whitelist is a HA+
{
format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s (IP: %s) has been auto kicked for logging in with a non-whitelisted IP.", GetPlayerNameEx(extraid), GetPlayerIpEx(extraid));
SendClientMessageEx(x, COLOR_YELLOW, string);
}
else
{
format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s has been auto kicked for logging in with a non-whitelisted IP.", GetPlayerNameEx(extraid));
SendClientMessageEx(x, COLOR_YELLOW, string);
}
}
}
}
SetTimerEx("KickEx", 1000, 0, "i", extraid);
format(string, sizeof(string), "%s failed whitelist auth. Secure IP: %s | Connected IP: %s", GetPlayerNameEx(extraid), secureip, GetPlayerIpEx(extraid));
Log("logs/whitelist.log", string);
return true;
}
format(string, sizeof(string), "%s passed whitelist auth. Secure IP: %s | Connected IP: %s", GetPlayerNameEx(extraid), secureip, GetPlayerIpEx(extraid));
Log("logs/whitelist.log", string);
}
}
return true;
}
case LOADGIFTBOX_THREAD:
{
for(new i; i < rows; i++)
{
new szResult[32], arraystring[128];
for(new array = 0; array < 4; array++)
{
format(arraystring, sizeof(arraystring), "dgMoney%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgMoney][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgRimKit%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgRimKit][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgFirework%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgFirework][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgGVIP%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgGVIP][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgSVIP%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgSVIP][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgGVIPEx%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgGVIPEx][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgSVIPEx%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgSVIPEx][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgCarSlot%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgCarSlot][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgToySlot%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgToySlot][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgArmor%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgArmor][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgFirstaid%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgFirstaid][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgDDFlag%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgDDFlag][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgGateFlag%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgGateFlag][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgCredits%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgCredits][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgPriorityAd%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgPriorityAd][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgHealthNArmor%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgHealthNArmor][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgGiftReset%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgGiftReset][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgMaterial%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgMaterial][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgWarning%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgWarning][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgPot%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgPot][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgCrack%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgCrack][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgPaintballToken%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgPaintballToken][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgVIPToken%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgVIPToken][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgRespectPoint%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgRespectPoint][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgCarVoucher%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgCarVoucher][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgBuddyInvite%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgBuddyInvite][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgLaser%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgLaser][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgCustomToy%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgCustomToy][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgAdmuteReset%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgAdmuteReset][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgNewbieMuteReset%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgNewbieMuteReset][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgRestrictedCarVoucher%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgRestrictedCarVoucher][array] = strval(szResult);
format(arraystring, sizeof(arraystring), "dgPlatinumVIPVoucher%d", array);
cache_get_value_name(i, arraystring, szResult); dgVar[dgPlatinumVIPVoucher][array] = strval(szResult);
}
break;
}
print("[Dynamic Giftbox] Successfully loaded the dynamic giftbox.");
}
case LOADPNONRPOINTS_THREAD: // I have no idea if this will work lulz (it's 9:30am)
{
// Is the player still connected by the time the thread is called?
if(IsPlayerConnected(extraid))
{
new count = 0;
// Loop through all the rows that were called within that query
for(new i = 0; i < rows; i++)
{
new szResult[32];
cache_get_value_name(i, "active", szResult);
// Is the row active?
if(strval(szResult) == 1)
{
cache_get_value_name(i, "point", szResult);
// Add up all the points
count = count += strval(szResult);
}
}
// We're done with our loop, let's get our count and store it to a player variable
PlayerInfo[extraid][pNonRPMeter] = count;
}
}
case OFFLINE_DEDICATED_THREAD:
{
new iRows, iFields, szQuery[128], string[128], szName[MAX_PLAYER_NAME];
cache_get_row_count(iRows);
cache_get_field_count(iFields);
if(iRows)
{
new
ilevel = GetPVarInt(extraid, "Offline_Dedicated");
GetPVarString(extraid, "Offline_DName", szName, MAX_PLAYER_NAME);
mysql_format(MainPipeline, szQuery, sizeof(szQuery), "UPDATE `accounts` SET `pDedicatedPlayer` = %d WHERE `Username` = '%s'", ilevel, szName);
mysql_tquery(MainPipeline, szQuery, "OnQueryFinish", "i", SENDDATA_THREAD);
format(string, sizeof(string), "AdmCmd: %s has offline set %s to a level %d Dedicated", GetPlayerNameEx(extraid), szName, ilevel);
SendDedicatedMessage(COLOR_LIGHTRED, string);
ABroadCast(COLOR_LIGHTRED, string, 2);
Log("logs/dedicated.log", string);
DeletePVar(extraid, "Offline_Dedicated");
DeletePVar(extraid, "Offline_DName");
}
else
{
SendClientMessageEx(extraid, COLOR_RED, "Error - This account does not exist.");
}
}
case LOADFIF_THREAD:
{
if(IsPlayerConnected(extraid))
{
if(!rows)
{
new szQuery[128];
mysql_format(MainPipeline, szQuery,sizeof(szQuery),"INSERT INTO `fallintofun` SET `player` = %d", PlayerInfo[extraid][pId]);
mysql_tquery(MainPipeline, szQuery, "OnQueryFinish", "i", SENDDATA_THREAD);
return 1;
}
new szResult[128];
cache_get_value_name(0, "FIFHours", szResult);
FIFInfo[extraid][FIFHours] = strval(szResult);
cache_get_value_name(0, "FIFChances", szResult);
FIFInfo[extraid][FIFChances] = strval(szResult);
}
}
}
return 1;
}
public OnQueryError(errorid, const error[], const callback[], const query[], MySQL:handle) {
printf("[MySQL] Query Error - (ErrorID: %d)", errorid);
print("[MySQL] Check mysql_log.txt to review the query that threw the error.");
SQL_Log(query, error);
if(errorid == 2013 || errorid == 2014 || errorid == 2006 || errorid == 2027 || errorid == 2055) {
print("[MySQL] Connection Error Detected in Threaded Query");
//mysql_query(query, resultid, extraid);
format(szMiscArray, sizeof(szMiscArray), "MYSQL [%d]: %d, %s, in callback: %s.", iErrorID, errorid, error, callback);
}
else format(szMiscArray, sizeof(szMiscArray), "MYSQL (THREADED) [%d]: %d, %s, in callback: %s.", iErrorID, errorid, error, callback);
//SendDiscordMessage(3, szMiscArray);
format(szMiscArray, sizeof(szMiscArray), " Query: %s", query);
//SendDiscordMessage(3, szMiscArray);
iErrorID++;
}
//--------------------------------[ CUSTOM STOCK FUNCTIONS ]---------------------------
// g_mysql_ReturnEscaped(string unEscapedString)
// Description: Takes a unescaped string and returns an escaped one.
stock g_mysql_ReturnEscaped(unEscapedString[])
{
new EscapedString[256];
mysql_escape_string(unEscapedString, EscapedString);
return EscapedString;
}
// g_mysql_AccountLoginCheck(playerid)
stock g_mysql_AccountLoginCheck(playerid)
{
ShowNoticeGUIFrame(playerid, 2);
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT `Username`, `Key`, `Salt`, `Online` FROM `accounts` WHERE `Username` = '%s'", GetPlayerNameExt(playerid));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "iii", LOGIN_THREAD, playerid, g_arrQueryHandle{playerid});
return 1;
}
// g_mysql_AccountAuthCheck(playerid)
g_mysql_AccountAuthCheck(playerid)
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT `Username` FROM `accounts` WHERE `Username` = '%s'", GetPlayerNameExt(playerid));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "iii", AUTH_THREAD, playerid, g_arrQueryHandle{playerid});
// Reset the GUI
//SetPlayerJoinCamera(playerid);
ClearChatbox(playerid);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
// g_mysql_AccountOnline(int playerid, int stateid)
stock g_mysql_AccountOnline(playerid, stateid)
{
new iTimeStamp = gettime();
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "UPDATE `accounts` SET `Online`=%d, `LastLogin` = NOW() WHERE `id` = %d", stateid, GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, szMiscArray, "OnQueryFinish", "ii", SENDDATA_THREAD, playerid);
if(PlayerInfo[playerid][pPhousekey] != INVALID_HOUSE_ID && HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwnerID] == GetPlayerSQLId(playerid))
HouseInfo[PlayerInfo[playerid][pPhousekey]][hLastLogin] = iTimeStamp, SaveHouse(PlayerInfo[playerid][pPhousekey]);
if(PlayerInfo[playerid][pPhousekey2] != INVALID_HOUSE_ID && HouseInfo[PlayerInfo[playerid][pPhousekey2]][hOwnerID] == GetPlayerSQLId(playerid))
HouseInfo[PlayerInfo[playerid][pPhousekey2]][hLastLogin] = iTimeStamp, SaveHouse(PlayerInfo[playerid][pPhousekey2]);
if(PlayerInfo[playerid][pPhousekey3] != INVALID_HOUSE_ID && HouseInfo[PlayerInfo[playerid][pPhousekey3]][hOwnerID] == GetPlayerSQLId(playerid))
HouseInfo[PlayerInfo[playerid][pPhousekey3]][hLastLogin] = iTimeStamp, SaveHouse(PlayerInfo[playerid][pPhousekey3]);
for(new i; i != MAX_DDOORS; i++)
{
if(DDoorsInfo[i][ddType] == 1 && DDoorsInfo[i][ddOwner] == GetPlayerSQLId(playerid)) DDoorsInfo[i][ddLastLogin] = gettime(), SaveDynamicDoor(i);
}
return 1;
}
stock g_mysql_AccountOnlineReset()
{
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "UPDATE `accounts` SET `Online` = 0 WHERE `Online` = %d", servernumber);
mysql_tquery(MainPipeline, szMiscArray, "OnQueryFinish", "i", SENDDATA_THREAD);
return 1;
}
// g_mysql_CreateAccount(int playerid, string accountPassword[])
// Description: Creates a new account in the database.
stock g_mysql_CreateAccount(playerid, accountPassword[])
{
new string[300];
new passbuffer[129];
new salt[11];
randomString(salt);
format(string, sizeof(string), "%s%s", accountPassword, salt);
WP_Hash(passbuffer, sizeof(passbuffer), string);
mysql_format(MainPipeline, string, sizeof(string), "INSERT INTO `accounts` (`RegiDate`, `LastLogin`, `Username`, `Key`, `Salt`) VALUES (NOW(), NOW(), '%s', '%s', '%s')", GetPlayerNameExt(playerid), passbuffer, salt);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "iii", REGISTER_THREAD, playerid, g_arrQueryHandle{playerid});
return 1;
}
stock g_mysql_LoadPVehicles(playerid)
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT * FROM `vehicles` WHERE `sqlID` = %d", PlayerInfo[playerid][pId]);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "iii", LOADPVEHICLE_THREAD, playerid, g_arrQueryHandle{playerid});
return 1;
}
// g_mysql_LoadPVehiclePositions(playerid)
// Description: Loads vehicle positions if person has timed out.
stock g_mysql_LoadPVehiclePositions(playerid)
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT * FROM `pvehpositions` WHERE `id` = %d", PlayerInfo[playerid][pId]);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "iii", LOADPVEHPOS_THREAD, playerid, g_arrQueryHandle{playerid});
return 1;
}
// g_mysql_LoadPlayerToys(playerid)
// Description: Load the player toys
stock g_mysql_LoadPlayerToys(playerid)
{
new szQuery[128];
mysql_format(MainPipeline, szQuery, sizeof(szQuery), "SELECT * FROM `toys` WHERE `player` = %d", PlayerInfo[playerid][pId]);
mysql_tquery(MainPipeline, szQuery, "OnQueryFinish", "iii", LOADPTOYS_THREAD, playerid, g_arrQueryHandle{playerid});
return 1;
}
// g_mysql_LoadAccount(playerid)
// Description: Loads an account from database into memory.
stock g_mysql_LoadAccount(playerid)
{
ShowNoticeGUIFrame(playerid, 3);
new string[164];
mysql_format(MainPipeline, string, sizeof(string), "SELECT * FROM `accounts` WHERE `Username` = '%s'", GetPlayerNameExt(playerid));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "iii", LOADUSERDATA_THREAD, playerid, g_arrQueryHandle{playerid});
return 1;
}
// g_mysql_RemoveDumpFile(sqlid)
// Description: Removes a account's dump file. Helpful upon logoff.
stock g_mysql_RemoveDumpFile(sqlid)
{
new pwnfile[128];
format(pwnfile, sizeof(pwnfile), "/accdump/%d.dump", sqlid);
if(fexist(pwnfile))
{
fremove(pwnfile);
return 1;
}
return 0;
}
GivePlayerCredits(Player, Amount, Shop, option = 0)
{
new szQuery[128];
if(option == 0)
{
PlayerInfo[Player][pCredits] += Amount;
}
else if(option == 1)
{
PlayerInfo[Player][pCredits] -= Amount;
}
mysql_format(MainPipeline, szQuery, sizeof(szQuery), "UPDATE `accounts` SET `Credits`=%d WHERE `id` = %d", PlayerInfo[Player][pCredits], GetPlayerSQLId(Player));
mysql_tquery(MainPipeline, szQuery, "OnQueryFinish", "ii", SENDDATA_THREAD, Player);
print(szQuery);
if(Shop == 1)
{
if(Amount < 0) Amount = Amount*-1;
PlayerInfo[Player][pTotalCredits] += Amount;
}
mysql_format(MainPipeline, szQuery, sizeof(szQuery), "UPDATE `accounts` SET `TotalCredits`=%d WHERE `id` = %d", PlayerInfo[Player][pTotalCredits], GetPlayerSQLId(Player));
mysql_tquery(MainPipeline, szQuery, "OnQueryFinish", "ii", SENDDATA_THREAD, Player);
print(szQuery);
}
// native g_mysql_SaveToys(int playerid, int slotid)
stock g_mysql_SaveToys(playerid, slotid)
{
new szQuery[2048];
if(PlayerToyInfo[playerid][slotid][ptID] >= 1) // Making sure the player actually has a toy so we won't save a empty row
{
//printf("%s (%i) saving toy %i...", GetPlayerNameEx(playerid), playerid, slotid);
mysql_format(MainPipeline, szQuery, sizeof(szQuery), "UPDATE `toys` SET `modelid` = '%d', `bone` = '%d', `posx` = '%f', `posy` = '%f', `posz` = '%f', `rotx` = '%f', `roty` = '%f', `rotz` = '%f', `scalex` = '%f', `scaley` = '%f', `scalez` = '%f', `tradable` = '%d', `autoattach` = '%d' WHERE `id` = '%d'",
PlayerToyInfo[playerid][slotid][ptModelID],
PlayerToyInfo[playerid][slotid][ptBone],
PlayerToyInfo[playerid][slotid][ptPosX],
PlayerToyInfo[playerid][slotid][ptPosY],
PlayerToyInfo[playerid][slotid][ptPosZ],
PlayerToyInfo[playerid][slotid][ptRotX],
PlayerToyInfo[playerid][slotid][ptRotY],
PlayerToyInfo[playerid][slotid][ptRotZ],
PlayerToyInfo[playerid][slotid][ptScaleX],
PlayerToyInfo[playerid][slotid][ptScaleY],
PlayerToyInfo[playerid][slotid][ptScaleZ],
PlayerToyInfo[playerid][slotid][ptTradable],
PlayerToyInfo[playerid][slotid][ptAutoAttach],
PlayerToyInfo[playerid][slotid][ptID]);
mysql_tquery(MainPipeline, szQuery, "OnQueryFinish", "ii", SENDDATA_THREAD, playerid);
}
}
// native g_mysql_NewToy(int playerid, int slotid)
stock g_mysql_NewToy(playerid, slotid)
{
new szQuery[2048];
//if(PlayerToyInfo[playerid][slotid][ptSpecial] != 1) { PlayerToyInfo[playerid][slotid][ptSpecial] = 0; }
format(szQuery, sizeof(szQuery), "INSERT INTO `toys` (player, modelid, bone, posx, posy, posz, rotx, roty, rotz, scalex, scaley, scalez, tradable, special, autoattach) VALUES ('%d', '%d', '%d', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%d', '%d', '%d')",
PlayerInfo[playerid][pId],
PlayerToyInfo[playerid][slotid][ptModelID],
PlayerToyInfo[playerid][slotid][ptBone],
PlayerToyInfo[playerid][slotid][ptPosX],
PlayerToyInfo[playerid][slotid][ptPosY],
PlayerToyInfo[playerid][slotid][ptPosZ],
PlayerToyInfo[playerid][slotid][ptRotX],
PlayerToyInfo[playerid][slotid][ptRotY],
PlayerToyInfo[playerid][slotid][ptRotZ],
PlayerToyInfo[playerid][slotid][ptScaleX],
PlayerToyInfo[playerid][slotid][ptScaleY],
PlayerToyInfo[playerid][slotid][ptScaleZ],
PlayerToyInfo[playerid][slotid][ptTradable],
PlayerToyInfo[playerid][slotid][ptSpecial],
PlayerToyInfo[playerid][slotid][ptAutoAttach]);
mysql_tquery(MainPipeline, szQuery, "OnQueryCreateToy", "ii", playerid, slotid);
}
// g_mysql_LoadMOTD()
// Description: Loads the MOTDs from the MySQL Database.
stock g_mysql_LoadMOTD()
{
mysql_tquery(MainPipeline, "SELECT * FROM `misc`", "OnQueryFinish", "iii", LOADMOTDDATA_THREAD, INVALID_PLAYER_ID, -1);
}
stock g_mysql_LoadSales()
{
mysql_tquery(MainPipeline, "SELECT * FROM `sales` WHERE `Month` > NOW() - INTERVAL 1 MONTH", "OnQueryFinish", "iii", LOADSALEDATA_THREAD, INVALID_PLAYER_ID, -1);
//mysql_tquery(MainPipeline, "SELECT `TotalToySales`,`TotalCarSales`,`GoldVIPSales`,`SilverVIPSales`,`BronzeVIPSales` FROM `sales` WHERE `Month` > NOW() - INTERVAL 1 MONTH", true, "OnQueryFinish", "iii", LOADSALEDATA_THREAD, INVALID_PLAYER_ID, -1);
}
stock g_mysql_LoadPrices()
{
mysql_tquery(MainPipeline, "SELECT * FROM `shopprices`", "OnQueryFinish", "iii", LOADSHOPDATA_THREAD, INVALID_PLAYER_ID, -1);
}
stock g_mysql_SavePrices()
{
new query[2000];
strins(query, "UPDATE `shopprices` SET ", 0);
for(new p = 0; p < MAX_ITEMS; p++)
{
format(query, sizeof(query), "%s`Price%d` = '%d', ", query, p, ShopItems[p][sItemPrice]);
}
new mString[128];
for(new m; m < MAX_MICROITEMS; m++)
{
format(mString, sizeof(mString), "%s%d", mString, MicroItems[m]);
if(m != MAX_MICROITEMS-1) strcat(mString, "|");
}
mysql_format(MainPipeline, query, sizeof(query), "%s`MicroPrices` = '%s'", query, mString);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
}
stock g_mysql_SaveMOTD()
{
new query[1500];
mysql_format(MainPipeline, query, sizeof(query), "UPDATE `misc` SET ");
mysql_format(MainPipeline, query, sizeof(query), "%s `gMOTD` = '%e',", query, GlobalMOTD);
mysql_format(MainPipeline, query, sizeof(query), "%s `aMOTD` = '%e',", query, AdminMOTD);
mysql_format(MainPipeline, query, sizeof(query), "%s `vMOTD` = '%e',", query, VIPMOTD);
mysql_format(MainPipeline, query, sizeof(query), "%s `cMOTD` = '%e',", query, CAMOTD);
mysql_format(MainPipeline, query, sizeof(query), "%s `pMOTD` = '%e',", query, pMOTD);
mysql_format(MainPipeline, query, sizeof(query), "%s `prisonerMOTD` = '%e',", query, prisonerMOTD[0]);
mysql_format(MainPipeline, query, sizeof(query), "%s `prisonerMOTD2` = '%e',", query, prisonerMOTD[1]);
mysql_format(MainPipeline, query, sizeof(query), "%s `prisonerMOTD3` = '%e',", query, prisonerMOTD[2]);
mysql_format(MainPipeline, query, sizeof(query), "%s `ShopTechPay` = '%.2f',", query, ShopTechPay);
mysql_format(MainPipeline, query, sizeof(query), "%s `GiftCode` = '%e',", query, GiftCode);
mysql_format(MainPipeline, query, sizeof(query), "%s `GiftCodeBypass` = '%d',", query, GiftCodeBypass);
mysql_format(MainPipeline, query, sizeof(query), "%s `TotalCitizens` = '%d',", query, TotalCitizens);
mysql_format(MainPipeline, query, sizeof(query), "%s `TRCitizens` = '%d',", query, TRCitizens);
mysql_format(MainPipeline, query, sizeof(query), "%s `ShopClosed` = '%d',", query, ShopClosed);
mysql_format(MainPipeline, query, sizeof(query), "%s `RimMod` = '%d',", query, RimMod);
mysql_format(MainPipeline, query, sizeof(query), "%s `CarVoucher` = '%d',", query, CarVoucher);
mysql_format(MainPipeline, query, sizeof(query), "%s `PVIPVoucher` = '%d',", query, PVIPVoucher);
mysql_format(MainPipeline, query, sizeof(query), "%s `GarageVW` = '%d',", query, GarageVW);
mysql_format(MainPipeline, query, sizeof(query), "%s `PumpkinStock` = '%d',", query, PumpkinStock);
mysql_format(MainPipeline, query, sizeof(query), "%s `HalloweenShop` = '%d',", query, HalloweenShop);
mysql_format(MainPipeline, query, sizeof(query), "%s `PassComplexCheck` = '%d',", query, PassComplexCheck);
mysql_format(MainPipeline, query, sizeof(query), "%s `GunPrice0` = '%d',", query, GunPrices[0]);
mysql_format(MainPipeline, query, sizeof(query), "%s `GunPrice1` = '%d',", query, GunPrices[1]);
mysql_format(MainPipeline, query, sizeof(query), "%s `GunPrice2` = '%d',", query, GunPrices[2]);
mysql_format(MainPipeline, query, sizeof(query), "%s `GunPrice3` = '%d',", query, GunPrices[3]);
mysql_format(MainPipeline, query, sizeof(query), "%s `GunPrice4` = '%d',", query, GunPrices[4]);
mysql_format(MainPipeline, query, sizeof(query), "%s `GunPrice5` = '%d'", query, GunPrices[5]);
CallLocalFunction("SaveInactiveResourceSettings", "is", sizeof(query), query);
new qryLength = strlen(query);
if(query[qryLength-1] == ',') strdel(query, qryLength-1, qryLength);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
}
// g_mysql_LoadMOTD()
// Description: Loads the Crates from the MySQL Database.
/*stock RemoveBan(Player, Ip[])
{
new string[128];
SetPVarString(Player, "UnbanIP", Ip);
format(string, sizeof(string), "SELECT `ip` FROM `ip_bans` WHERE `ip` = '%s'", Ip);
mysql_tquery(MainPipeline, string, true, "AddingBan", "ii", Player, 2);
return 1;
}*/
stock CheckBanEx(playerid)
{
new string[280];
mysql_format(MainPipeline, string, sizeof(string), "SELECT `IP` FROM `ban` WHERE `IP` = '%s' AND `active` = '1'", GetPlayerIpEx(playerid));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "iii", IPBAN_THREAD, playerid, g_arrQueryHandle{playerid});
return 1;
}
stock AddBan(Admin, Player, Reason[])
{
new string[128];
SetPVarInt(Admin, "BanningPlayer", Player);
SetPVarString(Admin, "BanningReason", Reason);
mysql_format(MainPipeline, string, sizeof(string), "SELECT `ip` FROM `ip_bans` WHERE `ip` = '%s'", GetPlayerIpEx(Player));
mysql_tquery(MainPipeline, string, "AddingBan", "ii", Admin, 1);
return 1;
}
stock SystemBan(Player, Reason[])
{
new string[256];
mysql_format(MainPipeline, string, sizeof(string), "INSERT INTO `ip_bans` (`ip`, `date`, `reason`, `admin`) VALUES ('%s', NOW(), '%e', 'System')", GetPlayerIpEx(Player), Reason);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
return 1;
}
stock MySQLBan(userid,ip[],reason[],status,admin[])
{
new string[256];
mysql_format(MainPipeline, string, sizeof(string), "INSERT INTO `bans` (`user_id`, `ip_address`, `reason`, `date_added`, `status`, `admin`) VALUES ('%d','%s','%e', NOW(), '%d','%e')", userid, ip, reason, status, admin);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
return 1;
}
stock AddCrime(cop, suspect, crime[])
{
new query[256], iAllegiance;
if((0 <= PlayerInfo[cop][pMember] < MAX_GROUPS))
{
iAllegiance = arrGroupData[PlayerInfo[cop][pMember]][g_iAllegiance];
}
else iAllegiance = 1;
mysql_format(MainPipeline, query, sizeof(query), "INSERT INTO `mdc` (`id` ,`time` ,`issuer` ,`crime`, `origin`) VALUES ('%d', NOW(), '%e', '%e', '%d')", GetPlayerSQLId(suspect), GetPlayerNameEx(cop), crime, iAllegiance);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
format(query, sizeof(query), "MDC: %s(%d) added crime %s to %s(%d).", GetPlayerNameEx(cop), GetPlayerSQLId(cop), crime, GetPlayerNameEx(suspect), GetPlayerSQLId(suspect));
Log("logs/crime.log", query);
return 1;
}
stock ClearCrimes(playerid, clearerid = INVALID_PLAYER_ID)
{
new query[220], iAllegiance;
if(clearerid != INVALID_PLAYER_ID && (0 <= PlayerInfo[clearerid][pMember] < MAX_GROUPS))
{
iAllegiance = arrGroupData[PlayerInfo[clearerid][pMember]][g_iAllegiance];
mysql_format(MainPipeline, query, sizeof(query), "UPDATE `mdc` SET `active`= 0 WHERE `id` = %i AND `active` = 1 AND origin = %d", GetPlayerSQLId(playerid), iAllegiance);
}
else {
mysql_format(MainPipeline, query, sizeof(query), "UPDATE `mdc` SET `active`= 0 WHERE `id` = %i AND `active` = 1", GetPlayerSQLId(playerid));
}
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
return 1;
}
stock DisplayCrimes(playerid, suspectid)
{
new query[128], iAllegiance;
if((0 <= PlayerInfo[playerid][pMember] < MAX_GROUPS))
{
iAllegiance = arrGroupData[PlayerInfo[playerid][pMember]][g_iAllegiance];
}
else iAllegiance = 1;
mysql_format(MainPipeline, query, sizeof(query), "SELECT issuer, crime, active FROM `mdc` WHERE `id` = '%d' AND `origin` = '%d' ORDER BY `time` AND `active` DESC LIMIT 12", GetPlayerSQLId(suspectid), iAllegiance);
mysql_tquery(MainPipeline, query, "MDCQueryFinish", "ii", playerid, suspectid);
return 1;
}
stock DisplayReports(playerid, suspectid)
{
new query[812], iAllegiance;
if((0 <= PlayerInfo[playerid][pMember] < MAX_GROUPS))
{
iAllegiance = arrGroupData[PlayerInfo[playerid][pMember]][g_iAllegiance];
}
else iAllegiance = 1;
mysql_format(MainPipeline, query, sizeof(query), "SELECT arrestreports.id, copid, shortreport, datetime, accounts.id, accounts.Username FROM `arrestreports` LEFT JOIN `accounts` ON arrestreports.copid=accounts.id WHERE arrestreports.suspectid=%d AND arrestreports.origin=%d ORDER BY arrestreports.datetime DESC LIMIT 12", GetPlayerSQLId(suspectid), iAllegiance);
mysql_tquery(MainPipeline, query, "MDCReportsQueryFinish", "ii", playerid, suspectid);
return 1;
}
stock DisplayReport(playerid, reportid)
{
new query[812];
mysql_format(MainPipeline, query, sizeof(query), "SELECT arrestreports.id, copid, shortreport, datetime, accounts.id, accounts.Username FROM `arrestreports` LEFT JOIN `accounts` ON arrestreports.copid=accounts.id WHERE arrestreports.id=%d ORDER BY arrestreports.datetime DESC LIMIT 12", reportid);
mysql_tquery(MainPipeline, query, "MDCReportQueryFinish", "ii", playerid, reportid);
return 1;
}
stock SetUnreadMailsNotification(playerid)
{
new query[128];
mysql_format(MainPipeline, query, sizeof(query), "SELECT COUNT(*) AS Unread_Count FROM letters WHERE Receiver_ID = %d AND `Read` = 0", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "UnreadMailsNotificationQueryFin", "i", playerid);
return 1;
}
stock DisplayMails(playerid)
{
new query[150];
mysql_format(MainPipeline, query, sizeof(query), "SELECT `Id`, `Message`, `Read` FROM `letters` WHERE `Receiver_Id` = %d AND `Delivery_Min` = 0 ORDER BY `Id` DESC LIMIT 50", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "MailsQueryFinish", "i", playerid);
}
stock DisplayMailDetails(playerid, letterid)
{
new query[256];
mysql_format(MainPipeline, query, sizeof(query), "SELECT `Id`, `Date`, `Sender_Id`, `Read`, `Notify`, `Message`, (SELECT `Username` FROM `accounts` WHERE `id` = letters.Sender_Id) AS `SenderUser` FROM `letters` WHERE id = %d", letterid);
mysql_tquery(MainPipeline, query, "MailDetailsQueryFinish", "i", playerid);
}
stock CountFlags(playerid)
{
new query[80];
mysql_format(MainPipeline, query, sizeof(query), "SELECT * FROM `flags` WHERE id=%d AND type = 1", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "FlagQueryFinish", "iii", playerid, INVALID_PLAYER_ID, Flag_Query_Count);
return 1;
}
stock AddFlag(playerid, adminid, flag[], type = 1)
{
new query[300];
new admin[24];
if(adminid != INVALID_PLAYER_ID) {
format(admin, sizeof(admin), "%s", GetPlayerNameEx(adminid));
}
else {
format(admin, sizeof(admin), "Gifted/Script Added");
}
PlayerInfo[playerid][pFlagged]++;
mysql_format(MainPipeline, query, sizeof(query), "INSERT INTO `flags` (`id` ,`time` ,`issuer` ,`flag`, `type`) VALUES ('%d',NOW(),'%e','%e','%d')", GetPlayerSQLId(playerid), admin, flag, type);
mysql_tquery(MainPipeline, query, "OnAddFlag", "iss", playerid, admin, flag);
return 1;
}
forward OnAddFlag(target, admin[], flag[]);
public OnAddFlag(target, admin[], flag[])
{
new string[128], flag_sqlid = cache_insert_id();
format(string, sizeof(string), "FLAG (%d): %s added flag \"%s\" to %s(%d)", flag_sqlid, admin, flag, GetPlayerNameEx(target), GetPlayerSQLId(target));
Log("logs/flags.log", string);
return 1;
}
stock AddOFlag(sqlid, adminid, flag[]) // offline add
{
new query[300];
new admin[24], name[24];
if(adminid != INVALID_PLAYER_ID) {
format(admin, sizeof(admin), "%s", GetPlayerNameEx(adminid));
}
else {
format(admin, sizeof(admin), "Gifted/Script Added");
}
GetPVarString(adminid, "OnAddFlag", name, sizeof(name));
mysql_format(MainPipeline, query, sizeof(query), "INSERT INTO `flags` (`id` ,`time` ,`issuer` ,`flag`) VALUES ('%d',NOW(),'%e','%e')", sqlid, admin, flag);
mysql_tquery(MainPipeline, query, "OnAddOFlag", "isss", sqlid, name, admin, flag);
DeletePVar(adminid, "OnAddFlag");
return 1;
}
forward OnAddOFlag(psqlid, name[], admin[], flag[]);
public OnAddOFlag(psqlid, name[], admin[], flag[])
{
new string[128], flag_sqlid = cache_insert_id();
format(string, sizeof(string), "OFLAG (%d): %s added flag \"%s\" to %s(%d)", flag_sqlid, admin, flag, name, psqlid);
Log("logs/flags.log", string);
return 1;
}
forward OnRequestDeleteFlag(playerid, flagid);
public OnRequestDeleteFlag(playerid, flagid)
{
new rows, fields, value, string[256];
new FlagText[64], FlagIssuer[MAX_PLAYER_NAME], FlagDate[24];
cache_get_row_count(rows);
cache_get_field_count(fields);
if(!rows) return ShowPlayerDialogEx(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "{FF0000}Flag Error:", "Flag does not exist!", "Close", "");
cache_get_value_name_int(0, "type", value);
if(value == 2 && PlayerInfo[playerid][pAdmin] < 4 && PlayerInfo[playerid][pASM] < 1) return ShowPlayerDialogEx(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "{FF0000}Flag Error:", "Only Senior Admins+ can remove administrative flags!", "Close", "");
cache_get_value_name(0, "flag", FlagText, 64);
cache_get_value_name(0, "issuer", FlagIssuer, MAX_PLAYER_NAME);
cache_get_value_name(0, "time", FlagDate, 24);
SetPVarInt(playerid, "Flag_Delete_ID", flagid);
SetPVarString(playerid, "FlagText", FlagText);
format(string, sizeof(string), "Are you sure you want to delete:\n{FF6347}Flag ID:{BFC0C2} %d\n{FF6347}Flag:{BFC0C2} %s\n{FF6347}Issued by:{BFC0C2} %s\n{FF6347}Date Issued: {BFC0C2}%s", flagid, FlagText, FlagIssuer, FlagDate);
return ShowPlayerDialogEx(playerid, FLAG_DELETE2, DIALOG_STYLE_MSGBOX, "FLAG DELETION", string, "Yes", "No");
}
stock DeleteFlag(flagid, adminid)
{
new query[256], flagtext[64];
GetPVarString(adminid, "FlagText", flagtext, sizeof(flagtext));
format(query, sizeof(query), "FLAG (%d): \"%s\" was deleted by %s.", flagid, flagtext, GetPlayerNameEx(adminid));
Log("logs/flags.log", query);
mysql_format(MainPipeline, query, sizeof(query), "DELETE FROM `flags` WHERE `fid` = %i", flagid);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
DeletePVar(adminid, "Flag_Delete_ID");
DeletePVar(adminid, "FlagText");
return 1;
}
stock DisplayFlags(playerid, targetid, type = 1)
{
new query[128];
CountFlags(targetid);
mysql_format(MainPipeline, query, sizeof(query), "SELECT fid, flag FROM `flags` WHERE id=%d AND type = %d ORDER BY `time` LIMIT 20", GetPlayerSQLId(targetid), type);
mysql_tquery(MainPipeline, query, "FlagQueryFinish", "iii", playerid, targetid, Flag_Query_Display);
SetPVarInt(playerid, "viewingflags", targetid);
DeletePVar(playerid, "ManageFlagID");
return 1;
}
stock CountSkins(playerid)
{
new query[80];
mysql_format(MainPipeline, query, sizeof(query), "SELECT NULL FROM `house_closet` WHERE playerid = %d", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "SkinQueryFinish", "ii", playerid, Skin_Query_Count);
return 1;
}
stock AddSkin(playerid, skinid)
{
new query[300];
PlayerInfo[playerid][pSkins]++;
mysql_format(MainPipeline, query, sizeof(query), "INSERT INTO `house_closet` (`id`, `playerid`, `skinid`) VALUES (NULL, '%d', '%d')", GetPlayerSQLId(playerid), skinid);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
return 1;
}
stock DeleteSkin(skinid)
{
new query[80];
mysql_format(MainPipeline, query, sizeof(query), "DELETE FROM `house_closet` WHERE `id` = %i", skinid);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
return 1;
}
stock DisplaySkins(playerid)
{
new query[128];
CountSkins(playerid);
mysql_format(MainPipeline, query, sizeof(query), "SELECT `skinid` FROM `house_closet` WHERE playerid = %d ORDER BY `skinid` ASC", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "SkinQueryFinish", "ii", playerid, Skin_Query_Display);
return 1;
}
stock CountCitizens()
{
mysql_tquery(MainPipeline, "SELECT NULL FROM `accounts` WHERE `Nation` = 1 && `UpdateDate` > NOW() - INTERVAL 1 WEEK", "CitizenQueryFinish", "i", TR_Citizen_Count);
mysql_tquery(MainPipeline, "SELECT NULL FROM `accounts` WHERE `UpdateDate` > NOW() - INTERVAL 1 WEEK", "CitizenQueryFinish", "i", Total_Count);
return 1;
}
stock CheckNationQueue(playerid, nation)
{
new query[300];
mysql_format(MainPipeline, query, sizeof(query), "SELECT NULL FROM `nation_queue` WHERE `playerid` = %d AND `status` = 1", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "NationQueueQueryFinish", "iii", playerid, nation, CheckQueue);
}
stock AddNationQueue(playerid, nation, status)
{
new query[300];
if(nation == 0)
{
mysql_format(MainPipeline, query, sizeof(query), "INSERT INTO `nation_queue` (`id`, `playerid`, `name`, `date`, `nation`, `status`) VALUES (NULL, %d, '%s', NOW(), 0, %d)", GetPlayerSQLId(playerid), GetPlayerNameExt(playerid), status);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
}
if(nation == 1)
{
if(status == 1)
{
mysql_format(MainPipeline, query, sizeof(query), "SELECT NULL FROM `nation_queue` WHERE `playerid` = %d AND `nation` = 1", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "NationQueueQueryFinish", "iii", playerid, nation, AddQueue);
}
else if(status == 2)
{
mysql_format(MainPipeline, query, sizeof(query), "INSERT INTO `nation_queue` (`id`, `playerid`, `name`, `date`, `nation`, `status`) VALUES (NULL, %d, '%s', NOW(), 1, %d)", GetPlayerSQLId(playerid), GetPlayerNameExt(playerid), status);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
PlayerInfo[playerid][pNation] = 1;
}
}
return 1;
}
stock UpdateCitizenApp(playerid, nation)
{
new query[300];
mysql_format(MainPipeline, query, sizeof(query), "SELECT NULL FROM `nation_queue` WHERE `playerid` = %d AND `status` = 1", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "NationQueueQueryFinish", "iii", playerid, nation, UpdateQueue);
}
stock AddTicket(playerid, number)
{
new query[80];
PlayerInfo[playerid][pLottoNr]++;
mysql_format(MainPipeline, query, sizeof(query), "INSERT INTO `lotto` (`id` ,`number`) VALUES ('%d', '%d')", GetPlayerSQLId(playerid), number);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
return 1;
}
stock DeleteTickets(playerid)
{
new query[80];
mysql_format(MainPipeline, query, sizeof(query), "DELETE FROM `lotto` WHERE `id` = %i", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
return 1;
}
stock LoadTickets(playerid)
{
new query[128];
mysql_format(MainPipeline, query, sizeof(query), "SELECT `tid`, `number` FROM `lotto` WHERE `id` = %d LIMIT 5", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "LoadTicket", "i", playerid);
return 1;
}
stock CountTickets(playerid)
{
new query[80];
mysql_format(MainPipeline, query, sizeof(query), "SELECT * FROM `lotto` WHERE `id` = %i", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "CountAmount", "i", playerid);
return 1;
}
stock LoadTreasureInventory(playerid)
{
new query[175];
mysql_format(MainPipeline, query, sizeof(query), "SELECT `junkmetal`, `newcoin`, `oldcoin`, `brokenwatch`, `oldkey`, `treasure`, `goldwatch`, `silvernugget`, `goldnugget` FROM `jobstuff` WHERE `pId` = %d", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "LoadTreasureInvent", "i", playerid);
return 1;
}
stock SaveTreasureInventory(playerid)
{
new string[220];
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `jobstuff` SET `junkmetal` = %d, `newcoin` = %d, `oldcoin` = %d, `brokenwatch` = %d, `oldkey` = %d, \
`treasure` = %d, `goldwatch` = %d, `silvernugget` = %d, `goldnugget` =%d WHERE `pId` = %d", GetPVarInt(playerid, "junkmetal"), GetPVarInt(playerid, "newcoin"), GetPVarInt(playerid, "oldcoin"),
GetPVarInt(playerid, "brokenwatch"), GetPVarInt(playerid, "oldkey"), GetPVarInt(playerid, "treasure"), GetPVarInt(playerid, "goldwatch"), GetPVarInt(playerid, "silvernugget"), GetPVarInt(playerid, "goldnugget"), GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
return 1;
}
stock SQL_Log(const szQuery[], const szDesc[] = "none", iExtraID = 0) {
new i_dateTime[2][3];
gettime(i_dateTime[0][0], i_dateTime[0][1], i_dateTime[0][2]);
getdate(i_dateTime[1][0], i_dateTime[1][1], i_dateTime[1][2]);
printf("Dumping query from %i/%i/%i (%i:%i:%i)\r\nDescription: %s (index %i). Query:\r\n", i_dateTime[1][0], i_dateTime[1][1], i_dateTime[1][2], i_dateTime[0][0], i_dateTime[0][1], i_dateTime[0][2], szDesc, iExtraID);
if(strlen(szQuery) > 1023)
{
new sz_print[1024];
new Float:maxfloat = strlen(szQuery)/1023;
for(new x;x<=floatround(maxfloat, floatround_ceil);x++)
{
strmid(sz_print, szQuery, 0+(x*1023), 1023+(x*1023));
print(sz_print);
}
}
else
{
print(szQuery);
}
return 1;
}
stock LoadMailboxes()
{
printf("[LoadMailboxes] Loading data from database...");
mysql_tquery(MainPipeline, "SELECT * FROM `mailboxes`", "OnLoadMailboxes", "");
}
stock LoadHGBackpacks()
{
printf("[Loading Hunger Games] Loading Hunger Games Backpacks from the database, please wait...");
mysql_tquery(MainPipeline, "SELECT * FROM `hgbackpacks`", "OnLoadHGBackpacks", "");
}
stock SaveMailbox(id)
{
new string[512];
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `mailboxes` SET \
`VW`=%d, \
`Int`=%d, \
`Model`=%d, \
`PosX`=%f, \
`PosY`=%f, \
`PosZ`=%f, \
`Angle`=%f WHERE `id`=%d",
MailBoxes[id][mbVW],
MailBoxes[id][mbInt],
MailBoxes[id][mbModel],
MailBoxes[id][mbPosX],
MailBoxes[id][mbPosY],
MailBoxes[id][mbPosZ],
MailBoxes[id][mbAngle],
id+1
); // Array starts from zero, MySQL starts at 1 (this is why we are adding one).
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
stock IsAdminSpawnedVehicle(vehicleid)
{
for(new i = 0; i < sizeof(CreatedCars); ++i) {
if(CreatedCars[i] == vehicleid) return 1;
}
return 0;
}
// credits to Luk0r
stock MySQLUpdateBuild(query[], sqlplayerid)
{
new querylen = strlen(query);
if (!query[0]) {
mysql_format(MainPipeline, query, 2048, "UPDATE `accounts` SET ");
}
else if (2048-querylen < 200)
{
new whereclause[32];
mysql_format(MainPipeline, whereclause, sizeof(whereclause), " WHERE `id`=%d", sqlplayerid);
strcat(query, whereclause, 2048);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
mysql_format(MainPipeline, query, 2048, "UPDATE `accounts` SET ");
}
else if (strfind(query, "=", true) != -1) strcat(query, ",", 2048);
return 1;
}
stock MySQLUpdateFinish(query[], sqlplayerid)
{
if (strcmp(query, "WHERE id=", false) == 0) mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
else
{
new whereclause[32];
mysql_format(MainPipeline, whereclause, sizeof(whereclause), " WHERE id=%d", sqlplayerid);
strcat(query, whereclause, 2048);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
mysql_format(MainPipeline, query, 2048, "UPDATE `accounts` SET ");
}
return 1;
}
stock SavePlayerInteger(query[], sqlid, Value[], Integer)
{
MySQLUpdateBuild(query, sqlid);
new updval[64];
mysql_format(MainPipeline, updval, sizeof(updval), "`%s`=%d", Value, Integer);
strcat(query, updval, 2048);
return 1;
}
stock SavePlayerString(query[], sqlid, Value[], String[])
{
MySQLUpdateBuild(query, sqlid);
new escapedstring[160], string[160];
mysql_escape_string(String, escapedstring);
mysql_format(MainPipeline, string, sizeof(string), "`%s`='%s'", Value, escapedstring);
strcat(query, string, 2048);
return 1;
}
stock SavePlayerFloat(query[], sqlid, Value[], Float:Number)
{
new flotostr[32];
mysql_format(MainPipeline, flotostr, sizeof(flotostr), "%0.2f", Number);
SavePlayerString(query, sqlid, Value, flotostr);
return 1;
}
stock g_mysql_SaveAccount(playerid)
{
new query[2048];
mysql_format(MainPipeline, query, 2048, "UPDATE `accounts` SET `SPos_x` = '%0.2f', `SPos_y` = '%0.2f', `SPos_z` = '%0.2f', `SPos_r` = '%0.2f' WHERE id = '%d'",PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z], PlayerInfo[playerid][pPos_r], GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
mysql_format(MainPipeline, query, 2048, "UPDATE `accounts` SET ");
SavePlayerString(query, GetPlayerSQLId(playerid), "IP", PlayerInfo[playerid][pIP]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Registered", PlayerInfo[playerid][pReg]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ConnectedTime", PlayerInfo[playerid][pConnectHours]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Sex", PlayerInfo[playerid][pSex]);
SavePlayerString(query, GetPlayerSQLId(playerid), "BirthDate", PlayerInfo[playerid][pBirthDate]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Band", PlayerInfo[playerid][pBanned]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PermBand", PlayerInfo[playerid][pPermaBanned]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Warnings", PlayerInfo[playerid][pWarns]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Disabled", PlayerInfo[playerid][pDisabled]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Level", PlayerInfo[playerid][pLevel]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "AdminLevel", PlayerInfo[playerid][pAdmin]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "SeniorModerator", PlayerInfo[playerid][pSMod]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Helper", PlayerInfo[playerid][pHelper]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "DonateRank", PlayerInfo[playerid][pDonateRank]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Respect", PlayerInfo[playerid][pExp]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Money", GetPlayerCash(playerid));
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Bank", PlayerInfo[playerid][pAccount]);
if(PlayerInfo[playerid][pHealth] > 150) PlayerInfo[playerid][pHealth] = 150;
if(PlayerInfo[playerid][pArmor] > 150) PlayerInfo[playerid][pArmor] = 150;
SavePlayerFloat(query, GetPlayerSQLId(playerid), "pHealth", PlayerInfo[playerid][pHealth]);
SavePlayerFloat(query, GetPlayerSQLId(playerid), "pArmor", PlayerInfo[playerid][pArmor]);
SavePlayerFloat(query, GetPlayerSQLId(playerid), "pSHealth", PlayerInfo[playerid][pSHealth]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Int", PlayerInfo[playerid][pInt]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "VirtualWorld", PlayerInfo[playerid][pVW]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Model", PlayerInfo[playerid][pModel]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BanAppealer", PlayerInfo[playerid][pBanAppealer]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PR", PlayerInfo[playerid][pPR]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "HR", PlayerInfo[playerid][pHR]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "AP", PlayerInfo[playerid][pAP]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Security", PlayerInfo[playerid][pSecurity]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ShopTech", PlayerInfo[playerid][pShopTech]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FactionModerator", PlayerInfo[playerid][pFactionModerator]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "GangModerator", PlayerInfo[playerid][pGangModerator]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Undercover", PlayerInfo[playerid][pUndercover]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "TogReports", PlayerInfo[playerid][pTogReports]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Radio", PlayerInfo[playerid][pRadio]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "RadioFreq", PlayerInfo[playerid][pRadioFreq]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "UpgradePoints", PlayerInfo[playerid][gPupgrade]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Origin", PlayerInfo[playerid][pOrigin]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Muted", PlayerInfo[playerid][pMuted]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Crimes", PlayerInfo[playerid][pCrimes]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Accent", PlayerInfo[playerid][pAccent]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "CHits", PlayerInfo[playerid][pCHits]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FHits", PlayerInfo[playerid][pFHits]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Arrested", PlayerInfo[playerid][pArrested]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Phonebook", PlayerInfo[playerid][pPhoneBook]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "LottoNr", PlayerInfo[playerid][pLottoNr]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Fishes", PlayerInfo[playerid][pFishes]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BiggestFish", PlayerInfo[playerid][pBiggestFish]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Job", PlayerInfo[playerid][pJob]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Job2", PlayerInfo[playerid][pJob2]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Job3", PlayerInfo[playerid][pJob3]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Paycheck", PlayerInfo[playerid][pPayCheck]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "HeadValue", PlayerInfo[playerid][pHeadValue]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "JailTime", PlayerInfo[playerid][pJailTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "WRestricted", PlayerInfo[playerid][pWRestricted]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Materials", PlayerInfo[playerid][pMats]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Crates", PlayerInfo[playerid][pCrates]);
// SavePlayerInteger(query, GetPlayerSQLId(playerid), "Pot", PlayerInfo[playerid][pPot]);
// SavePlayerInteger(query, GetPlayerSQLId(playerid), "Crack", PlayerInfo[playerid][pCrack]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Nation", PlayerInfo[playerid][pNation]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Leader", PlayerInfo[playerid][pLeader]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Member", PlayerInfo[playerid][pMember]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Division", PlayerInfo[playerid][pDivision]);
SavePlayerString(query, GetPlayerSQLId(playerid), "Badge", PlayerInfo[playerid][pBadge]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Rank", PlayerInfo[playerid][pRank]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "DetSkill", PlayerInfo[playerid][pDetSkill]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "SexSkill", PlayerInfo[playerid][pSexSkill]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BoxSkill", PlayerInfo[playerid][pBoxSkill]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "LawSkill", PlayerInfo[playerid][pLawSkill]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "MechSkill", PlayerInfo[playerid][pMechSkill]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "TruckSkill", PlayerInfo[playerid][pTruckSkill]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "DrugSmuggler", PlayerInfo[playerid][pDrugSmuggler]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ArmsSkill", PlayerInfo[playerid][pArmsSkill]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FishSkill", PlayerInfo[playerid][pFishSkill]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "CheckCash", PlayerInfo[playerid][pCheckCash]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Checks", PlayerInfo[playerid][pChecks]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BoatLic", PlayerInfo[playerid][pBoatLic]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FlyLic", PlayerInfo[playerid][pFlyLic]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "GunLic", PlayerInfo[playerid][pGunLic]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FishLic", PlayerInfo[playerid][pFishLic]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FishSkill", PlayerInfo[playerid][pFishSkill]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FightingStyle", PlayerInfo[playerid][pFightStyle]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PhoneNr", PlayerInfo[playerid][pPnumber]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Apartment", PlayerInfo[playerid][pPhousekey]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Apartment2", PlayerInfo[playerid][pPhousekey2]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Apartment3", PlayerInfo[playerid][pPhousekey3]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Renting", PlayerInfo[playerid][pRenting]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "CarLic", PlayerInfo[playerid][pCarLic]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "DrugsTime", PlayerInfo[playerid][pDrugsTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "LawyerTime", PlayerInfo[playerid][pLawyerTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "LawyerFreeTime", PlayerInfo[playerid][pLawyerFreeTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "MechTime", PlayerInfo[playerid][pMechTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "SexTime", PlayerInfo[playerid][pSexTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PayDay", PlayerInfo[playerid][pConnectSeconds]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PayDayHad", PlayerInfo[playerid][pPayDayHad]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "CDPlayer", PlayerInfo[playerid][pCDPlayer]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Dice", PlayerInfo[playerid][pDice]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Spraycan", PlayerInfo[playerid][pSpraycan]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Rope", PlayerInfo[playerid][pRope]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Rags", PlayerInfo[playerid][pRags]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Cigars", PlayerInfo[playerid][pCigar]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Sprunk", PlayerInfo[playerid][pSprunk]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Bombs", PlayerInfo[playerid][pBombs]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Wins", PlayerInfo[playerid][pWins]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Loses", PlayerInfo[playerid][pLoses]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Tutorial", PlayerInfo[playerid][pTut]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "OnDuty", PlayerInfo[playerid][pDuty]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Hospital", PlayerInfo[playerid][pHospital]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "MarriedID", PlayerInfo[playerid][pMarriedID]);
SavePlayerString(query, GetPlayerSQLId(playerid), "ContractBy", PlayerInfo[playerid][pContractBy]);
SavePlayerString(query, GetPlayerSQLId(playerid), "ContractDetail", PlayerInfo[playerid][pContractDetail]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "WantedLevel", PlayerInfo[playerid][pWantedLevel]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Insurance", PlayerInfo[playerid][pInsurance]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "911Muted", PlayerInfo[playerid][p911Muted]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "NewMuted", PlayerInfo[playerid][pNMute]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "NewMutedTotal", PlayerInfo[playerid][pNMuteTotal]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "AdMuted", PlayerInfo[playerid][pADMute]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "AdMutedTotal", PlayerInfo[playerid][pADMuteTotal]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "HelpMute", PlayerInfo[playerid][pHelpMute]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ReportMuted", PlayerInfo[playerid][pRMuted]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ReportMutedTotal", PlayerInfo[playerid][pRMutedTotal]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ReportMutedTime", PlayerInfo[playerid][pRMutedTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "DMRMuted", PlayerInfo[playerid][pDMRMuted]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "VIPMuted", PlayerInfo[playerid][pVMuted]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "VIPMutedTime", PlayerInfo[playerid][pVMutedTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "GiftTime", PlayerInfo[playerid][pGiftTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "AdvisorDutyHours", PlayerInfo[playerid][pDutyHours]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "AcceptedHelp", PlayerInfo[playerid][pAcceptedHelp]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "AcceptReport", PlayerInfo[playerid][pAcceptReport]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "TrashReport", PlayerInfo[playerid][pTrashReport]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "GangWarn", PlayerInfo[playerid][pGangWarn]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "CSFBanned", PlayerInfo[playerid][pCSFBanned]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "VIPInviteDay", PlayerInfo[playerid][pVIPInviteDay]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "TempVIP", PlayerInfo[playerid][pTempVIP]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BuddyInvite", PlayerInfo[playerid][pBuddyInvited]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Tokens", PlayerInfo[playerid][pTokens]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PTokens", PlayerInfo[playerid][pPaintTokens]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "TriageTime", PlayerInfo[playerid][pTriageTime]);
SavePlayerString(query, GetPlayerSQLId(playerid), "PrisonedBy", PlayerInfo[playerid][pPrisonedBy]);
SavePlayerString(query, GetPlayerSQLId(playerid), "PrisonReason", PlayerInfo[playerid][pPrisonReason]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "TaxiLicense", PlayerInfo[playerid][pTaxiLicense]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "TicketTime", PlayerInfo[playerid][pTicketTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Screwdriver", PlayerInfo[playerid][pScrewdriver]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Smslog", PlayerInfo[playerid][pSmslog]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Speedo", PlayerInfo[playerid][pSpeedo]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Wristwatch", PlayerInfo[playerid][pWristwatch]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Surveillance", PlayerInfo[playerid][pSurveillance]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Tire", PlayerInfo[playerid][pTire]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Firstaid", PlayerInfo[playerid][pFirstaid]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Rccam", PlayerInfo[playerid][pRccam]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Receiver", PlayerInfo[playerid][pReceiver]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "GPS", PlayerInfo[playerid][pGPS]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Sweep", PlayerInfo[playerid][pSweep]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "SweepLeft", PlayerInfo[playerid][pSweepLeft]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Bugged", PlayerInfo[playerid][pBugged]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "pWExists", PlayerInfo[playerid][pWeedObject]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "pWSeeds", PlayerInfo[playerid][pWSeeds]);
SavePlayerString(query, GetPlayerSQLId(playerid), "Warrants", PlayerInfo[playerid][pWarrant]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "JudgeJailTime", PlayerInfo[playerid][pJudgeJailTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "JudgeJailType", PlayerInfo[playerid][pJudgeJailType]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BeingSentenced", PlayerInfo[playerid][pBeingSentenced]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ProbationTime", PlayerInfo[playerid][pProbationTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "DMKills", PlayerInfo[playerid][pDMKills]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "OrderConfirmed", PlayerInfo[playerid][pOrderConfirmed]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FreezeHouse", PlayerInfo[playerid][pFreezeHouse]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FreezeCar", PlayerInfo[playerid][pFreezeCar]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Firework", PlayerInfo[playerid][pFirework]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Boombox", PlayerInfo[playerid][pBoombox]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Hydration", PlayerInfo[playerid][pHydration]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "DoubleEXP", PlayerInfo[playerid][pDoubleEXP]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "EXPToken", PlayerInfo[playerid][pEXPToken]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "RacePlayerLaps", PlayerInfo[playerid][pRacePlayerLaps]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Ringtone", PlayerInfo[playerid][pRingtone]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Wallpaper", PlayerInfo[playerid][pWallpaper]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Order", PlayerInfo[playerid][pOrder]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "CallsAccepted", PlayerInfo[playerid][pCallsAccepted]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PatientsDelivered", PlayerInfo[playerid][pPatientsDelivered]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "LiveBanned", PlayerInfo[playerid][pLiveBanned]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FreezeBank", PlayerInfo[playerid][pFreezeBank]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "VIPM", PlayerInfo[playerid][pVIPM]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "VIPMO", PlayerInfo[playerid][pVIPMO]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "VIPExpire", PlayerInfo[playerid][pVIPExpire]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "GVip", PlayerInfo[playerid][pGVip]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Watchdog", PlayerInfo[playerid][pWatchdog]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "VIPSold", PlayerInfo[playerid][pVIPSold]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "GoldBoxTokens", PlayerInfo[playerid][pGoldBoxTokens]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "DrawChance", PlayerInfo[playerid][pRewardDrawChance]);
SavePlayerFloat(query, GetPlayerSQLId(playerid), "RewardHours", PlayerInfo[playerid][pRewardHours]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "CarsRestricted", PlayerInfo[playerid][pRVehRestricted]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "LastCarWarning", PlayerInfo[playerid][pLastRVehWarn]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "CarWarns", PlayerInfo[playerid][pRVehWarns]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Flagged", PlayerInfo[playerid][pFlagged]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Paper", PlayerInfo[playerid][pPaper]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "MailEnabled", PlayerInfo[playerid][pMailEnabled]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Mailbox", PlayerInfo[playerid][pMailbox]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Business", PlayerInfo[playerid][pBusiness]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BusinessRank", PlayerInfo[playerid][pBusinessRank]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "TreasureSkill", PlayerInfo[playerid][pTreasureSkill]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "MetalDetector", PlayerInfo[playerid][pMetalDetector]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "HelpedBefore", PlayerInfo[playerid][pHelpedBefore]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Trickortreat", PlayerInfo[playerid][pTrickortreat]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "LastCharmReceived", PlayerInfo[playerid][pLastCharmReceived]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "RHMutes", PlayerInfo[playerid][pRHMutes]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "RHMuteTime", PlayerInfo[playerid][pRHMuteTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "GiftCode", PlayerInfo[playerid][pGiftCode]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Table", PlayerInfo[playerid][pTable]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "OpiumSeeds", PlayerInfo[playerid][pOpiumSeeds]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "RawOpium", PlayerInfo[playerid][pRawOpium]);
//SavePlayerInteger(query, GetPlayerSQLId(playerid), "Heroin", PlayerInfo[playerid][pHeroin]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Syringe", PlayerInfo[playerid][pSyringes]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Skins", PlayerInfo[playerid][pSkins]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Fitness", PlayerInfo[playerid][pFitness]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "HealthCare", PlayerInfo[playerid][pHealthCare]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ReceivedCredits", PlayerInfo[playerid][pReceivedCredits]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "RimMod", PlayerInfo[playerid][pRimMod]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Tazer", PlayerInfo[playerid][pHasTazer]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Cuff", PlayerInfo[playerid][pHasCuff]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "CarVoucher", PlayerInfo[playerid][pCarVoucher]);
SavePlayerString(query, GetPlayerSQLId(playerid), "ReferredBy", PlayerInfo[playerid][pReferredBy]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PendingRefReward", PlayerInfo[playerid][pPendingRefReward]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Refers", PlayerInfo[playerid][pRefers]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Famed", PlayerInfo[playerid][pFamed]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FamedMuted", PlayerInfo[playerid][pFMuted]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "DefendTime", PlayerInfo[playerid][pDefendTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PVIPVoucher", PlayerInfo[playerid][pPVIPVoucher]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "VehicleSlot", PlayerInfo[playerid][pVehicleSlot]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ToySlot", PlayerInfo[playerid][pToySlot]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "RFLTeam", PlayerInfo[playerid][pRFLTeam]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "RFLTeamL", PlayerInfo[playerid][pRFLTeamL]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "VehVoucher", PlayerInfo[playerid][pVehVoucher]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "SVIPVoucher", PlayerInfo[playerid][pSVIPVoucher]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "GVIPVoucher", PlayerInfo[playerid][pGVIPVoucher]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "GiftVoucher", PlayerInfo[playerid][pGiftVoucher]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FallIntoFun", PlayerInfo[playerid][pFallIntoFun]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "HungerVoucher", PlayerInfo[playerid][pHungerVoucher]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BoughtCure", PlayerInfo[playerid][pBoughtCure]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Vials", PlayerInfo[playerid][pVials]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "AdvertVoucher", PlayerInfo[playerid][pAdvertVoucher]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ShopCounter", PlayerInfo[playerid][pShopCounter]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ShopNotice", PlayerInfo[playerid][pShopNotice]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "SVIPExVoucher", PlayerInfo[playerid][pSVIPExVoucher]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "GVIPExVoucher", PlayerInfo[playerid][pGVIPExVoucher]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "VIPSellable", PlayerInfo[playerid][pVIPSellable]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ReceivedPrize", PlayerInfo[playerid][pReceivedPrize]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "VIPSpawn", PlayerInfo[playerid][pVIPSpawn]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FreeAdsDay", PlayerInfo[playerid][pFreeAdsDay]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FreeAdsLeft", PlayerInfo[playerid][pFreeAdsLeft]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BuddyInvites", PlayerInfo[playerid][pBuddyInvites]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ReceivedBGift", PlayerInfo[playerid][pReceivedBGift]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "pVIPJob", PlayerInfo[playerid][pVIPJob]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "LastBirthday", PlayerInfo[playerid][pLastBirthday]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "AccountRestricted", PlayerInfo[playerid][pAccountRestricted]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Watchlist", PlayerInfo[playerid][pWatchlist]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "WatchlistTime", PlayerInfo[playerid][pWatchlistTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Backpack", PlayerInfo[playerid][pBackpack]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BEquipped", PlayerInfo[playerid][pBEquipped]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BStoredH", PlayerInfo[playerid][pBStoredH]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BStoredV", PlayerInfo[playerid][pBStoredV]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PrisonCredits", PlayerInfo[playerid][pPrisonCredits]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PrisonMaterials", PlayerInfo[playerid][pPrisonMaterials]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PrisonWineTime", PlayerInfo[playerid][pPrisonWineTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PrisonCell", PlayerInfo[playerid][pPrisonCell]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PrisonSoap", GetPVarInt(playerid, "pPrisonSoap"));
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PrisonSugar", GetPVarInt(playerid, "pPrisonSugar"));
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PrisonBread", GetPVarInt(playerid, "pPrisonBread"));
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PrisonShank", GetPVarInt(playerid, "pPrisonShank"));
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PrisonShankOut", GetPVarInt(playerid, "pPrisonShankOut"));
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ShankUsages", GetPVarInt(playerid, "pShankUsages"));
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PrisonWine", GetPVarInt(playerid, "pPrisonWine"));
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PrisonMWine", GetPVarInt(playerid, "pPrisonMWine"));
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PrisonChisel", GetPVarInt(playerid, "pPrisonChisel"));
SavePlayerInteger(query, GetPlayerSQLId(playerid), "PrisonCellChisel", GetPVarInt(playerid, "pPrisonCellChisel"));
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FishingSkill", PlayerInfo[playerid][pFishingSkill]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FishWeight", PlayerInfo[playerid][pFishWeight]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "GarbageSkill", PlayerInfo[playerid][pGarbageSkill]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Pot", PlayerInfo[playerid][pDrugs][0]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Crack", PlayerInfo[playerid][pDrugs][1]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Meth", PlayerInfo[playerid][pDrugs][2]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Ecstasy", PlayerInfo[playerid][pDrugs][3]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Heroin", PlayerInfo[playerid][pDrugs][4]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "CopKit", GetPVarInt(playerid, "MedVestKit"));
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Hitman", PlayerInfo[playerid][pHitman]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "HitmanLeader", PlayerInfo[playerid][pHitmanLeader]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "HitmanBlacklisted", PlayerInfo[playerid][pHitmanBlacklisted]);
SavePlayerString(query, GetPlayerSQLId(playerid), "BlacklistReason", PlayerInfo[playerid][pBlacklistReason]);
new szForLoop[16];
for(new x = 0; x < 12; x++) {
mysql_format(MainPipeline, szForLoop, sizeof(szForLoop), "BItem%d", x);
SavePlayerInteger(query, GetPlayerSQLId(playerid), szForLoop, PlayerInfo[playerid][pBItems][x]);
}
for(new x = 0; x < sizeof(Drugs); x++) {
mysql_format(MainPipeline, szForLoop, sizeof(szForLoop), "BDrug%d", x);
SavePlayerInteger(query, GetPlayerSQLId(playerid), szForLoop, PlayerInfo[playerid][pBDrugs][x]);
}
for(new x = 0; x < 12; x++) {
mysql_format(MainPipeline, szForLoop, sizeof(szForLoop), "Gun%d", x);
SavePlayerInteger(query, GetPlayerSQLId(playerid), szForLoop, PlayerInfo[playerid][pGuns][x]);
}
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BRTimeout", PlayerInfo[playerid][pBugReportTimeout]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "pDigCooldown", PlayerInfo[playerid][pDigCooldown]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ToolBox", PlayerInfo[playerid][pToolBox]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "CrowBar", PlayerInfo[playerid][pCrowBar]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "CarLockPickSkill", PlayerInfo[playerid][pCarLockPickSkill]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "LockPickVehCount", PlayerInfo[playerid][pLockPickVehCount]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "LockPickTime", PlayerInfo[playerid][pLockPickTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "SEC", PlayerInfo[playerid][pSEC]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "BM", PlayerInfo[playerid][pBM]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "ASM", PlayerInfo[playerid][pASM]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "Isolated", PlayerInfo[playerid][pIsolated]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "WantedJailTime", PlayerInfo[playerid][pWantedJailTime]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "WantedJailFine", PlayerInfo[playerid][pWantedJailFine]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "NextNameChange", PlayerInfo[playerid][pNextNameChange]);
SavePlayerString(query, GetPlayerSQLId(playerid), "pExamineDesc", PlayerInfo[playerid][pExamineDesc]);
SavePlayerString(query, GetPlayerSQLId(playerid), "FavStation", PlayerInfo[playerid][pFavStation]);
// Austin's DP System
SavePlayerInteger(query, GetPlayerSQLId(playerid), "pDedicatedPlayer", PlayerInfo[playerid][pDedicatedPlayer]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "pDedicatedEnabled", PlayerInfo[playerid][pDedicatedEnabled]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "pDedicatedMuted", PlayerInfo[playerid][pDedicatedMuted]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "pDedicatedWarn", PlayerInfo[playerid][pDedicatedWarn]);
new mistring[64], mpstring[64], mcstring[256];
for(new m; m < MAX_MICROITEMS; m++)
{
mysql_format(MainPipeline, mistring, sizeof(mistring), "%s%d", mistring, PlayerInfo[playerid][mInventory][m]);
mysql_format(MainPipeline, mpstring, sizeof(mpstring), "%s%d", mpstring, PlayerInfo[playerid][mPurchaseCount][m]);
mysql_format(MainPipeline, mcstring, sizeof(mcstring), "%s%d", mcstring, PlayerInfo[playerid][mCooldown][m]);
if(m != MAX_MICROITEMS-1) strcat(mistring, "|"), strcat(mpstring, "|"), strcat(mcstring, "|");
}
SavePlayerString(query, GetPlayerSQLId(playerid), "mInventory", mistring);
SavePlayerString(query, GetPlayerSQLId(playerid), "mPurchaseCounts", mpstring);
SavePlayerString(query, GetPlayerSQLId(playerid), "mCooldowns", mcstring);
mysql_format(MainPipeline, mpstring, sizeof(mpstring), "%d|%d", PlayerInfo[playerid][mBoost][0], PlayerInfo[playerid][mBoost][1]);
SavePlayerString(query, GetPlayerSQLId(playerid), "mBoost", mpstring);
mysql_format(MainPipeline, mpstring, sizeof(mpstring), "%d|%d", PlayerInfo[playerid][mShopCounter], PlayerInfo[playerid][mNotice]);
SavePlayerString(query, GetPlayerSQLId(playerid), "mShopNotice", mpstring);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "zFuelCan", PlayerInfo[playerid][zFuelCan]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "bTicket", PlayerInfo[playerid][bTicket]);
// Austin's Punishment Revamp
mysql_format(MainPipeline, mistring, 64, "%d|%d|%d|%d|%d", PlayerInfo[playerid][pJailedInfo][0], PlayerInfo[playerid][pJailedInfo][1],
PlayerInfo[playerid][pJailedInfo][2], PlayerInfo[playerid][pJailedInfo][3], PlayerInfo[playerid][pJailedInfo][4]);
SavePlayerString(query, GetPlayerSQLId(playerid), "JailedInfo", mistring);
mistring[0] = 0;
for(new jailX = 0; jailX < 12; jailX++)
{
mysql_format(MainPipeline, mistring, sizeof(mistring), "%s%d", mistring, PlayerInfo[playerid][pJailedWeapons][jailX]);
if(jailX != 11) strcat(mistring, "|");
}
SavePlayerString(query, GetPlayerSQLId(playerid), "JailedWeapons", mistring);
/*for(new idrugs = 0; idrugs < sizeof(Drugs); ++idrugs)
{
format(mistring, sizeof(mistring), "%s%d", mistring, PlayerInfo[playerid][p_iDrugQuality][idrugs]);
if(idrugs != sizeof(Drugs) - 1) strcat(mistring, "|");
}
SavePlayerString(query, GetPlayerSQLId(playerid), "DrugQuality", mistring);*/
/*mistring[0] = 0;
for(new ipdrugs = 0; ipdrugs < sizeof(Drugs); ++ipdrugs)
{
format(mistring, sizeof(mistring), "%s%d", mistring, PlayerInfo[playerid][p_iPrisonDrug][ipdrugs]);
if(ipdrugs != sizeof(Drugs) - 1) strcat(mistring, "|");
}
SavePlayerString(query, GetPlayerSQLId(playerid), "PrisonDrugs", mistring);*/
/*format(szMiscArray, sizeof(szMiscArray), "%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d",
PlayerInfo[playerid][pToggledChats][0],
PlayerInfo[playerid][pToggledChats][1],
PlayerInfo[playerid][pToggledChats][2],
PlayerInfo[playerid][pToggledChats][3],
PlayerInfo[playerid][pToggledChats][4],
PlayerInfo[playerid][pToggledChats][5],
PlayerInfo[playerid][pToggledChats][6],
PlayerInfo[playerid][pToggledChats][7],
PlayerInfo[playerid][pToggledChats][8],
PlayerInfo[playerid][pToggledChats][9],
PlayerInfo[playerid][pToggledChats][10],
PlayerInfo[playerid][pToggledChats][11],
PlayerInfo[playerid][pToggledChats][12],
PlayerInfo[playerid][pToggledChats][13],
PlayerInfo[playerid][pToggledChats][14],
PlayerInfo[playerid][pToggledChats][15],
PlayerInfo[playerid][pToggledChats][16],
PlayerInfo[playerid][pToggledChats][17],
PlayerInfo[playerid][pToggledChats][18],
PlayerInfo[playerid][pToggledChats][19],
PlayerInfo[playerid][pToggledChats][20]);
SavePlayerString(query, GetPlayerSQLId(playerid), "ToggledChats", szMiscArray);*/
for(new c = 0; c < MAX_CHATSETS; c++) {
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "ChatTog%d", c);
SavePlayerInteger(query, GetPlayerSQLId(playerid), szMiscArray, PlayerInfo[playerid][pToggledChats][c]);
}
/*format(szMiscArray, sizeof(szMiscArray), "%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d",
PlayerInfo[playerid][pChatbox][0],
PlayerInfo[playerid][pChatbox][1],
PlayerInfo[playerid][pChatbox][2],
PlayerInfo[playerid][pChatbox][3],
PlayerInfo[playerid][pChatbox][4],
PlayerInfo[playerid][pChatbox][5],
PlayerInfo[playerid][pChatbox][6],
PlayerInfo[playerid][pChatbox][7],
PlayerInfo[playerid][pChatbox][8],
PlayerInfo[playerid][pChatbox][9],
PlayerInfo[playerid][pChatbox][10],
PlayerInfo[playerid][pChatbox][11],
PlayerInfo[playerid][pChatbox][12],
PlayerInfo[playerid][pChatbox][13],
PlayerInfo[playerid][pChatbox][14],
PlayerInfo[playerid][pChatbox][15],
PlayerInfo[playerid][pChatbox][16],
PlayerInfo[playerid][pChatbox][17],
PlayerInfo[playerid][pChatbox][18],
PlayerInfo[playerid][pChatbox][19]);
SavePlayerString(query, GetPlayerSQLId(playerid), "ChatBoxSettings", szMiscArray);*/
SavePlayerInteger(query, GetPlayerSQLId(playerid), "pVIPMod", PlayerInfo[playerid][pVIPMod]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "pEventTokens", PlayerInfo[playerid][pEventTokens]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "VIPGunsCount", PlayerInfo[playerid][pVIPGuncount]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "pBailPrice", PlayerInfo[playerid][pBailPrice]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "pLastPoll", PlayerInfo[playerid][pLastPoll]);
SavePlayerString(query, GetPlayerSQLId(playerid), "PollKeyA", PlayerInfo[playerid][pPollKey1]);
SavePlayerString(query, GetPlayerSQLId(playerid), "PollKeyB", PlayerInfo[playerid][pPollKey2]);
SavePlayerString(query, GetPlayerSQLId(playerid), "PollKeyC", PlayerInfo[playerid][pPollKey3]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FurnitureSlots", PlayerInfo[playerid][pFurnitureSlots]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "StaffBanned", PlayerInfo[playerid][pStaffBanned]);
SavePlayerString(query, GetPlayerSQLId(playerid), "DedicatedDaymarker", PlayerInfo[playerid][pDedicatedDaymarker]);
SavePlayerString(query, GetPlayerSQLId(playerid), "DedicatedTimestamp", PlayerInfo[playerid][pDedicatedTimestamp]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "DedicatedHours", PlayerInfo[playerid][pDedicatedHours]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "WalkStyle", PlayerInfo[playerid][pWalkStyle]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FlagCredits", PlayerInfo[playerid][pFlagCredits]);
SavePlayerInteger(query, GetPlayerSQLId(playerid), "FlagClaimed", PlayerInfo[playerid][pFlagClaimed]);
//for(new d; d < sizeof(Drugs); ++d) SavePlayerInteger(query, GetPlayerSQLId(playerid), GetDrugName(d), PlayerInfo[playerid][pDrugs][d]);
//for(new d; d < sizeof(szIngredients); ++d) if(d != 9) SavePlayerInteger(query, GetPlayerSQLId(playerid), DS_Ingredients_GetSQLName(d), PlayerInfo[playerid][p_iIngredient][d]);
/*szMiscArray[0] = 0;
for(new d; d < sizeof(Drugs); ++d)
{
format(szMiscArray, sizeof(szMiscArray), "Prison%s", GetDrugName(d));
SavePlayerInteger(query, GetPlayerSQLId(playerid), szMiscArray, PlayerInfo[playerid][p_iPrisonDrug][d]);
} old */
MySQLUpdateFinish(query, GetPlayerSQLId(playerid));
if(FIFEnabled) g_mysql_SaveFIF(playerid);
return 1;
}
stock SaveAuction(auction) {
new query[200];
mysql_format(MainPipeline, query, sizeof(query), "UPDATE `auctions` SET");
mysql_format(MainPipeline, query, sizeof(query), "%s `BiddingFor` = '%e', `InProgress` = %d, `Bid` = %d, `Bidder` = %d, `Expires` = %d, `Wining` = '%e', `Increment` = %d", query, Auctions[auction][BiddingFor], Auctions[auction][InProgress], Auctions[auction][Bid], Auctions[auction][Bidder], Auctions[auction][Expires], Auctions[auction][Wining], Auctions[auction][Increment]);
mysql_format(MainPipeline, query, sizeof(query), "%s WHERE `id` = %d", query, auction+1);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "ii", SENDDATA_THREAD, INVALID_PLAYER_ID);
}
stock GetLatestKills(playerid, giveplayerid)
{
new query[256];
mysql_format(MainPipeline, query, sizeof(query), "SELECT Killer.Username, Killed.Username, k.* FROM kills k LEFT JOIN accounts Killed ON k.killedid = Killed.id LEFT JOIN accounts Killer ON Killer.id = k.killerid WHERE k.killerid = %d OR k.killedid = %d ORDER BY `date` DESC LIMIT 10", GetPlayerSQLId(giveplayerid), GetPlayerSQLId(giveplayerid));
mysql_tquery(MainPipeline, query, "OnGetLatestKills", "ii", playerid, giveplayerid);
}
stock GetSMSLog(playerid)
{
new query[256];
mysql_format(MainPipeline, query, sizeof(query), "SELECT `sender`, `sendernumber`, `message`, `date` FROM `sms` WHERE `receiverid` = %d ORDER BY `date` DESC LIMIT 10", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "OnGetSMSLog", "i", playerid);
}
stock LoadAuctions() {
printf("[LoadAuctions] Loading data from database...");
mysql_tquery(MainPipeline, "SELECT * FROM `auctions`", "AuctionLoadQuery", "");
}
//--------------------------------[ CUSTOM PUBLIC FUNCTIONS ]---------------------------
forward OnPhoneNumberCheck(index, extraid);
public OnPhoneNumberCheck(index, extraid)
{
if(IsPlayerConnected(index))
{
new string[128];
new rows, fields;
cache_get_row_count(rows);
cache_get_field_count(fields);
switch(extraid)
{
case 1: {
if(rows)
{
SendClientMessageEx(index, COLOR_WHITE, "That phone number has already been taken.");
DeletePVar(index, "PhChangerId");
DeletePVar(index, "WantedPh");
DeletePVar(index, "PhChangeCost");
DeletePVar(index, "CurrentPh");
}
else
{
format(string,sizeof(string),"The phone number requested, %d, will cost a total of $%s.\n\nTo confirm, press OK.", GetPVarInt(index, "WantedPh"), number_format(GetPVarInt(index, "PhChangeCost")));
ShowPlayerDialogEx(index, VIPNUMMENU2, DIALOG_STYLE_MSGBOX, "Confirmation", string, "OK", "Cancel");
}
}
case 2: {
if(rows)
{
SendClientMessageEx(index, COLOR_WHITE, "That phone number has already been taken.");
}
else
{
PlayerInfo[index][pPnumber] = GetPVarInt(index, "WantedPh");
GivePlayerCash(index, -GetPVarInt(index, "PhChangeCost"));
format(string, sizeof(string), "Cellphone purchased, your new phone number is %d.", GetPVarInt(index, "WantedPh"));
SendClientMessageEx(index, COLOR_GRAD4, string);
SendClientMessageEx(index, COLOR_GRAD5, "You can check this any time you wish by typing /stats.");
SendClientMessageEx(index, COLOR_WHITE, "HINT: You can now type /cellphonehelp to see your cellphone commands.");
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `accounts` SET `PhoneNr` = %d WHERE `id` = '%d'", PlayerInfo[index][pPnumber], GetPlayerSQLId(index));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "ii", SENDDATA_THREAD, index);
DeletePVar(index, "PhChangerId");
DeletePVar(index, "WantedPh");
DeletePVar(index, "PhChangeCost");
DeletePVar(index, "CurrentPh");
}
}
case 3: {
if(rows && GetPVarInt(index, "WantedPh") != 0)
{
SendClientMessageEx(index, COLOR_WHITE, "That phone number has already been taken.");
}
else
{
PlayerInfo[index][pPnumber] = GetPVarInt(index, "WantedPh");
format(string, sizeof(string), " %s's(%d) Phone Number has been set to %d.", GetPlayerNameEx(index), GetPlayerSQLId(index), GetPVarInt(index, "WantedPh"));
format(string, sizeof(string), "%s by %s", string, GetPlayerNameEx(index));
Log("logs/undercover.log", string);
SendClientMessageEx(index, COLOR_GRAD1, string);
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `accounts` SET `PhoneNr` = %d WHERE `id` = '%d'", PlayerInfo[index][pPnumber], GetPlayerSQLId(index));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "ii", SENDDATA_THREAD, index);
DeletePVar(index, "PhChangerId");
DeletePVar(index, "WantedPh");
DeletePVar(index, "PhChangeCost");
DeletePVar(index, "CurrentPh");
}
}
case 4: {
if(IsPlayerConnected(GetPVarInt(index, "PhChangerId")))
{
if(rows)
{
SendClientMessageEx(GetPVarInt(index, "PhChangerId"), COLOR_WHITE, "That phone number has already been taken.");
}
else
{
PlayerInfo[index][pPnumber] = GetPVarInt(index, "WantedPh");
format(string, sizeof(string), " %s's(%d) Phone Number has been set to %d.", GetPlayerNameEx(index), GetPlayerSQLId(index), GetPVarInt(index, "WantedPh"));
format(string, sizeof(string), "%s by %s", string, GetPlayerNameEx(GetPVarInt(index, "PhChangerId")));
Log("logs/stats.log", string);
SendClientMessageEx(GetPVarInt(index, "PhChangerId"), COLOR_GRAD1, string);
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `accounts` SET `PhoneNr` = %d WHERE `id` = '%d'", PlayerInfo[index][pPnumber], GetPlayerSQLId(index));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "ii", SENDDATA_THREAD, index);
DeletePVar(index, "PhChangerId");
DeletePVar(index, "WantedPh");
DeletePVar(index, "PhChangeCost");
DeletePVar(index, "CurrentPh");
}
}
}
case 5: {
if(rows) {
SendClientMessageEx(index, COLOR_WHITE, "That phone number has already been taken.");
DeletePVar(index, "oldnum");
DeletePVar(index, "newnum");
}
else {
format(string, sizeof(string), "You have set your temporary number to %d, type /tempnum to disable it.", GetPVarInt(index, "tempnum"));
SendClientMessage(index, COLOR_WHITE, string);
PlayerInfo[index][pPnumber] = GetPVarInt(index, "tempnum");
TempNumber[index] = 1;
}
}
}
}
return 1;
}
forward AddingBan(index, type);
public AddingBan(index, type)
{
if(IsPlayerConnected(index))
{
if(type == 1) // Add Ban
{
new rows, fields;
cache_get_row_count(rows);
cache_get_field_count(fields);
if(rows)
{
DeletePVar(index, "BanningPlayer");
DeletePVar(index, "BanningReason");
SendClientMessageEx(index, COLOR_GREY, "That player is already banned.");
}
else
{
if(IsPlayerConnected(GetPVarInt(index, "BanningPlayer")))
{
new string[256], reason[64];
GetPVarString(index, "BanningReason", reason, sizeof(reason));
mysql_format(MainPipeline, string, sizeof(string), "INSERT INTO `ip_bans` (`ip`, `date`, `reason`, `admin`) VALUES ('%s', NOW(), '%e', '%e')", GetPlayerIpEx(GetPVarInt(index, "BanningPlayer")), reason, GetPlayerNameEx(index));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
DeletePVar(index, "BanningPlayer");
DeletePVar(index, "BanningReason");
}
}
}
else if(type == 2) // Unban IP
{
new rows;
cache_get_row_count(rows);
if(rows)
{
new string[128], ip[32];
GetPVarString(index, "UnbanIP", ip, sizeof(ip));
mysql_format(MainPipeline, string, sizeof(string), "DELETE FROM `ip_bans` WHERE `ip` = '%s'", ip);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
DeletePVar(index, "UnbanIP");
}
else
{
SendClientMessageEx(index, COLOR_GREY, "That IP address was not found in the ban database.");
DeletePVar(index, "UnbanIP");
}
}
else if(type == 3) // Ban IP
{
new rows;
cache_get_row_count(rows);
if(rows)
{
SendClientMessageEx(index, COLOR_GREY, "That IP address is already banned.");
DeletePVar(index, "BanIP");
}
else
{
new string[256], ip[32];
GetPVarString(index, "BanIP", ip, sizeof(ip));
mysql_format(MainPipeline, string, sizeof(string), "INSERT INTO `ip_bans` (`ip`, `date`, `reason`, `admin`) VALUES ('%s', NOW(), '%s', '%s')", ip, "/banip", GetPlayerNameEx(index));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
SendClientMessageEx(index, COLOR_WHITE, "That IP address was successfully banned.");
DeletePVar(index, "BanIP");
}
}
}
return 1;
}
forward MailsQueryFinish(playerid);
public MailsQueryFinish(playerid)
{
new rows;
cache_get_row_count(rows);
if (rows == 0) {
ShowPlayerDialogEx(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, " ", "Your mailbox is empty.", "OK", "");
return 1;
}
new id, string[2000], message[129], tmp[128], read;
for(new i; i < rows;i++)
{
cache_get_value_name(i, "Id", tmp); id = strval(tmp);
cache_get_value_name(i, "Read", tmp); read= strval(tmp);
cache_get_value_name(i, "Message", message, 129);
strmid(message,message,0,30);
if (strlen(message) > 30) strcat(message,"...");
strcat(string, (read) ? ("{BBBBBB}") : ("{FFFFFF}"));
strcat(string, message);
if (i != rows - 1) strcat(string, "\n");
ListItemTrackId[playerid][i] = id;
}
ShowPlayerDialogEx(playerid, DIALOG_POMAILS, DIALOG_STYLE_LIST, "Your mails", string, "Read", "Close");
return 1;
}
forward MailDetailsQueryFinish(playerid);
public MailDetailsQueryFinish(playerid)
{
new string[256];
new rows;
cache_get_row_count(rows);
new senderid, sender[MAX_PLAYER_NAME], message[131], notify, szTmp[128], Date[32], read, id;
cache_get_value_name(0, "Id", szTmp); id = strval(szTmp);
cache_get_value_name(0, "Notify", szTmp); notify = strval(szTmp);
cache_get_value_name(0, "Sender_Id", szTmp); senderid = strval(szTmp);
cache_get_value_name(0, "Read", szTmp); read = strval(szTmp);
cache_get_value_name(0, "Message", message, 131);
cache_get_value_name(0, "SenderUser", sender, MAX_PLAYER_NAME);
cache_get_value_name(0, "Date", Date, 32);
if (strlen(message) > 80) strins(message, "\n", 70);
format(string, sizeof(string), "{EEEEEE}%s\n\n{BBBBBB}Sender: {FFFFFF}%s\n{BBBBBB}Date: {EEEEEE}%s", message, sender,Date);
ShowPlayerDialogEx(playerid, DIALOG_PODETAIL, DIALOG_STYLE_MSGBOX, "Mail Content", string, "Back", "Trash");
if (notify && !read) {
foreach(new i: Player)
{
if (GetPlayerSQLId(i) == senderid) {
format(string, sizeof(string), "Your message has just been read by %s!", GetPlayerNameEx(playerid));
SendClientMessageEx(i, COLOR_YELLOW, string);
break;
}
}
}
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `letters` SET `Read` = 1 WHERE `id` = %d", id);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
return 1;
}
forward MailDeliveryQueryFinish();
public MailDeliveryQueryFinish()
{
new rows, id, tmp[128], i;
cache_get_row_count(rows);
for(; i < rows;i++)
{
cache_get_value_name(i, "Receiver_Id", tmp);
id = strval(tmp);
foreach(new j: Player)
{
if (GetPlayerSQLId(j) == id) {
if (PlayerInfo[j][pDonateRank] >= 4 && HasMailbox(j)) {
SendClientMessageEx(j, COLOR_YELLOW, "Mail has just been delivered to your mailbox.");
SetPVarInt(j, "UnreadMails", 1);
break;
}
}
}
}
return 1;
}
forward MDCQueryFinish(playerid, suspectid);
public MDCQueryFinish(playerid, suspectid)
{
new rows;
cache_get_row_count(rows);
new resultline[1424], crimes = PlayerInfo[suspectid][pCrimes], arrests = PlayerInfo[suspectid][pArrested], nation[14];
switch(PlayerInfo[suspectid][pNation])
{
case 0: nation = "San Andreas";
case 1: nation = "New Robada";
default: nation = "None";
}
format(resultline, sizeof(resultline), "{FF6347}Name:{BFC0C2} %s\t{FF6347}Phone Number:{BFC0C2} %d\n{FF6347}Total Previous Crimes: {BFC0C2}%d\t {FF6347}Total Arrests: {BFC0C2}%d \n{FF6347}Citizenship: {BFC0C2}%s \n{FF6347}Crime Key: {FF7D7D}Currently Wanted/{BFC0C2}Past Crime\n\n", GetPlayerNameEx(suspectid),PlayerInfo[suspectid][pPnumber], crimes, arrests, nation);
for(new i; i < rows; i++)
{
cache_get_value_name(i, "issuer", MDCInfo[i][mdcIssuer], MAX_PLAYER_NAME);
cache_get_value_name(i, "crime", MDCInfo[i][mdcCrime], 64);
cache_get_value_name_int(i, "active", MDCInfo[i][mdcActive]);
if(MDCInfo[i][mdcActive] == 1)
{
format(resultline, sizeof(resultline),"%s{FF6347}Crime: {FF7D7D}%s \t{FF6347}Charged by:{BFC0C2} %s\n",resultline, MDCInfo[i][mdcCrime], MDCInfo[i][mdcIssuer]);
} else {
format(resultline, sizeof(resultline),"%s{FF6347}Crime: {BFC0C2}%s \t{FF6347}Charged by:{BFC0C2} %s\n",resultline, MDCInfo[i][mdcCrime], MDCInfo[i][mdcIssuer]);
}
}
ShowPlayerDialogEx(playerid, MDC_SHOWCRIMES, DIALOG_STYLE_MSGBOX, "MDC - Criminal History", resultline, "Back", "");
return 1;
}
forward MDCReportsQueryFinish(playerid, suspectid);
public MDCReportsQueryFinish(playerid, suspectid)
{
new rows;
cache_get_row_count(rows);
new resultline[1424], str[12];
new copname[MAX_PLAYER_NAME], datetime[64], reportsid;
for(new i; i < rows; i++)
{
cache_get_value_name(i, "id", str, 12); reportsid = strval(str);
cache_get_value_name(i, "Username", copname, MAX_PLAYER_NAME);
cache_get_value_name(i, "datetime", datetime, 64);
format(resultline, sizeof(resultline),"%s{FF6347}Report (%d) {FF7D7D}Arrested by: %s on %s\n",resultline, reportsid, copname,datetime);
}
if(!resultline[0]) format(resultline, sizeof(resultline),"No Arrest Reports on record.",resultline, reportsid, copname,datetime);
ShowPlayerDialogEx(playerid, MDC_SHOWREPORTS, DIALOG_STYLE_LIST, "MDC - Criminal History", resultline, "Back", "");
return 1;
}
forward MDCReportQueryFinish(playerid, reportid);
public MDCReportQueryFinish(playerid, reportid)
{
new rows;
cache_get_row_count(rows);
new resultline[1424];
new copname[MAX_PLAYER_NAME], datetime[64], shortreport[200];
for(new i; i < rows; i++)
{
cache_get_value_name(i, "Username", copname, MAX_PLAYER_NAME);
cache_get_value_name(i, "datetime", datetime, 64);
cache_get_value_name(i, "shortreport", shortreport, 200);
format(resultline, sizeof(resultline),"{FF6347}Report #%d\n{FF7D7D}Arrested by: %s on %s\n{FF6347}Report:{BFC0C2} %s\n",reportid, copname,datetime, shortreport);
}
ShowPlayerDialogEx(playerid, MDC_SHOWCRIMES, DIALOG_STYLE_MSGBOX, "MDC - Arrest Report", resultline, "Back", "");
return 1;
}
forward FlagQueryFinish(playerid, suspectid, queryid);
public FlagQueryFinish(playerid, suspectid, queryid)
{
new rows, value;
cache_get_row_count(rows);
new resultline[2000];
new header[64], sResult[64];
new FlagID, FlagIssuer[MAX_PLAYER_NAME], FlagText[64], FlagDate[24];
switch(queryid)
{
case 0:
{
cache_get_value_name(0, "fid", sResult); FlagID = strval(sResult);
cache_get_value_name(0, "issuer", FlagIssuer, MAX_PLAYER_NAME);
cache_get_value_name(0, "flag", FlagText, 64);
cache_get_value_name(0, "time", FlagDate, 24);
format(resultline, sizeof(resultline),"{FF6347}FlagID: {BFC0C2}%d\n{FF6347}Flag: {BFC0C2}%s\n{FF6347}Issued by:{BFC0C2} %s \n{FF6347}Date: {BFC0C2}%s", FlagID, FlagText, FlagIssuer, FlagDate);
ShowPlayerDialogEx(playerid, 0, DIALOG_STYLE_MSGBOX, "Viewing Flag Info", resultline, "Close", "");
}
case Flag_Query_Display:
{
format(header, sizeof(header), "{FF6347}Flag History for{BFC0C2} %s", GetPlayerNameEx(suspectid));
if(!rows) return ShowPlayerDialogEx(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, header, "{FF6347}No Flags on this account", "Close", "");
for(new i; i < rows; i++)
{
cache_get_value_name(i, "fid", sResult); FlagID = strval(sResult);
cache_get_value_name(i, "flag", FlagText, 64);
if(strlen(FlagText) > 60) strmid(FlagText, FlagText, 0, 58), format(FlagText, sizeof(FlagText), "%s[...]", FlagText);
format(resultline, sizeof(resultline),"%s{FF6347}(ID: %d): {BFC0C2}%s\n", resultline, FlagID, FlagText);
}
ShowPlayerDialogEx(playerid, FLAG_LIST, DIALOG_STYLE_LIST, header, resultline, "Select", "Close");
}
case Flag_Query_Offline:
{
new string[128], name[24], reason[64], psqlid[12];
GetPVarString(playerid, "OnAddFlag", name, 24);
GetPVarString(playerid, "OnAddFlagReason", reason, 64);
if(rows > 0) {
format(string, sizeof(string), "You have appended %s's flag.", name);
SendClientMessageEx(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "AdmCmd: %s was offline flagged by %s, reason: %s.", name, GetPlayerNameEx(playerid), reason);
ABroadCast(COLOR_LIGHTRED, string, 2);
format(string, sizeof(string), "%s was offline flagged by %s (%s).", name, GetPlayerNameEx(playerid), reason);
Log("logs/flags.log", string);
cache_get_value_name(0, "id", psqlid);
AddOFlag(strval(psqlid), playerid, reason);
}
else {
format(string, sizeof(string), "There was a problem with appending %s's flag.", name);
SendClientMessageEx(playerid, COLOR_WHITE, string);
}
DeletePVar(playerid, "OnAddFlagReason");
}
case Flag_Query_Count:
{
PlayerInfo[playerid][pFlagged] = rows;
}
case 4:
{
cache_get_value_name_int(0, "aFlagCount", value);
if(value)
{
new string[128];
format(string, sizeof(string), "SERVER: %s has logged in with %d outstanding admin flags /aviewflag to view!", GetPlayerNameEx(playerid), value);
ABroadCast(COLOR_LIGHTRED, string, 2);
}
}
}
return 1;
}
forward SkinQueryFinish(playerid, queryid);
public SkinQueryFinish(playerid, queryid)
{
new rows;
cache_get_row_count(rows);
new resultline[2000], header[32], sResult[64], skinid;
switch(queryid)
{
case Skin_Query_Display:
{
if(PlayerInfo[playerid][pDonateRank] <= 0) format(header, sizeof(header), "Closet -- Space: %d/10", PlayerInfo[playerid][pSkins]);
else if(PlayerInfo[playerid][pDonateRank] > 0) format(header, sizeof(header), "Closet -- Space: %d/25", PlayerInfo[playerid][pSkins]);
if(rows == 0) return SendClientMessageEx(playerid, COLOR_GREY, "There are no clothes in this closet!");
for(new i; i < rows; i++)
{
cache_get_value_name(i, "skinid", sResult); skinid = strval(sResult);
format(resultline, sizeof(resultline),"%sSkin ID: %d\n",resultline, skinid);
}
ShowPlayerDialogEx(playerid, SKIN_LIST, DIALOG_STYLE_LIST, header, resultline, "Select", "Cancel");
}
case Skin_Query_Count:
{
PlayerInfo[playerid][pSkins] = rows;
}
case Skin_Query_ID:
{
for(new i; i < rows; i++)
{
cache_get_value_name(i, "skinid", sResult); skinid = strval(sResult);
if(i == GetPVarInt(playerid, "closetchoiceid"))
{
SetPVarInt(playerid, "closetskinid", skinid);
SetPlayerSkin(playerid, skinid);
ShowPlayerDialogEx(playerid, SKIN_CONFIRM, DIALOG_STYLE_MSGBOX, "Closet", "Do you want to wear these clothes?", "Yes", "Go Back");
}
}
}
case Skin_Query_Delete:
{
if(PlayerInfo[playerid][pDonateRank] <= 0) format(header, sizeof(header), "Closet -- Space: %d/10", PlayerInfo[playerid][pSkins]);
else if(PlayerInfo[playerid][pDonateRank] > 0) format(header, sizeof(header), "Closet -- Space: %d/25", PlayerInfo[playerid][pSkins]);
if(rows == 0) return SendClientMessageEx(playerid, COLOR_GREY, "There are no clothes in this closet!");
for(new i; i < rows; i++)
{
cache_get_value_name(i, "skinid", sResult); skinid = strval(sResult);
format(resultline, sizeof(resultline),"%sSkin ID: %d\n",resultline, skinid);
}
ShowPlayerDialogEx(playerid, SKIN_DELETE, DIALOG_STYLE_LIST, header, resultline, "Select", "Cancel");
}
case Skin_Query_Delete_ID:
{
for(new i; i < rows; i++)
{
cache_get_value_name(i, "id", sResult); skinid = strval(sResult);
if(i == GetPVarInt(playerid, "closetchoiceid"))
{
SetPVarInt(playerid, "closetskinid", skinid);
ShowPlayerDialogEx(playerid, SKIN_DELETE2, DIALOG_STYLE_MSGBOX, "Closet", "Are you sure you want to remove these clothes?", "Yes", "Cancel");
}
}
}
}
return 1;
}
forward CitizenQueryFinish(playerid, queryid);
public CitizenQueryFinish(playerid, queryid)
{
new rows;
cache_get_row_count(rows);
switch(queryid)
{
case TR_Citizen_Count:
{
TRCitizens = rows;
}
case Total_Count:
{
TotalCitizens = rows;
}
}
return 1;
}
forward NationQueueQueryFinish(playerid, nation, queryid);
public NationQueueQueryFinish(playerid, nation, queryid)
{
new query[300], resultline[2000], sResult[64], rows;
cache_get_row_count(rows);
switch(queryid)
{
case CheckQueue:
{
if(rows == 0)
{
mysql_format(MainPipeline, query, sizeof(query), "INSERT INTO `nation_queue` (`id`, `playerid`, `name`, `date`, `nation`, `status`) VALUES (NULL, %d, '%s', NOW(), %d, 1)", GetPlayerSQLId(playerid), GetPlayerNameExt(playerid), nation);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
SendClientMessageEx(playerid, COLOR_GREY, "You have been added to the nation's application queue. The nation's leader can now choose to accept or deny your application.");
}
else
{
SendClientMessageEx(playerid, COLOR_GREY, "You are already in queue to join a nation.");
}
}
case UpdateQueue:
{
if(rows > 0)
{
mysql_format(MainPipeline, query, sizeof(query), "UPDATE `nation_queue` SET `name` = '%s' WHERE `playerid` = %d", GetPlayerNameExt(playerid), GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
}
}
case AppQueue:
{
new sDate[32];
if(rows == 0) return SendClientMessageEx(playerid, COLOR_GREY, "There are currently no pending applications.");
for(new i; i < rows; i++)
{
cache_get_value_name(i, "name", sResult, MAX_PLAYER_NAME);
cache_get_value_name(i, "date", sDate, 32);
format(resultline, sizeof(resultline), "%s%s -- Date Submitted: %s\n", resultline, sResult, sDate);
}
ShowPlayerDialogEx(playerid, NATION_APP_LIST, DIALOG_STYLE_LIST, "Nation Applications", resultline, "Select", "Cancel");
}
case AddQueue:
{
if(rows == 0)
{
mysql_format(MainPipeline, query, sizeof(query), "INSERT INTO `nation_queue` (`id`, `playerid`, `name`, `date`, `nation`, `status`) VALUES (NULL, %d, '%s', NOW(), %d, 2)", GetPlayerSQLId(playerid), GetPlayerNameExt(playerid), nation);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
PlayerInfo[playerid][pNation] = 1;
}
else
{
mysql_format(MainPipeline, query, sizeof(query), "INSERT INTO `nation_queue` (`id`, `playerid`, `name`, `date`, `nation`, `status`) VALUES (NULL, %d, NOW(), %d, 1)", GetPlayerSQLId(playerid), GetPlayerNameExt(playerid), nation);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
}
}
}
return 1;
}
forward NationAppFinish(playerid, queryid);
public NationAppFinish(playerid, queryid)
{
new query[300], string[128], sResult[64], rows;
cache_get_row_count(rows);
switch(queryid)
{
case AcceptApp:
{
for(new i; i < rows; i++)
{
cache_get_value_name(i, "id", sResult); new AppID = strval(sResult);
cache_get_value_name(i, "playerid", sResult); new UserID = strval(sResult);
cache_get_value_name(i, "name", sResult, MAX_PLAYER_NAME);
if(GetPVarInt(playerid, "Nation_App_ID") == i)
{
mysql_format(MainPipeline, query, sizeof(query), "UPDATE `nation_queue` SET `status` = 2 WHERE `id` = %d", AppID);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
new giveplayerid = ReturnUser(sResult);
switch(arrGroupData[PlayerInfo[playerid][pMember]][g_iAllegiance])
{
case 1:
{
if(IsPlayerConnected(giveplayerid))
{
PlayerInfo[giveplayerid][pNation] = 0;
SendClientMessageEx(giveplayerid, COLOR_WHITE, "Your application for San Andreas citizenship has been approved!");
}
else
{
mysql_format(MainPipeline, query, sizeof(query), "UPDATE `accounts` SET `Nation` = 0 WHERE `id` = %d", UserID);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
}
format(string, sizeof(string), "%s has approved %s's application for San Andreas citizenship", GetPlayerNameEx(playerid), sResult);
}
case 2:
{
if(IsPlayerConnected(giveplayerid))
{
PlayerInfo[giveplayerid][pNation] = 1;
SendClientMessageEx(giveplayerid, COLOR_WHITE, "Your application for New Robada citizenship has been approved!");
}
else
{
mysql_format(MainPipeline, query, sizeof(query), "UPDATE `accounts` SET `Nation` = 1 WHERE `id` = %d", UserID);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
}
format(string, sizeof(string), "%s(%d) has approved %s's(%d) application for New Robada citizenship", GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), sResult, UserID);
}
}
Log("logs/gov.log", string);
format(string, sizeof(string), "You have successfully approved %s's application.", sResult);
SendClientMessageEx(playerid, COLOR_WHITE, string);
DeletePVar(playerid, "Nation_App_ID");
}
}
}
case DenyApp:
{
for(new i; i < rows; i++)
{
cache_get_value_name(i, "id", sResult, 32); new AppID = strval(sResult);
cache_get_value_name(i, "name", sResult, MAX_PLAYER_NAME);
if(GetPVarInt(playerid, "Nation_App_ID") == i)
{
mysql_format(MainPipeline, query, sizeof(query), "UPDATE `nation_queue` SET `status` = 3 WHERE `id` = %d", AppID);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
new giveplayerid = ReturnUser(sResult);
switch(arrGroupData[PlayerInfo[playerid][pMember]][g_iAllegiance])
{
case 1:
{
if(IsPlayerConnected(giveplayerid)) SendClientMessageEx(giveplayerid, COLOR_GREY, "Your application for San Andreas citizenship has been denied.");
format(string, sizeof(string), "%s has denied %s's application for San Andreas citizenship", GetPlayerNameEx(playerid), sResult);
}
case 2:
{
if(IsPlayerConnected(giveplayerid)) SendClientMessageEx(giveplayerid, COLOR_GREY, "Your application for San Andreas citizenship has been denied.");
format(string, sizeof(string), "%s has denied %s's application for New Robada citizenship", GetPlayerNameEx(playerid), sResult);
}
}
Log("logs/gov.log", string);
format(string, sizeof(string), "You have successfully denied %s's application.", sResult);
SendClientMessageEx(playerid, COLOR_WHITE, string);
DeletePVar(playerid, "Nation_App_ID");
}
}
}
}
return 1;
}
forward CountAmount(playerid);
public CountAmount(playerid)
{
new rows;
cache_get_row_count(rows);
PlayerInfo[playerid][pLottoNr] = rows;
return 1;
}
forward UnreadMailsNotificationQueryFin(playerid);
public UnreadMailsNotificationQueryFin(playerid)
{
new szResult[8];
cache_get_value_name(0, "Unread_Count", szResult);
if (strval(szResult) > 0) {
SetPVarInt(playerid, "UnreadMails", 1);
SendClientMessageEx(playerid, COLOR_YELLOW, "You have unread items in your mailbox.");
}
return 1;
}
forward RecipientLookupFinish(playerid);
public RecipientLookupFinish(playerid)
{
new rows, szResult[16], admin, undercover, id;
cache_get_row_count(rows);
if (!rows) return ShowPlayerDialogEx(playerid, DIALOG_PORECEIVER, DIALOG_STYLE_INPUT, "Recipient", "{FF3333}Error: {FFFFFF}Invalid Recipient - Account does not exist!\n\nPlease type the name of the recipient (online or offline)", "Next", "Cancel");
cache_get_value_name(0, "AdminLevel", szResult); admin = strval(szResult);
cache_get_value_name(0, "TogReports", szResult); undercover = strval(szResult);
cache_get_value_name(0, "id", szResult); id = strval(szResult);
if (admin >= 2 && undercover == 0) return ShowPlayerDialogEx(playerid, DIALOG_PORECEIVER, DIALOG_STYLE_INPUT, "Recipient", "{FF3333}Error: {FFFFFF}You can't send a letter to admins!\n\nPlease type the name of the recipient (online or offline)", "Next", "Cancel");
SetPVarInt(playerid, "LetterRecipient", id);
ShowPlayerDialogEx(playerid, DIALOG_POMESSAGE, DIALOG_STYLE_INPUT, "Send Letter", "{FFFFFF}Please type the message.", "Send", "Cancel");
return 1;
}
forward CheckSales(index);
public CheckSales(index)
{
if(IsPlayerConnected(index))
{
new rows, szDialog[512];
cache_get_row_count(rows);
if(rows > 0)
{
for(new i;i < rows;i++)
{
new szResult[32], id;
cache_get_value_name(i, "id", szResult); id = strval(szResult);
cache_get_value_name(i, "Month", szResult, 25);
format(szDialog, sizeof(szDialog), "%s\n%s ", szDialog, szResult);
Selected[index][i] = id;
}
ShowPlayerDialogEx(index, DIALOG_VIEWSALE, DIALOG_STYLE_LIST, "Select a time frame", szDialog, "View", "Exit");
}
else
{
SendClientMessageEx(index, COLOR_WHITE, "There was an issue with checking the table.");
}
}
}
forward CheckSales2(index);
public CheckSales2(index)
{
if(IsPlayerConnected(index))
{
new rows, szDialog[3000];
cache_get_row_count(rows);
if(rows)
{
new szResult[32], szField[15], Solds[MAX_ITEMS], Amount[MAX_ITEMS];
for(new z = 0; z < MAX_ITEMS; z++)
{
format(szField, sizeof(szField), "TotalSold%d", z);
cache_get_value_name(0, szField, szResult);
Solds[z] = strval(szResult);
format(szField, sizeof(szField), "AmountMade%d", z);
cache_get_value_name(0, szField, szResult);
Amount[z] = strval(szResult);
}
format(szDialog, sizeof(szDialog),"\
Gold VIP Sold: %d | Total Credits: %s\n\
Gold VIP Renew Sold: %d | Total Credits: %s\n\
Silver VIP Sold: %d | Total Credits: %s\n\
Bronze VIP Sold: %d | Total Credits: %s\n\
Toys Sold: %d | Total Credits: %s\n\
Cars Sold: %d | Total Credits: %s\n", Solds[0], number_format(Amount[0]), Solds[1], number_format(Amount[1]), Solds[2], number_format(Amount[2]), Solds[3], number_format(Amount[3]), Solds[4], number_format(Amount[4]),
Solds[5], number_format(Amount[5]));
format(szDialog, sizeof(szDialog), "%s\
Pokertables Sold: %d | Total Credits: %s\n\
Boomboxes Sold: %d | Total Credits: %s\n\
Paintball Tokens Sold: %d | Total Credits: %s\n\
EXP Tokens Sold: %d | Total Credits: %s\n\
Fireworks Sold: %d | Total Credits: %s\n", szDialog, Solds[6], number_format(Amount[6]), Solds[7], number_format(Amount[7]), Solds[8], number_format(Amount[8]), Solds[9], number_format(Amount[9]), Solds[10], number_format(Amount[10]));
format(szDialog, sizeof(szDialog), "%sBusiness Renew Regular Sold: %d | Total Credits: %s\n\
Business Renew Standard Sold: %d | Total Credits: %s\n\
Business Renew Premium Sold: %d | Total Credits: %s\n\
Houses Sold: %d | Total Credits: %s\n", szDialog, Solds[11], number_format(Amount[11]), Solds[12], number_format(Amount[12]), Solds[13], number_format(Amount[13]), Solds[14], number_format(Amount[14]));
format(szDialog, sizeof(szDialog), "%sHouse Moves Sold: %d | Total Credits: %s\n\
House Interiors Sold: %d | Total Credits: %s\n\
Reset Gift Timer Sold: %d | Total Credits: %s\n\
Advanced Health Care Sold: %d | Total Credits: %s\n",szDialog, Solds[15], number_format(Amount[15]), Solds[16], number_format(Amount[16]), Solds[17], number_format(Amount[17]), Solds[18], number_format(Amount[18]));
format(szDialog, sizeof(szDialog), "%sSuper Health Car Sold: %d | Total Credits: %s\n\
Rented Cars Sold: %d | Total Credits: %s\n\
Custom License Sold: %d | Total Credits: %s\n\
Additional Vehicle Slot Sold: %d | Total Credits: %s\n",szDialog, Solds[19], number_format(Amount[19]), Solds[20], number_format(Amount[20]),Solds[22], number_format(Amount[22]), Solds[23], number_format(Amount[23]));
format(szDialog, sizeof(szDialog), "%sGarage - Small Sold: %d | Total Credits: %s\n\
Garage - Medium Sold: %d | Total Credits: %s\n\
Garage - Large Sold: %d | Total Credits: %s\n\
Garage - Extra Large Sold: %d | Total Credits: %s\n", szDialog, Solds[24], number_format(Amount[24]), Solds[25], number_format(Amount[25]), Solds[26], number_format(Amount[26]), Solds[27], number_format(Amount[27]));
format(szDialog, sizeof(szDialog), "%sAdditional Toy Slot Sold: %d | Total Credits: %s\n\
Hunger Voucher: %d | Total Credits: %s\n\
Spawn at Gold VIP+: %d | Total Credits: %s\n\
Restricted Last Name (NEW): %d | Total Credits: %s\n\
Restricted Last Name (CHANGE): %d | Total Credits: %s\n", szDialog, Solds[28], number_format(Amount[28]), Solds[29], number_format(Amount[29]), Solds[30], number_format(Amount[30]), Solds[31], number_format(Amount[31]), Solds[32], number_format(Amount[32]));
format(szDialog, sizeof(szDialog), "%sCustom User Title (NEW): %d | Total Credits: %s\n\
Custom User Title (CHANGE): %d | Total Credits: %s\n\
Teamspeak User Channel: %d | Total Credits: %s\n\
Small Backpack: %d | Total Credits: %s\n\
Medium Backpack: %d | Total Credits: %s\n\
Large Backpack: %d | Total Credits: %s\n\
Deluxe Car Alarm: %d | Total Credits: %s\n\
Name Changes: %d | Total Credits: %s\n",
szDialog, Solds[33], number_format(Amount[33]), Solds[34], number_format(Amount[34]), Solds[35], number_format(Amount[35]), Solds[36], number_format(Amount[36]), Solds[37], number_format(Amount[37]), Solds[38], number_format(Amount[38]), Solds[39], number_format(Amount[39]), Solds[40], number_format(Amount[40]));
format(szDialog, sizeof(szDialog), "%sCredits Transactions: %d | Total Credits %s", szDialog, Solds[21], number_format(Amount[21]));
ShowPlayerDialogEx(index, DIALOG_VIEWSALE2, DIALOG_STYLE_MSGBOX, "Shop Statistics", szDialog, "Next", "Exit");
}
else
{
SendClientMessageEx(index, COLOR_GREY, "There was an issue with checking the table.");
}
}
}
forward CheckSales3(index);
public CheckSales3(index)
{
if(IsPlayerConnected(index))
{
new rows, value;
cache_get_row_count(rows);
if(rows)
{
new szDialog[1024], szField[15], mSolds[MAX_MICROITEMS], mAmount[MAX_MICROITEMS], Total, mTotal;
for(new z = 0; z < MAX_ITEMS; z++)
{
format(szField, sizeof(szField), "AmountMade%d", z);
Total += cache_get_value_name_int(0, szField, value);
}
cache_get_value_name(0, "TotalSoldMicro", szDialog);
sscanf(szDialog, MicroSpecifier, mSolds);
cache_get_value_name(0, "AmountMadeMicro", szDialog);
sscanf(szDialog, MicroSpecifier, mAmount);
szDialog[0] = 0;
for(new m; m < MAX_MICROITEMS; m++)
{
format(szDialog, sizeof(szDialog), "%s%s: %s | Total Credits: %s\n", szDialog, mItemName[m], number_format(mSolds[m]), number_format(mAmount[m]));
mTotal += mAmount[m];
}
format(szDialog, sizeof(szDialog), "%sTotal Amount of Credits spent: %s", szDialog, number_format(Total+mTotal));
ShowPlayerDialogEx(index, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "Shop Statistics", szDialog, "Exit", "");
}
else
{
SendClientMessageEx(index, COLOR_GREY, "There was an issue with checking the table.");
}
}
}
forward LoadRentedCar(index);
public LoadRentedCar(index)
{
if(IsPlayerConnected(index))
{
new rows;
cache_get_row_count(rows);
if(rows)
{
//`sqlid`, `modelid`, `posx`, `posy`, `posz`, `posa`, `spawned`, `hours`
new szResult[32], Info[2], Float: pos[4], string[128];
cache_get_value_name(0, "modelid", szResult); Info[0] = strval(szResult);
cache_get_value_name(0, "posx", szResult); pos[0] = strval(szResult);
cache_get_value_name(0, "posy", szResult); pos[1] = strval(szResult);
cache_get_value_name(0, "posz", szResult); pos[2] = strval(szResult);
cache_get_value_name(0, "posa", szResult); pos[3] = strval(szResult);
cache_get_value_name(0, "hours", szResult); Info[1] = strval(szResult);
SetPVarInt(index, "RentedHours", Info[1]);
SetPVarInt(index, "RentedVehicle", CreateVehicle(Info[0],pos[0],pos[1], pos[2], pos[3], random(128), random(128), 2000000));
format(string, sizeof(string), "Your rented vehicle has been spawned and has %d minute(s) left.", Info[1]);
SendClientMessageEx(index, COLOR_CYAN, string);
}
}
}
forward LoadTicket(playerid);
public LoadTicket(playerid) {
new rows;
cache_get_row_count(rows);
if (rows == 0) {
return 1;
}
new number, result[10];
for(new i; i < rows; i++)
{
cache_get_value_name(i, "number", result);
number = strval(result);
LottoNumbers[playerid][i] = number;
}
return 1;
}
forward LoadTreasureInvent(playerid);
public LoadTreasureInvent(playerid)
{
new rows, szResult[10];
cache_get_row_count(rows);
if(IsPlayerConnected(playerid))
{
if(!rows)
{
new query[60];
mysql_format(MainPipeline, query, sizeof(query), "INSERT INTO `jobstuff` (`pId`) VALUES ('%d')", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
}
else
{
for(new row;row < rows;row++)
{
cache_get_value_name(row, "junkmetal", szResult); SetPVarInt(playerid, "JunkMetal", strval(szResult));
cache_get_value_name(row, "newcoin", szResult); SetPVarInt(playerid, "newcoin", strval(szResult));
cache_get_value_name(row, "oldcoin", szResult); SetPVarInt(playerid, "oldcoin", strval(szResult));
cache_get_value_name(row, "brokenwatch", szResult); SetPVarInt(playerid, "brokenwatch", strval(szResult));
cache_get_value_name(row, "oldkey", szResult); SetPVarInt(playerid, "oldkey", strval(szResult));
cache_get_value_name(row, "treasure", szResult); SetPVarInt(playerid, "treasure", strval(szResult));
cache_get_value_name(row, "goldwatch", szResult); SetPVarInt(playerid, "goldwatch", strval(szResult));
cache_get_value_name(row, "silvernugget", szResult); SetPVarInt(playerid, "silvernugget", strval(szResult));
cache_get_value_name(row, "goldnugget", szResult); SetPVarInt(playerid, "goldnugget", strval(szResult));
}
}
}
return 1;
}
forward GetHomeCount(playerid);
public GetHomeCount(playerid)
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT NULL FROM `houses` WHERE `OwnerID` = %d", GetPlayerSQLId(playerid));
return mysql_tquery(MainPipeline, string, "QueryGetCountFinish", "ii", playerid, 2);
}
forward AddReportToken(playerid);
public AddReportToken(playerid)
{
new
sz_playerName[MAX_PLAYER_NAME],
i_timestamp[3],
tdate[11],
thour[9],
query[128];
GetPlayerName(playerid, sz_playerName, MAX_PLAYER_NAME);
getdate(i_timestamp[0], i_timestamp[1], i_timestamp[2]);
format(tdate, sizeof(tdate), "%d-%02d-%02d", i_timestamp[0], i_timestamp[1], i_timestamp[2]);
format(thour, sizeof(thour), "%02d:00:00", hour);
mysql_format(MainPipeline, query, sizeof(query), "SELECT NULL FROM `tokens_report` WHERE `playerid` = %d AND `date` = '%s' AND `hour` = '%s'", GetPlayerSQLId(playerid), tdate, thour);
mysql_tquery(MainPipeline, query, "QueryTokenFinish", "ii", playerid, 1);
return 1;
}
forward AddCAReportToken(playerid);
public AddCAReportToken(playerid)
{
new
sz_playerName[MAX_PLAYER_NAME],
i_timestamp[3],
tdate[11],
thour[9],
query[128];
GetPlayerName(playerid, sz_playerName, MAX_PLAYER_NAME);
getdate(i_timestamp[0], i_timestamp[1], i_timestamp[2]);
format(tdate, sizeof(tdate), "%d-%02d-%02d", i_timestamp[0], i_timestamp[1], i_timestamp[2]);
format(thour, sizeof(thour), "%02d:00:00", hour);
mysql_format(MainPipeline, query, sizeof(query), "SELECT NULL FROM `tokens_request` WHERE `playerid` = %d AND `date` = '%s' AND `hour` = '%s'", GetPlayerSQLId(playerid), tdate, thour);
mysql_tquery(MainPipeline, query, "QueryTokenFinish", "ii", playerid, 2);
return 1;
}
forward AddCallToken(playerid);
public AddCallToken(playerid)
{
new
sz_playerName[MAX_PLAYER_NAME],
i_timestamp[3],
tdate[11],
query[128];
GetPlayerName(playerid, sz_playerName, MAX_PLAYER_NAME);
getdate(i_timestamp[0], i_timestamp[1], i_timestamp[2]);
format(tdate, sizeof(tdate), "%d-%02d-%02d", i_timestamp[0], i_timestamp[1], i_timestamp[2]);
mysql_format(MainPipeline, query, sizeof(query), "SELECT NULL FROM `tokens_call` WHERE `playerid` = %d AND `date` = '%s' AND `hour` = %d", GetPlayerSQLId(playerid), tdate, hour);
mysql_tquery(MainPipeline, query, "QueryTokenFinish", "ii", playerid, 3);
return 1;
}
forward AddWDToken(playerid);
public AddWDToken(playerid)
{
new
sz_playerName[MAX_PLAYER_NAME],
i_timestamp[3],
tdate[11],
thour[9],
query[128];
GetPlayerName(playerid, sz_playerName, MAX_PLAYER_NAME);
getdate(i_timestamp[0], i_timestamp[1], i_timestamp[2]);
format(tdate, sizeof(tdate), "%d-%02d-%02d", i_timestamp[0], i_timestamp[1], i_timestamp[2]);
format(thour, sizeof(thour), "%02d:00:00", hour);
mysql_format(MainPipeline, query, sizeof(query), "SELECT NULL FROM `tokens_wd` WHERE `playerid` = %d AND `date` = '%s' AND `hour` = '%s'", GetPlayerSQLId(playerid), tdate, thour);
mysql_tquery(MainPipeline, query, "QueryTokenFinish", "ii", playerid, 4);
return 1;
}
forward QueryTokenFinish(playerid, type);
public QueryTokenFinish(playerid, type)
{
new rows, string[128], i_timestamp[3], tdate[11], thour[9];
cache_get_row_count(rows);
getdate(i_timestamp[0], i_timestamp[1], i_timestamp[2]);
format(tdate, sizeof(tdate), "%d-%02d-%02d", i_timestamp[0], i_timestamp[1], i_timestamp[2]);
format(thour, sizeof(thour), "%02d:00:00", hour);
switch(type)
{
case 1:
{
if(rows == 0)
{
mysql_format(MainPipeline, string, sizeof(string), "INSERT INTO `tokens_report` (`id`, `playerid`, `date`, `hour`, `count`) VALUES (NULL, %d, '%s', '%s', 1)", GetPlayerSQLId(playerid), tdate, thour);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
else
{
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `tokens_report` SET `count` = count+1 WHERE `playerid` = %d AND `date` = '%s' AND `hour` = '%s'", GetPlayerSQLId(playerid), tdate, thour);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
}
case 2:
{
if(rows == 0)
{
mysql_format(MainPipeline, string, sizeof(string), "INSERT INTO `tokens_request` (`id`, `playerid`, `date`, `hour`, `count`) VALUES (NULL, %d, '%s', '%s', 1)", GetPlayerSQLId(playerid), tdate, thour);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
else
{
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `tokens_request` SET `count` = count+1 WHERE `playerid` = %d AND `date` = '%s' AND `hour` = '%s'", GetPlayerSQLId(playerid), tdate, thour);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
}
case 3:
{
if(rows == 0)
{
mysql_format(MainPipeline, string, sizeof(string), "INSERT INTO `tokens_call` (`id`, `playerid`, `date`, `hour`, `count`) VALUES (NULL, %d, '%s', %d, 1)", GetPlayerSQLId(playerid), tdate, hour);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
else
{
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `tokens_call` SET `count` = count+1 WHERE `playerid` = %d AND `date` = '%s' AND `hour` = %d", GetPlayerSQLId(playerid), tdate, hour);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
}
case 4:
{
if(rows == 0)
{
mysql_format(MainPipeline, string, sizeof(string), "INSERT INTO `tokens_wd` (`id`, `playerid`, `date`, `hour`, `count`) VALUES (NULL, %d, '%s', '%s', 1)", GetPlayerSQLId(playerid), tdate, thour);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
else
{
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `tokens_wd` SET `count` = count+1 WHERE `playerid` = %d AND `date` = '%s' AND `hour` = '%s'", GetPlayerSQLId(playerid), tdate, thour);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
}
}
return 1;
}
forward GetReportCount(userid, tdate[]);
public GetReportCount(userid, tdate[])
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT SUM(count) FROM `tokens_report` WHERE `playerid` = %d AND `date` = '%s'", GetPlayerSQLId(userid), tdate);
return mysql_tquery(MainPipeline, string, "QueryGetCountFinish", "ii", userid, 0);
}
forward GetHourReportCount(userid, thour[], tdate[]);
public GetHourReportCount(userid, thour[], tdate[])
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT `count` FROM `tokens_report` WHERE `playerid` = %d AND `date` = '%s' AND `hour` = '%s'", GetPlayerSQLId(userid), tdate, thour);
return mysql_tquery(MainPipeline, string, "QueryGetCountFinish", "ii", userid, 1);
}
forward GetRequestCount(userid, tdate[]);
public GetRequestCount(userid, tdate[])
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT SUM(count) FROM `tokens_request` WHERE `playerid` = %d AND `date` = '%s'", GetPlayerSQLId(userid), tdate);
return mysql_tquery(MainPipeline, string, "QueryGetCountFinish", "ii", userid, 0);
}
forward GetHourRequestCount(userid, thour[], tdate[]);
public GetHourRequestCount(userid, thour[], tdate[])
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT `count` FROM `tokens_request` WHERE `playerid` = %d AND `date` = '%s' AND `hour` = '%s'", GetPlayerSQLId(userid), tdate, thour);
return mysql_tquery(MainPipeline, string, "QueryGetCountFinish", "ii", userid, 1);
}
forward GetWDCount(userid, tdate[]);
public GetWDCount(userid, tdate[])
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT SUM(count) FROM `tokens_wd` WHERE `playerid` = %d AND `date` = '%s'", GetPlayerSQLId(userid), tdate);
return mysql_tquery(MainPipeline, string, "QueryGetCountFinish", "ii", userid, 3);
}
forward GetWDHourCount(userid, thour[], tdate[]);
public GetWDHourCount(userid, thour[], tdate[])
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT `count` FROM `tokens_wd` WHERE `playerid` = %d AND `date` = '%s' AND `hour` = '%s'", GetPlayerSQLId(userid), tdate, thour);
return mysql_tquery(MainPipeline, string, "QueryGetCountFinish", "ii", userid, 4);
}
forward QueryGetCountFinish(userid, type);
public QueryGetCountFinish(userid, type)
{
new rows, sResult[24], value;
cache_get_row_count(rows);
switch(type)
{
case 0:
{
if(rows > 0)
{
cache_get_value_name(0, "SUM(count)", sResult);
ReportCount[userid] = strval(sResult);
}
else ReportCount[userid] = 0;
}
case 1:
{
if(rows > 0)
{
cache_get_value_name(0, "count", sResult);
ReportHourCount[userid] = strval(sResult);
}
else ReportHourCount[userid] = 0;
}
case 2:
{
Homes[userid] = rows;
}
case 3:
{
if(rows > 0)
{
cache_get_value_name(0, "SUM(count)", sResult);
WDReportCount[userid] = strval(sResult);
}
else WDReportCount[userid] = 0;
}
case 4:
{
if(rows > 0)
{
WDReportHourCount[userid] = cache_get_value_name_int(0, "count", value);
}
else WDReportHourCount[userid] = 0;
}
}
return 1;
}
task MailDeliveryTimer[60000 * 5]()
{
mysql_tquery(MainPipeline, "UPDATE `letters` SET `Delivery_Min` = `Delivery_Min` - 1 WHERE `Delivery_Min` > 0", "OnQueryFinish", "i", SENDDATA_THREAD);
mysql_tquery(MainPipeline, "SELECT `Receiver_Id` FROM `letters` WHERE `Delivery_Min` = 1", "MailDeliveryQueryFinish", "");
return 1;
}
forward OnLoadMailboxes();
public OnLoadMailboxes()
{
new string[512], i;
new rows, fields;
cache_get_row_count(rows);
cache_get_field_count(fields);
while(i 0) printf("[LoadMailboxes] %d mailboxes rehashed/loaded.", i);
else printf("[LoadMailboxes] Failed to load any mailboxes.");
return 1;
}
forward LoadDynamicGroups();
public LoadDynamicGroups()
{
mysql_tquery(MainPipeline, "SELECT * FROM `groups`", "Group_QueryFinish", "ii", GROUP_QUERY_LOAD, 0);
mysql_tquery(MainPipeline, "SELECT * FROM `lockers`", "Group_QueryFinish", "ii", GROUP_QUERY_LOCKERS, 0);
mysql_tquery(MainPipeline, "SELECT * FROM `jurisdictions`", "Group_QueryFinish", "ii", GROUP_QUERY_JURISDICTIONS, 0);
mysql_tquery(MainPipeline, "SELECT * FROM `gweaponsnew`", "Group_QueryFinish", "ii", GROUP_QUERY_GWEAPONS, 0);
mysql_tquery(MainPipeline, "SELECT * FROM `locker_restrict`", "Group_QueryFinish", "ii", GROUP_QUERY_GWEAPONS_RANK, 0);
//mysql_tquery(MainPipeline, "SELECT * FROM `gWeapons`", "Group_QueryFinish", "ii", GROUP_QUERY_GWEAPONS, 0);
return ;
}
forward ParkRentedVehicle(playerid, vehicleid, modelid, Float:X, Float:Y, Float:Z);
public ParkRentedVehicle(playerid, vehicleid, modelid, Float:X, Float:Y, Float:Z)
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, X, Y, Z))
{
new Float:x, Float:y, Float:z, Float:angle, Float:health, string[180], Float: oldfuel, arrDamage[4];
GetVehicleHealth(vehicleid, health);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessageEx(playerid, COLOR_GREY, "You must be in the driver seat.");
if(health < 800) return SendClientMessageEx(playerid, COLOR_GREY, " Your vehicle is too damaged to park it.");
GetVehiclePos(vehicleid, x, y, z);
GetVehicleZAngle(vehicleid, angle);
SurfingCheck(vehicleid);
oldfuel = VehicleFuel[vehicleid];
GetVehicleDamageStatus(vehicleid, arrDamage[0], arrDamage[1], arrDamage[2], arrDamage[3]);
DestroyVehicle(GetPVarInt(playerid, "RentedVehicle"));
SetPVarInt(playerid, "RentedVehicle", CreateVehicle(modelid, x, y, z, angle, random(128), random(128), 2000000));
Vehicle_ResetData(GetPVarInt(playerid, "RentedVehicle"));
VehicleFuel[GetPVarInt(playerid, "RentedVehicle")] = oldfuel;
SetVehicleHealth(GetPVarInt(playerid, "RentedVehicle"), health);
UpdateVehicleDamageStatus(vehicleid, arrDamage[0], arrDamage[1], arrDamage[2], arrDamage[3]);
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `rentedcars` SET `posx` = '%f', `posy` = '%f', `posz` = '%f', `posa` = '%f' WHERE `sqlid` = '%d'", x, y, z, angle, GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "ii", SENDDATA_THREAD, playerid);
IsPlayerEntering{playerid} = true;
PutPlayerInVehicle(playerid, vehicleid, 0);
SetPlayerArmedWeapon(playerid, 0);
format(string, sizeof(string), "* %s has parked their vehicle.", GetPlayerNameEx(playerid));
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Vehicle did not park because you moved!");
}
return 1;
}
forward OnPlayerChangePass(index);
public OnPlayerChangePass(index)
{
if(cache_affected_rows()) {
new szMessage[103];
GetPVarString(index, "PassChange", PlayerInfo[index][pLastPass], 65);
format(szMessage, sizeof(szMessage), "You have changed your password to '%s'.", PlayerInfo[index][pLastPass]);
SendClientMessageEx(index, COLOR_YELLOW, szMessage);
format(szMessage, sizeof(szMessage), "%s(%d) (IP: %s) has changed their password.", GetPlayerNameEx(index), GetPlayerSQLId(index), PlayerInfo[index][pIP]);
Log("logs/password.log", szMessage);
DeletePVar(index, "PassChange");
mysql_format(MainPipeline, szMessage, sizeof(szMessage), "UPDATE `accounts` SET `LastPassChange` = NOW() WHERE `id` = '%i'", PlayerInfo[index][pId]);
mysql_tquery(MainPipeline, szMessage, "OnQueryFinish", "ii", SENDDATA_THREAD, index);
if(PlayerInfo[index][pForcePasswordChange] == 1)
{
PlayerInfo[index][pForcePasswordChange] = 0;
mysql_format(MainPipeline, szMessage, sizeof(szMessage), "UPDATE `accounts` SET `ForcePasswordChange` = '0' WHERE `id` = '%i'", PlayerInfo[index][pId]);
mysql_tquery(MainPipeline, szMessage, "OnQueryFinish", "ii", SENDDATA_THREAD, index);
}
}
else {
SendClientMessageEx(index, COLOR_RED, "There was an issue with processing your request. Your password will remain as it is.");
if(PlayerInfo[index][pForcePasswordChange] == 1) ShowLoginDialogs(index, 0);
}
return 1;
}
forward OnChangeUserPassword(index);
public OnChangeUserPassword(index)
{
if(GetPVarType(index, "ChangePin"))
{
new string[128], name[24];
GetPVarString(index, "OnChangeUserPassword", name, 24);
if(cache_affected_rows()) {
format(string, sizeof(string), "You have successfully changed %s's pin.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
else {
format(string, sizeof(string), "There was an issue with changing %s's pin.", name);
format(string, sizeof(string), "There was an issue with changing %s's pin.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
DeletePVar(index, "ChangePin");
DeletePVar(index, "OnChangeUserPassword");
}
else
{
new string[128], name[24];
GetPVarString(index, "OnChangeUserPassword", name, 24);
if(cache_affected_rows()) {
format(string, sizeof(string), "You have successfully changed %s's password.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
else {
format(string, sizeof(string), "There was an issue with changing %s's password.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
DeletePVar(index, "OnChangeUserPassword");
}
return 1;
}
forward QueryCheckCountFinish(playerid, giveplayername[], tdate[], type);
public QueryCheckCountFinish(playerid, giveplayername[], tdate[], type)
{
new string[128], rows, sResult[24], tcount, hhour[9], chour;
cache_get_row_count(rows);
switch(type)
{
case 0:
{
cache_get_value_name(0, "SUM(count)", sResult); tcount = strval(sResult);
if(tcount > 0)
{
format(string, sizeof(string), "%s accepted {%06x}%d {%06x}reports on %s.", giveplayername, COLOR_GREEN >>> 8, tcount, COLOR_WHITE >>> 8, tdate);
SendClientMessageEx(playerid, COLOR_WHITE, string);
}
else
{
format(string, sizeof(string), "%s did not accept any reports on %s.", giveplayername, tdate);
return SendClientMessageEx(playerid, COLOR_GRAD1, string);
}
}
case 1:
{
if(rows > 0)
{
SendClientMessageEx(playerid, COLOR_GRAD1, "By hour:");
for(new i; i < rows; i++)
{
cache_get_value_name(i, "count", sResult); new hcount = strval(sResult);
cache_get_value_name(i, "hour", hhour, sizeof(hhour));
format(hhour, sizeof(hhour), "%s", str_replace(":00:00", "", hhour));
chour = strval(hhour);
format(string, sizeof(string), "%s: {%06x}%d", ConvertToTwelveHour(chour), COLOR_GREEN >>> 8, hcount);
SendClientMessageEx(playerid, COLOR_WHITE, string);
}
}
}
case 2:
{
cache_get_value_name(0, "SUM(count)", sResult); tcount = strval(sResult);
if(tcount > 0)
{
format(string, sizeof(string), "%s accepted {%06x}%d {%06x}help requests on %s.", giveplayername, COLOR_GREEN >>> 8, tcount, COLOR_WHITE >>> 8, tdate);
SendClientMessageEx(playerid, COLOR_WHITE, string);
}
else
{
format(string, sizeof(string), "%s did not accept any help requests on %s.", giveplayername, tdate);
return SendClientMessageEx(playerid, COLOR_GRAD1, string);
}
}
case 3:
{
if(rows > 0)
{
SendClientMessageEx(playerid, COLOR_GRAD1, "By hour:");
for(new i; i < rows; i++)
{
cache_get_value_name(i, "count", sResult); new hcount = strval(sResult);
cache_get_value_name(i, "hour", hhour, sizeof(hhour));
format(hhour, sizeof(hhour), "%s", str_replace(":00:00", "", hhour));
chour = strval(hhour);
format(string, sizeof(string), "%s: {%06x}%d", ConvertToTwelveHour(chour), COLOR_GREEN >>> 8, hcount);
SendClientMessageEx(playerid, COLOR_WHITE, string);
}
}
}
case 4:
{
cache_get_value_name(0, "SUM(count)", sResult); tcount = strval(sResult);
if(tcount > 0)
{
format(string, sizeof(string), "%s watched {%06x}%d {%06x}people on %s.", giveplayername, COLOR_GREEN >>> 8, tcount, COLOR_WHITE >>> 8, tdate);
SendClientMessageEx(playerid, COLOR_WHITE, string);
}
else
{
format(string, sizeof(string), "%s did not watch anyone on %s.", giveplayername, tdate);
return SendClientMessageEx(playerid, COLOR_GRAD1, string);
}
}
case 5:
{
if(rows > 0)
{
SendClientMessageEx(playerid, COLOR_GRAD1, "By hour:");
for(new i; i < rows; i++)
{
cache_get_value_name(i, "count", sResult); new hcount = strval(sResult);
cache_get_value_name(i, "hour", hhour, sizeof(hhour));
format(hhour, sizeof(hhour), "%s", str_replace(":00:00", "", hhour));
chour = strval(hhour);
format(string, sizeof(string), "%s: {%06x}%d", ConvertToTwelveHour(chour), COLOR_GREEN >>> 8, hcount);
SendClientMessageEx(playerid, COLOR_WHITE, string);
}
}
}
}
return 1;
}
forward QueryUsernameCheck(playerid, tdate[], type);
public QueryUsernameCheck(playerid, tdate[], type)
{
new string[128], rows, giveplayerid, sResult[MAX_PLAYER_NAME];
cache_get_row_count(rows);
if(rows > 0)
{
switch(type)
{
case 0:
{
cache_get_value_name(0, "id", sResult); giveplayerid = strval(sResult);
cache_get_value_name(0, "Username", sResult, sizeof(sResult));
mysql_format(MainPipeline, string, sizeof(string), "SELECT SUM(count) FROM `tokens_report` WHERE `playerid` = %d AND `date` = '%s'", giveplayerid, tdate);
mysql_tquery(MainPipeline, string, "QueryCheckCountFinish", "issi", playerid, sResult, tdate, 0);
mysql_format(MainPipeline, string, sizeof(string), "SELECT `count`, `hour` FROM `tokens_report` WHERE `playerid` = %d AND `date` = '%s' ORDER BY `hour` ASC", giveplayerid, tdate);
mysql_tquery(MainPipeline, string, "QueryCheckCountFinish", "issi", playerid, sResult, tdate, 1);
}
case 1:
{
cache_get_value_name(0, "id", sResult); giveplayerid = strval(sResult);
cache_get_value_name(0, "Username", sResult, sizeof(sResult));
mysql_format(MainPipeline, string, sizeof(string), "SELECT SUM(count) FROM `tokens_request` WHERE `playerid` = %d AND `date` = '%s'", giveplayerid, tdate);
mysql_tquery(MainPipeline, string, "QueryCheckCountFinish", "issi", playerid, sResult, tdate, 2);
mysql_format(MainPipeline, string, sizeof(string), "SELECT `count`, `hour` FROM `tokens_request` WHERE `playerid` = %d AND `date` = '%s' ORDER BY `hour` ASC", giveplayerid, tdate);
mysql_tquery(MainPipeline, string, "QueryCheckCountFinish", "issi", playerid, sResult, tdate, 3);
}
case 2:
{
cache_get_value_name(0, "id", sResult); giveplayerid = strval(sResult);
cache_get_value_name(0, "Username", sResult, sizeof(sResult));
mysql_format(MainPipeline, string, sizeof(string), "SELECT SUM(count) FROM `tokens_wd` WHERE `playerid` = %d AND `date` = '%s'", giveplayerid, tdate);
mysql_tquery(MainPipeline, string, "QueryCheckCountFinish", "issi", playerid, sResult, tdate, 4);
mysql_format(MainPipeline, string, sizeof(string), "SELECT `count`, `hour` FROM `tokens_wd` WHERE `playerid` = %d AND `date` = '%s' ORDER BY `hour` ASC", giveplayerid, tdate);
mysql_tquery(MainPipeline, string, "QueryCheckCountFinish", "issi", playerid, sResult, tdate, 5);
}
}
}
else return SendClientMessageEx(playerid, COLOR_GRAD1, "That account doesn't exist!");
return 1;
}
forward OnBanPlayer(index);
public OnBanPlayer(index)
{
new string[128], name[24], reason[64];
GetPVarString(index, "OnBanPlayer", name, 24);
GetPVarString(index, "OnBanPlayerReason", reason, 64);
if(IsPlayerConnected(index))
{
if(cache_affected_rows()) {
format(string, sizeof(string), "You have successfully banned %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
format(string, sizeof(string), "AdmCmd: %s was offline banned by %s, reason: %s", name, GetPlayerNameEx(index), reason);
Log("logs/ban.log", string);
format(string, 128, "AdmCmd: %s was offline banned by %s, reason: %s", name, GetPlayerNameEx(index), reason);
ABroadCast(COLOR_LIGHTRED,string,2);
print(string);
}
else {
format(string, sizeof(string), "There was an issue with banning %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
DeletePVar(index, "OnBanPlayer");
DeletePVar(index, "OnBanPlayerReason");
}
return 1;
}
forward OnBanIP(index);
public OnBanIP(index)
{
if(IsPlayerConnected(index))
{
new rows;
new string[256], ip[32], id, value;
cache_get_row_count(rows);
if(rows)
{
id = cache_get_value_name_int(0, "id", value);
cache_get_value_name(0, "IP", ip);
MySQLBan(id, ip, "Offline Banned (/banaccount)", 1, GetPlayerNameEx(index));
mysql_format(MainPipeline, string, sizeof(string), "INSERT INTO `ip_bans` (`ip`, `date`, `reason`, `admin`) VALUES ('%s', NOW(), '%s', '%s')", ip, "Offline Banned", GetPlayerNameEx(index));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
}
return 1;
}
forward OnUnbanPlayer(index);
public OnUnbanPlayer(index)
{
new string[128], name[24];
GetPVarString(index, "OnUnbanPlayer", name, 24);
if(cache_affected_rows()) {
format(string, sizeof(string), "You have successfully unbanned %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
format(string, 128, "AdmCmd: %s was unbanned by %s.", name, GetPlayerNameEx(index));
ABroadCast(COLOR_LIGHTRED,string,2);
format(string, sizeof(string), "AdmCmd: %s was unbanned by %s.", name, GetPlayerNameEx(index));
Log("logs/ban.log", string);
print(string);
}
else {
format(string, sizeof(string), "There was an issue with unbanning %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
DeletePVar(index, "OnUnbanPlayer");
return 1;
}
forward OnUnbanIP(index);
public OnUnbanIP(index)
{
if(IsPlayerConnected(index))
{
new string[128], ip[16];
new rows;
cache_get_row_count(rows);
if(rows) {
cache_get_value_name(0, "IP", ip, 16);
//RemoveBan(index, ip);
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `bans` SET `status` = 4, `date_unban` = NOW() WHERE `ip_address` = '%s'", ip);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
}
return 1;
}
// Use this for generic "You have successfully altered X's account" messages... no need for 578947 public functions!
forward Query_OnExecution(iTargetID);
public Query_OnExecution(iTargetID) {
new
szName[MAX_PLAYER_NAME],
szMessage[64];
GetPVarString(iTargetID, "QueryEx_Name", szName, sizeof szName);
if(cache_affected_rows()) {
format(szMessage, sizeof szMessage, "The query on %s's account was successful.", szName);
SendClientMessageEx(iTargetID, COLOR_WHITE, szMessage);
}
else {
format(szMessage, sizeof szMessage, "The query on %s's account was unsuccessful.", szName);
SendClientMessageEx(iTargetID, COLOR_WHITE, szMessage);
}
return DeletePVar(iTargetID, "QueryEx_Name");
}
forward OnSetSuspended(index, value);
public OnSetSuspended(index, value)
{
new string[128], name[24];
GetPVarString(index, "OnSetSuspended", name, 24);
if(cache_affected_rows()) {
format(string, sizeof(string), "You have successfully %s %s's account.", ((value) ? ("suspended") : ("unsuspended")), name);
SendClientMessageEx(index, COLOR_WHITE, string);
format(string, sizeof(string), "AdmCmd: %s was offline %s by %s.", name, ((value) ? ("suspended") : ("unsuspended")), GetPlayerNameEx(index));
Log("logs/admin.log", string);
}
else {
format(string, sizeof(string), "There was an issue with %s %s's account.", ((value) ? ("suspending") : ("unsuspending")), name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
DeletePVar(index, "OnSetSuspended");
return 1;
}
forward OnSetCrime(index);
public OnSetCrime(index)
{
new string[128], name[24];
GetPVarString(index, "OfflineSU", name, 24);
if(cache_affected_rows()) {
format(string, sizeof(string), "You have successfully added a crime to %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
else {
format(string, sizeof(string), "There was an issue with adding a crime to %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
DeletePVar(index, "OfflineSU");
return 1;
}
forward OnSetMyName(index);
public OnSetMyName(index)
{
if(IsPlayerConnected(index))
{
new rows;
cache_get_row_count(rows);
if(!rows)
{
new string[128], tmpName[24];
GetPVarString(index, "OnSetMyName", tmpName, 24);
new name[MAX_PLAYER_NAME];
GetPlayerName(index, name, sizeof(name));
SetPVarString(index, "TempNameName", name);
if(strlen(tmpName) > 0)
{
SetPlayerName(index, tmpName);
format(string, sizeof(string), "%s has changed their name to %s.", name, tmpName);
Log("logs/undercover.log", string);
DeletePVar(index, "OnSetMyName");
format(string, sizeof(string), "You have temporarily set your name to %s.", tmpName);
SendClientMessageEx(index, COLOR_YELLOW, string);
SendClientMessageEx(index, COLOR_GRAD2, "NOTE: None of your stats will save until you type this command again.");
SetPVarInt(index, "TempName", 1);
}
}
else
{
SendClientMessageEx(index, COLOR_WHITE, "This name is already registered.");
}
}
else
{
DeletePVar(index, "OnSetMyName");
}
return 1;
}
forward OnSetName(index, extraid);
public OnSetName(index, extraid)
{
if(IsPlayerConnected(index))
{
if(IsPlayerConnected(extraid))
{
new rows;
cache_get_row_count(rows);
if(rows < 1)
{
new string[128], tmpName[24], playername[24];
GetPVarString(index, "OnSetName", tmpName, 24);
GetPlayerName(extraid, playername, sizeof(playername));
UpdateCitizenApp(extraid, PlayerInfo[extraid][pNation]);
if(PlayerInfo[extraid][pMarriedID] != -1)
{
foreach(new i: Player)
{
if(PlayerInfo[extraid][pMarriedID] == GetPlayerSQLId(i)) format(PlayerInfo[i][pMarriedName], MAX_PLAYER_NAME, "%s", tmpName);
}
}
for(new i; i < MAX_DDOORS; i++)
{
if(DDoorsInfo[i][ddType] == 1 && DDoorsInfo[i][ddOwner] == GetPlayerSQLId(extraid))
{
strcat((DDoorsInfo[i][ddOwnerName][0] = 0, DDoorsInfo[i][ddOwnerName]), tmpName, 42);
DestroyDynamicPickup(DDoorsInfo[i][ddPickupID]);
if(IsValidDynamic3DTextLabel(DDoorsInfo[i][ddTextID])) DestroyDynamic3DTextLabel(DDoorsInfo[i][ddTextID]);
CreateDynamicDoor(i);
SaveDynamicDoor(i);
}
}
for(new i; i < MAX_GARAGES; i++)
{
if(GarageInfo[i][gar_Owner] == GetPlayerSQLId(extraid))
{
format(GarageInfo[i][gar_OwnerName], MAX_PLAYER_NAME, "%s", tmpName);
CreateGarage(i);
SaveGarage(i);
}
}
if(Homes[extraid] > 0)
{
for(new i; i < MAX_HOUSES; i++)
{
if(GetPlayerSQLId(extraid) == HouseInfo[i][hOwnerID])
{
format(HouseInfo[i][hOwnerName], MAX_PLAYER_NAME, "%s", tmpName);
SaveHouse(i);
ReloadHouseText(i);
}
}
}
if(PlayerInfo[extraid][pDonateRank] >= 1)
{
new string2[128];
format(string2, sizeof(string2), "[VIP NAMECHANGES] %s has changed their name to %s.", GetPlayerNameEx(extraid), tmpName);
Log("logs/vipnamechanges.log", string2);
}
if(strlen(tmpName) > 0)
{
format(string, sizeof(string), " Your name has been changed from %s to %s.", GetPlayerNameEx(extraid), tmpName);
SendClientMessageEx(extraid,COLOR_YELLOW,string);
format(string, sizeof(string), " You have changed %s's name to %s.", GetPlayerNameEx(extraid), tmpName);
SendClientMessageEx(index,COLOR_YELLOW,string);
format(string, sizeof(string), "%s changed %s's name to %s",GetPlayerNameEx(index),GetPlayerNameExt(extraid),tmpName);
Log("logs/stats.log", string);
if(SetPlayerName(extraid, tmpName) == 1)
{
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `accounts` SET `Username`='%s' WHERE `Username`='%s'", tmpName, playername);
mysql_tquery(MainPipeline, string, "OnSetNameTwo", "ii", index, extraid);
}
else
{
SendClientMessage(extraid, COLOR_REALRED, "There was an issue with your name change.");
format(string, sizeof(string), "%s's name change has failed due to incorrect size or characters.", GetPlayerNameExt(extraid));
SendClientMessage(extraid, COLOR_REALRED, string);
format(string, sizeof(string), "Error changing %s's name to %s", GetPlayerNameExt(extraid), tmpName);
Log("logs/stats.log", string);
return 1;
}
OnPlayerStatsUpdate(extraid);
}
}
}
}
DeletePVar(index, "OnSetName");
return 1;
}
forward OnSetNameTwo(index, extraid);
public OnSetNameTwo(index, extraid)
{
return 1;
}
forward OnApproveName(index, extraid);
public OnApproveName(index, extraid)
{
if(IsPlayerConnected(extraid))
{
new string[128];
new rows;
cache_get_row_count(rows);
if(rows < 1)
{
new newname[24], oldname[24];
GetPVarString(extraid, "NewNameRequest", newname, 24);
GetPlayerName(extraid, oldname, sizeof(oldname));
UpdateCitizenApp(extraid, PlayerInfo[extraid][pNation]);
if(PlayerInfo[extraid][pMarriedID] != -1)
{
foreach(new i: Player)
{
if(PlayerInfo[extraid][pMarriedID] == GetPlayerSQLId(i)) format(PlayerInfo[i][pMarriedName], MAX_PLAYER_NAME, "%s", newname);
}
}
for(new i; i < MAX_DDOORS; i++)
{
if(DDoorsInfo[i][ddType] == 1 && DDoorsInfo[i][ddOwner] == GetPlayerSQLId(extraid))
{
strcat((DDoorsInfo[i][ddOwnerName][0] = 0, DDoorsInfo[i][ddOwnerName]), newname, 42);
DestroyDynamicPickup(DDoorsInfo[i][ddPickupID]);
if(IsValidDynamic3DTextLabel(DDoorsInfo[i][ddTextID])) DestroyDynamic3DTextLabel(DDoorsInfo[i][ddTextID]);
CreateDynamicDoor(i);
SaveDynamicDoor(i);
}
}
for(new i; i < MAX_GARAGES; i++)
{
if(GarageInfo[i][gar_Owner] == GetPlayerSQLId(extraid))
{
format(GarageInfo[i][gar_OwnerName], MAX_PLAYER_NAME, "%s", newname);
CreateGarage(i);
SaveGarage(i);
}
}
if(Homes[extraid] > 0)
{
for(new i; i < MAX_HOUSES; i++)
{
if(GetPlayerSQLId(extraid) == HouseInfo[i][hOwnerID])
{
format(HouseInfo[i][hOwnerName], MAX_PLAYER_NAME, "%s", newname);
SaveHouse(i);
ReloadHouseText(i);
}
}
}
if(PlayerInfo[extraid][pBusiness] != INVALID_BUSINESS_ID && Businesses[PlayerInfo[extraid][pBusiness]][bOwner] == GetPlayerSQLId(extraid))
{
strcpy(Businesses[PlayerInfo[extraid][pBusiness]][bOwnerName], newname, MAX_PLAYER_NAME);
SaveBusiness(PlayerInfo[extraid][pBusiness]);
RefreshBusinessPickup(PlayerInfo[extraid][pBusiness]);
}
if(PlayerInfo[extraid][pDonateRank] >= 1)
{
format(string, sizeof(string), "[VIP NAMECHANGES] %s(%d) has changed their name to %s.", GetPlayerNameEx(extraid), GetPlayerSQLId(extraid), newname);
Log("logs/vipnamechanges.log", string);
}
if(GetPVarType(extraid, "marriagelastname"))
{
if(strlen(newname) > 0)
{
if(SetPlayerName(extraid, newname) == 1)
{
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `accounts` SET `Username`='%s' WHERE `Username`='%s'", newname, oldname);
mysql_tquery(MainPipeline, string, "OnApproveSetName", "ii", index, extraid);
format(string, sizeof(string), "%s last name has been changed upon marriage. New Name: \"%s\" (id: %i).", oldname, newname, GetPlayerSQLId(extraid));
Log("logs/stats.log", string);
SendClientMessageEx(extraid, -1, "Upon a successful marriage your last name has been changed to match your spouse's at your own request.");
}
else
{
SendClientMessage(extraid, COLOR_REALRED, "There was an issue with your name change.");
format(string, sizeof(string), "Error changing %s's(%d) name to %s", GetPlayerNameExt(extraid), GetPlayerSQLId(extraid), newname);
Log("logs/stats.log", string);
return 1;
}
DeletePVar(extraid, "marriagelastname");
}
}
else if((0 <= PlayerInfo[extraid][pMember] < MAX_GROUPS) && PlayerInfo[extraid][pRank] >= arrGroupData[PlayerInfo[extraid][pMember]][g_iFreeNameChange])
{
if(strlen(newname) > 0)
{
format(string, sizeof(string), " Your name has been changed from %s to %s for free.", GetPlayerNameEx(extraid), newname);
SendClientMessageEx(extraid,COLOR_YELLOW,string);
format(string, sizeof(string), " You have changed %s's name to %s at no cost.", GetPlayerNameEx(extraid), newname);
SendClientMessageEx(index,COLOR_YELLOW,string);
format(string, sizeof(string), "%s changed \"%s\"s name to \"%s\" (id: %i) for free.",GetPlayerNameEx(index),GetPlayerNameEx(extraid),newname, GetPlayerSQLId(extraid));
Log("logs/stats.log", string);
format(string, sizeof(string), "%s has approved %s's name change to %s at no cost.",GetPlayerNameEx(index),GetPlayerNameEx(extraid), newname);
ABroadCast(COLOR_YELLOW, string, 3);
if(SetPlayerName(extraid, newname) == 1)
{
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `accounts` SET `Username`='%s' WHERE `Username`='%s'", newname, oldname);
mysql_tquery(MainPipeline, string, "OnApproveSetName", "ii", index, extraid);
}
else
{
SendClientMessage(extraid, COLOR_REALRED, "There was an issue with your name change.");
format(string, sizeof(string), "%s's name change has failed due to incorrect size or characters.", GetPlayerNameExt(extraid));
SendClientMessage(index, COLOR_REALRED, string);
format(string, sizeof(string), "Error changing %s's(%d) name to %s", GetPlayerNameExt(extraid), GetPlayerSQLId(extraid), newname);
Log("logs/stats.log", string);
return 1;
}
DeletePVar(extraid, "RequestingNameChange");
}
}
else if(PlayerInfo[extraid][pAdmin] == 1 && PlayerInfo[extraid][pSMod] > 0)
{
if(strlen(newname) > 0)
{
format(string, sizeof(string), " Your name has been changed from %s to %s for free (Senior Mod).", GetPlayerNameEx(extraid), newname);
SendClientMessageEx(extraid,COLOR_YELLOW,string);
format(string, sizeof(string), " You have changed %s's name to %s at no cost.", GetPlayerNameEx(extraid), newname);
SendClientMessageEx(index,COLOR_YELLOW,string);
format(string, sizeof(string), "%s changed \"%s\"s name to \"%s\" (id: %i) for free (Senior Mod).",GetPlayerNameEx(index),GetPlayerNameEx(extraid),newname, GetPlayerSQLId(extraid));
Log("logs/stats.log", string);
format(string, sizeof(string), "%s has approved %s's name change to %s at no cost (Senior Mod).",GetPlayerNameEx(index),GetPlayerNameEx(extraid), newname);
ABroadCast(COLOR_YELLOW, string, 3);
if(SetPlayerName(extraid, newname) == 1)
{
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `accounts` SET `Username`='%s' WHERE `Username`='%s'", newname, oldname);
mysql_tquery(MainPipeline, string, "OnApproveSetName", "ii", index, extraid);
}
else
{
SendClientMessage(extraid, COLOR_REALRED, "There was an issue with your name change.");
format(string, sizeof(string), "%s's name change has failed due to incorrect size or characters.", GetPlayerNameExt(extraid));
SendClientMessage(index, COLOR_REALRED, string);
format(string, sizeof(string), "Error changing %s's(%d) name to %s", GetPlayerNameExt(extraid), GetPlayerSQLId(extraid), newname);
Log("logs/stats.log", string);
return 1;
}
DeletePVar(extraid, "RequestingNameChange");
}
}
else
{
if(GetPVarInt(extraid, "NameChangeCost") == 0)
{
if(strlen(newname) > 0)
{
format(string, sizeof(string), " Your name has been changed from %s to %s for free (non-RP name).", GetPlayerNameEx(extraid), newname);
SendClientMessageEx(extraid,COLOR_YELLOW,string);
format(string, sizeof(string), " You have changed %s's name to %s for free (non-RP name).", GetPlayerNameEx(extraid), newname);
SendClientMessageEx(index,COLOR_YELLOW,string);
format(string, sizeof(string), "%s changed \"%s\"s name to \"%s\" (id: %i) for free (non-RP name).",GetPlayerNameEx(index),GetPlayerNameEx(extraid),newname, GetPlayerSQLId(extraid));
Log("logs/stats.log", string);
format(string, sizeof(string), "%s has approved %s's name change to %s for free (non-RP name).",GetPlayerNameEx(index),GetPlayerNameEx(extraid), newname);
ABroadCast(COLOR_YELLOW, string, 3);
if(SetPlayerName(extraid, newname) == 1)
{
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `accounts` SET `Username`='%s' WHERE `Username`='%s'", newname, oldname);
mysql_tquery(MainPipeline, string, "OnApproveSetName", "ii", index, extraid);
}
else
{
SendClientMessage(extraid, COLOR_REALRED, "There was an issue with your name change.");
format(string, sizeof(string), "%s's name change has failed due to incorrect size or characters.", GetPlayerNameExt(extraid));
SendClientMessage(index, COLOR_REALRED, string);
format(string, sizeof(string), "Error changing %s's(%d) name to %s", GetPlayerNameExt(extraid), GetPlayerSQLId(extraid), newname);
Log("logs/stats.log", string);
return 1;
}
DeletePVar(extraid, "RequestingNameChange");
}
}
else if(gettime() >= PlayerInfo[extraid][pNextNameChange])
{
if(strlen(newname) > 0)
{
if(SetPlayerName(extraid, newname) == 1)
{
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `accounts` SET `Username`='%s' WHERE `Username`='%s'", newname, oldname);
mysql_tquery(MainPipeline, string, "OnApproveSetName", "ii", index, extraid);
PlayerInfo[extraid][pNextNameChange] = gettime()+10368000;
format(string, sizeof(string), " Your name has been changed from %s to %s for free.", oldname, newname);
SendClientMessageEx(extraid, COLOR_YELLOW, string);
format(string, sizeof(string), " Your next free name change will be on %s", date(PlayerInfo[extraid][pNextNameChange], 4));
SendClientMessageEx(extraid, COLOR_CYAN, string);
format(string, sizeof(string), " You have changed %s's name to %s for %s for free.", oldname, newname);
SendClientMessageEx(index,COLOR_YELLOW,string);
format(string, sizeof(string), "%s changed \"%s\"s name to \"%s\" (id: %i) for free. (Next Free N/C: %s)", GetPlayerNameEx(index), oldname, newname, GetPlayerSQLId(extraid), date(PlayerInfo[extraid][pNextNameChange], 4));
Log("logs/stats.log", string);
format(string, sizeof(string), "%s has approved %s's name change to %s for free.", GetPlayerNameEx(index), oldname, newname);
ABroadCast(COLOR_YELLOW, string, 3);
}
else
{
SendClientMessage(extraid, COLOR_REALRED, "There was an issue with your name change.");
format(string, sizeof(string), "%s's name change has failed due to incorrect size or characters.", GetPlayerNameExt(extraid));
SendClientMessage(index, COLOR_REALRED, string);
format(string, sizeof(string), "Error changing %s's(%d) name to %s", GetPlayerNameExt(extraid), GetPlayerSQLId(extraid), newname);
Log("logs/stats.log", string);
return 1;
}
DeletePVar(extraid, "RequestingNameChange");
}
}
else
{
if(strlen(newname) > 0)
{
if(SetPlayerName(extraid, newname) == 1)
{
/*
GivePlayerCredits(extraid, -ShopItems[40][sItemPrice], 1);
printf("Price40: %d", ShopItems[40][sItemPrice]);
AmountSold[40]++;
AmountMade[40] += ShopItems[40][sItemPrice];
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `sales` SET `TotalSold40` = '%d', `AmountMade40` = '%d' WHERE `Month` > NOW() - INTERVAL 1 MONTH", AmountSold[40], AmountMade[40]);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
format(string, sizeof(string), "[Name Change] [User: %s(%i)] [IP: %s] [Credits: %s] [Price: %s]", GetPlayerNameEx(extraid), GetPlayerSQLId(extraid), GetPlayerIpEx(extraid), number_format(PlayerInfo[extraid][pCredits]), number_format(ShopItems[40][sItemPrice]));
Log("logs/credits.log", string), print(string);
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `accounts` SET `Username`='%s' WHERE `Username`='%s'", newname, oldname);
mysql_tquery(MainPipeline, string, "OnApproveSetName", "ii", index, extraid);
format(string, sizeof(string), " Your name has been changed from %s to %s for %s credits.", oldname, newname, number_format(ShopItems[40][sItemPrice]));
SendClientMessageEx(extraid, COLOR_CYAN, string);
format(string, sizeof(string), " You have changed %s's name to %s for %s credits.", oldname, newname, number_format(ShopItems[40][sItemPrice]));
SendClientMessageEx(index,COLOR_YELLOW,string);
format(string, sizeof(string), "%s changed \"%s\"s name to \"%s\" (id: %i) for %s credits.", GetPlayerNameEx(index), oldname, newname, GetPlayerSQLId(extraid), number_format(ShopItems[40][sItemPrice]));
Log("logs/stats.log", string);
format(string, sizeof(string), "%s has approved %s's name change to %s for %s credits.", GetPlayerNameEx(index), oldname, newname, number_format(ShopItems[40][sItemPrice]));
ABroadCast(COLOR_YELLOW, string, 3);
*/
GivePlayerCash(extraid, -GetPVarInt(extraid, "NameChangeCost"));
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `accounts` SET `Username`='%s' WHERE `Username`='%s'", newname, oldname);
mysql_tquery(MainPipeline, string, "OnApproveSetName", "ii", index, extraid);
format(string, sizeof(string), " Your name has been changed from %s to %s for $%s.", oldname, newname, number_format(GetPVarInt(extraid, "NameChangeCost")));
SendClientMessageEx(extraid, COLOR_CYAN, string);
format(string, sizeof(string), " You have changed %s's name to %s for $%s.", oldname, newname, number_format(GetPVarInt(extraid, "NameChangeCost")));
SendClientMessageEx(index,COLOR_YELLOW,string);
format(string, sizeof(string), "%s changed \"%s\"s name to \"%s\" (id: %i) for $%s.", GetPlayerNameEx(index), oldname, newname, GetPlayerSQLId(extraid), number_format(GetPVarInt(extraid, "NameChangeCost")));
Log("logs/stats.log", string);
format(string, sizeof(string), "%s has approved %s's name change to %s for $%s.", GetPlayerNameEx(index), oldname, newname, number_format(GetPVarInt(extraid, "NameChangeCost")));
ABroadCast(COLOR_YELLOW, string, 3);
}
else
{
SendClientMessage(extraid, COLOR_REALRED, "There was an issue with your name change.");
format(string, sizeof(string), "%s's name change has failed due to incorrect size or characters.", GetPlayerNameExt(extraid));
SendClientMessage(index, COLOR_REALRED, string);
format(string, sizeof(string), "Error changing %s's(%d) name to %s", GetPlayerNameExt(extraid), GetPlayerSQLId(extraid), newname);
Log("logs/stats.log", string);
return 1;
}
DeletePVar(extraid, "RequestingNameChange");
}
}
}
}
else
{
if(GetPVarType(extraid, "marriagelastname"))
{
SendClientMessageEx(extraid, COLOR_GRAD2, "There was a error changing your name after marriage, the name already exists.");
}
else
{
SendClientMessageEx(extraid, COLOR_GRAD2, "That name already exists, please choose a different one.");
SendClientMessageEx(index, COLOR_GRAD2, "That name already exists.");
}
DeletePVar(extraid, "RequestingNameChange");
DeletePVar(extraid, "marriagelastname");
return 1;
}
}
return 1;
}
forward OnIPWhitelist(index);
public OnIPWhitelist(index)
{
new string[128], name[24];
GetPVarString(index, "OnIPWhitelist", name, 24);
if(cache_affected_rows()) {
format(string, sizeof(string), "You have successfully whitelisted %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
format(string, sizeof(string), "%s has IP Whitelisted %s", GetPlayerNameEx(index), name);
Log("logs/whitelist.log", string);
}
else {
format(string, sizeof(string), "There was a issue with whitelisting %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
DeletePVar(index, "OnIPWhitelist");
return 1;
}
forward OnIPCheck(index);
public OnIPCheck(index)
{
if(IsPlayerConnected(index))
{
new string[128], ip[16], name[24], AdminLvL;
new rows;
cache_get_row_count(rows);
if(rows)
{
cache_get_value_name(0, "AdminLevel", ip, 16); AdminLvL = strval(ip);
cache_get_value_name(0, "Username", name, MAX_PLAYER_NAME);
if(AdminLvL <= 1 || (AdminLvL <= PlayerInfo[index][pAdmin] && PlayerInfo[index][pAdmin] >= 1338))
{
cache_get_value_name(0, "IP", ip, 16);
format(string, sizeof(string), "%s's IP: %s", name, ip);
SendClientMessageEx(index, COLOR_WHITE, string);
format(string, sizeof(string), "%s has offline IP Checked %s", GetPlayerNameEx(index), name);
if(AdminLvL >= 2) Log("logs/adminipcheck.log", string); else Log("logs/ipcheck.log", string);
return 1;
}
if(AdminLvL >= 2)
{
if(AdminLvL > PlayerInfo[index][pAdmin])
{
format(string, sizeof(string), "%s has tried to offline check the IP address of a higher admin\nPlease report this to SIU/OED or an EA", GetPlayerNameEx(index));
foreach(new i: Player)
{
if(PlayerInfo[i][pAdmin] >= 4) ShowPlayerDialogEx(i, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "{FFFF00}AdminWarning - {FF0000}Report ASAP", string, "Close", "");
}
}
format(string, sizeof(string), "%s tried to offline IP check %s", GetPlayerNameEx(index), name);
Log("logs/adminipcheck.log", string);
}
SendClientMessageEx(index, COLOR_WHITE, "There was an issue with checking the account's IP.");
}
else
{
SendClientMessageEx(index, COLOR_WHITE, "There was an issue with checking the account's IP.");
}
}
return 1;
}
forward OnFine(index);
public OnFine(index)
{
new string[128], name[24], amount, reason[64];
GetPVarString(index, "OnFine", name, 24);
amount = GetPVarInt(index, "OnFineAmount");
GetPVarString(index, "OnFineReason", reason, 64);
if(cache_affected_rows()) {
format(string, sizeof(string), "You have successfully fined %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
format(string, sizeof(string), "AdmCmd: %s was offline fined $%d by %s, reason: %s", name, amount, GetPlayerNameEx(index), reason);
Log("logs/admin.log", string);
}
else {
format(string, sizeof(string), "There was an issue with fining %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
DeletePVar(index, "OnFine");
DeletePVar(index, "OnFineAmount");
DeletePVar(index, "OnFineReason");
return 1;
}
forward OnPrisonAccount(index);
public OnPrisonAccount(index)
{
new string[128], name[24], reason[64];
GetPVarString(index, "OnPrisonAccount", name, 24);
GetPVarString(index, "OnPrisonAccountReason", reason, 64);
if(cache_affected_rows()) {
format(string, sizeof(string), "You have successfully prisoned %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
format(string, sizeof(string), "AdmCmd: %s was offline prisoned by %s, reason: %s ", name, GetPlayerNameEx(index), reason);
Log("logs/admin.log", string);
}
else {
format(string, sizeof(string), "There was an issue with prisoning %s's account.");
SendClientMessageEx(index, COLOR_WHITE, string);
}
DeletePVar(index, "OnPrisonAccount");
DeletePVar(index, "OnPrisonAccountReason");
return 1;
}
forward OnJailAccount(index);
public OnJailAccount(index)
{
new string[128], name[24], reason[64];
GetPVarString(index, "OnJailAccount", name, 24);
GetPVarString(index, "OnJailAccountReason", reason, 64);
if(cache_affected_rows()) {
format(string, sizeof(string), "You have successfully jailed %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
format(string, sizeof(string), "AdmCmd: %s was offline jailed by %s, reason: %s", name, GetPlayerNameEx(index), reason);
Log("logs/admin.log", string);
}
else {
format(string, sizeof(string), "There was an issue with jailing %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
DeletePVar(index, "OnJailAccount");
DeletePVar(index, "OnJailAccountReason");
return 1;
}
forward OnGetLatestKills(playerid, giveplayerid);
public OnGetLatestKills(playerid, giveplayerid)
{
new string[128], killername[MAX_PLAYER_NAME], killedname[MAX_PLAYER_NAME], kDate[20], weapon[56], rows;
cache_get_row_count(rows);
if(rows)
{
for(new i; i < rows; i++)
{
cache_get_value_index(i, 0, killername, MAX_PLAYER_NAME);
cache_get_value_index(i, 1, killedname, MAX_PLAYER_NAME);
cache_get_value_name(i, "killerid", string); new killer = strval(string);
cache_get_value_name(i, "killedid", string); new killed = strval(string);
cache_get_value_name(i, "date", kDate, sizeof(kDate));
cache_get_value_name(i, "weapon", weapon, sizeof(weapon));
if(GetPlayerSQLId(giveplayerid) == killer && GetPlayerSQLId(giveplayerid) == killed) format(string, sizeof(string), "[%s] %s killed themselves (%s)", kDate, StripUnderscore(killedname), weapon);
else if(GetPlayerSQLId(giveplayerid) == killer && GetPlayerSQLId(giveplayerid) != killed) format(string, sizeof(string), "[%s] %s killed %s with %s", kDate, StripUnderscore(killername), StripUnderscore(killedname), weapon);
else if(GetPlayerSQLId(giveplayerid) != killer && GetPlayerSQLId(giveplayerid) == killed) format(string, sizeof(string), "[%s] %s was killed by %s with %s", kDate, StripUnderscore(killedname), StripUnderscore(killername), weapon);
SendClientMessageEx(playerid, COLOR_YELLOW, string);
}
}
else SendClientMessageEx(playerid, COLOR_YELLOW, "No kills recorded on this player.");
return 1;
}
forward OnGetOKills(playerid, giveplayername[]);
public OnGetOKills(playerid, giveplayername[])
{
if(IsPlayerConnected(playerid))
{
new string[256], giveplayerid, rows;
cache_get_row_count(rows);
if(rows)
{
cache_get_value_name(0, "id", string); giveplayerid = strval(string);
mysql_format(MainPipeline, string, sizeof(string), "SELECT Killer.Username, Killed.Username, k.* FROM kills k LEFT JOIN accounts Killed ON k.killedid = Killed.id LEFT JOIN accounts Killer ON Killer.id = k.killerid WHERE k.killerid = %d OR k.killedid = %d ORDER BY `date` DESC LIMIT 10", giveplayerid, giveplayerid);
mysql_tquery(MainPipeline, string, "OnGetLatestOKills", "iis", playerid, giveplayerid, giveplayername);
}
else return SendClientMessageEx(playerid, COLOR_GREY, "This account does not exist.");
}
return 1;
}
forward OnGetLatestOKills(playerid, giveplayerid, giveplayername[]);
public OnGetLatestOKills(playerid, giveplayerid, giveplayername[])
{
new string[128], killername[MAX_PLAYER_NAME], killedname[MAX_PLAYER_NAME], kDate[20], weapon[56], rows;
cache_get_row_count(rows);
if(rows)
{
SendClientMessageEx(playerid, COLOR_GREEN, "________________________________________________");
format(string, sizeof(string), "<< Last 10 Kills/Deaths of %s >>", StripUnderscore(giveplayername));
SendClientMessageEx(playerid, COLOR_YELLOW, string);
for(new i; i < rows; i++)
{
cache_get_value_index(i, 0, killername, MAX_PLAYER_NAME);
cache_get_value_index(i, 1, killedname, MAX_PLAYER_NAME);
cache_get_value_name(i, "killerid", string); new killer = strval(string);
cache_get_value_name(i, "killedid", string); new killed = strval(string);
cache_get_value_name(i, "date", kDate, sizeof(kDate));
cache_get_value_name(i, "weapon", weapon, sizeof(weapon));
if(giveplayerid == killer && giveplayerid == killed) format(string, sizeof(string), "[%s] %s killed themselves (%s)", kDate, StripUnderscore(killedname), weapon);
else if(giveplayerid == killer && giveplayerid != killed) format(string, sizeof(string), "[%s] %s killed %s with %s", kDate, StripUnderscore(killername), StripUnderscore(killedname), weapon);
else if(giveplayerid != killer && giveplayerid == killed) format(string, sizeof(string), "[%s] %s was killed by %s with %s", kDate, StripUnderscore(killedname), StripUnderscore(killername), weapon);
SendClientMessageEx(playerid, COLOR_YELLOW, string);
}
}
else return SendClientMessageEx(playerid, COLOR_YELLOW, "No kills recorded on this player.");
return 1;
}
forward OnDMStrikeReset(playerid, giveplayerid);
public OnDMStrikeReset(playerid, giveplayerid)
{
new string[128];
format(string, sizeof(string), "Deleted %d strikes against %s", cache_affected_rows(), GetPlayerNameEx(giveplayerid));
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
forward OnDMRLookup(playerid, giveplayerid);
public OnDMRLookup(playerid, giveplayerid)
{
new string[128], rows;
cache_get_row_count(rows);
format(string, sizeof(string), "Showing the last %d /dmreports by %s", rows, GetPlayerNameEx(giveplayerid));
SendClientMessage(playerid, COLOR_WHITE, string);
SendClientMessage(playerid, COLOR_WHITE, "| Reported | Time |");
for(new i;i < rows;i++)
{
new szResult[32], name[MAX_PLAYER_NAME], timestamp;
cache_get_value_index(i, 0, szResult); timestamp = strval(szResult);
cache_get_value_index(i, 1, name, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s - %s", name, date(timestamp, 1));
SendClientMessage(playerid, COLOR_WHITE, string);
}
return 1;
}
forward OnDMTokenLookup(playerid, giveplayerid);
public OnDMTokenLookup(playerid, giveplayerid)
{
new string[128], rows;
cache_get_row_count(rows);
format(string, sizeof(string), "Showing the %d active /dmreports on %s", rows, GetPlayerNameEx(giveplayerid));
SendClientMessage(playerid, COLOR_WHITE, string);
SendClientMessage(playerid, COLOR_WHITE, "| Reporter | Time |");
for(new i;i < rows;i++)
{
new szResult[32], name[MAX_PLAYER_NAME], timestamp;
cache_get_value_index(i, 0, szResult); timestamp = strval(szResult);
cache_get_value_index(i, 1, name);
format(string, sizeof(string), "%s - %s", name, date(timestamp, 1));
SendClientMessage(playerid, COLOR_WHITE, string);
}
return 1;
}
forward OnDMWatchListLookup(playerid);
public OnDMWatchListLookup(playerid)
{
new string[128], rows;
cache_get_row_count(rows);
format(string, sizeof(string), "Showing %d active people to watch", rows);
SendClientMessage(playerid, COLOR_WHITE, string);
for(new i;i < rows;i++)
{
new name[MAX_PLAYER_NAME], watchid;
cache_get_value_index(i, 0, name);
sscanf(name, "u", watchid);
format(string, sizeof(string), "(ID: %d) %s", watchid, name);
SendClientMessage(playerid, (PlayerInfo[watchid][pJailTime] > 0) ? TEAM_ORANGE_COLOR:COLOR_WHITE, string);
}
return 1;
}
forward OnDMWatch(playerid);
public OnDMWatch(playerid)
{
new rows;
cache_get_row_count(rows);
if(rows)
{
new string[128], namesql[MAX_PLAYER_NAME], name[MAX_PLAYER_NAME];
cache_get_value_index(0, 0, namesql);
foreach(new i: Player)
{
if(!PlayerInfo[i][pJailTime])
{
GetPlayerName(i, name, sizeof(name));
if(strcmp(name, namesql, true) == 0)
{
foreach(new x: Player)
{
if(GetPVarInt(x, "pWatchdogWatching") == i)
{
return SendClientMessage(playerid, COLOR_WHITE, "The random person selected for you is already being watched, please try again!");
}
}
format(string, sizeof(string), "You now have access to /spec %s (ID: %i). Use /dmalert if this person deathmatches.", name, i);
SendClientMessage(playerid, COLOR_WHITE, string);
return SetPVarInt(playerid, "pWatchdogWatching", i);
}
}
}
}
return SendClientMessageEx(playerid, COLOR_WHITE, "There is no one online to DM Watch!");
}
forward OnWarnPlayer(index);
public OnWarnPlayer(index)
{
new string[128], name[24], reason[64];
GetPVarString(index, "OnWarnPlayer", name, 24);
GetPVarString(index, "OnWarnPlayerReason", reason, 64);
if(cache_affected_rows()) {
format(string, sizeof(string), "You have successfully warned %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
format(string, sizeof(string), "AdmCmd: %s was offline warned by %s, reason: %s", name, GetPlayerNameEx(index), reason);
Log("logs/admin.log", string);
}
else {
format(string, sizeof(string), "There was an issue with warning %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
DeletePVar(index, "OnWarnPlayer");
DeletePVar(index, "OnWarnPlayerReason");
return 1;
}
forward OnPinCheck2(index);
public OnPinCheck2(index)
{
if(IsPlayerConnected(index))
{
new rows;
cache_get_row_count(rows);
if(rows)
{
new Pin[256];
cache_get_value_name(0, "Pin", Pin, 256);
if(isnull(Pin)) {
ShowPlayerDialogEx(index, DIALOG_CREATEPIN, DIALOG_STYLE_INPUT, "Pin Number", "Create a pin number so you can secure your account credits.", "Create", "Exit");
}
else
{
new passbuffer[256], passbuffer2[64];
GetPVarString(index, "PinNumber", passbuffer2, sizeof(passbuffer2));
WP_Hash(passbuffer, sizeof(passbuffer), passbuffer2);
if (strcmp(passbuffer, Pin) == 0)
{
SetPVarInt(index, "PinConfirmed", 1);
SendClientMessageEx(index, COLOR_CYAN, "Pin confirmed, you will now be able to spend credits.");
switch(GetPVarInt(index, "OpenShop"))
{
case 1:
{
new szDialog[1024];
format(szDialog, sizeof(szDialog), "Poker Table (Credits: {FFD700}%s{A9C4E4})\nBoombox (Credits: {FFD700}%s{A9C4E4})\n100 Paintball Tokens (Credits: {FFD700}%s{A9C4E4})\nEXP Token (Credits: {FFD700}%s{A9C4E4})\nFireworks x5 (Credits: {FFD700}%s{A9C4E4})\nCustom License Plate (Credits: {FFD700}%s{A9C4E4})",
number_format(ShopItems[6][sItemPrice]), number_format(ShopItems[7][sItemPrice]), number_format(ShopItems[8][sItemPrice]), number_format(ShopItems[9][sItemPrice]),
number_format(ShopItems[10][sItemPrice]), number_format(ShopItems[22][sItemPrice]));
format(szDialog, sizeof(szDialog), "%s\nRestricted Last Name (NEW) (Credits: {FFD700}%s{A9C4E4})\nRestricted Last Name (CHANGE) (Credits: {FFD700}%s{A9C4E4})\nCustom User Title (NEW) (Credits: {FFD700}%s{A9C4E4})\nCustom User Title (CHANGE) (Credits: {FFD700}%s{A9C4E4})\nTeamspeak User Channel (Credits: {FFD700}%s{A9C4E4})\nBackpacks\nDeluxe Car Alarm (Credits: {FFD700}%s{A9C4E4})",
szDialog, number_format(ShopItems[31][sItemPrice]), number_format(ShopItems[32][sItemPrice]), number_format(ShopItems[33][sItemPrice]), number_format(ShopItems[34][sItemPrice]), number_format(ShopItems[35][sItemPrice]), number_format(ShopItems[39][sItemPrice]));
ShowPlayerDialogEx(index, DIALOG_MISCSHOP, DIALOG_STYLE_LIST, "Misc Shop", szDialog, "Select", "Cancel");
}
case 2: SetPVarInt(index, "RentaCar", 1), ShowModelSelectionMenu(index, CarList2, "Rent a Car!");
case 3: ShowModelSelectionMenu(index, CarList2, "Car Shop");
case 4: ShowPlayerDialogEx( index, DIALOG_HOUSESHOP, DIALOG_STYLE_LIST, "House Shop", "Purchase House\nHouse Interior Change\nHouse Move\nGarage - Small\nGarage - Medium\nGarage - Large\nGarage - Extra Large","Select", "Exit" );
case 5: ShowPlayerDialogEx( index, DIALOG_VIPSHOP, DIALOG_STYLE_LIST, "VIP Shop", "Purchase VIP\nRenew Gold VIP","Continue", "Exit" );
case 6: ShowPlayerDialogEx(index, DIALOG_SHOPBUSINESS, DIALOG_STYLE_LIST, "Businesses Shop", "Purchase Business\nRenew Business", "Select", "Exit");
case 7: ShowModelSelectionMenu(index, PlaneList, "Plane Shop");
case 8: ShowModelSelectionMenu(index, BoatList, "Boat Shop");
case 9: ShowModelSelectionMenu(index, CarList3, "Restricted Car Shop");
case 10: cmd_changename(index, "");
case 11: cmd_microshop(index, "");
}
DeletePVar(index, "OpenShop");
}
else
{
ShowPlayerDialogEx(index, DIALOG_ENTERPIN, DIALOG_STYLE_INPUT, "Pin Number", "(INVALID PIN)\n\nEnter your pin number to access credit shops.", "Confirm", "Exit");
}
DeletePVar(index, "PinNumber");
}
}
else
{
SendClientMessageEx(index, COLOR_WHITE, "There was an issue, please try again.");
}
}
return 1;
}
forward OnPinCheck(index);
public OnPinCheck(index)
{
if(IsPlayerConnected(index))
{
new rows;
cache_get_row_count(rows);
if(rows)
{
new Pin[128];
cache_get_value_name(0, "Pin", Pin);
if(isnull(Pin)) {
ShowPlayerDialogEx(index, DIALOG_CREATEPIN, DIALOG_STYLE_INPUT, "Pin Number", "Create a pin number so you can secure your account credits.", "Create", "Exit");
}
else
{
ShowPlayerDialogEx(index, DIALOG_ENTERPIN, DIALOG_STYLE_INPUT, "Pin Number", "Enter your pin number to access credit shops.", "Confirm", "Exit");
}
}
else
{
SendClientMessageEx(index, COLOR_WHITE, "There was an issue, please try again.");
}
}
return 1;
}
forward OnGetSMSLog(playerid);
public OnGetSMSLog(playerid)
{
new string[128], message[256], sender[MAX_PLAYER_NAME], sDate[20], rows;
cache_get_row_count(rows);
if(rows)
{
SendClientMessageEx(playerid, COLOR_GREEN, "________________________________________________");
SendClientMessageEx(playerid, COLOR_YELLOW, "<< Last 10 SMS Received >>");
for(new i; i < rows; i++)
{
cache_get_value_name(i, "sender", sender, MAX_PLAYER_NAME);
cache_get_value_name(i, "sendernumber", string); new sendernumber = strval(string);
cache_get_value_name(i, "message", message, sizeof(message));
cache_get_value_name(i, "date", sDate, sizeof(sDate));
if(sendernumber != 0) format(string, sizeof(string), "[%s] SMS: %s, Sender: %d (( %s ))", sDate, message, sendernumber, sender);
else format(string, sizeof(string), "[%s] SMS: %s, Sender: Unknown", sDate, message);
SendClientMessageEx(playerid, COLOR_YELLOW, string);
}
}
else SendClientMessageEx(playerid, COLOR_GREY, "You have not received any SMS messages.");
return 1;
}
forward Group_QueryFinish(iType, iExtraID);
public Group_QueryFinish(iType, iExtraID) {
/*
Internally, every group array/subarray starts from zero (divisions, group ids etc)
When displaying to the clients or saving to the db, we add 1 to them!
The only exception is ranks which already start from zero.
*/
new
iRows,
iIndex,
i = 0,
szResult[128],
number[12],
value;
cache_get_row_count(iRows);
switch(iType) {
case GROUP_QUERY_JURISDICTIONS:
{
for(new iG = 0; iG < MAX_GROUPS; iG++)
{
arrGroupData[iG][g_iJCount] = 0;
}
while(iIndex < iRows) {
cache_get_value_name(iIndex, "GroupID", szResult, 24);
new iGroup = strval(szResult);
if(arrGroupData[iGroup][g_iJCount] > MAX_GROUP_JURISDICTIONS) arrGroupData[iGroup][g_iJCount] = MAX_GROUP_JURISDICTIONS;
if (!(0 <= iGroup < MAX_GROUPS)) break;
cache_get_value_name(iIndex, "id", szResult, 24);
arrGroupJurisdictions[iGroup][arrGroupData[iGroup][g_iJCount]][g_iJurisdictionSQLId] = strval(szResult);
cache_get_value_name(iIndex, "AreaName", arrGroupJurisdictions[iGroup][arrGroupData[iGroup][g_iJCount]][g_iAreaName], 64);
arrGroupData[iGroup][g_iJCount]++;
iIndex++;
}
}
case GROUP_QUERY_GWEAPONS: while(iIndex < iRows) {
if (!(0 <= iIndex < MAX_GROUPS)) break;
cache_get_value_name_int(iIndex, "id", value);
LockerWep[iIndex][lwGroup] = value;
for(new w = 0; w < 46; w++) {
format(number, sizeof(number), "%d", w+1);
cache_get_value_name_int(iIndex, number, value);
LockerWep[iIndex][lwWep][w] = value;
}
iIndex++;
}
case GROUP_QUERY_GWEAPONS_RANK: while(iIndex < iRows) {
if (!(0 <= iIndex < MAX_GROUPS)) break;
for(new w = 0; w < 16; w++) {
format(number, sizeof(number), "%d", w+1);
cache_get_value_name_int(iIndex, number, value);
LockerWep[iIndex][lwRank][w] = value;
}
iIndex++;
}
case GROUP_QUERY_LOCKERS: while(iIndex < iRows) {
cache_get_value_name(iIndex, "Group_ID", szResult);
new iGroup = strval(szResult)-1;
cache_get_value_name(iIndex, "Locker_ID", szResult);
new iLocker = strval(szResult)-1;
if (!(0 <= iGroup < MAX_GROUPS)) break;
if (!(0 <= iLocker < MAX_GROUP_LOCKERS)) break;
cache_get_value_name(iIndex, "Id", szResult);
arrGroupLockers[iGroup][iLocker][g_iLockerSQLId] = strval(szResult);
cache_get_value_name(iIndex, "LockerX", szResult);
arrGroupLockers[iGroup][iLocker][g_fLockerPos][0] = floatstr(szResult);
cache_get_value_name(iIndex, "LockerY", szResult);
arrGroupLockers[iGroup][iLocker][g_fLockerPos][1] = floatstr(szResult);
cache_get_value_name(iIndex, "LockerZ", szResult);
arrGroupLockers[iGroup][iLocker][g_fLockerPos][2] = floatstr(szResult);
cache_get_value_name(iIndex, "LockerVW", szResult);
arrGroupLockers[iGroup][iLocker][g_iLockerVW] = strval(szResult);
cache_get_value_name(iIndex, "LockerShare", szResult);
arrGroupLockers[iGroup][iLocker][g_iLockerShare] = strval(szResult);
if(arrGroupLockers[iGroup][iLocker][g_fLockerPos][0] != 0.0)
{
format(szResult, sizeof szResult, "%s Locker\n{1FBDFF}Press ~k~~CONVERSATION_YES~ {FFFF00} to use\n ID: %i", arrGroupData[iGroup][g_szGroupName], arrGroupLockers[iGroup][iLocker]);
arrGroupLockers[iGroup][iLocker][g_tLocker3DLabel] = CreateDynamic3DTextLabel(szResult, arrGroupData[iGroup][g_hDutyColour] * 256 + 0xFF, arrGroupLockers[iGroup][iLocker][g_fLockerPos][0], arrGroupLockers[iGroup][iLocker][g_fLockerPos][1], arrGroupLockers[iGroup][iLocker][g_fLockerPos][2], 15.0, .testlos = 1, .worldid = arrGroupLockers[iGroup][iLocker][g_iLockerVW]);
arrGroupLockers[iGroup][iLocker][g_iLockerAreaID] = CreateDynamicSphere(arrGroupLockers[iGroup][iLocker][g_fLockerPos][0], arrGroupLockers[iGroup][iLocker][g_fLockerPos][1], arrGroupLockers[iGroup][iLocker][g_fLockerPos][2], 3.0, .worldid = arrGroupLockers[iGroup][iLocker][g_iLockerVW]);
printf("%d", arrGroupLockers[iGroup][iLocker][g_iLockerAreaID]);
// Streamer_SetIntData(STREAMER_TYPE_AREA, arrGroupLockers[iGroup][iLocker][g_iLockerAreaID], E_STREAMER_EXTRA_ID, iLocker);
}
iIndex++;
}
case GROUP_QUERY_LOAD: while(iIndex < iRows) {
MemberCount(iIndex);
cache_get_value_name(iIndex, "Name", arrGroupData[iIndex][g_szGroupName], GROUP_MAX_NAME_LEN);
cache_get_value_name(iIndex, "MOTD", gMOTD[iIndex][0], GROUP_MAX_MOTD_LEN);
cache_get_value_name(iIndex, "MOTD2", gMOTD[iIndex][1], GROUP_MAX_MOTD_LEN);
cache_get_value_name(iIndex, "MOTD3", gMOTD[iIndex][2], GROUP_MAX_MOTD_LEN);
cache_get_value_name_int(iIndex, "Type", arrGroupData[iIndex][g_iGroupType]);
cache_get_value_name_int(iIndex, "Allegiance", arrGroupData[iIndex][g_iAllegiance]);
cache_get_value_name_int(iIndex, "Bug", arrGroupData[iIndex][g_iBugAccess]);
cache_get_value_name_int(iIndex, "Find", arrGroupData[iIndex][g_iFindAccess]);
cache_get_value_name_int(iIndex, "RadioColour", arrGroupData[iIndex][g_hRadioColour]);
cache_get_value_name_int(iIndex, "Radio", arrGroupData[iIndex][g_iRadioAccess]);
cache_get_value_name_int(iIndex, "DeptRadio", arrGroupData[iIndex][g_iDeptRadioAccess]);
cache_get_value_name_int(iIndex, "IntRadio", arrGroupData[iIndex][g_iIntRadioAccess]);
cache_get_value_name_int(iIndex, "GovAnnouncement", arrGroupData[iIndex][g_iGovAccess]);
cache_get_value_name_int(iIndex, "TreasuryAccess", arrGroupData[iIndex][g_iTreasuryAccess]);
cache_get_value_name_int(iIndex, "FreeNameChange", arrGroupData[iIndex][g_iFreeNameChange]);
cache_get_value_name_int(iIndex, "FreeNameChangeDiv", arrGroupData[iIndex][g_iFreeNameChangeDiv]);
cache_get_value_name_int(iIndex, "Budget", arrGroupData[iIndex][g_iBudget]);
cache_get_value_name_int(iIndex, "BudgetPayment", arrGroupData[iIndex][g_iBudgetPayment]);
cache_get_value_name_int(iIndex, "SpikeStrips", arrGroupData[iIndex][g_iSpikeStrips]);
cache_get_value_name_int(iIndex, "Barricades", arrGroupData[iIndex][g_iBarricades]);
cache_get_value_name_int(iIndex, "Cones", arrGroupData[iIndex][g_iCones]);
cache_get_value_name_int(iIndex, "Flares", arrGroupData[iIndex][g_iFlares]);
cache_get_value_name_int(iIndex, "Barrels", arrGroupData[iIndex][g_iBarrels]);
cache_get_value_name_int(iIndex, "Ladders", arrGroupData[iIndex][g_iLadders]);
cache_get_value_name_int(iIndex, "Tapes", arrGroupData[iIndex][g_iTapes]);
cache_get_value_name_int(iIndex, "DutyColour", arrGroupData[iIndex][g_hDutyColour]);
cache_get_value_name_int(iIndex, "Stock", arrGroupData[iIndex][g_iLockerStock]);
cache_get_value_name_float(iIndex, "CrateX", arrGroupData[iIndex][g_fCratePos][0]);
cache_get_value_name_float(iIndex, "CrateY", arrGroupData[iIndex][g_fCratePos][1]);
cache_get_value_name_float(iIndex, "CrateZ", arrGroupData[iIndex][g_fCratePos][2]);
cache_get_value_name_int(iIndex, "LockerCostType", arrGroupData[iIndex][g_iLockerCostType]);
cache_get_value_name_int(iIndex, "CratesOrder", arrGroupData[iIndex][g_iCratesOrder]);
cache_get_value_name_int(iIndex, "CrateIsland", arrGroupData[iIndex][g_iCrateIsland]);
cache_get_value_name_float(iIndex, "GarageX", arrGroupData[iIndex][g_fGaragePos][0]);
cache_get_value_name_float(iIndex, "GarageY", arrGroupData[iIndex][g_fGaragePos][1]);
cache_get_value_name_float(iIndex, "GarageZ", arrGroupData[iIndex][g_fGaragePos][2]);
cache_get_value_name_int(iIndex, "TackleAccess", arrGroupData[iIndex][g_iTackleAccess]);
cache_get_value_name_int(iIndex, "WheelClamps", arrGroupData[iIndex][g_iWheelClamps]);
cache_get_value_name_int(iIndex, "DoCAccess", arrGroupData[iIndex][g_iDoCAccess]);
cache_get_value_name_int(iIndex, "MedicAccess", arrGroupData[iIndex][g_iMedicAccess]);
cache_get_value_name_int(iIndex, "DMVAccess", arrGroupData[iIndex][g_iDMVAccess]);
cache_get_value_name_int(iIndex, "TempNum", arrGroupData[iIndex][gTempNum]);
cache_get_value_name_int(iIndex, "LEOArrest", arrGroupData[iIndex][gLEOArrest]);
cache_get_value_name_int(iIndex, "OOCChat", arrGroupData[iIndex][g_iOOCChat]);
cache_get_value_name_int(iIndex, "OOCColor", arrGroupData[iIndex][g_hOOCColor]);
cache_get_value_name_int(iIndex, "Pot", arrGroupData[iIndex][g_iPot]);
cache_get_value_name_int(iIndex, "Crack", arrGroupData[iIndex][g_iCrack]);
cache_get_value_name_int(iIndex, "Meth", arrGroupData[iIndex][g_iMeth]);
cache_get_value_name_int(iIndex, "Ecstasy", arrGroupData[iIndex][g_iEcstasy]);
cache_get_value_name_int(iIndex, "Heroin", arrGroupData[iIndex][g_iHeroin]);
cache_get_value_name_int(iIndex, "Syringes", arrGroupData[iIndex][g_iSyringes]);
cache_get_value_name_int(iIndex, "Mats", arrGroupData[iIndex][g_iMaterials]);
cache_get_value_name_int(iIndex, "TurfCapRank", arrGroupData[iIndex][g_iTurfCapRank]);
cache_get_value_name_int(iIndex, "PointCapRank", arrGroupData[iIndex][g_iPointCapRank]);
cache_get_value_name_int(iIndex, "WithdrawRank", arrGroupData[iIndex][g_iWithdrawRank][0]);
cache_get_value_name_int(iIndex, "WithdrawRank2", arrGroupData[iIndex][g_iWithdrawRank][1]);
cache_get_value_name_int(iIndex, "WithdrawRank3", arrGroupData[iIndex][g_iWithdrawRank][2]);
cache_get_value_name_int(iIndex, "WithdrawRank4", arrGroupData[iIndex][g_iWithdrawRank][3]);
cache_get_value_name_int(iIndex, "WithdrawRank5", arrGroupData[iIndex][g_iWithdrawRank][4]);
cache_get_value_name_int(iIndex, "Tokens", arrGroupData[iIndex][g_iTurfTokens]);
cache_get_value_name_int(iIndex, "CrimeType", arrGroupData[iIndex][g_iCrimeType]);
cache_get_value_name_int(iIndex, "GroupToyID", arrGroupData[iIndex][g_iGroupToyID]);
cache_get_value_name(iIndex, "TurfTax", arrGroupData[iIndex][g_iTurfTax]);
for(i = 0; i < MAX_GROUP_RIVALS; ++i)
{
format(szResult, sizeof(szResult), "gRival%i", i);
cache_get_value_name_int(iIndex, szResult, arrGroupData[iIndex][g_iRivals][i]);
}
for(i = 0; i < MAX_GROUP_RANKS; ++i)
{
format(szResult, sizeof(szResult), "GClothes%i", i);
cache_get_value_name_int(iIndex, szResult, arrGroupData[iIndex][g_iClothes][i]);
}
i = 0;
while(i < MAX_GROUP_RANKS) {
format(szResult, sizeof szResult, "Rank%i", i);
cache_get_value_name(iIndex, szResult, arrGroupRanks[iIndex][i], GROUP_MAX_RANK_LEN);
format(szResult, sizeof szResult, "Rank%iPay", i);
cache_get_value_name(iIndex, szResult, szResult);
arrGroupData[iIndex][g_iPaycheck][i] = strval(szResult);
i++;
}
i = 0;
while(i < MAX_GROUP_DIVS) {
format(szResult, sizeof szResult, "Div%i", i + 1);
cache_get_value_name(iIndex, szResult, arrGroupDivisions[iIndex][i], GROUP_MAX_DIV_LEN);
i++;
}
i = 0;
while(i < MAX_GROUP_WEAPONS) {
format(szResult, sizeof szResult, "Gun%i", i + 1);
cache_get_value_name(iIndex, szResult, szResult);
arrGroupData[iIndex][g_iLockerGuns][i] = strval(szResult);
format(szResult, sizeof szResult, "Cost%i", i + 1);
cache_get_value_name(iIndex, szResult, szResult);
arrGroupData[iIndex][g_iLockerCost][i] = strval(szResult);
i++;
}
i = 0;
// Jingles' Drug System:
for(i = 0; i < sizeof(Drugs); ++i) cache_get_value_name_int(iIndex, GetDrugName(i), arrGroupData[iIndex][g_iDrugs][i]);
//for(i = 0; i < sizeof(szIngredients); ++i) arrGroupData[iIndex][g_iIngredients][i] = cache_get_value_name_int(iIndex, DS_Ingredients_GetSQLName(i));
i = 0;
if (arrGroupData[iIndex][g_szGroupName][0] && arrGroupData[iIndex][g_fCratePos][0] != 0.0)
{
/*
if(arrGroupData[iIndex][g_iGroupType] == GROUP_TYPE_CRIMINAL)
{
format(szResult, sizeof szResult, "%s Shipment Delivery Point\n{1FBDFF}/gdelivercrate", arrGroupData[iIndex][g_szGroupName]);
}
else
{
format(szResult, sizeof szResult, "%s Crate Delivery Point\n{1FBDFF}/delivercrate", arrGroupData[iIndex][g_szGroupName]);
}*/
format(szResult, sizeof szResult, "%s Crate Delivery Point\n{1FBDFF}/delivercrate", arrGroupData[iIndex][g_szGroupName]);
arrGroupData[iIndex][g_tCrate3DLabel] = CreateDynamic3DTextLabel(szResult, arrGroupData[iIndex][g_hDutyColour] * 256 + 0xFF, arrGroupData[iIndex][g_fCratePos][0], arrGroupData[iIndex][g_fCratePos][1], arrGroupData[iIndex][g_fCratePos][2], 10.0, .testlos = 1, .streamdistance = 20.0);
}
iIndex++;
}
case GROUP_QUERY_INVITE: if(GetPVarType(iExtraID, "Group_Invited")) {
if(!iRows) {
i = GetPVarInt(iExtraID, "Group_Invited");
iIndex = PlayerInfo[iExtraID][pMember];
format(szResult, sizeof szResult, "%s %s has offered you an invite to %s (type /accept group to join).", arrGroupRanks[iIndex][PlayerInfo[iExtraID][pRank]], GetPlayerNameEx(iExtraID), arrGroupData[iIndex][g_szGroupName]);
SendClientMessageEx(i, COLOR_LIGHTBLUE, szResult);
format(szResult, sizeof szResult, "You have offered %s to join %s.", GetPlayerNameEx(i), arrGroupData[iIndex][g_szGroupName]);
SendClientMessageEx(iExtraID, COLOR_LIGHTBLUE, szResult);
SetPVarInt(i, "Group_Inviter", iExtraID);
}
else {
SendClientMessage(iExtraID, COLOR_GREY, "That person is banned from joining this group.");
DeletePVar(iExtraID, "Group_Invited");
}
}
case GROUP_QUERY_ADDBAN: {
new string[128];
new otherplayer = GetPVarInt(iExtraID, "GroupBanningPlayer");
new group = GetPVarInt(iExtraID, "GroupBanningGroup");
format(string, sizeof(string), "You have group-banned %s from group %d.", GetPlayerNameEx(otherplayer), group);
SendClientMessageEx(iExtraID, COLOR_WHITE, string);
format(string, sizeof(string), "You have been group-banned, by %s.", GetPlayerNameEx(iExtraID));
SendClientMessageEx(otherplayer, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Administrator %s has group-banned %s (%d) from %s (%d)", GetPlayerNameEx(iExtraID), GetPlayerNameEx(otherplayer), GetPlayerSQLId(otherplayer), arrGroupData[PlayerInfo[otherplayer][pMember]][g_szGroupName], PlayerInfo[otherplayer][pMember]);
GroupLog(PlayerInfo[otherplayer][pMember], string);
PlayerInfo[otherplayer][pMember] = INVALID_GROUP_ID;
PlayerInfo[otherplayer][pLeader] = INVALID_GROUP_ID;
PlayerInfo[otherplayer][pRank] = INVALID_RANK;
PlayerInfo[otherplayer][pDuty] = 0;
PlayerInfo[otherplayer][pDivision] = INVALID_DIVISION;
strcpy(PlayerInfo[otherplayer][pBadge], "None", 9);
new rand = random(sizeof(CIV));
PlayerInfo[otherplayer][pModel] = CIV[rand];
SetPlayerToTeamColor(otherplayer);
SetPlayerSkin(otherplayer, CIV[rand]);
OnPlayerStatsUpdate(otherplayer);
DeletePVar(iExtraID, "GroupBanningPlayer");
DeletePVar(iExtraID, "GroupBanningGroup");
}
case GROUP_QUERY_UNBAN: {
new string[128];
new otherplayer = GetPVarInt(iExtraID, "GroupUnBanningPlayer");
new group = GetPVarInt(iExtraID, "GroupUnBanningGroup");
if(cache_affected_rows())
{
format(string, sizeof(string), "You have group-unbanned %s from group %s (%d).", GetPlayerNameEx(otherplayer), arrGroupData[group][g_szGroupName], group);
SendClientMessageEx(iExtraID, COLOR_WHITE, string);
format(string, sizeof(string), "You have been group-unbanned from %s, by %s.", arrGroupData[group][g_szGroupName], GetPlayerNameEx(iExtraID));
SendClientMessageEx(otherplayer, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Administrator %s has group-unbanned %s (%d) from %s (%d)", GetPlayerNameEx(iExtraID), GetPlayerNameEx(otherplayer), GetPlayerSQLId(otherplayer), arrGroupData[group][g_szGroupName], group);
GroupLog(group, string);
}
else
{
format(string, sizeof(string), "There was an issue group-unbanning %s from %s (%d)", GetPlayerNameEx(otherplayer), arrGroupData[group][g_szGroupName], group);
SendClientMessageEx(iExtraID, COLOR_WHITE, string);
}
DeletePVar(iExtraID, "GroupUnBanningPlayer");
DeletePVar(iExtraID, "GroupUnBanningGroup");
}
case GROUP_QUERY_UNCHECK: if(GetPVarType(iExtraID, "Group_Uninv")) {
if(iRows) {
cache_get_value_name(0, "Member", szResult, MAX_PLAYER_NAME);
if(strval(szResult) == PlayerInfo[iExtraID][pMember]) {
cache_get_value_name(0, "Rank", szResult);
if(PlayerInfo[iExtraID][pRank] > strval(szResult) || PlayerInfo[iExtraID][pRank] >= Group_GetMaxRank(PlayerInfo[iExtraID][pMember])) {
cache_get_value_name(0, "id", szResult);
mysql_format(MainPipeline, szResult, sizeof szResult, "UPDATE `accounts` SET `Model` = "#NOOB_SKIN", `Member` = "#INVALID_GROUP_ID", `Rank` = "#INVALID_RANK", `Leader` = "#INVALID_GROUP_ID", `Division` = -1 WHERE `id` = %i", strval(szResult));
mysql_tquery(MainPipeline, szResult, "Group_QueryFinish", "ii", GROUP_QUERY_UNINVITE, iExtraID);
}
else SendClientMessage(iExtraID, COLOR_GREY, "You can't do this to a person of equal or higher rank.");
}
else SendClientMessage(iExtraID, COLOR_GREY, "That person is not in your group.");
}
else {
SendClientMessage(iExtraID, COLOR_GREY, "That account does not exist.");
DeletePVar(iExtraID, "Group_Uninv");
}
}
case GROUP_QUERY_UNINVITE: if(GetPVarType(iExtraID, "Group_Uninv")) {
new
szName[MAX_PLAYER_NAME],
iGroupID = PlayerInfo[iExtraID][pMember];
GetPVarString(iExtraID, "Group_Uninv", szName, sizeof szName);
if(cache_affected_rows()) {
i = PlayerInfo[iExtraID][pRank];
format(szResult, sizeof szResult, "You have successfully removed %s from your group.", szName);
SendClientMessage(iExtraID, COLOR_GREY, szResult);
format(szResult, sizeof szResult, "%s %s (rank %i) has offline uninvited %s from %s (%i).", arrGroupRanks[iGroupID][i], GetPlayerNameEx(iExtraID), i + 1, szName, arrGroupData[iGroupID][g_szGroupName], iGroupID + 1);
GroupLog(iGroupID, szResult);
}
else {
format(szResult, sizeof szResult, "An error was encountered while attempting to remove %s from your group.", szName);
SendClientMessage(iExtraID, COLOR_GREY, szResult);
}
DeletePVar(iExtraID, "Group_Uninv");
}
}
}
forward Jurisdiction_RehashFinish(iGroup);
public Jurisdiction_RehashFinish(iGroup) {
new
iRows,
iIndex,
szResult[128];
cache_get_row_count(iRows);
while(iIndex < iRows)
{
new iGroupID;
arrGroupData[iGroup][g_iJCount] = iRows;
if(arrGroupData[iGroup][g_iJCount] > MAX_GROUP_JURISDICTIONS) {
arrGroupData[iGroup][g_iJCount] = MAX_GROUP_JURISDICTIONS;
}
cache_get_value_name(iIndex, "GroupID", szResult, 24);
iGroupID = strval(szResult);
if(iGroupID == iGroup)
{
cache_get_value_name(iIndex, "id", szResult, 64);
arrGroupJurisdictions[iGroup][iIndex][g_iJurisdictionSQLId] = strval(szResult);
cache_get_value_name(iIndex, "AreaName", arrGroupJurisdictions[iGroup][iIndex][g_iAreaName], 64);
}
iIndex++;
}
}
forward AuctionLoadQuery();
public AuctionLoadQuery() {
new
iRows,
iIndex,
szResult[128];
cache_get_row_count(iRows);
while((iIndex < iRows)) {
cache_get_value_name(iIndex, "BiddingFor", Auctions[iIndex][BiddingFor], 64);
cache_get_value_name(iIndex, "InProgress", szResult); Auctions[iIndex][InProgress] = strval(szResult);
cache_get_value_name(iIndex, "Bid", szResult); Auctions[iIndex][Bid] = strval(szResult);
cache_get_value_name(iIndex, "Bidder", szResult); Auctions[iIndex][Bidder] = strval(szResult);
cache_get_value_name(iIndex, "Expires", szResult); Auctions[iIndex][Expires] = strval(szResult);
cache_get_value_name(iIndex, "Wining", Auctions[iIndex][Wining], MAX_PLAYER_NAME);
cache_get_value_name(iIndex, "Increment", szResult); Auctions[iIndex][Increment] = strval(szResult);
if(Auctions[iIndex][InProgress] == 1 && Auctions[iIndex][Expires] != 0)
{
Auctions[iIndex][Timer] = SetTimerEx("EndAuction", 60000, true, "i", iIndex);
printf("[auction - %i - started] %s, %d, %d, %d, %d, %s, %d",iIndex, Auctions[iIndex][BiddingFor],Auctions[iIndex][InProgress],Auctions[iIndex][Bid],Auctions[iIndex][Bidder],Auctions[iIndex][Expires],Auctions[iIndex][Wining],Auctions[iIndex][Increment]);
}
iIndex++;
}
return 1;
}
forward ReturnMoney(index);
public ReturnMoney(index)
{
if(IsPlayerConnected(index))
{
new
AuctionItem = GetPVarInt(index, "AuctionItem");
new money[15], money2, string[128];
new rows;
cache_get_row_count(rows);
if(rows)
{
cache_get_value_name(0, "Money", money); money2 = strval(money);
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `accounts` SET `Money` = %d WHERE `id` = '%d'", money2+Auctions[AuctionItem][Bid], Auctions[AuctionItem][Bidder]);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
format(string, sizeof(string), "Amount of $%d (Before: %i | After: %i) has been returned to (id: %i) for being outbid", Auctions[AuctionItem][Bid], money2,Auctions[AuctionItem][Bid]+money2, Auctions[AuctionItem][Bidder]);
Log("logs/auction.log", string);
GivePlayerCash(index, -GetPVarInt(index, "BidPlaced"));
Auctions[AuctionItem][Bid] = GetPVarInt(index, "BidPlaced");
Auctions[AuctionItem][Bidder] = GetPlayerSQLId(index);
strcpy(Auctions[AuctionItem][Wining], GetPlayerNameExt(index), MAX_PLAYER_NAME);
format(string, sizeof(string), "You have placed a bid of %i on %s.", GetPVarInt(index, "BidPlaced"), Auctions[AuctionItem][BiddingFor]);
SendClientMessageEx(index, COLOR_WHITE, string);
format(string, sizeof(string), "%s(%d) (IP:%s) has placed a bid of %i on %s(%i)", GetPlayerNameEx(index), GetPlayerSQLId(index), GetPlayerIpEx(index), GetPVarInt(index, "BidPlaced"), Auctions[AuctionItem][BiddingFor], AuctionItem);
Log("logs/auction.log", string);
SaveAuction(AuctionItem);
DeletePVar(index, "BidPlaced");
DeletePVar(index, "AuctionItem");
}
else
{
printf("[AuctionError] id: %i | money %i", Auctions[AuctionItem][Bidder], Auctions[AuctionItem][Bid]);
}
}
return 1;
}
forward OnQueryCreateVehicle(playerid, playervehicleid);
public OnQueryCreateVehicle(playerid, playervehicleid)
{
PlayerVehicleInfo[playerid][playervehicleid][pvSlotId] = cache_insert_id();
printf("VNumber: %d", PlayerVehicleInfo[playerid][playervehicleid][pvSlotId]);
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `vehicles` SET `pvModelId` = %d WHERE `id` = %d", PlayerVehicleInfo[playerid][playervehicleid][pvModelId], PlayerVehicleInfo[playerid][playervehicleid][pvSlotId]);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
g_mysql_SaveVehicle(playerid, playervehicleid);
}
forward CheckAccounts(playerid);
public CheckAccounts(playerid)
{
if(IsPlayerConnected(playerid))
{
new szString[128];
new rows;
cache_get_row_count(rows);
if(rows)
{
format(szString, sizeof(szString), "{AA3333}AdmWarning{FFFF00}: Moderator %s has logged into the server with s0beit installed.", GetPlayerNameEx(playerid));
ABroadCast(COLOR_YELLOW, szString, 2);
format(szString, sizeof(szString), "Admin %s(%d) (IP: %s) has logged into the server with s0beit installed.", GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), GetPlayerIpEx(playerid));
Log("logs/sobeit.log", szString);
sobeitCheckvar[playerid] = 1;
sobeitCheckIsDone[playerid] = 1;
IsPlayerFrozen[playerid] = 0;
}
else
{
mysql_format(MainPipeline, szString, sizeof(szString), "INSERT INTO `sobeitkicks` (sqlID, Kicks) VALUES (%d, 1) ON DUPLICATE KEY UPDATE Kicks = Kicks + 1", GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, szString, "OnQueryFinish", "ii", SENDDATA_THREAD, playerid);
SendClientMessageEx(playerid, COLOR_RED, "The hacking tool 's0beit' is not allowed on this server, please uninstall it.");
format(szString, sizeof(szString), "%s(%d) (IP: %s) has logged into the server with s0beit installed.", GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), GetPlayerIpEx(playerid));
Log("logs/sobeit.log", szString);
sobeitCheckvar[playerid] = 1;
sobeitCheckIsDone[playerid] = 1;
IsPlayerFrozen[playerid] = 0;
SetTimerEx("KickEx", 1000, 0, "i", playerid);
}
}
return 1;
}
forward ReferralSecurity(playerid);
public ReferralSecurity(playerid)
{
new newrows, newresult[16], currentIP[16];
GetPlayerIp(playerid, currentIP, sizeof(currentIP));
cache_get_row_count(newrows);
if(newrows > 0)
{
cache_get_value_name(0, "IP", newresult);
if(!strcmp(newresult, currentIP, true))
{
format(szMiscArray, sizeof(szMiscArray), "Nobody");
strmid(PlayerInfo[playerid][pReferredBy], szMiscArray, 0, strlen(szMiscArray), MAX_PLAYER_NAME);
ShowPlayerDialogEx(playerid, DIALOG_REGISTER_REFERRED, DIALOG_STYLE_INPUT, "{FF0000}Error", "This person has the same IP as you.\nPlease choose another player that is not on your network.\n\nIf you haven't been referred, press 'Skip'.\n\nExample: FirstName_LastName (20 Characters Max)", "Enter", "Skip");
}
else {
format(szMiscArray, sizeof(szMiscArray), " %s(%d) (IP:%s) has been referred by (Referred Account: %s (IP:%s))", GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), currentIP, PlayerInfo[playerid][pReferredBy], newresult);
Log("logs/referral.log", szMiscArray);
RegistrationStep[playerid] = 3;
SetPlayerVirtualWorld(playerid, 0);
ClearChatbox(playerid);
SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Thanks for filling in all the information!");
PlayerInfo[playerid][pTut] = 14;
AdvanceTutorial(playerid);
}
}
return 1;
}
forward OnQueryCreateToy(playerid, toyslot);
public OnQueryCreateToy(playerid, toyslot)
{
PlayerToyInfo[playerid][toyslot][ptID] = cache_insert_id();
printf("Toy ID: %d", PlayerToyInfo[playerid][toyslot][ptID]);
new szQuery[128];
mysql_format(MainPipeline, szQuery, sizeof(szQuery), "UPDATE `toys` SET `modelid` = '%d' WHERE `id` = '%d'", PlayerToyInfo[playerid][toyslot][ptID], PlayerToyInfo[playerid][toyslot][ptModelID]);
mysql_tquery(MainPipeline, szQuery, "OnQueryFinish", "i", SENDDATA_THREAD);
g_mysql_SaveToys(playerid, toyslot);
}
forward OnStaffAccountCheck(playerid);
public OnStaffAccountCheck(playerid)
{
new string[156], rows;
cache_get_row_count(rows);
if(rows > 0)
{
format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s (ID: %d) was punished and has a staff account associated with their IP address.", GetPlayerNameEx(playerid), playerid);
ABroadCast(COLOR_YELLOW, string, 2);
}
return 1;
}
// Relay For Life
stock LoadRelayForLifeTeam(teamid)
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT * FROM `rflteams` WHERE `id`=%d", teamid);
mysql_tquery(MainPipeline, string, "OnLoadRFLTeam", "i", mapiconid);
}
stock LoadRelayForLifeTeams()
{
printf("[LoadRelayForLifeTeams] Loading data from database...");
mysql_tquery(MainPipeline, "SELECT * FROM `rflteams`", "OnLoadRFLTeams", "");
}
forward OnLoadRFLTeams();
public OnLoadRFLTeams()
{
new i, rows, tmp[128];
cache_get_row_count(rows);
while(i < rows)
{
cache_get_value_name(i, "id", tmp); RFLInfo[i][RFLsqlid] = strval(tmp);
cache_get_value_name(i, "name", RFLInfo[i][RFLname]);
cache_get_value_name(i, "leader", RFLInfo[i][RFLleader]);
cache_get_value_name(i, "used", tmp); RFLInfo[i][RFLused] = strval(tmp);
cache_get_value_name(i, "members", tmp); RFLInfo[i][RFLmembers] = strval(tmp);
cache_get_value_name(i, "laps", tmp); RFLInfo[i][RFLlaps] = strval(tmp);
i++;
}
if(i > 0) printf("[LoadRelayForLifeTeams] %d teams loaded.", i);
else printf("[LoadRelayForLifeTeams] Failed to load any teams.");
return 1;
}
forward OnLoadRFLTeam(index);
public OnLoadRFLTeam(index)
{
new rows, tmp[128];
cache_get_row_count(rows);
for(new row; row < rows; row++)
{
cache_get_value_name(row, "id", tmp); RFLInfo[index][RFLsqlid] = strval(tmp);
cache_get_value_name(row, "name", RFLInfo[index][RFLname]);
cache_get_value_name(row, "leader", RFLInfo[index][RFLleader]);
cache_get_value_name(row, "used", tmp); RFLInfo[index][RFLused] = strval(tmp);
cache_get_value_name(row, "members", tmp); RFLInfo[index][RFLmembers] = strval(tmp);
cache_get_value_name(row, "laps", tmp); RFLInfo[index][RFLlaps] = strval(tmp);
}
}
stock SaveRelayForLifeTeam(teamid)
{
new string[248];
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `rflteams` SET `name`='%s', `leader`='%s', `used`=%d, `members`=%d, `laps`=%d WHERE id=%d",
RFLInfo[teamid][RFLname],
RFLInfo[teamid][RFLleader],
RFLInfo[teamid][RFLused],
RFLInfo[teamid][RFLmembers],
RFLInfo[teamid][RFLlaps],
RFLInfo[teamid][RFLsqlid]
);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
stock SaveRelayForLifeTeams()
{
for(new i = 0; i < MAX_RFLTEAMS; i++)
{
SaveRelayForLifeTeam(i);
}
}
forward OnRFLPScore(index, id);
public OnRFLPScore(index, id)
{
new i, rows, string[1500], tmp[7], name[25], leader[25], laps;
cache_get_row_count(rows);
switch(id) {
case 1: {
while(i < rows)
{
cache_get_value_name(i, "name", name);
cache_get_value_name(i, "leader", leader);
cache_get_value_name(i, "laps", tmp); laps = strval(tmp);
format(string, sizeof(string), "%s\nTeam: %s | Leader: %s | Laps: %d",string, name, leader, laps);
i++;
}
if(i < 1) {
DeletePVar(index, "rflTemp");
SendClientMessageEx(index, COLOR_GREY, "No teams found.");
return 1;
}
if(i >= 15) {
SetPVarInt(index, "rflTemp", GetPVarInt(index, "rflTemp") + i);
ShowPlayerDialogEx(index, DIALOG_RFL_TEAMS, DIALOG_STYLE_LIST, "Relay For Life Teams", string, "Next", "Close");
return 1;
}
else
{
DeletePVar(index, "rflTemp");
ShowPlayerDialogEx(index, DIALOG_RFL_TEAMS, DIALOG_STYLE_LIST, "Relay For Life Teams", string, "Close", "");
return 1;
}
}
case 2: {
while(i < rows)
{
cache_get_value_name(i, "Username", name);
cache_get_value_name(i, "RacePlayerLaps", tmp); laps = strval(tmp);
format(string, sizeof(string), "%s\n%s | Laps: %d",string, name, laps);
i++;
}
if(i > 0) {
ShowPlayerDialogEx(index, DIALOG_RFL_PLAYERS, DIALOG_STYLE_LIST, "Relay For Life Player Top 25", string, "Close", "");
}
else {
SendClientMessageEx(index, COLOR_GREY, "No player has run any laps yet.");
}
}
}
return 1;
}
forward OnCheckRFLName(playerid, Player);
public OnCheckRFLName(playerid, Player)
{
if(IsPlayerConnected(Player))
{
if(cache_affected_rows())
{
SendClientMessageEx(Player, COLOR_YELLOW, "This team name already exists.");
SendClientMessageEx(playerid, COLOR_YELLOW, "This team name already exists.");
}
else
{
new newname[25], string[128];
GetPVarString(Player, "NewRFLName", newname, sizeof(newname));
format(RFLInfo[PlayerInfo[Player][pRFLTeam]][RFLname], 25, "%s", newname);
format(string, sizeof(string), "* Your team name has been changed to %s.", newname);
SendClientMessageEx(Player, COLOR_YELLOW, string);
format(string, sizeof(string), "* You have changed %s's team name to %s.", GetPlayerNameEx(playerid), newname);
SendClientMessageEx(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "%s has accepted %s's team name change request",GetPlayerNameEx(playerid),GetPlayerNameEx(Player));
ABroadCast(COLOR_YELLOW, string, 3);
SaveRelayForLifeTeam(PlayerInfo[Player][pRFLTeam]);
foreach(new i: Player)
{
if( GetPVarInt( i, "EventToken" ) == 1 ) {
if( EventKernel[ EventStatus ] == 1 || EventKernel[ EventStatus ] == 2 ) {
if(EventKernel[EventType] == 3) {
if(PlayerInfo[i][pRFLTeam] == PlayerInfo[Player][pRFLTeam]) {
format(string, sizeof(string), "Team: %s", newname);
UpdateDynamic3DTextLabelText(RFLTeamN3D[i], 0x008080FF, string);
}
}
}
}
}
}
}
else
{
SendClientMessageEx(playerid, COLOR_GREY, "This user has logged off.");
}
DeletePVar(Player, "RFLNameRequest");
DeletePVar(playerid, "RFLNameChange");
DeletePVar(Player, "NewRFLName");
return 1;
}
stock GetPartnerName(playerid)
{
if(PlayerInfo[playerid][pMarriedID] == -1) format(PlayerInfo[playerid][pMarriedName], MAX_PLAYER_NAME, "Nobody");
else
{
new query[128];
mysql_format(MainPipeline, query, sizeof(query), "SELECT `Username` FROM `accounts` WHERE `id` = %d", PlayerInfo[playerid][pMarriedID]);
mysql_tquery(MainPipeline, query, "OnGetPartnerName", "i", playerid);
}
}
forward OnGetPartnerName(playerid);
public OnGetPartnerName(playerid)
{
new rows, index;
cache_get_row_count(rows);
cache_get_value_name(index, "Username", PlayerInfo[playerid][pMarriedName], MAX_PLAYER_NAME);
return 1;
}
forward OnStaffPrize(playerid);
public OnStaffPrize(playerid)
{
if(cache_affected_rows())
{
new type[32], name[MAX_PLAYER_NAME], amount, string[128];
GetPVarString(playerid, "OnSPrizeType", type, 16);
GetPVarString(playerid, "OnSPrizeName", name, 24);
amount = GetPVarInt(playerid, "OnSPrizeAmount");
format(string, sizeof(string), "AdmCmd: %s has offline-given %s %d free %s.", GetPlayerNameEx(playerid), name, amount, type);
ABroadCast(COLOR_LIGHTRED, string, 2);
format(string, sizeof(string), "You have given %s %d %s.", name, amount, type);
SendClientMessageEx(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "[Admin] %s(IP:%s) has offline-given %s %d free %s.", GetPlayerNameEx(playerid), GetPlayerIpEx(playerid), name, amount, type);
Log("logs/adminrewards.log", string);
}
else
{
SendClientMessageEx(playerid, COLOR_RED, "Failed to give the prize..");
}
DeletePVar(playerid, "OnSPrizeType");
DeletePVar(playerid, "OnSPrizeName");
DeletePVar(playerid, "OnSPrizeAmount");
return 1;
}
stock AddNewBackpack(id)
{
new string[1024];
mysql_format(MainPipeline, string, sizeof(string), "INSERT into `hgbackpacks` (type, posx, posy, posz) VALUES ('%d', '%f', '%f', '%f')",
HungerBackpackInfo[id][hgBackpackType],
HungerBackpackInfo[id][hgBackpackPos][0],
HungerBackpackInfo[id][hgBackpackPos][1],
HungerBackpackInfo[id][hgBackpackPos][2]);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
stock SaveHGBackpack(id)
{
new string[1024];
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `hgbackpacks` SET \
`type` = %d, \
`posx` = %f,\
`posy` = %f,\
`posz` = %f WHERE `id` = %d",
HungerBackpackInfo[id][hgBackpackType],
HungerBackpackInfo[id][hgBackpackPos][0],
HungerBackpackInfo[id][hgBackpackPos][1],
HungerBackpackInfo[id][hgBackpackPos][2],
id
);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "i", SENDDATA_THREAD);
}
forward OnLoadHGBackpacks();
public OnLoadHGBackpacks()
{
new rows, index, result[128], string[128];
cache_get_row_count(rows);
while((index < rows))
{
cache_get_value_name(index, "id", result); HungerBackpackInfo[index][hgBackpackId] = strval(result);
cache_get_value_name(index, "type", result); HungerBackpackInfo[index][hgBackpackType] = strval(result);
cache_get_value_name(index, "posx", result); HungerBackpackInfo[index][hgBackpackPos][0] = floatstr(result);
cache_get_value_name(index, "posy", result); HungerBackpackInfo[index][hgBackpackPos][1] = floatstr(result);
cache_get_value_name(index, "posz", result); HungerBackpackInfo[index][hgBackpackPos][2] = floatstr(result);
HungerBackpackInfo[index][hgActiveEx] = 1;
HungerBackpackInfo[index][hgBackpackPickupId] = CreateDynamicPickup(371, 23, HungerBackpackInfo[index][hgBackpackPos][0], HungerBackpackInfo[index][hgBackpackPos][1], HungerBackpackInfo[index][hgBackpackPos][2], 2039);
format(string, sizeof(string), "Hunger Games Backpack\nType: %s\n{FF0000}(ID: %d){FFFFFF}", GetHungerBackpackName(index), index);
HungerBackpackInfo[index][hgBackpack3DText] = CreateDynamic3DTextLabel(string, COLOR_ORANGE, HungerBackpackInfo[index][hgBackpackPos][0], HungerBackpackInfo[index][hgBackpackPos][1], HungerBackpackInfo[index][hgBackpackPos][2]+1, 20.0, .worldid = 2039, .interiorid = 0);
index++;
}
hgBackpackCount = index;
if(index == 0) print("[Hunger Games] No Backpack has been loaded.");
if(index != 0) printf("[Hunger Games] %d Backpacks has been loaded.", index);
return true;
}
forward ExecuteShopQueue(playerid, id);
public ExecuteShopQueue(playerid, id)
{
new rows, index, result[128], string[128], query[128], tmp[8];
switch(id)
{
case 0:
{
cache_get_row_count(rows);
if(IsPlayerConnected(playerid))
{
while(index < rows)
{
cache_get_value_name(index, "id", result); tmp[0] = strval(result);
cache_get_value_name(index, "GiftVoucher", result); tmp[1] = strval(result);
cache_get_value_name(index, "CarVoucher", result); tmp[2] = strval(result);
cache_get_value_name(index, "VehVoucher", result); tmp[3] = strval(result);
cache_get_value_name(index, "SVIPVoucher", result); tmp[4] = strval(result);
cache_get_value_name(index, "GVIPVoucher", result); tmp[5] = strval(result);
cache_get_value_name(index, "PVIPVoucher", result); tmp[6] = strval(result);
cache_get_value_name(index, "credits_spent", result); tmp[7] = strval(result);
if(tmp[1] > 0)
{
PlayerInfo[playerid][pGiftVoucher] += tmp[1];
format(string, sizeof(string), "You have been automatically issued %d gift reset voucher(s).", tmp[1]);
SendClientMessageEx(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "[ID: %d] %s(%d) was automatically issued %d gift reset voucher(s)", tmp[0], GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), tmp[1]);
Log("logs/shoplog.log", string);
}
if(tmp[2] > 0)
{
PlayerInfo[playerid][pCarVoucher] += tmp[2];
format(string, sizeof(string), "You have been automatically issued %d restricted car voucher(s).", tmp[2]);
SendClientMessageEx(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "[ID: %d] %s(%d) was automatically issued %d restricted car voucher(s)", tmp[0], GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), tmp[2]);
Log("logs/shoplog.log", string);
}
if(tmp[3] > 0)
{
PlayerInfo[playerid][pVehVoucher] += tmp[3];
format(string, sizeof(string), "You have been automatically issued %d car voucher(s).", tmp[3]);
SendClientMessageEx(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "[ID: %d] %s(%d) was automatically issued %d car voucher(s)", tmp[0], GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), tmp[3]);
Log("logs/shoplog.log", string);
}
if(tmp[4] > 0)
{
PlayerInfo[playerid][pSVIPVoucher] += tmp[4];
format(string, sizeof(string), "You have been automatically issued %d Silver VIP voucher(s).", tmp[4]);
SendClientMessageEx(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "[ID: %d] %s(%d) was automatically issued %d Silver VIP voucher(s)", tmp[0], GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), tmp[4]);
Log("logs/shoplog.log", string);
}
if(tmp[5] > 0)
{
PlayerInfo[playerid][pGVIPVoucher] += tmp[5];
format(string, sizeof(string), "You have been automatically issued %d Gold VIP voucher(s).", tmp[5]);
SendClientMessageEx(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "[ID: %d] %s(%d) was automatically issued %d Gold VIP voucher(s)", tmp[0], GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), tmp[5]);
Log("logs/shoplog.log", string);
}
if(tmp[6] > 0)
{
PlayerInfo[playerid][pPVIPVoucher] += tmp[6];
format(string, sizeof(string), "You have been automatically issued %d 1 month PVIP Voucher(s).", tmp[6]);
SendClientMessageEx(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "[ID: %d] %s(%d) was automatically issued %d 1 month PVIP Voucher(s)", tmp[0], GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), tmp[6]);
Log("logs/shoplog.log", string);
}
GivePlayerCredits(playerid, tmp[7], 1, 1);
format(string, sizeof(string), "%s(%d) | Credits: %d - 1", GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), tmp[7]);
Log("logs/shopdebug.log", string);
mysql_format(MainPipeline, query, sizeof(query), "UPDATE `shop_orders` SET `status` = 1 WHERE `id` = %d", tmp[0]);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
format(string, sizeof(string), "%s(%d) | Status set to 1 - 1", GetPlayerNameEx(playerid), GetPlayerSQLId(playerid));
Log("logs/shopdebug.log", string);
OnPlayerStatsUpdate(playerid);
return SendClientMessageEx(playerid, COLOR_CYAN, "* Use /myvouchers to check and use your vouchers at any time!");
}
}
}
case 1:
{
cache_get_row_count(rows);
if(IsPlayerConnected(playerid))
{
while(index < rows)
{
cache_get_value_name(index, "order_id", result); tmp[0] = strval(result);
cache_get_value_name(index, "credit_amount", result); tmp[1] = strval(result);
GivePlayerCredits(playerid, tmp[1], 1);
format(string, sizeof(string), "%s(%d) | Credits: %d - 2", GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), tmp[1]);
Log("logs/shopdebug.log", string);
format(string, sizeof(string), "You have been automatically issued %s credit(s).", number_format(tmp[1]));
SendClientMessageEx(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "[ID: %d] %s(%d) was automatically issued %s credit(s)", tmp[0], GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), number_format(tmp[1]));
Log("logs/shoplog.log", string);
mysql_format(ShopPipeline, query, sizeof(query), "UPDATE `order_delivery_status` SET `status` = 1 WHERE `order_id` = %d", tmp[0]);
mysql_tquery(ShopPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
format(string, sizeof(string), "%s(%d) | Status set to 1 - 2", GetPlayerNameEx(playerid), GetPlayerSQLId(playerid));
Log("logs/shopdebug.log", string);
OnPlayerStatsUpdate(playerid);
return 1;
}
}
}
}
return 1;
}
stock CheckAdminWhitelist(playerid)
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT `AdminLevel`, `SecureIP`, `Watchdog` FROM `accounts` WHERE `Username` = '%s'", GetPlayerNameExt(playerid));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "iii", ADMINWHITELIST_THREAD, playerid, g_arrQueryHandle{playerid});
return true;
}
stock GivePlayerCashEx(playerid, type, amount)
{
if(IsPlayerConnected(playerid) && gPlayerLogged{playerid})
{
new szQuery[128];
switch(type)
{
case TYPE_BANK:
{
PlayerInfo[playerid][pAccount] += amount;
mysql_format(MainPipeline, szQuery, sizeof(szQuery), "UPDATE `accounts` SET `Bank`=%d WHERE `id` = %d", PlayerInfo[playerid][pAccount], GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, szQuery, "OnQueryFinish", "ii", SENDDATA_THREAD, playerid);
}
case TYPE_ONHAND:
{
PlayerInfo[playerid][pCash] += amount;
mysql_format(MainPipeline, szQuery, sizeof(szQuery), "UPDATE `accounts` SET `Money`=%d WHERE `id` = %d", PlayerInfo[playerid][pCash], GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, szQuery, "OnQueryFinish", "ii", SENDDATA_THREAD, playerid);
}
}
}
return 1;
}
// g_mysql_LoadGiftBox()
// Description: Loads the data of the dynamic giftbox from the SQL Database.
stock g_mysql_LoadGiftBox()
{
print("[Dynamic Giftbox] Loading the Dynamic Giftbox...");
mysql_tquery(MainPipeline, "SELECT * FROM `giftbox`", "OnQueryFinish", "iii", LOADGIFTBOX_THREAD, INVALID_PLAYER_ID, -1);
}
stock SaveDynamicGiftBox()
{
szMiscArray[0] = 0;
for(new i = 0; i < 4; i++)
{
if(i == 0)
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "UPDATE `giftbox` SET `dgMoney%d` = '%d',", i, dgVar[dgMoney][i]);
else
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgMoney%d` = '%d',", szMiscArray, i, dgVar[dgMoney][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgRimKit%d` = '%d',", szMiscArray, i, dgVar[dgRimKit][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgFirework%d` = '%d',", szMiscArray, i, dgVar[dgFirework][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgGVIP%d` = '%d',", szMiscArray, i, dgVar[dgGVIP][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgSVIP%d` = '%d',", szMiscArray, i, dgVar[dgSVIP][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgGVIPEx%d` = '%d',", szMiscArray, i, dgVar[dgGVIPEx][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgSVIPEx%d` = '%d',", szMiscArray, i, dgVar[dgSVIPEx][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgCarSlot%d` = '%d',", szMiscArray, i, dgVar[dgCarSlot][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgToySlot%d` = '%d',", szMiscArray, i, dgVar[dgToySlot][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgArmor%d` = '%d',", szMiscArray, i, dgVar[dgArmor][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgFirstaid%d` = '%d',", szMiscArray, i, dgVar[dgFirstaid][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgDDFlag%d` = '%d',", szMiscArray, i, dgVar[dgDDFlag][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgGateFlag%d` = '%d',", szMiscArray, i, dgVar[dgGateFlag][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgCredits%d` = '%d',", szMiscArray, i, dgVar[dgCredits][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgPriorityAd%d` = '%d',", szMiscArray, i, dgVar[dgPriorityAd][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgHealthNArmor%d` = '%d',", szMiscArray, i, dgVar[dgHealthNArmor][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgGiftReset%d` = '%d',", szMiscArray, i, dgVar[dgGiftReset][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgMaterial%d` = '%d',", szMiscArray, i, dgVar[dgMaterial][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgWarning%d` = '%d',", szMiscArray, i, dgVar[dgWarning][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgPot%d` = '%d',", szMiscArray, i, dgVar[dgPot][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgCrack%d` = '%d',", szMiscArray, i, dgVar[dgCrack][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgPaintballToken%d` = '%d',", szMiscArray, i, dgVar[dgPaintballToken][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgVIPToken%d` = '%d',", szMiscArray, i, dgVar[dgVIPToken][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgRespectPoint%d` = '%d',", szMiscArray, i, dgVar[dgRespectPoint][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgCarVoucher%d` = '%d',", szMiscArray, i, dgVar[dgCarVoucher][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgBuddyInvite%d` = '%d',", szMiscArray, i, dgVar[dgBuddyInvite][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgLaser%d` = '%d',", szMiscArray, i, dgVar[dgLaser][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgCustomToy%d` = '%d',", szMiscArray, i, dgVar[dgCustomToy][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgAdmuteReset%d` = '%d',", szMiscArray, i, dgVar[dgAdmuteReset][i]);
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgNewbieMuteReset%d` = '%d',", szMiscArray, i, dgVar[dgNewbieMuteReset][i]);
if(i == 3)
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgRestrictedCarVoucher%d` = '%d'", szMiscArray, i, dgVar[dgRestrictedCarVoucher][i]);
else
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `dgPlatinumVIPVoucher%d` = '%d',", szMiscArray, i, dgVar[dgPlatinumVIPVoucher][i]);
}
mysql_tquery(MainPipeline, szMiscArray, "OnszMiscArrayFinish", "i", SENDDATA_THREAD);
}
stock LoadPaintballArenas()
{
new query[64];
printf("[LoadPaintballArenas] Loading Paintball Arenas from the database, please wait...");
mysql_format(MainPipeline, query, sizeof(query), "SELECT * FROM `arenas` LIMIT %d", MAX_ARENAS);
mysql_tquery(MainPipeline, query, "OnLoadPaintballArenas", "");
}
forward OnLoadPaintballArenas();
public OnLoadPaintballArenas()
{
new rows, index, result[128];
cache_get_row_count(rows);
while((index < rows))
{
cache_get_value_name(index, "id", result); PaintBallArena[index][pbSQLId] = strval(result);
cache_get_value_name(index, "name", PaintBallArena[index][pbArenaName], 64);
cache_get_value_name(index, "vw", result); PaintBallArena[index][pbVirtual] = strval(result);
cache_get_value_name(index, "interior", result); PaintBallArena[index][pbInterior] = strval(result);
cache_get_value_name(index, "dm1", result); sscanf(result, "p<|>ffff", PaintBallArena[index][pbDeathmatch1][0], PaintBallArena[index][pbDeathmatch1][1], PaintBallArena[index][pbDeathmatch1][2], PaintBallArena[index][pbDeathmatch1][3]);
cache_get_value_name(index, "dm2", result); sscanf(result, "p<|>ffff", PaintBallArena[index][pbDeathmatch2][0], PaintBallArena[index][pbDeathmatch2][1], PaintBallArena[index][pbDeathmatch2][2], PaintBallArena[index][pbDeathmatch2][3]);
cache_get_value_name(index, "dm3", result); sscanf(result, "p<|>ffff", PaintBallArena[index][pbDeathmatch3][0], PaintBallArena[index][pbDeathmatch3][1], PaintBallArena[index][pbDeathmatch3][2], PaintBallArena[index][pbDeathmatch3][3]);
cache_get_value_name(index, "dm4", result); sscanf(result, "p<|>ffff", PaintBallArena[index][pbDeathmatch4][0], PaintBallArena[index][pbDeathmatch4][1], PaintBallArena[index][pbDeathmatch4][2], PaintBallArena[index][pbDeathmatch4][3]);
cache_get_value_name(index, "red1", result); sscanf(result, "p<|>ffff", PaintBallArena[index][pbTeamRed1][0], PaintBallArena[index][pbTeamRed1][1], PaintBallArena[index][pbTeamRed1][2], PaintBallArena[index][pbTeamRed1][3]);
cache_get_value_name(index, "red2", result); sscanf(result, "p<|>ffff", PaintBallArena[index][pbTeamRed2][0], PaintBallArena[index][pbTeamRed2][1], PaintBallArena[index][pbTeamRed2][2], PaintBallArena[index][pbTeamRed2][3]);
cache_get_value_name(index, "red3", result); sscanf(result, "p<|>ffff", PaintBallArena[index][pbTeamRed3][0], PaintBallArena[index][pbTeamRed3][1], PaintBallArena[index][pbTeamRed3][2], PaintBallArena[index][pbTeamRed3][3]);
cache_get_value_name(index, "blue1", result); sscanf(result, "p<|>ffff", PaintBallArena[index][pbTeamBlue1][0], PaintBallArena[index][pbTeamBlue1][1], PaintBallArena[index][pbTeamBlue1][2], PaintBallArena[index][pbTeamBlue1][3]);
cache_get_value_name(index, "blue2", result); sscanf(result, "p<|>ffff", PaintBallArena[index][pbTeamBlue2][0], PaintBallArena[index][pbTeamBlue2][1], PaintBallArena[index][pbTeamBlue2][2], PaintBallArena[index][pbTeamBlue2][3]);
cache_get_value_name(index, "blue3", result); sscanf(result, "p<|>ffff", PaintBallArena[index][pbTeamBlue3][0], PaintBallArena[index][pbTeamBlue3][1], PaintBallArena[index][pbTeamBlue3][2], PaintBallArena[index][pbTeamBlue3][3]);
cache_get_value_name(index, "flagred", result); sscanf(result, "p<|>fff", PaintBallArena[index][pbFlagRedSpawn][0], PaintBallArena[index][pbFlagRedSpawn][1], PaintBallArena[index][pbFlagRedSpawn][2]);
cache_get_value_name(index, "flagblue", result); sscanf(result, "p<|>fff", PaintBallArena[index][pbFlagBlueSpawn][0], PaintBallArena[index][pbFlagBlueSpawn][1], PaintBallArena[index][pbFlagBlueSpawn][2]);
cache_get_value_name(index, "hill", result); sscanf(result, "p<|>fff", PaintBallArena[index][pbHillX], PaintBallArena[index][pbHillY], PaintBallArena[index][pbHillZ]);
cache_get_value_name(index, "hillr", result); PaintBallArena[index][pbHillRadius] = floatstr(result);
cache_get_value_name(index, "veh1", result); sscanf(result, "p<|>dffff", PaintBallArena[index][pbVeh1Model], PaintBallArena[index][pbVeh1X], PaintBallArena[index][pbVeh1Y], PaintBallArena[index][pbVeh1Z], PaintBallArena[index][pbVeh1A]);
cache_get_value_name(index, "veh2", result); sscanf(result, "p<|>dffff", PaintBallArena[index][pbVeh2Model], PaintBallArena[index][pbVeh2X], PaintBallArena[index][pbVeh2Y], PaintBallArena[index][pbVeh2Z], PaintBallArena[index][pbVeh2A]);
cache_get_value_name(index, "veh3", result); sscanf(result, "p<|>dffff", PaintBallArena[index][pbVeh3Model], PaintBallArena[index][pbVeh3X], PaintBallArena[index][pbVeh3Y], PaintBallArena[index][pbVeh3Z], PaintBallArena[index][pbVeh3A]);
cache_get_value_name(index, "veh4", result); sscanf(result, "p<|>dffff", PaintBallArena[index][pbVeh4Model], PaintBallArena[index][pbVeh4X], PaintBallArena[index][pbVeh4Y], PaintBallArena[index][pbVeh4Z], PaintBallArena[index][pbVeh4A]);
cache_get_value_name(index, "veh5", result); sscanf(result, "p<|>dffff", PaintBallArena[index][pbVeh5Model], PaintBallArena[index][pbVeh5X], PaintBallArena[index][pbVeh5Y], PaintBallArena[index][pbVeh5Z], PaintBallArena[index][pbVeh5A]);
cache_get_value_name(index, "veh6", result); sscanf(result, "p<|>dffff", PaintBallArena[index][pbVeh6Model], PaintBallArena[index][pbVeh6X], PaintBallArena[index][pbVeh6Y], PaintBallArena[index][pbVeh6Z], PaintBallArena[index][pbVeh6A]);
index++;
}
if(index == 0) print("[LoadPaintBallArenas] No Paintball Arenas have been loaded.");
if(index != 0) printf("[LoadPaintBallArenas] %d Paintball Arenas have been loaded.", index);
return 1;
}
stock SavePaintballArena(index)
{
new query[2048];
mysql_format(MainPipeline, query, sizeof(query), "UPDATE `arenas` SET `name`='%e',", PaintBallArena[index][pbArenaName]);
mysql_format(MainPipeline, query, sizeof(query), "%s `vw`=%d,",query, PaintBallArena[index][pbVirtual]);
mysql_format(MainPipeline, query, sizeof(query), "%s `interior`=%d,", query, PaintBallArena[index][pbInterior]);
mysql_format(MainPipeline, query, sizeof(query), "%s `dm1`='%f|%f|%f|%f',", query, PaintBallArena[index][pbDeathmatch1][0], PaintBallArena[index][pbDeathmatch1][1], PaintBallArena[index][pbDeathmatch1][2], PaintBallArena[index][pbDeathmatch1][3]);
mysql_format(MainPipeline, query, sizeof(query), "%s `dm2`='%f|%f|%f|%f',", query, PaintBallArena[index][pbDeathmatch2][0], PaintBallArena[index][pbDeathmatch2][1], PaintBallArena[index][pbDeathmatch2][2], PaintBallArena[index][pbDeathmatch2][3]);
mysql_format(MainPipeline, query, sizeof(query), "%s `dm3`='%f|%f|%f|%f',", query, PaintBallArena[index][pbDeathmatch3][0], PaintBallArena[index][pbDeathmatch3][1], PaintBallArena[index][pbDeathmatch3][2], PaintBallArena[index][pbDeathmatch3][3]);
mysql_format(MainPipeline, query, sizeof(query), "%s `dm4`='%f|%f|%f|%f',", query, PaintBallArena[index][pbDeathmatch4][0], PaintBallArena[index][pbDeathmatch4][1], PaintBallArena[index][pbDeathmatch4][2], PaintBallArena[index][pbDeathmatch4][3]);
mysql_format(MainPipeline, query, sizeof(query), "%s `red1`='%f|%f|%f|%f',", query, PaintBallArena[index][pbTeamRed1][0], PaintBallArena[index][pbTeamRed1][1], PaintBallArena[index][pbTeamRed1][2], PaintBallArena[index][pbTeamRed1][3]);
mysql_format(MainPipeline, query, sizeof(query), "%s `red2`='%f|%f|%f|%f',", query, PaintBallArena[index][pbTeamRed2][0], PaintBallArena[index][pbTeamRed2][1], PaintBallArena[index][pbTeamRed2][2], PaintBallArena[index][pbTeamRed2][3]);
mysql_format(MainPipeline, query, sizeof(query), "%s `red3`='%f|%f|%f|%f',", query, PaintBallArena[index][pbTeamRed3][0], PaintBallArena[index][pbTeamRed3][1], PaintBallArena[index][pbTeamRed3][2], PaintBallArena[index][pbTeamRed3][3]);
mysql_format(MainPipeline, query, sizeof(query), "%s `blue1`='%f|%f|%f|%f',", query, PaintBallArena[index][pbTeamBlue1][0], PaintBallArena[index][pbTeamBlue1][1], PaintBallArena[index][pbTeamBlue1][2], PaintBallArena[index][pbTeamBlue1][3]);
mysql_format(MainPipeline, query, sizeof(query), "%s `blue2`='%f|%f|%f|%f',", query, PaintBallArena[index][pbTeamBlue2][0], PaintBallArena[index][pbTeamBlue2][1], PaintBallArena[index][pbTeamBlue2][2], PaintBallArena[index][pbTeamBlue2][3]);
mysql_format(MainPipeline, query, sizeof(query), "%s `blue3`='%f|%f|%f|%f',", query, PaintBallArena[index][pbTeamBlue3][0], PaintBallArena[index][pbTeamBlue3][1], PaintBallArena[index][pbTeamBlue3][2], PaintBallArena[index][pbTeamBlue3][3]);
mysql_format(MainPipeline, query, sizeof(query), "%s `flagred`='%f|%f|%f',", query, PaintBallArena[index][pbFlagRedSpawn][0], PaintBallArena[index][pbFlagRedSpawn][1], PaintBallArena[index][pbFlagRedSpawn][2]);
mysql_format(MainPipeline, query, sizeof(query), "%s `flagblue`='%f|%f|%f',", query, PaintBallArena[index][pbFlagBlueSpawn][0], PaintBallArena[index][pbFlagBlueSpawn][1], PaintBallArena[index][pbFlagBlueSpawn][2]);
mysql_format(MainPipeline, query, sizeof(query), "%s `hill`='%f|%f|%f',", query, PaintBallArena[index][pbHillX], PaintBallArena[index][pbHillY], PaintBallArena[index][pbHillZ]);
mysql_format(MainPipeline, query, sizeof(query), "%s `hillr`=%f,", query, PaintBallArena[index][pbHillRadius]);
mysql_format(MainPipeline, query, sizeof(query), "%s `veh1`='%d|%f|%f|%f|%f',", query, PaintBallArena[index][pbVeh1Model], PaintBallArena[index][pbVeh1X], PaintBallArena[index][pbVeh1Y], PaintBallArena[index][pbVeh1Z], PaintBallArena[index][pbVeh1A]);
mysql_format(MainPipeline, query, sizeof(query), "%s `veh2`='%d|%f|%f|%f|%f',", query, PaintBallArena[index][pbVeh2Model], PaintBallArena[index][pbVeh2X], PaintBallArena[index][pbVeh2Y], PaintBallArena[index][pbVeh2Z], PaintBallArena[index][pbVeh2A]);
mysql_format(MainPipeline, query, sizeof(query), "%s `veh3`='%d|%f|%f|%f|%f',", query, PaintBallArena[index][pbVeh3Model], PaintBallArena[index][pbVeh3X], PaintBallArena[index][pbVeh3Y], PaintBallArena[index][pbVeh3Z], PaintBallArena[index][pbVeh3A]);
mysql_format(MainPipeline, query, sizeof(query), "%s `veh4`='%d|%f|%f|%f|%f',", query, PaintBallArena[index][pbVeh4Model], PaintBallArena[index][pbVeh4X], PaintBallArena[index][pbVeh4Y], PaintBallArena[index][pbVeh4Z], PaintBallArena[index][pbVeh4A]);
mysql_format(MainPipeline, query, sizeof(query), "%s `veh5`='%d|%f|%f|%f|%f',", query, PaintBallArena[index][pbVeh5Model], PaintBallArena[index][pbVeh5X], PaintBallArena[index][pbVeh5Y], PaintBallArena[index][pbVeh5Z], PaintBallArena[index][pbVeh5A]);
mysql_format(MainPipeline, query, sizeof(query), "%s `veh6`='%d|%f|%f|%f|%f'", query, PaintBallArena[index][pbVeh6Model], PaintBallArena[index][pbVeh6X], PaintBallArena[index][pbVeh6Y], PaintBallArena[index][pbVeh6Z], PaintBallArena[index][pbVeh6A]);
mysql_format(MainPipeline, query, sizeof(query), "%s WHERE `id` = %d", query, PaintBallArena[index][pbSQLId]);
mysql_tquery(MainPipeline, query, "OnQueryFinish", "i", SENDDATA_THREAD);
}
stock SavePaintballArenas()
{
for(new i = 0; i < MAX_ARENAS; ++i)
{
SavePaintballArena(i);
}
}
stock AddNonRPPoint(playerid, point, expiration, reason[], issuerid, manual)
{
new szQuery[512], escapedstring[128];
mysql_escape_string(reason, escapedstring);
mysql_format(MainPipeline, szQuery, sizeof(szQuery), "INSERT INTO `nonrppoints` (sqlid, point, expiration, reason, issuer, active, manual) VALUES ('%d', '%d', '%d', '%s', '%d', '1', '%d')",
GetPlayerSQLId(playerid),
point,
expiration,
escapedstring,
GetPlayerSQLId(issuerid),
manual);
mysql_tquery(MainPipeline, szQuery, "OnQueryFinish", "i", SENDDATA_THREAD);
}
stock LoadPlayerNonRPPoints(playerid)
{
new string[128];
mysql_format(MainPipeline, string, sizeof(string), "SELECT * FROM `nonrppoints` WHERE `sqlid` = '%d'", PlayerInfo[playerid][pId]);
mysql_tquery(MainPipeline, string, "OnQueryFinish", "iii", LOADPNONRPOINTS_THREAD, playerid, g_arrQueryHandle{playerid});
return true;
}
forward OnWDWhitelist(index);
public OnWDWhitelist(index)
{
new string[128], name[24];
GetPVarString(index, "OnWDWhitelist", name, 24);
if(cache_affected_rows()) {
format(string, sizeof(string), "You have successfully whitelisted %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
format(string, sizeof(string), "%s has IP Whitelisted %s", GetPlayerNameEx(index), name);
Log("logs/wdwhitelist.log", string);
}
else {
format(string, sizeof(string), "There was a issue with whitelisting %s's account.", name);
SendClientMessageEx(index, COLOR_WHITE, string);
}
DeletePVar(index, "OnWDWhitelist");
return 1;
}
forward FetchWatchlist(index);
public FetchWatchlist(index)
{
new rows;
cache_get_row_count(rows);
for(new i = 0; i < rows; i++)
{
new szResult[32], points, sqlid;
cache_get_value_name(i, "sqlid", szResult); sqlid = strval(szResult);
cache_get_value_name(i, "point", szResult); points = strval(szResult);
foreach(new x: Player)
{
if(PlayerInfo[x][pId] == sqlid)
{
format(PublicSQLString, sizeof(PublicSQLString), "%s %s (ID: %d) | Points: %d - Manually Added\n", PublicSQLString, GetPlayerNameEx(x), x, points);
break;
}
}
}
mysql_tquery(MainPipeline, "SELECT sqlid, point FROM `nonrppoints` LEFT JOIN accounts on sqlid = accounts.id WHERE (`active` = '1' AND `manual` = '0') AND accounts.`Online` = 1 ORDER BY `point` DESC LIMIT 15", "FetchWatchlist2", "i", index);
return true;
}
forward FetchWatchlist2(index, input[]);
public FetchWatchlist2(index, input[])
{
new rows;
cache_get_row_count(rows);
for(new i = 0; i < rows; i++)
{
new szResult[32], points, sqlid;
cache_get_value_name(i, "sqlid", szResult); sqlid = strval(szResult);
cache_get_value_name(i, "point", szResult); points = strval(szResult);
foreach(new x: Player)
{
if(PlayerInfo[x][pId] == sqlid)
{
format(PublicSQLString, sizeof(PublicSQLString), "%s %s (ID: %d) | Points: %d - Automatically Added\n", PublicSQLString, GetPlayerNameEx(x), x, points);
break;
}
}
}
ShowPlayerDialogEx(index, DIALOG_WATCHLIST, DIALOG_STYLE_LIST, "Current Watchlist", PublicSQLString, "Exit", "");
FetchingWatchlist = 0;
return true;
}
forward OnSetVMute(playerid, task);
public OnSetVMute(playerid, task)
{
new string[128], tmpName[MAX_PLAYER_NAME];
GetPVarString(playerid, "OnSetVMute", tmpName, sizeof(tmpName));
DeletePVar(playerid, "OnSetVMute");
if(cache_affected_rows())
{
format(string, sizeof(string), "AdmCmd: %s has offline vip %s %s.", GetPlayerNameEx(playerid), (task==1)?("muted"):("unmuted"), tmpName);
Log("logs/mute.log", string);
ABroadCast(COLOR_LIGHTRED, string, 3);
}
else
{
format(string, sizeof(string), "Could not vip %s %s..", (task==1)?("mute"):("unmute"), tmpName);
SendClientMessageEx(playerid, COLOR_YELLOW, string);
}
return 1;
}
forward CheckClientWatchlist(index);
public CheckClientWatchlist(index)
{
new rows;
cache_get_row_count(rows);
if(rows == 0) PlayerInfo[index][pWatchlist] = 0;
else PlayerInfo[index][pWatchlist] = 1;
return true;
}
forward WatchWatchlist(index);
public WatchWatchlist(index)
{
new rows, result;
cache_get_row_count(rows);
for(new i = 0; i < rows; i++)
{
new szResult[32], sqlid;
cache_get_value_name(i, "sqlid", szResult); sqlid = strval(szResult);
foreach(new x: Player)
{
if(PlayerInfo[x][pId] == sqlid && gPlayerLogged{x} == 1 && PlayerInfo[x][pJailTime] == 0 && GetPVarInt(x, "BeingSpectated") == 0)
{
SpectatePlayer(index, x);
SetPVarInt(x, "BeingSpectated", 1);
SendClientMessageEx(index, -1, "WATCHDOG: You have started watching, you may skip to another player in 3 minutes (/nextwatch).");
if(PlayerInfo[index][pWatchdog] == 2) SetPVarInt(index, "NextWatch", gettime()+120); else SetPVarInt(index, "NextWatch", gettime()+180);
SetPVarInt(index, "SpectatingWatch", x);
SetPVarInt(index, "StartedWatching", 1);
WDReportCount[index]++;
WDReportHourCount[index]++;
AddWDToken(index);
result = 1;
break;
}
}
if(result) break;
}
if(result == 0)
{
SendClientMessageEx(index, COLOR_GRAD1, "No-one is available to spectate!");
}
return true;
}
forward CheckTrunkContents(playerid);
public CheckTrunkContents(playerid)
{
new rows, TrunkWeaps[3];
cache_get_row_count(rows);
if(rows == 0) return 1;
new string[189];
cache_get_value_name_int(0, "pvWeapon0", TrunkWeaps[0]);
cache_get_value_name_int(0, "pvWeapon1", TrunkWeaps[1]);
cache_get_value_name_int(0, "pvWeapon2", TrunkWeaps[2]);
new
i = 0;
while (i < 3 && (!TrunkWeaps[i] || PlayerInfo[playerid][pGuns][GetWeaponSlot(TrunkWeaps[i])] == TrunkWeaps[i]))
{
i++;
}
if (i == 3) return SendClientMessageEx(playerid, COLOR_YELLOW, "Warning{FFFFFF}: There was nothing inside the trunk.");
else {
format(string, sizeof(string), "You found a %s.", GetWeaponNameEx(TrunkWeaps[i]));
SendClientMessageEx(playerid, COLOR_YELLOW, string);
GivePlayerValidWeapon(playerid, TrunkWeaps[i]);
mysql_format(MainPipeline, string, sizeof(string), "UPDATE `vehicles` SET `pvWeapon%d` = '0' WHERE `id` = '%d' AND `sqlID` = '%d'", i, GetPVarInt(playerid, "LockPickVehicleSQLId"), GetPVarInt(playerid, "LockPickPlayerSQLId"));
mysql_tquery(MainPipeline, string, "OnQueryFinish", "ii", SENDDATA_THREAD, playerid);
new ip[MAX_PLAYER_NAME], ownername[MAX_PLAYER_NAME], vehicleid = GetPVarInt(playerid, "LockPickVehicle");
GetPlayerIp(playerid, ip, sizeof(ip)), GetPVarString(playerid, "LockPickPlayerName", ownername, sizeof(ownername));
format(string, sizeof(string), "[LOCK PICK] %s(%d) (IP:%s) successfully cracked the trunk of a %s(VID:%d SQLId %d Weapon ID: %d) owned by %s(Offline, SQLId:%d)", GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), ip, GetVehicleName(vehicleid), vehicleid, GetPVarInt(playerid, "LockPickVehicleSQLId"), TrunkWeaps[i], ownername, GetPVarInt(playerid, "LockPickPlayerSQLId"));
Log("logs/playervehicle.log", string);
}
return 1;
}
forward OnRequestTransferFlag(playerid, flagid, to, from);
public OnRequestTransferFlag(playerid, flagid, to, from)
{
new rows, value, string[512];
new FlagText[64], FlagIssuer[MAX_PLAYER_NAME], FlagDate[24];
cache_get_row_count(rows);
if(!rows) return ShowPlayerDialogEx(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "{FF0000}Flag Error:", "Flag does not exist!", "Close", "");
cache_get_value_name_int(0, "type", value);
if(value == 2)
return ShowPlayerDialogEx(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "{FF0000}Flag Error:", "Administrative flags cannot be transferred!", "Close", "");
cache_get_value_name_int(0, "id", value);
if(value != GetPlayerSQLId(from))
return format(string, sizeof(string), "Flag is not owned by %s!", GetPlayerNameEx(from)), ShowPlayerDialogEx(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, "{FF0000}Flag Error:", string, "Close", "");
cache_get_value_name(0, "flag", FlagText);
cache_get_value_name(0, "issuer", FlagIssuer, MAX_PLAYER_NAME);
cache_get_value_name(0, "time", FlagDate);
SetPVarInt(playerid, "Flag_Transfer_ID", flagid);
SetPVarInt(playerid, "Flag_Transfer_To", to);
SetPVarInt(playerid, "Flag_Transfer_From", from);
SetPVarString(playerid, "FlagText", FlagText);
format(string, sizeof(string), "Are you sure you want to transfer:\n{FF6347}Flag ID:{BFC0C2} %d\n{FF6347}Flag:{BFC0C2} %s\n{FF6347}Issued by:{BFC0C2} %s\n{FF6347}Date Issued: {BFC0C2}%s\n{FF6347}To: {BFC0C2}%s\n{FF6347}From: {BFC0C2}%s", flagid, FlagText, FlagIssuer, FlagDate, GetPlayerNameEx(to), GetPlayerNameEx(from));
return ShowPlayerDialogEx(playerid, FLAG_TRANSFER, DIALOG_STYLE_MSGBOX, "FLAG TRANSFER", string, "Yes", "No");
}
forward GetShiftInfo(playerid, szMessage[]);
public GetShiftInfo(playerid, szMessage[])
{
new rows, fieldname[24], szResult[32], string[1288], shift[4], needs, signedup;
cache_get_row_count(rows);
if(rows)
{
format(fieldname, sizeof(fieldname), "needs_%s", GetWeekday());
cache_get_value_name(0, "shift", shift, sizeof(shift));
cache_get_value_name(0, fieldname, szResult); needs = strval(szResult);
cache_get_value_name(0, "ShiftCount", szResult); signedup = strval(szResult);
}
if(needs - signedup > 0) format(string, sizeof(string), "The current shift is %s. We have {FF0000}%d/%d {FFFFFF}Admins signed up for the shift.", shift, signedup, needs);
else format(string, sizeof(string), "The current shift is %s. We have {00FF00}%d/%d {FFFFFF}Admins signed up for the shift.", shift, signedup, needs);
if(playerid == INVALID_PLAYER_ID)
{
if(needs - signedup > 0) format(string, sizeof(string), "The current shift is %s. We have {FF0000}%d/%d {FFFFFF}Admins signed up for the shift.", shift, signedup, needs);
else format(string, sizeof(string), "The current shift is %s. We have {00FF00}%d/%d {FFFFFF}Admins signed up for the shift.", shift, signedup, needs);
foreach(new i: Player)
{
if(PlayerInfo[i][pAdmin] >= 2) SendClientMessageEx(i, COLOR_WHITE, string);
}
}
else if(playerid != INVALID_PLAYER_ID)
{
if(needs - signedup > 0) format(string, sizeof(string), "The current shift is %s. We have {FF0000}%d/%d {FFFFFF}Admins signed up for the shift.", shift, signedup, needs);
else format(string, sizeof(string), "The current shift is %s. We have {00FF00}%d/%d {FFFFFF}Admins signed up for the shift.", shift, signedup, needs);
SendClientMessageEx(playerid, COLOR_WHITE, szMessage);
SendClientMessageEx(playerid, COLOR_WHITE, string);
}
return 1;
}
// g_mysql_LoadFIFInfo(playerid)
// Description: Load the player's Fall Into Fun Info
stock g_mysql_LoadFIFInfo(playerid)
{
new szQuery[128];
mysql_format(MainPipeline, szQuery, sizeof(szQuery), "SELECT * FROM `fallintofun` WHERE `player` = %d", PlayerInfo[playerid][pId]);
mysql_tquery(MainPipeline, szQuery, "OnQueryFinish", "iii", LOADFIF_THREAD, playerid, g_arrQueryHandle{playerid});
return 1;
}
stock g_mysql_SaveFIF(playerid)
{
if(IsPlayerConnected(playerid))
{
new szQuery[128];
mysql_format(MainPipeline, szQuery, sizeof(szQuery), "UPDATE `fallintofun` SET `FIFHours` = %d, `FIFChances` = %d WHERE `player` = %d", FIFInfo[playerid][FIFHours], FIFInfo[playerid][FIFChances], PlayerInfo[playerid][pId]);
mysql_tquery(MainPipeline, szQuery, "OnSaveFIF", "i", playerid);
}
}
forward OnSaveFIF(playerid);
public OnSaveFIF(playerid) {
printf("Saved %s's FIF stats", GetPlayerNameEx(playerid));
return 1;
}
g_mysql_SaveGroupToy(playerid) {
mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "UPDATE `accounts` SET\
`GroupToy0` = '%f', `GroupToy1` = '%f', `GroupToy2` = '%f', `GroupToy3` = '%f', `GroupToy4` = '%f', `GroupToy5` = '%f', `GroupToy6` = '%f', \
`GroupToy7` = '%f', `GroupToy8` = '%f' WHERE `id` = '%d'", PlayerInfo[playerid][pGroupToy][0], PlayerInfo[playerid][pGroupToy][1],
PlayerInfo[playerid][pGroupToy][2], PlayerInfo[playerid][pGroupToy][3], PlayerInfo[playerid][pGroupToy][4],
PlayerInfo[playerid][pGroupToy][5], PlayerInfo[playerid][pGroupToy][6], PlayerInfo[playerid][pGroupToy][7],
PlayerInfo[playerid][pGroupToy][8], GetPlayerSQLId(playerid));
mysql_tquery(MainPipeline, szMiscArray, "OnQueryFinish", "i", SENDDATA_THREAD);
}