/* Project Reality: Reloaded Script * Script Founded by Alexander: Friday 10th of May, 15:53. * Contributors: Sloth, Sparkie, Dakyskye. * FACTIONS MAX RANK = JOIN RANK; */ #include #include #include #include #include #include #include #include #include #include #include #include #include #define AC_USE_CONFIG_FILES false #include //#include #define Server:%0(%1) forward %0(%1); public %0(%1) #undef MAX_PLAYERS #define MAX_PLAYERS (256) #if !defined IsValidVehicle native IsValidVehicle(vehicleid); #endif #if !defined gpci native gpci(playerid, serial[], len); #endif #pragma compress 0 #pragma dynamic 500000 static bool:DoubleEXP = false; new dealershipCategories_Models[] = { 511, 487, 509, 480, 422, 567, 500, 420, 445, 451, 479, 454, 483 }; new call_count = 0, warrant_count = 0; new dealershipCategories_Names[][] = { "airplanes", "helicopters", "bikes", "convertibles", "industrial", "low riders", "off road", "public service", "saloons", "sports vehicles", "station wagons", "boats", "unique" }; new dealershipCategories_MinPrices[6+6+3] = { 4000000, 1000000, 700, 65000, 25000, 60000, 110000, 45000, 35000, 150000, 80000, 20000, 35000 }; new PlayerText:MDC_UI[MAX_PLAYERS][70]; new PlayerText:SetUp[MAX_PLAYERS][16]; new PlayerText:MDC_Layout[MAX_PLAYERS][19]; new dealershipVehiclesNames[][] = { // airplanes "beagle", "dodo", // helicopters "leviathan", "maverick", "news chopper", // bikes "faggio", "freeway", "sanchez", "quad", "BMX", "bicycle", "fcr-900", "wayfarer", // convertibles "comet", "feltzer", "windsor", // industrial "linerunner", "trashmaster", "pony", "mule", "bobcat", "rumpo", "packer", "flatbed", "yankee", "RC Van", "Walton", "Burrito", "Boxville", "Benson", "Tanker", "Roadtrain", "Sadler", "Yosemite", "DFT-30", "Newsvan", "Picador", // low riders "Voodoo", "Stallion", "Remington", "Slamvan", "Blade", "Tahoma", "Savanna", "Broadway", "Tornado", // off road "Landstalker", "Rancher", "Mesa", "Huntley", // public service "Taxi", "Bus", "Coach", "Cabbie", // saloons "Bravura", "Sentinel", "Manana", "Esperanto", "Washington", "Premier", "Previon", "Admiral", "Glendale", "Oceanic", "Hermes", "Virgo", "Greenwood", "Elegant", "Nebula", "Majestic", "Buccaneer", "Fortune", "Cadrona", "Willard", "Vincent", "Clover", "Intruder", "Primo", "Tampa", "Sunrise", "Merit", "Sultan", "Elegy", "Stafford", "Emperor", // sports "Buffalo", "Cheetah", "Banshee", "Sabre", "ZR-350", "Blista Compact", "Bullet", "Uranus", "Jester", "Flash", "Euros", "Club", "Alpha", "Phoenix", //station wagons "Perennial", "Moonbeam", "Solair", "Regina", "Stratum", //boats "Squalo", "Reefer", "Tropic", "Coastguard", "Dingy", "Marquis", //unique "Stretch", "Icecream Truck", "Camper", "Journey", "Tow Truck", "Hustler", "Hotdog" }; new dealershipVehicles[][] = { // airplanes { 0, 511, 5000000 }, { 0, 593, 4000000 }, // helicopters { 1, 417, 1000000 }, { 1, 487, 3500000 }, { 1, 488, 1000000 }, // bikes { 2, 462, 10000 }, { 2, 463, 50000 }, { 2, 468, 40000 }, { 2, 471, 100000 }, { 2, 481, 700 }, { 2, 509, 1000 }, { 2, 521, 200000 }, { 2, 586, 50000 }, // convertibles { 3, 480, 625000 }, { 3, 533, 65000 }, { 3, 555, 450000 }, // industrial { 4, 403, 750000 }, { 4, 408, 150000 }, { 4, 413, 110000 }, { 4, 414, 175000 }, { 4, 422, 60000 }, { 4, 440, 100000 }, { 4, 443, 400000 }, { 4, 455, 500000 }, { 4, 456, 250000 }, { 4, 459, 60000 }, { 4, 478, 40000 }, { 4, 482, 120000 }, { 4, 498, 110000 }, { 4, 499, 160000 }, { 4, 514, 800000 }, { 4, 515, 900000 }, { 4, 543, 25000 }, { 4, 554, 110000 }, { 4, 578, 500000 }, { 4, 582, 80000 }, { 4, 600, 38000 }, // low riders { 5, 412, 65000 }, { 5, 439, 80000 }, { 5, 534, 75000 }, { 5, 535, 110000 }, { 5, 536, 65000 }, { 5, 566, 65000 }, { 5, 567, 85000 }, { 5, 575, 80000 }, { 5, 576, 60000 }, // off road { 6, 400, 180000 }, { 6, 489, 110000 }, { 6, 500, 140000 }, { 6, 579, 300000 }, // public service { 7, 420, 45000 }, { 7, 431, 70000 }, { 7, 437, 75000 }, { 7, 438, 50000 }, // saloons { 8, 401, 40000 }, { 8, 405, 135000 }, { 8, 410, 35000 }, { 8, 419, 50000 }, { 8, 421, 100000 }, { 8, 426, 135000 }, { 8, 436, 40000 }, { 8, 445, 45000 }, { 8, 466, 50000 }, { 8, 467, 35000 }, { 8, 474, 60000 }, { 8, 491, 40000 }, { 8, 492, 30000 }, { 8, 507, 150000 }, { 8, 516, 40000 }, { 8, 517, 65000 }, { 8, 518, 45000 }, { 8, 526, 55000 }, { 8, 527, 45000 }, { 8, 529, 45000 }, { 8, 540, 50000 }, { 8, 542, 60000 }, { 8, 546, 45000 }, { 8, 547, 40000 }, { 8, 549, 40000 }, { 8, 550, 55000 }, { 8, 551, 150000 }, { 8, 560, 750000 }, { 8, 562, 150000 }, { 8, 580, 200000 }, { 8, 585, 60000 }, // sport vehicles { 9, 402, 400000 }, { 9, 415, 850000 }, { 9, 429, 850000 }, { 9, 475, 150000 }, { 9, 477, 700000 }, { 9, 496, 150000 }, { 9, 541, 1200000 }, { 9, 558, 330000 }, { 9, 559, 200000 }, { 9, 565, 200000 }, { 9, 587, 250000 }, { 9, 589, 150000 }, { 9, 602, 350000 }, { 9, 603, 650000 }, // station wagons { 10, 404, 80000 }, { 10, 418, 80000 }, { 10, 458, 90000 }, { 10, 479, 85000 }, { 10, 561, 110000 }, // boats { 11, 446, 1000000 }, { 11, 453, 180000 }, { 11, 454, 300000 }, { 11, 472, 150000 }, { 11, 473, 20000 }, { 11, 484, 350000 }, // unique { 12, 409, 280000 }, { 12, 423, 80000 }, { 12, 483, 85000 }, { 12, 508, 180000 }, { 12, 525, 35000 }, { 12, 545, 85000 }, { 12, 588, 80000 } }; new PlayerText:ds_PlayerTextDrawVehicles[MAX_PLAYERS+1][6] = { PlayerText:-1, ... }; new PlayerText:ds_PlayerTextDrawVehiclesNames[MAX_PLAYERS+1][6] = { PlayerText:-1, ... }; new PlayerText:ds_PlayerTextDrawVehiclesPrices[MAX_PLAYERS+1][6] = { PlayerText:-1, ... }; new PlayerText:ds_PlayerTextDrawArrows[MAX_PLAYERS+1][2] = { PlayerText:-1, ... }; new PlayerText:ds_PlayerTextDrawCategory[MAX_PLAYERS+1] = { PlayerText:-1, ... }; new ds_PlayerMenuModels[MAX_PLAYERS+1][64]; new ds_PlayerMenuNames[MAX_PLAYERS+1][64][32]; new ds_PlayerMenuAmount[MAX_PLAYERS+1]; new ds_PlayerMenuCallback[MAX_PLAYERS+1][31]; new ds_PlayerMenuPrices[MAX_PLAYERS][64]; new ds_PlayerMenuPage[MAX_PLAYERS+1]; new ds_PlayerMenuCategory[MAX_PLAYERS+1]; new ds_PlayerMenuCategoryName[MAX_PLAYERS+1][32]; //Database establisher: new MySQL:m_Handle; #define MAIN_SERVER #if defined MAIN_SERVER #define SQL_HOSTNAME "localhost" #define SQL_USERNAME "airxdaffy" #define SQL_DATABASE "zairxdaffy0" #define SQL_PASSWORD "301135" #else #define SQL_HOSTNAME "localhost" #define SQL_USERNAME "airxdaffy" #define SQL_DATABASE "zairxdaffy0" #define SQL_PASSWORD "301135" #endif //Database establisher end of. main () { } /* x - major y - minor z - patch */ #define REVISION "SA92 1.0" //Keys: #define PRESSED(%0) \ (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0))) #define RELEASED(%0) \ (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0))) #define HOLDING(%0) \ ((newkeys & (%0)) == (%0)) //Max defines: #define MAX_ZONE_NAME (28) #define MAX_FACTIONS (30) #define MAX_FACTION_RANKS (21) #define MAX_PROPERTY (2000) #define MAX_BUSINESS (300) #define MAX_PAYNSPRAY (9) #define MAX_OWNED_CARS (10) #define MAX_TOLLS (9) #define MAX_DAMAGES (200) #define MAX_DROP_ITEMS (200) #define MAX_FACTION_CARS (1000) #define MAX_FURNITURE (2000) #define MAX_SERVER_OBJECTS (200) #define MAX_HOUSE_FURNITURE (200) #define MAX_RENTALS (500) #define MAX_DOORS (200) #define MAX_PLAYER_NOTES (6) #define MAX_APBS (20) #define MAX_REPORTS (100) #define MAX_PLAYER_CONTACTS (15) #define MAX_PROPERTY_GARAGES (1500) #define MAX_XMR_CATEGORIES (40) #define MAX_XMR_SUBCATEGORY (400) #define MAX_GRANT_BUILD (8) #define MAX_SHOWING_FURNITURE (50) #define MAX_ADMIN_NOTES (6) #define MAX_CLOTHING_ITEMS (6) #define MAX_WEAPON_PACKAGES (21) #define MAX_CLOTHING_SHOW (25) #define MAX_COMMAND_LOG (21) #define MAX_CHAT_LOG (21) #define MAX_BOOMBOXS (30) #define MAX_GRAFFITI_SPOTS (80) #define MAX_POSSIBLE_WEAPONS (4) #define MAX_WEAPON_CRATES (7) //Colors: #define COLOR_WHITE (0xFFFFFFFF) #define COLOR_ADM (0xFF6347FF) #define COLOR_GREY (0xAFAFAFFF) #define COLOR_DARKGREEN (0x33AA33FF) #define COLOR_YELLOW (0xFFFF00FF) #define COLOR_EMOTE (0xC2A2DAFF) #define COLOR_PMREC (0xFFDC18FF) #define COLOR_PMSEN (0xEEE854FF) #define COLOR_ORANGE (0xFF9900AA) #define COLOR_ADMIN (0x587B95FF) #define COLOR_FADE1 (0xE6E6E6E6) #define COLOR_FADE2 (0xC8C8C8C8) #define COLOR_FADE3 (0xAAAAAAAA) #define COLOR_FADE4 (0x8C8C8C8C) #define COLOR_FADE5 (0x6E6E6E6E) #define COLOR_SAMP (0xADC3E7FF) #define COLOR_RED (0xF81414FF) #define COLOR_RADIO (0xFFEC8BFF) #define COLOR_RADIOEX (0xB5AF8FFF) #define COLOR_GRAD1 (0xCCE6E6FF) #define COLOR_GRAD2 (0xE2FFFFFF) #define COLOR_BLUE (0x33CCFFFF) #define COLOR_HELPER (0xA52A2AFF) #define COLOR_COP (0x8D8DFFFF) #define COLOR_PINK (0xFF00FFFF) #define COLOR_DEPT (0xF07A7AFF) #define COLOR_TEXTDRAW (0xAC7A32FF) #define COLOR_EMT (0xFF8282FF) #define COLOR_STATS (0x85A82BFF) #define COLOR_ACTION (0xF8E687FF) #define COLOR_CYAN (0x33CCFFFF) #define COLOR_NINER (0x00FFFFFF) #define COLOR_GOLD (0xFFD700FF) #define COLOR_REPORT (0xFFFF91FF) #define COLOR_SAN (0x99D9CBFF) //Body parts: #define BODY_PART_CHEST (3) #define BODY_PART_GROIN (4) #define BODY_PART_LEFT_ARM (5) #define BODY_PART_RIGHT_ARM (6) #define BODY_PART_LEFT_LEG (7) #define BODY_PART_RIGHT_LEG (8) #define BODY_PART_HEAD (9) //Business types: #define BIZ_PAWNSHOP (1) #define BIZ_RESTAURANT (2) #define BIZ_AMMUNATION (3) #define BIZ_CLUB (4) #define BIZ_STORE (5) #define BIZ_GENERAL (6) #define BIZ_BANK (7) #define BIZ_STANDALONE (8) #define BIZ_DMV (9) #define BIZ_CLOTHING (10) #define BIZ_BLACKMARKET (11) //Object bones: #define OBJECT_BONE_SPINE (1) #define OBJECT_BONE_HEAD (2) #define OBJECT_BONE_LUPPER_A (3) #define OBJECT_BONE_RUPPER_A (4) #define OBJECT_BONE_LHAND (5) #define OBJECT_BONE_RHAND (6) #define OBJECT_BONE_LTHIGH (7) #define OBJECT_BONE_RTHIGH (8) #define OBJECT_BONE_LFOOT (9) #define OBJECT_BONE_RFOOT (10) //Tolls: #define TOLL_LSLV (1) #define TOLL_FLINT (2) #define TOLL_RODEO (3) //Player states: #define STATE_ALIVE (1) #define STATE_WOUNDED (2) #define STATE_DEAD (3) //Jobs: #define MECHANIC_JOB (1) #define FISHERMAN_JOB (2) #define TAXI_JOB (3) #define TRUCKER_JOB (4) //Drug types: #define DRUG_TYPE_MARIJUANA (0) #define DRUG_TYPE_CRACK (1) #define DRUG_TYPE_COCAINE (2) #define DRUG_TYPE_ECSTASY (3) #define DRUG_TYPE_LSD (4) #define DRUG_TYPE_METH (5) #define DRUG_TYPE_PCP (6) #define DRUG_TYPE_HEROIN (7) #define DRUG_TYPE_ASPIRIN (8) #define DRUG_TYPE_HALOP (9) #define DRUG_TYPE_MORPHINE (10) #define DRUG_TYPE_XANAX (11) #define DRUG_TYPE_MDMA (12) #define DRUG_TYPE_PHENETOLE (13) #define DRUG_TYPE_STEROIDS (14) //Property types: #define PROPERTY_COMPLEX (1) #define PROPERTY_APARTMENT (2) #define PROPERTY_HOUSE (3) // #define DEFAULT_SKIN (264) #define MDC_ERROR (21001) #define MDC_SELECT (21000) #define MDC_OPEN (45400) #define WEAPON_SERVER_GIVEN (7777) #define WEAPON_AMMUNATION_GIVEN (8888) #define WEAPON_UNKNOWN_GIVEN (9999) #define GUN_SHOP_NUMBER (000011) #define WEAPON_ORDER_NUMBER (434112) #define MECHANIC_NUMBER (611) #define TAXI_NUMBER (411) //Warehouse Order Sys: #define BLACK_MARKET_SELECTED (1) #define WAREHOUSE_SELECTED (2) // #define WEAPON_ORDER_DEAGLE (600) #define WEAPON_ORDER_SHOTGUN (800) #define WEAPON_ORDER_TEC9 (900) //Mapping Types #define DEFAULT_MAP_TYPE (0) #define GATE_MAP_TYPE (1) //Fuel #define FUEL_TYPE_PETROL (1) #define FUEL_TYPE_DIESEL (2) #define FUEL_TYPE_ELECTRIC (3) // #define MAX_VLOG_PER_PAGE (20) #define MAX_PLOG_PER_PAGE (21) #define MAX_PLAYER_PER_PAGE (10) //Dynamic areas: new ImpoundLotArea; new JailCenterArea; new HospitalArea; // #define BLACK_MARKET_X (2766.6838) #define BLACK_MARKET_Y (-1610.9614) #define BLACK_MARKET_Z (10.9219) #define AD_CENTER_X (1129.3635) #define AD_CENTER_Y (-1488.6417) #define AD_CENTER_Z (22.7690) //1129.3635,-1488.6417,22.7690, //Dialogs: enum { DIALOG_DEFAULT, DIALOG_CONFIRM_SYS, DIALOG_USE, DIALOG_REGISTER, DIALOG_LOGIN, DIALOG_ADMINPM, DIALOG_INTERIORS, DIALOG_PDSKINS, DIALOG_SDSKINS, DIALOG_FDSKINS, DIALOG_TOLLS, DIALOG_TOLLM, DIALOG_FURNITURE, DIALOG_BUYFURNITURE, DIALOG_BUYFURNITURE_SUB, DIALOG_CURFURNITURE, DIALOG_FURNITUREINFO, DIALOG_EDIT_FURNITURE, DIALOG_FURNITURE_EDIT_MENU, DIALOG_DEALERSHIP, DIALOG_DEALERSHIP_SUB, DIALOG_DEALERSHIP_APPEND, DIALOG_APPEND_ALARM, DIALOG_APPEND_LOCK, DIALOG_APPEND_IMMOB, DIALOG_APPEND_COLOR, DIALOG_APPEND_COLOR2, DIALOG_XMR, DIALOG_XMR_SELECT, DIALOG_BUY_CLOTHING, DIALOG_CLOTHING_MENU, DIALOG_CLOTHING_EDIT, DIALOG_CLOTHES_BONE, DIALOG_FACTION_CLOTHING, DIALOG_ADMIN_MSG, DIALOG_SECRET_WORD_CREATE, DIALOG_SECRET_WORD_ENTER, DIALOG_GRAFFITI_MENU, DIALOG_GRAFFITI_TEXT, DIALOG_GRAFFITI_FONT, DIALOG_MDC, DIALOG_MDC_FINISH_QUEUE, DIALOG_MDC_NAME, DIALOG_MDC_PLATE_FULL, DIALOG_MDC_PLATE_PARTIAL, DIALOG_MDC_PLATE_LIST, DIALOG_MDC_PLATE, DIALOG_MDC_NAME_QUEUE, DIALOG_MDC_PLATE_QUEUE, DIALOG_MDC_NUMBER_SEARCH, /* DIALOG_MDC, DIALOG_MDC_NAME, DIALOG_MDC_NAME_QUEUE, DIALOG_MDC_PLATE, DIALOG_MDC_PLATE_QUEUE, DIALOG_MDC_PLATE_LIST, DIALOG_MDC_FINISH_QUEUE , */ DIALOG_FINES, DIALOG_FINES_DELETE, DIALOG_VEHICLE_FINES, DIALOG_ROADBLOCKS, DIALOG_ROADBLOCK_LIST, DIALOG_ACTIVE_ROADBLOCKS, DIALOG_FORUM_NAME, DIALOG_VLOG_LIST, DIALOG_PLOG_LIST, DIALOG_REPORTS, DIALOG_ADMINSYS, DIALOG_ASYS_OFFLINEBAN, DIALOG_ASYS_BANREASON, DIALOG_ASYS_OFFLINEAJAIL, DIALOG_ASYS_OJAILTIME, DIALOG_ASYS_OJAILREASON, DIALOG_APANEL, DIALOG_ASYS_UNBAN, DIALOG_LOOKUP_JAILS, DIALOG_LOOKUP_KICKS, DIALOG_LOOKUP_BANS, DIALOG_DECRYPTMASK, DIALOG_FINDMASK, DIALOG_SKINSEARCH, DIALOG_ANOTE_LOOKUP, DIALOG_ANOTE_SELECT, DIALOG_ANOTE_EDIT, DIALOG_ANOTE_EDIT_YES, DIALOG_ANOTE_EDIT_YES2, DIALOG_ANOTE_EDIT_YES3, DIALOG_ANOTE_ADD, DIALOG_ANOTE_ADD_REASON, DIALOG_ANOTE_DELETE, DIALOG_ANOTE_DELETE_SELECT, DIALOG_ANOTE_DELETE_CONFIRM, DIALOG_PASSWORD_CHANGE, DIALOG_PASSWORD_SECURITY_WORD, DIALOG_FACTIONMENU, DIALOG_FACTIONMENU_NAME, DIALOG_FACTIONMENU_ABBREV, DIALOG_FACTIONMENU_ALTER, DIALOG_FACTIONMENU_TOW, DIALOG_FACTIONMENU_CHAT, DIALOG_FACTIONMENU_JOIN, DIALOG_FACTIONMENU_EDIT, DIALOG_FACTIONMENU_EDITALT, DIALOG_FACTIONMEMBERS, //REGISTER_SKIN, REGISTER_GENDER, DIALOG_TRANSFER_DRUG, DIALOG_NEW_PACKAGE, DIALOG_NEW_PACKAGE_TYPE, DIALOG_EXISTING_PACKAGE, DIALOG_EXISTING_CHOOSE /*DIALOG_REG1, DIALOG_REG2, DIALOG_REG3, DIALOG_REG4, DIALOG_REG5*/ } new PlayerMDCTimer[MAX_PLAYERS], PlayerMDCCount[MAX_PLAYERS]; new PlayerMDCName[MAX_PLAYERS][32], PlayerPlateSaver[MAX_PLAYERS][5][20]; //Enumerators: enum E_PLAYER_DATA { pSQLID, pAdmin, bool:pAdminDuty, pMoney, pBank, pSavings, pLevel, pExp, Float:pPos[5], pInterior, pWorld, pSkin, pIP[20], pMask, pMasked, pMaskID, pMaskIDEx, pAjailed, pAjailTime, pSpectator, pSpecVehicle, pMaxHealth, Float:pLastHealth, Float:pLastArmor, pMuted, pLogintime, pRegtime, pPassAttempts, pBrutallyWounded, pPMText[128], pPMing, pOwnedCar[10], pJetpack, pCheckpoint, pInsideBusiness, pInsideHouse, pInsideApartment, pInsideComplex, pInsidePNS, pInsideGarage, pInsideDoor, pRenting, pFaction, pFactionRank, pFactionChat, pLAWduty, pMEDduty, pHasRadio, pRadio[6], pRadioSlot[6], pMainSlot, pLegShot, pExecuteTime, pFactionOffer, Float:pMark[3], pPhone, pDonator, pHelper, pHelperDuty, pOffAjail, pOffAjailReason, pSetTime, pSetReason[128], pCallsign[60], pHandcuff, pTaser, pRubberbullet, bool:pTackle, pFriskRequest, pFrisking, pAllowedFrisk, pWeaponsGiven, pPlayTime, pHoursPlayed, pPaycheck, pChatstyle, pWalkstyle, pCalling, pPhoneline, pPhoneOff, pLoudspeaker, pWorkOn, pBlindfolded, plastCommand[128], pDriversLicense, pWeaponsLicense, pGender, pAutoLow, pSpawnSelect, pSpawnHouse, pCrashed, pFurnitureObject, pFurnitureName[32], pFurnitureModel, pSWATduty, pEnterVehicle, pTraceNum, pIsTracing, pAtDealership, p911CallTimer[2], p911Steps, p911Text[128], p911Location[128], pTogDeath, pTogColor, pEditingFurniture, pFurnitureDuplicate, pEditingDuplicate, pAddingXMR, pXMRObject, pAddingFurniture, pBuyingClothing, pEditingClothing, pClothingName[90], pEditingXMR, pPlayingAnimation, pAdminMsg[128], pAdminMsgBy[60], pAdmMsgConfirm, pUpgradePoints, pSecretWord[128], pJob, pSidejob, pJobLevel, pSidejobLevel, pLastConnect[60], pLastConnectTime, pHWID[60], pHasBoombox, bool:pCarryingMeal, bool:pPlacingMeal, pSkinMenu, bool:pSkinMenuOn, pActiveListing, pJailTimes, pPrisonTimes, bool:pUnscrambling, pUnscramblerTime, pUnscrambleTimer, pUnscrambleID, pScrambleSuccess, pScrambleFailed, pPauseWepAC, pPauseCheck, pPauseTime, pHasBurnerPhone, pBurnerPhoneNumber, bool:pUsingBurner, bool:pBurnerPhoneOff, pWepOrderRestricted, pICJailed, pICJailTime, pICJailNotify, Text3D:pICJail3D, pAddingRoadblock, pRoadblockObject, pRoadblockModel, pInsideAmbulance, pCigarettes, pDrinks, pForumName[60], pSpawnPrecinct, pToggleConnects, pLastChat, pLastCMDTime, pLastEmoteTime, pNicksToggled, pDCToggled, pHUD, pHUDToggled, pFightstyle, pTransferDrug, Float:pTransferQuantity, pTransferList[10], pDrugEffect, pDrugTime, pDrugStrength, pAdjustPackage } enum E_DRUG_DATA { drugPackage, drugType, Float:drugQuantity, drugStrength, } enum E_PROPERTY_DATA { propertyid, propertyOwnerSQL, propertyType, // 1- Complex, 2- Apartment, 3- House propertyComplexLink, propertyFaction, Float:propertyExterior[3], Float:propertyInterior[4], Float:propertyCheckPos[3], propertyExteriorID, propertyExteriorWorld, propertyInteriorID, propertyInteriorWorld, propertyMarketPrice, propertyRentable, propertyRentPrice, propertyAmmo[21], propertyWeapons[21], propertyLocked, propertyMoney, propertyLevel, Text3D:ForSaleSign, Text3D:OwnedSign, propertyPickup, propertyHasXMR, propertyXMRObject, Float:propertyXMRPos[3], Float:propertyXMRRot[3], propertyXMROn, propertyXMRUrl[128], } enum E_PLAYER_VEHICLES { carID, carIGid, carExists, carOwnerID, carModel, Float:carPos[4], carInterior, carWorld, Float:carFuel, carWindows[4], carLocked, carColor1, carColor2, carPaintjob, carMods[14], carXMR, carImpounded, carPlates[32], Float:carImpoundPos[4], Float:carEngine, Float:carBattery, carLock, carAlarm, carImmob, carInsurance, carTimeDestroyed, carWeapons[5], carWeaponsAmmo[5], carPackages[21], carPackagesAmmo[21], carPlaceObject[5], carlastDriver, carlastPassenger, carXMROn, carXMRUrl[128], carWeaponObject[5], Float:carWeapon1Pos[3], Float:carWeapon1Rot[3], Float:carWeapon2Pos[3], Float:carWeapon2Rot[3], Float:carWeapon3Pos[3], Float:carWeapon3Rot[3], Float:carWeapon4Pos[3], Float:carWeapon4Rot[3], Float:carLastHealth, carPanelStatus, carDoorsStatus, carLightsStatus, carTiresStatus } enum E_VEHICLE_DRUGS { drugPackage, drugType, Float:drugQuantity, drugStrength } enum E_HOUSE_PACKAGES { packageType, packageObject, Float:packagePos[6] } enum E_HOUSE_PACKAGES_DRUGS { drugPackage, drugType, Float:drugQuantity, drugStrength } enum E_FACTION_VEHICLES { carID, carFaction, carModel, Float:carPos[4], carInterior, carWorld, carColor1, carColor2, carSirens, carSirenObject, carSirenOn, carGunRack, carlastDriver, carlastPassenger, carsXMROn, carsXMRURL[128], Text3D:carsCallsign, carHasCallsign, carsCallsignText[90], carLicensePlate[32] } enum E_FACTION_DATA { factionID, factionExists, factionName[128], factionAbbrev[128], factionMaxRanks, factionEditrank, factionChatrank, factionTowrank, factionChatColor, factionChatStatus, factionCopPerms, factionMedPerms, factionWarehousePerms, factionNewsPerms, factionBank, factionProducts, Float:factionSpawn[4], Float:factionSpawnEx1[3], Float:factionSpawnEx2[3], Float:factionSpawnEx3[3], bool:factionHasWeaponOrder, factionOrderBy, factionOrderTime, factionOrderItems[MAX_WEAPON_PACKAGES], factionOrder_Timer, factionOrder_Delivery } enum E_BUSINESS_DATA { businessID, businessOwnerSQL, Float:businessInt[4], businessWorld, businessIntID, Float:businessExt[3], businessName[128], businessType, businessPickup, Float:businessBankPickupLoc[3], businessBankPickupWorld, businessBankPickupIntID, businessBankPickup, businessMarketPrice, businessLocked, businessFee, businessCashbox, businessLevel, businessProduct, businessWeapons[21], businessWeaponsAmmo[21], businessPackages[21], businessPackagesAmmo[21] } enum E_PAYNSPRAY_DATA { pnsID, pnsPickup, pnsName[128], Float:pnsEntrance[3], Float:pnsRepairSpot[3], pnsOwnerSQL, pnsPrice, pnsOccupied, pnsEarnings } enum E_TOLLS_DATA { tollID, tollLocked, tollPrice, tollStatus, Float:tollPointA[3], Float:tollPointB[3], tollTimer, tollVehicle } enum E_DAMAGE_DATA { damageTaken, damageWeapon, damageBodypart, damageArmor, damageTime, damageBy[90] } enum E_DROP_DATA { bool:eWeaponDropped, eDropWeaponID, eDropWeaponAmmo, Float:eWeaponPos[3], eWeaponInterior, eWeaponWorld, eWeaponDroppedBy, eWeaponObject, eWeaponTimer } enum E_RESOURCES_USE { Float:Exterior[4], Float:Interior[4], extInteriorID, extWorld, intInteriorID, intWorld, Type, Cost, Level, ComplexLink, Float:CmdSpot[3], v_Model, v_Faction, v_Color1, v_Color2, Float:v_Pos[4], InteriorID, InteriorWorld, PropertyLink } enum { FURNITURE_CATEGORY_FRAMES, FURNITURE_CATEGORY_BEDS, FURNITURE_CATEGORY_WALLS, FURNITURE_CATEGORY_FLOORS, FURNITURE_CATEGORY_DOORS, FURNITURE_CATEGORY_MISC, FURNITURE_CATEGORY_GRAF, FURNITURE_CATEGORY_STAIRS, FURNITURE_CATEGORY_ELEC, FURNITURE_CATEGORY_SEATS, FURNITURE_CATEGORY_TABLES } enum { DEALERSHIP_CATEGORY_AIRCRAFTS, DEALERSHIP_CATEGORY_BOATS, DEALERSHIP_CATEGORY_BIKES, DEALERSHIP_CATEGORY_TWODOOR, DEALERSHIP_CATEGORY_FOURDOOR, DEALERSHIP_CATEGORY_CIVIL, DEALERSHIP_CATEGORY_HEAVY, DEALERSHIP_CATEGORY_VANS, DEALERSHIP_CATEGORY_SUV, DEALERSHIP_CATEGORY_MUSCLE, DEALERSHIP_CATEGORY_RACERS } enum E_CLOTHING_INFO { clothingModel, clothingName[32], clothingPrice } enum E_FURNITURE_INFO { furnitureType, furnitureName[32], furnitureModel, furnitureCategory } enum E_FURNITURE_DATA { furnitureSQLID, furniturePropertyID, furnitureExists, furnituresModel, furnituresName[32], Float: furniturePos[3], Float: furnitureRot[3], furnitureObject, furnitureDoorLock, furnitureDoorOpen } enum E_OBJECT_DATA { ObjectDBID, Object_Model, Object, Float:Object_PosX, Float:Object_PosY, Float:Object_PosZ, Float:Object_RotX, Float:Object_RotY, Float:Object_RotZ, Float:Object_OpenX, Float:Object_OpenY, Float:Object_OpenZ, Float:Object_OpenRotX, Float:Object_OpenRotY, Float:Object_OpenRotZ, bool:Object_GateOpen, Object_Interior, Object_World, Object_Type, Object_Faction } enum E_RENTAL_DATA { rentalcarSQLID, rentalcarModel, rentalcarColor1, rentalcarColor2, Float: rentalcarPos[4], rentalcarRented, rentalcarRentedBy, rentalcarLocked } enum E_DOOR_DATA { doorID, Float: doorPos[3], Float: doorInt[4], doorPosIntID, doorPosWorld, doorIntID, doorIntWorld, doorFaction, doorName[128], doorLocked } enum E_PLAYER_NOTE_DATA { NoteSQLID, NotePlayerSQLID, NoteID, NoteDetail[128] } enum SAZONE_MAIN { SAZONE_NAME[28], Float:SAZONE_AREA[6] } enum E_APB_DATA { bulletinID, bulletinExists, bulletinDetails[128], bulletinBy[128] } enum E_DEALERSHIP_INFO { dealershipType, dealershipCategory, dealershipModelName[128], dealershipModelID, dealershipPrice } enum E_REPORT_DATA { bool:reportExists, reportBy, reportReason[128], reportTime } enum E_SUPPORT_DATA { bool:SupportExists, SupportRequester, SupportReason[128], SupportTime } enum E_CONTACTS_DATA { contactSQLID, contactPlayerSQLID, contactID, contactName[128], contactNumber } enum E_PROPERTY_GARAGE_DATA { garageSQLID, Float: garagePos[4], Float: garageInt[4], garageInteriorID, garageWorld, garageType, garagePropertyID, garageLocked, garageFaction } enum E_XMR_CATEGORY_DATA { XMRID, XMRCategoryName[90], XMRCategory } enum E_XMR_SUB_CATEGORY_DATA { xmrID, xmrCategory, xmrName[90], xmrStationURL[128], } enum E_GRANT_BUILD_DATA { GrantedSQLID } enum E_ADMIN_NOTES_DATA { anote_SQLID, anote_playerDBID, anote_reason[128], anote_issuer[60], anote_date[90], anote_active } enum E_CLOTHING_DATA { attachment_SQLID, attachment_playerDBID, attachment_modelid, attachment_bone, Float:attachment_Pos[3], Float:attachment_Rot[3], Float:attachment_Scale[3], attachment_name[90] } enum E_PACKAGES_DATA { packageWeapon[MAX_WEAPON_PACKAGES], packageAmmo[MAX_WEAPON_PACKAGES] } enum E_WEAPON_ATTACHMENTS { Float: weaponPos[3], Float: weaponRot[3], weaponBone, weaponHidden } enum E_BOOMBOX_DATA { boomboxExists, boomboxObject, boomboxArea, boomboxPlayerID, Float:boomboxPos[3], Float:boomboxRot[3], boomboxOn, boomboxURL[256], boomboxInBusiness } enum E_GRAFFITI_INFO { Float:graffitiPosX, Float:graffitiPosY, Float:graffitiPosZ, Float:graffitiRotX, Float:graffitiRotY, Float:graffitiRotZ, } enum E_GRAFFITI_DATA { graffitiObject, graffitiEdited, graffitiBy } enum E_MEAL_DATA { bool:mealExists, bool:mealPlaced, mealModel, mealObject, Float:mealPos[3], Float:mealRot[3] } enum E_UNSCRAMBLER_DATA { scrambledWord[60], unscrambledWord[60] } enum E_WEAPONS_DATA { eWeaponID, eWeaponAmmo, bool:eWeaponSaveable, eWeaponGivenBy, bool:eWeaponCCW, eWeaponSerial } enum E_ORDER_DATA { WeaponName[32], WeaponID } enum E_ORDERLOCATION_DATA { Float:LocationX, Float:LocationY, Float:LocationZ } enum E_FINE_DATA { Fine_ID, Fine_Issuer[34], Fine_Reason[128], Fine_Amount, Fine_Date[90] } enum E_ROADBLOCK_INFO { RoadblockName[60], RoadblockModel, } enum E_ROADBLOCK_DATA { RoadblockObject, RoadblocksModelID, bool:RoadblockExists, RoadblockPlacedBy[34], RoadblockLocation[40], Float:RoadblockPos[3], RoadblockWorld, RoadblockInterior, bool:RoadblockSpikes } enum E_WEAPONCRATES_DATA { bool:CrateExists, CrateObject, CrateFaction, CrateBy, CrateItems[MAX_WEAPON_PACKAGES], Text3D:CrateLabel, CrateAttachedTo, CrateVehicle, CrateBeingOpened } new WeaponCrates[MAX_WEAPON_CRATES][E_WEAPONCRATES_DATA]; enum E_ENTERS_DATA { InteriorDBID, Float: Entrance[3], EntranceInteriorID, EntranceWorld, Float: Exit[3], ExitInteriorID, ExitWorld, bool:Locked, FactionOwner, IsBlackMarket, IsWarehouse } new Entrances[30][E_ENTERS_DATA]; // [ ROADBLOCK DATA ] new Roadblocks[40][E_ROADBLOCK_DATA]; // [ FINE DATA ] new Fines[MAX_PLAYERS][30][E_FINE_DATA]; new VehicleFines[MAX_VEHICLES][30][E_FINE_DATA]; new CheckingPlayerFine[MAX_PLAYERS]; // [ WEAPON DATA ] new Weapon[MAX_PLAYERS][MAX_POSSIBLE_WEAPONS][E_WEAPONS_DATA]; // [ GRAFFITI VARIABLES ] new GraffitiData[MAX_GRAFFITI_SPOTS][E_GRAFFITI_DATA]; new bool:sprayPermission[MAX_PLAYERS]; new bool:sprayingGraffiti[MAX_PLAYERS], sprayingGraffitiTime[MAX_PLAYERS]; new saveSprayingTime[MAX_PLAYERS]; new graffitiText[MAX_PLAYERS][65], graffitiTimer[MAX_PLAYERS], graffitiTimerEx[MAX_PLAYERS]; new bool:graffitiTimerEx_Confirm[MAX_PLAYERS]; new graffitiID[MAX_PLAYERS], graffitiFont[MAX_PLAYERS][60]; new GraffitiActual[MAX_PLAYERS][65]; // REAL GRAFFITI TEXT new GraffitiTD[MAX_PLAYERS][65]; // TEXT WE'RE GOING TO SHOW new DotsSetForGraffiti[MAX_PLAYERS]; // IF DOTS WERE SET new CharactersSetGraffiti[MAX_PLAYERS][65]; // CHECKING WHICH DOTS ARE SET new IsGraffitiDone[MAX_PLAYERS]; new GraffitiExitTimer[MAX_PLAYERS]; //GraffitiActual is the blank text for Graffiti //GraffitiTD is the L.... text that'll show //new PDToll[2]; new PDDoor[16]; // [ BOOMBOX VARIABLES ] new BoomboxData[MAX_BOOMBOXS][E_BOOMBOX_DATA]; new EditingBoombox[MAX_PLAYERS]; // [ WEP ATTACHMENT VARIABELS ] new WeaponDisplay[MAX_PLAYERS][35][E_WEAPON_ATTACHMENTS]; new DisplayTimer[MAX_PLAYERS]; new EditingDisplay[MAX_PLAYERS]; // [ LOG VARIABLES ] new PlayerChatLogs[MAX_PLAYERS][30][128]; new PlayerCommandLogs[MAX_PLAYERS][30][128]; // [ DRUG VARIABLES ] new DrugData[MAX_PLAYERS][10][E_DRUG_DATA]; // [ WEAPON PACKAGE VARIABLES ] new PackageData[MAX_PLAYERS][E_PACKAGES_DATA]; // [ CLOTHING VARIABLES ] new ClothingData[MAX_PLAYERS][MAX_CLOTHING_ITEMS][E_CLOTHING_DATA]; new PlayerClothingPage[MAX_PLAYERS], ClothingItemSelector[MAX_PLAYERS][MAX_CLOTHING_SHOW+3]; new ClothingCost[MAX_PLAYERS]; new clothing_index[MAX_PLAYERS], ClothingHolder[MAX_PLAYERS]; new ClothingMenuSelect[MAX_PLAYERS][MAX_CLOTHING_ITEMS]; // [ ADMIN NOTE VARIABLES ] new aNotesData[MAX_PLAYERS][MAX_ADMIN_NOTES][E_ADMIN_NOTES_DATA]; new anote_idsave[MAX_PLAYERS]; // [ FURNITURE GRANTBUILD VARIABLES ] new BuildData[MAX_PLAYERS][MAX_GRANT_BUILD][E_GRANT_BUILD_DATA]; // [ XMR VARIABLES ] new XMRCategoryData[MAX_XMR_CATEGORIES][E_XMR_CATEGORY_DATA]; new XMRData[MAX_XMR_SUBCATEGORY][E_XMR_SUB_CATEGORY_DATA]; new CatXMRHolder[MAX_PLAYERS], SubXMRHolder[MAX_PLAYERS]; new SubXMRHolderArr[MAX_PLAYERS][MAX_XMR_CATEGORIES]; // [ GLOBAL VARIABLES ] new OOC, GlobalWeather = 2; new TotalJailees; new WEAPON_ANTI_CHEAT = 1; new AMMO_ANTI_CHEAT = 1; new bool:WEAPON_ORDER_DISABLED = true; new dmvCar1, dmvCar2, dmvCar3, dmvCar4; new TruckerVehicles[13]; new MicPerms[MAX_PLAYERS]; //Mapping new MechLift, bool:MechUp; // [ PLAYER VARIABLES ] new gPlayerInsideEntrance[MAX_PLAYERS]; new gShowingTextDrawInfo[MAX_PLAYERS]; new gShowingTextDrawTimer[MAX_PLAYERS]; new gHidingFactionTimer[MAX_PLAYERS]; //AntiCheat new ACPausedForPlayer[MAX_PLAYERS]; new PauseMessage[MAX_PLAYERS]; new bool:pLoggedIn[MAX_PLAYERS], PlayerData[MAX_PLAYERS][E_PLAYER_DATA]; new Float:oldHealth[MAX_PLAYERS]; new _pay_security_timer[MAX_PLAYERS], _taking_license_test[MAX_PLAYERS], _taking_license_point[MAX_PLAYERS]; new _taking_license_vehicle[MAX_PLAYERS], _taking_license_time[MAX_PLAYERS], _respawn_timer[MAX_PLAYERS]; new _has_vehicle_spawned[MAX_PLAYERS], _has_spawned_vehicleid[MAX_PLAYERS]; new note_save_id[MAX_PLAYERS], contact_save_id[MAX_PLAYERS]; new playerTowingVehicle[MAX_PLAYERS], playerTowTimer[MAX_PLAYERS]; new Text3D:vehicleTowSign[MAX_VEHICLES], playerVehicleTowCount[MAX_PLAYERS]; new PlayerMDCText[MAX_PLAYERS][32], PlayerMDCPlateHolder[MAX_PLAYERS][5][32]; new PlayerStolenCarTimer[MAX_PLAYERS], PlayerStolenCarPrompt[MAX_PLAYERS]; new PlayerStolenCarPlate[MAX_PLAYERS][32]; new SavePlayerTaser[MAX_PLAYERS]; new PlaceCadWait[MAX_PLAYERS]; new PlaceAdWait[MAX_PLAYERS]; new PlayerConnectionTick[MAX_PLAYERS]; new PlayerLoginTick[MAX_PLAYERS]; //Desync new PlayerIsDesynced[MAX_PLAYERS]; new PlayerDesyncNotify[MAX_PLAYERS]; new PlayerJustDied[MAX_PLAYERS]; //Legshot new LegShotTimer[MAX_PLAYERS]; //Lock Breaking new PlayerBreakingIn[MAX_PLAYERS]; new PlayerBreakInVehicle[MAX_PLAYERS]; new Text3D:BreakInTextDraw[MAX_PLAYERS]; new BreakInTDTimer[MAX_PLAYERS]; new ActiveLockTD[MAX_PLAYERS]; new BreakInError[MAX_PLAYERS]; new BreakInLevel[MAX_PLAYERS]; //SMS new PlayerSMS[MAX_PLAYERS][128]; // new CanPMAdmin[MAX_PLAYERS][MAX_PLAYERS]; new WatchingDamages[MAX_PLAYERS][MAX_PLAYERS]; // new PlayerReport[MAX_PLAYERS][128]; //Armor new ArmorGiven[MAX_PLAYERS]; //Tutorial new PlayerTutorial[MAX_PLAYERS]; new PlayerTutorialStep[MAX_PLAYERS]; new PlayerTutorialTimer[MAX_PLAYERS]; new PlayerPassword[MAX_PLAYERS][90]; //Death new DeathTimeNotice[MAX_PLAYERS]; //New HUD new PlayerText:Player_Hud[ MAX_PLAYERS ][ 9 ]; //Spectating new SpectatorWait[MAX_PLAYERS]; //Vehicle Logs new PlayerVlogPage[MAX_PLAYERS]; new PlayerVlogVehicle[MAX_PLAYERS]; //Player Logs new PlayerLogPage[MAX_PLAYERS]; new PlayerLogPlayer[MAX_PLAYERS]; //Calling Mechanic new MechanicText[MAX_PLAYERS][128]; new MechanicCallTimer[MAX_PLAYERS]; //Calling Taxi new TaxiText[MAX_PLAYERS][2][128]; new TaxiStage[MAX_PLAYERS]; new TaxiCallTimer[MAX_PLAYERS]; //Weapon Order new bool:OrderedWeapon[MAX_PLAYERS]; new OrderWeaponTime[MAX_PLAYERS]; new WeaponOrdered[2][MAX_PLAYERS]; new WeaponOrderedName[2][MAX_PLAYERS][32]; new WeaponOrderTimer[MAX_PLAYERS]; new WeaponOrderPrompt[MAX_PLAYERS]; new WeaponOrderStop[MAX_PLAYERS]; new WeaponOrderArea[MAX_PLAYERS]; new WeaponOrderDoneTime[MAX_PLAYERS]; new WeaponOrderPrice[MAX_PLAYERS]; new WeaponOrderSpot[MAX_PLAYERS]; new WeaponOrderObject[MAX_PLAYERS]; //Trucker Job new TruckerVehicleRentedBy[MAX_VEHICLES]; new bool:StartedTruckerMission[MAX_PLAYERS]; new TruckerMissionVehicle[MAX_PLAYERS]; new bool:SpawnedTrailer[MAX_PLAYERS]; new TrailerAttachTime[MAX_PLAYERS]; new TrailerID[MAX_VEHICLES]; new TrailerTimer[MAX_PLAYERS]; new TruckerMissionPoint[MAX_PLAYERS]; new TruckerMissionStep[MAX_PLAYERS]; new TruckerJobTimer[MAX_PLAYERS]; new TruckerJobDeliverTimer[MAX_PLAYERS]; new TruckerJobDeliveryCount[MAX_PLAYERS]; new TruckerJobEarnings[MAX_PLAYERS]; new TruckerJobExitTimer[MAX_PLAYERS]; new TruckerJobExitCount[MAX_PLAYERS]; //Taxi Job new bool:StartedTaxiJob[MAX_PLAYERS]; new TaxiDriver[MAX_PLAYERS]; //Taxi driver's ID when player enters; new TaxiDurationTimer[MAX_PLAYERS]; new TaxiFairTimer[MAX_PLAYERS]; new TaxiDuration[MAX_PLAYERS]; new TaxiPrice[MAX_PLAYERS]; new InTaxiRide[MAX_PLAYERS]; new TaxiDriverTimer[MAX_PLAYERS]; new TaxiFair[MAX_PLAYERS]; new TaxiTotalFair[MAX_PLAYERS]; new TaxiFairStarted[MAX_PLAYERS]; // new PlayerIsTased[MAX_PLAYERS]; //Vehicle Sell new VehicleOfferedTo[MAX_PLAYERS]; //Player who uses /v sell; new VehicleOfferBy[MAX_PLAYERS]; //Target of /vsell; new VehicleDBIDOffered[MAX_PLAYERS]; //Vehicle of /vsell; new VehiclePrice[MAX_PLAYERS]; //Price of /vsell; //Fuel Station Refill new PlayerRefilling[MAX_PLAYERS]; //When uses /v refill, starts. new RefillPoint[MAX_PLAYERS]; // The refill point counter; new Text3D:RefillTextdraw[MAX_PLAYERS]; // TD refill; new RefillTimer[MAX_PLAYERS]; new RefillPrice[MAX_PLAYERS]; new Float:RefillAmount[MAX_PLAYERS]; new RefillVehicle[MAX_PLAYERS]; //Hire Business new OfferedHireTo[MAX_PLAYERS]; new OfferedHireBusinessID[MAX_PLAYERS]; new OfferedHireBy[MAX_PLAYERS]; //Admin System new OfflineBanName[MAX_PLAYERS][60]; new OfflineJailName[MAX_PLAYERS][60], OfflineJailTime[MAX_PLAYERS]; new AdminPanelName[MAX_PLAYERS][60]; new AdminNoteSelect[MAX_PLAYERS][MAX_ADMIN_NOTES]; new AdminNoteSelected[MAX_PLAYERS], AdminNoteIssuer[MAX_PLAYERS][90]; //Password Change new CanChangePassword[MAX_PLAYERS]; //Warehouse Variable new WarehouseWeapons[MAX_PLAYERS][MAX_WEAPON_PACKAGES]; new WarehouseCallTimer[MAX_PLAYERS]; new WarehouseCallStep[MAX_PLAYERS]; new gOpeningCrateTimer[MAX_PLAYERS]; new gOpeningCrate[MAX_PLAYERS]; new gCrateOpenIntervals[MAX_PLAYERS]; new Float:gOpeningCratePos[MAX_PLAYERS][3]; // [ TEXTDRAW VARIABLES ] new Text:Buymenu_TD[37], Text:furnitureadd_TD[9]; new Text:blindfoldTextdraw, Text:TD_mealMenu[17]; new PlayerText:DefaultTextdraw[MAX_PLAYERS]; new PlayerText:SpectatorTD[MAX_PLAYERS][6]; new PlayerText:Trace_PTD[MAX_PLAYERS][1], PlayerText:CarBought_PTD[MAX_PLAYERS][2]; new PlayerText:Getjob_PTD[MAX_PLAYERS][4], PlayerText:Skinmenu_PTD[MAX_PLAYERS][3]; new PlayerText:Unscrambler_PTD[MAX_PLAYERS][7]; new PlayerText:TruckerJob_PTD[MAX_PLAYERS][2]; new PlayerText:TruckerEarning_PTD[MAX_PLAYERS][2]; new PlayerText:TruckerWarning_PTD[MAX_PLAYERS][2]; new PlayerText:TaxiFair_PTD[MAX_PLAYERS][5]; new PlayerText:OrderCount[MAX_PLAYERS][2]; new PlayerText:GraffitiDisplay[MAX_PLAYERS]; //Vehicle HUD new PlayerText:VehicleHUD[MAX_PLAYERS][6]; // //Vehicle List HUD new PlayerText:Player_Vehicles[MAX_PLAYERS][6]; new PlayerText:Player_Vehicles_Name[MAX_PLAYERS][6]; new PlayerText:Player_Vehicles_Arrow[MAX_PLAYERS][3]; new PlayerText:Player_Static_Arrow[MAX_PLAYERS]; new PlayerListShow[MAX_PLAYERS]; //Warehouse Menu new Text:WarehouseMenu[46]; new PlayerText:WarehouseMenu_P[MAX_PLAYERS][3]; new Text:CrateInventory[2]; new PlayerText:CrateInventory_P[MAX_PLAYERS][1]; // [ RESOURCES VARIABLES ] new Resources[MAX_PLAYERS][E_RESOURCES_USE]; // [ PROPERTY VARIABLES ] new PropertyData[MAX_PROPERTY][E_PROPERTY_DATA], TotalPropertyMade = 0; new HousePackages[MAX_PROPERTY][10][E_HOUSE_PACKAGES]; new PackageDrugs[MAX_PROPERTY][10][20][E_HOUSE_PACKAGES_DRUGS]; // [ VEHICLE VARIABLES ] new CarData[MAX_VEHICLES][E_PLAYER_VEHICLES]; new CarDrugData[MAX_VEHICLES][10][E_VEHICLE_DRUGS]; new AdminCar[MAX_VEHICLES], AdminCarColor1[MAX_VEHICLES], AdminCarColor2[MAX_VEHICLES]; new CarEngine[MAX_VEHICLES], CarLights[MAX_VEHICLES]; new CarlastDriver[MAX_VEHICLES], CarlastPassenger[MAX_VEHICLES]; //Weapon Positions new SlotBeingUsed[MAX_VEHICLES][5]; new PlayerPlacingInVehicle[MAX_PLAYERS]; new PlayerPlacingWeapon[MAX_PLAYERS]; new PlayerEditingWeapon[MAX_PLAYERS]; new PlayerPlacingWeaponSlot[MAX_PLAYERS]; new PlayerPlacingWeaponID[MAX_PLAYERS]; new PlayerPlacingWeaponAmmo[MAX_PLAYERS]; // [ FACTION VEHICLE VARIABLES ] new FactionCar[MAX_FACTION_CARS][E_FACTION_VEHICLES]; new Text3D:vehicleTextdraw[MAX_PLAYERS], playerTextdraw[MAX_PLAYERS]; // [ FACTION VARIABLES ] new FactionData[MAX_FACTIONS][E_FACTION_DATA], TotalFactionsLoaded = 0; static FactionName[128], FactionAbbrev[128]; static Float:FactionSpawn[4]; new FactionRanks[MAX_FACTIONS][MAX_FACTION_RANKS][60]; // [ BUSINESS VARIABLES ] new BusinessData[MAX_BUSINESS][E_BUSINESS_DATA], TotalBusinessesLoaded = 0; // [ PAY N' SPRAY VARIABLES ] new PNSData[MAX_PAYNSPRAY][E_PAYNSPRAY_DATA], TotalPaynSpraysLoaded = 0; // [ TOLL VARIABLES ] new TollsData[MAX_TOLLS][E_TOLLS_DATA], TotalTollsLoaded = 0; new totalTollPayment = 0, tollTimesLocked = 0; new tollObject1, tollObject2; // LSLV new tollObject3, tollObject4; // Richman new tollObject5, tollObject6; // Flint // [ DAMAGE VARIABLES ] new DamageData[MAX_PLAYERS][MAX_DAMAGES][E_DAMAGE_DATA]; new totalDamages[MAX_PLAYERS]; // [ DROPGUN VARIABLES ] new DropData[MAX_DROP_ITEMS][E_DROP_DATA]; // [ RENTAL VARIABLES ] new RentalData[MAX_RENTALS][E_RENTAL_DATA]; // [ DOOR VARIABLES ] new DoorData[MAX_DOORS][E_DOOR_DATA], TotalDoorsLoaded = 0; // [ NOTE VARIABLES ] new NoteData[MAX_PLAYERS][MAX_PLAYER_NOTES][E_PLAYER_NOTE_DATA]; // [ FURNITURE VARIABLES ] new FurnitureData[MAX_FURNITURE][E_FURNITURE_DATA]; new CatFurnitureHolder[MAX_PLAYERS], SubFurnitureHolder[MAX_PLAYERS]; new SubFurnitureHolderArr[MAX_PLAYERS][MAX_FURNITURE]; new FurnitureSelectHolder[MAX_PLAYERS][MAX_SHOWING_FURNITURE+3]; new FurnitureSelectHolderArr[MAX_PLAYERS]; new PlayerFurniturePage[MAX_PLAYERS], PlayerListitemSelected[MAX_PLAYERS]; // [ OBJECT VARIABLES ] new ObjectData[MAX_SERVER_OBJECTS][E_OBJECT_DATA]; new PlayerAddingObject[MAX_PLAYERS], PlayerAddingModel[MAX_PLAYERS], PlayerEditingObject[MAX_PLAYERS]; new PlayerSpawnObject[MAX_PLAYERS], PlayerEditingID[MAX_PLAYERS]; new PlayerEditingOpen[MAX_PLAYERS]; // [ APB VARIABLES ] new APBData[MAX_APBS][E_APB_DATA]; // [ REPORT VARIABLES ] new ReportData[MAX_REPORTS][E_REPORT_DATA]; // [ SUPPORT VARIABLES ] new SupportData[100][E_SUPPORT_DATA]; // [ CONTACT VARIABLES ] new ContactsData[MAX_PLAYERS][MAX_PLAYER_CONTACTS][E_CONTACTS_DATA]; // [ PROPERTY GARAGE VARIABLES ] new GarageData[MAX_PROPERTY_GARAGES][E_PROPERTY_GARAGE_DATA], TotalPropertyGaragesMade = 0; // [ DEALERSHIP VARIABLES ] new CatDealershipHolder[MAX_PLAYERS], SubDealershipHolder[MAX_PLAYERS]; new SubDealershipHolderArr[MAX_PLAYERS][200]; new g_aVehicleSpawned[MAX_PLAYERS], g_aVehicleColor[MAX_PLAYERS][2]; new g_aLockLevel[MAX_PLAYERS], g_aAlarmLevel[MAX_PLAYERS], g_aImmobLevel[MAX_PLAYERS], g_aXMR[MAX_PLAYERS]; new g_aTotalAmount[MAX_PLAYERS], g_aSlotSave[MAX_PLAYERS], g_aPlates[MAX_PLAYERS][32]; // [ MECHANIC JOB VARIABLES ] new paintjobOffered[MAX_PLAYERS][2], paintjobColors[MAX_PLAYERS][2]; new bool:startingPaintjob[MAX_PLAYERS], paintjobVehicle[MAX_PLAYERS], paintjobTimer[MAX_PLAYERS], paintjobCounter[MAX_PLAYERS]; new paintjobTime[MAX_PLAYERS]; // [ MEAL MENU VARIABLES ] new MealMenu[MAX_PLAYERS][E_MEAL_DATA]; // [ UNSCRAMBLER VARIABLES ] static const g_aUnscrambleInfo[][E_UNSCRAMBLER_DATA] = { {"Pssawodr", "Password"}, {"Inof", "Info"}, {"Hldoer", "Holder"}, {"Tmei", "Time"}, {"Pntia", "Paint"}, {"Sroloc", "Colors"}, {"Gaager", "Garage"}, {"Proprety", "Property"}, {"Conctsa", "Contacts"}, {"Laern", "Learn"}, {"Sedo", "Does"}, {"Yot", "Toy"}, {"Atbo", "Boat"}, {"Crambles", "Scramble"}, {"Cmaer", "Cream"}, {"Leras", "Laser"}, {"Scrmea", "Scream"}, {"Braec", "Brace"} }; // static const g_aDealershipCategory[][] = { {"Aircrafts"}, {"Boats"}, {"Bikes"}, {"2-Door & Compact cars"}, {"4-Door & Luxury cars"}, {"Civil Service"}, {"Heavy & Utility Trucks"}, {"Light trucks & Vans"}, {"SUVs & Wagons"}, {"Muscle Cars"}, {"Street Racers"} }; /*new g_aGraffitiData[][E_GRAFFITI_INFO] = { {1832.995727, -2113.689208, 14.072821, 0.000000, 0.000000, 0.000000}, {1868.269287, -2095.433105, 14.367721, 0.000000, 0.000000, 90.000015}, //south facing {2163.614013, -1762.289794, 14.627322, 0.000000, 0.000000, -90.000030}, //north facing {2275.686279, -1679.490966, 15.960313, 0.000000, 0.000000, 179.999969} //east facing };*/ new g_aGraffitiData[][E_GRAFFITI_INFO] = { {2081.867675, -1255.466430, 24.712007, -12.800003, 0.000000, 0.000000}, {2268.340332, -1031.824707, 53.437198, 0.000000, 0.000000, 135.800155}, {2652.655517, -1123.089355, 66.999664, 0.000000, 0.000000, 0.399999}, {2652.727294, -1268.601074, 50.095500, 0.000000, 0.000000, 0.000000}, {2441.024169, -1215.926757, 32.154163, 0.000000, 0.000000, -179.199768}, {2352.000488, -1262.450927, 22.958444, 0.000000, 0.000000, 0.000000}, {2195.268554, -1745.694580, 13.739686, 0.000000, 0.000000, -177.399734}, {1868.005493, -2038.964843, 15.976880, 0.000000, 0.000000, 179.700088}, {1832.987426, -2111.634033, 13.946876, 0.000000, 0.000000, 0.000000}, {1862.723510, -2095.458007, 13.890580, 0.000000, 0.000000, 89.700012}, {2097.205566, -1258.445434, 24.748823, -16.799999, 0.000000, 87.999984}, {2135.333984, -1820.317871, 13.748497, 0.000000, 0.000000, 0.000000}, {2171.669921, -1709.278564, 15.921793, -8.500000, 0.000000, 179.999969}, {2112.414794, -1500.848632, 11.099428, 0.000000, 0.000000, -109.899978}, {2129.287841, -1374.363769, 25.878126, 0.000000, 0.000000, 90.400009}, {2110.260253, -1352.890625, 25.076538, 9.399998, -0.699999, -179.799743}, {2052.904296, -1322.635498, 24.954380, 0.000000, 0.000000, 179.800018}, {2159.781494, -1693.122314, 16.025939, 0.000000, 0.000000, -179.099990}, {2146.816650, -1698.676025, 15.438446, 0.000000, 0.000000, 91.499877}, {2175.154052, -1732.381713, 14.535001, 0.000000, 0.000000, -178.500061}, {2231.739501, -1683.644775, 15.479531, 0.000000, 0.000000, -16.500001}, {2121.155029, -1594.672729, 15.621557, 0.000000, 0.000000, 86.900100}, {2123.272705, -1593.691284, 15.241566, 0.000000, 0.000000, -179.499893}, {2112.329345, -1632.425170, 13.739908, 0.000000, -3.200001, -89.700065}, {2081.344970, -1592.929809, 14.757192, 0.000000, 0.000000, 179.300003}, {2073.782470, -1597.242553, 14.414111, 0.000000, 0.000000, 90.300033}, {2031.132568, -1599.088867, 13.910934, 0.000000, 0.000000, -168.799987}, {1986.863281, -1598.860839, 13.900341, 0.000000, 0.000000, -135.000076}, {2478.406982, -1705.506347, 13.490673, 0.000000, 0.000000, 176.799804}, {2478.767578, -1688.184936, 13.487812, 0.000000, 0.000000, -98.600006}, {2520.675781, -1673.658447, 15.454930, 0.000000, 0.000000, 0.000000}, {2534.723388, -1665.125732, 15.735736, 0.000000, 0.000000, -178.699966}, {2431.231689, -1680.935424, 14.411346, 0.000000, 0.000000, -90.199958}, {2398.518066, -1693.246948, 13.891834, 0.000000, 0.000000, 87.599990}, {2377.614990, -1707.240112, 14.127936, 0.000000, 0.000000, 0.000000}, {2440.530517, -1997.948486, 14.406878, 0.000000, 0.000000, 89.199966}, // Willowfield red wall {2459.481933, -1975.134521, 14.166885, 0.000000, 0.000000, 0.000000}, // Willowfield alley {2459.608642, -2043.951049, 11.091508, 0.000000, 0.000000, 88.000068}, // Willowfield sewer {1958.593139, -1742.345336, 13.856878, 0.000000, 0.000000, 90.700050}, // Idlegas [Artsy] {1951.642700, -1682.986083, 13.822822, 0.000000, 0.000000, 0.000000}, // North of Idlegas [Artsy], {1991.694580, -1683.518676, 13.636877, 0.000000, 0.000000, 178.599838}, // West 4-1-5 [Artsy], {2135.621582, -1258.083496, 24.192192, 0.000000, 0.000000, 90.099929} // Jefferson Alley [Fireworks] }; new g_aFactionClothing[][E_CLOTHING_INFO] = { {19774, "Police Badge 1", 50}, {19775, "Police Badge 2", 50}, {19347, "Sheriff Badge", 50}, {19776, "ID Card", 50}, {19792, "Keycard", 50}, {19904, "Construction Vest", 50}, {19942, "Police Radio", 50}, {19418, "Handcuffs", 50}, {11749, "Open Cuffs", 50}, {11750, "Closed Cuffs", 50}, {18636, "Police Cap", 50}, {18637, "Police Shield", 100}, {18641, "Flashlight", 50}, {18642, "Taser", 50}, {18875, "Pager", 50}, {19141, "SWAT Helmet (LSPD)", 50}, {19142, "SWAT Armor (LSPD)", 100}, {19161, "Black Police Cap", 50}, {19162, "Blue Police Cap", 50}, {19200, "Police Helmet", 50}, {19330, "Yellow Fire Hat (LSFD)", 50}, {19331, "Black Fire Hat (LSFD)", 50}, {19472, "Gas Mask", 50}, {19514, "White SWAT Helmet (LSSD)", 50}, {19515, "White SWAT Armor (LSSD)", 100}, {19520, "Pilot Hat", 50}, {19521, "Police Hat (High Command)", 50} }; new g_aClothingData[][E_CLOTHING_INFO] = { {18638, "Hard Hat", 50}, {18640, "Afro Hair", 50}, {18645, "Red and White Motorcycle Helmet", 50}, {19801, "Balaclava", 2500}, {18891, "Gray Bandana", 50}, {18892, "Red Bandana", 50}, {18893, "White and Red Bandana", 50}, {18894, "Orange Bandana", 50}, {18895, "Black Bandana (Skulls)", 50}, {18896, "Black Bandana", 50}, {18897, "Blue Bandana", 50}, {18898, "Green Bandana", 50}, {18899, "Pink Bandana", 50}, {18900, "Brown Bandana", 50}, {18901, "Yellow Bandana", 50}, {18902, "Purpleish Bandana", 50}, {18903, "Electric Blue Bandana", 50}, {18904, "Brown Camo Bandana", 50}, {18905, "Orange and Yellow Bandana", 50}, {18906, "Funky Bandana 1", 50}, {18907, "Funky Bandana 2", 50}, {18908, "Blue and Dark Blue Bandana", 50}, {18909, "Blue and Purple Bandana", 50}, {18910, "Red and Dark Red Bandana", 50}, {18911, "Black Skulls Bandana (Mask)", 50}, {18912, "Black Bandana (Mask)", 50}, {18913, "Green Bandana (Mask)", 50}, {18914, "Camo Bandana (Mask)", 50}, {18915, "Funky Bandana (Mask)", 50}, {18916, "Yellow Bandana (Mask)", 50}, {18917, "Electric Blue Bandana (Mask)", 50}, {18918, "Light Green Bandana (Mask)", 50}, {18919, "White and Black Bandana (Mask)", 50}, {18920, "Orangeish Bandana (Mask)", 50}, {18921, "Black Beret", 50}, {18922, "Blue Beret", 50}, {18923, "Camo Beret", 50}, {18924, "Red Beret 1", 50}, {18925, "Red Beret 2", 50}, {18926, "Camo Cap", 50}, {18927, "Blue Cap", 50}, {18928, "Funky Cap", 50}, {18929, "Funky Green Cap", 50}, {18930, "Red and Black Cap", 50}, {18931, "Electric Blue Cap", 50}, {18932, "Orange Cap", 50}, {18933, "White and Black Cap", 50}, {18934, "Red Cap", 50}, {18935, "Yellow Cap", 50}, {18936, "Gray Helmet", 50}, {18937, "Red Helmet", 50}, {18938, "Purple Helmet", 50}, {18939, "Electric Blue Snapback", 50}, {18940, "Blue Snapback", 50}, {18941, "Black Snapback", 50}, {18942, "Gray Snapback", 50}, {18943, "Green Snapback", 50}, {18944, "Red Boater Hat", 50}, {18945, "Green Boater Hat", 50}, {18946, "Tan Boater Hat", 50}, {18947, "Black Bowler Hat", 50}, {18948, "Blue Bowler Hat", 50}, {18949, "Green Bowler Hat", 50}, {18950, "Red Bowler Hat", 50}, {18951, "Yellow Bowler Hat", 50}, {18952, "Boxing Helmet", 50}, {18953, "Black Knit Cap", 50}, {18954, "Olive Knit Cap", 50}, {18955, "Orange Low Cap", 50}, {18956, "Electric Blue Low Cap", 50}, {18957, "Blue Low Cap", 50}, {18958, "Black and Yellow Low Cap", 50}, {18959, "Camo Low Cap", 50}, {18960, "Funky Cap Rim Up", 50}, {18961, "Trucker Hat", 50}, {18962, "Black Cowboy Hat", 50}, {18964, "Skully Cap 1", 50}, {18965, "Skully Cap 2", 50}, {18966, "Funky Skully Cap", 50}, {18967, "Black Bucket Hat", 50}, {18968, "White and Blue Bucket Hat", 50}, {18969, "Orange Bucket Hat", 50}, {18970, "Tiger Hat", 50}, {18971, "Black and White Hat", 50}, {18972, "Orange and Black Hat", 50}, {18973, "Leopard Hat", 50}, {18975, "Hair", 50}, {18976, "Blue Motorcycle Helmet", 50}, {18977, "Red Motorcycle Helmet", 50}, {18978, "White Motorcycle Helmet", 50}, {18979, "Purple Motorcycle Helmet", 50}, {19006, "Red Lenses Glasses", 50}, {19007, "Orange Lenses Glasses", 50}, {19008, "Green Lenses Glasses", 50}, {19009, "Blue Lenses Glasses", 50}, {19010, "Pink Lenses Glasses", 50}, {19015, "Clear Lenses Glasses", 50}, {19016, "Brown Lenses Glasses", 50}, {19025, "Red Lenses Glasses", 50}, {19027, "Orange Lenses Glasses", 50}, {19028, "Yellow Lenses Glasses", 50}, {19029, "Green Lenses Glasses", 50}, {19031, "Transparent Glasses", 50}, {19036, "White Hockey Mask", 50}, {19037, "Red Hockey Mask", 50}, {19038, "Green Hockey Mask", 50}, {19039, "Gold White Face Watch", 50}, {19040, "Gold Black Face Watch", 50}, {19041, "Silver Black Face Watch", 50}, {19042, "Silver White Face Watch", 50}, {19043, "Brown Watch", 50}, {19044, "Pink Watch", 50}, {19045, "Red Watch", 50}, {19046, "Green Watch", 50}, {19047, "Purple Watch", 50}, {19048, "Electric Blue Watch", 50}, {19049, "Funky Watch", 50}, {19050, "Blue Watch", 50}, {19051, "Orange Watch", 50}, {19052, "Funky Pink Watch", 50}, {19053, "Camo Watch", 50}, {19095, "Cowboy Hat 1", 50}, {19096, "Cowboy Hat 2", 50}, {19097, "Cowboy Hat 3", 50}, {19098, "Cowboy Hat 4", 50}, {19099, "Cowboy Hat 5", 50}, // Police {19100, "Cowboy Hat 6", 50}, // Police {19136, "Hat and Hair", 50}, {19138, "Stylish Black Sunglasses", 50}, {19139, "Stylish Red Sunglasses", 50}, {19140, "Stylish Blue Sunglasses", 50}, {19160, "Dude Hat", 50}, {19274, "Red Clown Wig", 50}, {19352, "Tophat", 50}, {19487, "White Tophat", 50}, {19421, "White Headphones", 50}, {19422, "Black Headphones", 50}, {19423, "Red Headphones", 50}, {19424, "Blue Headphones", 50}, {19520, "Pilot Hat", 50}, {19528, "Witch Hat", 50}, {19553, "Straw Hat", 50}, {19554, "Beanie", 50}, {19558, "Pizza Hat", 50}, {19773, "Gun Holster", 60}, {2919, "Duffle bag", 70}, {19559, "Hikers bag", 200}, {3026, "Backpack", 30} }; new g_aDealershipData[][E_DEALERSHIP_INFO] = { {0, DEALERSHIP_CATEGORY_AIRCRAFTS, "Maverick", 487, 1000000}, {1, DEALERSHIP_CATEGORY_BOATS, "Squallo", 446, 400000}, {2, DEALERSHIP_CATEGORY_BIKES, "Bike", 509, 1000}, {2, DEALERSHIP_CATEGORY_BIKES, "BMX", 481, 700}, {2, DEALERSHIP_CATEGORY_BIKES, "Mountain Bike", 510, 1000}, {2, DEALERSHIP_CATEGORY_BIKES, "Faggio", 462, 10000}, {2, DEALERSHIP_CATEGORY_BIKES, "FCR-900", 521, 200000}, {2, DEALERSHIP_CATEGORY_BIKES, "Freeway", 463, 50000}, {2, DEALERSHIP_CATEGORY_BIKES, "Sanchez", 468, 40000}, {2, DEALERSHIP_CATEGORY_BIKES, "Wayfarer", 586, 50000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Alpha", 602, 330000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Blista Compact", 496, 140000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Bravura", 401, 40000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Buccaneer", 518, 45000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Cadrona", 527, 45000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Club", 589, 160000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Esperanto", 419, 50000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Euros", 587, 250000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Feltzer", 533, 65000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Fortune", 526, 55000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Hermes", 474, 60000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Hustler", 545, 85000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Majestic", 517, 65000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Manana", 410, 35000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Picador", 600, 45000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Previon", 436, 40000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Stallion", 439, 80000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Tampa", 549, 38000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Virgo", 491, 41000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Blade", 536, 65000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Broadway", 575, 80000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Remington", 534, 75000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Slamvan", 535, 110000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Tornado", 576, 58000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Voodoo", 412, 65000}, {3, DEALERSHIP_CATEGORY_TWODOOR, "Windsor", 555, 425000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Admiral", 445, 45000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Glendale", 604, 50000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Elegant", 507, 155000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Greenwood", 492, 30000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Intruder", 546, 46000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Merit", 551, 150000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Nebula", 516, 40000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Oceanic", 467, 35000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Premier", 426, 135000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Primo", 547, 38000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Sentinel", 405, 135000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Stafford", 580, 200000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Stretch", 409, 280000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Sunrise", 550, 55000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Tahoma", 566, 65000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Vincent", 540, 51000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Washington", 421, 100000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Willard", 529, 45000}, {4, DEALERSHIP_CATEGORY_FOURDOOR, "Savanna", 567, 85000}, {5, DEALERSHIP_CATEGORY_CIVIL, "Bus", 431, 70000}, {5, DEALERSHIP_CATEGORY_CIVIL, "Cabbie", 438, 50000}, {5, DEALERSHIP_CATEGORY_CIVIL, "Taxi", 420, 45000}, {5, DEALERSHIP_CATEGORY_CIVIL, "Towtruck", 525, 55000}, {5, DEALERSHIP_CATEGORY_CIVIL, "Trashmaster", 408, 140000}, {6, DEALERSHIP_CATEGORY_HEAVY, "Benson", 499, 100000}, {6, DEALERSHIP_CATEGORY_HEAVY, "Boxville", 609, 80000}, {6, DEALERSHIP_CATEGORY_HEAVY, "Combine Harvester", 532, 125000}, {6, DEALERSHIP_CATEGORY_HEAVY, "DFT-30", 578, 90000}, {6, DEALERSHIP_CATEGORY_HEAVY, "Hotdog Truck", 588, 85000}, {6, DEALERSHIP_CATEGORY_HEAVY, "Linerunner", 403, 255000}, {6, DEALERSHIP_CATEGORY_HEAVY, "Mr. Whoopee", 423, 80000}, {6, DEALERSHIP_CATEGORY_HEAVY, "Mule", 414, 175000}, {6, DEALERSHIP_CATEGORY_HEAVY, "Packer", 443, 375000}, {6, DEALERSHIP_CATEGORY_HEAVY, "Roadtrain", 515, 90000}, {6, DEALERSHIP_CATEGORY_HEAVY, "Tanker", 514, 78000}, {6, DEALERSHIP_CATEGORY_HEAVY, "Yankee", 456, 189000}, {7, DEALERSHIP_CATEGORY_VANS, "Berkley's RC Van", 459, 60000}, {7, DEALERSHIP_CATEGORY_VANS, "Bobcat", 422, 60000}, {7, DEALERSHIP_CATEGORY_VANS, "Burrito", 482, 120000}, {7, DEALERSHIP_CATEGORY_VANS, "Sadler(Damaged)", 605, 25000}, {7, DEALERSHIP_CATEGORY_VANS, "Moonbeam", 418, 80000}, {7, DEALERSHIP_CATEGORY_VANS, "Pony", 413, 110000}, {7, DEALERSHIP_CATEGORY_VANS, "Rumpo", 440, 100000}, {7, DEALERSHIP_CATEGORY_VANS, "Sadler", 543, 50000}, {7, DEALERSHIP_CATEGORY_VANS, "Walton", 478, 45000}, {7, DEALERSHIP_CATEGORY_VANS, "Yosemite", 554, 75000}, {8, DEALERSHIP_CATEGORY_SUV, "Huntley", 579, 200000}, {8, DEALERSHIP_CATEGORY_SUV, "Landstalker", 400, 162500}, {8, DEALERSHIP_CATEGORY_SUV, "Perennial", 404, 80000}, {8, DEALERSHIP_CATEGORY_SUV, "Rancher", 489, 110000}, {8, DEALERSHIP_CATEGORY_SUV, "Regina", 479, 85000}, {8, DEALERSHIP_CATEGORY_SUV, "Romero", 442, 75000}, {8, DEALERSHIP_CATEGORY_SUV, "Solair", 458, 90000}, {9, DEALERSHIP_CATEGORY_MUSCLE, "Buffalo", 402, 420000}, {9, DEALERSHIP_CATEGORY_MUSCLE, "Clover", 542, 135000}, {9, DEALERSHIP_CATEGORY_MUSCLE, "Phoenix", 603, 650000}, {9, DEALERSHIP_CATEGORY_MUSCLE, "Sabre", 475, 160000}, {10, DEALERSHIP_CATEGORY_RACERS, "Banshee", 429, 825000}, {10, DEALERSHIP_CATEGORY_RACERS, "Bullet", 541, 1000000}, {10, DEALERSHIP_CATEGORY_RACERS, "Cheetah", 415, 850000}, {10, DEALERSHIP_CATEGORY_RACERS, "Comet", 480, 550000}, {10, DEALERSHIP_CATEGORY_RACERS, "Elegy", 562, 220000}, {10, DEALERSHIP_CATEGORY_RACERS, "Flash", 565, 180000}, {10, DEALERSHIP_CATEGORY_RACERS, "Jester", 559, 200000}, {10, DEALERSHIP_CATEGORY_RACERS, "Stratum", 561, 110000}, {10, DEALERSHIP_CATEGORY_RACERS, "Sultan", 560, 785000}, {10, DEALERSHIP_CATEGORY_RACERS, "Super GT", 506, 620000}, {10, DEALERSHIP_CATEGORY_RACERS, "Uranus", 558, 330000}, {10, DEALERSHIP_CATEGORY_RACERS, "Windsor", 555, 300000}, {10, DEALERSHIP_CATEGORY_RACERS, "ZR-350", 477, 700000} }; static const g_aFurnitureTypes[][] = { {"Frames"}, {"Beds"}, {"Walls"}, {"Floorboards"}, {"Doors"}, {"Miscellaneous"}, {"Stairs"}, {"Graffiti & Others"}, {"Electronics"}, {"Chairs / Seats"}, {"Tables"} }; new g_aFurnitureData[][E_FURNITURE_INFO] = { {0, "Frame 1", 2289, FURNITURE_CATEGORY_FRAMES}, {0, "Frame 2", 2288, FURNITURE_CATEGORY_FRAMES}, {0, "Frame 3", 2287, FURNITURE_CATEGORY_FRAMES}, {0, "Frame 4", 2286, FURNITURE_CATEGORY_FRAMES}, {0, "Frame 5", 2285, FURNITURE_CATEGORY_FRAMES}, {0, "Frame 6", 2284, FURNITURE_CATEGORY_FRAMES}, {0, "Frame 7", 2283, FURNITURE_CATEGORY_FRAMES}, {1, "Bed 1", 1700, FURNITURE_CATEGORY_BEDS}, {1, "Bed 2", 1701, FURNITURE_CATEGORY_BEDS}, {1, "Bed 3", 1745, FURNITURE_CATEGORY_BEDS}, {1, "Bed 4", 1771, FURNITURE_CATEGORY_BEDS}, {1, "Bed 5", 1793, FURNITURE_CATEGORY_BEDS}, {1, "Bed 6", 1794, FURNITURE_CATEGORY_BEDS}, {1, "Bed 7", 1795, FURNITURE_CATEGORY_BEDS}, {1, "Bed 8", 1796, FURNITURE_CATEGORY_BEDS}, {1, "Bed 9", 1797, FURNITURE_CATEGORY_BEDS}, {1, "Bed 10", 1798, FURNITURE_CATEGORY_BEDS}, {1, "Bed 11", 1799, FURNITURE_CATEGORY_BEDS}, {1, "Bed 12", 1780, FURNITURE_CATEGORY_BEDS}, {1, "Bed 13", 1801, FURNITURE_CATEGORY_BEDS}, {1, "Bed 14", 1802, FURNITURE_CATEGORY_BEDS}, {1, "Bed 15", 1803, FURNITURE_CATEGORY_BEDS}, {1, "Bed 16", 1804, FURNITURE_CATEGORY_BEDS}, {1, "Bed 17", 1812, FURNITURE_CATEGORY_BEDS}, {1, "Bed 18", 2090, FURNITURE_CATEGORY_BEDS}, {1, "Bed 19", 2298, FURNITURE_CATEGORY_BEDS}, {1, "Bed 20", 2299, FURNITURE_CATEGORY_BEDS}, {1, "Bed 21", 2300, FURNITURE_CATEGORY_BEDS}, {1, "Bed 22", 2301, FURNITURE_CATEGORY_BEDS}, {1, "Bed 23", 2302, FURNITURE_CATEGORY_BEDS}, {1, "Bed 24", 2565, FURNITURE_CATEGORY_BEDS}, {1, "Bed 25", 2566, FURNITURE_CATEGORY_BEDS}, {1, "Bed 26", 2575, FURNITURE_CATEGORY_BEDS}, {1, "Bed 27", 2603, FURNITURE_CATEGORY_BEDS}, {1, "Bed 28", 14446, FURNITURE_CATEGORY_BEDS}, {1, "Bed 29", 14861, FURNITURE_CATEGORY_BEDS}, {1, "Bed 30", 14866, FURNITURE_CATEGORY_BEDS}, {1, "Bed 31", 14880, FURNITURE_CATEGORY_BEDS}, {2, "Wall 1", 19355, FURNITURE_CATEGORY_WALLS}, {2, "Wall 2", 2395, FURNITURE_CATEGORY_WALLS}, {2, "Wall 3", 19353, FURNITURE_CATEGORY_WALLS}, {2, "Wall 4", 19354, FURNITURE_CATEGORY_WALLS}, {2, "Wall 5", 19356, FURNITURE_CATEGORY_WALLS}, {2, "Wall 6", 19357, FURNITURE_CATEGORY_WALLS}, {2, "Wall 7", 19358, FURNITURE_CATEGORY_WALLS}, {2, "Wall 8", 19359, FURNITURE_CATEGORY_WALLS}, {2, "Wall 9", 19360, FURNITURE_CATEGORY_WALLS}, {2, "Wall 10", 19361, FURNITURE_CATEGORY_WALLS}, {2, "Wall 11", 19362, FURNITURE_CATEGORY_WALLS}, {2, "Wall 12", 19363, FURNITURE_CATEGORY_WALLS}, {2, "Wall 13", 19364, FURNITURE_CATEGORY_WALLS}, {2, "Wall 14", 19365, FURNITURE_CATEGORY_WALLS}, {2, "Wall 15", 19366, FURNITURE_CATEGORY_WALLS}, {2, "Wall 16", 19367, FURNITURE_CATEGORY_WALLS}, {2, "Wall 17", 19368, FURNITURE_CATEGORY_WALLS}, {2, "Wall 18", 19369, FURNITURE_CATEGORY_WALLS}, {2, "Wall 19", 19370, FURNITURE_CATEGORY_WALLS}, {2, "Wall 20", 19383, FURNITURE_CATEGORY_WALLS}, {2, "Wall 21", 19384, FURNITURE_CATEGORY_WALLS}, {2, "Wall 22", 19385, FURNITURE_CATEGORY_WALLS}, {2, "Wall 23", 19386, FURNITURE_CATEGORY_WALLS}, {2, "Wall 24", 19387, FURNITURE_CATEGORY_WALLS}, {2, "Wall 25", 19388, FURNITURE_CATEGORY_WALLS}, {2, "Wall 26", 19389, FURNITURE_CATEGORY_WALLS}, {2, "Wall 27", 19390, FURNITURE_CATEGORY_WALLS}, {2, "Wall 28", 19391, FURNITURE_CATEGORY_WALLS}, {2, "Wall 29", 19392, FURNITURE_CATEGORY_WALLS}, {2, "Wall 30", 19393, FURNITURE_CATEGORY_WALLS}, {2, "Wall 31", 19394, FURNITURE_CATEGORY_WALLS}, {2, "Wall 32", 19395, FURNITURE_CATEGORY_WALLS}, {2, "Wall 33", 19399, FURNITURE_CATEGORY_WALLS}, {2, "Wall 34", 19400, FURNITURE_CATEGORY_WALLS}, {2, "Wall 35", 19401, FURNITURE_CATEGORY_WALLS}, {2, "Wall 36", 19402, FURNITURE_CATEGORY_WALLS}, {2, "Wall 37", 19403, FURNITURE_CATEGORY_WALLS}, {2, "Wall 38", 19404, FURNITURE_CATEGORY_WALLS}, {2, "Wall 39", 19405, FURNITURE_CATEGORY_WALLS}, {2, "Wall 40", 19406, FURNITURE_CATEGORY_WALLS}, {2, "Wall 41", 19407, FURNITURE_CATEGORY_WALLS}, {2, "Wall 42", 19408, FURNITURE_CATEGORY_WALLS}, {2, "Wall 43", 19409, FURNITURE_CATEGORY_WALLS}, {2, "Wall 44", 19410, FURNITURE_CATEGORY_WALLS}, {2, "Wall 45", 19447, FURNITURE_CATEGORY_WALLS}, {2, "Wall 46", 19445, FURNITURE_CATEGORY_WALLS}, {2, "Wall 47", 19446, FURNITURE_CATEGORY_WALLS}, {2, "Wall 48", 19447, FURNITURE_CATEGORY_WALLS}, {2, "Wall 49", 19448, FURNITURE_CATEGORY_WALLS}, {2, "Wall 50", 19449, FURNITURE_CATEGORY_WALLS}, {2, "Wall 51", 19450, FURNITURE_CATEGORY_WALLS}, {2, "Wall 52", 19451, FURNITURE_CATEGORY_WALLS}, {3, "Wall 53", 19452, FURNITURE_CATEGORY_WALLS}, {2, "Wall 54", 19453, FURNITURE_CATEGORY_WALLS}, {2, "Wall 55", 19454, FURNITURE_CATEGORY_WALLS}, {2, "Wall 56", 19455, FURNITURE_CATEGORY_WALLS}, {2, "Wall 57", 19456, FURNITURE_CATEGORY_WALLS}, {2, "Wall 58", 19457, FURNITURE_CATEGORY_WALLS}, {2, "Wall 59", 19458, FURNITURE_CATEGORY_WALLS}, {2, "Wall 60", 19459, FURNITURE_CATEGORY_WALLS}, {2, "Wall 61", 19460, FURNITURE_CATEGORY_WALLS}, {2, "Wall 62", 19461, FURNITURE_CATEGORY_WALLS}, {2, "Wall 63", 19462, FURNITURE_CATEGORY_WALLS}, {2, "Wall 64", 19463, FURNITURE_CATEGORY_WALLS}, {2, "Wall 65 (Thin)", 19426, FURNITURE_CATEGORY_WALLS}, {2, "Wall 66 (Thin)", 19427, FURNITURE_CATEGORY_WALLS}, {2, "Wall 67 (Thin)", 19428, FURNITURE_CATEGORY_WALLS}, {2, "Wall 68 (Thin)", 19429, FURNITURE_CATEGORY_WALLS}, {2, "Wall 69 (Thin)", 19430, FURNITURE_CATEGORY_WALLS}, {2, "Wall 70 (Thin)", 19431, FURNITURE_CATEGORY_WALLS}, {2, "Wall 71 (Thin)", 19432, FURNITURE_CATEGORY_WALLS}, {2, "Wall 72 (Thin)", 19433, FURNITURE_CATEGORY_WALLS}, {2, "Wall 73 (Thin)", 19434, FURNITURE_CATEGORY_WALLS}, {2, "Wall 74 (Thin)", 19435, FURNITURE_CATEGORY_WALLS}, {2, "Wall 75 (Thin)", 19436, FURNITURE_CATEGORY_WALLS}, {2, "Wall 76 (Thin)", 19437, FURNITURE_CATEGORY_WALLS}, {2, "Wall 77 (Thin)", 19438, FURNITURE_CATEGORY_WALLS}, {2, "Wall 78 (Thin)", 19439, FURNITURE_CATEGORY_WALLS}, {2, "Wall 79 (Thin)", 19440, FURNITURE_CATEGORY_WALLS}, {2, "Wall 80 (Thin)", 19441, FURNITURE_CATEGORY_WALLS}, {2, "Wall 81 (Thin)", 19442, FURNITURE_CATEGORY_WALLS}, {2, "Wall 82 (Thin)", 19443, FURNITURE_CATEGORY_WALLS}, {2, "Wall 83 (Thin)", 19444, FURNITURE_CATEGORY_WALLS}, {3, "Floor 1 (Big)", 19462, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 2 (Big)", 19458, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 3 (Big)", 19452, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 4 (Big)", 19448, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 5 (Single)", 19439, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 6 (Single)", 19433, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 7 (Single)", 19429, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 8 (Window)", 19412, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 9 (Window)", 19406, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 10 (Window)", 19402, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 11 (Doorway)", 19386, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 12 (Small)", 19379, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 13 (Small)", 19378, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 14 (Small)", 19376, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 15 (Small)", 19375, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 16 (Small)", 19366, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 17 (Small)", 19360, FURNITURE_CATEGORY_FLOORS}, {3, "Floor 18 (Small)", 19356, FURNITURE_CATEGORY_FLOORS}, {4, "Large Wood Door", 977, FURNITURE_CATEGORY_DOORS}, {4, "Wood Door", 1491, FURNITURE_CATEGORY_DOORS}, {4, "Green Wood Door", 1492, FURNITURE_CATEGORY_DOORS}, {4, "Red Screen Door", 1493, FURNITURE_CATEGORY_DOORS}, {4, "Shitty Door", 1494, FURNITURE_CATEGORY_DOORS}, {4, "2 Screen Door", 1495, FURNITURE_CATEGORY_DOORS}, {4, "Barred Store Door", 1496, FURNITURE_CATEGORY_DOORS}, {4, "X Wood Door", 1497, FURNITURE_CATEGORY_DOORS}, {4, "White Door", 1498, FURNITURE_CATEGORY_DOORS}, {4, "Steel Door", 1499, FURNITURE_CATEGORY_DOORS}, {4, "Store Push Door", 1500, FURNITURE_CATEGORY_DOORS}, {4, "Door 12", 1501, FURNITURE_CATEGORY_DOORS}, {4, "Door 13", 1502, FURNITURE_CATEGORY_DOORS}, {4, "Door 14", 1504, FURNITURE_CATEGORY_DOORS}, {4, "Door 15", 1505, FURNITURE_CATEGORY_DOORS}, {4, "Door 16", 1506, FURNITURE_CATEGORY_DOORS}, {4, "Door 17", 1507, FURNITURE_CATEGORY_DOORS}, {4, "Door 18 (Double)", 1508, FURNITURE_CATEGORY_DOORS}, {4, "Door 19", 1522, FURNITURE_CATEGORY_DOORS}, {4, "Door 20", 1523, FURNITURE_CATEGORY_DOORS}, {4, "Door 21", 1532, FURNITURE_CATEGORY_DOORS}, {4, "Door 22", 1533, FURNITURE_CATEGORY_DOORS}, {4, "Door 23", 1535, FURNITURE_CATEGORY_DOORS}, {4, "Door 24", 1536, FURNITURE_CATEGORY_DOORS}, {4, "Door 25", 1537, FURNITURE_CATEGORY_DOORS}, {4, "Door 26", 1538, FURNITURE_CATEGORY_DOORS}, {4, "Door 27", 1555, FURNITURE_CATEGORY_DOORS}, {4, "Door 28", 1556, FURNITURE_CATEGORY_DOORS}, {4, "Door 29", 1557, FURNITURE_CATEGORY_DOORS}, {4, "Door 30", 1560, FURNITURE_CATEGORY_DOORS}, {4, "Door 31", 1561, FURNITURE_CATEGORY_DOORS}, {4, "Door 32", 1566, FURNITURE_CATEGORY_DOORS}, {4, "Door 33", 1567, FURNITURE_CATEGORY_DOORS}, {4, "Door 34", 1569, FURNITURE_CATEGORY_DOORS}, {4, "Door 35 (Vault)", 2634, FURNITURE_CATEGORY_DOORS}, {4, "Door 36", 2664, FURNITURE_CATEGORY_DOORS}, {4, "Door 37", 2873, FURNITURE_CATEGORY_DOORS}, {4, "Door 38", 2875, FURNITURE_CATEGORY_DOORS}, {4, "Door 39", 2876, FURNITURE_CATEGORY_DOORS}, {4, "Door 40", 2877, FURNITURE_CATEGORY_DOORS}, {4, "Door 41", 2878, FURNITURE_CATEGORY_DOORS}, {4, "Door 42", 2879, FURNITURE_CATEGORY_DOORS}, {4, "Door 43", 2924, FURNITURE_CATEGORY_DOORS}, {4, "Door 44 (Ship Door)", 2944, FURNITURE_CATEGORY_DOORS}, {4, "Door 45", 2946, FURNITURE_CATEGORY_DOORS}, {4, "Door 46", 2947, FURNITURE_CATEGORY_DOORS}, {4, "Door 47", 2948, FURNITURE_CATEGORY_DOORS}, {4, "Door 48", 2955, FURNITURE_CATEGORY_DOORS}, {4, "Door 49", 2959, FURNITURE_CATEGORY_DOORS}, {4, "Door 50", 2970, FURNITURE_CATEGORY_DOORS}, {4, "Door 51", 2987, FURNITURE_CATEGORY_DOORS}, {4, "Door 52", 3029, FURNITURE_CATEGORY_DOORS}, {4, "Door 53", 3061, FURNITURE_CATEGORY_DOORS}, {4, "Door 54", 3089, FURNITURE_CATEGORY_DOORS}, {4, "Door 55", 3093, FURNITURE_CATEGORY_DOORS}, {4, "Door 56", 3109, FURNITURE_CATEGORY_DOORS}, {4, "Door 57 (Double Green)", 11714, FURNITURE_CATEGORY_DOORS}, {4, "Door 58", 14819, FURNITURE_CATEGORY_DOORS}, {4, "Door 59 (Cell 1)", 19302, FURNITURE_CATEGORY_DOORS}, {4, "Door 60 (Cell 2)", 19303, FURNITURE_CATEGORY_DOORS}, {4, "Door 61", 19796, FURNITURE_CATEGORY_DOORS}, {4, "Door 62", 19802, FURNITURE_CATEGORY_DOORS}, {4, "Door 63", 19857, FURNITURE_CATEGORY_DOORS}, {4, "Door 64", 19858, FURNITURE_CATEGORY_DOORS}, {4, "Door 65", 19859, FURNITURE_CATEGORY_DOORS}, {4, "Door 66", 19860, FURNITURE_CATEGORY_DOORS}, {4, "Door 67", 19875, FURNITURE_CATEGORY_DOORS}, {5, "Rug 1 (Round)", 2835, FURNITURE_CATEGORY_MISC}, {5, "Rug 2 (Round)", 2841, FURNITURE_CATEGORY_MISC}, {5, "Rug 3", 2847, FURNITURE_CATEGORY_MISC}, {5, "Rug 4", 2842, FURNITURE_CATEGORY_MISC}, {5, "Rug 5", 2836, FURNITURE_CATEGORY_MISC}, {5, "Rug 6", 2833, FURNITURE_CATEGORY_MISC}, {5, "Rug 7", 2834, FURNITURE_CATEGORY_MISC}, {5, "Rug 8", 2818, FURNITURE_CATEGORY_MISC}, {5, "Rug 9", 2817, FURNITURE_CATEGORY_MISC}, {5, "Rug 10", 2815, FURNITURE_CATEGORY_MISC}, {5, "Picture 1", 2255, FURNITURE_CATEGORY_MISC}, {5, "Picture 2", 2258, FURNITURE_CATEGORY_MISC}, {5, "Picture 3", 2259, FURNITURE_CATEGORY_MISC}, {5, "Picture 4", 2260, FURNITURE_CATEGORY_MISC}, {5, "Picture 5", 2261, FURNITURE_CATEGORY_MISC}, {5, "Picture 6", 2262, FURNITURE_CATEGORY_MISC}, {5, "Picture 7", 2263, FURNITURE_CATEGORY_MISC}, {5, "Picture 8", 2264, FURNITURE_CATEGORY_MISC}, {5, "Picture 9", 2265, FURNITURE_CATEGORY_MISC}, {5, "Picture 10", 2266, FURNITURE_CATEGORY_MISC}, {5, "Picture 11", 2267, FURNITURE_CATEGORY_MISC}, {5, "Picture 12", 2268, FURNITURE_CATEGORY_MISC}, {5, "Picture 13", 2269, FURNITURE_CATEGORY_MISC}, {5, "Picture 14", 2270, FURNITURE_CATEGORY_MISC}, {5, "Picture 15", 2271, FURNITURE_CATEGORY_MISC}, {5, "Picture 16", 2272, FURNITURE_CATEGORY_MISC}, {5, "Picture 17", 2273, FURNITURE_CATEGORY_MISC}, {5, "Picture 18", 2274, FURNITURE_CATEGORY_MISC}, {5, "Picture 19", 2275, FURNITURE_CATEGORY_MISC}, {5, "Picture 20", 2276, FURNITURE_CATEGORY_MISC}, {5, "Picture 21", 2277, FURNITURE_CATEGORY_MISC}, {5, "Picture 22", 2278, FURNITURE_CATEGORY_MISC}, {5, "Picture 23", 2279, FURNITURE_CATEGORY_MISC}, {5, "Picture 24", 2280, FURNITURE_CATEGORY_MISC}, {5, "Picture 25", 2281, FURNITURE_CATEGORY_MISC}, {5, "Picture 26", 2282, FURNITURE_CATEGORY_MISC}, {5, "Picture 27", 2283, FURNITURE_CATEGORY_MISC}, {5, "Picture 28", 2284, FURNITURE_CATEGORY_MISC}, {5, "Picture 29", 2285, FURNITURE_CATEGORY_MISC}, {5, "Picture 30", 2286, FURNITURE_CATEGORY_MISC}, {5, "Picture 31", 2287, FURNITURE_CATEGORY_MISC}, {5, "Picture 32", 2288, FURNITURE_CATEGORY_MISC}, {5, "Picture 33", 2289, FURNITURE_CATEGORY_MISC}, {5, "Deer Head", 1736, FURNITURE_CATEGORY_MISC}, {5, "Water Dispenser 1", 1808, FURNITURE_CATEGORY_MISC}, {5, "Water Dispenser 2", 2002, FURNITURE_CATEGORY_MISC}, {5, "Safe", 2332, FURNITURE_CATEGORY_MISC}, {5, "Trashcan", 11706, FURNITURE_CATEGORY_MISC}, {5, "Cigarette Pack 1", 19896, FURNITURE_CATEGORY_MISC}, {5, "Cigarette Pack 2", 19897, FURNITURE_CATEGORY_MISC}, {5, "Skateboard", 19878, FURNITURE_CATEGORY_MISC}, {5, "Ashtray", 1510, FURNITURE_CATEGORY_MISC}, {5, "Ashtray w/ cigar", 1665, FURNITURE_CATEGORY_MISC}, {5, "Target 1", 2049, FURNITURE_CATEGORY_MISC}, {5, "Target 2", 2050, FURNITURE_CATEGORY_MISC}, {5, "Target 3", 2051, FURNITURE_CATEGORY_MISC}, {5, "Handgun Poster", 2055, FURNITURE_CATEGORY_MISC}, {5, "Used Bullseye Target", 2056, FURNITURE_CATEGORY_MISC}, {5, "Toy Airplanes", 2486, FURNITURE_CATEGORY_MISC}, {5, "Toy Trains", 2474, FURNITURE_CATEGORY_MISC}, {5, "Toy Trains (Box)", 2471, FURNITURE_CATEGORY_MISC}, {5, "Lock with chain", 2680, FURNITURE_CATEGORY_MISC}, {5, "Cluckin Bell Trashcan", 2770, FURNITURE_CATEGORY_MISC}, {6, "Grove St Graffiti", 18659, FURNITURE_CATEGORY_GRAF}, {6, "Seville BLVD Graffiti", 18660, FURNITURE_CATEGORY_GRAF}, {6, "Varrio Los Aztecas Graffiti", 18661, FURNITURE_CATEGORY_GRAF}, {6, "Kilo Tray Graffiti", 18662, FURNITURE_CATEGORY_GRAF}, {6, "San Fiero Rifa Graffiti", 18663, FURNITURE_CATEGORY_GRAF}, {6, "Temple Drive Graffiti", 18664, FURNITURE_CATEGORY_GRAF}, {6, "Los Santos Vagos Graffiti", 18665, FURNITURE_CATEGORY_GRAF}, {6, "Front Yard Graffiti", 18666, FURNITURE_CATEGORY_GRAF}, {6, "Rollin Heights Graffiti", 18667, FURNITURE_CATEGORY_GRAF}, {6, "USA Flag (Double)", 2614, FURNITURE_CATEGORY_GRAF}, {6, "Blue Flag", 19307, FURNITURE_CATEGORY_GRAF}, {6, "Red Flag", 19306, FURNITURE_CATEGORY_GRAF}, {6, "Confederate Flag", 2048, FURNITURE_CATEGORY_GRAF}, {6, "LS Defense Flag", 2047, FURNITURE_CATEGORY_GRAF}, {7, "Green Long Stairs", 3399, FURNITURE_CATEGORY_STAIRS}, {7, "Carter Stairs 4", 14411, FURNITURE_CATEGORY_STAIRS}, {7, "Carter Stairs 3", 14410, FURNITURE_CATEGORY_STAIRS}, {7, "Small Wooden Ladder", 1472, FURNITURE_CATEGORY_STAIRS}, {7, "Large Staircase", 13749, FURNITURE_CATEGORY_STAIRS}, {8, "Security Camera", 1886, FURNITURE_CATEGORY_ELEC}, {8, "Small Blue Cellphone", 2966, FURNITURE_CATEGORY_ELEC}, {8, "Black Cellphone", 2967, FURNITURE_CATEGORY_ELEC}, {8, "SNES", 1718, FURNITURE_CATEGORY_ELEC}, {8, "Game Console", 1719, FURNITURE_CATEGORY_ELEC}, {8, "Wooden TV 1", 1747, FURNITURE_CATEGORY_ELEC}, {8, "Wooden TV 2", 1748, FURNITURE_CATEGORY_ELEC}, {8, "Wooden TV 3", 2317, FURNITURE_CATEGORY_ELEC}, {8, "Wooden TV 4", 2320, FURNITURE_CATEGORY_ELEC}, {8, "Wooden TV 5", 1429, FURNITURE_CATEGORY_ELEC}, {8, "Small Black TV", 1749, FURNITURE_CATEGORY_ELEC}, {8, "Thin Wooden TV", 1750, FURNITURE_CATEGORY_ELEC}, {8, "Dark Gray TV", 1751, FURNITURE_CATEGORY_ELEC}, {8, "Black Television 1", 1518, FURNITURE_CATEGORY_ELEC}, {8, "Black Television 2", 1752, FURNITURE_CATEGORY_ELEC}, {8, "Black Television 3 (Wide)", 1786, FURNITURE_CATEGORY_ELEC}, {8, "Black Television 4", 1791, FURNITURE_CATEGORY_ELEC}, {8, "Black Television 5 (Thin)", 1792, FURNITURE_CATEGORY_ELEC}, {8, "Black Television 6 (Wide)", 2312, FURNITURE_CATEGORY_ELEC}, {8, "Black Television 7", 2316, FURNITURE_CATEGORY_ELEC}, {8, "Black Television 8", 2318, FURNITURE_CATEGORY_ELEC}, {8, "Black Television 9", 2596, FURNITURE_CATEGORY_ELEC}, {8, "Black Television 10", 2595, FURNITURE_CATEGORY_ELEC}, {8, "Black Television 11", 2648, FURNITURE_CATEGORY_ELEC}, {8, "Black Television 12", 2700, FURNITURE_CATEGORY_ELEC}, {8, "Black Television 13", 14772, FURNITURE_CATEGORY_ELEC}, {8, "Gray TV 1", 1781, FURNITURE_CATEGORY_ELEC}, {8, "Gray TV 2", 2322, FURNITURE_CATEGORY_ELEC}, {8, "Orange Sphere TV", 2224, FURNITURE_CATEGORY_ELEC}, {8, "TV and Entertainment Center", 2296, FURNITURE_CATEGORY_ELEC}, {8, "LCD TV 1", 19786, FURNITURE_CATEGORY_ELEC}, {8, "LCD TV 2", 19786, FURNITURE_CATEGORY_ELEC}, {8, "VCR 1", 1782, FURNITURE_CATEGORY_ELEC}, {8, "VCR 2", 1783, FURNITURE_CATEGORY_ELEC}, {8, "VCR 3", 1785, FURNITURE_CATEGORY_ELEC}, {8, "VCR 4", 1787, FURNITURE_CATEGORY_ELEC}, {8, "VCR 5", 1788, FURNITURE_CATEGORY_ELEC}, {8, "VCR 6", 1790, FURNITURE_CATEGORY_ELEC}, {8, "Hi-Fi System (Black)", 1809, FURNITURE_CATEGORY_ELEC}, {8, "Hi-Fi System (Gray)", 1839, FURNITURE_CATEGORY_ELEC}, {8, "Hi-Fi System On Wheels", 2225, FURNITURE_CATEGORY_ELEC}, {8, "Hi-Fi System On Stand", 2227, FURNITURE_CATEGORY_ELEC}, {8, "Black Game Console", 2028, FURNITURE_CATEGORY_ELEC}, {8, "Turntable", 2099, FURNITURE_CATEGORY_ELEC}, {8, "Big Wooden Hi-Fi System", 2100, FURNITURE_CATEGORY_ELEC}, {8, "Big Hi-Fi System", 2101, FURNITURE_CATEGORY_ELEC}, {8, "Boombox 1", 2102, FURNITURE_CATEGORY_ELEC}, {8, "Boombox 2", 2103, FURNITURE_CATEGORY_ELEC}, {8, "Boombox 3", 2226, FURNITURE_CATEGORY_ELEC}, {8, "Tall Hi-Fi System", 2104, FURNITURE_CATEGORY_ELEC}, {8, "White PC and Monitor", 2190, FURNITURE_CATEGORY_ELEC}, {8, "Desk and Computer", 11631, FURNITURE_CATEGORY_ELEC}, {8, "Arcade Machine 1", 2681, FURNITURE_CATEGORY_ELEC}, {8, "Arcade Machine 2", 2778, FURNITURE_CATEGORY_ELEC}, {8, "Arcade Machine 3", 2779, FURNITURE_CATEGORY_ELEC}, {8, "Arcade Machine 4", 2872, FURNITURE_CATEGORY_ELEC}, {8, "White Fan", 2192, FURNITURE_CATEGORY_ELEC}, {8, "Office Printer 1", 2201, FURNITURE_CATEGORY_ELEC}, {8, "Office Printer 2", 2202, FURNITURE_CATEGORY_ELEC}, {8, "Photocopier", 2186, FURNITURE_CATEGORY_ELEC}, {8, "Tall Speaker", 2229, FURNITURE_CATEGORY_ELEC}, {8, "Tall Wooden Speaker", 2230, FURNITURE_CATEGORY_ELEC}, {8, "Small Wooden Speaker", 2231, FURNITURE_CATEGORY_ELEC}, {8, "Black Speaker", 2232, FURNITURE_CATEGORY_ELEC}, {8, "Speaker", 1840, FURNITURE_CATEGORY_ELEC}, {8, "Tall Gray Speaker", 2233, FURNITURE_CATEGORY_ELEC}, {8, "Chair and Speakers", 11665, FURNITURE_CATEGORY_ELEC}, {8, "TV Remote", 2344, FURNITURE_CATEGORY_ELEC}, {8, "TV Remote 2", 19920, FURNITURE_CATEGORY_ELEC}, {8, "Sprunk Fridge", 2452, FURNITURE_CATEGORY_ELEC}, {8, "Black Telephone", 11705, FURNITURE_CATEGORY_ELEC}, {8, "Fancy House Phone", 11728, FURNITURE_CATEGORY_ELEC}, {8, "White House Phone", 19807, FURNITURE_CATEGORY_ELEC}, {8, "TV and VCR on Stand", 14532, FURNITURE_CATEGORY_ELEC}, {8, "Black TV and VCR on Stand", 16377, FURNITURE_CATEGORY_ELEC}, {8, "Guitar Amp 1", 19612, FURNITURE_CATEGORY_ELEC}, {8, "Guitar Amp 2", 19613, FURNITURE_CATEGORY_ELEC}, {8, "Guitar Amp 3", 19614, FURNITURE_CATEGORY_ELEC}, {8, "Guitar Amp 4", 19615, FURNITURE_CATEGORY_ELEC}, {8, "Guitar Amp 5", 19616, FURNITURE_CATEGORY_ELEC}, {8, "Camera", 19623, FURNITURE_CATEGORY_ELEC}, {8, "Keyboard", 19808, FURNITURE_CATEGORY_ELEC}, {8, "Mixer", 1958, FURNITURE_CATEGORY_ELEC}, {9, "Dark Sofa", 1702, FURNITURE_CATEGORY_SEATS}, {9, "Black Sofa", 1703, FURNITURE_CATEGORY_SEATS}, {9, "Purple Sofa", 1706, FURNITURE_CATEGORY_SEATS}, {9, "Red Sofa", 1707, FURNITURE_CATEGORY_SEATS}, {9, "Long Couch", 1709, FURNITURE_CATEGORY_SEATS}, {9, "Couch", 1710, FURNITURE_CATEGORY_SEATS}, {9, "Small Couch", 1712, FURNITURE_CATEGORY_SEATS}, {9, "Black Couch", 1713, FURNITURE_CATEGORY_SEATS}, {9, "Couch 1", 1753, FURNITURE_CATEGORY_SEATS}, {9, "Couch 2", 1756, FURNITURE_CATEGORY_SEATS}, {9, "Couch 3", 1757, FURNITURE_CATEGORY_SEATS}, {9, "Couch 4", 1760, FURNITURE_CATEGORY_SEATS}, {9, "Couch 5", 1761, FURNITURE_CATEGORY_SEATS}, {9, "Couch 6", 1763, FURNITURE_CATEGORY_SEATS}, {9, "Couch 7", 1764, FURNITURE_CATEGORY_SEATS}, {9, "Couch 8", 1766, FURNITURE_CATEGORY_SEATS}, {9, "Couch 9", 1768, FURNITURE_CATEGORY_SEATS}, {9, "Couch 10", 2290, FURNITURE_CATEGORY_SEATS}, {9, "Chair 1", 1754, FURNITURE_CATEGORY_SEATS}, {9, "Chair 2", 1755, FURNITURE_CATEGORY_SEATS}, {9, "Chair 3", 1758, FURNITURE_CATEGORY_SEATS}, {9, "Chair 4", 1759, FURNITURE_CATEGORY_SEATS}, {9, "Chair 5", 1762, FURNITURE_CATEGORY_SEATS}, {9, "Chair 6", 1765, FURNITURE_CATEGORY_SEATS}, {9, "Chair 7", 1767, FURNITURE_CATEGORY_SEATS}, {9, "Chair 8", 1769, FURNITURE_CATEGORY_SEATS}, {9, "Chair 9", 2291, FURNITURE_CATEGORY_SEATS}, {9, "Chair 10", 2292, FURNITURE_CATEGORY_SEATS}, {9, "Beanbag", 2295, FURNITURE_CATEGORY_SEATS}, {9, "2 Chairs and Table", 2571, FURNITURE_CATEGORY_SEATS}, {9, "2 White Chairs and Table", 2572, FURNITURE_CATEGORY_SEATS}, {9, "2 Small Chairs and Table", 2617, FURNITURE_CATEGORY_SEATS}, {9, "Long Black Couch", 3921, FURNITURE_CATEGORY_SEATS}, {9, "Orange Couch", 11717, FURNITURE_CATEGORY_SEATS}, {9, "Desk Chair 1", 1663, FURNITURE_CATEGORY_SEATS}, {9, "Desk Chair 2", 1671, FURNITURE_CATEGORY_SEATS}, {9, "Desk Chair 3", 1714, FURNITURE_CATEGORY_SEATS}, {9, "Desk Chair 4", 1715, FURNITURE_CATEGORY_SEATS}, {9, "Desk Chair 5", 1806, FURNITURE_CATEGORY_SEATS}, {9, "Desk Chair 6", 2356, FURNITURE_CATEGORY_SEATS}, {9, "Desk Chair 7", 19999, FURNITURE_CATEGORY_SEATS}, {9, "Chair 11", 1704, FURNITURE_CATEGORY_SEATS}, {9, "Chair 12", 1705, FURNITURE_CATEGORY_SEATS}, {9, "Chair 13", 1708, FURNITURE_CATEGORY_SEATS}, {9, "Chair 14", 1711, FURNITURE_CATEGORY_SEATS}, {9, "Chair 15", 1721, FURNITURE_CATEGORY_SEATS}, {9, "Chair 16", 1722, FURNITURE_CATEGORY_SEATS}, {9, "Kitchen Chair", 1720, FURNITURE_CATEGORY_SEATS}, {9, "Kitchen Chair 2", 1739, FURNITURE_CATEGORY_SEATS}, {9, "Kitchen Chair 3", 1811, FURNITURE_CATEGORY_SEATS}, {9, "Kitchen Chair 4", 2079, FURNITURE_CATEGORY_SEATS}, {9, "Kitchen Chair 5", 2120, FURNITURE_CATEGORY_SEATS}, {9, "Kitchen Chair 6", 2123, FURNITURE_CATEGORY_SEATS}, {9, "Kitchen Chair 7", 2124, FURNITURE_CATEGORY_SEATS}, {9, "Kitchen Chair 8", 2309, FURNITURE_CATEGORY_SEATS}, {9, "Kitchen Chair 9", 2310, FURNITURE_CATEGORY_SEATS}, {9, "Kitchen Chair 10", 2636, FURNITURE_CATEGORY_SEATS}, {9, "Folding Chair", 1810, FURNITURE_CATEGORY_SEATS}, {9, "Folding Chair 2", 2121, FURNITURE_CATEGORY_SEATS}, {9, "Folding Chair 3", 19996, FURNITURE_CATEGORY_SEATS}, {9, "Stool", 1716, FURNITURE_CATEGORY_SEATS}, {9, "Stool 2", 1805, FURNITURE_CATEGORY_SEATS}, {9, "Stool 3", 2125, FURNITURE_CATEGORY_SEATS}, {9, "Stool 4", 2723, FURNITURE_CATEGORY_SEATS}, {9, "Stool 5", 2725, FURNITURE_CATEGORY_SEATS}, {9, "Stool 6", 11687, FURNITURE_CATEGORY_SEATS}, {9, "Couch Piece 1", 11682, FURNITURE_CATEGORY_SEATS}, {9, "Couch Piece 2", 11683, FURNITURE_CATEGORY_SEATS}, {9, "Couch Piece 3", 11684, FURNITURE_CATEGORY_SEATS}, {9, "Couch Piece 4", 11685, FURNITURE_CATEGORY_SEATS}, {10, "GLASS TABLE", 2024, FURNITURE_CATEGORY_TABLES}, {10, "TABLE W/UMBRELLA", 1281, FURNITURE_CATEGORY_TABLES}, {10, "TABLE W/CHAIRS", 1432, FURNITURE_CATEGORY_TABLES}, {10, "CHESS TABLE", 1594, FURNITURE_CATEGORY_TABLES}, {10, "ELEGANT TABLE", 1827, FURNITURE_CATEGORY_TABLES}, {10, "ROOM TABLE", 1433, FURNITURE_CATEGORY_TABLES}, {10, "ROOM TABLE 2", 1516, FURNITURE_CATEGORY_TABLES}, {10, "LIVING ROOM TABLE", 2126, FURNITURE_CATEGORY_TABLES}, {10, "KITCHEN TABLE 1", 2334, FURNITURE_CATEGORY_TABLES}, {10, "KITCHEN TABLE 2", 2335, FURNITURE_CATEGORY_TABLES}, {10, "KITCHEN TABLE 3", 2336, FURNITURE_CATEGORY_TABLES}, {10, "KITCHEN TABLE 4", 2338, FURNITURE_CATEGORY_TABLES}, {10, "TV STAND", 2311, FURNITURE_CATEGORY_TABLES}, {10, "TV STAND 2", 2314, FURNITURE_CATEGORY_TABLES}, {10, "TV STAND 3", 2313, FURNITURE_CATEGORY_TABLES}, {10, "TV STAND 4", 2315, FURNITURE_CATEGORY_TABLES}, {10, "TABLE", 2319, FURNITURE_CATEGORY_TABLES}, {10, "TABLE 2", 2321, FURNITURE_CATEGORY_TABLES}, {10, "DRESSER", 2323, FURNITURE_CATEGORY_TABLES}, {10, "SMALL CABINET", 2328, FURNITURE_CATEGORY_TABLES}, {10, "KITCHEN CABINET 2", 2424, FURNITURE_CATEGORY_TABLES}, {10, "CORNER KITCHEN CABINET 2", 2423, FURNITURE_CATEGORY_TABLES}, {10, "KITCHEN BENCH 3", 2441, FURNITURE_CATEGORY_TABLES}, {10, "KITCHEN BENCH CORNER 3", 2442, FURNITURE_CATEGORY_TABLES}, {10, "KITCHEN 4", 2455, FURNITURE_CATEGORY_TABLES}, {10, "KITCHEN CORNER 4", 2454, FURNITURE_CATEGORY_TABLES}, {10, "RED KITCHEN", 2128, FURNITURE_CATEGORY_TABLES}, {10, "RED KITCHEN 2", 2128, FURNITURE_CATEGORY_TABLES}, {10, "WOODEN KITCHEN", 2136, FURNITURE_CATEGORY_TABLES}, {10, "WOODEN KITCHEN 2", 2139, FURNITURE_CATEGORY_TABLES}, {10, "WOOD KITCHEN 3", 2140, FURNITURE_CATEGORY_TABLES}, {10, "HI FI TABLE", 2346, FURNITURE_CATEGORY_TABLES}, {10, "LONG TABLE", 2357, FURNITURE_CATEGORY_TABLES}, {10, "TV COUNTER", 2368, FURNITURE_CATEGORY_TABLES}, {10, "SIMPLE TABLE", 2370, FURNITURE_CATEGORY_TABLES}, {10, "SMALL PIZZA TABLE", 2635, FURNITURE_CATEGORY_TABLES}, {10, "BIG PIZZA TABLE", 2637, FURNITURE_CATEGORY_TABLES}, {10, "RED TABLE", 2762, FURNITURE_CATEGORY_TABLES}, {10, "BLACK TABLE WITH CHAIRS", 2799, FURNITURE_CATEGORY_TABLES}, {10, "WHITE TABLES WITH RED CHAIRS", 1968, FURNITURE_CATEGORY_TABLES}, {10, "WHITE TABLE WITH RED CHAIR", 1969, FURNITURE_CATEGORY_TABLES}, {10, "SILVER SURFACE, WOOD EDGES", 936, FURNITURE_CATEGORY_TABLES}, {10, "THREE SHELVES.", 937, FURNITURE_CATEGORY_TABLES}, {10, "CRACK FACTORY TABLE", 941, FURNITURE_CATEGORY_TABLES}, {10, "GRAY DESK", 19929, FURNITURE_CATEGORY_TABLES}, {10, "LAB DESK", 3393, FURNITURE_CATEGORY_TABLES}, {10, "LAB DESK 2", 3391, FURNITURE_CATEGORY_TABLES}, {10, "WHITE DESK (NO COLLISION)", 1963, FURNITURE_CATEGORY_TABLES}, {10, "SQUARE TABLE", 2112, FURNITURE_CATEGORY_TABLES}, {10, "MIDDLE WOOD TABLE", 2117, FURNITURE_CATEGORY_TABLES} }; /*enum E_CALLSIGN_INFO { Callsign[90] } static const g_CallsignData[][E_CALLSIGN_INFO] = { {"STAFF 1"}, {"STAFF 2"}, {"STAFF 3"}, {"8-ADAM-10"}, {"8-ADAM-20"}, {"8-ADAM-11"}, {"8-ADAM-12"}, {"8-ADAM-13"}, {"8-ADAM-14"}, {"8-ADAM-15"}, {"8-ADAM-16"}, {"8-LINCOLN-10"}, {"8-LINCOLN-20"}, {"8-LINCOLN-11"}, {"8-LINCOLN-12"}, {"8-LINCOLN-13"}, {"8-LINCOLN-14"}, {"8-LINCOLN-15"}, {"8-LINCOLN-16"}, {"12-ADAM-10"}, {"12-ADAM-20"}, {"12-ADAM-11"}, {"12-ADAM-12"}, {"12-ADAM-13"}, {"12-ADAM-14"}, {"12-ADAM-15"}, {"12-ADAM-16"}, {"12-LINCOLN-10"}, {"12-LINCOLN-20"}, {"12-LINCOLN-11"}, {"12-LINCOLN-12"}, {"12-LINCOLN-13"}, {"12-LINCOLN-14"}, {"12-LINCOLN-15"}, {"12-LINCOLN-16"}, {"25-TOM-10"}, {"25-TOM-11"}, {"25-TOM-12"}, {"25-TOM-13"}, {"25-TOM-14"}, {"25-MARY-11"}, {"25-MARY-12"}, {"25-MARY-13"}, {"25-MARY-14"}, {"34-TOM-10"}, {"34-TOM-11"}, {"34-TOM-12"}, {"34-TOM-13"}, {"34-TOM-14"}, {"34-MARY-11"}, {"34-MARY-12"}, {"34-MARY-13"}, {"34-MARY-14"}, {"10-DAVID"}, {"20-DAVID"}, {"30-DAVID"}, {"40-DAVID"}, {"AIR 1"}, {"AIR 2"}, {"4-KING-10"}, {"4-KING-11"}, {"4-KING-12"}, {"5-KING-10"}, {"5-KING-11"}, {"5-KING-12"}, {"5-GEORGE-10"}, {"5-GEORGE-11"}, {"5-GEORGE-12"}, {"ROBERT 1C"}, {"ROBERT 1K"}, {"ROBERT 2C"}, {"ROBERT 2K"}, {"ROBERT 3C"}, {"ROBERT 3K"}, {"ROBERT 4C"}, {"ROBERT 4K"}, {"ROBERT 5C"}, {"ROBERT 5K"} };*/ enum E_SIRENS_INFO { SirenForModel, Float:PosX, Float:PosY, Float:PosZ } new g_SirenPresets[][E_SIRENS_INFO] = { {596, 0.0, -1.75, 0.35}, //LSPD {598, 0.0, -1.5, 0.35}, //LVPD {490, -0.5, 0.5, 1.15}, //FBI RANCHER {560, -0.45, 0.25, 0.85}, //SULTAN {426, -0.45, 0.0, 0.875}, //PREMIER {541, 0.0, 0.6, 0.35}, //BULLET {402, 0.0, 0.55, 0.3}, //BUFFALO {579, 0.0, 0.6, 0.6}, // HUNTLEY {413, 0.0, 0.65, 1.2}, //PONY {597, 0.0, -1.75, 0.35}, //SFPD {415, 0.0, 0.65, 0.2}, //CHEETAH {445, 0.004999, 0.739999, 0.309999}, //ADMIRAL {421, 0.000000, 0.799999, 0.239999}, //WASHINGTON {599, 0.0, 0.65, 0.5}, //POLICE RANGER {427, 0.0, 1.655, 0.7}, //ENFORCER {405, 0.0, 0.7, 0.25}, //SENTINEL {482, -0.5, 0.6, 0.95}, //BURRITO {457, -0.3, 0.3, 1.35}, //CADDY {525, 0.0, -0.449999, 1.425000}, //TOWTRUCK {407, -0.0, -3.01, 1.350000}, //FIRETRUCK {544, 0.0, 2.850001, 1.500000}, //FIRETRUCK LADDER {416, 0.0, -3.525001, 1.350000}, //AMBULANCE {552, 0.0, 0.65, 1.375}, //UTILITY {554, 0.0, 0.0, 1.049999} //YOSEMITE }; enum E_FUELSTATIONS_INFO { Float:PosX, Float:PosY, Float:PosZ } new g_FuelStations[][E_FUELSTATIONS_INFO] = { {1938.4384, -1772.9103, 13.3828}, {1004.2288, -939.6199, 42.1797}, {652.9380, -570.4348, 16.3359}, {653.1918, -559.8961, 16.3359}, {1381.2953, 457.8216, 19.9517}, {605.2136, 1704.8694, 6.9922}, {608.6473, 1700.0106, 6.9922}, {612.3318, 1694.4545, 6.9922}, {615.6635, 1689.9880, 6.9922}, {618.5643, 1684.9275, 6.9922}, {622.1896, 1679.8921, 6.9922}, {1541.4110, -2173.9783, 13.5532} }; enum E_INTERIOR_DATA { IntName[60], IntID, Float:IntPosX, Float:IntPosY, Float:IntPosZ } new Interiors[][E_INTERIOR_DATA] = { {"24/7 #1", 17, -25.884498, -185.868988, 1003.546875}, {"24/7 #2", 10, 6.091179, -29.271898, 1003.549438}, {"24/7 #3", 18, -30.946699, -89.609596, 1003.546875}, {"24/7 #4", 16, -25.132598, -139.066986, 1003.546875}, {"24/7 #5", 4, -27.312299, -29.277599, 1003.557250}, {"24/7 #6", 5, -26.691598, -55.714897, 1003.546875}, {"Airport ticket desk", 14, -1827.147338, 7.207417, 1061.143554}, {"Airport baggage reclaim", 14, -1861.936889, 54.908092, 1061.143554}, {"Shamal", 1, 1.808619, 32.384357, 1199.593750}, {"Andromada", 9, 315.745086, 984.969299, 1958.919067}, {"Ammunation 1", 1, 286.148986, -40.644397, 1001.515625}, {"Ammunation 2", 4, 286.800994,-82.547599,1001.515625}, {"Ammunation 3", 6, 296.919982,-108.071998,1001.515625}, {"Ammunation 4", 7, 314.820983,-141.431991,999.601562}, {"Ammunation 5", 6, 316.524993,-167.706985,999.593750}, {"Ammunation booths", 7, 302.292877,-143.139099,1004.062500}, {"Ammunation range", 7, 298.507934,-141.647048,1004.054748}, {"Blastin fools hallway", 3, 1038.531372,0.111030,1001.284484}, {"Budget inn motel room", 12, 444.646911,508.239044,1001.419494}, {"Jefferson motel", 15, 2215.454833,-1147.475585,1025.796875}, {"Off track betting shop", 3, 833.269775,10.588416,1004.179687}, {"Sex shop", 3, -103.559165,-24.225606,1000.718750}, {"Meat factory", 1, 963.418762,2108.292480,1011.030273}, {"Zero's RC shop", 6, -2240.468505,137.060440,1035.414062}, {"Dillimore gas station", 0, 663.836242,-575.605407,16.343263}, {"Catigula's basement", 1, 2169.461181,1618.798339,999.976562}, {"FDC Janitors room", 10, 1889.953369,1017.438293,31.882812}, {"Woozie's office", 1, -2159.122802, 641.517517, 1052.381713}, {"Binco", 15, 207.737991, -109.019996, 1005.132812}, {"Didier sachs", 14, 204.332992, -166.694992, 1000.523437}, {"Prolaps", 3, 207.054992, -138.804992, 1003.507812}, {"Suburban", 1, 203.777999, -48.492397, 1001.804687}, {"Victim", 5, 226.293991, -7.431529, 1002.210937}, {"Zip", 18, 161.391006, -93.159156, 1001.804687}, {"Club", 17, 493.390991, -22.722799, 1000.679687}, {"Bar", 1, 501.980987, -69.150199, 998.757812}, {"Lil' probe inn", 18, -227.027999, 1401.229980, 27.765625}, {"Jay's diner", 4, 457.304748, -88.428497, 999.554687}, {"Gant bridge diner", 5, 454.973937, -110.104995, 1000.077209}, {"Secret valley diner", 6, 435.271331, -80.958938, 999.554687}, {"World of coq", 1, 452.489990, -18.179698, 1001.132812}, {"Welcome pump", 1, 681.557861, -455.680053, -25.609874}, {"Burger shot", 10, 375.962463, -65.816848, 1001.507812}, {"Cluckin' bell", 9, 369.579528, -4.487294, 1001.858886}, {"Well stacked pizza", 5, 373.825653, -117.270904, 1001.499511}, {"Rusty browns donuts", 17, 381.169189, -188.803024, 1000.632812}, {"Denise room", 1, 244.411987, 305.032989, 999.148437}, {"Katie room", 2, 271.884979, 306.631988, 999.148437}, {"Helena room", 3, 291.282989, 310.031982, 999.148437}, {"Michelle room", 4, 302.180999, 300.722991, 999.148437}, {"Barbara room", 5, 322.197998, 302.497985, 999.148437}, {"Millie room", 6, 346.870025, 309.259033, 999.155700}, {"Sherman dam", 17, -959.564392, 1848.576782, 9.000000}, {"Planning dept.", 3, 384.808624,173.804992,1008.382812}, {"Area 51", 0, 223.431976, 1872.400268, 13.734375}, {"LS gym", 5, 772.111999, -3.898649, 1000.728820}, {"SF gym", 6, 774.213989, -48.924297, 1000.585937}, {"LV gym", 7, 773.579956, -77.096694, 1000.655029}, {"B Dup's house", 3, 1527.229980, -11.574499, 1002.097106}, {"B Dup's crack pad", 2, 1523.509887, -47.821197, 1002.130981}, {"Cj's house", 3, 2496.049804, -1695.238159, 1014.742187}, {"Madd Doggs mansion", 5, 1267.663208, -781.323242, 1091.906250}, {"Og Loc's house", 3, 513.882507, -11.269994, 1001.565307}, {"Ryders house", 2, 2454.717041, -1700.871582, 1013.515197}, {"Sweet's house", 1, 2527.654052, -1679.388305, 1015.498596}, {"Crack factory", 2, 2543.462646, -1308.379882, 1026.728393}, {"Big spread ranch", 3, 1212.019897, -28.663099, 1000.953125}, {"Fanny batters", 6, 761.412963, 1440.191650, 1102.703125}, {"Strip club", 2, 1204.809936, -11.586799, 1000.921875}, {"Strip club private room", 2, 1204.809936, 13.897239, 1000.921875}, {"Unnamed brothel", 3, 942.171997, -16.542755, 1000.929687}, {"Tiger skin brothel", 3, 964.106994, -53.205497, 1001.124572}, {"Pleasure domes", 3, -2640.762939, 1406.682006, 906.460937}, {"Liberty city outside", 1, -729.276000, 503.086944, 1371.971801}, {"Liberty city inside", 1, -794.806396, 497.738037, 1376.195312}, {"Gang house", 5, 2350.339843, -1181.649902, 1027.976562}, {"Colonel Furhberger's", 8, 2807.619873, -1171.899902, 1025.570312}, {"Crack den", 5, 318.564971, 1118.209960, 1083.882812}, {"Warehouse 1", 1, 1412.639892, -1.787510, 1000.924377}, {"Warehouse 2", 18, 1302.519897,-1.787510,1001.028259}, {"Sweets garage", 0, 2522.000000,-1673.383911,14.866223}, {"Lil' probe inn toilet", 18, -221.059051,1408.984008,27.773437}, {"Unused safe house", 12, 2324.419921, -1145.568359, 1050.710083}, {"RC Battlefield ", 10, -975.975708, 1060.983032, 1345.671875}, {"Barber 1", 2, 411.625976, -21.433298, 1001.804687}, {"Barber 2", 3, 418.652984, -82.639793, 1001.804687}, {"Barber 3", 12, 412.021972, -52.649898, 1001.898437}, {"Tattoo parlor 1", 16, -204.439987, -26.453998, 1002.273437}, {"Tattoo parlor 2", 17, -204.439987, -8.469599, 1002.273437}, {"Tattoo parlor 3", 3, -204.439987, -43.652496, 1002.273437}, {"LS police HQ", 6, 246.783996, 63.900199, 1003.640625}, {"SF police HQ", 10, 246.375991, 109.245994, 1003.218750}, {"LV police HQ", 3, 288.745971, 169.350997, 1007.171875}, {"Car school", 3, -2029.798339, -106.675910, 1035.171875}, {"8-Track", 7, -1398.065307, -217.028900, 1051.115844}, {"Bloodbowl", 15, -1398.103515, 937.631164, 1036.479125}, {"Dirt track", 4, -1444.645507, -664.526000, 1053.572998}, {"Kickstart", 14, -1465.268676, 1557.868286, 1052.531250}, {"Vice stadium", 1, -1401.829956, 107.051300, 1032.273437}, {"SF Garage", 0, -1790.378295, 1436.949829, 7.187500}, {"LS Garage", 0, 1643.839843, -1514.819580, 13.566620}, {"SF Bomb shop", 0, -1685.636474, 1035.476196, 45.210937}, {"Blueberry warehouse", 0, 76.632553, -301.156829, 1.578125}, {"LV Warehouse 1", 0, 1059.895996, 2081.685791, 10.820312}, {"LV Warehouse 2 (hidden part)", 0, 1059.180175, 2148.938720, 10.820312}, {"Catigula's hidden room", 1, 2131.507812, 1600.818481, 1008.359375}, {"Bank", 0, 2315.952880, -1.618174, 26.742187}, {"Bank (behind desk)", 0, 2319.714843, -14.838361, 26.749565}, {"LS Atruim", 18, 1710.433715, -1669.379272, 20.225049}, {"Bike School", 3, 1494.325195, 1304.942871, 1093.289062}, {"Custom police HQ", 0, -236.1195, 144.9929, -53.8010}, {"Custom bank 1", 6, 1456.6346, -988.0356, 996.1050}, {"Custom bank 2", 0, -554.9476, 1782.2751, 1392.4731}, {"Complex 1", 0, 1990.2488, 1116.5715, 22.5186}, {"Complex 2", 0, 397.9061, 517.4778, 990.7277}, {"Complex 3", 0, 160.5634, 2485.5669,- 88.9141}, {"Studio Apartments", 0, 232.4190, 241.8836, 999.2313}, {"Mafia Bar", 0, 1930.5273, -2081.4336, 788.1960}, {"Custom House 1", 0, 2434.8584, -1622.6749, 1568.9280}, {"Custom House 2", 0, 1378.2780, -820.4017, 1092.3500}, {"Custom Restaurant", 0, -1794.6632, 1230.5464, 20.6711}, {"Custom Apartment", 0, 1697.4037,-1417.4551,37.3089}, {"Ghetto Bar", 0, 2588.5774, -1643.9049, 1358.4089}, {"Custom Bar", 0, 1299.3857, -880.3571, 2003.4534}, {"Small Apartment", 0, 1780.7344, -1443.6942, 1359.5919}, {"Prison", 0, 2574.9233, -1474.8563, -48.8995}, {"Hospital", 0, -204.5169, -1735.5739, 675.7687}, {"Modern House 1", 0, 243.4072, -1851.5687, 3333.9329}, {"Modern House 2", 0, 1245.2904, -1118.4497, 3458.9070}, {"Government Interior", 0, 1481.2892, -1779.5699, 1815.9910}, {"Police Department 1", 0, 2593.2646, -1201.2382, 1516.2271}, {"Police Department 2", 0, 230.9149, 79.2698, 1043.4009}, {"Police Department 3", 0, 1554.4457, -1671.8848, -40.5941}, {"Small House", 0, 669.4931, -1691.1508, -25.7441} }; static const PossibleWeapons[][E_ORDER_DATA] = { {"Colt", 22}, {"Taurus", 22}, {"Browning", 22}, {"Deagle", 24}, {"Desert Eagle", 24}, {"Glock", 24}, {"Smith & Wesson", 24}, {"Smith and Wesson", 24}, {"Ruger", 24}, {"Beretta", 24}, {"CZ", 24}, {"FN", 24}, {"HK", 24}, {"Heckler & Koch", 24}, {"Heckler and Koch", 24}, {"Ithaca", 24}, {"Kel-Tec", 24}, {"Kriss", 24}, {"Sig Sauer", 24}, {"Springfield", 24}, {"Shotgun", 25}, {"Mossberg", 25}, {"Remington", 25}, {"Tec-9", 32}, {"Intratec", 32}, {"AB-10", 32} }; static const g_aRoadblocks[][E_ROADBLOCK_INFO] = { {"Short Barrier", 1949}, {"Shorter Barrier", 1459}, {"Traffic Barrier", 1282}, {"Detour Sign", 1425}, {"Track Barrier", 3091}, {"Large Barrier", 981}, {"Road Barrier", 1237}, {"Shorter Barrier", 1459}, {"Road Barrier 2", 1424}, {"Traffic Cone", 1238}, {"Police Tape", 19834}, {"Large Spikes", 2892}, {"Short Spikes", 2899} }; static const PossibleDropSpots[][E_ORDERLOCATION_DATA] = { {814.1916, -564.4401, 16.3359}, {1059.9880, -289.0486, 73.9922}, {2153.2617, -101.1982, 2.6570}, {2327.9292, 574.3517, 7.7813}, {-1481.0472, 2630.8008, 58.7813}, {-2827.8799, -1522.5027, 139.1632}, {1063.8962, 2271.0144, 10.8126}, {-539.9781, 2592.9333, 53.4154}, {-788.0873, 2420.7778, 157.1281}, {-376.3968, 1520.2499, 75.5625}, {-1366.9153, 2058.7578, 52.6534}, {-2287.1592, 2283.9688, 4.9724}, {-2988.5286, 472.0439, 4.9141}, {-1630.1023, -2242.4648, 31.4766}, {-416.8673, -1761.4701, 5.6762}, {258.8456, 2889.9907, 11.1991}, {2454.3835, 2806.2183, 10.8203}, {-1913.6975, -1675.6669, 23.0156}, {-1432.3746, -964.3013, 200.9599}, {-545.1014, -74.3072, 62.8594}, {191.2636, 1403.4678, 10.5859}, {1248.1340, 207.7558, 23.0555}, {2268.3137, -2570.4019, 8.3603}, {-1977.8420, 455.9144, 28.3573}, {-1805.8313, 1304.8137, 50.4453} }; new GunObjectIDs[200] = { 1575, 331, 333, 334, 335, 336, 337, 338, 339, 341, 321, 322, 323, 324, 325, 326, 342, 343, 344, -1, -1, -1, 346, 347, 348, 349, 350, 351, 352, 353, 355, 356, 372, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 1575 }; static const VehicleColoursTableRGBA[256] = { 0x000000FF, 0xF5F5F5FF, 0x2A77A1FF, 0x840410FF, 0x263739FF, 0x86446EFF, 0xD78E10FF, 0x4C75B7FF, 0xBDBEC6FF, 0x5E7072FF, 0x46597AFF, 0x656A79FF, 0x5D7E8DFF, 0x58595AFF, 0xD6DAD6FF, 0x9CA1A3FF, 0x335F3FFF, 0x730E1AFF, 0x7B0A2AFF, 0x9F9D94FF, 0x3B4E78FF, 0x732E3EFF, 0x691E3BFF, 0x96918CFF, 0x515459FF, 0x3F3E45FF, 0xA5A9A7FF, 0x635C5AFF, 0x3D4A68FF, 0x979592FF, 0x421F21FF, 0x5F272BFF, 0x8494ABFF, 0x767B7CFF, 0x646464FF, 0x5A5752FF, 0x252527FF, 0x2D3A35FF, 0x93A396FF, 0x6D7A88FF, 0x221918FF, 0x6F675FFF, 0x7C1C2AFF, 0x5F0A15FF, 0x193826FF, 0x5D1B20FF, 0x9D9872FF, 0x7A7560FF, 0x989586FF, 0xADB0B0FF, 0x848988FF, 0x304F45FF, 0x4D6268FF, 0x162248FF, 0x272F4BFF, 0x7D6256FF, 0x9EA4ABFF, 0x9C8D71FF, 0x6D1822FF, 0x4E6881FF, 0x9C9C98FF, 0x917347FF, 0x661C26FF, 0x949D9FFF, 0xA4A7A5FF, 0x8E8C46FF, 0x341A1EFF, 0x6A7A8CFF, 0xAAAD8EFF, 0xAB988FFF, 0x851F2EFF, 0x6F8297FF, 0x585853FF, 0x9AA790FF, 0x601A23FF, 0x20202CFF, 0xA4A096FF, 0xAA9D84FF, 0x78222BFF, 0x0E316DFF, 0x722A3FFF, 0x7B715EFF, 0x741D28FF, 0x1E2E32FF, 0x4D322FFF, 0x7C1B44FF, 0x2E5B20FF, 0x395A83FF, 0x6D2837FF, 0xA7A28FFF, 0xAFB1B1FF, 0x364155FF, 0x6D6C6EFF, 0x0F6A89FF, 0x204B6BFF, 0x2B3E57FF, 0x9B9F9DFF, 0x6C8495FF, 0x4D8495FF, 0xAE9B7FFF, 0x406C8FFF, 0x1F253BFF, 0xAB9276FF, 0x134573FF, 0x96816CFF, 0x64686AFF, 0x105082FF, 0xA19983FF, 0x385694FF, 0x525661FF, 0x7F6956FF, 0x8C929AFF, 0x596E87FF, 0x473532FF, 0x44624FFF, 0x730A27FF, 0x223457FF, 0x640D1BFF, 0xA3ADC6FF, 0x695853FF, 0x9B8B80FF, 0x620B1CFF, 0x5B5D5EFF, 0x624428FF, 0x731827FF, 0x1B376DFF, 0xEC6AAEFF, 0x000000FF, 0x177517FF, 0x210606FF, 0x125478FF, 0x452A0DFF, 0x571E1EFF, 0x010701FF, 0x25225AFF, 0x2C89AAFF, 0x8A4DBDFF, 0x35963AFF, 0xB7B7B7FF, 0x464C8DFF, 0x84888CFF, 0x817867FF, 0x817A26FF, 0x6A506FFF, 0x583E6FFF, 0x8CB972FF, 0x824F78FF, 0x6D276AFF, 0x1E1D13FF, 0x1E1306FF, 0x1F2518FF, 0x2C4531FF, 0x1E4C99FF, 0x2E5F43FF, 0x1E9948FF, 0x1E9999FF, 0x999976FF, 0x7C8499FF, 0x992E1EFF, 0x2C1E08FF, 0x142407FF, 0x993E4DFF, 0x1E4C99FF, 0x198181FF, 0x1A292AFF, 0x16616FFF, 0x1B6687FF, 0x6C3F99FF, 0x481A0EFF, 0x7A7399FF, 0x746D99FF, 0x53387EFF, 0x222407FF, 0x3E190CFF, 0x46210EFF, 0x991E1EFF, 0x8D4C8DFF, 0x805B80FF, 0x7B3E7EFF, 0x3C1737FF, 0x733517FF, 0x781818FF, 0x83341AFF, 0x8E2F1CFF, 0x7E3E53FF, 0x7C6D7CFF, 0x020C02FF, 0x072407FF, 0x163012FF, 0x16301BFF, 0x642B4FFF, 0x368452FF, 0x999590FF, 0x818D96FF, 0x99991EFF, 0x7F994CFF, 0x839292FF, 0x788222FF, 0x2B3C99FF, 0x3A3A0BFF, 0x8A794EFF, 0x0E1F49FF, 0x15371CFF, 0x15273AFF, 0x375775FF, 0x060820FF, 0x071326FF, 0x20394BFF, 0x2C5089FF, 0x15426CFF, 0x103250FF, 0x241663FF, 0x692015FF, 0x8C8D94FF, 0x516013FF, 0x090F02FF, 0x8C573AFF, 0x52888EFF, 0x995C52FF, 0x99581EFF, 0x993A63FF, 0x998F4EFF, 0x99311EFF, 0x0D1842FF, 0x521E1EFF, 0x42420DFF, 0x4C991EFF, 0x082A1DFF, 0x96821DFF, 0x197F19FF, 0x3B141FFF, 0x745217FF, 0x893F8DFF, 0x7E1A6CFF, 0x0B370BFF, 0x27450DFF, 0x071F24FF, 0x784573FF, 0x8A653AFF, 0x732617FF, 0x319490FF, 0x56941DFF, 0x59163DFF, 0x1B8A2FFF, 0x38160BFF, 0x041804FF, 0x355D8EFF, 0x2E3F5BFF, 0x561A28FF, 0x4E0E27FF, 0x706C67FF, 0x3B3E42FF, 0x2E2D33FF, 0x7B7E7DFF, 0x4A4442FF, 0x28344EFF }; new PlatePossible[][] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; static const g_aPreloadLibs[][] = { "AIRPORT", "ATTRACTORS", "BAR", "BASEBALL", "BD_FIRE", "BEACH", "BENCHPRESS", "BF_INJECTION", "BIKE_DBZ", "BIKED", "BIKEH", "BIKELEAP", "BIKES", "BIKEV", "BLOWJOBZ", "BMX", "BOMBER", "BOX", "BSKTBALL", "BUDDY", "BUS", "CAMERA", "CAR", "CAR_CHAT", "CARRY", "CASINO", "CHAINSAW", "CHOPPA", "CLOTHES", "COACH", "COLT45", "COP_AMBIENT", "COP_DVBYZ", "CRACK", "CRIB", "DAM_JUMP", "DANCING", "DEALER", "DILDO", "DODGE", "DOZER", "DRIVEBYS", "FAT", "FIGHT_B", "FIGHT_C", "FIGHT_D", "FIGHT_E", "FINALE", "FINALE2", "FLAME", "FLOWERS", "FOOD", "FREEWEIGHTS", "GANGS", "GFUNK", "GHANDS", "GHETTO_DB", "GOGGLES", "GRAFFITI", "GRAVEYARD", "GRENADE", "GYMNASIUM", "HAIRCUTS", "HEIST9", "INT_HOUSE", "INT_OFFICE", "INT_SHOP", "JST_BUISNESS", "KART", "KISSING", "KNIFE", "LAPDAN1", "LAPDAN2", "LAPDAN3", "LOWRIDER", "MD_CHASE", "MD_END", "MEDIC", "MISC", "MTB", "MUSCULAR", "NEVADA", "ON_LOOKERS", "OTB", "PARACHUTE", "PARK", "PAULNMAC", "PED", "PLAYER_DVBYS", "PLAYIDLES", "POLICE", "POOL", "POOR", "PYTHON", "QUAD", "QUAD_DBZ", "RAPPING", "RIFLE", "RIOT", "ROB_BANK", "ROCKET", "RUNNINGMAN", "RUSTLER", "RYDER", "SCRATCHING", "SEX", "SHAMAL", "SHOP", "SHOTGUN", "SILENCED", "SKATE", "SMOKING", "SNIPER", "SNM", "SPRAYCAN", "STRIP", "SUNBATHE", "SWAT", "SWEET", "SWIM", "SWORD", "TANK", "TATTOOS", "TEC", "TRAIN", "TRUCK", "UZI", "VAN", "VENDING", "VORTEX", "WAYFARER", "WEAPONS", "WOP", "WUZI" }; static const gSAZones[][SAZONE_MAIN] = { // Majority of names and area coordinates adopted from Mabako's 'Zones Script' v0.2 // NAME AREA (Xmin,Ymin,Zmin,Xmax,Ymax,Zmax) {"The Big Ear", {-410.00,1403.30,-3.00,-137.90,1681.20,200.00}}, {"Aldea Malvada", {-1372.10,2498.50,0.00,-1277.50,2615.30,200.00}}, {"Angel Pine", {-2324.90,-2584.20,-6.10,-1964.20,-2212.10,200.00}}, {"Arco del Oeste", {-901.10,2221.80,0.00,-592.00,2571.90,200.00}}, {"Avispa Country Club", {-2646.40,-355.40,0.00,-2270.00,-222.50,200.00}}, {"Avispa Country Club", {-2831.80,-430.20,-6.10,-2646.40,-222.50,200.00}}, {"Avispa Country Club", {-2361.50,-417.10,0.00,-2270.00,-355.40,200.00}}, {"Avispa Country Club", {-2667.80,-302.10,-28.80,-2646.40,-262.30,71.10}}, {"Avispa Country Club", {-2470.00,-355.40,0.00,-2270.00,-318.40,46.10}}, {"Avispa Country Club", {-2550.00,-355.40,0.00,-2470.00,-318.40,39.70}}, {"Back o Beyond", {-1166.90,-2641.10,0.00,-321.70,-1856.00,200.00}}, {"Battery Point", {-2741.00,1268.40,-4.50,-2533.00,1490.40,200.00}}, {"Bayside", {-2741.00,2175.10,0.00,-2353.10,2722.70,200.00}}, {"Bayside Marina", {-2353.10,2275.70,0.00,-2153.10,2475.70,200.00}}, {"Beacon Hill", {-399.60,-1075.50,-1.40,-319.00,-977.50,198.50}}, {"Blackfield", {964.30,1203.20,-89.00,1197.30,1403.20,110.90}}, {"Blackfield", {964.30,1403.20,-89.00,1197.30,1726.20,110.90}}, {"Blackfield Chapel", {1375.60,596.30,-89.00,1558.00,823.20,110.90}}, {"Blackfield Chapel", {1325.60,596.30,-89.00,1375.60,795.00,110.90}}, {"Blackfield Intersection", {1197.30,1044.60,-89.00,1277.00,1163.30,110.90}}, {"Blackfield Intersection", {1166.50,795.00,-89.00,1375.60,1044.60,110.90}}, {"Blackfield Intersection", {1277.00,1044.60,-89.00,1315.30,1087.60,110.90}}, {"Blackfield Intersection", {1375.60,823.20,-89.00,1457.30,919.40,110.90}}, {"Blueberry", {104.50,-220.10,2.30,349.60,152.20,200.00}}, {"Blueberry", {19.60,-404.10,3.80,349.60,-220.10,200.00}}, {"Blueberry Acres", {-319.60,-220.10,0.00,104.50,293.30,200.00}}, {"Caligula's Palace", {2087.30,1543.20,-89.00,2437.30,1703.20,110.90}}, {"Caligula's Palace", {2137.40,1703.20,-89.00,2437.30,1783.20,110.90}}, {"Calton Heights", {-2274.10,744.10,-6.10,-1982.30,1358.90,200.00}}, {"Chinatown", {-2274.10,578.30,-7.60,-2078.60,744.10,200.00}}, {"City Hall", {-2867.80,277.40,-9.10,-2593.40,458.40,200.00}}, {"Come-A-Lot", {2087.30,943.20,-89.00,2623.10,1203.20,110.90}}, {"Commerce", {1323.90,-1842.20,-89.00,1701.90,-1722.20,110.90}}, {"Commerce", {1323.90,-1722.20,-89.00,1440.90,-1577.50,110.90}}, {"Commerce", {1370.80,-1577.50,-89.00,1463.90,-1384.90,110.90}}, {"Commerce", {1463.90,-1577.50,-89.00,1667.90,-1430.80,110.90}}, {"Commerce", {1583.50,-1722.20,-89.00,1758.90,-1577.50,110.90}}, {"Commerce", {1667.90,-1577.50,-89.00,1812.60,-1430.80,110.90}}, {"Conference Center", {1046.10,-1804.20,-89.00,1323.90,-1722.20,110.90}}, {"Conference Center", {1073.20,-1842.20,-89.00,1323.90,-1804.20,110.90}}, {"Cranberry Station", {-2007.80,56.30,0.00,-1922.00,224.70,100.00}}, {"Creek", {2749.90,1937.20,-89.00,2921.60,2669.70,110.90}}, {"Dillimore", {580.70,-674.80,-9.50,861.00,-404.70,200.00}}, {"Doherty", {-2270.00,-324.10,-0.00,-1794.90,-222.50,200.00}}, {"Doherty", {-2173.00,-222.50,-0.00,-1794.90,265.20,200.00}}, {"Downtown", {-1982.30,744.10,-6.10,-1871.70,1274.20,200.00}}, {"Downtown", {-1871.70,1176.40,-4.50,-1620.30,1274.20,200.00}}, {"Downtown", {-1700.00,744.20,-6.10,-1580.00,1176.50,200.00}}, {"Downtown", {-1580.00,744.20,-6.10,-1499.80,1025.90,200.00}}, {"Downtown", {-2078.60,578.30,-7.60,-1499.80,744.20,200.00}}, {"Downtown", {-1993.20,265.20,-9.10,-1794.90,578.30,200.00}}, {"Downtown Los Santos", {1463.90,-1430.80,-89.00,1724.70,-1290.80,110.90}}, {"Downtown Los Santos", {1724.70,-1430.80,-89.00,1812.60,-1250.90,110.90}}, {"Downtown Los Santos", {1463.90,-1290.80,-89.00,1724.70,-1150.80,110.90}}, {"Downtown Los Santos", {1370.80,-1384.90,-89.00,1463.90,-1170.80,110.90}}, {"Downtown Los Santos", {1724.70,-1250.90,-89.00,1812.60,-1150.80,110.90}}, {"Downtown Los Santos", {1370.80,-1170.80,-89.00,1463.90,-1130.80,110.90}}, {"Downtown Los Santos", {1378.30,-1130.80,-89.00,1463.90,-1026.30,110.90}}, {"Downtown Los Santos", {1391.00,-1026.30,-89.00,1463.90,-926.90,110.90}}, {"Downtown Los Santos", {1507.50,-1385.20,110.90,1582.50,-1325.30,335.90}}, {"East Beach", {2632.80,-1852.80,-89.00,2959.30,-1668.10,110.90}}, {"East Beach", {2632.80,-1668.10,-89.00,2747.70,-1393.40,110.90}}, {"East Beach", {2747.70,-1668.10,-89.00,2959.30,-1498.60,110.90}}, {"East Beach", {2747.70,-1498.60,-89.00,2959.30,-1120.00,110.90}}, {"East Los Santos", {2421.00,-1628.50,-89.00,2632.80,-1454.30,110.90}}, {"East Los Santos", {2222.50,-1628.50,-89.00,2421.00,-1494.00,110.90}}, {"East Los Santos", {2266.20,-1494.00,-89.00,2381.60,-1372.00,110.90}}, {"East Los Santos", {2381.60,-1494.00,-89.00,2421.00,-1454.30,110.90}}, {"East Los Santos", {2281.40,-1372.00,-89.00,2381.60,-1135.00,110.90}}, {"East Los Santos", {2381.60,-1454.30,-89.00,2462.10,-1135.00,110.90}}, {"East Los Santos", {2462.10,-1454.30,-89.00,2581.70,-1135.00,110.90}}, {"Easter Basin", {-1794.90,249.90,-9.10,-1242.90,578.30,200.00}}, {"Easter Basin", {-1794.90,-50.00,-0.00,-1499.80,249.90,200.00}}, {"Easter Bay Airport", {-1499.80,-50.00,-0.00,-1242.90,249.90,200.00}}, {"Easter Bay Airport", {-1794.90,-730.10,-3.00,-1213.90,-50.00,200.00}}, {"Easter Bay Airport", {-1213.90,-730.10,0.00,-1132.80,-50.00,200.00}}, {"Easter Bay Airport", {-1242.90,-50.00,0.00,-1213.90,578.30,200.00}}, {"Easter Bay Airport", {-1213.90,-50.00,-4.50,-947.90,578.30,200.00}}, {"Easter Bay Airport", {-1315.40,-405.30,15.40,-1264.40,-209.50,25.40}}, {"Easter Bay Airport", {-1354.30,-287.30,15.40,-1315.40,-209.50,25.40}}, {"Easter Bay Airport", {-1490.30,-209.50,15.40,-1264.40,-148.30,25.40}}, {"Easter Bay Chemicals", {-1132.80,-768.00,0.00,-956.40,-578.10,200.00}}, {"Easter Bay Chemicals", {-1132.80,-787.30,0.00,-956.40,-768.00,200.00}}, {"El Castillo del Diablo", {-464.50,2217.60,0.00,-208.50,2580.30,200.00}}, {"El Castillo del Diablo", {-208.50,2123.00,-7.60,114.00,2337.10,200.00}}, {"El Castillo del Diablo", {-208.50,2337.10,0.00,8.40,2487.10,200.00}}, {"El Corona", {1812.60,-2179.20,-89.00,1970.60,-1852.80,110.90}}, {"El Corona", {1692.60,-2179.20,-89.00,1812.60,-1842.20,110.90}}, {"El Quebrados", {-1645.20,2498.50,0.00,-1372.10,2777.80,200.00}}, {"Esplanade East", {-1620.30,1176.50,-4.50,-1580.00,1274.20,200.00}}, {"Esplanade East", {-1580.00,1025.90,-6.10,-1499.80,1274.20,200.00}}, {"Esplanade East", {-1499.80,578.30,-79.60,-1339.80,1274.20,20.30}}, {"Esplanade North", {-2533.00,1358.90,-4.50,-1996.60,1501.20,200.00}}, {"Esplanade North", {-1996.60,1358.90,-4.50,-1524.20,1592.50,200.00}}, {"Esplanade North", {-1982.30,1274.20,-4.50,-1524.20,1358.90,200.00}}, {"Fallen Tree", {-792.20,-698.50,-5.30,-452.40,-380.00,200.00}}, {"Fallow Bridge", {434.30,366.50,0.00,603.00,555.60,200.00}}, {"Fern Ridge", {508.10,-139.20,0.00,1306.60,119.50,200.00}}, {"Financial", {-1871.70,744.10,-6.10,-1701.30,1176.40,300.00}}, {"Fisher's Lagoon", {1916.90,-233.30,-100.00,2131.70,13.80,200.00}}, {"Flint Intersection", {-187.70,-1596.70,-89.00,17.00,-1276.60,110.90}}, {"Flint Range", {-594.10,-1648.50,0.00,-187.70,-1276.60,200.00}}, {"Fort Carson", {-376.20,826.30,-3.00,123.70,1220.40,200.00}}, {"Foster Valley", {-2270.00,-430.20,-0.00,-2178.60,-324.10,200.00}}, {"Foster Valley", {-2178.60,-599.80,-0.00,-1794.90,-324.10,200.00}}, {"Foster Valley", {-2178.60,-1115.50,0.00,-1794.90,-599.80,200.00}}, {"Foster Valley", {-2178.60,-1250.90,0.00,-1794.90,-1115.50,200.00}}, {"Frederick Bridge", {2759.20,296.50,0.00,2774.20,594.70,200.00}}, {"Gant Bridge", {-2741.40,1659.60,-6.10,-2616.40,2175.10,200.00}}, {"Gant Bridge", {-2741.00,1490.40,-6.10,-2616.40,1659.60,200.00}}, {"Ganton", {2222.50,-1852.80,-89.00,2632.80,-1722.30,110.90}}, {"Ganton", {2222.50,-1722.30,-89.00,2632.80,-1628.50,110.90}}, {"Garcia", {-2411.20,-222.50,-0.00,-2173.00,265.20,200.00}}, {"Garcia", {-2395.10,-222.50,-5.30,-2354.00,-204.70,200.00}}, {"Garver Bridge", {-1339.80,828.10,-89.00,-1213.90,1057.00,110.90}}, {"Garver Bridge", {-1213.90,950.00,-89.00,-1087.90,1178.90,110.90}}, {"Garver Bridge", {-1499.80,696.40,-179.60,-1339.80,925.30,20.30}}, {"Glen Park", {1812.60,-1449.60,-89.00,1996.90,-1350.70,110.90}}, {"Glen Park", {1812.60,-1100.80,-89.00,1994.30,-973.30,110.90}}, {"Glen Park", {1812.60,-1350.70,-89.00,2056.80,-1100.80,110.90}}, {"Green Palms", {176.50,1305.40,-3.00,338.60,1520.70,200.00}}, {"Greenglass College", {964.30,1044.60,-89.00,1197.30,1203.20,110.90}}, {"Greenglass College", {964.30,930.80,-89.00,1166.50,1044.60,110.90}}, {"Hampton Barns", {603.00,264.30,0.00,761.90,366.50,200.00}}, {"Hankypanky Point", {2576.90,62.10,0.00,2759.20,385.50,200.00}}, {"Harry Gold Parkway", {1777.30,863.20,-89.00,1817.30,2342.80,110.90}}, {"Hashbury", {-2593.40,-222.50,-0.00,-2411.20,54.70,200.00}}, {"Hilltop Farm", {967.30,-450.30,-3.00,1176.70,-217.90,200.00}}, {"Hunter Quarry", {337.20,710.80,-115.20,860.50,1031.70,203.70}}, {"Idlewood", {1812.60,-1852.80,-89.00,1971.60,-1742.30,110.90}}, {"Idlewood", {1812.60,-1742.30,-89.00,1951.60,-1602.30,110.90}}, {"Idlewood", {1951.60,-1742.30,-89.00,2124.60,-1602.30,110.90}}, {"Idlewood", {1812.60,-1602.30,-89.00,2124.60,-1449.60,110.90}}, {"Idlewood", {2124.60,-1742.30,-89.00,2222.50,-1494.00,110.90}}, {"Idlewood", {1971.60,-1852.80,-89.00,2222.50,-1742.30,110.90}}, {"Jefferson", {1996.90,-1449.60,-89.00,2056.80,-1350.70,110.90}}, {"Jefferson", {2124.60,-1494.00,-89.00,2266.20,-1449.60,110.90}}, {"Jefferson", {2056.80,-1372.00,-89.00,2281.40,-1210.70,110.90}}, {"Jefferson", {2056.80,-1210.70,-89.00,2185.30,-1126.30,110.90}}, {"Jefferson", {2185.30,-1210.70,-89.00,2281.40,-1154.50,110.90}}, {"Jefferson", {2056.80,-1449.60,-89.00,2266.20,-1372.00,110.90}}, {"Julius Thruway East", {2623.10,943.20,-89.00,2749.90,1055.90,110.90}}, {"Julius Thruway East", {2685.10,1055.90,-89.00,2749.90,2626.50,110.90}}, {"Julius Thruway East", {2536.40,2442.50,-89.00,2685.10,2542.50,110.90}}, {"Julius Thruway East", {2625.10,2202.70,-89.00,2685.10,2442.50,110.90}}, {"Julius Thruway North", {2498.20,2542.50,-89.00,2685.10,2626.50,110.90}}, {"Julius Thruway North", {2237.40,2542.50,-89.00,2498.20,2663.10,110.90}}, {"Julius Thruway North", {2121.40,2508.20,-89.00,2237.40,2663.10,110.90}}, {"Julius Thruway North", {1938.80,2508.20,-89.00,2121.40,2624.20,110.90}}, {"Julius Thruway North", {1534.50,2433.20,-89.00,1848.40,2583.20,110.90}}, {"Julius Thruway North", {1848.40,2478.40,-89.00,1938.80,2553.40,110.90}}, {"Julius Thruway North", {1704.50,2342.80,-89.00,1848.40,2433.20,110.90}}, {"Julius Thruway North", {1377.30,2433.20,-89.00,1534.50,2507.20,110.90}}, {"Julius Thruway South", {1457.30,823.20,-89.00,2377.30,863.20,110.90}}, {"Julius Thruway South", {2377.30,788.80,-89.00,2537.30,897.90,110.90}}, {"Julius Thruway West", {1197.30,1163.30,-89.00,1236.60,2243.20,110.90}}, {"Julius Thruway West", {1236.60,2142.80,-89.00,1297.40,2243.20,110.90}}, {"Juniper Hill", {-2533.00,578.30,-7.60,-2274.10,968.30,200.00}}, {"Juniper Hollow", {-2533.00,968.30,-6.10,-2274.10,1358.90,200.00}}, {"K.A.C.C. Military Fuels", {2498.20,2626.50,-89.00,2749.90,2861.50,110.90}}, {"Kincaid Bridge", {-1339.80,599.20,-89.00,-1213.90,828.10,110.90}}, {"Kincaid Bridge", {-1213.90,721.10,-89.00,-1087.90,950.00,110.90}}, {"Kincaid Bridge", {-1087.90,855.30,-89.00,-961.90,986.20,110.90}}, {"King's", {-2329.30,458.40,-7.60,-1993.20,578.30,200.00}}, {"King's", {-2411.20,265.20,-9.10,-1993.20,373.50,200.00}}, {"King's", {-2253.50,373.50,-9.10,-1993.20,458.40,200.00}}, {"LVA Freight Depot", {1457.30,863.20,-89.00,1777.40,1143.20,110.90}}, {"LVA Freight Depot", {1375.60,919.40,-89.00,1457.30,1203.20,110.90}}, {"LVA Freight Depot", {1277.00,1087.60,-89.00,1375.60,1203.20,110.90}}, {"LVA Freight Depot", {1315.30,1044.60,-89.00,1375.60,1087.60,110.90}}, {"LVA Freight Depot", {1236.60,1163.40,-89.00,1277.00,1203.20,110.90}}, {"Las Barrancas", {-926.10,1398.70,-3.00,-719.20,1634.60,200.00}}, {"Las Brujas", {-365.10,2123.00,-3.00,-208.50,2217.60,200.00}}, {"Las Colinas", {1994.30,-1100.80,-89.00,2056.80,-920.80,110.90}}, {"Las Colinas", {2056.80,-1126.30,-89.00,2126.80,-920.80,110.90}}, {"Las Colinas", {2185.30,-1154.50,-89.00,2281.40,-934.40,110.90}}, {"Las Colinas", {2126.80,-1126.30,-89.00,2185.30,-934.40,110.90}}, {"Las Colinas", {2747.70,-1120.00,-89.00,2959.30,-945.00,110.90}}, {"Las Colinas", {2632.70,-1135.00,-89.00,2747.70,-945.00,110.90}}, {"Las Colinas", {2281.40,-1135.00,-89.00,2632.70,-945.00,110.90}}, {"Las Payasadas", {-354.30,2580.30,2.00,-133.60,2816.80,200.00}}, {"Las Venturas Airport", {1236.60,1203.20,-89.00,1457.30,1883.10,110.90}}, {"Las Venturas Airport", {1457.30,1203.20,-89.00,1777.30,1883.10,110.90}}, {"Las Venturas Airport", {1457.30,1143.20,-89.00,1777.40,1203.20,110.90}}, {"Las Venturas Airport", {1515.80,1586.40,-12.50,1729.90,1714.50,87.50}}, {"Last Dime Motel", {1823.00,596.30,-89.00,1997.20,823.20,110.90}}, {"Leafy Hollow", {-1166.90,-1856.00,0.00,-815.60,-1602.00,200.00}}, {"Liberty City", {-1000.00,400.00,1300.00,-700.00,600.00,1400.00}}, {"Lil' Probe Inn", {-90.20,1286.80,-3.00,153.80,1554.10,200.00}}, {"Linden Side", {2749.90,943.20,-89.00,2923.30,1198.90,110.90}}, {"Linden Station", {2749.90,1198.90,-89.00,2923.30,1548.90,110.90}}, {"Linden Station", {2811.20,1229.50,-39.50,2861.20,1407.50,60.40}}, {"Little Mexico", {1701.90,-1842.20,-89.00,1812.60,-1722.20,110.90}}, {"Little Mexico", {1758.90,-1722.20,-89.00,1812.60,-1577.50,110.90}}, {"Los Flores", {2581.70,-1454.30,-89.00,2632.80,-1393.40,110.90}}, {"Los Flores", {2581.70,-1393.40,-89.00,2747.70,-1135.00,110.90}}, {"Los Santos International", {1249.60,-2394.30,-89.00,1852.00,-2179.20,110.90}}, {"Los Santos International", {1852.00,-2394.30,-89.00,2089.00,-2179.20,110.90}}, {"Los Santos International", {1382.70,-2730.80,-89.00,2201.80,-2394.30,110.90}}, {"Los Santos International", {1974.60,-2394.30,-39.00,2089.00,-2256.50,60.90}}, {"Los Santos International", {1400.90,-2669.20,-39.00,2189.80,-2597.20,60.90}}, {"Los Santos International", {2051.60,-2597.20,-39.00,2152.40,-2394.30,60.90}}, {"Marina", {647.70,-1804.20,-89.00,851.40,-1577.50,110.90}}, {"Marina", {647.70,-1577.50,-89.00,807.90,-1416.20,110.90}}, {"Marina", {807.90,-1577.50,-89.00,926.90,-1416.20,110.90}}, {"Market", {787.40,-1416.20,-89.00,1072.60,-1310.20,110.90}}, {"Market", {952.60,-1310.20,-89.00,1072.60,-1130.80,110.90}}, {"Market", {1072.60,-1416.20,-89.00,1370.80,-1130.80,110.90}}, {"Market", {926.90,-1577.50,-89.00,1370.80,-1416.20,110.90}}, {"Market Station", {787.40,-1410.90,-34.10,866.00,-1310.20,65.80}}, {"Martin Bridge", {-222.10,293.30,0.00,-122.10,476.40,200.00}}, {"Missionary Hill", {-2994.40,-811.20,0.00,-2178.60,-430.20,200.00}}, {"Montgomery", {1119.50,119.50,-3.00,1451.40,493.30,200.00}}, {"Montgomery", {1451.40,347.40,-6.10,1582.40,420.80,200.00}}, {"Montgomery Intersection", {1546.60,208.10,0.00,1745.80,347.40,200.00}}, {"Montgomery Intersection", {1582.40,347.40,0.00,1664.60,401.70,200.00}}, {"Mulholland", {1414.00,-768.00,-89.00,1667.60,-452.40,110.90}}, {"Mulholland", {1281.10,-452.40,-89.00,1641.10,-290.90,110.90}}, {"Mulholland", {1269.10,-768.00,-89.00,1414.00,-452.40,110.90}}, {"Mulholland", {1357.00,-926.90,-89.00,1463.90,-768.00,110.90}}, {"Mulholland", {1318.10,-910.10,-89.00,1357.00,-768.00,110.90}}, {"Mulholland", {1169.10,-910.10,-89.00,1318.10,-768.00,110.90}}, {"Mulholland", {768.60,-954.60,-89.00,952.60,-860.60,110.90}}, {"Mulholland", {687.80,-860.60,-89.00,911.80,-768.00,110.90}}, {"Mulholland", {737.50,-768.00,-89.00,1142.20,-674.80,110.90}}, {"Mulholland", {1096.40,-910.10,-89.00,1169.10,-768.00,110.90}}, {"Mulholland", {952.60,-937.10,-89.00,1096.40,-860.60,110.90}}, {"Mulholland", {911.80,-860.60,-89.00,1096.40,-768.00,110.90}}, {"Mulholland", {861.00,-674.80,-89.00,1156.50,-600.80,110.90}}, {"Mulholland Intersection", {1463.90,-1150.80,-89.00,1812.60,-768.00,110.90}}, {"North Rock", {2285.30,-768.00,0.00,2770.50,-269.70,200.00}}, {"Ocean Docks", {2373.70,-2697.00,-89.00,2809.20,-2330.40,110.90}}, {"Ocean Docks", {2201.80,-2418.30,-89.00,2324.00,-2095.00,110.90}}, {"Ocean Docks", {2324.00,-2302.30,-89.00,2703.50,-2145.10,110.90}}, {"Ocean Docks", {2089.00,-2394.30,-89.00,2201.80,-2235.80,110.90}}, {"Ocean Docks", {2201.80,-2730.80,-89.00,2324.00,-2418.30,110.90}}, {"Ocean Docks", {2703.50,-2302.30,-89.00,2959.30,-2126.90,110.90}}, {"Ocean Docks", {2324.00,-2145.10,-89.00,2703.50,-2059.20,110.90}}, {"Ocean Flats", {-2994.40,277.40,-9.10,-2867.80,458.40,200.00}}, {"Ocean Flats", {-2994.40,-222.50,-0.00,-2593.40,277.40,200.00}}, {"Ocean Flats", {-2994.40,-430.20,-0.00,-2831.80,-222.50,200.00}}, {"Octane Springs", {338.60,1228.50,0.00,664.30,1655.00,200.00}}, {"Old Venturas Strip", {2162.30,2012.10,-89.00,2685.10,2202.70,110.90}}, {"Palisades", {-2994.40,458.40,-6.10,-2741.00,1339.60,200.00}}, {"Palomino Creek", {2160.20,-149.00,0.00,2576.90,228.30,200.00}}, {"Paradiso", {-2741.00,793.40,-6.10,-2533.00,1268.40,200.00}}, {"Pershing Square", {1440.90,-1722.20,-89.00,1583.50,-1577.50,110.90}}, {"Pilgrim", {2437.30,1383.20,-89.00,2624.40,1783.20,110.90}}, {"Pilgrim", {2624.40,1383.20,-89.00,2685.10,1783.20,110.90}}, {"Pilson Intersection", {1098.30,2243.20,-89.00,1377.30,2507.20,110.90}}, {"Pirates in Men's Pants", {1817.30,1469.20,-89.00,2027.40,1703.20,110.90}}, {"Playa del Seville", {2703.50,-2126.90,-89.00,2959.30,-1852.80,110.90}}, {"Prickle Pine", {1534.50,2583.20,-89.00,1848.40,2863.20,110.90}}, {"Prickle Pine", {1117.40,2507.20,-89.00,1534.50,2723.20,110.90}}, {"Prickle Pine", {1848.40,2553.40,-89.00,1938.80,2863.20,110.90}}, {"Prickle Pine", {1938.80,2624.20,-89.00,2121.40,2861.50,110.90}}, {"Queens", {-2533.00,458.40,0.00,-2329.30,578.30,200.00}}, {"Queens", {-2593.40,54.70,0.00,-2411.20,458.40,200.00}}, {"Queens", {-2411.20,373.50,0.00,-2253.50,458.40,200.00}}, {"Randolph Industrial Estate", {1558.00,596.30,-89.00,1823.00,823.20,110.90}}, {"Redsands East", {1817.30,2011.80,-89.00,2106.70,2202.70,110.90}}, {"Redsands East", {1817.30,2202.70,-89.00,2011.90,2342.80,110.90}}, {"Redsands East", {1848.40,2342.80,-89.00,2011.90,2478.40,110.90}}, {"Redsands West", {1236.60,1883.10,-89.00,1777.30,2142.80,110.90}}, {"Redsands West", {1297.40,2142.80,-89.00,1777.30,2243.20,110.90}}, {"Redsands West", {1377.30,2243.20,-89.00,1704.50,2433.20,110.90}}, {"Redsands West", {1704.50,2243.20,-89.00,1777.30,2342.80,110.90}}, {"Regular Tom", {-405.70,1712.80,-3.00,-276.70,1892.70,200.00}}, {"Richman", {647.50,-1118.20,-89.00,787.40,-954.60,110.90}}, {"Richman", {647.50,-954.60,-89.00,768.60,-860.60,110.90}}, {"Richman", {225.10,-1369.60,-89.00,334.50,-1292.00,110.90}}, {"Richman", {225.10,-1292.00,-89.00,466.20,-1235.00,110.90}}, {"Richman", {72.60,-1404.90,-89.00,225.10,-1235.00,110.90}}, {"Richman", {72.60,-1235.00,-89.00,321.30,-1008.10,110.90}}, {"Richman", {321.30,-1235.00,-89.00,647.50,-1044.00,110.90}}, {"Richman", {321.30,-1044.00,-89.00,647.50,-860.60,110.90}}, {"Richman", {321.30,-860.60,-89.00,687.80,-768.00,110.90}}, {"Richman", {321.30,-768.00,-89.00,700.70,-674.80,110.90}}, {"Robada Intersection", {-1119.00,1178.90,-89.00,-862.00,1351.40,110.90}}, {"Roca Escalante", {2237.40,2202.70,-89.00,2536.40,2542.50,110.90}}, {"Roca Escalante", {2536.40,2202.70,-89.00,2625.10,2442.50,110.90}}, {"Rockshore East", {2537.30,676.50,-89.00,2902.30,943.20,110.90}}, {"Rockshore West", {1997.20,596.30,-89.00,2377.30,823.20,110.90}}, {"Rockshore West", {2377.30,596.30,-89.00,2537.30,788.80,110.90}}, {"Rodeo", {72.60,-1684.60,-89.00,225.10,-1544.10,110.90}}, {"Rodeo", {72.60,-1544.10,-89.00,225.10,-1404.90,110.90}}, {"Rodeo", {225.10,-1684.60,-89.00,312.80,-1501.90,110.90}}, {"Rodeo", {225.10,-1501.90,-89.00,334.50,-1369.60,110.90}}, {"Rodeo", {334.50,-1501.90,-89.00,422.60,-1406.00,110.90}}, {"Rodeo", {312.80,-1684.60,-89.00,422.60,-1501.90,110.90}}, {"Rodeo", {422.60,-1684.60,-89.00,558.00,-1570.20,110.90}}, {"Rodeo", {558.00,-1684.60,-89.00,647.50,-1384.90,110.90}}, {"Rodeo", {466.20,-1570.20,-89.00,558.00,-1385.00,110.90}}, {"Rodeo", {422.60,-1570.20,-89.00,466.20,-1406.00,110.90}}, {"Rodeo", {466.20,-1385.00,-89.00,647.50,-1235.00,110.90}}, {"Rodeo", {334.50,-1406.00,-89.00,466.20,-1292.00,110.90}}, {"Royal Casino", {2087.30,1383.20,-89.00,2437.30,1543.20,110.90}}, {"San Andreas Sound", {2450.30,385.50,-100.00,2759.20,562.30,200.00}}, {"Santa Flora", {-2741.00,458.40,-7.60,-2533.00,793.40,200.00}}, {"Santa Maria Beach", {342.60,-2173.20,-89.00,647.70,-1684.60,110.90}}, {"Santa Maria Beach", {72.60,-2173.20,-89.00,342.60,-1684.60,110.90}}, {"Shady Cabin", {-1632.80,-2263.40,-3.00,-1601.30,-2231.70,200.00}}, {"Shady Creeks", {-1820.60,-2643.60,-8.00,-1226.70,-1771.60,200.00}}, {"Shady Creeks", {-2030.10,-2174.80,-6.10,-1820.60,-1771.60,200.00}}, {"Sobell Rail Yards", {2749.90,1548.90,-89.00,2923.30,1937.20,110.90}}, {"Spinybed", {2121.40,2663.10,-89.00,2498.20,2861.50,110.90}}, {"Starfish Casino", {2437.30,1783.20,-89.00,2685.10,2012.10,110.90}}, {"Starfish Casino", {2437.30,1858.10,-39.00,2495.00,1970.80,60.90}}, {"Starfish Casino", {2162.30,1883.20,-89.00,2437.30,2012.10,110.90}}, {"Temple", {1252.30,-1130.80,-89.00,1378.30,-1026.30,110.90}}, {"Temple", {1252.30,-1026.30,-89.00,1391.00,-926.90,110.90}}, {"Temple", {1252.30,-926.90,-89.00,1357.00,-910.10,110.90}}, {"Temple", {952.60,-1130.80,-89.00,1096.40,-937.10,110.90}}, {"Temple", {1096.40,-1130.80,-89.00,1252.30,-1026.30,110.90}}, {"Temple", {1096.40,-1026.30,-89.00,1252.30,-910.10,110.90}}, {"The Camel's Toe", {2087.30,1203.20,-89.00,2640.40,1383.20,110.90}}, {"The Clown's Pocket", {2162.30,1783.20,-89.00,2437.30,1883.20,110.90}}, {"The Emerald Isle", {2011.90,2202.70,-89.00,2237.40,2508.20,110.90}}, {"The Farm", {-1209.60,-1317.10,114.90,-908.10,-787.30,251.90}}, {"The Four Dragons Casino", {1817.30,863.20,-89.00,2027.30,1083.20,110.90}}, {"The High Roller", {1817.30,1283.20,-89.00,2027.30,1469.20,110.90}}, {"The Mako Span", {1664.60,401.70,0.00,1785.10,567.20,200.00}}, {"The Panopticon", {-947.90,-304.30,-1.10,-319.60,327.00,200.00}}, {"The Pink Swan", {1817.30,1083.20,-89.00,2027.30,1283.20,110.90}}, {"The Sherman Dam", {-968.70,1929.40,-3.00,-481.10,2155.20,200.00}}, {"The Strip", {2027.40,863.20,-89.00,2087.30,1703.20,110.90}}, {"The Strip", {2106.70,1863.20,-89.00,2162.30,2202.70,110.90}}, {"The Strip", {2027.40,1783.20,-89.00,2162.30,1863.20,110.90}}, {"The Strip", {2027.40,1703.20,-89.00,2137.40,1783.20,110.90}}, {"The Visage", {1817.30,1863.20,-89.00,2106.70,2011.80,110.90}}, {"The Visage", {1817.30,1703.20,-89.00,2027.40,1863.20,110.90}}, {"Unity Station", {1692.60,-1971.80,-20.40,1812.60,-1932.80,79.50}}, {"Valle Ocultado", {-936.60,2611.40,2.00,-715.90,2847.90,200.00}}, {"Verdant Bluffs", {930.20,-2488.40,-89.00,1249.60,-2006.70,110.90}}, {"Verdant Bluffs", {1073.20,-2006.70,-89.00,1249.60,-1842.20,110.90}}, {"Verdant Bluffs", {1249.60,-2179.20,-89.00,1692.60,-1842.20,110.90}}, {"Verdant Meadows", {37.00,2337.10,-3.00,435.90,2677.90,200.00}}, {"Verona Beach", {647.70,-2173.20,-89.00,930.20,-1804.20,110.90}}, {"Verona Beach", {930.20,-2006.70,-89.00,1073.20,-1804.20,110.90}}, {"Verona Beach", {851.40,-1804.20,-89.00,1046.10,-1577.50,110.90}}, {"Verona Beach", {1161.50,-1722.20,-89.00,1323.90,-1577.50,110.90}}, {"Verona Beach", {1046.10,-1722.20,-89.00,1161.50,-1577.50,110.90}}, {"Vinewood", {787.40,-1310.20,-89.00,952.60,-1130.80,110.90}}, {"Vinewood", {787.40,-1130.80,-89.00,952.60,-954.60,110.90}}, {"Vinewood", {647.50,-1227.20,-89.00,787.40,-1118.20,110.90}}, {"Vinewood", {647.70,-1416.20,-89.00,787.40,-1227.20,110.90}}, {"Whitewood Estates", {883.30,1726.20,-89.00,1098.30,2507.20,110.90}}, {"Whitewood Estates", {1098.30,1726.20,-89.00,1197.30,2243.20,110.90}}, {"Willowfield", {1970.60,-2179.20,-89.00,2089.00,-1852.80,110.90}}, {"Willowfield", {2089.00,-2235.80,-89.00,2201.80,-1989.90,110.90}}, {"Willowfield", {2089.00,-1989.90,-89.00,2324.00,-1852.80,110.90}}, {"Willowfield", {2201.80,-2095.00,-89.00,2324.00,-1989.90,110.90}}, {"Willowfield", {2541.70,-1941.40,-89.00,2703.50,-1852.80,110.90}}, {"Willowfield", {2324.00,-2059.20,-89.00,2541.70,-1852.80,110.90}}, {"Willowfield", {2541.70,-2059.20,-89.00,2703.50,-1941.40,110.90}}, {"Yellow Bell Station", {1377.40,2600.40,-21.90,1492.40,2687.30,78.00}}, // Main Zones {"Los Santos", {44.60,-2892.90,-242.90,2997.00,-768.00,900.00}}, {"Las Venturas", {869.40,596.30,-242.90,2997.00,2993.80,900.00}}, {"Bone County", {-480.50,596.30,-242.90,869.40,2993.80,900.00}}, {"Tierra Robada", {-2997.40,1659.60,-242.90,-480.50,2993.80,900.00}}, {"Tierra Robada", {-1213.90,596.30,-242.90,-480.50,1659.60,900.00}}, {"San Fierro", {-2997.40,-1115.50,-242.90,-1213.90,1659.60,900.00}}, {"Red County", {-1213.90,-768.00,-242.90,2997.00,596.30,900.00}}, {"Flint County", {-1213.90,-2892.90,-242.90,44.60,-768.00,900.00}}, {"Whetstone", {-2997.40,-2892.90,-242.90,-1213.90,-1115.50,900.00}} }; new AdmWarmToggle[MAX_PLAYERS]; new TogglePMs[MAX_PLAYERS]; new gsf; new sbf; new fyb; new vla; new vla2; new JB; new jb2; new jb3; new vagos; new vagos2; new tdb; new tdf; public OnGameModeInit() { // Turfs gsf = GangZoneCreate(2223.813, -1835.824, 2531.842, -1634.489); sbf = GangZoneCreate(2410.151, -2064.793, 2798.041, -1887.144); fyb = GangZoneCreate(1923.388, -1768.712, 2185.784, -1547.639); vla = GangZoneCreate(1809.303, -2175.33, 1961.417, -1973.995); vla2 = GangZoneCreate(1676.204, -2147.695, 1820.712, -2104.27); JB = GangZoneCreate(2064.094, -1401.572, 2162.967, -1125.23); jb2 = GangZoneCreate(2162.967, -1298.931, 2258.038, -1227.872); jb3 = GangZoneCreate(2136.347, -1496.318, 2200.996, -1405.52); vagos = GangZoneCreate(2368.32, -1448.945, 2497.617, -1267.349); vagos2 = GangZoneCreate(2436.771, -1255.506, 2702.97, -1192.342); tdb = GangZoneCreate(976.4823, -1287.088, 1238.878, -1160.76); TDF = GangZoneCreate(1117.187, -1144.969, 1352.963, -1046.276); //Profiler_Start(); SetGameModeText(REVISION); SendRconCommand("mapname San Andreas"); SendRconCommand("hostname [0.3.DL] San Andreas '92 Singleplayer Roleplay"); if (!MySQLConnection()) return SendRconCommand("exit"); //SAMPNode_CallEvent("Discord_SendMessage", "709702074509688922", "Hello. I am now online!"); mysql_log(ALL); //g_SQL:CreateTables(); phone_OnGameModeInit(); //Disabling single player entities: ShowPlayerMarkers(PLAYER_MARKERS_MODE_OFF); SetNameTagDrawDistance(20.0); EnableStuntBonusForAll(0); DisableInteriorEnterExits(); ManualVehicleEngineAndLights(); //Configure world: SetWeather(2); new hour, seconds, minute; gettime(hour, seconds, minute); SetWorldTime(hour); //Set all package types to -1 for (new i = 0; i < MAX_PROPERTY; i++) { for (new j = 0; j < 10; j++) { HousePackages[i][j][packageType] = -1; } } //Loading systems: mysql_tquery(m_Handle, "SELECT * FROM properties ORDER BY id ASC", "SQL_LoadProperties"); mysql_tquery(m_Handle, "SELECT * FROM factions ORDER BY id ASC", "SQL_LoadFactions"); mysql_tquery(m_Handle, "SELECT * FROM businesses ORDER BY id ASC", "SQL_LoadBusinesses"); mysql_tquery(m_Handle, "SELECT * FROM paynspray ORDER BY id ASC", "SQL_LoadPaynSpray"); mysql_tquery(m_Handle, "SELECT * FROM tolls ORDER BY id ASC", "SQL_LoadTolls"); mysql_tquery(m_Handle, "SELECT * FROM rentals ORDER BY id ASC", "SQL_LoadRentals"); mysql_tquery(m_Handle, "SELECT * FROM factioncars ORDER BY id ASC", "SQL_LoadFactionCars"); mysql_tquery(m_Handle, "SELECT * FROM doors ORDER BY id ASC", "SQL_LoadDoors"); mysql_tquery(m_Handle, "SELECT * FROM property_garages ORDER BY id ASC", "SQL_LoadPropertyGarages"); mysql_tquery(m_Handle, "SELECT * FROM xmr_data ORDER BY id ASC", "SQL_LoadXMRData"); mysql_tquery(m_Handle, "SELECT * FROM xmr_sub ORDER BY id ASC", "SQL_LoadXMRCategories"); mysql_tquery(m_Handle, "SELECT * FROM objects ORDER BY id ASC", "SQL_LoadObjects"); mysql_tquery(m_Handle, "SELECT * FROM entrances ORDER BY InteriorDBID ASC", "SQL_LoadEntrances"); //Mapping: LoadPrisonMapping(); LoadPrisonInterior(); LoadHospital(); LoadApartmentInterior(); LoadPNSGates(); LoadModGates(); LoadMallBridge(); //LoadTollBooths(); LoadMechanicDevin(); LoadPD(); LoadBank1(); LoadBank2(); LoadComplex1(); LoadComplex2(); LoadComplex3(); LoadStudioApartments(); LoadMafiaBar(); LoadCustomHouse1(); LoadCustomHouse2(); LoadRestaurant(); LoadCustomApartment(); LoadGhettoBar(); LoadCustomClub(); LoadSmallApartment(); LoadModernHouse1(); LoadModernHouse2(); LoadGovernmentInterior(); LoadPoliceDepartment1(); LoadPoliceDepartment2(); LoadSmallHouse(); LoadPoliceStations(); //Delfino Willowfield Request CreateDynamicObject(3407, 2461.56226, -1999.53760, 12.52557, 0.00000, 0.00000, 0.00000); CreateDynamicObject(947, 2470.62500, -1990.00000, 14.44000, 0.00000, 0.00000, -90.00000); CreateDynamicObject(1368, 2467.87305, -1995.82227, 13.37500, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2676, 2475.48145, -1984.19019, 12.66050, 0.00000, 0.00000, -45.00000); CreateDynamicObject(1265, 2475.82275, -1984.68298, 12.95000, 0.00000, 0.00000, -20.00000); //PDToll[0] = CreateDynamicObject(968, 1544.692016, -1630.910156, 13.144363, 0.0, 90.0, 90.0); WEAPON_ANTI_CHEAT = 1; AMMO_ANTI_CHEAT = 1; //Timers: SetTimer("FunctionPlayers", 1000, true); SetTimer("FunctionPaychecks", 1000, true); SetTimer("OnPlayerNearPickup", 2000, true); SetTimer("OnPlayerNearBusiness", 1000, true); SetTimer("OnPlayerNearPNS", 1000, true); SetTimer("OnPlayerNearTolls", 2500, true); SetTimer("OnVehicleUpdate", 1000, true); SetTimer("RefreshPlayer", 3000, true); SetTimer("LoadFurnitures", 10000, false); SetTimer("Fuel", 1000, true); SetTimer("WeaponCheats", 1000, true); SetTimer("AmmoCheats", 1000, true); SetTimer("SpeedCheats", 1000, true); // ClearWeaponCrateVars(); //Areas: ImpoundLotArea = CreateDynamicCircle(-1098.6909, -973.7175, 140.0, 0, 0); JailCenterArea = CreateDynamicCircle(2583.2087, -1510.8986, 500.0); HospitalArea = CreateDynamicCircle(334.7980, 174.9129, 150.0, 59386, 3); //DMV: dmvCar1 = AddStaticVehicle(585, 1271.5765,-1549.2815,13.5656,272.7345, 1, 1); dmvCar2 = AddStaticVehicle(585, 1271.5765,-1544.2815,13.5644,272.7345, 1, 1); dmvCar3 = AddStaticVehicle(585, 1271.5765,-1539.2815,13.5637,272.7345, 1, 1); dmvCar4 = AddStaticVehicle(585, 1271.5765,-1534.2815,13.5637,272.7345, 1, 1); SetVehicleNumberPlate(dmvCar1, "DMV"); SetVehicleNumberPlate(dmvCar2, "DMV"); SetVehicleNumberPlate(dmvCar3, "DMV"); SetVehicleNumberPlate(dmvCar4, "DMV"); TruckerVehicles[0] = AddStaticVehicle(543,1521.6704,-2360.8064,13.3706,179.5936,0,0); // Sadler 1 TruckerVehicles[1] = AddStaticVehicle(543,1512.1055,-2360.9468,13.3917,179.2175,0,0); // Sadler 2 TruckerVehicles[2] = AddStaticVehicle(543,1508.8353,-2360.8936,13.2775,179.2003,0,0); // Sadler 3 TruckerVehicles[3] = AddStaticVehicle(543,1505.3467,-2361.0579,13.2668,180.9635,0,0); // Sadler 4 TruckerVehicles[4] = AddStaticVehicle(515,-569.8888,-487.3821,26.5410,179.8459,0,0); // Roadtrain 1 TruckerVehicles[5] = AddStaticVehicle(515,-564.8949,-487.1429,26.5371,180.0024,0,0); // Roadtrain 2 TruckerVehicles[6] = AddStaticVehicle(515,-559.9413,-487.2663,26.5414,180.0854,0,0); // Roadtrain 3 TruckerVehicles[7] = AddStaticVehicle(543,1385.0176,-2314.2576,13.3684,359.1054,0,0); //Sadler 5 TruckerVehicles[8] = AddStaticVehicle(543,1388.4532,-2314.4414,13.3633,359.3958,0,0); //Sadler 6 TruckerVehicles[9] = AddStaticVehicle(543,1391.6304,-2314.4216,13.3685,359.4192,0,0); //Sadler 7 TruckerVehicles[10] = AddStaticVehicle(515,-540.0516,-487.0027,26.5441,180.1929,0,0); //Roadtrain 4 TruckerVehicles[11] = AddStaticVehicle(515,-535.0956,-487.5607,26.5388,179.9805,0,0); //Roadtrain 5 TruckerVehicles[12] = AddStaticVehicle(515,-530.1603,-487.2915,26.5435,180.1380,0,0); //Roadtrain 6 for(new i = 0; i < sizeof TruckerVehicles; i++) SetVehicleNumberPlate(TruckerVehicles[i], "TRUCKER"); // Graffiti Creates for (new i = 0; i < sizeof(g_aGraffitiData); i++) { //18666 GraffitiData[i][graffitiObject] = CreateDynamicObject(18666, g_aGraffitiData[i][graffitiPosX], g_aGraffitiData[i][graffitiPosY], g_aGraffitiData[i][graffitiPosZ], g_aGraffitiData[i][graffitiRotX], g_aGraffitiData[i][graffitiRotY], g_aGraffitiData[i][graffitiRotZ], -1, 0, -1, 5000.0); } //Textlabel CreateDynamic3DTextLabel("{FFFF00}/buy\n{FFFFFF}to purchase clothing!", COLOR_WHITE, -2471.7783, 756.2209, 35.1719, 15.0); //CreateDynamic3DTextLabel("{FFFF00}/changephone\n{FFFFFF}to purchase a new phone color!", COLOR_WHITE, 1154.4170, -1440.2319, 15.7969, 15.0); CreateDynamic3DTextLabel("{F81414}Trucker job!\n{FFFFFF}/truckerjob", COLOR_WHITE, -516.1585, -539.9711, 25.5234, 25.0); CreateDynamic3DTextLabel("{F81414}Trucker trailers!\n{FFFFFF}/usetrailer", COLOR_WHITE, 96.6237, -290.1677, 1.5781, 25.0); CreateDynamic3DTextLabel("/lift", COLOR_YELLOW, 1566.1305, -2155.4905, 13.5532, 5.0); CreateDynamic3DTextLabel("{F81414}Mechanic Job!\n{FFFFFF}/mechanicjob", COLOR_WHITE, 83.5813, -149.3909, 2.5845, 25.0); //Pickups CreateDynamicPickup(1581, 1, BLACK_MARKET_X, BLACK_MARKET_Y, BLACK_MARKET_Z, 0, 0, -1, 20.0); CreateDynamicPickup(1239, 1, -516.1585, -539.9711, 25.5234, 0, 0, -1, 20.0); CreateDynamicPickup(1239, 1, 83.5813, -149.3909, 2.5845, 0, 0, -1, 20.0); //Garage Small Interior CreateDynamicObject(1980, 608.75781, -78.85594, 999.19531, 0.00000, 0.00000, 0.00000, -1, 2); CreateDynamicObject(1980, 608.73578, -78.83830, 996.07233, 0.00000, 0.00000, 0.00000, -1, 2); CreateDynamicObject(1980, 608.75940, -71.52995, 999.19531, 0.00000, 0.00000, 0.00000, -1, 2); CreateDynamicObject(1980, 608.75513, -71.49020, 996.07233, 0.00000, 0.00000, 0.00000, -1, 2); //Textdraws below LoadWarehouseMenu_1(); CrateInventory[0] = TextDrawCreate(552.333190, 109.940765, "box"); TextDrawLetterSize(CrateInventory[0], 0.000000, 24.266662); TextDrawTextSize(CrateInventory[0], 640.000000, 0.000000); TextDrawAlignment(CrateInventory[0], 1); TextDrawColor(CrateInventory[0], -1); TextDrawUseBox(CrateInventory[0], 1); TextDrawBoxColor(CrateInventory[0], 122); TextDrawSetShadow(CrateInventory[0], 0); TextDrawSetOutline(CrateInventory[0], 0); TextDrawBackgroundColor(CrateInventory[0], 255); TextDrawFont(CrateInventory[0], 1); TextDrawSetProportional(CrateInventory[0], 1); TextDrawSetShadow(CrateInventory[0], 0); CrateInventory[1] = TextDrawCreate(549.999877, 104.548187, "Crate"); TextDrawLetterSize(CrateInventory[1], 0.400000, 1.600000); TextDrawAlignment(CrateInventory[1], 1); TextDrawColor(CrateInventory[1], -1); TextDrawSetShadow(CrateInventory[1], 0); TextDrawSetOutline(CrateInventory[1], 1); TextDrawBackgroundColor(CrateInventory[1], 255); TextDrawFont(CrateInventory[1], 0); TextDrawSetProportional(CrateInventory[1], 1); TextDrawSetShadow(CrateInventory[1], 0); //Meal Menu TD_mealMenu[0] = TextDrawCreate(163.666702, 99.985115, "box"); TextDrawLetterSize(TD_mealMenu[0], 0.000000, 20.833322); TextDrawTextSize(TD_mealMenu[0], 487.000000, 0.000000); TextDrawAlignment(TD_mealMenu[0], 1); TextDrawColor(TD_mealMenu[0], -1); TextDrawUseBox(TD_mealMenu[0], 1); TextDrawBoxColor(TD_mealMenu[0], 255); TextDrawSetShadow(TD_mealMenu[0], 0); TextDrawSetOutline(TD_mealMenu[0], 0); TextDrawBackgroundColor(TD_mealMenu[0], 255); TextDrawFont(TD_mealMenu[0], 1); TextDrawSetProportional(TD_mealMenu[0], 1); TextDrawSetShadow(TD_mealMenu[0], 0); TD_mealMenu[1] = TextDrawCreate(171.366378, 103.629737, "Restaurant_Name"); TextDrawLetterSize(TD_mealMenu[1], 0.414666, 1.761777); TextDrawAlignment(TD_mealMenu[1], 1); TextDrawColor(TD_mealMenu[1], -1); TextDrawSetShadow(TD_mealMenu[1], 0); TextDrawSetOutline(TD_mealMenu[1], 0); TextDrawBackgroundColor(TD_mealMenu[1], 255); TextDrawFont(TD_mealMenu[1], 0); TextDrawSetProportional(TD_mealMenu[1], 1); TextDrawSetShadow(TD_mealMenu[1], 0); TD_mealMenu[2] = TextDrawCreate(171.899795, 119.429496, "This_restaurant_offers_multiple_meals."); TextDrawLetterSize(TD_mealMenu[2], 0.209666, 1.218368); TextDrawAlignment(TD_mealMenu[2], 1); TextDrawColor(TD_mealMenu[2], -1); TextDrawSetShadow(TD_mealMenu[2], 0); TextDrawSetOutline(TD_mealMenu[2], 0); TextDrawBackgroundColor(TD_mealMenu[2], 255); TextDrawFont(TD_mealMenu[2], 1); TextDrawSetProportional(TD_mealMenu[2], 1); TextDrawSetShadow(TD_mealMenu[2], 0); TD_mealMenu[3] = TextDrawCreate(171.966491, 128.829421, "Choose_one_by_clicking_on_it."); TextDrawLetterSize(TD_mealMenu[3], 0.209666, 1.218368); TextDrawAlignment(TD_mealMenu[3], 1); TextDrawColor(TD_mealMenu[3], -1); TextDrawSetShadow(TD_mealMenu[3], 0); TextDrawSetOutline(TD_mealMenu[3], 0); TextDrawBackgroundColor(TD_mealMenu[3], 255); TextDrawFont(TD_mealMenu[3], 1); TextDrawSetProportional(TD_mealMenu[3], 1); TextDrawSetShadow(TD_mealMenu[3], 0); TD_mealMenu[4] = TextDrawCreate(168.466598, 122.718551, ""); TextDrawLetterSize(TD_mealMenu[4], 0.000000, 0.000000); TextDrawTextSize(TD_mealMenu[4], 90.000000, 90.000000); TextDrawAlignment(TD_mealMenu[4], 1); TextDrawColor(TD_mealMenu[4], -1); TextDrawSetShadow(TD_mealMenu[4], 0); TextDrawSetOutline(TD_mealMenu[4], 0); TextDrawBackgroundColor(TD_mealMenu[4], 255); TextDrawFont(TD_mealMenu[4], 5); TextDrawSetProportional(TD_mealMenu[4], 0); TextDrawSetShadow(TD_mealMenu[4], 0); TextDrawSetSelectable(TD_mealMenu[4], true); TextDrawSetPreviewModel(TD_mealMenu[4], 2220); TextDrawSetPreviewRot(TD_mealMenu[4], -22.000000, -1.000000, 0.000000, 1.000000); TD_mealMenu[5] = TextDrawCreate(172.466522, 217.434829, "Large_Pizza_Meal"); TextDrawLetterSize(TD_mealMenu[5], 0.211000, 1.243257); TextDrawAlignment(TD_mealMenu[5], 1); TextDrawColor(TD_mealMenu[5], -1); TextDrawSetShadow(TD_mealMenu[5], 0); TextDrawSetOutline(TD_mealMenu[5], 0); TextDrawBackgroundColor(TD_mealMenu[5], 255); TextDrawFont(TD_mealMenu[5], 1); TextDrawSetProportional(TD_mealMenu[5], 1); TextDrawSetShadow(TD_mealMenu[5], 0); TD_mealMenu[6] = TextDrawCreate(171.766479, 228.165054, "Full_Health"); TextDrawLetterSize(TD_mealMenu[6], 0.211000, 1.243257); TextDrawAlignment(TD_mealMenu[6], 1); TextDrawColor(TD_mealMenu[6], -2147483393); TextDrawSetShadow(TD_mealMenu[6], 0); TextDrawSetOutline(TD_mealMenu[6], 0); TextDrawBackgroundColor(TD_mealMenu[6], 255); TextDrawFont(TD_mealMenu[6], 1); TextDrawSetProportional(TD_mealMenu[6], 1); TextDrawSetShadow(TD_mealMenu[6], 0); TD_mealMenu[7] = TextDrawCreate(172.533142, 237.721282, "Price:_$300"); TextDrawLetterSize(TD_mealMenu[7], 0.211000, 1.243257); TextDrawAlignment(TD_mealMenu[7], 1); TextDrawColor(TD_mealMenu[7], -1920073729); TextDrawSetShadow(TD_mealMenu[7], 0); TextDrawSetOutline(TD_mealMenu[7], 0); TextDrawBackgroundColor(TD_mealMenu[7], 255); TextDrawFont(TD_mealMenu[7], 1); TextDrawSetProportional(TD_mealMenu[7], 1); TextDrawSetShadow(TD_mealMenu[7], 0); TD_mealMenu[8] = TextDrawCreate(258.072052, 124.548164, ""); TextDrawLetterSize(TD_mealMenu[8], 0.000000, 0.000000); TextDrawTextSize(TD_mealMenu[8], 90.000000, 90.000000); TextDrawAlignment(TD_mealMenu[8], 1); TextDrawColor(TD_mealMenu[8], -1); TextDrawSetShadow(TD_mealMenu[8], 0); TextDrawSetOutline(TD_mealMenu[8], 0); TextDrawBackgroundColor(TD_mealMenu[8], 255); TextDrawFont(TD_mealMenu[8], 5); TextDrawSetProportional(TD_mealMenu[8], 0); TextDrawSetShadow(TD_mealMenu[8], 0); TextDrawSetSelectable(TD_mealMenu[8], true); TextDrawSetPreviewModel(TD_mealMenu[8], 2218); TextDrawSetPreviewRot(TD_mealMenu[8], -29.000000, 14.000000, -2.000000, 1.000000); TD_mealMenu[9] = TextDrawCreate(260.871917, 217.434829, "Small_Pizza_Meal"); TextDrawLetterSize(TD_mealMenu[9], 0.211000, 1.243257); TextDrawAlignment(TD_mealMenu[9], 1); TextDrawColor(TD_mealMenu[9], -1); TextDrawSetShadow(TD_mealMenu[9], 0); TextDrawSetOutline(TD_mealMenu[9], 0); TextDrawBackgroundColor(TD_mealMenu[9], 255); TextDrawFont(TD_mealMenu[9], 1); TextDrawSetProportional(TD_mealMenu[9], 1); TextDrawSetShadow(TD_mealMenu[9], 0); TD_mealMenu[10] = TextDrawCreate(260.571899, 228.165054, "Full_Health"); TextDrawLetterSize(TD_mealMenu[10], 0.211000, 1.243257); TextDrawAlignment(TD_mealMenu[10], 1); TextDrawColor(TD_mealMenu[10], -2147483393); TextDrawSetShadow(TD_mealMenu[10], 0); TextDrawSetOutline(TD_mealMenu[10], 0); TextDrawBackgroundColor(TD_mealMenu[10], 255); TextDrawFont(TD_mealMenu[10], 1); TextDrawSetProportional(TD_mealMenu[10], 1); TextDrawSetShadow(TD_mealMenu[10], 0); TD_mealMenu[11] = TextDrawCreate(261.238555, 237.721282, "Price:_$150"); TextDrawLetterSize(TD_mealMenu[11], 0.211000, 1.243257); TextDrawAlignment(TD_mealMenu[11], 1); TextDrawColor(TD_mealMenu[11], -1920073729); TextDrawSetShadow(TD_mealMenu[11], 0); TextDrawSetOutline(TD_mealMenu[11], 0); TextDrawBackgroundColor(TD_mealMenu[11], 255); TextDrawFont(TD_mealMenu[11], 1); TextDrawSetProportional(TD_mealMenu[11], 1); TextDrawSetShadow(TD_mealMenu[11], 0); TD_mealMenu[12] = TextDrawCreate(336.176818, 138.933990, ""); TextDrawLetterSize(TD_mealMenu[12], 0.000000, 0.000000); TextDrawTextSize(TD_mealMenu[12], 90.000000, 90.000000); TextDrawAlignment(TD_mealMenu[12], 1); TextDrawColor(TD_mealMenu[12], -1); TextDrawSetShadow(TD_mealMenu[12], 0); TextDrawSetOutline(TD_mealMenu[12], 0); TextDrawBackgroundColor(TD_mealMenu[12], 255); TextDrawFont(TD_mealMenu[12], 5); TextDrawSetProportional(TD_mealMenu[12], 0); TextDrawSetShadow(TD_mealMenu[12], 0); TextDrawSetSelectable(TD_mealMenu[12], true); TextDrawSetPreviewModel(TD_mealMenu[12], 2768); TextDrawSetPreviewRot(TD_mealMenu[12], -29.000000, 14.000000, -2.000000, 1.037539); TD_mealMenu[13] = TextDrawCreate(350.077362, 217.434829, "Spicy_Chicken_Sandwich"); TextDrawLetterSize(TD_mealMenu[13], 0.211000, 1.243257); TextDrawAlignment(TD_mealMenu[13], 1); TextDrawColor(TD_mealMenu[13], -1); TextDrawSetShadow(TD_mealMenu[13], 0); TextDrawSetOutline(TD_mealMenu[13], 0); TextDrawBackgroundColor(TD_mealMenu[13], 255); TextDrawFont(TD_mealMenu[13], 1); TextDrawSetProportional(TD_mealMenu[13], 1); TextDrawSetShadow(TD_mealMenu[13], 0); TD_mealMenu[14] = TextDrawCreate(349.577331, 228.265060, "Full_Health"); TextDrawLetterSize(TD_mealMenu[14], 0.211000, 1.243257); TextDrawAlignment(TD_mealMenu[14], 1); TextDrawColor(TD_mealMenu[14], -2147483393); TextDrawSetShadow(TD_mealMenu[14], 0); TextDrawSetOutline(TD_mealMenu[14], 0); TextDrawBackgroundColor(TD_mealMenu[14], 255); TextDrawFont(TD_mealMenu[14], 1); TextDrawSetProportional(TD_mealMenu[14], 1); TextDrawSetShadow(TD_mealMenu[14], 0); TD_mealMenu[15] = TextDrawCreate(350.544006, 237.721282, "Price:_$100"); TextDrawLetterSize(TD_mealMenu[15], 0.211000, 1.243257); TextDrawAlignment(TD_mealMenu[15], 1); TextDrawColor(TD_mealMenu[15], -1920073729); TextDrawSetShadow(TD_mealMenu[15], 0); TextDrawSetOutline(TD_mealMenu[15], 0); TextDrawBackgroundColor(TD_mealMenu[15], 255); TextDrawFont(TD_mealMenu[15], 1); TextDrawSetProportional(TD_mealMenu[15], 1); TextDrawSetShadow(TD_mealMenu[15], 0); TD_mealMenu[16] = TextDrawCreate(473.333435, 102.888885, "x"); TextDrawLetterSize(TD_mealMenu[16], 0.288333, 0.857481); TextDrawAlignment(TD_mealMenu[16], 1); TextDrawColor(TD_mealMenu[16], -1); TextDrawSetShadow(TD_mealMenu[16], 0); TextDrawSetOutline(TD_mealMenu[16], 0); TextDrawBackgroundColor(TD_mealMenu[16], 255); TextDrawFont(TD_mealMenu[16], 2); TextDrawSetProportional(TD_mealMenu[16], 1); TextDrawSetShadow(TD_mealMenu[16], 0); TextDrawSetSelectable(TD_mealMenu[16], true); blindfoldTextdraw = TextDrawCreate(0.999984, 0.429619, "box"); TextDrawLetterSize(blindfoldTextdraw, 0.000000, 49.499942); TextDrawTextSize(blindfoldTextdraw, 664.000000, 0.000000); TextDrawAlignment(blindfoldTextdraw, 1); TextDrawColor(blindfoldTextdraw, -1); TextDrawUseBox(blindfoldTextdraw, 1); TextDrawBoxColor(blindfoldTextdraw, 255); TextDrawSetShadow(blindfoldTextdraw, 0); TextDrawSetOutline(blindfoldTextdraw, 0); TextDrawBackgroundColor(blindfoldTextdraw, 255); TextDrawFont(blindfoldTextdraw, 1); TextDrawSetProportional(blindfoldTextdraw, 1); TextDrawSetShadow(blindfoldTextdraw, 0); furnitureadd_TD[0] = TextDrawCreate(70.333335, 309.881439, "HOLD_''"); TextDrawLetterSize(furnitureadd_TD[0], 0.300000, 1.205926); TextDrawAlignment(furnitureadd_TD[0], 1); TextDrawColor(furnitureadd_TD[0], -1); TextDrawSetShadow(furnitureadd_TD[0], 0); TextDrawSetOutline(furnitureadd_TD[0], 1); TextDrawBackgroundColor(furnitureadd_TD[0], 255); TextDrawFont(furnitureadd_TD[0], 2); TextDrawSetProportional(furnitureadd_TD[0], 1); TextDrawSetShadow(furnitureadd_TD[0], 0); furnitureadd_TD[1] = TextDrawCreate(116.832611, 309.551818, "SPACe_"); TextDrawLetterSize(furnitureadd_TD[1], 0.300000, 1.205926); TextDrawAlignment(furnitureadd_TD[1], 1); TextDrawColor(furnitureadd_TD[1], -457153537); TextDrawSetShadow(furnitureadd_TD[1], 0); TextDrawSetOutline(furnitureadd_TD[1], 1); TextDrawBackgroundColor(furnitureadd_TD[1], 255); TextDrawFont(furnitureadd_TD[1], 2); TextDrawSetProportional(furnitureadd_TD[1], 1); TextDrawSetShadow(furnitureadd_TD[1], 0); furnitureadd_TD[2] = TextDrawCreate(159.834381, 309.681396, "''_AND_PRESS_YOUR_''"); TextDrawLetterSize(furnitureadd_TD[2], 0.300000, 1.205926); TextDrawAlignment(furnitureadd_TD[2], 1); TextDrawColor(furnitureadd_TD[2], -1); TextDrawSetShadow(furnitureadd_TD[2], 0); TextDrawSetOutline(furnitureadd_TD[2], 1); TextDrawBackgroundColor(furnitureadd_TD[2], 255); TextDrawFont(furnitureadd_TD[2], 2); TextDrawSetProportional(furnitureadd_TD[2], 1); TextDrawSetShadow(furnitureadd_TD[2], 0); furnitureadd_TD[3] = TextDrawCreate(289.542297, 309.551818, "lmb"); TextDrawLetterSize(furnitureadd_TD[3], 0.300000, 1.205926); TextDrawAlignment(furnitureadd_TD[3], 1); TextDrawColor(furnitureadd_TD[3], -457153537); TextDrawSetShadow(furnitureadd_TD[3], 0); TextDrawSetOutline(furnitureadd_TD[3], 1); TextDrawBackgroundColor(furnitureadd_TD[3], 255); TextDrawFont(furnitureadd_TD[3], 2); TextDrawSetProportional(furnitureadd_TD[3], 1); TextDrawSetShadow(furnitureadd_TD[3], 0); furnitureadd_TD[4] = TextDrawCreate(317.544006, 309.551818, "''_TO_MOVE_YOUR_FURNITUre_around."); TextDrawLetterSize(furnitureadd_TD[4], 0.300000, 1.205926); TextDrawAlignment(furnitureadd_TD[4], 1); TextDrawColor(furnitureadd_TD[4], -1); TextDrawSetShadow(furnitureadd_TD[4], 0); TextDrawSetOutline(furnitureadd_TD[4], 1); TextDrawBackgroundColor(furnitureadd_TD[4], 255); TextDrawFont(furnitureadd_TD[4], 2); TextDrawSetProportional(furnitureadd_TD[4], 1); TextDrawSetShadow(furnitureadd_TD[4], 0); furnitureadd_TD[5] = TextDrawCreate(70.333335, 321.282135, "press_your_''_"); TextDrawLetterSize(furnitureadd_TD[5], 0.300000, 1.205926); TextDrawAlignment(furnitureadd_TD[5], 1); TextDrawColor(furnitureadd_TD[5], -1); TextDrawSetShadow(furnitureadd_TD[5], 0); TextDrawSetOutline(furnitureadd_TD[5], 1); TextDrawBackgroundColor(furnitureadd_TD[5], 255); TextDrawFont(furnitureadd_TD[5], 2); TextDrawSetProportional(furnitureadd_TD[5], 1); TextDrawSetShadow(furnitureadd_TD[5], 0); furnitureadd_TD[6] = TextDrawCreate(159.534362, 321.352539, "esc"); TextDrawLetterSize(furnitureadd_TD[6], 0.300000, 1.205926); TextDrawAlignment(furnitureadd_TD[6], 1); TextDrawColor(furnitureadd_TD[6], -1575535873); TextDrawSetShadow(furnitureadd_TD[6], 0); TextDrawSetOutline(furnitureadd_TD[6], 1); TextDrawBackgroundColor(furnitureadd_TD[6], 255); TextDrawFont(furnitureadd_TD[6], 2); TextDrawSetProportional(furnitureadd_TD[6], 1); TextDrawSetShadow(furnitureadd_TD[6], 0); furnitureadd_TD[7] = TextDrawCreate(185.535964, 321.667358, "''"); TextDrawLetterSize(furnitureadd_TD[7], 0.300000, 1.205926); TextDrawAlignment(furnitureadd_TD[7], 1); TextDrawColor(furnitureadd_TD[7], -1); TextDrawSetShadow(furnitureadd_TD[7], 0); TextDrawSetOutline(furnitureadd_TD[7], 1); TextDrawBackgroundColor(furnitureadd_TD[7], 255); TextDrawFont(furnitureadd_TD[7], 2); TextDrawSetProportional(furnitureadd_TD[7], 1); TextDrawSetShadow(furnitureadd_TD[7], 0); furnitureadd_TD[8] = TextDrawCreate(195.436569, 321.282135, "KEY_TO_RETURN_THE_ITEM_IF_YOU'RE_NOT_PLEASED."); TextDrawLetterSize(furnitureadd_TD[8], 0.300000, 1.205926); TextDrawAlignment(furnitureadd_TD[8], 1); TextDrawColor(furnitureadd_TD[8], -1); TextDrawSetShadow(furnitureadd_TD[8], 0); TextDrawSetOutline(furnitureadd_TD[8], 1); TextDrawBackgroundColor(furnitureadd_TD[8], 255); TextDrawFont(furnitureadd_TD[8], 2); TextDrawSetProportional(furnitureadd_TD[8], 1); TextDrawSetShadow(furnitureadd_TD[8], 0); Buymenu_TD[0] = TextDrawCreate(336.666839, 132.340713, "box"); TextDrawLetterSize(Buymenu_TD[0], 0.000000, 27.166658); TextDrawTextSize(Buymenu_TD[0], 0.000000, 341.000000); TextDrawAlignment(Buymenu_TD[0], 2); TextDrawColor(Buymenu_TD[0], -1); TextDrawUseBox(Buymenu_TD[0], 1); TextDrawBoxColor(Buymenu_TD[0], 255); TextDrawSetShadow(Buymenu_TD[0], 0); TextDrawSetOutline(Buymenu_TD[0], 0); TextDrawBackgroundColor(Buymenu_TD[0], 255); TextDrawFont(Buymenu_TD[0], 1); TextDrawSetProportional(Buymenu_TD[0], 1); TextDrawSetShadow(Buymenu_TD[0], 0); Buymenu_TD[1] = TextDrawCreate(481.666839, 131.925994, "EXIT"); TextDrawLetterSize(Buymenu_TD[1], 0.352665, 1.334519); TextDrawAlignment(Buymenu_TD[1], 1); TextDrawColor(Buymenu_TD[1], -1); TextDrawSetShadow(Buymenu_TD[1], 0); TextDrawSetOutline(Buymenu_TD[1], 0); TextDrawBackgroundColor(Buymenu_TD[1], 255); TextDrawFont(Buymenu_TD[1], 1); TextDrawSetProportional(Buymenu_TD[1], 1); TextDrawSetShadow(Buymenu_TD[1], 0); TextDrawSetSelectable(Buymenu_TD[1], true); Buymenu_TD[2] = TextDrawCreate(163.999969, 131.511169, "The_Store_Name_Goes_Here"); TextDrawLetterSize(Buymenu_TD[2], 0.401665, 1.645629); TextDrawAlignment(Buymenu_TD[2], 1); TextDrawColor(Buymenu_TD[2], -1); TextDrawSetShadow(Buymenu_TD[2], 0); TextDrawSetOutline(Buymenu_TD[2], 0); TextDrawBackgroundColor(Buymenu_TD[2], 255); TextDrawFont(Buymenu_TD[2], 0); TextDrawSetProportional(Buymenu_TD[2], 1); TextDrawSetShadow(Buymenu_TD[2], 0); Buymenu_TD[3] = TextDrawCreate(169.333175, 152.511123, ""); TextDrawLetterSize(Buymenu_TD[3], 0.000000, 0.000000); TextDrawTextSize(Buymenu_TD[3], 81.000000, 72.000000); TextDrawAlignment(Buymenu_TD[3], 1); TextDrawColor(Buymenu_TD[3], -1); TextDrawSetShadow(Buymenu_TD[3], 0); TextDrawSetOutline(Buymenu_TD[3], 0); TextDrawBackgroundColor(Buymenu_TD[3], -572662273); TextDrawFont(Buymenu_TD[3], 5); TextDrawSetProportional(Buymenu_TD[3], 0); TextDrawSetShadow(Buymenu_TD[3], 0); TextDrawSetSelectable(Buymenu_TD[3], true); TextDrawSetPreviewModel(Buymenu_TD[3], 1650); TextDrawSetPreviewRot(Buymenu_TD[3], 0.600000, 0.200000, 22.000000, 1.100000); Buymenu_TD[4] = TextDrawCreate(170.666671, 152.251876, "Gas_Can"); TextDrawLetterSize(Buymenu_TD[4], 0.262665, 1.044147); TextDrawAlignment(Buymenu_TD[4], 1); TextDrawColor(Buymenu_TD[4], -1); TextDrawSetShadow(Buymenu_TD[4], 0); TextDrawSetOutline(Buymenu_TD[4], 1); TextDrawBackgroundColor(Buymenu_TD[4], 255); TextDrawFont(Buymenu_TD[4], 1); TextDrawSetProportional(Buymenu_TD[4], 1); TextDrawSetShadow(Buymenu_TD[4], 0); Buymenu_TD[5] = TextDrawCreate(229.333297, 215.303710, "$30"); TextDrawLetterSize(Buymenu_TD[5], 0.221000, 0.957036); TextDrawAlignment(Buymenu_TD[5], 1); TextDrawColor(Buymenu_TD[5], 8388863); TextDrawSetShadow(Buymenu_TD[5], 0); TextDrawSetOutline(Buymenu_TD[5], 0); TextDrawBackgroundColor(Buymenu_TD[5], 8388863); TextDrawFont(Buymenu_TD[5], 1); TextDrawSetProportional(Buymenu_TD[5], 1); TextDrawSetShadow(Buymenu_TD[5], 0); Buymenu_TD[6] = TextDrawCreate(253.999893, 152.511093, ""); TextDrawLetterSize(Buymenu_TD[6], 0.000000, 0.000000); TextDrawTextSize(Buymenu_TD[6], 81.000000, 72.000000); TextDrawAlignment(Buymenu_TD[6], 1); TextDrawColor(Buymenu_TD[6], -1); TextDrawSetShadow(Buymenu_TD[6], 0); TextDrawSetOutline(Buymenu_TD[6], 0); TextDrawBackgroundColor(Buymenu_TD[6], -572662273); TextDrawFont(Buymenu_TD[6], 5); TextDrawSetProportional(Buymenu_TD[6], 0); TextDrawSetShadow(Buymenu_TD[6], 0); TextDrawSetSelectable(Buymenu_TD[6], true); TextDrawSetPreviewModel(Buymenu_TD[6], 2226); TextDrawSetPreviewRot(Buymenu_TD[6], 0.600000, 0.200000, 180.000000, 1.100000); Buymenu_TD[7] = TextDrawCreate(255.666595, 152.666748, "Boombox"); TextDrawLetterSize(Buymenu_TD[7], 0.262665, 1.044147); TextDrawAlignment(Buymenu_TD[7], 1); TextDrawColor(Buymenu_TD[7], -1); TextDrawSetShadow(Buymenu_TD[7], 0); TextDrawSetOutline(Buymenu_TD[7], 1); TextDrawBackgroundColor(Buymenu_TD[7], 255); TextDrawFont(Buymenu_TD[7], 1); TextDrawSetProportional(Buymenu_TD[7], 1); TextDrawSetShadow(Buymenu_TD[7], 0); Buymenu_TD[8] = TextDrawCreate(307.333221, 215.718536, "$150"); TextDrawLetterSize(Buymenu_TD[8], 0.221000, 0.957036); TextDrawAlignment(Buymenu_TD[8], 1); TextDrawColor(Buymenu_TD[8], 8388863); TextDrawSetShadow(Buymenu_TD[8], 0); TextDrawSetOutline(Buymenu_TD[8], 0); TextDrawBackgroundColor(Buymenu_TD[8], 8388863); TextDrawFont(Buymenu_TD[8], 1); TextDrawSetProportional(Buymenu_TD[8], 1); TextDrawSetShadow(Buymenu_TD[8], 0); Buymenu_TD[9] = TextDrawCreate(342.666473, 147.273101, "Welcome!"); TextDrawLetterSize(Buymenu_TD[9], 0.400000, 1.600000); TextDrawAlignment(Buymenu_TD[9], 1); TextDrawColor(Buymenu_TD[9], -1); TextDrawSetShadow(Buymenu_TD[9], 0); TextDrawSetOutline(Buymenu_TD[9], 0); TextDrawBackgroundColor(Buymenu_TD[9], 255); TextDrawFont(Buymenu_TD[9], 1); TextDrawSetProportional(Buymenu_TD[9], 1); TextDrawSetShadow(Buymenu_TD[9], 0); Buymenu_TD[10] = TextDrawCreate(344.999938, 161.792678, "Click_on_any_of_the_items_~n~to_buy_them.~n~~n~Press_ESC_to_exit."); TextDrawLetterSize(Buymenu_TD[10], 0.255665, 0.932147); TextDrawAlignment(Buymenu_TD[10], 1); TextDrawColor(Buymenu_TD[10], -1); TextDrawSetShadow(Buymenu_TD[10], 0); TextDrawSetOutline(Buymenu_TD[10], 0); TextDrawBackgroundColor(Buymenu_TD[10], 255); TextDrawFont(Buymenu_TD[10], 1); TextDrawSetProportional(Buymenu_TD[10], 1); TextDrawSetShadow(Buymenu_TD[10], 0); Buymenu_TD[11] = TextDrawCreate(169.333267, 226.762939, ""); TextDrawLetterSize(Buymenu_TD[11], 0.000000, 0.000000); TextDrawTextSize(Buymenu_TD[11], 81.000000, 72.000000); TextDrawAlignment(Buymenu_TD[11], 1); TextDrawColor(Buymenu_TD[11], -1); TextDrawSetShadow(Buymenu_TD[11], 0); TextDrawSetOutline(Buymenu_TD[11], 0); TextDrawBackgroundColor(Buymenu_TD[11], -572662273); TextDrawFont(Buymenu_TD[11], 5); TextDrawSetProportional(Buymenu_TD[11], 0); TextDrawSetShadow(Buymenu_TD[11], 0); TextDrawSetSelectable(Buymenu_TD[11], true); TextDrawSetPreviewModel(Buymenu_TD[11], 336); TextDrawSetPreviewRot(Buymenu_TD[11], 200.000000, 150.000000, 1.000000, 2.099998); Buymenu_TD[12] = TextDrawCreate(170.333374, 226.088943, "Baseball_Bat"); TextDrawLetterSize(Buymenu_TD[12], 0.258666, 1.035851); TextDrawAlignment(Buymenu_TD[12], 1); TextDrawColor(Buymenu_TD[12], -1); TextDrawSetShadow(Buymenu_TD[12], 0); TextDrawSetOutline(Buymenu_TD[12], 1); TextDrawBackgroundColor(Buymenu_TD[12], 255); TextDrawFont(Buymenu_TD[12], 1); TextDrawSetProportional(Buymenu_TD[12], 1); TextDrawSetShadow(Buymenu_TD[12], 0); Buymenu_TD[13] = TextDrawCreate(230.333312, 289.555725, "$10"); TextDrawLetterSize(Buymenu_TD[13], 0.221000, 0.957036); TextDrawAlignment(Buymenu_TD[13], 1); TextDrawColor(Buymenu_TD[13], 8388863); TextDrawSetShadow(Buymenu_TD[13], 0); TextDrawSetOutline(Buymenu_TD[13], 0); TextDrawBackgroundColor(Buymenu_TD[13], 8388863); TextDrawFont(Buymenu_TD[13], 1); TextDrawSetProportional(Buymenu_TD[13], 1); TextDrawSetShadow(Buymenu_TD[13], 0); Buymenu_TD[14] = TextDrawCreate(253.999938, 226.348114, ""); TextDrawLetterSize(Buymenu_TD[14], 0.000000, 0.000000); TextDrawTextSize(Buymenu_TD[14], 81.000000, 73.000000); TextDrawAlignment(Buymenu_TD[14], 1); TextDrawColor(Buymenu_TD[14], -1); TextDrawSetShadow(Buymenu_TD[14], 0); TextDrawSetOutline(Buymenu_TD[14], 0); TextDrawBackgroundColor(Buymenu_TD[14], -572662273); TextDrawFont(Buymenu_TD[14], 5); TextDrawSetProportional(Buymenu_TD[14], 0); TextDrawSetShadow(Buymenu_TD[14], 0); TextDrawSetSelectable(Buymenu_TD[14], true); TextDrawSetPreviewModel(Buymenu_TD[14], 325); TextDrawSetPreviewRot(Buymenu_TD[14], 200.000000, 600.000000, -100.000000, 1.000000); Buymenu_TD[15] = TextDrawCreate(254.333389, 225.674118, "Flowers"); TextDrawLetterSize(Buymenu_TD[15], 0.260333, 1.060740); TextDrawAlignment(Buymenu_TD[15], 1); TextDrawColor(Buymenu_TD[15], -1); TextDrawSetShadow(Buymenu_TD[15], 0); TextDrawSetOutline(Buymenu_TD[15], 1); TextDrawBackgroundColor(Buymenu_TD[15], 255); TextDrawFont(Buymenu_TD[15], 1); TextDrawSetProportional(Buymenu_TD[15], 1); TextDrawSetShadow(Buymenu_TD[15], 0); Buymenu_TD[16] = TextDrawCreate(314.333343, 290.385437, "$3"); TextDrawLetterSize(Buymenu_TD[16], 0.221000, 0.957036); TextDrawAlignment(Buymenu_TD[16], 1); TextDrawColor(Buymenu_TD[16], 8388863); TextDrawSetShadow(Buymenu_TD[16], 0); TextDrawSetOutline(Buymenu_TD[16], 0); TextDrawBackgroundColor(Buymenu_TD[16], 8388863); TextDrawFont(Buymenu_TD[16], 1); TextDrawSetProportional(Buymenu_TD[16], 1); TextDrawSetShadow(Buymenu_TD[16], 0); Buymenu_TD[17] = TextDrawCreate(337.999877, 225.933273, ""); TextDrawLetterSize(Buymenu_TD[17], 0.000000, 0.000000); TextDrawTextSize(Buymenu_TD[17], 81.000000, 73.000000); TextDrawAlignment(Buymenu_TD[17], 1); TextDrawColor(Buymenu_TD[17], -1); TextDrawSetShadow(Buymenu_TD[17], 0); TextDrawSetOutline(Buymenu_TD[17], 0); TextDrawBackgroundColor(Buymenu_TD[17], -572662273); TextDrawFont(Buymenu_TD[17], 5); TextDrawSetProportional(Buymenu_TD[17], 0); TextDrawSetShadow(Buymenu_TD[17], 0); TextDrawSetSelectable(Buymenu_TD[17], true); TextDrawSetPreviewModel(Buymenu_TD[17], 326); TextDrawSetPreviewRot(Buymenu_TD[17], 200.000000, 600.000000, -100.000000, 1.000000); Buymenu_TD[18] = TextDrawCreate(339.000000, 225.259307, "Cane"); TextDrawLetterSize(Buymenu_TD[18], 0.260333, 1.060740); TextDrawAlignment(Buymenu_TD[18], 1); TextDrawColor(Buymenu_TD[18], -1); TextDrawSetShadow(Buymenu_TD[18], 0); TextDrawSetOutline(Buymenu_TD[18], 1); TextDrawBackgroundColor(Buymenu_TD[18], 255); TextDrawFont(Buymenu_TD[18], 1); TextDrawSetProportional(Buymenu_TD[18], 1); TextDrawSetShadow(Buymenu_TD[18], 0); Buymenu_TD[19] = TextDrawCreate(399.333312, 289.970672, "$20"); TextDrawLetterSize(Buymenu_TD[19], 0.221000, 0.957036); TextDrawAlignment(Buymenu_TD[19], 1); TextDrawColor(Buymenu_TD[19], 8388863); TextDrawSetShadow(Buymenu_TD[19], 0); TextDrawSetOutline(Buymenu_TD[19], 0); TextDrawBackgroundColor(Buymenu_TD[19], 8388863); TextDrawFont(Buymenu_TD[19], 1); TextDrawSetProportional(Buymenu_TD[19], 1); TextDrawSetShadow(Buymenu_TD[19], 0); Buymenu_TD[20] = TextDrawCreate(421.333099, 225.933258, ""); TextDrawLetterSize(Buymenu_TD[20], 0.000000, 0.000000); TextDrawTextSize(Buymenu_TD[20], 81.000000, 73.000000); TextDrawAlignment(Buymenu_TD[20], 1); TextDrawColor(Buymenu_TD[20], -1); TextDrawSetShadow(Buymenu_TD[20], 0); TextDrawSetOutline(Buymenu_TD[20], 0); TextDrawBackgroundColor(Buymenu_TD[20], -572662273); TextDrawFont(Buymenu_TD[20], 5); TextDrawSetProportional(Buymenu_TD[20], 0); TextDrawSetShadow(Buymenu_TD[20], 0); TextDrawSetSelectable(Buymenu_TD[20], true); TextDrawSetPreviewModel(Buymenu_TD[20], 367); TextDrawSetPreviewRot(Buymenu_TD[20], 20.000000, 7.000000, 2000.000000, 0.600000); Buymenu_TD[21] = TextDrawCreate(422.333251, 225.259307, "Camera"); TextDrawLetterSize(Buymenu_TD[21], 0.260333, 1.060740); TextDrawAlignment(Buymenu_TD[21], 1); TextDrawColor(Buymenu_TD[21], -1); TextDrawSetShadow(Buymenu_TD[21], 0); TextDrawSetOutline(Buymenu_TD[21], 1); TextDrawBackgroundColor(Buymenu_TD[21], 255); TextDrawFont(Buymenu_TD[21], 1); TextDrawSetProportional(Buymenu_TD[21], 1); TextDrawSetShadow(Buymenu_TD[21], 0); Buymenu_TD[22] = TextDrawCreate(407.666351, 214.888854, "PURCHASE"); TextDrawLetterSize(Buymenu_TD[22], 0.220332, 1.135408); TextDrawAlignment(Buymenu_TD[22], 1); TextDrawColor(Buymenu_TD[22], 8388863); TextDrawSetShadow(Buymenu_TD[22], 0); TextDrawSetOutline(Buymenu_TD[22], 1); TextDrawBackgroundColor(Buymenu_TD[22], 255); TextDrawFont(Buymenu_TD[22], 1); TextDrawSetProportional(Buymenu_TD[22], 1); TextDrawSetShadow(Buymenu_TD[22], 0); Buymenu_TD[23] = TextDrawCreate(449.666259, 215.303680, "EMPTY_CART"); TextDrawLetterSize(Buymenu_TD[23], 0.198999, 1.131260); TextDrawAlignment(Buymenu_TD[23], 1); TextDrawColor(Buymenu_TD[23], -16776961); TextDrawSetShadow(Buymenu_TD[23], 0); TextDrawSetOutline(Buymenu_TD[23], 1); TextDrawBackgroundColor(Buymenu_TD[23], 255); TextDrawFont(Buymenu_TD[23], 1); TextDrawSetProportional(Buymenu_TD[23], 1); TextDrawSetShadow(Buymenu_TD[23], 0); Buymenu_TD[24] = TextDrawCreate(169.333175, 301.429504, ""); TextDrawLetterSize(Buymenu_TD[24], 0.000000, 0.000000); TextDrawTextSize(Buymenu_TD[24], 81.000000, 73.000000); TextDrawAlignment(Buymenu_TD[24], 1); TextDrawColor(Buymenu_TD[24], -1); TextDrawSetShadow(Buymenu_TD[24], 0); TextDrawSetOutline(Buymenu_TD[24], 0); TextDrawBackgroundColor(Buymenu_TD[24], -572662273); TextDrawFont(Buymenu_TD[24], 5); TextDrawSetProportional(Buymenu_TD[24], 0); TextDrawSetShadow(Buymenu_TD[24], 0); TextDrawSetSelectable(Buymenu_TD[24], true); TextDrawSetPreviewModel(Buymenu_TD[24], 19036); TextDrawSetPreviewRot(Buymenu_TD[24], 0.200000, 0.500000, 50.000000, 1.000000); Buymenu_TD[25] = TextDrawCreate(170.333251, 301.170471, "OOC_Mask"); TextDrawLetterSize(Buymenu_TD[25], 0.243999, 1.027555); TextDrawAlignment(Buymenu_TD[25], 1); TextDrawColor(Buymenu_TD[25], -1); TextDrawSetShadow(Buymenu_TD[25], 0); TextDrawSetOutline(Buymenu_TD[25], 1); TextDrawBackgroundColor(Buymenu_TD[25], 255); TextDrawFont(Buymenu_TD[25], 1); TextDrawSetProportional(Buymenu_TD[25], 1); TextDrawSetShadow(Buymenu_TD[25], 0); Buymenu_TD[26] = TextDrawCreate(481.666717, 289.970672, "$50"); TextDrawLetterSize(Buymenu_TD[26], 0.221000, 0.957036); TextDrawAlignment(Buymenu_TD[26], 1); TextDrawColor(Buymenu_TD[26], 8388863); TextDrawSetShadow(Buymenu_TD[26], 0); TextDrawSetOutline(Buymenu_TD[26], 0); TextDrawBackgroundColor(Buymenu_TD[26], 8388863); TextDrawFont(Buymenu_TD[26], 1); TextDrawSetProportional(Buymenu_TD[26], 1); TextDrawSetShadow(Buymenu_TD[26], 0); Buymenu_TD[27] = TextDrawCreate(223.000122, 366.296691, "$200"); TextDrawLetterSize(Buymenu_TD[27], 0.221000, 0.957036); TextDrawAlignment(Buymenu_TD[27], 1); TextDrawColor(Buymenu_TD[27], 8388863); TextDrawSetShadow(Buymenu_TD[27], 0); TextDrawSetOutline(Buymenu_TD[27], 0); TextDrawBackgroundColor(Buymenu_TD[27], 8388863); TextDrawFont(Buymenu_TD[27], 1); TextDrawSetProportional(Buymenu_TD[27], 1); TextDrawSetShadow(Buymenu_TD[27], 0); Buymenu_TD[28] = TextDrawCreate(253.666534, 301.844207, ""); TextDrawLetterSize(Buymenu_TD[28], 0.000000, 0.000000); TextDrawTextSize(Buymenu_TD[28], 81.000000, 73.000000); TextDrawAlignment(Buymenu_TD[28], 1); TextDrawColor(Buymenu_TD[28], -1); TextDrawSetShadow(Buymenu_TD[28], 0); TextDrawSetOutline(Buymenu_TD[28], 0); TextDrawBackgroundColor(Buymenu_TD[28], -572662273); TextDrawFont(Buymenu_TD[28], 5); TextDrawSetProportional(Buymenu_TD[28], 0); TextDrawSetShadow(Buymenu_TD[28], 0); TextDrawSetSelectable(Buymenu_TD[28], true); TextDrawSetPreviewModel(Buymenu_TD[28], 19823); TextDrawSetPreviewRot(Buymenu_TD[28], 0.200000, 0.500000, 50.000000, 1.000000); Buymenu_TD[29] = TextDrawCreate(254.999908, 301.170410, "Drink"); TextDrawLetterSize(Buymenu_TD[29], 0.243999, 1.027555); TextDrawAlignment(Buymenu_TD[29], 1); TextDrawColor(Buymenu_TD[29], -1); TextDrawSetShadow(Buymenu_TD[29], 0); TextDrawSetOutline(Buymenu_TD[29], 1); TextDrawBackgroundColor(Buymenu_TD[29], 255); TextDrawFont(Buymenu_TD[29], 1); TextDrawSetProportional(Buymenu_TD[29], 1); TextDrawSetShadow(Buymenu_TD[29], 0); Buymenu_TD[30] = TextDrawCreate(314.333618, 366.296691, "$3"); TextDrawLetterSize(Buymenu_TD[30], 0.221000, 0.957036); TextDrawAlignment(Buymenu_TD[30], 1); TextDrawColor(Buymenu_TD[30], 8388863); TextDrawSetShadow(Buymenu_TD[30], 0); TextDrawSetOutline(Buymenu_TD[30], 0); TextDrawBackgroundColor(Buymenu_TD[30], 8388863); TextDrawFont(Buymenu_TD[30], 1); TextDrawSetProportional(Buymenu_TD[30], 1); TextDrawSetShadow(Buymenu_TD[30], 0); Buymenu_TD[31] = TextDrawCreate(338.333312, 301.844207, ""); TextDrawLetterSize(Buymenu_TD[31], 0.000000, 0.000000); TextDrawTextSize(Buymenu_TD[31], 81.000000, 73.000000); TextDrawAlignment(Buymenu_TD[31], 1); TextDrawColor(Buymenu_TD[31], -1); TextDrawSetShadow(Buymenu_TD[31], 0); TextDrawSetOutline(Buymenu_TD[31], 0); TextDrawBackgroundColor(Buymenu_TD[31], -572662273); TextDrawFont(Buymenu_TD[31], 5); TextDrawSetProportional(Buymenu_TD[31], 0); TextDrawSetShadow(Buymenu_TD[31], 0); TextDrawSetSelectable(Buymenu_TD[31], true); TextDrawSetPreviewModel(Buymenu_TD[31], 19897); TextDrawSetPreviewRot(Buymenu_TD[31], 600.000000, 400.000000, 200.000000, 1.000000); Buymenu_TD[32] = TextDrawCreate(339.666473, 301.170379, "Cigarette"); TextDrawLetterSize(Buymenu_TD[32], 0.243999, 1.027555); TextDrawAlignment(Buymenu_TD[32], 1); TextDrawColor(Buymenu_TD[32], -1); TextDrawSetShadow(Buymenu_TD[32], 0); TextDrawSetOutline(Buymenu_TD[32], 1); TextDrawBackgroundColor(Buymenu_TD[32], 255); TextDrawFont(Buymenu_TD[32], 1); TextDrawSetProportional(Buymenu_TD[32], 1); TextDrawSetShadow(Buymenu_TD[32], 0); Buymenu_TD[33] = TextDrawCreate(400.000305, 366.296661, "$30"); TextDrawLetterSize(Buymenu_TD[33], 0.221000, 0.957036); TextDrawAlignment(Buymenu_TD[33], 1); TextDrawColor(Buymenu_TD[33], 8388863); TextDrawSetShadow(Buymenu_TD[33], 0); TextDrawSetOutline(Buymenu_TD[33], 0); TextDrawBackgroundColor(Buymenu_TD[33], 8388863); TextDrawFont(Buymenu_TD[33], 1); TextDrawSetProportional(Buymenu_TD[33], 1); TextDrawSetShadow(Buymenu_TD[33], 0); Buymenu_TD[34] = TextDrawCreate(421.666625, 301.844268, ""); TextDrawLetterSize(Buymenu_TD[34], 0.000000, 0.000000); TextDrawTextSize(Buymenu_TD[34], 81.000000, 73.000000); TextDrawAlignment(Buymenu_TD[34], 1); TextDrawColor(Buymenu_TD[34], -1); TextDrawSetShadow(Buymenu_TD[34], 0); TextDrawSetOutline(Buymenu_TD[34], 0); TextDrawBackgroundColor(Buymenu_TD[34], -572662273); TextDrawFont(Buymenu_TD[34], 5); TextDrawSetProportional(Buymenu_TD[34], 0); TextDrawSetShadow(Buymenu_TD[34], 0); TextDrawSetSelectable(Buymenu_TD[34], true); TextDrawSetPreviewModel(Buymenu_TD[34], 19942); TextDrawSetPreviewRot(Buymenu_TD[34], 4000.000000, 4000.000000, 200.000000, 1.000000); Buymenu_TD[35] = TextDrawCreate(422.666351, 300.755401, "Radio"); TextDrawLetterSize(Buymenu_TD[35], 0.243999, 1.027555); TextDrawAlignment(Buymenu_TD[35], 1); TextDrawColor(Buymenu_TD[35], -1); TextDrawSetShadow(Buymenu_TD[35], 0); TextDrawSetOutline(Buymenu_TD[35], 1); TextDrawBackgroundColor(Buymenu_TD[35], 255); TextDrawFont(Buymenu_TD[35], 1); TextDrawSetProportional(Buymenu_TD[35], 1); TextDrawSetShadow(Buymenu_TD[35], 0); Buymenu_TD[36] = TextDrawCreate(474.000305, 365.881683, "$50"); TextDrawLetterSize(Buymenu_TD[36], 0.221000, 0.957036); TextDrawAlignment(Buymenu_TD[36], 1); TextDrawColor(Buymenu_TD[36], 8388863); TextDrawSetShadow(Buymenu_TD[36], 0); TextDrawSetOutline(Buymenu_TD[36], 0); TextDrawBackgroundColor(Buymenu_TD[36], 8388863); TextDrawFont(Buymenu_TD[36], 1); TextDrawSetProportional(Buymenu_TD[36], 1); TextDrawSetShadow(Buymenu_TD[36], 0); return true; } MySQLConnection() { /*new MySQLOpt: option_id = mysql_init_options(); mysql_set_option(option_id, AUTO_RECONNECT, true); no need as mysql automatically does this */ m_Handle = mysql_connect(SQL_HOSTNAME, SQL_USERNAME, SQL_PASSWORD, SQL_DATABASE/*, option_id*/); if(m_Handle) { printf("[MYSQL]: Connection to '%s' successful!", SQL_DATABASE); return true; } else { printf("[MYSQL]: Connection to '%s' failed!", SQL_DATABASE); return false; } } public OnGameModeExit() { //Saving: SaveProperties(); SaveFactions(); SaveBusinesses(); SaveTolls(); SavePaynSprays(); SaveDoors(); SavePropertyGarages(); foreach (new i : Player) { if(StartedTruckerMission[i]) { StartedTruckerMission[i] = false; KillTimer(TruckerJobTimer[i]); if(TruckerMissionStep[i] == 2) { TogglePlayerControllable(i, 1); KillTimer(TruckerJobDeliverTimer[i]); } for(new x = 0; x < 2; i++) PlayerTextDrawHide(i, TruckerEarning_PTD[i][x]); DisablePlayerCheckpoint(i); GiveMoney(i, TruckerJobEarnings[i]); TruckerJobEarnings[i] = 0; } OnPlayerDisconnect(i, 1); } //Closing database: mysql_close(m_Handle); return true; } /*public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) { switch(weaponid){ case 1: amount = 10; case 3: amount = 11; case 4: amount = 11; case 5: amount = 11; case 6: amount = 11; case 7: amount = 11; case 8: amount = 20; case 10 .. 15: amount = 5; case 22: amount = 12; case 23: amount = 13; case 24: amount = 30; case 25: amount = 40; case 27: amount = 65; case 28: amount = 14; case 29: amount = 16; case 30: amount = 17; case 31: amount = 18; case 32: amount = 14; case 33: amount = 60; case 34: amount = 100; } if(issuerid != INVALID_PLAYER_ID) { new Float: playerHealth, Float: playerArmor, Float: amoun; GetPlayerHealth(playerid, playerHealth); GetPlayerArmour(playerid, playerArmor); foreach(new i : Player) { if(WatchingDamages[i][playerid] == 1) { Message(i, COLOR_WHITE, "%s did %.2f damage to {FF6347}%s{FFFFFF} with a %s, Health: %f", ReturnName(issuerid), amount, ReturnName(playerid), ReturnWeaponName(weaponid), playerHealth-amount); } } if(GetPlayerTeam(playerid) == STATE_WOUNDED) { if(!PlayerData[playerid][pExecuteTime]){ SetDead(playerid); SetPlayerTeam(playerid, STATE_DEAD); new string[128]; format(string, sizeof(string), "Executed by %s with %s", ReturnName(issuerid), ReturnWeaponName(weaponid)); LogPlayerAction(playerid, string); format(string, sizeof(string), "Executed %s with %s", ReturnName(playerid), ReturnWeaponName(weaponid)); LogPlayerAction(issuerid, string); return false; } SetPlayerHealth(playerid, playerHealth); return false; } if(GetPlayerTeam(playerid) != STATE_ALIVE){ SetPlayerHealth(playerid, playerHealth); return false; } if(GetPlayerTeam(playerid) == STATE_ALIVE){ if(playerArmor > 0) { // if armor is greater than 0 amoun = playerArmor - amount; // armor - amount taken if(amoun <= 0){ // if armor - amount taken is less than or equal to 0 SetPlayerHealth(playerid, playerHealth - amount); // hp is set } else { // if the amoun is greater than 0 if(bodypart != BODY_PART_HEAD && bodypart != BODY_PART_RIGHT_LEG && bodypart != BODY_PART_LEFT_LEG){ // if bodypart isn't head or legs SetPlayerArmour(playerid, playerArmor - amount); } else{ // if bodypart is legs or head SetPlayerHealth(playerid, playerHealth - amount); // hp is taken } } } else{ SetPlayerHealth(playerid, playerHealth - amount); } } AddDamages(playerid, issuerid, weaponid, bodypart, amount); if(bodypart == BODY_PART_LEFT_LEG){ if(!PlayerData[playerid][pLegShot]) { PlayerData[playerid][pLegShot] = true; LegShotTimer[playerid] = SetTimerEx("LegShotEnd", 900000, false, "i", playerid); SendClientMessage(playerid, COLOR_ADM, "-> You've been hit in the leg, you're gonna struggle with running and jumping."); } } if(bodypart == BODY_PART_RIGHT_LEG){ if(!PlayerData[playerid][pLegShot]) { PlayerData[playerid][pLegShot] = true; LegShotTimer[playerid] = SetTimerEx("LegShotEnd", 900000, false, "i", playerid); SendClientMessage(playerid, COLOR_ADM, "-> You've been hit in the leg, you're gonna struggle with running and jumping."); } } if( playerHealth - amount <= 5 && GetPlayerTeam(playerid) == STATE_ALIVE ) { SetBrutallyWounded( playerid, issuerid, weaponid ); SetPlayerTeam(playerid, STATE_WOUNDED); if(IsPlayerInAnyVehicle(playerid)) ClearAnimations(playerid); return false; } if( playerHealth - amount <= 1 ){ SetBrutallyWounded(playerid, issuerid, weaponid); SetPlayerTeam(playerid, STATE_WOUNDED); return false; } } return true; }*/ stock IsPill(drug) { new ispill; switch (drug) { case DRUG_TYPE_ECSTASY, DRUG_TYPE_LSD, DRUG_TYPE_PCP, DRUG_TYPE_ASPIRIN, DRUG_TYPE_HALOP, DRUG_TYPE_MORPHINE, DRUG_TYPE_XANAX, DRUG_TYPE_MDMA, DRUG_TYPE_PHENETOLE, DRUG_TYPE_STEROIDS: { ispill = 1; } } return ispill; } stock GetPackageType(type) { new string[32]; switch (type) { case 0: string = "Ziploc Bag - Small"; case 1: string = "Ziploc Bag - Medium"; case 2: string = "Ziploc Bag - Large"; case 3: string = "Plastic Wrap Ball - Small"; case 4: string = "Plastic Wrap Ball - Medium"; case 5: string = "Plastic Wrap Ball - Large"; case 6: string = "Wrapped Foil - Small"; case 7: string = "Wrapped Foil - Medium"; case 8: string = "Wrapped Foil - Large"; case 9: string = "Pill Bottle - Small"; case 10: string = "Pill Bottle - Medium"; case 11: string = "Pill Bottle - Large"; case 12: string = "Wax Paper Wrap - Small"; case 13: string = "Wax Paper Wrap - Medium"; } return string; } stock CountPackages(playerid) { new count; for (new i = 0; i < 10; i++) if (DrugData[playerid][i][drugQuantity] > 0) count++; return count; } stock Float:GetPackageCapacity(type, drugtype) { new Float:capacity[][] = { {7.0, 16.0}, {14.0, 32.0}, {28.0, 50.0}, {7.0, 16.0}, {14.0, 32.0}, {28.0, 50.0}, {7.0, 16.0}, {14.0, 32.0}, {28.0, 50.0}, {7.0, 16.0}, {14.0, 32.0}, {28.0, 50.0}, {7.0, 16.0}, {14.0, 32.0} }; return capacity[type][IsPill(drugtype)]; } stock GiveDrugPackage(playerid, type, drugtype, Float:quantity, strength) { for (new i = 0; i < 10; i++) if (DrugData[playerid][i][drugQuantity] == 0) { new query[128]; DrugData[playerid][i][drugPackage] = type; DrugData[playerid][i][drugType] = drugtype; DrugData[playerid][i][drugQuantity] = quantity; DrugData[playerid][i][drugStrength] = strength; mysql_format(m_Handle, query, sizeof(query), "INSERT INTO player_drugs (playersqlid, slot, package, type, quantity, strength) VALUES (%d, %d, %d, %d, %.1f, %d)", PlayerData[playerid][pSQLID], i, type, drugtype, quantity, strength); mysql_tquery(m_Handle, query); return 1; } return 0; } stock RemoveDrugPackage(playerid, slot) { new query[100]; DrugData[playerid][slot][drugPackage] = 0; DrugData[playerid][slot][drugType] = 0; DrugData[playerid][slot][drugQuantity] = 0.0; DrugData[playerid][slot][drugStrength] = 0; mysql_format(m_Handle, query, sizeof(query), "DELETE FROM player_drugs WHERE playersqlid = %d AND slot = %d", PlayerData[playerid][pSQLID], slot); mysql_tquery(m_Handle, query); } Float:GetHousePackageCapacity(type) { new Float:capacity; switch (type) { case 0: capacity = 33.0; case 1: capacity = 53.0; case 2: capacity = 113.0; case 3: capacity = 113.0; case 4: capacity = 103.0; case 5: capacity = 103.0; case 6: capacity = 83.0; case 7: capacity = 123.0; case 8: capacity = 14.0; } return capacity; } GetPackageModel(type) { new model; switch (type) { case 0: model = 2768; case 1: model = 2647; case 2: model = 19562; case 3: model = 2694; case 4: model = 19569; case 5: model = 1575; case 6: model = 1582; case 7: model = 1220; case 8: model = 19896; } return model; } GetPackageName(type) { new name[32]; switch (type) { case 0: name = "Cluckin' Bell Burger Box"; case 1: name = "Burgershot Cup"; case 2: name = "Cok'O'Pops"; case 3: name = "Shoe Box"; case 4: name = "Milk Carton"; case 5: name = "Wrapped Package"; case 6: name = "Pizza Box"; case 7: name = "Cardboard Box"; case 8: name = "Cigarette Pack"; } return name; } public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart) { if (weaponid > 0 && !PlayerHasWeapon(playerid, weaponid)) return 0; switch(weaponid) { case 1: amount = 10; case 3: amount = 11; case 4: amount = 11; case 5: amount = 10; case 6: amount = 11; case 7: amount = 11; case 8: amount = 20; case 10 .. 15: amount = 5; case 22: amount = 29; case 23: amount = 13; case 24: amount = 30; case 25: amount = 75; case 27: amount = 65; case 28: amount = 34; case 29: amount = 16; case 30: amount = 35; case 31: amount = 18; case 32: amount = 14; case 33: amount = 60; case 34: amount = 100; } switch(bodypart) { case BODY_PART_HEAD: amount = amount * 1.5; case BODY_PART_LEFT_LEG, BODY_PART_RIGHT_LEG: amount = amount * 0.8; } new string[128]; if(damagedid != INVALID_PLAYER_ID) { new Float:targetPos[3], Float:distance, distancex; GetPlayerPos(damagedid, targetPos[0], targetPos[1], targetPos[2]); distance = GetPlayerDistanceFromPoint(playerid, targetPos[0], targetPos[1], targetPos[2]); distancex = floatround(distance, floatround_round); switch(distancex) { case 46 .. 70: { if(weaponid != WEAPON_SNIPER && weaponid != WEAPON_RIFLE) amount = amount * 0.74; else if(weaponid == WEAPON_M4 || weaponid == WEAPON_AK47) amount = amount * 0.79; } case 71 .. 200: { if(weaponid != WEAPON_SNIPER && weaponid != WEAPON_RIFLE) amount = amount * 0.70; else if(weaponid == WEAPON_M4 || weaponid == WEAPON_AK47) amount = amount * 0.74; } } new Float: playerHealth, Float: playerArmor, Float: amoun; GetPlayerHealth(damagedid, playerHealth); GetPlayerArmour(damagedid, playerArmor); foreach(new i : Player) { if(WatchingDamages[i][damagedid] == 1) { Message(i, COLOR_WHITE, "%s did %.2f damage to {FF6347}%s{FFFFFF} with a %s, Health: %f", ReturnName(playerid), amount, ReturnName(damagedid), ReturnWeaponName(weaponid), playerHealth-amount); } } if(GetPlayerTeam(damagedid) == STATE_WOUNDED) { if(!PlayerData[damagedid][pExecuteTime]){ SetDead(damagedid); SetPlayerTeam(damagedid, STATE_DEAD); format(string, sizeof(string), "Executed by %s with %s", ReturnName(playerid), ReturnWeaponName(weaponid)); LogPlayerAction(damagedid, string); format(string, sizeof(string), "Executed %s with %s", ReturnName(damagedid), ReturnWeaponName(weaponid)); LogPlayerAction(playerid, string); return false; } SetPlayerHealth(damagedid, playerHealth); return false; } if(GetPlayerTeam(damagedid) != STATE_ALIVE) { SetPlayerHealth(damagedid, playerHealth); return false; } if(GetPlayerTeam(damagedid) == STATE_ALIVE){ if(playerArmor > 0) { // if armor is greater than 0 amoun = playerArmor - amount; // armor - amount taken if(amoun <= 0){ // if armor - amount taken is less than or equal to 0 SetPlayerHealth(damagedid, playerHealth - amount); // hp is set } else { // if the amoun is greater than 0 if(bodypart != BODY_PART_HEAD && bodypart != BODY_PART_RIGHT_LEG && bodypart != BODY_PART_LEFT_LEG){ // if bodypart isn't head or legs SetPlayerArmour(damagedid, playerArmor - amount); } else{ // if bodypart is legs or head SetPlayerHealth(damagedid, playerHealth - amount); // hp is taken } } } else { SetPlayerHealth(damagedid, playerHealth - amount); } if(PlayerData[playerid][pRubberbullet] && GetPlayerWeapon(playerid) == 25) { if(!GetDistanceBetweenPlayers(playerid, damagedid, 26)) { SendClientMessage(playerid, COLOR_WHITE, "SERVER: Your shotguns beanbags don't go that far."); SetPlayerHealth(damagedid, playerHealth); if(playerArmor > 0) SetPlayerArmour(damagedid, playerArmor); return 0; } format(string, sizeof(string), "Rubberbulleted by %s", ReturnName(playerid)); LogPlayerAction(damagedid, string); format(string, sizeof(string), "Rubberbulleted player %s", ReturnName(damagedid)); LogPlayerAction(playerid, string); SendNearbyMessage(damagedid, 20.0, COLOR_EMOTE, "* %s gets hit by %s's rubberbullets and falls.", ReturnName(damagedid, 0), ReturnName(playerid, 0)); format(string, sizeof(string), "[ ! ] %s hit you with a rubberbullet!", ReturnName(playerid, 0)); SendClientMessage(damagedid, COLOR_ADM, string); format(string, sizeof(string), "[ ! ] You hit %s with your rubberbullets!", ReturnName(damagedid, 0)); SendClientMessage(playerid, COLOR_ADM, string); ClearAnimations(damagedid, 1); SetPlayerDrunkLevel(damagedid, 6000); TogglePlayerControllable(damagedid, 0); SetTimerEx("OnPlayerRubberbulleted", 1100, false, "i", damagedid); PlayerIsTased[damagedid] = 21; SetPlayerHealth(damagedid, playerHealth); if(playerArmor > 0) SetPlayerArmour(damagedid, playerArmor); return 0; } if(PlayerData[playerid][pTaser] && GetPlayerWeapon(playerid) == 23) { if(!GetDistanceBetweenPlayers(playerid, damagedid, 10.3)) { SendClientMessage(playerid, COLOR_WHITE, "SERVER: You aren't close enough for your prongs to hit."); SetPlayerHealth(damagedid, playerHealth); if(playerArmor > 0) SetPlayerArmour(damagedid, playerArmor); return 0; } format(string, sizeof(string), "Tasered by %s", ReturnName(playerid)); LogPlayerAction(damagedid, string); format(string, sizeof(string), "Tased player %s", ReturnName(damagedid)); LogPlayerAction(playerid, string); ClearAnimations(damagedid, 1); SetPlayerDrunkLevel(damagedid, 5000); SendNearbyMessage(damagedid, 20.0, COLOR_EMOTE, "* %s falls on the ground after being hit by %s's taser.", ReturnName(damagedid, 0), ReturnName(playerid, 0)); GameTextForPlayer(damagedid, "~r~You Are Tasered", 3000, 3); TogglePlayerControllable(damagedid, false); format(string, sizeof(string), "[ ! ] You were tasered by %s!", ReturnName(playerid, 0)); SendClientMessage(damagedid, COLOR_ADM, string); format(string, sizeof(string), "[ ! ] You tasered %s!", ReturnName(damagedid, 0)); SendClientMessage(playerid, COLOR_ADM, string); SetTimerEx("OnPlayerTasered", 1200, false, "i", damagedid); PlayerIsTased[damagedid] = 21; SetPlayerHealth(damagedid, playerHealth); if(playerArmor > 0) SetPlayerArmour(damagedid, playerArmor); return 0; } if (PlayerData[playerid][pTackle] && weaponid == 0) { if (random(7)) { format(string, sizeof(string), "Tackled by %s", ReturnName(playerid)); LogPlayerAction(damagedid, string); format(string, sizeof(string), "Tackled player %s", ReturnName(damagedid)); LogPlayerAction(playerid, string); ClearAnimations(damagedid, 1); TogglePlayerControllable(damagedid, false); SendNearbyMessage(damagedid, 20.0, COLOR_EMOTE, "* %s falls on the ground after being tackled by %s.", ReturnName(damagedid, 0), ReturnName(playerid, 0)); GameTextForPlayer(damagedid, "~r~You Were Tackled", 3000, 3); format(string, sizeof(string), "[ ! ] %s tackled you!", ReturnName(playerid, 0)); SendClientMessage(damagedid, COLOR_ADM, string); format(string, sizeof(string), "[ ! ] You tackled %s!", ReturnName(damagedid, 0)); SendClientMessage(playerid, COLOR_ADM, string); SetTimerEx("OnPlayerTackled", 1200, false, "iii", damagedid, playerid, true); PlayerIsTased[damagedid] = 16; } else { format(string, sizeof(string), "Attempted to be tackled by %s", ReturnName(playerid)); LogPlayerAction(damagedid, string); format(string, sizeof(string), "Attempted to tackle player %s", ReturnName(damagedid)); LogPlayerAction(playerid, string); cmd_me(playerid, sprintf("attempts to tackle %s and fails.", ReturnName(damagedid))); ClearAnimations(playerid, 1); TogglePlayerControllable(playerid, false); SetTimerEx("OnPlayerTackled", 1200, false, "iii", damagedid, playerid, false); PlayerIsTased[playerid] = 16; } SetPlayerHealth(damagedid, playerHealth); if(playerArmor > 0) SetPlayerArmour(damagedid, playerArmor); return 0; } } AddDamages(damagedid, playerid, weaponid, bodypart, amount); if(!PlayerData[damagedid][pAdminDuty]) { if(bodypart == BODY_PART_LEFT_LEG || bodypart == BODY_PART_RIGHT_LEG) { if(!PlayerData[damagedid][pLegShot]) { PlayerData[damagedid][pLegShot] = true; LegShotTimer[damagedid] = SetTimerEx("LegShotEnd", 900000, false, "i", damagedid); SendClientMessage(damagedid, COLOR_ADM, "-> You've been hit in the leg, you're gonna struggle with running and jumping."); } } } /*if(bodypart == BODY_PART_RIGHT_LEG){ if(!PlayerData[damagedid][pLegShot]) { PlayerData[damagedid][pLegShot] = true; LegShotTimer[damagedid] = SetTimerEx("LegShotEnd", 900000, false, "i", damagedid); SendClientMessage(damagedid, COLOR_ADM, "-> You've been hit in the leg, you're gonna struggle with running and jumping."); } }*/ if( playerHealth - amount <= 5 && GetPlayerTeam(damagedid) == STATE_ALIVE ) { SetBrutallyWounded( damagedid, playerid, weaponid ); SetPlayerTeam(damagedid, STATE_WOUNDED); if(IsPlayerInAnyVehicle(damagedid)) ClearAnimations(damagedid); return false; } if( playerHealth - amount <= 1 ){ SetBrutallyWounded(damagedid, playerid, weaponid); SetPlayerTeam(damagedid, STATE_WOUNDED); return false; } } return true; } public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ) { new string[128]; if(GetTickCount() > (PlayerData[playerid ][pPauseCheck]+2000)) { format(string, sizeof(string), "%s(%d) may be cheating OR desynced (or TABBED) while shooting.", ReturnName(playerid), playerid); adminWarn(1, string); } if(PlayerHasWeapon(playerid, weaponid)) { UpdatePlayerWeapon(playerid, weaponid); } else { if(!PlayerData[playerid][pExecuteTime]) { format(string, sizeof(string), "%s(%d) may be cheating[Shooting] a: %s (Ammo: %i)", ReturnName(playerid), playerid, ReturnWeaponName(weaponid), GetPlayerAmmo(playerid)); adminWarn(1, string); return 0; } } if(hittype == BULLET_HIT_TYPE_PLAYER) { if(GetPlayerTeam(hitid) == STATE_WOUNDED){ if(!PlayerData[hitid][pExecuteTime]) { SetDead(hitid); SetPlayerTeam(hitid, STATE_DEAD); format(string, sizeof(string), "Executed by %s with %s", ReturnName(playerid), ReturnWeaponName(weaponid)); LogPlayerAction(hitid, string); format(string, sizeof(string), "Executed %s with %s", ReturnName(hitid), ReturnWeaponName(weaponid)); LogPlayerAction(playerid, string); return false; } return false; } else{ if(GetPlayerTeam(hitid) != STATE_ALIVE)return false; } } if(PlayerData[playerid][pTaser] && weaponid == 23) { //SetPlayerArmedWeapon(playerid, 0); ApplyAnimation(playerid, "COLT45", "colt45_reload", 4.1, 0, 0, 0, 0, 0); SetTimerEx("OnTaserShoot", 1100, false, "i", playerid); } return true; } public OnPlayerConnect(playerid) { for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) { RemovePlayerAttachedObject(playerid, i); } foreach(new i : Player) { if(PlayerData[i][pAdmin] && PlayerData[i][pToggleConnects]) { Message(i, COLOR_GREY, "**%s[%i] connected to the server. IP: %s", ReturnName(playerid), playerid, ReturnIP(playerid)); } } ResetPlayerWeapons(playerid); ResetPlayerMoney(playerid); DefaultPlayerValues(playerid); CheckPlayerBans(playerid); PreloadAnimations(playerid); SetPlayerColor(playerid, COLOR_GREY); phone_OnPlayerConnect(playerid); //createMDTTextdraws(playerid); InitMDC(playerid); SetUp[playerid][0] = CreatePlayerTextDraw(playerid, 160.000000, 173.000000, "_"); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][0], 255); PlayerTextDrawFont(playerid, SetUp[playerid][0], 1); PlayerTextDrawLetterSize(playerid, SetUp[playerid][0], 0.500000, 14.599998); PlayerTextDrawColor(playerid, SetUp[playerid][0], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][0], 0); PlayerTextDrawSetProportional(playerid, SetUp[playerid][0], 1); PlayerTextDrawSetShadow(playerid, SetUp[playerid][0], 1); PlayerTextDrawUseBox(playerid, SetUp[playerid][0], 1); PlayerTextDrawBoxColor(playerid, SetUp[playerid][0], 119); PlayerTextDrawTextSize(playerid, SetUp[playerid][0], 10.000000, 20.000000); SetUp[playerid][1] = CreatePlayerTextDraw(playerid, 9.000000, 162.000000, "Character Setup"); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][1], 255); PlayerTextDrawFont(playerid, SetUp[playerid][1], 0); PlayerTextDrawLetterSize(playerid, SetUp[playerid][1], 0.569999, 1.799998); PlayerTextDrawColor(playerid, SetUp[playerid][1], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][1], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][1], 1); SetUp[playerid][2] = CreatePlayerTextDraw(playerid, 18.000000, 184.000000, "~g~~h~Gender:"); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][2], 255); PlayerTextDrawFont(playerid, SetUp[playerid][2], 2); PlayerTextDrawLetterSize(playerid, SetUp[playerid][2], 0.239999, 1.200000); PlayerTextDrawColor(playerid, SetUp[playerid][2], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][2], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][2], 1); SetUp[playerid][3] = CreatePlayerTextDraw(playerid, 19.000000, 195.000000, "Male"); PlayerTextDrawTextSize(playerid, SetUp[playerid][3], 100.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][3], 255); PlayerTextDrawFont(playerid, SetUp[playerid][3], 2); PlayerTextDrawLetterSize(playerid, SetUp[playerid][3], 0.239999, 1.100000); PlayerTextDrawColor(playerid, SetUp[playerid][3], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][3], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][3], 1); PlayerTextDrawSetSelectable(playerid, SetUp[playerid][3], true); SetUp[playerid][4] = CreatePlayerTextDraw(playerid, 19.000000, 205.000000, "Female"); PlayerTextDrawTextSize(playerid, SetUp[playerid][4], 100.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][4], 255); PlayerTextDrawFont(playerid, SetUp[playerid][4], 2); PlayerTextDrawLetterSize(playerid, SetUp[playerid][4], 0.240000, 1.100000); PlayerTextDrawColor(playerid, SetUp[playerid][4], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][4], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][4], 1); PlayerTextDrawSetSelectable(playerid, SetUp[playerid][4], true); SetUp[playerid][5] = CreatePlayerTextDraw(playerid, 18.000000, 225.000000, "~g~~h~Age:"); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][5], 255); PlayerTextDrawFont(playerid, SetUp[playerid][5], 2); PlayerTextDrawLetterSize(playerid, SetUp[playerid][5], 0.239999, 1.100000); PlayerTextDrawColor(playerid, SetUp[playerid][5], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][5], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][5], 1); SetUp[playerid][6] = CreatePlayerTextDraw(playerid, 19.000000, 235.000000, "13 years old"); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][6], 255); PlayerTextDrawFont(playerid, SetUp[playerid][6], 2); PlayerTextDrawLetterSize(playerid, SetUp[playerid][6], 0.230000, 1.100000); PlayerTextDrawColor(playerid, SetUp[playerid][6], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][6], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][6], 1); SetUp[playerid][7] = CreatePlayerTextDraw(playerid, 123.000000, 235.000000, "-"); PlayerTextDrawAlignment(playerid, SetUp[playerid][7], 2); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][7], 255); PlayerTextDrawFont(playerid, SetUp[playerid][7], 0); PlayerTextDrawLetterSize(playerid, SetUp[playerid][7], 0.589999, 1.200000); PlayerTextDrawColor(playerid, SetUp[playerid][7], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][7], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][7], 1); PlayerTextDrawUseBox(playerid, SetUp[playerid][7], 1); PlayerTextDrawBoxColor(playerid, SetUp[playerid][7], 68); PlayerTextDrawTextSize(playerid, SetUp[playerid][7], 20.000000, 15.000000); PlayerTextDrawSetSelectable(playerid, SetUp[playerid][7], true); SetUp[playerid][8] = CreatePlayerTextDraw(playerid, 143.000000, 235.000000, "+"); PlayerTextDrawAlignment(playerid, SetUp[playerid][8], 2); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][8], 255); PlayerTextDrawFont(playerid, SetUp[playerid][8], 0); PlayerTextDrawLetterSize(playerid, SetUp[playerid][8], 0.389999, 1.200000); PlayerTextDrawColor(playerid, SetUp[playerid][8], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][8], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][8], 1); PlayerTextDrawUseBox(playerid, SetUp[playerid][8], 1); PlayerTextDrawBoxColor(playerid, SetUp[playerid][8], 68); PlayerTextDrawTextSize(playerid, SetUp[playerid][8], 20.000000, 15.000000); PlayerTextDrawSetSelectable(playerid, SetUp[playerid][8], true); SetUp[playerid][9] = CreatePlayerTextDraw(playerid, 18.000000, 256.000000, "~g~~h~Outfit:"); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][9], 255); PlayerTextDrawFont(playerid, SetUp[playerid][9], 2); PlayerTextDrawLetterSize(playerid, SetUp[playerid][9], 0.239999, 1.100000); PlayerTextDrawColor(playerid, SetUp[playerid][9], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][9], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][9], 1); SetUp[playerid][10] = CreatePlayerTextDraw(playerid, 19.000000, 266.000000, "Skin: 299"); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][10], 255); PlayerTextDrawFont(playerid, SetUp[playerid][10], 2); PlayerTextDrawLetterSize(playerid, SetUp[playerid][10], 0.230000, 1.100000); PlayerTextDrawColor(playerid, SetUp[playerid][10], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][10], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][10], 1); SetUp[playerid][11] = CreatePlayerTextDraw(playerid, 123.000000, 267.000000, "<<"); PlayerTextDrawAlignment(playerid, SetUp[playerid][11], 2); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][11], 255); PlayerTextDrawFont(playerid, SetUp[playerid][11], 0); PlayerTextDrawLetterSize(playerid, SetUp[playerid][11], 0.219999, 1.200000); PlayerTextDrawColor(playerid, SetUp[playerid][11], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][11], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][11], 1); PlayerTextDrawUseBox(playerid, SetUp[playerid][11], 1); PlayerTextDrawBoxColor(playerid, SetUp[playerid][11], 68); PlayerTextDrawTextSize(playerid, SetUp[playerid][11], 20.000000, 15.000000); PlayerTextDrawSetSelectable(playerid, SetUp[playerid][11], true); SetUp[playerid][12] = CreatePlayerTextDraw(playerid, 143.000000, 267.000000, ">>"); PlayerTextDrawAlignment(playerid, SetUp[playerid][12], 2); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][12], 255); PlayerTextDrawFont(playerid, SetUp[playerid][12], 0); PlayerTextDrawLetterSize(playerid, SetUp[playerid][12], 0.219999, 1.200000); PlayerTextDrawColor(playerid, SetUp[playerid][12], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][12], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][12], 1); PlayerTextDrawUseBox(playerid, SetUp[playerid][12], 1); PlayerTextDrawBoxColor(playerid, SetUp[playerid][12], 68); PlayerTextDrawTextSize(playerid, SetUp[playerid][12], 20.000000, 15.000000); PlayerTextDrawSetSelectable(playerid, SetUp[playerid][12], true); SetUp[playerid][13] = CreatePlayerTextDraw(playerid, 37.000000, 290.000000, "Reset"); PlayerTextDrawAlignment(playerid, SetUp[playerid][13], 2); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][13], 255); PlayerTextDrawFont(playerid, SetUp[playerid][13], 2); PlayerTextDrawLetterSize(playerid, SetUp[playerid][13], 0.230000, 1.200000); PlayerTextDrawColor(playerid, SetUp[playerid][13], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][13], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][13], 1); PlayerTextDrawUseBox(playerid, SetUp[playerid][13], 1); PlayerTextDrawBoxColor(playerid, SetUp[playerid][13], 68); PlayerTextDrawTextSize(playerid, SetUp[playerid][13], 20.000000, 37.000000); PlayerTextDrawSetSelectable(playerid, SetUp[playerid][13], true); SetUp[playerid][14] = CreatePlayerTextDraw(playerid, 85.000000, 290.000000, "Confirm"); PlayerTextDrawAlignment(playerid, SetUp[playerid][14], 2); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][14], 255); PlayerTextDrawFont(playerid, SetUp[playerid][14], 2); PlayerTextDrawLetterSize(playerid, SetUp[playerid][14], 0.230000, 1.200000); PlayerTextDrawColor(playerid, SetUp[playerid][14], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][14], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][14], 1); PlayerTextDrawUseBox(playerid, SetUp[playerid][14], 1); PlayerTextDrawBoxColor(playerid, SetUp[playerid][14], 68); PlayerTextDrawTextSize(playerid, SetUp[playerid][14], 20.000000, 46.000000); PlayerTextDrawSetSelectable(playerid, SetUp[playerid][14], true); SetUp[playerid][15] = CreatePlayerTextDraw(playerid, 133.000000, 290.000000, "Help"); PlayerTextDrawAlignment(playerid, SetUp[playerid][15], 2); PlayerTextDrawBackgroundColor(playerid, SetUp[playerid][15], 255); PlayerTextDrawFont(playerid, SetUp[playerid][15], 2); PlayerTextDrawLetterSize(playerid, SetUp[playerid][15], 0.230000, 1.200000); PlayerTextDrawColor(playerid, SetUp[playerid][15], -1); PlayerTextDrawSetOutline(playerid, SetUp[playerid][15], 1); PlayerTextDrawSetProportional(playerid, SetUp[playerid][15], 1); PlayerTextDrawUseBox(playerid, SetUp[playerid][15], 1); PlayerTextDrawBoxColor(playerid, SetUp[playerid][15], 68); PlayerTextDrawTextSize(playerid, SetUp[playerid][15], 20.000000, 37.000000); PlayerTextDrawSetSelectable(playerid, SetUp[playerid][15], true); MDC_Layout[playerid][0] = CreatePlayerTextDraw(playerid, 519.575378, 177.166748, "box"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][0], 0.000000, 1.566619); PlayerTextDrawTextSize(playerid, MDC_Layout[playerid][0], 615.000000, 0.000000); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][0], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][0], -1); PlayerTextDrawUseBox(playerid, MDC_Layout[playerid][0], 1); PlayerTextDrawBoxColor(playerid, MDC_Layout[playerid][0], -1717986982); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][0], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][0], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][0], 1962829311); PlayerTextDrawFont(playerid, MDC_Layout[playerid][0], 1); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][0], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][0], 0); MDC_Layout[playerid][1] = CreatePlayerTextDraw(playerid, 565.959411, 177.750000, "EMERGENCY_LIGHT"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][1], 0.247730, 1.174165); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][1], 2); PlayerTextDrawColor(playerid, MDC_Layout[playerid][1], -1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][1], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][1], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][1], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][1], 1); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][1], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][1], 0); MDC_Layout[playerid][2] = CreatePlayerTextDraw(playerid, 519.106933, 202.250076, "box"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][2], 0.000000, 12.623718); PlayerTextDrawTextSize(playerid, MDC_Layout[playerid][2], 616.000000, 0.000000); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][2], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][2], -1); PlayerTextDrawUseBox(playerid, MDC_Layout[playerid][2], 1); PlayerTextDrawBoxColor(playerid, MDC_Layout[playerid][2], -1717986982); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][2], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][2], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][2], 1962829311); PlayerTextDrawFont(playerid, MDC_Layout[playerid][2], 1); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][2], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][2], 0); MDC_Layout[playerid][3] = CreatePlayerTextDraw(playerid, 526.603271, 206.916717, "PRIMARY"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][3], 0.153557, 1.086665); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][3], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][3], 255); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][3], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][3], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][3], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][3], 2); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][3], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][3], 0); MDC_Layout[playerid][4] = CreatePlayerTextDraw(playerid, 576.735107, 205.166641, "~g~Off"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][4], 0.217276, 1.337499); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][4], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][4], -1523963137); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][4], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][4], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][4], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][4], 2); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][4], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][4], 0); PlayerTextDrawSetSelectable(playerid, MDC_Layout[playerid][4], true); MDC_Layout[playerid][5] = CreatePlayerTextDraw(playerid, 526.603271, 225.583312, "STROBE"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][5], 0.153557, 1.086665); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][5], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][5], 255); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][5], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][5], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][5], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][5], 2); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][5], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][5], 0); MDC_Layout[playerid][6] = CreatePlayerTextDraw(playerid, 576.735107, 223.833312, "~g~Off"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][6], 0.217276, 1.337499); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][6], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][6], -1523963137); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][6], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][6], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][6], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][6], 2); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][6], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][6], 0); PlayerTextDrawSetSelectable(playerid, MDC_Layout[playerid][6], true); MDC_Layout[playerid][7] = CreatePlayerTextDraw(playerid, 526.134765, 244.833312, "SEARCH"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][7], 0.153557, 1.086665); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][7], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][7], 255); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][7], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][7], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][7], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][7], 2); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][7], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][7], 0); MDC_Layout[playerid][8] = CreatePlayerTextDraw(playerid, 576.735046, 243.083282, "~g~Off"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][8], 0.217276, 1.337499); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][8], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][8], -1523963137); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][8], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][8], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][8], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][8], 2); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][8], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][8], 0); PlayerTextDrawSetSelectable(playerid, MDC_Layout[playerid][8], true); MDC_Layout[playerid][9] = CreatePlayerTextDraw(playerid, 595.476196, 205.750015, "~y~Static"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][9], 0.117012, 1.179999); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][9], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][9], -1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][9], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][9], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][9], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][9], 2); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][9], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][9], 0); MDC_Layout[playerid][10] = CreatePlayerTextDraw(playerid, 595.944580, 221.500030, "~y~Static"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][10], 0.116075, 1.284999); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][10], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][10], -1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][10], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][10], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][10], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][10], 2); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][10], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][10], 0); MDC_Layout[playerid][11] = CreatePlayerTextDraw(playerid, 535.973937, 264.083251, "Dispatch"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][11], 0.168549, 1.162497); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][11], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][11], -1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][11], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][11], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][11], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][11], 2); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][11], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][11], 0); PlayerTextDrawSetSelectable(playerid, MDC_Layout[playerid][11], true); MDC_Layout[playerid][12] = CreatePlayerTextDraw(playerid, 532.225463, 282.166748, "box"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][12], 0.000000, 2.691070); PlayerTextDrawTextSize(playerid, MDC_Layout[playerid][12], 609.000000, 0.000000); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][12], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][12], -2139062017); PlayerTextDrawUseBox(playerid, MDC_Layout[playerid][12], 1); PlayerTextDrawBoxColor(playerid, MDC_Layout[playerid][12], -1523963137); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][12], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][12], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][12], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][12], 1); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][12], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][12], 0); MDC_Layout[playerid][13] = CreatePlayerTextDraw(playerid, 613.279968, 264.083435, "[~bl~IIIIIIII~w~]"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][13], 0.214465, 1.174165); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][13], 3); PlayerTextDrawColor(playerid, MDC_Layout[playerid][13], -1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][13], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][13], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][13], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][13], 1); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][13], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][13], 0); MDC_Layout[playerid][14] = CreatePlayerTextDraw(playerid, 537.379211, 282.166748, "Something_here"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][14], 0.180261, 0.882498); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][14], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][14], -1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][14], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][14], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][14], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][14], 1); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][14], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][14], 0); MDC_Layout[playerid][15] = CreatePlayerTextDraw(playerid, 537.379272, 292.083435, "Something_here"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][15], 0.180261, 0.882498); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][15], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][15], -1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][15], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][15], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][15], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][15], 1); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][15], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][15], 0); MDC_Layout[playerid][16] = CreatePlayerTextDraw(playerid, 586.573974, 276.916625, "l"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][16], 0.255225, 3.279999); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][16], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][16], 255); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][16], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][16], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][16], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][16], 1); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][16], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][16], 0); MDC_Layout[playerid][17] = CreatePlayerTextDraw(playerid, 600.160644, 282.166564, "BACK-UP~n~DEPART"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][17], 0.134816, 1.086665); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][17], 2); PlayerTextDrawColor(playerid, MDC_Layout[playerid][17], 255); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][17], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][17], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][17], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][17], 1); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][17], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][17], 0); MDC_Layout[playerid][18] = CreatePlayerTextDraw(playerid, 595.944580, 241.916687, "~y~Static"); PlayerTextDrawLetterSize(playerid, MDC_Layout[playerid][18], 0.116075, 1.284999); PlayerTextDrawAlignment(playerid, MDC_Layout[playerid][18], 1); PlayerTextDrawColor(playerid, MDC_Layout[playerid][18], -1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][18], 0); PlayerTextDrawSetOutline(playerid, MDC_Layout[playerid][18], 0); PlayerTextDrawBackgroundColor(playerid, MDC_Layout[playerid][18], 255); PlayerTextDrawFont(playerid, MDC_Layout[playerid][18], 2); PlayerTextDrawSetProportional(playerid, MDC_Layout[playerid][18], 1); PlayerTextDrawSetShadow(playerid, MDC_Layout[playerid][18], 0); //Police Buildings RemoveBuildingForPlayer(playerid, 17535, 2364.0547, -1391.5313, 41.3516, 0.25); RemoveBuildingForPlayer(playerid, 17965, 2322.2813, -1355.1953, 25.4063, 0.25); RemoveBuildingForPlayer(playerid, 1266, 2317.5859, -1355.8281, 37.2188, 0.25); RemoveBuildingForPlayer(playerid, 17970, 2364.0547, -1391.5313, 41.3516, 0.25); RemoveBuildingForPlayer(playerid, 1308, 2331.4453, -1373.5313, 23.0938, 0.25); RemoveBuildingForPlayer(playerid, 1315, 2310.0547, -1376.9453, 26.2422, 0.25); RemoveBuildingForPlayer(playerid, 17504, 2378.6719, -1455.2578, 26.7422, 0.25); RemoveBuildingForPlayer(playerid, 1297, 2308.5859, -1356.2813, 26.2266, 0.25); RemoveBuildingForPlayer(playerid, 17543, 2322.2813, -1355.1953, 25.4063, 0.25); RemoveBuildingForPlayer(playerid, 1260, 2317.5938, -1355.8203, 37.2266, 0.25); RemoveBuildingForPlayer(playerid, 620, 2336.9844, -1350.5781, 22.7266, 0.25); RemoveBuildingForPlayer(playerid, 5422, 2071.4766, -1831.4219, 14.5625, 0.25); // Idlewood PNS RemoveBuildingForPlayer(playerid, 6400, 488.2813, -1734.6953, 12.3906, 0.25); // Santa Maria PNS RemoveBuildingForPlayer(playerid, 5856, 1024.9844, -1029.3516, 33.1953, 0.25); // Temple PNS RemoveBuildingForPlayer(playerid, 13028, 720.0156, -462.5234, 16.8594, 0.25); // Dillimore PNS RemoveBuildingForPlayer(playerid, 3294, -100.0000, 1111.4141, 21.6406, 0.25); // Fort Carson PNS RemoveBuildingForPlayer(playerid, 3294, -1420.5469, 2591.1563, 57.7422, 0.25); // El Q ... PNS RemoveBuildingForPlayer(playerid, 11319, -1904.5313, 277.8984, 42.9531, 0.25); // SF PNS RemoveBuildingForPlayer(playerid, 11313, -1935.8594, 239.5313, 35.3516, 0.25); // SF Carshop East RemoveBuildingForPlayer(playerid, 10575, -2716.3516, 217.4766, 5.3828, 0.25); // SF Carshop West RemoveBuildingForPlayer(playerid, 9093, 2386.6563, 1043.6016, 11.5938, 0.25); // LV Carshop RemoveBuildingForPlayer(playerid, 5340, 2644.8594, -2039.2344, 14.0391, 0.25); // Seville Carshop RemoveBuildingForPlayer(playerid, 5779, 1041.3516, -1025.9297, 32.6719, 0.25); // Temple Carshop RemoveBuildingForPlayer(playerid, 792, 1279.7344, -1552.9453, 12.2188, 0.25); // Market DMV RemoveBuildingForPlayer(playerid, 1231, 1273.6094, -1542.3750, 15.2344, 0.25); // Market DMV RemoveBuildingForPlayer(playerid, 792, 1280.0313, -1531.1406, 12.0703, 0.25); // Market DMV RemoveBuildingForPlayer(playerid, 1231, 1263.3047, -1520.1484, 15.1953, 0.25); // Market DMV //Prison Mapping RemoveBuildingForPlayer(playerid, 16614, -346.6719, 1595.0781, 79.6641, 0.25); RemoveBuildingForPlayer(playerid, 16615, -389.7656, 1515.1641, 74.5547, 0.25); RemoveBuildingForPlayer(playerid, 16616, -326.6953, 1541.3906, 74.5547, 0.25); RemoveBuildingForPlayer(playerid, 16137, -389.7656, 1515.1641, 74.5547, 0.25); RemoveBuildingForPlayer(playerid, 16138, -326.6953, 1541.3906, 74.5547, 0.25); RemoveBuildingForPlayer(playerid, 16613, -346.6719, 1595.0781, 79.6641, 0.25); Init_SpeedText(playerid); LoadWarehouseMenu_2(playerid); CrateInventory_P[playerid][0] = CreatePlayerTextDraw(playerid, 553.666687, 128.607421, "AK-47~n~M4A1"); PlayerTextDrawLetterSize(playerid, CrateInventory_P[playerid][0], 0.203000, 0.741333); PlayerTextDrawAlignment(playerid, CrateInventory_P[playerid][0], 1); PlayerTextDrawColor(playerid, CrateInventory_P[playerid][0], -1); PlayerTextDrawSetShadow(playerid, CrateInventory_P[playerid][0], 0); PlayerTextDrawSetOutline(playerid, CrateInventory_P[playerid][0], 1); PlayerTextDrawBackgroundColor(playerid, CrateInventory_P[playerid][0], 255); PlayerTextDrawFont(playerid, CrateInventory_P[playerid][0], 1); PlayerTextDrawSetProportional(playerid, CrateInventory_P[playerid][0], 1); PlayerTextDrawSetShadow(playerid, CrateInventory_P[playerid][0], 0); //Default Textdraws DefaultTextdraw[playerid] = CreatePlayerTextDraw(playerid, 97.333351, 291.629669, "~y~............"); PlayerTextDrawLetterSize(playerid, DefaultTextdraw[playerid], 0.216666, 1.139555); PlayerTextDrawAlignment(playerid, DefaultTextdraw[playerid], 1); PlayerTextDrawColor(playerid, DefaultTextdraw[playerid], -1523963137); PlayerTextDrawSetShadow(playerid, DefaultTextdraw[playerid], 0); PlayerTextDrawSetOutline(playerid, DefaultTextdraw[playerid], 1); PlayerTextDrawBackgroundColor(playerid, DefaultTextdraw[playerid], 255); PlayerTextDrawFont(playerid, DefaultTextdraw[playerid], 2); PlayerTextDrawSetProportional(playerid, DefaultTextdraw[playerid], 1); PlayerTextDrawSetShadow(playerid, DefaultTextdraw[playerid], 0); //Graffiti Display GraffitiDisplay[playerid] = CreatePlayerTextDraw(playerid, 97.333351, 291.629669, "~y~............"); PlayerTextDrawLetterSize(playerid, GraffitiDisplay[playerid], 0.216666, 1.139555); PlayerTextDrawAlignment(playerid, GraffitiDisplay[playerid], 1); PlayerTextDrawColor(playerid, GraffitiDisplay[playerid], -1523963137); PlayerTextDrawSetShadow(playerid, GraffitiDisplay[playerid], 0); PlayerTextDrawSetOutline(playerid, GraffitiDisplay[playerid], 1); PlayerTextDrawBackgroundColor(playerid, GraffitiDisplay[playerid], 255); PlayerTextDrawFont(playerid, GraffitiDisplay[playerid], 2); PlayerTextDrawSetProportional(playerid, GraffitiDisplay[playerid], 1); PlayerTextDrawSetShadow(playerid, GraffitiDisplay[playerid], 0); //Phone: //UI_Phone(playerid); //Vehicle List: CreateVehicleMenu(playerid); //Vehicle HUD: VehicleHUD[playerid][0] = CreatePlayerTextDraw(playerid, 497.086730, 127.583274, "~bl~mph:~n~fuel:"); PlayerTextDrawLetterSize(playerid, VehicleHUD[playerid][0], 0.459502, 1.302499); PlayerTextDrawAlignment(playerid, VehicleHUD[playerid][0], 1); PlayerTextDrawColor(playerid, VehicleHUD[playerid][0], -1); PlayerTextDrawSetShadow(playerid, VehicleHUD[playerid][0], 2); PlayerTextDrawSetOutline(playerid, VehicleHUD[playerid][0], 0); PlayerTextDrawBackgroundColor(playerid, VehicleHUD[playerid][0], 255); PlayerTextDrawFont(playerid, VehicleHUD[playerid][0], 3); PlayerTextDrawSetProportional(playerid, VehicleHUD[playerid][0], 1); PlayerTextDrawSetShadow(playerid, VehicleHUD[playerid][0], 2); VehicleHUD[playerid][1] = CreatePlayerTextDraw(playerid, 552.372192, 128.166625, "~g~0~n~0"); PlayerTextDrawLetterSize(playerid, VehicleHUD[playerid][1], 0.459970, 1.273333); PlayerTextDrawAlignment(playerid, VehicleHUD[playerid][1], 1); PlayerTextDrawColor(playerid, VehicleHUD[playerid][1], -1); PlayerTextDrawSetShadow(playerid, VehicleHUD[playerid][1], 2); PlayerTextDrawSetOutline(playerid, VehicleHUD[playerid][1], 0); PlayerTextDrawBackgroundColor(playerid, VehicleHUD[playerid][1], 255); PlayerTextDrawFont(playerid, VehicleHUD[playerid][1], 3); PlayerTextDrawSetProportional(playerid, VehicleHUD[playerid][1], 1); PlayerTextDrawSetShadow(playerid, VehicleHUD[playerid][1], 2); VehicleHUD[playerid][2] = CreatePlayerTextDraw(playerid, 597.349853, 97.250038, "~g~100__~r~9__~w~15"); PlayerTextDrawLetterSize(playerid, VehicleHUD[playerid][2], 0.532122, 2.031666); PlayerTextDrawAlignment(playerid, VehicleHUD[playerid][2], 3); PlayerTextDrawColor(playerid, VehicleHUD[playerid][2], -1); PlayerTextDrawSetShadow(playerid, VehicleHUD[playerid][2], 0); PlayerTextDrawSetOutline(playerid, VehicleHUD[playerid][2], 1); PlayerTextDrawBackgroundColor(playerid, VehicleHUD[playerid][2], 255); PlayerTextDrawFont(playerid, VehicleHUD[playerid][2], 3); PlayerTextDrawSetProportional(playerid, VehicleHUD[playerid][2], 1); PlayerTextDrawSetShadow(playerid, VehicleHUD[playerid][2], 0); VehicleHUD[playerid][3] = CreatePlayerTextDraw(playerid, 20.131790, 152.666564, "Tahoma_~r~100_90~y~KMH/~r~92~y~MPH~n~~w~Radio_Info:~y~123~n~~w~Slot:~y~11"); PlayerTextDrawLetterSize(playerid, VehicleHUD[playerid][3], 0.245387, 1.745832); PlayerTextDrawAlignment(playerid, VehicleHUD[playerid][3], 1); PlayerTextDrawColor(playerid, VehicleHUD[playerid][3], -1); PlayerTextDrawSetShadow(playerid, VehicleHUD[playerid][3], 0); PlayerTextDrawSetOutline(playerid, VehicleHUD[playerid][3], 1); PlayerTextDrawBackgroundColor(playerid, VehicleHUD[playerid][3], 255); PlayerTextDrawFont(playerid, VehicleHUD[playerid][3], 1); PlayerTextDrawSetProportional(playerid, VehicleHUD[playerid][3], 1); PlayerTextDrawSetShadow(playerid, VehicleHUD[playerid][3], 0); VehicleHUD[playerid][4] = CreatePlayerTextDraw(playerid, 524.729553, 383.083496, "Landstalker"); PlayerTextDrawLetterSize(playerid, VehicleHUD[playerid][4], 0.495577, 3.367500); PlayerTextDrawAlignment(playerid, VehicleHUD[playerid][4], 2); PlayerTextDrawColor(playerid, VehicleHUD[playerid][4], 255); PlayerTextDrawSetShadow(playerid, VehicleHUD[playerid][4], 0); PlayerTextDrawSetOutline(playerid, VehicleHUD[playerid][4], 1); PlayerTextDrawBackgroundColor(playerid, VehicleHUD[playerid][4], -2139062017); PlayerTextDrawFont(playerid, VehicleHUD[playerid][4], 2); PlayerTextDrawSetProportional(playerid, VehicleHUD[playerid][4], 1); PlayerTextDrawSetShadow(playerid, VehicleHUD[playerid][4], 0); VehicleHUD[playerid][5] = CreatePlayerTextDraw(playerid, 590.322448, 413.416870, "~w~0 ~l~0 ~w~1000 ~l~100"); PlayerTextDrawLetterSize(playerid, VehicleHUD[playerid][5], 0.406558, 2.649996); PlayerTextDrawAlignment(playerid, VehicleHUD[playerid][5], 3); PlayerTextDrawColor(playerid, VehicleHUD[playerid][5], 255); PlayerTextDrawSetShadow(playerid, VehicleHUD[playerid][5], 0); PlayerTextDrawSetOutline(playerid, VehicleHUD[playerid][5], 1); PlayerTextDrawBackgroundColor(playerid, VehicleHUD[playerid][5], -2139062017); PlayerTextDrawFont(playerid, VehicleHUD[playerid][5], 2); PlayerTextDrawSetProportional(playerid, VehicleHUD[playerid][5], 1); PlayerTextDrawSetShadow(playerid, VehicleHUD[playerid][5], 0); //Order Counter: OrderCount[playerid][0] = CreatePlayerTextDraw(playerid, 34.200592, 322.396972, "ORDER_TIME:"); PlayerTextDrawLetterSize(playerid, OrderCount[playerid][0], 0.300000, 1.205924); PlayerTextDrawAlignment(playerid, OrderCount[playerid][0], 1); PlayerTextDrawColor(playerid, OrderCount[playerid][0], -457153537); PlayerTextDrawSetShadow(playerid, OrderCount[playerid][0], 0); PlayerTextDrawSetOutline(playerid, OrderCount[playerid][0], 1); PlayerTextDrawBackgroundColor(playerid, OrderCount[playerid][0], 255); PlayerTextDrawFont(playerid, OrderCount[playerid][0], 1); PlayerTextDrawSetProportional(playerid, OrderCount[playerid][0], 1); PlayerTextDrawSetShadow(playerid, OrderCount[playerid][0], 0); OrderCount[playerid][1] = CreatePlayerTextDraw(playerid, 104.032882, 322.567382, "00:00:00"); PlayerTextDrawLetterSize(playerid, OrderCount[playerid][1], 0.300000, 1.205924); PlayerTextDrawAlignment(playerid, OrderCount[playerid][1], 1); PlayerTextDrawColor(playerid, OrderCount[playerid][1], -1); PlayerTextDrawSetShadow(playerid, OrderCount[playerid][1], 0); PlayerTextDrawSetOutline(playerid, OrderCount[playerid][1], 1); PlayerTextDrawBackgroundColor(playerid, OrderCount[playerid][1], 255); PlayerTextDrawFont(playerid, OrderCount[playerid][1], 1); PlayerTextDrawSetProportional(playerid, OrderCount[playerid][1], 1); PlayerTextDrawSetShadow(playerid, OrderCount[playerid][1], 0); //Spectators: SpectatorTD[playerid][0] = CreatePlayerTextDraw(playerid, 380.846374, 286.452758, "SPECTATING:"); PlayerTextDrawLetterSize(playerid, SpectatorTD[playerid][0], 0.206330, 1.118813); PlayerTextDrawAlignment(playerid, SpectatorTD[playerid][0], 1); PlayerTextDrawColor(playerid, SpectatorTD[playerid][0], -2147483393); PlayerTextDrawSetShadow(playerid, SpectatorTD[playerid][0], 0); PlayerTextDrawSetOutline(playerid, SpectatorTD[playerid][0], 1); PlayerTextDrawBackgroundColor(playerid, SpectatorTD[playerid][0], 255); PlayerTextDrawFont(playerid, SpectatorTD[playerid][0], 2); PlayerTextDrawSetProportional(playerid, SpectatorTD[playerid][0], 1); PlayerTextDrawSetShadow(playerid, SpectatorTD[playerid][0], 0); SpectatorTD[playerid][1] = CreatePlayerTextDraw(playerid, 442.902862, 286.637817, "firstname-LASTNAMe"); PlayerTextDrawLetterSize(playerid, SpectatorTD[playerid][1], 0.206330, 1.118813); PlayerTextDrawAlignment(playerid, SpectatorTD[playerid][1], 1); PlayerTextDrawColor(playerid, SpectatorTD[playerid][1], -490707969); PlayerTextDrawSetShadow(playerid, SpectatorTD[playerid][1], 0); PlayerTextDrawSetOutline(playerid, SpectatorTD[playerid][1], 1); PlayerTextDrawBackgroundColor(playerid, SpectatorTD[playerid][1], 255); PlayerTextDrawFont(playerid, SpectatorTD[playerid][1], 2); PlayerTextDrawSetProportional(playerid, SpectatorTD[playerid][1], 1); PlayerTextDrawSetShadow(playerid, SpectatorTD[playerid][1], 0); SpectatorTD[playerid][2] = CreatePlayerTextDraw(playerid, 380.946380, 297.553436, "ping:"); PlayerTextDrawLetterSize(playerid, SpectatorTD[playerid][2], 0.206330, 1.118813); PlayerTextDrawAlignment(playerid, SpectatorTD[playerid][2], 1); PlayerTextDrawColor(playerid, SpectatorTD[playerid][2], -2147483393); PlayerTextDrawSetShadow(playerid, SpectatorTD[playerid][2], 0); PlayerTextDrawSetOutline(playerid, SpectatorTD[playerid][2], 1); PlayerTextDrawBackgroundColor(playerid, SpectatorTD[playerid][2], 255); PlayerTextDrawFont(playerid, SpectatorTD[playerid][2], 2); PlayerTextDrawSetProportional(playerid, SpectatorTD[playerid][2], 1); PlayerTextDrawSetShadow(playerid, SpectatorTD[playerid][2], 0); SpectatorTD[playerid][3] = CreatePlayerTextDraw(playerid, 407.800720, 297.538482, "PINGhere"); PlayerTextDrawLetterSize(playerid, SpectatorTD[playerid][3], 0.206330, 1.118813); PlayerTextDrawAlignment(playerid, SpectatorTD[playerid][3], 1); PlayerTextDrawColor(playerid, SpectatorTD[playerid][3], -490707969); PlayerTextDrawSetShadow(playerid, SpectatorTD[playerid][3], 0); PlayerTextDrawSetOutline(playerid, SpectatorTD[playerid][3], 1); PlayerTextDrawBackgroundColor(playerid, SpectatorTD[playerid][3], 255); PlayerTextDrawFont(playerid, SpectatorTD[playerid][3], 2); PlayerTextDrawSetProportional(playerid, SpectatorTD[playerid][3], 1); PlayerTextDrawSetShadow(playerid, SpectatorTD[playerid][3], 0); SpectatorTD[playerid][4] = CreatePlayerTextDraw(playerid, 380.946380, 308.354095, "PACKETLOSS:"); PlayerTextDrawLetterSize(playerid, SpectatorTD[playerid][4], 0.206330, 1.118813); PlayerTextDrawAlignment(playerid, SpectatorTD[playerid][4], 1); PlayerTextDrawColor(playerid, SpectatorTD[playerid][4], -2147483393); PlayerTextDrawSetShadow(playerid, SpectatorTD[playerid][4], 0); PlayerTextDrawSetOutline(playerid, SpectatorTD[playerid][4], 1); PlayerTextDrawBackgroundColor(playerid, SpectatorTD[playerid][4], 255); PlayerTextDrawFont(playerid, SpectatorTD[playerid][4], 2); PlayerTextDrawSetProportional(playerid, SpectatorTD[playerid][4], 1); PlayerTextDrawSetShadow(playerid, SpectatorTD[playerid][4], 0); SpectatorTD[playerid][5] = CreatePlayerTextDraw(playerid, 443.102874, 308.739166, "Plosshere"); PlayerTextDrawLetterSize(playerid, SpectatorTD[playerid][5], 0.206330, 1.118813); PlayerTextDrawAlignment(playerid, SpectatorTD[playerid][5], 1); PlayerTextDrawColor(playerid, SpectatorTD[playerid][5], -490707969); PlayerTextDrawSetShadow(playerid, SpectatorTD[playerid][5], 0); PlayerTextDrawSetOutline(playerid, SpectatorTD[playerid][5], 1); PlayerTextDrawBackgroundColor(playerid, SpectatorTD[playerid][5], 255); PlayerTextDrawFont(playerid, SpectatorTD[playerid][5], 2); PlayerTextDrawSetProportional(playerid, SpectatorTD[playerid][5], 1); PlayerTextDrawSetShadow(playerid, SpectatorTD[playerid][5], 0); //Taxi Fair Textdraws: TaxiFair_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 99.032882, 309.551818, "duration:"); PlayerTextDrawLetterSize(playerid, TaxiFair_PTD[playerid][0], 0.231333, 0.961183); PlayerTextDrawAlignment(playerid, TaxiFair_PTD[playerid][0], 1); PlayerTextDrawColor(playerid, TaxiFair_PTD[playerid][0], -457153537); PlayerTextDrawSetShadow(playerid, TaxiFair_PTD[playerid][0], 0); PlayerTextDrawSetOutline(playerid, TaxiFair_PTD[playerid][0], 1); PlayerTextDrawBackgroundColor(playerid, TaxiFair_PTD[playerid][0], 255); PlayerTextDrawFont(playerid, TaxiFair_PTD[playerid][0], 2); PlayerTextDrawSetProportional(playerid, TaxiFair_PTD[playerid][0], 1); PlayerTextDrawSetShadow(playerid, TaxiFair_PTD[playerid][0], 0); TaxiFair_PTD[playerid][1] = CreatePlayerTextDraw(playerid, 98.899574, 301.151306, "YOU'RE_IN_A_TAXI_RIDE!"); PlayerTextDrawLetterSize(playerid, TaxiFair_PTD[playerid][1], 0.231333, 0.961183); PlayerTextDrawAlignment(playerid, TaxiFair_PTD[playerid][1], 1); PlayerTextDrawColor(playerid, TaxiFair_PTD[playerid][1], -2147483393); PlayerTextDrawSetShadow(playerid, TaxiFair_PTD[playerid][1], 0); PlayerTextDrawSetOutline(playerid, TaxiFair_PTD[playerid][1], 1); PlayerTextDrawBackgroundColor(playerid, TaxiFair_PTD[playerid][1], 255); PlayerTextDrawFont(playerid, TaxiFair_PTD[playerid][1], 2); PlayerTextDrawSetProportional(playerid, TaxiFair_PTD[playerid][1], 1); PlayerTextDrawSetShadow(playerid, TaxiFair_PTD[playerid][1], 0); TaxiFair_PTD[playerid][2] = CreatePlayerTextDraw(playerid, 154.800765, 309.551818, "0_Seconds"); PlayerTextDrawLetterSize(playerid, TaxiFair_PTD[playerid][2], 0.231333, 0.961183); PlayerTextDrawAlignment(playerid, TaxiFair_PTD[playerid][2], 1); PlayerTextDrawColor(playerid, TaxiFair_PTD[playerid][2], -1); PlayerTextDrawSetShadow(playerid, TaxiFair_PTD[playerid][2], 0); PlayerTextDrawSetOutline(playerid, TaxiFair_PTD[playerid][2], 1); PlayerTextDrawBackgroundColor(playerid, TaxiFair_PTD[playerid][2], 255); PlayerTextDrawFont(playerid, TaxiFair_PTD[playerid][2], 2); PlayerTextDrawSetProportional(playerid, TaxiFair_PTD[playerid][2], 1); PlayerTextDrawSetShadow(playerid, TaxiFair_PTD[playerid][2], 0); TaxiFair_PTD[playerid][3] = CreatePlayerTextDraw(playerid, 99.032882, 318.452362, "PRICE:"); PlayerTextDrawLetterSize(playerid, TaxiFair_PTD[playerid][3], 0.231333, 0.961183); PlayerTextDrawAlignment(playerid, TaxiFair_PTD[playerid][3], 1); PlayerTextDrawColor(playerid, TaxiFair_PTD[playerid][3], -457153537); PlayerTextDrawSetShadow(playerid, TaxiFair_PTD[playerid][3], 0); PlayerTextDrawSetOutline(playerid, TaxiFair_PTD[playerid][3], 1); PlayerTextDrawBackgroundColor(playerid, TaxiFair_PTD[playerid][3], 255); PlayerTextDrawFont(playerid, TaxiFair_PTD[playerid][3], 2); PlayerTextDrawSetProportional(playerid, TaxiFair_PTD[playerid][3], 1); PlayerTextDrawSetShadow(playerid, TaxiFair_PTD[playerid][3], 0); TaxiFair_PTD[playerid][4] = CreatePlayerTextDraw(playerid, 133.632781, 318.452362, "$0.00"); PlayerTextDrawLetterSize(playerid, TaxiFair_PTD[playerid][4], 0.231333, 0.961183); PlayerTextDrawAlignment(playerid, TaxiFair_PTD[playerid][4], 1); PlayerTextDrawColor(playerid, TaxiFair_PTD[playerid][4], -1); PlayerTextDrawSetShadow(playerid, TaxiFair_PTD[playerid][4], 0); PlayerTextDrawSetOutline(playerid, TaxiFair_PTD[playerid][4], 1); PlayerTextDrawBackgroundColor(playerid, TaxiFair_PTD[playerid][4], 255); PlayerTextDrawFont(playerid, TaxiFair_PTD[playerid][4], 2); PlayerTextDrawSetProportional(playerid, TaxiFair_PTD[playerid][4], 1); PlayerTextDrawSetShadow(playerid, TaxiFair_PTD[playerid][4], 0); //Unscrambler Textdraws: Unscrambler_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 199.873275, 273.593383, ""); PlayerTextDrawLetterSize(playerid, Unscrambler_PTD[playerid][0], 0.206330, 1.118813); PlayerTextDrawAlignment(playerid, Unscrambler_PTD[playerid][0], 1); PlayerTextDrawColor(playerid, Unscrambler_PTD[playerid][0], -1); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][0], 0); PlayerTextDrawSetOutline(playerid, Unscrambler_PTD[playerid][0], 1); PlayerTextDrawBackgroundColor(playerid, Unscrambler_PTD[playerid][0], 255); PlayerTextDrawFont(playerid, Unscrambler_PTD[playerid][0], 2); PlayerTextDrawSetProportional(playerid, Unscrambler_PTD[playerid][0], 1); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][0], 0); Unscrambler_PTD[playerid][1] = CreatePlayerTextDraw(playerid, 137.369461, 273.593383, "/unscramble"); PlayerTextDrawLetterSize(playerid, Unscrambler_PTD[playerid][1], 0.206330, 1.118813); PlayerTextDrawAlignment(playerid, Unscrambler_PTD[playerid][1], 1); PlayerTextDrawColor(playerid, Unscrambler_PTD[playerid][1], -490707969); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][1], 0); PlayerTextDrawSetOutline(playerid, Unscrambler_PTD[playerid][1], 1); PlayerTextDrawBackgroundColor(playerid, Unscrambler_PTD[playerid][1], 255); PlayerTextDrawFont(playerid, Unscrambler_PTD[playerid][1], 2); PlayerTextDrawSetProportional(playerid, Unscrambler_PTD[playerid][1], 1); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][1], 0); Unscrambler_PTD[playerid][2] = CreatePlayerTextDraw(playerid, 305.179687, 273.593383, "TO_UNSCRAMBLE_THE_WORD"); PlayerTextDrawLetterSize(playerid, Unscrambler_PTD[playerid][2], 0.206330, 1.118813); PlayerTextDrawAlignment(playerid, Unscrambler_PTD[playerid][2], 1); PlayerTextDrawColor(playerid, Unscrambler_PTD[playerid][2], -2147483393); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][2], 0); PlayerTextDrawSetOutline(playerid, Unscrambler_PTD[playerid][2], 1); PlayerTextDrawBackgroundColor(playerid, Unscrambler_PTD[playerid][2], 255); PlayerTextDrawFont(playerid, Unscrambler_PTD[playerid][2], 2); PlayerTextDrawSetProportional(playerid, Unscrambler_PTD[playerid][2], 1); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][2], 0); Unscrambler_PTD[playerid][3] = CreatePlayerTextDraw(playerid, 141.369705, 285.194091, "scrambledword"); PlayerTextDrawLetterSize(playerid, Unscrambler_PTD[playerid][3], 0.206330, 1.118813); PlayerTextDrawAlignment(playerid, Unscrambler_PTD[playerid][3], 1); PlayerTextDrawColor(playerid, Unscrambler_PTD[playerid][3], -1); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][3], 0); PlayerTextDrawSetOutline(playerid, Unscrambler_PTD[playerid][3], 1); PlayerTextDrawBackgroundColor(playerid, Unscrambler_PTD[playerid][3], 255); PlayerTextDrawFont(playerid, Unscrambler_PTD[playerid][3], 2); PlayerTextDrawSetProportional(playerid, Unscrambler_PTD[playerid][3], 1); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][3], 0); Unscrambler_PTD[playerid][4] = CreatePlayerTextDraw(playerid, 137.902801, 296.924377, "YOU_HAVE"); PlayerTextDrawLetterSize(playerid, Unscrambler_PTD[playerid][4], 0.206330, 1.118813); PlayerTextDrawAlignment(playerid, Unscrambler_PTD[playerid][4], 1); PlayerTextDrawColor(playerid, Unscrambler_PTD[playerid][4], -2147483393); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][4], 0); PlayerTextDrawSetOutline(playerid, Unscrambler_PTD[playerid][4], 1); PlayerTextDrawBackgroundColor(playerid, Unscrambler_PTD[playerid][4], 255); PlayerTextDrawFont(playerid, Unscrambler_PTD[playerid][4], 2); PlayerTextDrawSetProportional(playerid, Unscrambler_PTD[playerid][4], 1); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][4], 0); Unscrambler_PTD[playerid][5] = CreatePlayerTextDraw(playerid, 184.539016, 297.024383, "001"); PlayerTextDrawLetterSize(playerid, Unscrambler_PTD[playerid][5], 0.206330, 1.118813); PlayerTextDrawAlignment(playerid, Unscrambler_PTD[playerid][5], 1); PlayerTextDrawColor(playerid, Unscrambler_PTD[playerid][5], -1); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][5], 0); PlayerTextDrawSetOutline(playerid, Unscrambler_PTD[playerid][5], 1); PlayerTextDrawBackgroundColor(playerid, Unscrambler_PTD[playerid][5], 255); PlayerTextDrawFont(playerid, Unscrambler_PTD[playerid][5], 2); PlayerTextDrawSetProportional(playerid, Unscrambler_PTD[playerid][5], 1); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][5], 0); Unscrambler_PTD[playerid][6] = CreatePlayerTextDraw(playerid, 202.540191, 297.124389, "SECONDS_LEFT_TO_FINISh."); PlayerTextDrawLetterSize(playerid, Unscrambler_PTD[playerid][6], 0.206330, 1.118813); PlayerTextDrawAlignment(playerid, Unscrambler_PTD[playerid][6], 1); PlayerTextDrawColor(playerid, Unscrambler_PTD[playerid][6], -2147483393); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][6], 0); PlayerTextDrawSetOutline(playerid, Unscrambler_PTD[playerid][6], 1); PlayerTextDrawBackgroundColor(playerid, Unscrambler_PTD[playerid][6], 255); PlayerTextDrawFont(playerid, Unscrambler_PTD[playerid][6], 2); PlayerTextDrawSetProportional(playerid, Unscrambler_PTD[playerid][6], 1); PlayerTextDrawSetShadow(playerid, Unscrambler_PTD[playerid][6], 0); //Skin menu Skinmenu_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 434.965545, 236.270599, "LD_BEAT:right"); PlayerTextDrawLetterSize(playerid, Skinmenu_PTD[playerid][0], 0.000000, 0.000000); PlayerTextDrawTextSize(playerid, Skinmenu_PTD[playerid][0], 25.000000, 27.000000); PlayerTextDrawAlignment(playerid, Skinmenu_PTD[playerid][0], 1); PlayerTextDrawColor(playerid, Skinmenu_PTD[playerid][0], -1); PlayerTextDrawSetShadow(playerid, Skinmenu_PTD[playerid][0], 0); PlayerTextDrawSetOutline(playerid, Skinmenu_PTD[playerid][0], 0); PlayerTextDrawBackgroundColor(playerid, Skinmenu_PTD[playerid][0], 255); PlayerTextDrawFont(playerid, Skinmenu_PTD[playerid][0], 4); PlayerTextDrawSetProportional(playerid, Skinmenu_PTD[playerid][0], 0); PlayerTextDrawSetShadow(playerid, Skinmenu_PTD[playerid][0], 0); PlayerTextDrawSetSelectable(playerid, Skinmenu_PTD[playerid][0], true); Skinmenu_PTD[playerid][1] = CreatePlayerTextDraw(playerid, 356.360748, 236.270599, "LD_BEAT:left"); PlayerTextDrawLetterSize(playerid, Skinmenu_PTD[playerid][1], 0.000000, 0.000000); PlayerTextDrawTextSize(playerid, Skinmenu_PTD[playerid][1], 25.000000, 27.000000); PlayerTextDrawAlignment(playerid, Skinmenu_PTD[playerid][1], 1); PlayerTextDrawColor(playerid, Skinmenu_PTD[playerid][1], -1); PlayerTextDrawSetShadow(playerid, Skinmenu_PTD[playerid][1], 0); PlayerTextDrawSetOutline(playerid, Skinmenu_PTD[playerid][1], 0); PlayerTextDrawBackgroundColor(playerid, Skinmenu_PTD[playerid][1], 255); PlayerTextDrawFont(playerid, Skinmenu_PTD[playerid][1], 4); PlayerTextDrawSetProportional(playerid, Skinmenu_PTD[playerid][1], 0); PlayerTextDrawSetShadow(playerid, Skinmenu_PTD[playerid][1], 0); PlayerTextDrawSetSelectable(playerid, Skinmenu_PTD[playerid][1], true); Skinmenu_PTD[playerid][2] = CreatePlayerTextDraw(playerid, 319.200164, 60.496173, ""); PlayerTextDrawLetterSize(playerid, Skinmenu_PTD[playerid][2], 0.000000, 0.000000); PlayerTextDrawTextSize(playerid, Skinmenu_PTD[playerid][2], 168.000000, 179.000000); PlayerTextDrawAlignment(playerid, Skinmenu_PTD[playerid][2], 1); PlayerTextDrawColor(playerid, Skinmenu_PTD[playerid][2], -1); PlayerTextDrawSetShadow(playerid, Skinmenu_PTD[playerid][2], 0); PlayerTextDrawSetOutline(playerid, Skinmenu_PTD[playerid][2], 0); PlayerTextDrawBackgroundColor(playerid, Skinmenu_PTD[playerid][2], 0); PlayerTextDrawFont(playerid, Skinmenu_PTD[playerid][2], 5); PlayerTextDrawSetProportional(playerid, Skinmenu_PTD[playerid][2], 0); PlayerTextDrawSetShadow(playerid, Skinmenu_PTD[playerid][2], 0); PlayerTextDrawSetSelectable(playerid, Skinmenu_PTD[playerid][2], true); PlayerTextDrawSetPreviewModel(playerid, Skinmenu_PTD[playerid][2], 1); PlayerTextDrawSetPreviewRot(playerid, Skinmenu_PTD[playerid][2], 0.000000, 0.000000, 0.000000, 1.000000); //Trucker Job Earnings TruckerEarning_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 2.000023, 165.525863, "EARNINGS:"); PlayerTextDrawLetterSize(playerid, TruckerEarning_PTD[playerid][0], 0.289333, 1.210073); PlayerTextDrawAlignment(playerid, TruckerEarning_PTD[playerid][0], 1); PlayerTextDrawColor(playerid, TruckerEarning_PTD[playerid][0], -1); PlayerTextDrawSetShadow(playerid, TruckerEarning_PTD[playerid][0], 0); PlayerTextDrawSetOutline(playerid, TruckerEarning_PTD[playerid][0], 1); PlayerTextDrawBackgroundColor(playerid, TruckerEarning_PTD[playerid][0], 255); PlayerTextDrawFont(playerid, TruckerEarning_PTD[playerid][0], 2); PlayerTextDrawSetProportional(playerid, TruckerEarning_PTD[playerid][0], 1); PlayerTextDrawSetShadow(playerid, TruckerEarning_PTD[playerid][0], 0); TruckerEarning_PTD[playerid][1] = CreatePlayerTextDraw(playerid, 1.900024, 177.156143, "$0"); PlayerTextDrawLetterSize(playerid, TruckerEarning_PTD[playerid][1], 0.289333, 1.210073); PlayerTextDrawAlignment(playerid, TruckerEarning_PTD[playerid][1], 1); PlayerTextDrawColor(playerid, TruckerEarning_PTD[playerid][1], -1523963137); PlayerTextDrawSetShadow(playerid, TruckerEarning_PTD[playerid][1], 0); PlayerTextDrawSetOutline(playerid, TruckerEarning_PTD[playerid][1], 1); PlayerTextDrawBackgroundColor(playerid, TruckerEarning_PTD[playerid][1], 255); PlayerTextDrawFont(playerid, TruckerEarning_PTD[playerid][1], 2); PlayerTextDrawSetProportional(playerid, TruckerEarning_PTD[playerid][1], 1); PlayerTextDrawSetShadow(playerid, TruckerEarning_PTD[playerid][1], 0); //Trucker Warning TruckerWarning_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 97.333351, 291.629669, "RETURN_TO_YOUR_TRUCK_OR_ENTER_THE_CHECKPOINT!"); PlayerTextDrawLetterSize(playerid, TruckerWarning_PTD[playerid][0], 0.216666, 1.139555); PlayerTextDrawAlignment(playerid, TruckerWarning_PTD[playerid][0], 1); PlayerTextDrawColor(playerid, TruckerWarning_PTD[playerid][0], -1523963137); PlayerTextDrawSetShadow(playerid, TruckerWarning_PTD[playerid][0], 0); PlayerTextDrawSetOutline(playerid, TruckerWarning_PTD[playerid][0], 1); PlayerTextDrawBackgroundColor(playerid, TruckerWarning_PTD[playerid][0], 255); PlayerTextDrawFont(playerid, TruckerWarning_PTD[playerid][0], 2); PlayerTextDrawSetProportional(playerid, TruckerWarning_PTD[playerid][0], 1); PlayerTextDrawSetShadow(playerid, TruckerWarning_PTD[playerid][0], 0); TruckerWarning_PTD[playerid][1] = CreatePlayerTextDraw(playerid, 96.799972, 301.485900, "TIME_LEFT:_60_Seconds"); PlayerTextDrawLetterSize(playerid, TruckerWarning_PTD[playerid][1], 0.210332, 1.122962); PlayerTextDrawAlignment(playerid, TruckerWarning_PTD[playerid][1], 1); PlayerTextDrawColor(playerid, TruckerWarning_PTD[playerid][1], -1); PlayerTextDrawSetShadow(playerid, TruckerWarning_PTD[playerid][1], 0); PlayerTextDrawSetOutline(playerid, TruckerWarning_PTD[playerid][1], 1); PlayerTextDrawBackgroundColor(playerid, TruckerWarning_PTD[playerid][1], 255); PlayerTextDrawFont(playerid, TruckerWarning_PTD[playerid][1], 2); PlayerTextDrawSetProportional(playerid, TruckerWarning_PTD[playerid][1], 1); PlayerTextDrawSetShadow(playerid, TruckerWarning_PTD[playerid][1], 0); //Trucker job Textdraws TruckerJob_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 97.333351, 291.629669, "TRUCKER_MISSION"); PlayerTextDrawLetterSize(playerid, TruckerJob_PTD[playerid][0], 0.216666, 1.139555); PlayerTextDrawAlignment(playerid, TruckerJob_PTD[playerid][0], 1); PlayerTextDrawColor(playerid, TruckerJob_PTD[playerid][0], -1523963137); PlayerTextDrawSetShadow(playerid, TruckerJob_PTD[playerid][0], 0); PlayerTextDrawSetOutline(playerid, TruckerJob_PTD[playerid][0], 1); PlayerTextDrawBackgroundColor(playerid, TruckerJob_PTD[playerid][0], 255); PlayerTextDrawFont(playerid, TruckerJob_PTD[playerid][0], 2); PlayerTextDrawSetProportional(playerid, TruckerJob_PTD[playerid][0], 1); PlayerTextDrawSetShadow(playerid, TruckerJob_PTD[playerid][0], 0); TruckerJob_PTD[playerid][1] = CreatePlayerTextDraw(playerid, 96.799972, 301.485900, "YOU_ARE_NOW_TRUCKING"); PlayerTextDrawLetterSize(playerid, TruckerJob_PTD[playerid][1], 0.210332, 1.122962); PlayerTextDrawAlignment(playerid, TruckerJob_PTD[playerid][1], 1); PlayerTextDrawColor(playerid, TruckerJob_PTD[playerid][1], -1); PlayerTextDrawSetShadow(playerid, TruckerJob_PTD[playerid][1], 0); PlayerTextDrawSetOutline(playerid, TruckerJob_PTD[playerid][1], 1); PlayerTextDrawBackgroundColor(playerid, TruckerJob_PTD[playerid][1], 255); PlayerTextDrawFont(playerid, TruckerJob_PTD[playerid][1], 2); PlayerTextDrawSetProportional(playerid, TruckerJob_PTD[playerid][1], 1); PlayerTextDrawSetShadow(playerid, TruckerJob_PTD[playerid][1], 0); //New job textdraw Getjob_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 97.333351, 291.629669, "CONGRATULATIONS!"); PlayerTextDrawLetterSize(playerid, Getjob_PTD[playerid][0], 0.216666, 1.139555); PlayerTextDrawAlignment(playerid, Getjob_PTD[playerid][0], 1); PlayerTextDrawColor(playerid, Getjob_PTD[playerid][0], -1523963137); PlayerTextDrawSetShadow(playerid, Getjob_PTD[playerid][0], 0); PlayerTextDrawSetOutline(playerid, Getjob_PTD[playerid][0], 1); PlayerTextDrawBackgroundColor(playerid, Getjob_PTD[playerid][0], 255); PlayerTextDrawFont(playerid, Getjob_PTD[playerid][0], 2); PlayerTextDrawSetProportional(playerid, Getjob_PTD[playerid][0], 1); PlayerTextDrawSetShadow(playerid, Getjob_PTD[playerid][0], 0); Getjob_PTD[playerid][1] = CreatePlayerTextDraw(playerid, 169.702743, 301.385894, "JOB_NAME."); PlayerTextDrawLetterSize(playerid, Getjob_PTD[playerid][1], 0.206332, 1.118814); PlayerTextDrawAlignment(playerid, Getjob_PTD[playerid][1], 1); PlayerTextDrawColor(playerid, Getjob_PTD[playerid][1], -490707969); PlayerTextDrawSetShadow(playerid, Getjob_PTD[playerid][1], 0); PlayerTextDrawSetOutline(playerid, Getjob_PTD[playerid][1], 1); PlayerTextDrawBackgroundColor(playerid, Getjob_PTD[playerid][1], 255); PlayerTextDrawFont(playerid, Getjob_PTD[playerid][1], 2); PlayerTextDrawSetProportional(playerid, Getjob_PTD[playerid][1], 1); PlayerTextDrawSetShadow(playerid, Getjob_PTD[playerid][1], 0); Getjob_PTD[playerid][2] = CreatePlayerTextDraw(playerid, 96.799972, 301.485900, "YOU_ARE_NOW_A"); PlayerTextDrawLetterSize(playerid, Getjob_PTD[playerid][2], 0.210332, 1.122962); PlayerTextDrawAlignment(playerid, Getjob_PTD[playerid][2], 1); PlayerTextDrawColor(playerid, Getjob_PTD[playerid][2], -1); PlayerTextDrawSetShadow(playerid, Getjob_PTD[playerid][2], 0); PlayerTextDrawSetOutline(playerid, Getjob_PTD[playerid][2], 1); PlayerTextDrawBackgroundColor(playerid, Getjob_PTD[playerid][2], 255); PlayerTextDrawFont(playerid, Getjob_PTD[playerid][2], 2); PlayerTextDrawSetProportional(playerid, Getjob_PTD[playerid][2], 1); PlayerTextDrawSetShadow(playerid, Getjob_PTD[playerid][2], 0); Getjob_PTD[playerid][3] = CreatePlayerTextDraw(playerid, 97.766632, 311.686523, "/jobhelp."); PlayerTextDrawLetterSize(playerid, Getjob_PTD[playerid][3], 0.219332, 1.089777); PlayerTextDrawAlignment(playerid, Getjob_PTD[playerid][3], 1); PlayerTextDrawColor(playerid, Getjob_PTD[playerid][3], -1); PlayerTextDrawSetShadow(playerid, Getjob_PTD[playerid][3], 0); PlayerTextDrawSetOutline(playerid, Getjob_PTD[playerid][3], 1); PlayerTextDrawBackgroundColor(playerid, Getjob_PTD[playerid][3], 255); PlayerTextDrawFont(playerid, Getjob_PTD[playerid][3], 2); PlayerTextDrawSetProportional(playerid, Getjob_PTD[playerid][3], 1); PlayerTextDrawSetShadow(playerid, Getjob_PTD[playerid][3], 0); //Trace System Trace_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 98.632888, 309.551818, "TRACE_INITIATED"); PlayerTextDrawLetterSize(playerid, Trace_PTD[playerid][0], 0.300000, 1.205925); PlayerTextDrawAlignment(playerid, Trace_PTD[playerid][0], 1); PlayerTextDrawColor(playerid, Trace_PTD[playerid][0], -457153537); PlayerTextDrawSetShadow(playerid, Trace_PTD[playerid][0], 0); PlayerTextDrawSetOutline(playerid, Trace_PTD[playerid][0], 1); PlayerTextDrawBackgroundColor(playerid, Trace_PTD[playerid][0], 255); PlayerTextDrawFont(playerid, Trace_PTD[playerid][0], 2); PlayerTextDrawSetProportional(playerid, Trace_PTD[playerid][0], 1); PlayerTextDrawSetShadow(playerid, Trace_PTD[playerid][0], 0); //Dealership Carbuy CarBought_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 97.333351, 291.629669, "YOUR_NEW_PLATE_HAS_BEEN_SET"); PlayerTextDrawLetterSize(playerid, CarBought_PTD[playerid][0], 0.248666, 1.259851); PlayerTextDrawAlignment(playerid, CarBought_PTD[playerid][0], 1); PlayerTextDrawColor(playerid, CarBought_PTD[playerid][0], -1); PlayerTextDrawSetShadow(playerid, CarBought_PTD[playerid][0], 0); PlayerTextDrawSetOutline(playerid, CarBought_PTD[playerid][0], 1); PlayerTextDrawBackgroundColor(playerid, CarBought_PTD[playerid][0], 255); PlayerTextDrawFont(playerid, CarBought_PTD[playerid][0], 2); PlayerTextDrawSetProportional(playerid, CarBought_PTD[playerid][0], 1); PlayerTextDrawSetShadow(playerid, CarBought_PTD[playerid][0], 0); CarBought_PTD[playerid][1] = CreatePlayerTextDraw(playerid, 97.533348, 302.630340, "PLATEHERE"); PlayerTextDrawLetterSize(playerid, CarBought_PTD[playerid][1], 0.248666, 1.259851); PlayerTextDrawAlignment(playerid, CarBought_PTD[playerid][1], 1); PlayerTextDrawColor(playerid, CarBought_PTD[playerid][1], -490707969); PlayerTextDrawSetShadow(playerid, CarBought_PTD[playerid][1], 0); PlayerTextDrawSetOutline(playerid, CarBought_PTD[playerid][1], 1); PlayerTextDrawBackgroundColor(playerid, CarBought_PTD[playerid][1], 255); PlayerTextDrawFont(playerid, CarBought_PTD[playerid][1], 2); PlayerTextDrawSetProportional(playerid, CarBought_PTD[playerid][1], 1); PlayerTextDrawSetShadow(playerid, CarBought_PTD[playerid][1], 0); AdmWarmToggle[playerid] = 1; TogglePMs[playerid] = 1; return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { /*case DIALOG_REG1: { if (!response) return KickEx(playerid); if (strlen(inputtext) < 1) return ShowPlayerDialog(playerid, DIALOG_REG1, DIALOG_STYLE_INPUT, "Question 1", PlayerRegQuestion[playerid][playerRegQuestion][0], "Submit", "Exit"); format(PlayerRegQuestion[playerid][playerRegAnswer][0], 128, "%s", inputtext); ShowPlayerDialog(playerid, DIALOG_REG2, DIALOG_STYLE_INPUT, "Question 2", PlayerRegQuestion[playerid][playerRegQuestion][1], "Submit", "Exit"); } case DIALOG_REG2: { if (!response) return KickEx(playerid); if (strlen(inputtext) < 1) return ShowPlayerDialog(playerid, DIALOG_REG2, DIALOG_STYLE_INPUT, "Question 2", PlayerRegQuestion[playerid][playerRegQuestion][1], "Submit", "Exit"); format(PlayerRegQuestion[playerid][playerRegAnswer][1], 128, "%s", inputtext); ShowPlayerDialog(playerid, DIALOG_REG3, DIALOG_STYLE_INPUT, "Question 3", PlayerRegQuestion[playerid][playerRegQuestion][2], "Submit", "Exit"); } case DIALOG_REG3: { if (!response) return KickEx(playerid); if (strlen(inputtext) < 1) return ShowPlayerDialog(playerid, DIALOG_REG3, DIALOG_STYLE_INPUT, "Question 3", PlayerRegQuestion[playerid][playerRegQuestion][2], "Submit", "Exit"); format(PlayerRegQuestion[playerid][playerRegAnswer][2], 128, "%s", inputtext); ShowPlayerDialog(playerid, DIALOG_REG4, DIALOG_STYLE_INPUT, "Thank you!", "{FFFFFF}Your application has been submitted!\n{FFFFFF}Please wait for a helper to review it.\n\n{FF0000}Do not log off otherwise you will have to redo the quiz!", "Status", ""); } case DIALOG_REG4: { if (!response) return ShowPlayerDialog(playerid, DIALOG_REG4, DIALOG_STYLE_INPUT, "Thank you!", "{FFFFFF}Your application has been submitted!\n{FFFFFF}Please wait for an admin to review it.\n\n{FF0000}Do not log off otherwise you will have to redo the quiz!", "Status", ""); adminWarn(1, sprintf("%s (id: %d) has submitted a registration quiz. /review %d to answer it.", ReturnName(playerid, 1), playerid, playerid)); PlayerAwaitingRegistration[playerid] = true; PlayerRegWait[playerid] = 60; }*/ // "24/7\nDealerships\nBanks\nJobs" /* case 0: string = "Unemployed"; case 1: string = "Mechanic"; case 2: string = "Fisherman"; case 3: string = "Taxi Driver"; case 4: string = "Trucker"; */ /*case DIALOG_GPS1: { if (!response) return 1; switch (listitem) { case 0: { return ShowPlayerDialog(playerid, DIALOG_GPS2, DIALOG_STYLE_MSGBOX, "GPS > 24/7", "GPS's are strategically placed around the map.\nYou can usually identify them by their exterior.", "Back", ""); } case 1: { return ShowPlayerDialog(playerid, DIALOG_GPS3, DIALOG_STYLE_MSGBOX, "GPS > Dealerships", "The dealerships are located at two locations. Rodeo Dealership, or Grotti's, and Commerce Dealership.\nYou can also upgrade your vehicle's at these dealerships."); } case 2: { return ShowPlayerDialog(playerid, DIALOG_GPS4, DIALOG_STYLE_MSGBOX, "GPS > Banks", "The Bank is located in Rodeo, right next to the Rodeo Dealership.\nYou can withdraw, deposit and withdraw/deposit into your savings account here."); } case 3: { static string[] = EOS, jobDesc[32], jobName[16], bool:jobVehicle; for (new i = 1; i < 6; i++) { jobDesc[0] = EOS; jobName[0] = EOS; jobVehicle = false; switch (i) { case 1: { jobName = "Mechanic"; jobDesc = "Repair, tow and respray cars for a fee"; jobVehicle = true; } case 2: { jobName = "Taxi Driver"; jobDesc = "Drive players about"; jobVehicle = true; } case 3: { jobName = "Trucker"; jobDesc = "Truck, truck, truck. Makes roughly 1K per run"; jobVehicle = false; } } strcat(string, sprintf("%s\t%s\t%s\n", jobName, jobDesc, (jobVehicle ? "Yes" : "No"))); } return ShowPlayerDialog(playerid, DIALOG_GPS5, DIALOG_STYLE_TABLIST_HEADERS, sprintf("GPS > Jobs", "Job Name\tJob Description\tPersonal Vehicle Needed?\n\ %s", string ), "Back", ""); } default: { SendClientMessage(playerid, COLOR_ADM, "GPS: Invalid option selected!"); } } return 1; }*/ case DIALOG_CONFIRM_SYS:{ ConfirmDialog_Response(playerid, response); } case DIALOG_REGISTER:{ if(!response) return Kick(playerid); if(strlen(inputtext) < 3 || strlen(inputtext) > 30){ ShowRegisterDialog(playerid, "Your password length should be above 3 chars AND below 30 chars long."); return true; } new thstndrd[10]; switch(CountRegister() + 1) { case 1,21,31: format(thstndrd, sizeof(thstndrd), "st"); case 2,22: format(thstndrd, sizeof(thstndrd), "nd"); case 3,23: format(thstndrd, sizeof(thstndrd), "rd"); default: format(thstndrd, sizeof(thstndrd), "th"); } SetPlayerCamera(playerid); format(PlayerPassword[playerid], 90, "%s", inputtext); Message(playerid, COLOR_GOLD, "Welcome to San Andreas '92 Singleplayer Roleplay, %s {FFFFFF}["REVISION"]", ReturnName(playerid)); SendClientMessage(playerid, -1, " "); Message(playerid, COLOR_WHITE, "* You will be our %i%s registered user.", (CountRegister() + 1), thstndrd); SendClientMessage(playerid, COLOR_WHITE, "* Before you can spawn you'll go through this short introduction to our server."); SendClientMessage(playerid, COLOR_WHITE, "* You can through slides by pressing SPACE."); PlayerTutorial[playerid] = 1; PlayerTutorialTimer[playerid] = SetTimerEx("StartPlayerTutorial", 3000, false, "i", playerid); } case DIALOG_LOGIN: { if(!response)return Kick(playerid); if(strlen(inputtext) < 3 || strlen(inputtext) > 128){ ShowLoginDialog(playerid, "The password you inputted does not match the password criteria."); PlayerData[playerid][pPassAttempts]++; if(PlayerData[playerid][pPassAttempts] == 4){ SendClientMessage(playerid, COLOR_ADM, "SERVER:{FFFFFF} You were kicked for exceeding three password attempts."); KickEx(playerid); } return true; } new query[190]; mysql_format(m_Handle, query, sizeof(query), "SELECT id, IP, SecretWord FROM players WHERE Name = '%e' AND Password = sha1('%e') LIMIT 1", ReturnName(playerid, 1), inputtext); mysql_pquery(m_Handle, query, "SQL_OnAccountLogin", "i", playerid); } case DIALOG_ADMINPM: { if(response) { new name_colorA[60], name_colorB[60]; new text[128], playerb; format(text, 128, "%s", PlayerData[playerid][pPMText]); playerb = PlayerData[playerid][pPMing]; // 2 lazy to change them all to PMText; if(PlayerData[playerid][pAdminDuty]) format(name_colorA, 60, "{FF9900}%s", ReturnName(playerid)); else format(name_colorA, 60, "%s", ReturnName(playerid)); if(PlayerData[playerb][pAdminDuty]) format(name_colorB, 60, "{FF9900}%s", ReturnName(playerb)); else format(name_colorB, 60, "%s", ReturnName(playerb)); foreach(new i : Player) { if(PlayerData[i][pSpectator] == playerid) { Message(i, COLOR_PMSEN, "%s[%i] PM to %s[%i]: %s", name_colorA, playerid, name_colorB, playerb, text); } if(PlayerData[i][pSpectator] == playerb) { Message(i, COLOR_PMREC, "%s[%i] PM to %s[%i]: %s", name_colorA, playerid, name_colorB, playerb, text); } } if(strlen(text) > 75) { Message(playerid, COLOR_PMSEN, "(( PM to %s{EEE854}[%i]: %.75s... ))", name_colorB, playerb, text); Message(playerid, COLOR_PMSEN, "(( PM to %s{EEE854}[%i]: ...%s ))", name_colorB, playerb, text[75]); Message(playerb, COLOR_PMREC, "(( PM from %s{FFDC18}[%i]: %.75s... ))", name_colorA, playerid, text); Message(playerb, COLOR_PMREC, "(( PM from %s{FFDC18}[%i]: ...%s ))", name_colorA, playerid, text[75]); } else { Message(playerid, COLOR_PMSEN, "(( PM to %s{ECCD2D}[%i]: %s ))", name_colorB, playerb, text); Message(playerb, COLOR_PMREC, "(( PM from %s{FFDC18}[%i]: %s ))", name_colorA, playerid, text); } CanPMAdmin[playerid][playerb] = 1; WriteLog("chat_logs/pm_log.txt", "[%s] %s PMed %s: %s.", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerb, 1), text); return 1; } else format(PlayerData[playerid][pPMText], 128, ""); return 1; } case DIALOG_PDSKINS:{ switch(listitem){ case 0: SetPlayerSkin(playerid, 280); case 1: SetPlayerSkin(playerid, 300); case 2: SetPlayerSkin(playerid, 281); case 3: SetPlayerSkin(playerid, 301); case 4: SetPlayerSkin(playerid, 306); case 5: SetPlayerSkin(playerid, 307); case 6: SetPlayerSkin(playerid, 265); case 7: SetPlayerSkin(playerid, 267); case 8: SetPlayerSkin(playerid, 266); case 9: SetPlayerSkin(playerid, 284); case 10: SetPlayerSkin(playerid, 61); case 11: SetPlayerSkin(playerid, 93); } return 1; } case DIALOG_SDSKINS:{ switch(listitem){ case 0: SetPlayerSkin(playerid, 71); case 1: SetPlayerSkin(playerid, 282); case 2: SetPlayerSkin(playerid, 302); case 3: SetPlayerSkin(playerid, 309); case 4: SetPlayerSkin(playerid, 283); case 5: SetPlayerSkin(playerid, 310); case 6: SetPlayerSkin(playerid, 288); case 7: SetPlayerSkin(playerid, 311); case 8: SetPlayerSkin(playerid, 211); case 9: SetPlayerSkin(playerid, 93); case 10: SetPlayerSkin(playerid, 284); case 11: SetPlayerSkin(playerid, 61); case 12: SetPlayerSkin(playerid, 150); } return 1; } case DIALOG_FDSKINS:{ switch(listitem) { case 0: SetPlayerSkin(playerid, 274); case 1: SetPlayerSkin(playerid, 275); case 2: SetPlayerSkin(playerid, 276); case 3: SetPlayerSkin(playerid, 308); case 4: SetPlayerSkin(playerid, 277); case 5: SetPlayerSkin(playerid, 278); case 6: SetPlayerSkin(playerid, 279); } return 1; } case DIALOG_TOLLS:{ if(response){ new string[129], longstr[256]; //bf605c locked new lslvStatus[90], lslvLock[90]; new flintStatus[90], flintLock[90]; new richStatus[90], richLock[90]; if(TollsData[1][tollStatus] == 1) format(lslvStatus, sizeof(lslvStatus), "Opened"); else format(lslvStatus, sizeof(lslvStatus), "Closed"); if(TollsData[1][tollLocked] == 1) format(lslvLock, sizeof(lslvLock), "{BF605C}Locked"); else format(lslvLock, sizeof(lslvLock), "{85A82B}Unlocked"); if(TollsData[2][tollStatus] == 1) format(flintStatus, sizeof(flintStatus), "Opened"); else format(flintStatus, sizeof(flintStatus), "Closed"); if(TollsData[2][tollLocked] == 1) format(flintLock, sizeof(flintLock), "{BF605C}Locked"); else format(flintLock, sizeof(flintLock), "{85A82B}Unlocked"); if(TollsData[3][tollStatus] == 1) format(richStatus, sizeof(richStatus), "Opened"); else format(richStatus, sizeof(richStatus), "Closed"); if(TollsData[3][tollLocked] == 1) format(richLock, sizeof(richLock), "{BF605C}Locked"); else format(richLock, sizeof(richLock), "{85A82B}Unlocked"); format(string, sizeof(string), "{AFAFAF}Booth Name\t\t\tStatus\t\t\tEmergency\n"); strcat(longstr, string); format(string, sizeof(string), " \t\t\n\n"); strcat(longstr, string); format(string, sizeof(string), "{FFFFFF}LSLV Highway{AFAFAF}\t\t\t%s\t\t\t%s\n", lslvStatus, lslvLock); strcat(longstr, string); format(string, sizeof(string), "{FFFFFF}Flint Range{AFAFAF}\t\t\t%s\t\t\t%s\n", flintStatus, flintLock); strcat(longstr, string); format(string, sizeof(string), "{FFFFFF}Rodeo Bank{AFAFAF}\t\t\t%s\t\t\t%s\n", richStatus, richLock); strcat(longstr, string); format(string, sizeof(string), "{AFAFAF}Lock all booths\n{AFAFAF}Unlock all booths"); strcat(longstr, string); ShowPlayerDialog(playerid, DIALOG_TOLLM, DIALOG_STYLE_LIST, "Toll Management", longstr, "Select", "Back"); } } case DIALOG_TOLLM:{ if(response){ switch(listitem){ case 2:{ // LS LV new string[128]; if(TollsData[1][tollLocked]){ TollsData[1][tollLocked] = false; format(string, sizeof(string), "** HQ Announcement: The Las Venturas tolls were UNLOCKED by %s %s! **", ReturnRank(playerid), ReturnName(playerid, 0)); SendLawMessage(COLOR_COP, string); } else{ TollsData[1][tollLocked] = true; format(string, sizeof(string), "** HQ Announcement: The Las Venturas tolls were LOCKED by %s %s! **", ReturnRank(playerid), ReturnName(playerid, 0)); SendLawMessage(COLOR_COP, string); tollTimesLocked++; } } case 3:{ // Flint new string[128]; if(TollsData[2][tollLocked]){ TollsData[2][tollLocked] = false; format(string, sizeof(string), "** HQ Announcement: The Flint Range tolls were UNLOCKED by %s %s! **", ReturnRank(playerid), ReturnName(playerid, 0)); SendLawMessage(COLOR_COP, string); } else{ TollsData[2][tollLocked] = true; format(string, sizeof(string), "** HQ Announcement: The Flint Range tolls were LOCKED by %s %s! **", ReturnRank(playerid), ReturnName(playerid, 0)); SendLawMessage(COLOR_COP, string); tollTimesLocked++; } } case 4:{ // Rodeo new string[128]; if(TollsData[3][tollLocked]){ TollsData[3][tollLocked] = false; format(string, sizeof(string), "** HQ Announcement: The Rodeo Bank tolls were UNLOCKED by %s %s! **", ReturnRank(playerid), ReturnName(playerid, 0)); SendLawMessage(COLOR_COP, string); } else{ TollsData[3][tollLocked] = true; format(string, sizeof(string), "** HQ Announcement: The Rodeo Bank tolls were LOCKED by %s %s! **", ReturnRank(playerid), ReturnName(playerid, 0)); SendLawMessage(COLOR_COP, string); tollTimesLocked++; } } case 5:{ // Lock all new string[128]; for(new i = 0; i < MAX_TOLLS; i++){ if(TollsData[i][tollID] != 0){ TollsData[i][tollLocked] = true; } } tollTimesLocked++; format(string, sizeof(string), "** HQ Announcement: All toll booths were LOCKED by %s %s! **", ReturnRank(playerid), ReturnName(playerid, 0)); SendLawMessage(COLOR_COP, string); } case 6:{ // Unlock all new string[128]; for(new i = 0; i < MAX_TOLLS; i++){ if(TollsData[i][tollID] != 0){ TollsData[i][tollLocked] = false; } } format(string, sizeof(string), "** HQ Announcement: All toll booths were UNLOCKED by %s %s! **", ReturnRank(playerid), ReturnName(playerid, 0)); SendLawMessage(COLOR_COP, string); } } } else{ new string[256]; format(string, sizeof(string), "Welcome to the toll booth management menu!\n\nFrom this menu you can toggle the locked status of tolls and\nview some information on a specific toll around San Andreas.\n\nThis front screen will also display financial and statistical data\nof all toll booth's including visits, taxations and payments made\nfor the past 60 minutes.\n\n{85A82B}Statistical Information:\n{FFFFFF}Booths Opened: %d Payments: %d Times Locked: %d", ReturnTollsOpened(), totalTollPayment, tollTimesLocked); ShowPlayerDialog(playerid, DIALOG_TOLLS, DIALOG_STYLE_MSGBOX, "Tollbooth Management", string, "Proceed", "Cancel"); } } case DIALOG_FURNITURE:{ if(response){ switch(listitem){ case 0:{ new prop = IsPlayerInProperty(playerid); if(CountPropertyFurniture(prop) >= MAX_HOUSE_FURNITURE) return SendClientMessage(playerid, COLOR_ADM, "ACCESS DENIED:{FFFFFF} Your properties at the limit."); new string[400]; string[0] = EOS; for(new i = 0; i < sizeof(g_aFurnitureTypes); i++){ format(string, sizeof(string), "%s%s\n", string, g_aFurnitureTypes[i]); } ShowPlayerDialog(playerid, DIALOG_BUYFURNITURE, DIALOG_STYLE_LIST, "Categories:", string, "Select", "<<"); } case 1:{ ShowPlayerFurniture(playerid, 1); /*new sub_str[256], principal_str[3200], title[128], counter = 0, id = IsPlayerInProperty(playerid); format(title, sizeof(title), "Current Furniture({33AA33}%d{FFFFFF})", CountPropertyFurniture(id)); for(new i = 0; i < MAX_FURNITURE; i++){ if( FurnitureData[i][furnitureSQLID] != 0 ) { if( FurnitureData[i][furniturePropertyID] == id ) { format(sub_str, sizeof(sub_str), "%d. %s\n", i, FurnitureData[i][furnituresName]); strcat(principal_str, sub_str); FurnitureSelectHolder[playerid][counter] = i; counter++; } } } ShowPlayerDialog(playerid, DIALOG_EDIT_FURNITURE, DIALOG_STYLE_LIST, title, principal_str, "Select", "<<");*/ } case 2:{ new string[267], id = IsPlayerInProperty(playerid); format(string, sizeof(string), "{FFFFFF}-This property currently\nhas {33AA33}%d{FFFFFF} items.\n-You have a furniture limit of {33AA33}%d\n{FFFFFF}-You can add\n {33AA33}%d{FFFFFF} more items.", CountPropertyFurniture(id), MAX_HOUSE_FURNITURE, MAX_HOUSE_FURNITURE - CountPropertyFurniture(id)); ShowPlayerDialog(playerid, DIALOG_USE, DIALOG_STYLE_MSGBOX, "House Information", string, "<<", ""); } } } } case DIALOG_EDIT_FURNITURE:{ if(!response) { PlayerFurniturePage[playerid] = 0; for(new i = 0; i < MAX_SHOWING_FURNITURE+3; i++) { FurnitureSelectHolder[playerid][i] = -1; } } if(response){ if(listitem == 0) { if(PlayerFurniturePage[playerid] == 1) ShowPlayerFurniture(playerid, 1); else ShowPlayerFurniture(playerid, PlayerFurniturePage[playerid]-1); return true; } if(listitem == MAX_SHOWING_FURNITURE+1){ return ShowPlayerFurniture(playerid, PlayerFurniturePage[playerid]+1); } //FurnitureSelectHolderArr[playerid] = FurnitureSelectHolder[playerid][listitem]; PlayerListitemSelected[playerid] = listitem-1; ShowPlayerDialog(playerid, DIALOG_FURNITURE_EDIT_MENU, DIALOG_STYLE_LIST, "Modification Menu", "Edit Furniture\nDuplicate Furniture\nSell Furniture", "Select", "<<"); } } case DIALOG_FURNITURE_EDIT_MENU:{ if(response){ for(new i = 0; i < MAX_FURNITURE; i++){ if(FurnitureData[i][furnitureSQLID] != 0){ if(FurnitureData[i][furnitureSQLID] == FurnitureSelectHolder[playerid][PlayerListitemSelected[playerid]]){ FurnitureSelectHolderArr[playerid] = i; } } } switch(listitem){ case 0:{ DisplayFurnitureMessage(playerid); EditDynamicObject(playerid, FurnitureData[FurnitureSelectHolderArr[playerid]][furnitureObject]); PlayerData[playerid][pEditingFurniture] = true; PlayerData[playerid][pEditingXMR] = false; PlayerData[playerid][pAddingFurniture] = false; } case 1:{ new i = FurnitureSelectHolderArr[playerid]; PlayerData[playerid][pFurnitureDuplicate] = CreateDynamicObject(FurnitureData[i][furnituresModel], FurnitureData[i][furniturePos][0], FurnitureData[i][furniturePos][1], FurnitureData[i][furniturePos][2], FurnitureData[i][furnitureRot][0], FurnitureData[i][furnitureRot][1], FurnitureData[i][furnitureRot][2], GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)); EditDynamicObject(playerid, PlayerData[playerid][pFurnitureDuplicate]); PlayerData[playerid][pEditingDuplicate] = true; DisplayFurnitureMessage(playerid); } case 2:{ new string[128]; format(string, sizeof(string), "{FFFFFF}Are you sure you\n want to sell this %s?\n\nPress {FFFF00}Yes{FFFFFF} to continue.", FurnitureData[FurnitureSelectHolderArr[playerid]][furnituresName]); ConfirmDialog(playerid, "Confirmation", string, "OnPlayerSellFurniture", FurnitureData[FurnitureSelectHolderArr[playerid]][furnitureObject], FurnitureData[FurnitureSelectHolderArr[playerid]][furnitureSQLID], FurnitureSelectHolderArr[playerid]); } } } } case DIALOG_BUYFURNITURE:{ new string[1250]; if(response){ CatFurnitureHolder[playerid] = listitem; new counter = 0; for(new i = 0; i < sizeof(g_aFurnitureData); i++){ if(listitem == g_aFurnitureData[i][furnitureCategory]){ format(string, sizeof(string), "%s%s\n", string, g_aFurnitureData[i][furnitureName]); SubFurnitureHolderArr[playerid][counter] = i; counter++; } } ShowPlayerDialog(playerid, DIALOG_BUYFURNITURE_SUB, DIALOG_STYLE_LIST, "Available Furnitures:", string, "Select", "<<"); } else{ for(new i = 0; i < sizeof(g_aFurnitureTypes); i++){ format(string, sizeof(string), "%s%s\n", string, g_aFurnitureTypes[i]); } ShowPlayerDialog(playerid, DIALOG_BUYFURNITURE, DIALOG_STYLE_LIST, "Categories:", string, "Select", "<<"); } } case DIALOG_BUYFURNITURE_SUB:{ if(response){ SubFurnitureHolder[playerid] = SubFurnitureHolderArr[playerid][listitem]; new Float:currPos[3]; GetPlayerPos(playerid, currPos[0], currPos[1], currPos[2]); PlayerData[playerid][pFurnitureModel] = g_aFurnitureData[SubFurnitureHolder[playerid]][furnitureModel]; format(PlayerData[playerid][pFurnitureName], 32, g_aFurnitureData[SubFurnitureHolder[playerid]][furnitureName]); PlayerData[playerid][pFurnitureObject] = CreateDynamicObject(g_aFurnitureData[SubFurnitureHolder[playerid]][furnitureModel], currPos[0] - 1, currPos[1], currPos[2] + 1, 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)); EditDynamicObject(playerid, PlayerData[playerid][pFurnitureObject]); PlayerData[playerid][pAddingFurniture] = true; DisplayFurnitureMessage(playerid); } } case DIALOG_DEALERSHIP:{ if(response){ CatDealershipHolder[playerid] = listitem; new string[900], counter = 0; for(new i = 0; i < sizeof(g_aDealershipData); i++){ if(listitem == g_aDealershipData[i][dealershipCategory]){ format(string, sizeof(string), "%s%s\t\t\t$%s\n", string, g_aDealershipData[i][dealershipModelName], MoneyFormat(g_aDealershipData[i][dealershipPrice])); SubDealershipHolderArr[playerid][counter] = i; counter++; } } ShowPlayerDialog(playerid, DIALOG_DEALERSHIP_SUB, DIALOG_STYLE_LIST, "Available Vehicles:", string, "Select", "<<"); } else{ new string[400]; string[0] = EOS; for(new v = 0; v < sizeof(g_aDealershipCategory); v++){ format(string, sizeof(string), "%s%s\n", string, g_aDealershipCategory[v]); } } } case DIALOG_DEALERSHIP_SUB:{ if(response){ SubDealershipHolder[playerid] = SubDealershipHolderArr[playerid][listitem]; new title[128], string[128]; g_aTotalAmount[playerid] = g_aDealershipData[SubDealershipHolder[playerid]][dealershipPrice]; format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); strcat(string, "Alarm\n"); strcat(string, "Lock\n"); strcat(string, "Immobiliser\n"); strcat(string, "Colors\n"); strcat(string, "No XM Installed\n"); ShowPlayerDialog(playerid, DIALOG_DEALERSHIP_APPEND, DIALOG_STYLE_LIST, title, string, "Append", "Purchase"); TogglePlayerControllable(playerid, false); new biz = PlayerData[playerid][pAtDealership]; g_aVehicleSpawned[playerid] = CreateVehicle(ds_PlayerMenuModels[playerid][SubDealershipHolder[playerid]], BusinessData[biz][businessInt][0], BusinessData[biz][businessInt][1], BusinessData[biz][businessInt][2], 90, 0, 0, 0, 0); PutPlayerInVehicle(playerid, g_aVehicleSpawned[playerid], 0); printf("[DEBUG] Vehicle ID %d spawned for %s's dealership car.", g_aVehicleSpawned[playerid], ReturnName(playerid, 1)); } } case DIALOG_DEALERSHIP_APPEND:{ if(response){ new title[128], string[400]; switch(listitem){ case 0:{ format(title, sizeof(title), "%s - {33AA33}$%s", ds_PlayerMenuNames[playerid][SubDealershipHolder[playerid]], MoneyFormat(g_aTotalAmount[playerid])); if(g_aAlarmLevel[playerid] == 1){ strcat(string, "{FFFF00}>>{FFFFFF}Alarm Level 1 - $200\n"); } else { strcat(string, "Alarm Level 1 - $200\n"); } if(g_aAlarmLevel[playerid] == 2){ strcat(string, "{FFFF00}>>{FFFFFF}Alarm Level 2 - $400\n"); } else { strcat(string, "Alarm Level 2 - $400\n"); } if(g_aAlarmLevel[playerid] == 3){ strcat(string, "{FFFF00}>>{FFFFFF}Alarm Level 3 - $600\n"); } else { strcat(string, "Alarm Level 3 - $600\n"); } if(g_aAlarmLevel[playerid] == 4){ strcat(string, "{FFFF00}>>{FFFFFF}Alarm Level 4 - $1,000\n"); } else { strcat(string, "Alarm Level 4 - $1,000\n"); } ShowPlayerDialog(playerid, DIALOG_APPEND_ALARM, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } case 1:{ format(title, sizeof(title), "%s - {33AA33}$%s", ds_PlayerMenuNames[playerid][SubDealershipHolder[playerid]], MoneyFormat(g_aTotalAmount[playerid])); if(g_aLockLevel[playerid] == 1){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 1 - $100\n"); } else { strcat(string, "Lock Level 1 - $100\n"); } if(g_aLockLevel[playerid] == 2){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 2 - $300\n"); } else { strcat(string, "Lock Level 2 - $300\n"); } if(g_aLockLevel[playerid] == 3){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 3 - $500\n"); } else { strcat(string, "Lock Level 3 - $500\n"); } if(g_aLockLevel[playerid] == 4){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 4 - $800\n"); } else { strcat(string, "Lock Level 4 - $800\n"); } ShowPlayerDialog(playerid, DIALOG_APPEND_LOCK, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } case 2:{ format(title, sizeof(title), "%s - {33AA33}$%s", ds_PlayerMenuNames[playerid][SubDealershipHolder[playerid]], MoneyFormat(g_aTotalAmount[playerid])); if(g_aImmobLevel[playerid] == 1) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 1 - $300\n"); } else { strcat(string, "Immobiliser Level 1 - $300\n"); } if(g_aImmobLevel[playerid] == 2) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 2 - $500\n"); } else { strcat(string, "Immobiliser Level 2 - $500\n"); } if(g_aImmobLevel[playerid] == 3) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 3 - $700\n"); } else { strcat(string, "Immobiliser Level 3 - $700\n"); } if(g_aImmobLevel[playerid] == 4) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 4 - $1,000\n"); } else { strcat(string, "Immobiliser Level 4 - $1,000\n"); } ShowPlayerDialog(playerid, DIALOG_APPEND_IMMOB, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } case 3:{ format(title, sizeof(title), "%s - {33AA33}$%s", ds_PlayerMenuNames[playerid][SubDealershipHolder[playerid]], MoneyFormat(g_aTotalAmount[playerid])); ShowPlayerDialog(playerid, DIALOG_APPEND_COLOR, DIALOG_STYLE_INPUT, title, "Enter your vehicles Color1 ID (0-255)!", "Select", ">>"); } case 4:{ if(!g_aXMR[playerid]){ g_aXMR[playerid] = true; format(title, sizeof(title), "%s - {33AA33}$%s", ds_PlayerMenuNames[playerid][SubDealershipHolder[playerid]], MoneyFormat(g_aTotalAmount[playerid])); strcat(string, "Alarm\n"); strcat(string, "Lock\n"); strcat(string, "Immobiliser\n"); strcat(string, "Colors\n"); strcat(string, "{FFFF00}XM-Radio Installed\n"); ShowPlayerDialog(playerid, DIALOG_DEALERSHIP_APPEND, DIALOG_STYLE_LIST, title, string, "Select", ">>"); } else{ g_aXMR[playerid] = false; format(title, sizeof(title), "%s - {33AA33}$%s", ds_PlayerMenuNames[playerid][SubDealershipHolder[playerid]], MoneyFormat(g_aTotalAmount[playerid])); strcat(string, "Alarm\n"); strcat(string, "Lock\n"); strcat(string, "Immobiliser\n"); strcat(string, "Colors\n"); strcat(string, "No XM Installed\n"); ShowPlayerDialog(playerid, DIALOG_DEALERSHIP_APPEND, DIALOG_STYLE_LIST, title, string, "Select", ">>"); } } } } else{ new title[100]; format(title, sizeof(title), "%s - {33AA33}$%s", ds_PlayerMenuNames[playerid][SubDealershipHolder[playerid]], MoneyFormat(g_aTotalAmount[playerid])); ConfirmDialog(playerid, title, "Are you sure you would like\n to continue with this purchase?", "OnPlayerPurchaseCar"); } } case DIALOG_APPEND_COLOR:{ if(response) { new title[100]; format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); if(!IsNumeric(inputtext)){ return ShowPlayerDialog(playerid, DIALOG_APPEND_COLOR, DIALOG_STYLE_INPUT, title, "{F81414}Color must be between 0-255! ( /colorlist )\n\n{FFFFFF}Enter your vehicles Color1 ID (0-255)!", "Select", "<<"); } g_aVehicleColor[playerid][0] = strval(inputtext); ChangeVehicleColor(GetPlayerVehicleID(playerid), g_aVehicleColor[playerid][0], g_aVehicleColor[playerid][1]); ShowPlayerDialog(playerid, DIALOG_APPEND_COLOR2, DIALOG_STYLE_INPUT, title, "Enter your vehicles Color2 ID (0-255)!", "Select", "<<"); } else { new title[100], string[128]; format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); strcat(string, "Alarm\n"); strcat(string, "Lock\n"); strcat(string, "Immobiliser\n"); strcat(string, "Colors\n"); if(g_aXMR[playerid]) { strcat(string, "{FFFF00}XM-Radio Installed\n"); } else{ strcat(string, "No XM Installed"); } ShowPlayerDialog(playerid, DIALOG_DEALERSHIP_APPEND, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } } case DIALOG_APPEND_COLOR2:{ if(response) { new title[100], string[128]; format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); if(!IsNumeric(inputtext)){ return ShowPlayerDialog(playerid, DIALOG_APPEND_COLOR, DIALOG_STYLE_INPUT, title, "{F81414}Color must be between 0-255! ( /colorlist )\n\n{FFFFFF}Enter your vehicles Color1 ID (0-255)!", "Select", "<<"); } g_aVehicleColor[playerid][1] = strval(inputtext); ChangeVehicleColor(GetPlayerVehicleID(playerid), g_aVehicleColor[playerid][0], g_aVehicleColor[playerid][1]); strcat(string, "Alarm\n"); strcat(string, "Lock\n"); strcat(string, "Immobiliser\n"); strcat(string, "Colors\n"); if(g_aXMR[playerid]) { strcat(string, "{FFFF00}XM-Radio Installed\n"); } else{ strcat(string, "No XM Installed"); } ShowPlayerDialog(playerid, DIALOG_DEALERSHIP_APPEND, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } else { new title[100], string[128]; format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); strcat(string, "Alarm\n"); strcat(string, "Lock\n"); strcat(string, "Immobiliser\n"); strcat(string, "Colors\n"); if(g_aXMR[playerid]) { strcat(string, "{FFFF00}XM-Radio Installed\n"); } else{ strcat(string, "No XM Installed"); } ShowPlayerDialog(playerid, DIALOG_DEALERSHIP_APPEND, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } } case DIALOG_APPEND_IMMOB:{ if(response){ new title[100], string[600]; switch(listitem){ case 0:{ if(g_aImmobLevel[playerid] != 1) { g_aTotalAmount[playerid] += 300; } if(g_aImmobLevel[playerid] == 2){ g_aTotalAmount[playerid] -= 500; } else if(g_aImmobLevel[playerid] == 3){ g_aTotalAmount[playerid] -= 700; } else if(g_aImmobLevel[playerid] == 4){ g_aTotalAmount[playerid] -= 1000; } g_aImmobLevel[playerid] = 1; if(g_aImmobLevel[playerid] == 1) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 1 - $300\n"); } else { strcat(string, "Immobiliser Level 1 - $300\n"); } if(g_aImmobLevel[playerid] == 2) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 2 - $500\n"); } else { strcat(string, "Immobiliser Level 2 - $500\n"); } if(g_aImmobLevel[playerid] == 3) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 3 - $700\n"); } else { strcat(string, "Immobiliser Level 3 - $700\n"); } if(g_aImmobLevel[playerid] == 4) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 4 - $1,000\n"); } else { strcat(string, "Immobiliser Level 4 - $1,000\n"); } format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); ShowPlayerDialog(playerid, DIALOG_APPEND_IMMOB, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } case 1:{ if(g_aImmobLevel[playerid] != 2) { g_aTotalAmount[playerid] += 500; } if(g_aImmobLevel[playerid] == 1){ g_aTotalAmount[playerid] -= 300; } else if(g_aImmobLevel[playerid] == 3){ g_aTotalAmount[playerid] -= 700; } else if(g_aImmobLevel[playerid] == 4){ g_aTotalAmount[playerid] -= 1000; } g_aImmobLevel[playerid] = 2; if(g_aImmobLevel[playerid] == 1) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 1 - $300\n"); } else { strcat(string, "Immobiliser Level 1 - $300\n"); } if(g_aImmobLevel[playerid] == 2) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 2 - $500\n"); } else { strcat(string, "Immobiliser Level 2 - $500\n"); } if(g_aImmobLevel[playerid] == 3) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 3 - $700\n"); } else { strcat(string, "Immobiliser Level 3 - $700\n"); } if(g_aImmobLevel[playerid] == 4) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 4 - $1,000\n"); } else { strcat(string, "Immobiliser Level 4 - $1,000\n"); } format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); ShowPlayerDialog(playerid, DIALOG_APPEND_IMMOB, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } case 2:{ if(g_aImmobLevel[playerid] != 3) { g_aTotalAmount[playerid] += 700; } if(g_aImmobLevel[playerid] == 1){ g_aTotalAmount[playerid] -= 300; } else if(g_aImmobLevel[playerid] == 2){ g_aTotalAmount[playerid] -= 500; } else if(g_aImmobLevel[playerid] == 4){ g_aTotalAmount[playerid] -= 1000; } g_aImmobLevel[playerid] = 3; if(g_aImmobLevel[playerid] == 1) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 1 - $300\n"); } else { strcat(string, "Immobiliser Level 1 - $300\n"); } if(g_aImmobLevel[playerid] == 2) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 2 - $500\n"); } else { strcat(string, "Immobiliser Level 2 - $500\n"); } if(g_aImmobLevel[playerid] == 3) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 3 - $700\n"); } else { strcat(string, "Immobiliser Level 3 - $700\n"); } if(g_aImmobLevel[playerid] == 4) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 4 - $1,000\n"); } else { strcat(string, "Immobiliser Level 4 - $1000\n"); } format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); ShowPlayerDialog(playerid, DIALOG_APPEND_IMMOB, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } case 3:{ if(g_aImmobLevel[playerid] != 4) { g_aTotalAmount[playerid] += 1000; } if(g_aImmobLevel[playerid] == 1){ g_aTotalAmount[playerid] -= 300; } else if(g_aImmobLevel[playerid] == 2){ g_aTotalAmount[playerid] -= 500; } else if(g_aImmobLevel[playerid] == 3){ g_aTotalAmount[playerid] -= 700; } g_aImmobLevel[playerid] = 4; if(g_aImmobLevel[playerid] == 1) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 1 - $300\n"); } else { strcat(string, "Immobiliser Level 1 - $300\n"); } if(g_aImmobLevel[playerid] == 2) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 2 - $500\n"); } else { strcat(string, "Immobiliser Level 2 - $500\n"); } if(g_aImmobLevel[playerid] == 3) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 3 - $700\n"); } else { strcat(string, "Immobiliser Level 3 - $700\n"); } if(g_aImmobLevel[playerid] == 4) { strcat(string, "{FFFF00}>>{FFFFFF}Immobiliser Level 4 - $1,000\n"); } else { strcat(string, "Immobiliser Level 4 - $1,000\n"); } format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); ShowPlayerDialog(playerid, DIALOG_APPEND_IMMOB, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } } } else{ new title[100], string[128]; format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); strcat(string, "Alarm\n"); strcat(string, "Lock\n"); strcat(string, "Immobiliser\n"); strcat(string, "Colors\n"); if(g_aXMR[playerid]) { strcat(string, "{FFFF00}XM-Radio Installed\n"); } else{ strcat(string, "No XM Installed"); } ShowPlayerDialog(playerid, DIALOG_DEALERSHIP_APPEND, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } } case DIALOG_APPEND_LOCK:{ if(response){ new title[100], string[128]; switch(listitem){ case 0:{ if(g_aLockLevel[playerid] != 1) { g_aTotalAmount[playerid]+= 100; } if(g_aLockLevel[playerid] == 2){ g_aTotalAmount[playerid]-= 300; } else if(g_aLockLevel[playerid] == 3){ g_aTotalAmount[playerid] -=500; } else if(g_aLockLevel[playerid] == 4){ g_aTotalAmount[playerid]-=800; } g_aLockLevel[playerid] = 1; if(g_aLockLevel[playerid] == 1){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 1 - $100\n"); } else { strcat(string, "Lock Level 1 - $100\n"); } if(g_aLockLevel[playerid] == 2){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 2 - $300\n"); } else { strcat(string, "Lock Level 2 - $300\n"); } if(g_aLockLevel[playerid] == 3){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 3 - $500\n"); } else { strcat(string, "Lock Level 3 - $500\n"); } if(g_aLockLevel[playerid] == 4){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 4 - $800\n"); } else { strcat(string, "Lock Level 4 - $800\n"); } format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); ShowPlayerDialog(playerid, DIALOG_APPEND_LOCK, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } case 1:{ if(g_aLockLevel[playerid] != 2) { g_aTotalAmount[playerid]+= 300; } if(g_aLockLevel[playerid] == 1){ g_aTotalAmount[playerid] -= 100; } else if(g_aLockLevel[playerid] == 3){ g_aTotalAmount[playerid] -= 500; } else if(g_aLockLevel[playerid] == 4){ g_aTotalAmount[playerid]-= 800; } g_aLockLevel[playerid] = 2; if(g_aLockLevel[playerid] == 1){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 1 - $100\n"); } else { strcat(string, "Lock Level 1 - $100\n"); } if(g_aLockLevel[playerid] == 2){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 2 - $300\n"); } else { strcat(string, "Lock Level 2 - $300\n"); } if(g_aLockLevel[playerid] == 3){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 3 - $500\n"); } else { strcat(string, "Lock Level 3 - $500\n"); } if(g_aLockLevel[playerid] == 4){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 4 - $800\n"); } else { strcat(string, "Lock Level 4 - $800\n"); } format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); ShowPlayerDialog(playerid, DIALOG_APPEND_LOCK, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } case 2:{ if(g_aLockLevel[playerid] != 3) { g_aTotalAmount[playerid]+= 500; } if(g_aLockLevel[playerid] == 1){ g_aTotalAmount[playerid] -= 100; } else if(g_aLockLevel[playerid] == 2){ g_aTotalAmount[playerid] -= 300; } else if(g_aLockLevel[playerid] == 4){ g_aTotalAmount[playerid]-= 800; } g_aLockLevel[playerid] = 3; if(g_aLockLevel[playerid] == 1){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 1 - $100\n"); } else { strcat(string, "Lock Level 1 - $100\n"); } if(g_aLockLevel[playerid] == 2){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 2 - $300\n"); } else { strcat(string, "Lock Level 2 - $300\n"); } if(g_aLockLevel[playerid] == 3){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 3 - $500\n"); } else { strcat(string, "Lock Level 3 - $500\n"); } if(g_aLockLevel[playerid] == 4){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 4 - $800\n"); } else { strcat(string, "Lock Level 4 - $800\n"); } format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); ShowPlayerDialog(playerid, DIALOG_APPEND_LOCK, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } case 3:{ if(g_aLockLevel[playerid] != 4) { g_aTotalAmount[playerid]+= 800; } if(g_aLockLevel[playerid] == 1){ g_aTotalAmount[playerid] -= 100; } else if(g_aLockLevel[playerid] == 2){ g_aTotalAmount[playerid] -= 300; } else if(g_aLockLevel[playerid] == 3){ g_aTotalAmount[playerid]-= 500; } g_aLockLevel[playerid] = 4; if(g_aLockLevel[playerid] == 1){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 1 - $100\n"); } else { strcat(string, "Lock Level 1 - $100\n"); } if(g_aLockLevel[playerid] == 2){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 2 - $300\n"); } else { strcat(string, "Lock Level 2 - $300\n"); } if(g_aLockLevel[playerid] == 3){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 3 - $500\n"); } else { strcat(string, "Lock Level 3 - $500\n"); } if(g_aLockLevel[playerid] == 4){ strcat(string, "{FFFF00}>>{FFFFFF}Lock Level 4 - $800\n"); } else { strcat(string, "Lock Level 4 - $800\n"); } format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); ShowPlayerDialog(playerid, DIALOG_APPEND_LOCK, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } } } else{ new title[128], string[128]; format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); strcat(string, "Alarm\n"); strcat(string, "Lock\n"); strcat(string, "Immobiliser\n"); strcat(string, "Colors\n"); if(g_aXMR[playerid]) { strcat(string, "{FFFF00}XM-Radio Installed\n"); } else{ strcat(string, "No XM Installed"); } ShowPlayerDialog(playerid, DIALOG_DEALERSHIP_APPEND, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } } case DIALOG_APPEND_ALARM:{ if(response){ new title[128], string[600]; switch(listitem){ case 0:{ if(g_aAlarmLevel[playerid] != 1){ g_aTotalAmount[playerid]+= 200; } if(g_aAlarmLevel[playerid] == 2){ g_aTotalAmount[playerid]-= 400; } else if(g_aAlarmLevel[playerid] == 3){ g_aTotalAmount[playerid]-=600; } else if(g_aAlarmLevel[playerid] == 4){ g_aTotalAmount[playerid]-=1000; } g_aAlarmLevel[playerid] = 1; format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); strcat(string, "{FFFF00}>>{FFFFFF}Alarm Level 1 - $200\n"); strcat(string, "Alarm Level 2 - $400\n"); strcat(string, "Alarm Level 3 - $600\n"); strcat(string, "Alarm Level 4 - $1000\n"); ShowPlayerDialog(playerid, DIALOG_APPEND_ALARM, DIALOG_STYLE_LIST, title, string, "Select", ">>"); } case 1:{ if(g_aAlarmLevel[playerid] != 2){ g_aTotalAmount[playerid]+= 400; } if(g_aAlarmLevel[playerid] == 1){ g_aTotalAmount[playerid]-= 200; } else if(g_aAlarmLevel[playerid] == 3){ g_aTotalAmount[playerid]-=600; } else if(g_aAlarmLevel[playerid] == 4){ g_aTotalAmount[playerid]-=1000; } g_aAlarmLevel[playerid] = 2; format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); strcat(string, "Alarm Level 1 - $200\n"); strcat(string, "{FFFF00}>>{FFFFFF}Alarm Level 2 - $400\n"); strcat(string, "Alarm Level 3 - $600\n"); strcat(string, "Alarm Level 4 - $1000\n"); ShowPlayerDialog(playerid, DIALOG_APPEND_ALARM, DIALOG_STYLE_LIST, title, string, "Select", ">>"); } case 2:{ if(g_aAlarmLevel[playerid] != 3){ g_aTotalAmount[playerid]+= 600; } if(g_aAlarmLevel[playerid] == 1){ g_aTotalAmount[playerid]-=200; } else if(g_aAlarmLevel[playerid] == 2){ g_aTotalAmount[playerid]-= 400; } else if(g_aAlarmLevel[playerid] == 4){ g_aTotalAmount[playerid]-=1000; } g_aAlarmLevel[playerid] = 3; format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); strcat(string, "Alarm Level 1 - $200\n"); strcat(string, "Alarm Level 2 - $400\n"); strcat(string, "{FFFF00}>>{FFFFFF}Alarm Level 3 - $600\n"); strcat(string, "Alarm Level 4 - $1,000\n"); ShowPlayerDialog(playerid, DIALOG_APPEND_ALARM, DIALOG_STYLE_LIST, title, string, "Select", ">>"); } case 3:{ if(g_aAlarmLevel[playerid] != 4){ g_aTotalAmount[playerid]+= 1000; } if(g_aAlarmLevel[playerid] == 1){ g_aTotalAmount[playerid]-=200; } else if(g_aAlarmLevel[playerid] == 2){ g_aTotalAmount[playerid]-= 400; } else if(g_aAlarmLevel[playerid] == 3){ g_aTotalAmount[playerid]-=600; } g_aAlarmLevel[playerid] = 4; format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); strcat(string, "Alarm Level 1 - $200\n"); strcat(string, "Alarm Level 2 - $400\n"); strcat(string, "Alarm Level 3 - $600\n"); strcat(string, "{FFFF00}>>{FFFFFF}Alarm Level 4 - $1,000\n"); ShowPlayerDialog(playerid, DIALOG_APPEND_ALARM, DIALOG_STYLE_LIST, title, string, "Select", ">>"); } } } else{ new title[128], string[128]; format(title, sizeof(title), "%s - {33AA33}$%s", g_aDealershipData[SubDealershipHolder[playerid]][dealershipModelName], MoneyFormat(g_aTotalAmount[playerid])); strcat(string, "Alarm\n"); strcat(string, "Lock\n"); strcat(string, "Immobiliser\n"); strcat(string, "Colors\n"); if(g_aXMR[playerid]) { strcat(string, "{FFFF00}XM-Radio Installed\n"); } else{ strcat(string, "No XM Installed"); } ShowPlayerDialog(playerid, DIALOG_DEALERSHIP_APPEND, DIALOG_STYLE_LIST, title, string, "Select", "<<"); } } case DIALOG_XMR: { if(response){ new string[400], counter = 0; string[0] = EOS; CatXMRHolder[playerid] = listitem + 1; for(new i = 1; i < MAX_XMR_SUBCATEGORY; i++) { if (CatXMRHolder[playerid] == XMRData[i][xmrCategory]){ format(string, sizeof(string), "%sID:%d - %s\n", string, XMRData[i][xmrID], XMRData[i][xmrName]); SubXMRHolderArr[playerid][counter] = i; counter++; } } strcat(string, "{FFFF00}OFF - Click to turn off.\n"); ShowPlayerDialog(playerid, DIALOG_XMR_SELECT, DIALOG_STYLE_LIST, "Stations:", string, "Select", "Cancel"); } } case DIALOG_XMR_SELECT: { if(response){ SubXMRHolder[playerid] = SubXMRHolderArr[playerid][listitem]; if(!strcmp(inputtext, "OFF - Click to turn off.")) { cmd_setstation(playerid, "off"); return 1; } new string[128], vehicleid = GetPlayerVehicleID(playerid), property = IsPlayerInProperty(playerid) ; if (IsNearBoombox(playerid)) { format(string, sizeof(string), "> %s has turned the radio to %s.", ReturnName(playerid, 0), XMRData[SubXMRHolder[playerid]][xmrName]); SetPlayerChatBubble(playerid, string, COLOR_ACTION, 20.0, 3000); SendClientMessage(playerid, 0x88AA62FF, string); new idx = IsNearBoombox(playerid); foreach (new i : Player) { if (pLoggedIn[i]) { if (IsPlayerInRangeOfPoint(i, 25.0, BoomboxData[idx][boomboxPos][0], BoomboxData[idx][boomboxPos][1], BoomboxData[idx][boomboxPos][2])) { PlayAudioStreamForPlayer(i, XMRData[SubXMRHolder[playerid]][xmrStationURL], BoomboxData[idx][boomboxPos][0], BoomboxData[idx][boomboxPos][1], BoomboxData[idx][boomboxPos][2], 25.0, 1); format(string, sizeof(string), "Radio changed to station %s.", XMRData[SubXMRHolder[playerid]][xmrName]); SendClientMessage(i, COLOR_ADM, string); } } } BoomboxData[idx][boomboxOn] = true; format(BoomboxData[idx][boomboxURL], 128, "%s", XMRData[SubXMRHolder[playerid]][xmrStationURL]); return true; } if(IsPlayerInAnyVehicle(playerid)) { format(string, sizeof(string), "> %s has turned the radio to %s.", ReturnName(playerid, 0), XMRData[SubXMRHolder[playerid]][xmrName]); SetPlayerChatBubble(playerid, string, COLOR_ACTION, 20.0, 3000); SendClientMessage(playerid, 0x88AA62FF, string); if(IsValidPlayerCar(vehicleid)) { CarData[vehicleid][carXMROn] = true; format(CarData[vehicleid][carXMRUrl], 128, "%s", XMRData[SubXMRHolder[playerid]][xmrStationURL]); } if(IsValidFactionCar(vehicleid)) { FactionCar[vehicleid][carsXMROn] = true; format(FactionCar[vehicleid][carsXMRURL], 128, "%s", XMRData[SubXMRHolder[playerid]][xmrStationURL]); } foreach(new i : Player) { if(IsPlayerInVehicle(i, vehicleid)) { PlayAudioStreamForPlayer(i, XMRData[SubXMRHolder[playerid]][xmrStationURL]); format(string, sizeof(string), "Radio changed to station %s.", XMRData[SubXMRHolder[playerid]][xmrName]); SendClientMessage(i, COLOR_ADM, string); } } return true; } if(IsPlayerInProperty(playerid)) { foreach(new i : Player) { if(IsPlayerInProperty(i) == IsPlayerInProperty(playerid)) { PlayAudioStreamForPlayer(i, XMRData[SubXMRHolder[playerid]][xmrStationURL]); format(string, sizeof(string), "Radio changed to station %s.", XMRData[SubXMRHolder[playerid]][xmrName]); SendClientMessage(i, COLOR_ADM, string); } } format(string, sizeof(string), "> %s has turned the radio to %s.", ReturnName(playerid, 0), XMRData[SubXMRHolder[playerid]][xmrName]); SetPlayerChatBubble(playerid, string, COLOR_ACTION, 20.0, 3000); SendClientMessage(playerid, 0x88AA62FF, string); PropertyData[property][propertyXMROn] = true; format(PropertyData[property][propertyXMRUrl], 128, "%s", XMRData[SubXMRHolder[playerid]][xmrStationURL]); return true; } SendClientMessage(playerid, COLOR_ADM, "You're no longer near a radio... Please stay within a distance of your XMR source."); return true; } } case DIALOG_BUY_CLOTHING: { if(response){ if(listitem == 0){ if(PlayerClothingPage[playerid] == 1) ShowClothingList(playerid, 1); else ShowClothingList(playerid, PlayerClothingPage[playerid]-1); return true; } if(listitem == MAX_CLOTHING_SHOW+1){ return ShowClothingList(playerid, PlayerClothingPage[playerid]+1); } new id = ClothingItemSelector[playerid][listitem-1], clothing_id = FreeAttachmentSlot(playerid); ApplyAnimation(playerid, "CLOTHES", "CLO_Pose_Hat", 4.1, 0, 0, 0, 1, 0, 1); SendClientMessage(playerid, COLOR_WHITE, "HINT: Use {FFFF00}SPACE{FFFFFF} to look around. Press {FFFF00}ESC{FFFFFF} to decline."); SendClientMessage(playerid, COLOR_WHITE, "Use {FFFF00}/clothing{FFFFFF} to edit your clothing items."); SetPlayerAttachedObject(playerid, clothing_id, g_aClothingData[id][clothingModel], 2); EditAttachedObject(playerid, clothing_id); // was -1 ClothingCost[playerid] = g_aClothingData[id][clothingPrice]; format(PlayerData[playerid][pClothingName], 90, "%s", g_aClothingData[id][clothingName]); PlayerData[playerid][pBuyingClothing] = true; } } case DIALOG_CLOTHING_MENU: { new string[128] ; if(response) { ClothingHolder[playerid] = ClothingMenuSelect[playerid][listitem + 1]; new index; for(new i = 1; i < MAX_CLOTHING_ITEMS; i++) { if(ClothingData[playerid][i][attachment_SQLID] == ClothingMenuSelect[playerid][listitem + 1]) index = i; } format(string, sizeof(string), "%s", ClothingData[playerid][index][attachment_name]); if(IsPlayerAttachedObjectSlotUsed(playerid, index)) ShowPlayerDialog(playerid, DIALOG_CLOTHING_EDIT, DIALOG_STYLE_LIST, string, "Adjust The Item\nChange Bone Slot\nDrop The Item\nTake Off", "Select", "<<"); else ShowPlayerDialog(playerid, DIALOG_CLOTHING_EDIT, DIALOG_STYLE_LIST, string, "Adjust The Item\nChange Bone Slot\nDrop The Item\nPlace On", "Select", "<<"); for(new i = 1; i < MAX_CLOTHING_ITEMS; i++) { ClothingMenuSelect[playerid][i] = 0; } } } case DIALOG_CLOTHING_EDIT: { new id, string[128] ; for(new i = 1; i < MAX_CLOTHING_ITEMS; i++) { if(ClothingData[playerid][i][attachment_SQLID] == ClothingHolder[playerid]) id = i; } if(response) { switch(listitem){ case 0: { if (IsPlayerAttachedObjectSlotUsed(playerid, id)) { ApplyAnimation(playerid, "CLOTHES", "CLO_Pose_Hat", 4.1, 0, 0, 0, 1, 0, 1); EditAttachedObject(playerid, id); PlayerData[playerid][pEditingClothing] = true; } else { SetPlayerAttachedObject(playerid, id, ClothingData[playerid][id][attachment_modelid], ClothingData[playerid][id][attachment_bone], ClothingData[playerid][id][attachment_Pos][0], ClothingData[playerid][id][attachment_Pos][1], ClothingData[playerid][id][attachment_Pos][2], ClothingData[playerid][id][attachment_Rot][0], ClothingData[playerid][id][attachment_Rot][1], ClothingData[playerid][id][attachment_Rot][2], ClothingData[playerid][id][attachment_Scale][0], ClothingData[playerid][id][attachment_Scale][1], ClothingData[playerid][id][attachment_Scale][2]); ApplyAnimation(playerid, "CLOTHES", "CLO_Pose_Hat", 4.1, 0, 0, 0, 1, 0, 1); EditAttachedObject(playerid, id); PlayerData[playerid][pEditingClothing] = true; } } case 1: { ShowPlayerDialog(playerid, DIALOG_CLOTHES_BONE, DIALOG_STYLE_LIST, "Change The Bone Slot", "Spine\nHead\nLeft arm\nRight arm\nLeft hand\nRight hand\nLeft thigh\nRight thigh\nLeft foot\nRight foot", "Select", "<<"); } case 2: { new thread[128]; mysql_format(m_Handle, thread, sizeof(thread), "DELETE FROM player_clothing WHERE id = %i", ClothingData[playerid][id][attachment_SQLID]); mysql_pquery(m_Handle, thread, "OnClothingDelete", "ii", playerid, id); } case 3: { if (IsPlayerAttachedObjectSlotUsed(playerid, id)) { RemovePlayerAttachedObject(playerid, id); format(string, sizeof(string), "You took off %s", ClothingData[playerid][id][attachment_name]); SendClientMessage(playerid, COLOR_WHITE, string); } else { SetPlayerAttachedObject(playerid, id, ClothingData[playerid][id][attachment_modelid], ClothingData[playerid][id][attachment_bone], ClothingData[playerid][id][attachment_Pos][0], ClothingData[playerid][id][attachment_Pos][1], ClothingData[playerid][id][attachment_Pos][2], ClothingData[playerid][id][attachment_Rot][0], ClothingData[playerid][id][attachment_Rot][1], ClothingData[playerid][id][attachment_Rot][2], ClothingData[playerid][id][attachment_Scale][0], ClothingData[playerid][id][attachment_Scale][1], ClothingData[playerid][id][attachment_Scale][2]); format(string, sizeof(string), "You put on %s", ClothingData[playerid][id][attachment_name]); SendClientMessage(playerid, COLOR_WHITE, string); } } } } else { return cmd_clothing(playerid, ""); } } case DIALOG_CLOTHES_BONE: { new id, string[128]; for(new i = 1; i < MAX_CLOTHING_ITEMS; i++) { if(ClothingData[playerid][i][attachment_SQLID] == ClothingHolder[playerid]) id = i; } if(response){ switch(listitem){ case 0:{ format(string, sizeof(string), "You changed your %s(Index: %d) bone to Spine", ClothingData[playerid][id][attachment_name], id); SendClientMessage(playerid, COLOR_WHITE, string); ClothingData[playerid][id][attachment_bone] = OBJECT_BONE_SPINE; } case 1:{ format(string, sizeof(string), "You changed your %s(Index: %d) bone to Head", ClothingData[playerid][id][attachment_name], id); SendClientMessage(playerid, COLOR_WHITE, string); ClothingData[playerid][id][attachment_bone] = OBJECT_BONE_HEAD; } case 2:{ format(string, sizeof(string), "You changed your %s(Index: %d) bone to Left arm", ClothingData[playerid][id][attachment_name], id); SendClientMessage(playerid, COLOR_WHITE, string); ClothingData[playerid][id][attachment_bone] = OBJECT_BONE_LUPPER_A; } case 3:{ format(string, sizeof(string), "You changed your %s(Index: %d) bone to Right arm", ClothingData[playerid][id][attachment_name], id); SendClientMessage(playerid, COLOR_WHITE, string); ClothingData[playerid][id][attachment_bone] = OBJECT_BONE_RUPPER_A; } case 4:{ format(string, sizeof(string), "You changed your %s(Index: %d) bone to Left hand", ClothingData[playerid][id][attachment_name], id); SendClientMessage(playerid, COLOR_WHITE, string); ClothingData[playerid][id][attachment_bone] = OBJECT_BONE_LHAND; } case 5:{ format(string, sizeof(string), "You changed your %s(Index: %d) bone to Right hand", ClothingData[playerid][id][attachment_name], id); SendClientMessage(playerid, COLOR_WHITE, string); ClothingData[playerid][id][attachment_bone] = OBJECT_BONE_RHAND; } case 6:{ format(string, sizeof(string), "You changed your %s(Index: %d) bone to Left thigh", ClothingData[playerid][id][attachment_name], id); SendClientMessage(playerid, COLOR_WHITE, string); ClothingData[playerid][id][attachment_bone] = OBJECT_BONE_LTHIGH; } case 7:{ format(string, sizeof(string), "You changed your %s(Index: %d) bone to Right thigh", ClothingData[playerid][id][attachment_name], id); SendClientMessage(playerid, COLOR_WHITE, string); ClothingData[playerid][id][attachment_bone] = OBJECT_BONE_RTHIGH; } case 8:{ format(string, sizeof(string), "You changed your %s(Index: %d) bone to Left foot", ClothingData[playerid][id][attachment_name], id); SendClientMessage(playerid, COLOR_WHITE, string); ClothingData[playerid][id][attachment_bone] = OBJECT_BONE_LFOOT; } case 9:{ format(string, sizeof(string), "You changed your %s(Index: %d) bone to Right foot", ClothingData[playerid][id][attachment_name], id); SendClientMessage(playerid, COLOR_WHITE, string); ClothingData[playerid][id][attachment_bone] = OBJECT_BONE_RFOOT; } } new thread[128]; mysql_format(m_Handle, thread, sizeof(thread), "UPDATE player_clothing SET bone = %i WHERE id = %i", ClothingData[playerid][id][attachment_bone], ClothingData[playerid][id][attachment_SQLID]); mysql_tquery(m_Handle, thread); } } case DIALOG_ADMIN_MSG: { if (response){ PlayerData[playerid][pAdmMsgConfirm] = true; format(PlayerData[playerid][pAdminMsg], 128, ""); format(PlayerData[playerid][pAdminMsgBy], 60, ""); } } case DIALOG_SECRET_WORD_CREATE: { new query[256]; if (!response) { SendClientMessage(playerid, COLOR_ADM, "You have been kicked for not setting your secret word."); printf("[DEBUG] %s was auto-kicked (Reason: Not logging in after 60s.)"); KickEx(playerid); return true; } mysql_format(m_Handle, query, sizeof(query), "UPDATE players SET SecretWord = sha1('%e') WHERE id = %i", inputtext, PlayerData[playerid][pSQLID]); mysql_pquery(m_Handle, query); LoadPlayerData(playerid); SendClientMessage(playerid, COLOR_YELLOW, "Your connection to the server has been authenticated."); } case DIALOG_SECRET_WORD_ENTER: { new string[128], query[256]; if(!response) { SendClientMessage(playerid, COLOR_ADM, "You have been kicked for not logging in."); format(string, sizeof(string), "%s was kicked during login (Did not confirm security password). Details logged", ReturnName(playerid, 1)); adminWarn(1, string); KickEx(playerid); return true; } mysql_format(m_Handle, query, sizeof(query), "SELECT id FROM players WHERE Name = '%e' AND SecretWord = sha1('%e') LIMIT 1", ReturnName(playerid, 1), inputtext); mysql_pquery(m_Handle, query, "SQL_OnAccountConfirm", "i", playerid); } case DIALOG_GRAFFITI_MENU: { if (response) { switch(listitem) { case 0: { new string[289]; string = "USAGE:\n\n-\t\tIn this dialog, you may insert custom text to spray graffiti with. With this, there are custom bbCodes.\n\n\t\tNew line (n), Black (b), Brown(br) Red (r), Blue (bl), Green (g), Orange (o), White (w)\n\t\tYellow (y), Maroon (mr)\n-\t\t\nYour character may not be longer then 60 characters."; format(string, sizeof(string), "%s", string); ShowPlayerDialog(playerid, DIALOG_GRAFFITI_TEXT, DIALOG_STYLE_INPUT, "Enter your text:", string, "Select", "<<"); } case 1: { ShowPlayerDialog(playerid, DIALOG_GRAFFITI_FONT, DIALOG_STYLE_LIST, "Pick A Font:", "Comic Sans\nLevi Brush\nDripping\nDiploma", "Select", "<<"); } } } } case DIALOG_GRAFFITI_FONT: { if (response) { switch(listitem) { case 0: { format(graffitiFont[playerid], 60, "Comic Sans"); SendClientMessage(playerid, COLOR_YELLOW, "You have chosen the font:{FFFFFF} Comic Sans"); } case 1: { format(graffitiFont[playerid], 60, "Levi Brush"); SendClientMessage(playerid, COLOR_YELLOW, "You have chosen the font:{FFFFFF} Levi Brush"); } case 2: { format(graffitiFont[playerid], 60, "Dripping"); SendClientMessage(playerid, COLOR_YELLOW, "You have chosen the font:{FFFFFF} Dripping"); } case 3: { format(graffitiFont[playerid], 60, "Diploma"); SendClientMessage(playerid, COLOR_YELLOW, "You have chosen the font:{FFFFFF} Diploma"); } } } else return ShowPlayerDialog(playerid, DIALOG_GRAFFITI_MENU, DIALOG_STYLE_LIST, "Main Menu:", "Custom Graffiti Text\nChoose Your Font", "Select", "<<"); } case DIALOG_GRAFFITI_TEXT: { if (response) { new string[289] ; string = "USAGE:\n\n-\tIn this dialog, you may insert custom text to spray graffiti with. With this, there are custom bbCodes.\n\n\t\tNew line (n), Black (b), Brown(br) Red (r), Blue (bl), Green (g), Orange (o), White (w)\n\t\tYellow (y), Maroon (mr)\n-\t\t\nYour character may not be longer then 60 characters."; format(string, sizeof(string), "%s", string); if(strlen(inputtext) >= 60) { SendClientMessage(playerid, COLOR_YELLOW, "Your graffiti text was over 60 characters."); ShowPlayerDialog(playerid, DIALOG_GRAFFITI_TEXT, DIALOG_STYLE_INPUT, "Enter your text:", string, "Select", "<<"); return true; } if(strlen(inputtext) < 1) { ShowPlayerDialog(playerid, DIALOG_GRAFFITI_TEXT, DIALOG_STYLE_INPUT, "Enter your text:", string, "Select", "<<"); return true; } ShowPlayerDialog(playerid, DIALOG_GRAFFITI_TEXT, DIALOG_STYLE_INPUT, "Enter your text:", string, "Select", "<<"); format(graffitiText[playerid], 60, "%s", inputtext); sprayingGraffitiTime[playerid] = strlen(graffitiText[playerid]); saveSprayingTime[playerid] = sprayingGraffitiTime[playerid]; format(graffitiFont[playerid], 60, "Comic Sans"); SendClientMessage(playerid, COLOR_YELLOW, "You have set your text!"); format(string, sizeof(string), "%s", graffitiText[playerid]); SendClientMessage(playerid, COLOR_WHITE, string); } else return ShowPlayerDialog(playerid, DIALOG_GRAFFITI_MENU, DIALOG_STYLE_LIST, "Main Menu:", "Custom Graffiti Text\nChoose Your Font", "Select", "<<"); } case DIALOG_FACTION_CLOTHING: { if(response){ new id = listitem, clothing_id = FreeAttachmentSlot(playerid); ApplyAnimation(playerid, "CLOTHES", "CLO_Pose_Hat", 4.1, 0, 0, 0, 1, 0, 1); SendClientMessage(playerid, COLOR_WHITE, "HINT: Use {FFFF00}SPACE{FFFFFF} to look around. Press {FFFF00}ESC{FFFFFF} to decline."); SendClientMessage(playerid, COLOR_WHITE, "Use {FFFF00}/clothing{FFFFFF} to edit your clothing items."); SetPlayerAttachedObject(playerid, clothing_id, g_aFactionClothing[id][clothingModel], 2); EditAttachedObject(playerid, clothing_id); ClothingCost[playerid] = g_aFactionClothing[id][clothingPrice]; format(PlayerData[playerid][pClothingName], 90, "%s", g_aFactionClothing[id][clothingName]); PlayerData[playerid][pBuyingClothing] = true; } } case DIALOG_MDC: { if(response) { PlayNearbySound(playerid, MDC_SELECT); switch(listitem) { case 0: return ShowPlayerDialog(playerid, DIALOG_MDC_NAME, DIALOG_STYLE_INPUT, "Name Search - MDC", "Enter the persons full legal name to search below:", "Select", "<<"); case 2: return ShowPlayerDialog(playerid, DIALOG_MDC_PLATE_FULL, DIALOG_STYLE_INPUT, "Plate Search - MDC", "Enter the vehicles full plate number to search below:", "Select", "<<"); case 3: return ShowPlayerDialog(playerid, DIALOG_MDC_PLATE_PARTIAL, DIALOG_STYLE_INPUT, "Partial Plate Search - MDC", "Enter a partial plate number to search below:", "Select", "<<"); case 5: { new primary[500], sub[128]; if(!TotalJailees) return ShowPlayerDialog(playerid, DIALOG_MDC_FINISH_QUEUE, DIALOG_STYLE_MSGBOX, "Prisoners List - MDC", "There are no prisoners at the time.", "<<", ""); foreach(new i : Player) { if(PlayerData[i][pICJailed]) { format(sub, sizeof(sub), "%s\n", ReturnName(i)); strcat(primary, sub); } } format(sub, sizeof(sub), "{1E0C95}Total Prisoners: %i", TotalJailees); strcat(primary, sub); ShowPlayerDialog(playerid, DIALOG_MDC_FINISH_QUEUE, DIALOG_STYLE_LIST, "Prisoners List - MDC", primary, ">>", "<<"); } case 6: { return mysql_tquery(m_Handle, "SELECT ModelID, Plate, ReportedStolenDate FROM ownedcars WHERE ReportedStolen = 1 ORDER BY id DESC", "OnStolenCars", "i", playerid); } case 8: return ShowPlayerDialog(playerid, DIALOG_MDC_NUMBER_SEARCH, DIALOG_STYLE_INPUT, "Phone Search - MDC", "Enter the phone number you want to find the owner of:", "Select", "<<"); case 9: { new primary[900], sub[128], callsign[128], bool:found; foreach(new i : Player) { if(!PlayerData[i][pLAWduty]) continue; format(callsign, 128, "- %s", PlayerData[i][pCallsign]); format(sub, sizeof(sub), "%s %s\n", ReturnName(i), (strlen(PlayerData[i][pCallsign]) > 1) ? (callsign) : ("")); strcat(primary, sub); found = true; } if(!found) return ShowPlayerDialog(playerid, DIALOG_MDC_FINISH_QUEUE, DIALOG_STYLE_MSGBOX, "Duty Roster - MDC", "There's nobody on duty right now.", ">>", "<<"); ShowPlayerDialog(playerid, DIALOG_MDC_FINISH_QUEUE, DIALOG_STYLE_LIST, "Duty Roster - MDC", primary, ">>", "<<"); } } } return 1; } case DIALOG_MDC_NAME: { if(response) { if(strlen(inputtext) < 3 || strlen(inputtext) > MAX_PLAYER_NAME + 1) return ShowPlayerDialog(playerid, DIALOG_MDC_NAME, DIALOG_STYLE_INPUT, "Name Search - MDC", "Enter the persons full legal name to search below:", "Select", "<<"); for(new i = 0; i < strlen(inputtext); i++) { if(inputtext[i] == '_') { PlayNearbySound(playerid, MDC_ERROR); ShowPlayerDialog(playerid, DIALOG_MDC_NAME, DIALOG_STYLE_INPUT, "Name Search - MDC", "Enter the persons full legal name to search below:", "Select", "<<"); } else { if(inputtext[i] == ' ') { inputtext[i] = '_'; } } } PlayNearbySound(playerid, MDC_SELECT); format(PlayerMDCText[playerid], 32, "%s", inputtext); new search_query[256]; mysql_format(m_Handle, search_query, sizeof(search_query), "SELECT Phone, DriversLicense, WeaponsLicense, ActiveListing, JailTimes, PrisonTimes FROM players WHERE Name = '%e'", inputtext); mysql_tquery(m_Handle, search_query, "OnMDCNameSearch", "i", playerid); return 1; } else ShowPlayerMDC(playerid); } case DIALOG_MDC_PLATE_FULL: { if(response) { if(strlen(inputtext) > 7 || strlen(inputtext) < 7) { PlayNearbySound(playerid, MDC_ERROR); return ShowPlayerDialog(playerid, DIALOG_MDC_PLATE_FULL, DIALOG_STYLE_INPUT, "Plate Search - MDC", "Enter the vehicles full plate number to search below:", "Select", "<<"); } PlayNearbySound(playerid, MDC_SELECT); format(PlayerMDCText[playerid], 32, "%s", inputtext); new search_query[256]; mysql_format(m_Handle, search_query, sizeof(search_query), "SELECT OwnerID, ModelID, Impounded, Insurance, ReportedStolen, ReportedStolenDate FROM ownedcars WHERE Plate = '%e'", inputtext); mysql_tquery(m_Handle, search_query, "OnMDCPlateSearch", "i", playerid); return 1; } else return ShowPlayerMDC(playerid); } case DIALOG_MDC_PLATE_PARTIAL: { if(response) { if(strlen(inputtext) < 3 || strlen(inputtext) > 7) { PlayNearbySound(playerid, MDC_ERROR); return ShowPlayerDialog(playerid, DIALOG_MDC_PLATE_PARTIAL, DIALOG_STYLE_INPUT, "Partial Plate Search - MDC", "Partial plates must have at least 3 characters.\n\nEnter a partial plate number to search below:", "Select", "<<"); } PlayNearbySound(playerid, MDC_SELECT); format(PlayerMDCText[playerid], 32, "%s", inputtext); new search_query[128]; mysql_format(m_Handle, search_query, sizeof(search_query), "SELECT Plate FROM ownedcars WHERE Plate LIKE '%%%e%%' LIMIT 5", inputtext); mysql_tquery(m_Handle, search_query, "OnMDCPartialPlate", "i", playerid); return 1; } else return ShowPlayerMDC(playerid); } case DIALOG_MDC_PLATE_LIST: { if(response) { new search_query[230]; PlayNearbySound(playerid, MDC_SELECT); format(PlayerMDCText[playerid], 32, "%s", PlayerMDCPlateHolder[playerid][listitem]); mysql_format(m_Handle, search_query, sizeof(search_query), "SELECT OwnerID, ModelID, Impounded, Insurance, ReportedStolen, ReportedStolenDate FROM ownedcars WHERE Plate = '%e'", PlayerMDCPlateHolder[playerid][listitem]); mysql_tquery(m_Handle, search_query, "OnMDCPlateSearch", "i", playerid); return 1; } else return ShowPlayerMDC(playerid); } case DIALOG_MDC_NUMBER_SEARCH: { if(response) { if(!IsNumeric(inputtext)) return ShowPlayerDialog(playerid, DIALOG_MDC_NUMBER_SEARCH, DIALOG_STYLE_INPUT, "Phone Search - MDC", "Enter the phone number you want to find the owner of:", "Select", "<<"); new number, thread[128]; if(strlen(inputtext) > 6) return ShowPlayerDialog(playerid, DIALOG_MDC_NUMBER_SEARCH, DIALOG_STYLE_INPUT, "Phone Search - MDC", "Enter the phone number you want to find the owner of:", "Select", "<<"); number = strval(inputtext); mysql_format(m_Handle, thread, sizeof(thread), "SELECT Name FROM players WHERE Phone = %i", number); mysql_tquery(m_Handle, thread, "OnPhoneSearch", "ii", playerid, number); } else return ShowPlayerMDC(playerid); } /* case DIALOG_MDC_FINISH_QUEUE: { if(response) return ShowPlayerMDC(playerid); return 1; } */ /* case DIALOG_MDC: { if(response) { switch(listitem) { case 0: return ShowPlayerDialog(playerid, DIALOG_MDC_NAME, DIALOG_STYLE_INPUT, "Name Search - MDC", "Enter the persons full name to search below:", "Search", "<<"); case 1: return ShowPlayerDialog(playerid, DIALOG_MDC_PLATE, DIALOG_STYLE_INPUT, "Plate Search - MDC", "Enter the vehicles full or partial plate to search below:", "Search", "<<"); } return 1; } } case DIALOG_MDC_NAME: { if(response) { if(strlen(inputtext) < 3 || strlen(inputtext) > 32) return ShowPlayerDialog(playerid, DIALOG_MDC_NAME, DIALOG_STYLE_INPUT, "Name Search - MDC", "Enter the persons full name to search below:", "Search", "<<"); for(new i = 0; i < strlen(inputtext); i++) { if(inputtext[i] == '_') { return ShowPlayerDialog(playerid, DIALOG_MDC_NAME, DIALOG_STYLE_INPUT, "Name Search - MDC", "Enter the persons full name to search below:", "Search", "<<"); } else { if(inputtext[i] == ' ') { inputtext[i] = '_'; } } } PlayerMDCCount[playerid] = 0; PlayerMDCTimer[playerid] = SetTimerEx("OnMDCSearch", 1000, true, "ii", playerid, 1); format(PlayerMDCName[playerid], 32, "%s", inputtext); PlayerTextDrawSetString(playerid, MDC_UI[playerid][64], "Searching."); return 1; } else return 1; } */ case DIALOG_MDC_PLATE: { if(response) { if(strlen(inputtext) > 6 || strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_MDC_PLATE, DIALOG_STYLE_INPUT, "Plate Search - MDC", "Enter the vehicles full or partial plate to search below:\n\nYou need at least 3 characters for a plate search.", "Search", "<<"); PlayerMDCCount[playerid] = 0; PlayerMDCTimer[playerid] = SetTimerEx("OnMDCSearch", 1000, true, "ii", playerid, 2); format(PlayerMDCName[playerid], 32, "%s", inputtext); PlayerTextDrawSetString(playerid, MDC_UI[playerid][64], "Searching."); } else return 1; } case DIALOG_MDC_NAME_QUEUE: { if(response) { new str[120]; format(str, sizeof(str), "{FFFFFF}Name search cancelled for: \"%s\"", PlayerMDCName[playerid]); ShowPlayerDialog(playerid, DIALOG_DEFAULT, DIALOG_STYLE_MSGBOX, "Name Search - MDC", str, "Okay", ""); KillTimer(PlayerMDCTimer[playerid]); PlayerMDCCount[playerid] = 0; return 1; } } case DIALOG_MDC_PLATE_QUEUE: { if(response) { new str[120]; format(str, sizeof(str), "{FFFFFF}Plate search cancelled for: \"%s\"", PlayerMDCName[playerid]); ShowPlayerDialog(playerid, DIALOG_DEFAULT, DIALOG_STYLE_MSGBOX, "Plate Search - MDC", str, "Okay", ""); KillTimer(PlayerMDCTimer[playerid]); for(new i = 0; i < 5; i++) PlayerPlateSaver[playerid][i] = ""; PlayerMDCName[playerid] = ""; PlayerMDCCount[playerid] = 0; } } /* case DIALOG_MDC_PLATE_LIST: { if(response) { new query[220]; mysql_format(m_Handle, query, sizeof(query), "SELECT VehicleStolen, VehicleOwnerDBID, VehicleModel, VehicleImpounded FROM vehicles WHERE VehiclePlates = '%e'", PlayerPlateSaver[playerid][listitem]); mysql_tquery(m_Handle, query, "OnPlateSelect", "ii", playerid, listitem); return 1; } } */ case DIALOG_MDC_FINISH_QUEUE: { if(response) { ShowPlayerMDC(playerid); return 1; } } case DIALOG_FINES: { if(response) { //{105289} ADC3E7 if(!strcmp(inputtext, "**Click here to clear a fine.")) { if(PlayerData[playerid][pFactionRank] > FactionData[PlayerData[playerid][pFaction]][factionEditrank]) return ShowPlayerDialog(playerid, DIALOG_USE, DIALOG_STYLE_LIST, "Fines", "Your rank doesn't have permission to clear fines.", ">>", "<<"); return ShowPlayerDialog(playerid, DIALOG_FINES_DELETE, DIALOG_STYLE_INPUT, "Clear a fine:", "Enter the Fine's # ID to clear it.", "Select", "Exit"); } new str[128], id; id = CheckingPlayerFine[playerid]; SendClientMessage(playerid, COLOR_GRAD1, "- - - - - - - - PRINTED FINE - - - - - - - -"); format(str, sizeof(str), "{105289}Fine #. ID:{ADC3E7} %i", Fines[id][listitem][Fine_ID]); SendClientMessage(playerid, -1, str); format(str, sizeof(str), "{105289}Fine Recipient:{ADC3E7} %s", ReturnName(id, 1)); SendClientMessage(playerid, -1, str); ClearLines(playerid, 1); format(str, sizeof(str), "{105289}Fine Issuer:{ADC3E7} %s", Fines[id][listitem][Fine_Issuer]); SendClientMessage(playerid, -1, str); format(str, sizeof(str), "{105289}Fine Amount:{ADC3E7} $%s", MoneyFormat(Fines[id][listitem][Fine_Amount])); SendClientMessage(playerid, -1, str); ClearLines(playerid, 1); format(str, sizeof(str), "{105289}Fine Reason:{ADC3E7} %s", Fines[id][listitem][Fine_Reason]); SendClientMessage(playerid, -1, str); format(str, sizeof(str), "{105289}Issued Date:{ADC3E7} %s", Fines[id][listitem][Fine_Date]); SendClientMessage(playerid, -1, str); SendClientMessage(playerid, COLOR_GRAD1, "- - - - - - - - - - - - - - - - - - - - - -"); return 1; } return 1; } case DIALOG_FINES_DELETE: { if(response) { new id, bool:found = false, query[128] ; if(!IsNumeric(inputtext)) return ShowPlayerDialog(playerid, DIALOG_FINES_DELETE, DIALOG_STYLE_INPUT, "Clear a fine:", "Enter the Fine's # ID to clear it.", "Select", "Exit"); id = strval(inputtext); foreach(new i : Player) { for(new f = 0; f < 30; f++) { if(Fines[i][f][Fine_ID] == id) { found = true; } } } if(!found) return ShowPlayerDialog(playerid, DIALOG_FINES_DELETE, DIALOG_STYLE_INPUT, "Clear a fine:", "THAT FINE DOESN'T EXIST!\n\nEnter the Fine's # ID to clear it.", "Select", "Exit"); else { mysql_format(m_Handle, query, sizeof(query), "DELETE FROM player_fines WHERE id = %i", id); mysql_tquery(m_Handle, query, "OnDeletePlayerFine", "ii", playerid, id); } return 1; } return 1; } case DIALOG_ROADBLOCKS: { if(response) { new liststr[500]; switch(listitem) { case 0: { for(new i = 0; i < sizeof(g_aRoadblocks); i++) { format(liststr, sizeof(liststr), "%s%s\n", liststr, g_aRoadblocks[i][RoadblockName]); } ShowPlayerDialog(playerid, DIALOG_ROADBLOCK_LIST, DIALOG_STYLE_LIST, "Available Roadblocks:", liststr, "Select", "<<"); } case 1: { new foundRoadblock; for(new i = 0; i < sizeof(Roadblocks); i++) { if(!Roadblocks[i][RoadblockExists]) continue; foundRoadblock++; format(liststr, sizeof(liststr), "%s%s {AFAFAF}[%s - %s]\n", liststr, GetRoadblockNameFromModel(Roadblocks[i][RoadblocksModelID]), Roadblocks[i][RoadblockPlacedBy], Roadblocks[i][RoadblockLocation]); } if(foundRoadblock) return ShowPlayerDialog(playerid, DIALOG_ACTIVE_ROADBLOCKS, DIALOG_STYLE_LIST, "Active Roadblocks:", liststr, "Select", "<<"); else return ShowPlayerDialog(playerid, DIALOG_ROADBLOCKS, DIALOG_STYLE_LIST, "Roadblocks Menu", "Deploy Roadblock\nRoadblock List", "Select", "Cancel"); } } } return 1; } case DIALOG_ROADBLOCK_LIST: { if(response) { new foundRoom = 1, count; for(new i = 0; i < sizeof(Roadblocks); i++) { if(!Roadblocks[i][RoadblockExists]) continue; count++; if(count >= 29) foundRoom = 0; } if(!foundRoom) { SendClientMessage(playerid, COLOR_WHITE, "SERVER: It's not possible to spawn anymore roadblocks right now."); return ShowPlayerDialog(playerid, DIALOG_ROADBLOCKS, DIALOG_STYLE_LIST, "Roadblocks Menu", "Deploy Roadblock\nRoadblock List", "Select", "Cancel"); } new Float:x, Float:y, Float:z, str[128]; GetPlayerPos(playerid, x, y, z); PlayerData[playerid][pRoadblockObject] = CreateDynamicObject(g_aRoadblocks[listitem][RoadblockModel], x + 2, y, z, 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), playerid); PlayerData[playerid][pAddingRoadblock] = 1; PlayerData[playerid][pRoadblockModel] = g_aRoadblocks[listitem][RoadblockModel]; EditDynamicObject(playerid, PlayerData[playerid][pRoadblockObject]); format(str, 128, "SERVER: You're adding a {ADC3E7}%s{FFFFFF} roadblock. Set the position to spawn it.", GetRoadblockNameFromModel(g_aRoadblocks[listitem][RoadblockModel])); SendClientMessage(playerid, -1, str); } else return ShowPlayerDialog(playerid, DIALOG_ROADBLOCKS, DIALOG_STYLE_LIST, "Roadblocks Menu", "Deploy Roadblock\nRoadblock List", "Select", "Cancel"); return 1; } case DIALOG_ACTIVE_ROADBLOCKS: { if(response) { new primary[350], detailstr[128]; format(detailstr, 128, "{ADC3E7}Roadblock:{FFFFFF} %s\n", GetRoadblockNameFromModel(Roadblocks[listitem][RoadblocksModelID])); strcat(primary, detailstr); format(detailstr, 128, "{ADC3E7}Location:{FFFFFF} %s\n", Roadblocks[listitem][RoadblockLocation]); strcat(primary, detailstr); format(detailstr, 128, "{ADC3E7}Placed by:{FFFFFF} %s\n\n", Roadblocks[listitem][RoadblockPlacedBy]); strcat(primary, detailstr); strcat(primary, "Click '{ADC3E7}Yes{FFFFFF}' to disband this roadblock."); ConfirmDialog(playerid, "Roadblock:", primary, "OnRoadblockDisband", listitem); } else return ShowPlayerDialog(playerid, DIALOG_ROADBLOCKS, DIALOG_STYLE_LIST, "Roadblocks Menu", "Deploy Roadblock\nRoadblock List", "Select", "Cancel"); return 1; } case DIALOG_FORUM_NAME: { if(response) { if(strlen(inputtext) > 60) return ShowPlayerDialog(playerid, DIALOG_FORUM_NAME, DIALOG_STYLE_INPUT, "ADMIN FORUM NAME:", "{FFFF00}You're missing your forum name. As an admin, it's required to have one. Type in your forum name:", "Select", "Exit"); if(!strcmp(inputtext, "Kane", true) && PlayerData[playerid][pSQLID] != 1) return ShowPlayerDialog(playerid, DIALOG_FORUM_NAME, DIALOG_STYLE_INPUT, "ADMIN FORUM NAME:", "YOU AREN'T KANE.\n\n{FFFF00}You're missing your forum name. As an admin, it's required to have one. Type in your forum name:", "Select", "Exit"); return cmd_forumname(playerid, inputtext); } return 1; } case DIALOG_INTERIORS: { if(response) { SetPlayerPos(playerid, Interiors[listitem][IntPosX], Interiors[listitem][IntPosY], Interiors[listitem][IntPosZ]); SetPlayerInterior(playerid, Interiors[listitem][IntID]); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); ResetHouseVar(playerid); return 1; } return 1; } case DIALOG_VLOG_LIST: { if(response) { if(listitem == 0) { if(PlayerVlogPage[playerid] == 1) ShowVehicleLogs(playerid, PlayerVlogVehicle[playerid], 1); else ShowVehicleLogs(playerid, PlayerVlogVehicle[playerid], PlayerVlogPage[playerid]-1); return 1; } if(listitem == MAX_VLOG_PER_PAGE+1){ return ShowVehicleLogs(playerid, PlayerVlogVehicle[playerid], PlayerVlogPage[playerid]+1); } } return 1; } case DIALOG_PLOG_LIST: { if(response) { if(listitem == 0) { if(PlayerLogPage[playerid] == 1) ShowPlayerLogs(playerid, PlayerLogPlayer[playerid], 1); else ShowPlayerLogs(playerid, PlayerLogPlayer[playerid], PlayerLogPage[playerid]-1); return 1; } if(listitem == MAX_PLOG_PER_PAGE+1) return ShowPlayerLogs(playerid, PlayerLogPlayer[playerid], PlayerLogPage[playerid]+1); } } case DIALOG_REPORTS: { if(response) { new primary_str[300], sub_str[128]; format(sub_str, sizeof(sub_str), "Report ID: %i\n", listitem + 1); strcat(primary_str, sub_str); format(sub_str, sizeof(sub_str), "Reporter: %s\n", ReturnSQLName(ReportData[listitem + 1][reportBy])); strcat(primary_str, sub_str); format(sub_str, sizeof(sub_str), "Details: %s\n", ReportData[listitem + 1][reportReason]); strcat(primary_str, sub_str); format(sub_str, sizeof(sub_str), "Pending time: %d Seconds\n\n", gettime() - ReportData[listitem + 1][reportTime]); strcat(primary_str, sub_str); strcat(primary_str, "{A52A2A}Accept(Yes) or disregard(No) this report with the buttons."); ConfirmDialog(playerid, "{A52A2A}Accept/disregard Report", primary_str, "OnSelectReport", listitem + 1); return 1; } return 1; } case DIALOG_ADMINSYS: { if(response) { ShowAdminSys(playerid, listitem); return 1; } return 1; } case DIALOG_ASYS_OFFLINEBAN: { if(!response) return ShowAdminPanel(playerid); new strin[128]; if(!ReturnSQLFromName(inputtext)) { format(strin, sizeof(strin), "{ADC3E7}The username \"{A52A2A}%s{ADC3E7}\" does not exist in the database.", inputtext); ShowAdminSys(playerid, 0, strin); return 1; } if(IsUserBanned(inputtext)) { format(strin, sizeof(strin), "{ADC3E7}The username \"{A52A2A}%s{ADC3E7}\" is already banned from the server.", inputtext); ShowAdminSys(playerid, 0, strin); return 1; } foreach(new i : Player) { if(!strcmp(ReturnName(i), inputtext, true)) { format(strin, sizeof(strin), "{ADC3E7}The username \"{A52A2A}%s{ADC3E7}\" is logged in as ID %i.", inputtext, i); ShowAdminSys(playerid, 0, strin); return 1; } } format(OfflineBanName[playerid], 128, "%s", inputtext); format(strin, 128, "Input the ban reason for user \"{A52A2A}%s{ADC3E7}\":", inputtext); ShowPlayerDialog(playerid, DIALOG_ASYS_BANREASON, DIALOG_STYLE_INPUT, "Administration panel", strin, "Select", "<<"); return 1; } case DIALOG_ASYS_BANREASON: { if(!response) return ShowAdminPanel(playerid); if(strlen(inputtext) < 3) { new strin[128]; format(strin, 128, "Input the ban reason for user \"{A52A2A}%s{ADC3E7}\":", OfflineBanName[playerid]); ShowPlayerDialog(playerid, DIALOG_ASYS_BANREASON, DIALOG_STYLE_INPUT, "Administration panel", strin, "Select", "<<"); return 1; } foreach(new i : Player) { if(!strcmp(ReturnName(i), OfflineBanName[playerid], true)) { SendClientMessage(playerid, COLOR_ADM, "An error occurred... The player you were banning has logged in."); Message(playerid, COLOR_WHITE, "ID: %i", i); return 1; } } new secure[160], admin_level, IP[60], HWID[90]; mysql_format(m_Handle, secure, sizeof(secure), "SELECT AdminLevel, IP, HWID FROM players WHERE Name = '%e'", OfflineBanName[playerid]); new Cache:cache = mysql_query(m_Handle, secure); cache_get_value_name_int(0, "AdminLevel", admin_level); cache_get_value_name(0, "IP", IP, 60); cache_get_value_name(0, "HWID", HWID, 90); if(admin_level > PlayerData[playerid][pAdmin]) { cache_delete(cache); ShowPlayerDialog(playerid, DIALOG_USE, DIALOG_STYLE_MSGBOX, "Error processing", "The user specified cannot be banned by you.", "Okay", ""); return 1; } new query[300], string[128]; mysql_format(m_Handle, query, sizeof(query), "INSERT INTO bans (`Name`, `Reason`, `BannedBy`, `Date`, `IP`, `HWID`) VALUES('%e', '%e', '%e', '%e', '%e', '%e')", OfflineBanName[playerid], inputtext, ReturnName(playerid, 1), ReturnDateLog(), IP, HWID); mysql_pquery(m_Handle, query); mysql_format(m_Handle, query, sizeof(query), "INSERT INTO log_bans (Name, Reason, BannedBy, Date, IP) VALUES('%e', '%e', '%e', '%e', '%e')", OfflineBanName[playerid], inputtext, ReturnName(playerid), ReturnDate(), IP); mysql_pquery(m_Handle, query); format(string, sizeof(string), "{ADC3E7}The username \"{A52A2A}%s{ADC3E7}\" has successfully been banned.", OfflineBanName[playerid]); ShowPlayerDialog(playerid, DIALOG_USE, DIALOG_STYLE_MSGBOX, "Administration panel", string, "Okay!", ""); format(string, sizeof(string), "%s was offline banned by %s for '%s'", OfflineBanName[playerid], ReturnName(playerid), inputtext); adminWarn(1, string); printf("[WARNING] AdmCmd: %s offline banned %s, reason: %s ", ReturnName(playerid, 1), OfflineBanName[playerid], inputtext); WriteLog("admin_logs/punishments/ban_log.txt", "[%s] %s was banned by %s, Reason: %s (OFFLINE)", ReturnDate(), OfflineBanName[playerid], ReturnName(playerid), inputtext); cache_delete(cache); return 1; } case DIALOG_ASYS_OFFLINEAJAIL: { if(!response) return ShowAdminPanel(playerid); new strin[128]; if(!ReturnSQLFromName(inputtext)) { format(strin, sizeof(strin), "{ADC3E7}The username \"{A52A2A}%s{ADC3E7}\" does not exist in the database.", inputtext); ShowAdminSys(playerid, 1, strin); return 1; } foreach(new i : Player) { if(!strcmp(ReturnName(i), inputtext, true)) { format(strin, sizeof(strin), "{ADC3E7}The username \"{A52A2A}%s{ADC3E7}\" is logged in as ID %i.", inputtext, i); ShowAdminSys(playerid, 0, strin); return 1; } } format(OfflineJailName[playerid], 60, "%s", inputtext); format(strin, sizeof(strin), "Input the time you want to admin jail \"{A52A2A}%s{ADC3E7}\" for:", inputtext); ShowPlayerDialog(playerid, DIALOG_ASYS_OJAILTIME, DIALOG_STYLE_INPUT, "Administration panel", strin, "Select", "<<"); return 1; } case DIALOG_ASYS_OJAILTIME: { if(!response) return ShowAdminPanel(playerid); new strin[230]; if(!IsNumeric(inputtext)) { format(strin, sizeof(strin), "The time must be a numeric value in minutes.\n\nInput the time you want to admin jail \"{A52A2A}%s{ADC3E7}\" for:", OfflineJailName[playerid]); ShowPlayerDialog(playerid, DIALOG_ASYS_OJAILTIME, DIALOG_STYLE_INPUT, "Administration panel", strin, "Select", "<<"); return 1; } OfflineJailTime[playerid] = strval(inputtext); if(OfflineJailTime[playerid] < 1) { if(!IsNumeric(inputtext)) { format(strin, sizeof(strin), "The time must be a numeric value in minutes. (1+)\n\nInput the time you want to admin jail \"{A52A2A}%s{ADC3E7}\" for:", OfflineJailName[playerid]); ShowPlayerDialog(playerid, DIALOG_ASYS_OJAILTIME, DIALOG_STYLE_INPUT, "Administration panel", strin, "Select", "<<"); return 1; } } format(strin, sizeof(strin), "Input the reason for \"{A52A2A}%s{ADC3E7}\"'s (%i) minute admin jail:", OfflineJailName[playerid], OfflineJailTime[playerid]); ShowPlayerDialog(playerid, DIALOG_ASYS_OJAILREASON, DIALOG_STYLE_INPUT, "Administration panel", strin, "Select", "<<"); return 1; } case DIALOG_ASYS_OJAILREASON: { if(!response) return ShowAdminPanel(playerid); new query[256], string[170]; mysql_format(m_Handle, query, sizeof(query), "UPDATE players SET OfflineAjail = 1, AjailTime = %d, OfflineAjailReason = '%e' WHERE Name = '%e'", OfflineJailTime[playerid], inputtext, OfflineJailName[playerid]); mysql_pquery(m_Handle, query); format(string, sizeof(string), "{ADC3E7}The username \"{A52A2A}%s{ADC3E7}\" has successfully been admin jailed.", OfflineJailName[playerid]); ShowPlayerDialog(playerid, DIALOG_USE, DIALOG_STYLE_MSGBOX, "Administration panel", string, "Okay!", ""); format(string, sizeof(string), "%s was offline jailed by %s for '%s'", OfflineJailName[playerid], ReturnName(playerid), inputtext); adminWarn(1, string); WriteLog("admin_logs/punishments/ajail_log.txt", "[%s] %s offline jailed %s for %d minutes, reason: %s (OFFLINE)", ReturnDate(), ReturnName(playerid, 1), OfflineJailName[playerid], OfflineJailTime[playerid], inputtext); mysql_format(m_Handle, query, sizeof(query), "INSERT INTO log_ajail (`Name`, `Reason`, `JailedBy`, `Date`, `Time`, `IP`) VALUES('%e', '%e', '%e', '%e', %i, 'via off')", OfflineJailName[playerid], inputtext, ReturnName(playerid, 1), ReturnDateLog(), OfflineJailTime[playerid]); mysql_pquery(m_Handle, query); return 1; } case DIALOG_ASYS_UNBAN: { if(!response) return ShowAdminPanel(playerid); /*{ ShowAdminSys(playerid, 2, "The username you specified isn't possible."); return 1; }*/ if(!ReturnSQLFromName(inputtext)) { ShowAdminSys(playerid, 2, "The username you specified doesn't exist in the database."); return 1; } new string[128]; foreach(new i : Player) { if(!strcmp(ReturnName(i), inputtext, true)) { format(string, sizeof(string), "The user you specified is logged in as ID %i.", i); ShowAdminSys(playerid, 2, string); return 1; } } if(!IsUserBanned(inputtext)) { format(string, sizeof(string), "The user \"{A52A2A}%s{ADC3E7}\" is not banned from the server.", inputtext); ShowAdminSys(playerid, 2, string); return 1; } format(AdminPanelName[playerid], 60, "%s", inputtext); format(string, sizeof(string), "Are you sure you want to unban \"{A52A2A}%s{ADC3E7}\" from the server?", inputtext); ConfirmDialog(playerid, "Administration panel", string, "OnPanelUnban"); return 1; } case DIALOG_LOOKUP_JAILS: { if(!response) return ShowAdminPanel(playerid); /*{ ShowAdminSys(playerid, 3, "The username you specified isn't possible."); return 1; }*/ if(!ReturnSQLFromName(inputtext)) { ShowAdminSys(playerid, 3, "The username you specified doesn't exist in the database."); return 1; } new query[200]; mysql_format(m_Handle, query, sizeof(query), "SELECT * FROM log_ajail WHERE Name = '%e' ORDER BY id DESC", inputtext); new Cache:cache = mysql_query(m_Handle, query); if(!cache_num_rows()) { format(query, sizeof(query), "The user \"{A52A2A}%s{ADC3E7}\" has never been admin jailed.", inputtext); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", query, "Okay!", ""); cache_delete(cache); return 1; } else { new Reason[128], By[60], Date[90], IP[90], Time; new PackerString[128], FullList[1100]; strcat(FullList, "Jailed by - Date - Time - Reason - IP\n\n"); for(new i = 0; i < cache_num_rows(); i++) { cache_get_value_name(i, "JailedBy", By, 60); cache_get_value_name(i, "Reason", Reason, 128); cache_get_value_name(i, "Date", Date, 90); cache_get_value_name(i, "IP", IP, 90); cache_get_value_name_int(i, "Time", Time); format(PackerString, 128, "\t%s - %s - %i - %s - %s\n", By, Date, Time, Reason, IP); strcat(FullList, PackerString); } ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", FullList, "Okay!", ""); } return 1; } case DIALOG_LOOKUP_KICKS: { if(!response) return ShowAdminPanel(playerid); /*{ ShowAdminSys(playerid, 4, "The username you specified isn't possible."); return 1; }*/ if(!ReturnSQLFromName(inputtext)) { ShowAdminSys(playerid, 4, "The username you specified doesn't exist in the database."); return 1; } new query[200]; mysql_format(m_Handle, query, sizeof(query), "SELECT * FROM log_kicks WHERE Name = '%e' ORDER BY id DESC", inputtext); new Cache:cache = mysql_query(m_Handle, query); if(!cache_num_rows()) { format(query, sizeof(query), "The user \"{A52A2A}%s{ADC3E7}\" has never been kicked.", inputtext); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", query, "Okay!", ""); cache_delete(cache); return 1; } else { new Reason[128], By[60], Date[90], IP[90]; new PackerString[128], FullList[1100]; strcat(FullList, "Kicked by - Date - Reason - IP\n\n"); for(new i = 0; i < cache_num_rows(); i++) { cache_get_value_name(i, "KickedBy", By, 60); cache_get_value_name(i, "Reason", Reason, 128); cache_get_value_name(i, "Date", Date, 90); cache_get_value_name(i, "IP", IP, 90); format(PackerString, 128, "\t%s - %s - %s - %s\n", By, Date, Reason, IP); strcat(FullList, PackerString); } ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", FullList, "Okay!", ""); } return 1; } case DIALOG_LOOKUP_BANS: { if(!response) return ShowAdminPanel(playerid); /*{ ShowAdminSys(playerid, 5, "The username you specified isn't possible."); return 1; }*/ if(!ReturnSQLFromName(inputtext)) { ShowAdminSys(playerid, 5, "The username you specified doesn't exist in the database."); return 1; } new query[200]; mysql_format(m_Handle, query, sizeof(query), "SELECT * FROM log_bans WHERE Name = '%e' ORDER BY id DESC", inputtext); new Cache:cache = mysql_query(m_Handle, query); if(!cache_num_rows()) { format(query, sizeof(query), "The user \"{A52A2A}%s{ADC3E7}\" has never been banned.", inputtext); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", query, "Okay!", ""); cache_delete(cache); return 1; } else { new Reason[128], By[60], Date[90], IP[90]; new PackerString[128], FullList[1100]; strcat(FullList, "Banned by - Date - Reason - IP\n\n"); for(new i = 0; i < cache_num_rows(); i++) { cache_get_value_name(i, "BannedBy", By, 60); cache_get_value_name(i, "Reason", Reason, 128); cache_get_value_name(i, "Date", Date, 90); cache_get_value_name(i, "IP", IP, 90); format(PackerString, 128, "\t%s - %s - %s - %s\n", By, Date, Reason, IP); strcat(FullList, PackerString); } ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", FullList, "Okay!", ""); } return 1; } case DIALOG_DECRYPTMASK: { if(!response) return ShowAdminPanel(playerid); if(strlen(inputtext) > 9) return ShowAdminSys(playerid, 6, "The Mask ID you specified is invalid."); new bool:isValid = true; for (new i = 0, l = strlen(inputtext); i != l; i ++) { if (i == 6 && inputtext[6] == '_') continue; else if (inputtext[i] < '0' || inputtext[i] > '9') isValid = false; } if(!isValid) return ShowAdminSys(playerid, 6, "The Mask ID you specified is invalid."); new First, Second, FirstStr[30], SecondStr[30]; strmid(FirstStr, inputtext, 0, 6); strmid(SecondStr, inputtext, 7, 9); First = strval(FirstStr); Second = strval(SecondStr); new Query[128], string[128]; mysql_format(m_Handle, Query, sizeof(Query), "SELECT Name FROM players WHERE MaskID = %i AND MaskIDEx = %i", First, Second); new Cache:cache = mysql_query(m_Handle, Query); if(!cache_num_rows()) { format(string, sizeof(string), "No user has the Mask ID \"{A52A2A}[%d_%d]{ADC3E7}\".", First, Second); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", string, "Okay!", ""); cache_delete(cache); } else { new Name[60]; cache_get_value_name(0, "Name", Name, 60); format(string, sizeof(string), "Mask ID \"{A52A2A}[%d_%d]{ADC3E7}\" belongs to the user \"{A52A2A}%s{ADC3E7}\".", First, Second, Name); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", string, "Okay!", ""); cache_delete(cache); } return 1; } case DIALOG_APANEL: { if(response) return ShowAdminPanel(playerid); return 1; } case DIALOG_SKINSEARCH: { if(!response) return ShowAdminPanel(playerid); if(!IsNumeric(inputtext)) return ShowAdminSys(playerid, 8, "Your input needs to be a numeric value."); new Skin; Skin = strval(inputtext); if(Skin < 0 || Skin == 74 || Skin > 311) return ShowAdminSys(playerid, 8, "You specified an invalid Skin ID."); new FoundSkin, ListStr[900], PlayerStr[128]; format(PlayerStr, sizeof(PlayerStr), "Players with Skin ID %i:\n\n", Skin); strcat(ListStr, PlayerStr); foreach(new i : Player) if(GetPlayerSkin(i) == Skin) { FoundSkin++; format(PlayerStr, sizeof(PlayerStr), "\t%s (ID: %i) - Location: %s - Vehicle: %i\n", ReturnName(i), i, ReturnLocation(i), GetPlayerVehicleID(i)); strcat(ListStr, PlayerStr); } if(!FoundSkin) return ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", "No player was found with that Skin ID.", "Okay!", ""); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", ListStr, "Okay!", ""); return 1; } case DIALOG_ANOTE_LOOKUP: { if(!response) return ShowAdminPanel(playerid); /*{ ShowAdminSys(playerid, 9, "The username you specified isn't possible."); return 1; }*/ if(!ReturnSQLFromName(inputtext)) { ShowAdminSys(playerid, 9, "The username you specified doesn't exist in the database."); return 1; } new Query[200], string[128]; mysql_format(m_Handle, Query, sizeof(Query), "SELECT * FROM player_anotes WHERE player_dbid = %i", ReturnSQLFromName(inputtext)); new Cache:cache = mysql_query(m_Handle, Query); if(!cache_num_rows()) { format(string, sizeof(string), "The user \"{A52A2A}%s{ADC3E7}\" does not have any admin notes.", inputtext); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", string, "Okay!", ""); cache_delete(cache); return 1; } else { new Reason[128]; new ID; new FullList[400], ShowList[128]; for(new i = 0, j = 1; i < cache_num_rows(); i++) { cache_get_value_name(i, "anote_reason", Reason, 128); cache_get_value_name_int(i, "id", ID); AdminNoteSelect[playerid][j] = ID; j++; if(j > MAX_ADMIN_NOTES) break; format(ShowList, sizeof(ShowList), "[%i] %.35s...\n", i+1, Reason); strcat(FullList, ShowList); } ShowPlayerDialog(playerid, DIALOG_ANOTE_SELECT, DIALOG_STYLE_LIST, "Administration panel", FullList, "Select", "<<"); } return 1; } case DIALOG_ANOTE_SELECT: { if(!response) return ShowAdminPanel(playerid); new Query[128]; mysql_format(m_Handle, Query, sizeof(Query), "SELECT * FROM player_anotes WHERE id = %i", AdminNoteSelect[playerid][listitem+1]); new Cache:cache = mysql_query(m_Handle, Query); if(!cache_num_rows()) { cache_delete(cache); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", "An error occurred with this admin note.", "Okay!", ""); return 1; } else { new PlayerDBID, Reason[128], Issuer[60], Date[90]; cache_get_value_name_int(0, "player_dbid", PlayerDBID); cache_get_value_name(0, "anote_issuer", Issuer, 60); cache_get_value_name(0, "anote_reason", Reason, 128); cache_get_value_name(0, "anote_date", Date, 90); new Primary[500], Sub[128]; format(Sub, sizeof(Sub), "Player name: %s\n", ReturnSQLName(PlayerDBID)); strcat(Primary, Sub); format(Sub, sizeof(Sub), "Issuer name: %s\n\n", Issuer); strcat(Primary, Sub); format(Sub, sizeof(Sub), "Date: %s\n", Date); strcat(Primary, Sub); format(Sub, sizeof(Sub), "Reason: %s\n\n", Reason); strcat(Primary, Sub); strcat(Primary, "{A52A2A}Use admin sys to Delete or Edit this admin note."); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", Primary, "Okay!", ""); for(new i = 1; i < MAX_ADMIN_NOTES; i++) AdminNoteSelect[playerid][i] = 0; } return 1; } case DIALOG_ANOTE_EDIT: { if(!response) return ShowAdminPanel(playerid); /*{ ShowAdminSys(playerid, 10, "The username you specified isn't possible."); return 1; }*/ if(!ReturnSQLFromName(inputtext)) { ShowAdminSys(playerid, 10, "The username you specified doesn't exist in the database."); return 1; } new Query[200], string[128]; mysql_format(m_Handle, Query, sizeof(Query), "SELECT * FROM player_anotes WHERE player_dbid = %i", ReturnSQLFromName(inputtext)); new Cache:cache = mysql_query(m_Handle, Query); if(!cache_num_rows()) { format(string, sizeof(string), "The user \"{A52A2A}%s{ADC3E7}\" does not have any admin notes.", inputtext); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", string, "Okay!", ""); cache_delete(cache); return 1; } else { new Reason[128]; new ID; new FullList[400], ShowList[128]; for(new i = 0, j = 1; i < cache_num_rows(); i++) { cache_get_value_name(i, "anote_reason", Reason, 128); cache_get_value_name_int(i, "id", ID); AdminNoteSelect[playerid][j] = ID; j++; if(j > MAX_ADMIN_NOTES) break; format(ShowList, sizeof(ShowList), "[%i] %.35s...\n", i+1, Reason); strcat(FullList, ShowList); } format(AdminPanelName[playerid], 60, "%s", inputtext); ShowPlayerDialog(playerid, DIALOG_ANOTE_EDIT_YES, DIALOG_STYLE_LIST, "Administration panel", FullList, "Select", "<<"); } return 1; } case DIALOG_ANOTE_EDIT_YES: { if(!response) return ShowAdminPanel(playerid); new Query[128]; mysql_format(m_Handle, Query, sizeof(Query), "SELECT * FROM player_anotes WHERE id = %i", AdminNoteSelect[playerid][listitem+1]); new Cache:cache = mysql_query(m_Handle, Query); if(!cache_num_rows()) { cache_delete(cache); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", "An error occurred with this admin note.", "Okay!", ""); return 1; } else { new PlayerDBID, Reason[128], Issuer[60], Date[90]; cache_get_value_name_int(0, "player_dbid", PlayerDBID); cache_get_value_name(0, "anote_issuer", Issuer, 60); cache_get_value_name(0, "anote_reason", Reason, 128); cache_get_value_name(0, "anote_date", Date, 90); new Primary[500], Sub[128]; format(Sub, sizeof(Sub), "Player name: %s\n", ReturnSQLName(PlayerDBID)); strcat(Primary, Sub); format(Sub, sizeof(Sub), "Issuer name: %s\n\n", Issuer); strcat(Primary, Sub); format(Sub, sizeof(Sub), "Date: %s\n", Date); strcat(Primary, Sub); format(Sub, sizeof(Sub), "Reason: %s\n\n", Reason); strcat(Primary, Sub); strcat(Primary, "{A52A2A}Select \"EDIT\" to edit this admin note reason."); ShowPlayerDialog(playerid, DIALOG_ANOTE_EDIT_YES2, DIALOG_STYLE_MSGBOX, "Administration panel", Primary, "Edit", "<<"); cache_delete(cache); AdminNoteSelected[playerid] = AdminNoteSelect[playerid][listitem+1]; format(AdminNoteIssuer[playerid], 90, "%s", Issuer); } return 1; } case DIALOG_ANOTE_EDIT_YES2: { if(!response) return ShowAdminPanel(playerid); ShowPlayerDialog(playerid, DIALOG_ANOTE_EDIT_YES3, DIALOG_STYLE_INPUT, "Administration panel", "What would you like to edit this admin notes reason to?", "Select", "<<"); return 1; } case DIALOG_ANOTE_EDIT_YES3: { if(!response) return ShowAdminPanel(playerid); new Query[256], IssuerEdit[128]; if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_ANOTE_EDIT_YES3, DIALOG_STYLE_INPUT, "Administration panel", "What would you like to edit this admin notes reason to?", "Select", "<<"); if(strcmp(AdminNoteIssuer[playerid], ReturnName(playerid), true)) { format(IssuerEdit[playerid], 128, "%s+%s", AdminNoteIssuer[playerid], ReturnName(playerid)); } else format(IssuerEdit[playerid], 128, "%s", AdminNoteIssuer[playerid]); foreach(new i : Player) { for(new j = 1; j < MAX_ADMIN_NOTES; j++) { if(aNotesData[i][j][anote_SQLID] == AdminNoteSelected[playerid]) { format(aNotesData[i][j][anote_reason], 128, "%s", inputtext); format(aNotesData[i][j][anote_issuer], 60, "%s", IssuerEdit); } } } mysql_format(m_Handle, Query, sizeof(Query), "UPDATE player_anotes SET anote_reason = '%e', anote_issuer = '%e' WHERE id = %i", inputtext, IssuerEdit[playerid], AdminNoteSelected[playerid]); mysql_tquery(m_Handle, Query); format(IssuerEdit, sizeof(IssuerEdit), "You successfully edited an admin note on {A52A2A}%s.", AdminPanelName[playerid]); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", IssuerEdit, "Okay!", ""); format(IssuerEdit, sizeof(IssuerEdit), "%s had an admin noted edited by %s", AdminPanelName[playerid], ReturnName(playerid)); adminWarn(2, IssuerEdit); WriteLog("admin_logs/players/admin_note/edit_note.txt", "[%s] %s edited %s's Note (DBID %d) to %s", ReturnDate(), ReturnName(playerid, 1), AdminPanelName[playerid], AdminNoteSelected[playerid], inputtext); return 1; } case DIALOG_ANOTE_ADD: { if(!response) return ShowAdminPanel(playerid); /*{ ShowAdminSys(playerid, 11, "The username you specified isn't possible."); return 1; }*/ if(!ReturnSQLFromName(inputtext)) { ShowAdminSys(playerid, 11, "The username you specified doesn't exist in the database."); return 1; } new bool:hasSlot = false; new NotIG; new string[128]; foreach(new i : Player) { if(!strcmp(ReturnName(i), inputtext, true)) { if(ReturnANoteSlot(i) != -1) { hasSlot = true; } } else { NotIG = true; } } if(NotIG) { new Query[128]; mysql_format(m_Handle, Query, sizeof(Query), "SELECT id FROM player_anotes WHERE player_dbid = %i", ReturnSQLFromName(inputtext)); new Cache:cache = mysql_query(m_Handle, Query); if(!cache_num_rows()) { hasSlot = true; cache_delete(cache); } else { if(cache_num_rows() > MAX_ADMIN_NOTES) { hasSlot = false; } } } if(!hasSlot) { format(string, sizeof(string), "The user \"{A52A2A}%s{ADC3E7}\" does not have any free admin note slots.", inputtext); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", string, "Okay!", ""); return 1; } format(AdminPanelName[playerid], 60, "%s", inputtext); format(string, sizeof(string), "Input the reason for \"{A52A2A}%s{ADC3E7}\"'s new admin note:", inputtext); ShowPlayerDialog(playerid, DIALOG_ANOTE_ADD_REASON, DIALOG_STYLE_INPUT, "Administration panel", string, "Select", "<<"); return 1; } case DIALOG_ANOTE_ADD_REASON: { if(!response) return ShowAdminPanel(playerid); if(strlen(inputtext) < 3) { new string[128]; format(string, sizeof(string), "Input the reason for \"{A52A2A}%s{ADC3E7}\"'s new admin note:", AdminPanelName[playerid]); ShowPlayerDialog(playerid, DIALOG_ANOTE_ADD_REASON, DIALOG_STYLE_INPUT, "Administration panel", string, "Select", "<<"); return 1; } new Insert[400]; mysql_format(m_Handle, Insert, sizeof(Insert), "INSERT INTO player_anotes (player_dbid, anote_reason, anote_issuer, anote_date) VALUES(%i, '%e', '%e', '%e')", ReturnSQLFromName(AdminPanelName[playerid]), inputtext, ReturnName(playerid), ReturnDateLog()); mysql_tquery(m_Handle, Insert, "OnAdminNoteAdd", "is", playerid, inputtext); return 1; } case DIALOG_ANOTE_DELETE: { if(!response) return ShowAdminPanel(playerid); /*{ ShowAdminSys(playerid, 12, "The username you specified isn't possible."); return 1; }*/ if(!ReturnSQLFromName(inputtext)) { ShowAdminSys(playerid, 12, "The username you specified doesn't exist in the database."); return 1; } new Query[200], string[128]; mysql_format(m_Handle, Query, sizeof(Query), "SELECT * FROM player_anotes WHERE player_dbid = %i", ReturnSQLFromName(inputtext)); new Cache:cache = mysql_query(m_Handle, Query); if(!cache_num_rows()) { format(string, sizeof(string), "The user \"{A52A2A}%s{ADC3E7}\" does not have any admin notes.", inputtext); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", string, "Okay!", ""); cache_delete(cache); return 1; } else { new Reason[128]; new ID; new FullList[400], ShowList[128]; for(new i = 0, j = 1; i < cache_num_rows(); i++) { cache_get_value_name(i, "anote_reason", Reason, 128); cache_get_value_name_int(i, "id", ID); AdminNoteSelect[playerid][j] = ID; j++; if(j > MAX_ADMIN_NOTES) break; format(ShowList, sizeof(ShowList), "[%i] %.35s...\n", i+1, Reason); strcat(FullList, ShowList); } format(AdminPanelName[playerid], 60, "%s", inputtext); ShowPlayerDialog(playerid, DIALOG_ANOTE_DELETE_SELECT, DIALOG_STYLE_LIST, "Administration panel", FullList, "Select", "<<"); } return 1; } case DIALOG_ANOTE_DELETE_SELECT: { if(!response) return ShowAdminPanel(playerid); new Query[128]; mysql_format(m_Handle, Query, sizeof(Query), "SELECT * FROM player_anotes WHERE id = %i", AdminNoteSelect[playerid][listitem+1]); new Cache:cache = mysql_query(m_Handle, Query); if(!cache_num_rows()) { cache_delete(cache); ShowPlayerDialog(playerid, DIALOG_APANEL, DIALOG_STYLE_MSGBOX, "Administration panel", "An error occurred with this admin note.", "Okay!", ""); return 1; } else { new PlayerDBID, Reason[128], Issuer[60], Date[90]; cache_get_value_name_int(0, "player_dbid", PlayerDBID); cache_get_value_name(0, "anote_issuer", Issuer, 60); cache_get_value_name(0, "anote_reason", Reason, 128); cache_get_value_name(0, "anote_date", Date, 90); new Primary[500], Sub[128]; format(Sub, sizeof(Sub), "Player name: %s\n", ReturnSQLName(PlayerDBID)); strcat(Primary, Sub); format(Sub, sizeof(Sub), "Issuer name: %s\n\n", Issuer); strcat(Primary, Sub); format(Sub, sizeof(Sub), "Date: %s\n", Date); strcat(Primary, Sub); format(Sub, sizeof(Sub), "Reason: %s\n\n", Reason); strcat(Primary, Sub); strcat(Primary, "{A52A2A}Select \"DELETE\" to delete this admin note."); ShowPlayerDialog(playerid, DIALOG_ANOTE_DELETE_CONFIRM, DIALOG_STYLE_MSGBOX, "Administration panel", Primary, "Delete", "<<"); cache_delete(cache); AdminNoteSelected[playerid] = AdminNoteSelect[playerid][listitem+1]; } return 1; } case DIALOG_ANOTE_DELETE_CONFIRM: { if(!response) return ShowAdminPanel(playerid); new string[128]; format(string, sizeof(string), "Are you sure you want to delete \"{A52A2A}%s{ADC3E7}\"'s admin note?", AdminPanelName[playerid]); ConfirmDialog(playerid, "Administration panel", string, "OnAdminNoteDelete", AdminNoteSelected[playerid]); return 1; } case DIALOG_PASSWORD_CHANGE: { if(response) { if(strlen(inputtext) > 128 || strlen(inputtext) < 3) { new largeString[800]; strcat(largeString, "{F81414}YOU'RE ABOUT TO CHANGE YOUR PASSWORD!\n"); strcat(largeString, "{FFFFFF}Here are a few tips to keep your account password safe and secure:\n\n"); strcat(largeString, "\tUse a mix of letters, numbers, and symbols in your password.\n"); strcat(largeString, "\tUse a unique password for each of your important accounts.\n"); strcat(largeString, "\tDon't use personal information or common words as a password.\n"); strcat(largeString, "\tDon't use the same password as your forum.baseroleplay.com forum account.\n"); strcat(largeString, "Remember that San Andreas '92 staff will NEVER ask you for your account information.\n\n"); strcat(largeString, "{F81414}~~ Your password has to be greater than 3 characters and less than 128."); ShowPlayerDialog(playerid, DIALOG_PASSWORD_CHANGE, DIALOG_STYLE_PASSWORD, "Change Your Password", largeString, "Select", "Cancel"); return 1; } new LogQuery[300], Query[128]; mysql_format(m_Handle, Query, sizeof(Query), "SELECT Password FROM players WHERE id = %i", PlayerData[playerid][pSQLID]); new Cache:cache = mysql_query(m_Handle, Query); new Password[255]; cache_get_value_name(0, "Password", Password, 255); cache_delete(cache); mysql_format(m_Handle, LogQuery, sizeof(LogQuery), "UPDATE players SET Password = sha1('%e') WHERE id = %i", inputtext, PlayerData[playerid][pSQLID]); mysql_tquery(m_Handle, LogQuery, "OnPasswordChange", "is", playerid, Password); } else return SendClientMessage(playerid, COLOR_ADM, "You cancelled your password change."); return 1; } case DIALOG_PASSWORD_SECURITY_WORD: { if(!response) { new string[128], ipString[128]; if(PlayerData[playerid][pAdmin] < 3) format(ipString, 128, "%s", ReturnIP(playerid)); else ipString = "Admin Account"; format(string, sizeof(string), "%s (IP: %s) cancelled their secret word during a password change.", ReturnName(playerid), ipString); adminWarn(1, string); printf("[WARNING] %s (IP: %s) cancelled their secret word during a password change.", ReturnName(playerid), ReturnIP(playerid)); return 1; } new Query[256]; mysql_format(m_Handle, Query, sizeof(Query), "SELECT id FROM players WHERE SecretWord = sha1('%e') AND id = %i", inputtext, PlayerData[playerid][pSQLID]); mysql_tquery(m_Handle, Query, "ConfirmSecretWord", "i", playerid); return 1; } case DIALOG_FACTIONMENU: { if(response) { ShowYourFactionMenuAlt(playerid, listitem); } return 1; } case DIALOG_FACTIONMENU_NAME: { if(!response) return ShowYourFactionMenu(playerid); if(strlen(inputtext) > 60 || strlen(inputtext) < 6) return ShowYourFactionMenuAlt(playerid, 0); Message(playerid, COLOR_GREY, "You changed your factions name to: \"%s\" successfully.", inputtext); WriteLog("faction_logs/name_edit.txt", "[%s] %s edited Faction ID %i from %s to %s.", ReturnDateLog(), ReturnName(playerid), PlayerData[playerid][pFaction], FactionData[PlayerData[playerid][pFaction]][factionName], inputtext); format(FactionData[PlayerData[playerid][pFaction]][factionName], 128, "%s", inputtext); SaveFaction(PlayerData[playerid][pFaction]); ShowYourFactionMenu(playerid); return 1; } case DIALOG_FACTIONMENU_ABBREV: { if(!response) return ShowYourFactionMenu(playerid); if(strlen(inputtext) > 7 || strlen(inputtext) < 1) return ShowYourFactionMenuAlt(playerid, 1); Message(playerid, COLOR_GREY, "You changed your factions abbreviation to: \"%s\" successfully.", inputtext); WriteLog("faction_logs/abbrev_edit.txt", "[%s] %s edited Faction ID %i from %s to %s.", ReturnDateLog(), ReturnName(playerid), PlayerData[playerid][pFaction], FactionData[PlayerData[playerid][pFaction]][factionAbbrev], inputtext); format(FactionData[PlayerData[playerid][pFaction]][factionAbbrev], 128, "%s", inputtext); SaveFaction(PlayerData[playerid][pFaction]); ShowYourFactionMenu(playerid); return 1; } case DIALOG_FACTIONMENU_ALTER: { if(!response) return ShowYourFactionMenu(playerid); if(!IsNumeric(inputtext)) return ShowYourFactionMenuAlt(playerid, 2); new rank_id; rank_id = strval(inputtext); if(rank_id > MAX_FACTION_RANKS || rank_id < 1) return ShowYourFactionMenuAlt(playerid, 2); Message(playerid, COLOR_GREY, "You changed your factions alter rank to: \"%s\" [%i] successfully.", FactionRanks[PlayerData[playerid][pFaction]][rank_id], rank_id); WriteLog("faction_logs/abbrev_edit.txt", "[%s] %s edited Faction ID %i from %d to %d.", ReturnDateLog(), ReturnName(playerid), PlayerData[playerid][pFaction], FactionData[PlayerData[playerid][pFaction]][factionEditrank], rank_id); FactionData[PlayerData[playerid][pFaction]][factionEditrank] = rank_id; SaveFaction(PlayerData[playerid][pFaction]); ShowYourFactionMenu(playerid); return 1; } case DIALOG_FACTIONMENU_TOW: { if(!response) return ShowYourFactionMenu(playerid); if(!IsNumeric(inputtext)) return ShowYourFactionMenuAlt(playerid, 3); new rank_id; rank_id = strval(inputtext); if(rank_id > MAX_FACTION_RANKS || rank_id < 1) return ShowYourFactionMenuAlt(playerid, 3); Message(playerid, COLOR_GREY, "You changed your factions tow rank to: \"%s\" [%i] successfully.", FactionRanks[PlayerData[playerid][pFaction]][rank_id], rank_id); FactionData[PlayerData[playerid][pFaction]][factionTowrank] = rank_id; SaveFaction(PlayerData[playerid][pFaction]); ShowYourFactionMenu(playerid); return 1; } case DIALOG_FACTIONMENU_CHAT: { if(!response) return ShowYourFactionMenu(playerid); if(!IsNumeric(inputtext)) return ShowYourFactionMenuAlt(playerid, 4); new rank_id; rank_id = strval(inputtext); if(rank_id > MAX_FACTION_RANKS || rank_id < 1) return ShowYourFactionMenuAlt(playerid, 4); Message(playerid, COLOR_GREY, "You changed your factions chat rank to: \"%s\" [%i] successfully.", FactionRanks[PlayerData[playerid][pFaction]][rank_id], rank_id); FactionData[PlayerData[playerid][pFaction]][factionChatrank] = rank_id; SaveFaction(PlayerData[playerid][pFaction]); ShowYourFactionMenu(playerid); return 1; } case DIALOG_FACTIONMENU_JOIN: { if(!response) return ShowYourFactionMenu(playerid); if(!IsNumeric(inputtext)) return ShowYourFactionMenuAlt(playerid, 5); new rank_id; rank_id = strval(inputtext); if(rank_id > MAX_FACTION_RANKS || rank_id < 1) return ShowYourFactionMenuAlt(playerid, 5); Message(playerid, COLOR_GREY, "You changed your factions join rank to: \"%s\" [%i] successfully.", FactionRanks[PlayerData[playerid][pFaction]][rank_id], rank_id); FactionData[PlayerData[playerid][pFaction]][factionMaxRanks] = rank_id; SaveFaction(PlayerData[playerid][pFaction]); ShowYourFactionMenu(playerid); return 1; } case DIALOG_FACTIONMENU_EDIT: { if(!response) return ShowYourFactionMenu(playerid); SetPVarInt( playerid, "SelectedRank", listitem + 1 ); ShowYourFactionMenuAlt(playerid, 7); return 1; } case DIALOG_FACTIONMENU_EDITALT: { if(!response) { DeletePVar(playerid, "SelectedRank"); return ShowYourFactionMenuAlt(playerid, 6); } if(strlen(inputtext) < 2 || strlen(inputtext) > 60) { return ShowYourFactionMenuAlt(playerid, 7); } new rank_id; rank_id = GetPVarInt(playerid, "SelectedRank"); Message(playerid, COLOR_GREY, "You changed your factions #%i rank to: \"%s\" successfully.", rank_id, inputtext); format(FactionRanks[PlayerData[playerid][pFaction]][rank_id], 60, "%s", inputtext); SaveFactionRanks(PlayerData[playerid][pFaction]); DeletePVar(playerid, "SelectedRank"); ShowYourFactionMenuAlt(playerid, 6); printf("[FACTION CONFIG] %s edited faction ID %i's rank ID %i's name to: %s", ReturnName(playerid), PlayerData[playerid][pFaction], rank_id, inputtext); return 1; } case DIALOG_FACTIONMEMBERS: { if(response) { new page = GetPVarInt(playerid, "MemberPage"); if(!strcmp(inputtext, "Previous Page <<")) { ShowFactionMembers(playerid, page-1); return 1; } if(!strcmp(inputtext, "Next Page >>")) //if(listitem == MAX_PLAYER_PER_PAGE+1) return ShowFactionMembers(playerid, page+1); } } case REGISTER_GENDER: { if(response) { SendClientMessage(playerid, COLOR_WHITE, "Your gender has been set to male."); PlayerData[playerid][pGender] = 1; PlayerData[playerid][pSkin] = 217; SetPlayerSkin(playerid, PlayerData[playerid][pSkin]); GiveMoney(playerid, 15000); SavePlayer(playerid); return 1; } else { SendClientMessage(playerid, COLOR_WHITE, "Your gender has been set to female."); PlayerData[playerid][pGender] = 2; PlayerData[playerid][pSkin] = 211; SetPlayerSkin(playerid, PlayerData[playerid][pSkin]); GiveMoney(playerid, 15000); SavePlayer(playerid); return 1; } } /*case REGISTER_SKIN: { if( !response ) { SetPlayerSkin( playerid, 264 ); PlayerData[ playerid ][ pSkin ] = 264; return 1; } new Skin; Skin = strval(inputtext); if( Skin < 0 || Skin == 74 || Skin > 311 ) { ShowPlayerDialog( playerid, REGISTER_SKIN, DIALOG_STYLE_INPUT, "Enter Skin ID:", "Invalid value entered!\n\nHey, what skin ID do you want?\n\nEnter a numeric value below!", "Enter", "<<" ); return 1; } SetPlayerSkin( playerid, Skin ); PlayerData[ playerid ][ pSkin ] = Skin; return 1; }*/ case DIALOG_TRANSFER_DRUG: { if (response) { switch (listitem) { case 0: { if (CountPackages(playerid) == 10) { ShowPlayerDialog(playerid, DIALOG_TRANSFER_DRUG, DIALOG_STYLE_LIST, "Transfer Drug", "Transfer to a new package\nTransfer to an existing package", "Next", "Exit"); SendClientMessage(playerid, COLOR_YELLOW, "You can't have any more packages."); return 1; } new string[128], id = PlayerData[playerid][pTransferDrug]; format(string, sizeof(string), "Your %s currently contains %.1f%s of %s.\n\nHow much do you wish to transfer?", GetPackageType(DrugData[playerid][id][drugPackage]), DrugData[playerid][id][drugQuantity], (IsPill(DrugData[playerid][id][drugType]) == 1) ? (" Pills") : ("g"), ReturnDrugsName(DrugData[playerid][id][drugType])); ShowPlayerDialog(playerid, DIALOG_NEW_PACKAGE, DIALOG_STYLE_INPUT, "Transfer Drug", string, "Next", "Back"); } case 1: { new string[128], id = PlayerData[playerid][pTransferDrug]; format(string, sizeof(string), "Your %s currently contains %.1f%s of %s.\n\nHow much do you wish to transfer?", GetPackageType(DrugData[playerid][id][drugPackage]), DrugData[playerid][id][drugQuantity], (IsPill(DrugData[playerid][id][drugType]) == 1) ? (" Pills") : ("g"), ReturnDrugsName(DrugData[playerid][id][drugType])); ShowPlayerDialog(playerid, DIALOG_EXISTING_PACKAGE, DIALOG_STYLE_INPUT, "Transfer Drug", string, "Next", "Back"); } } } } case DIALOG_NEW_PACKAGE: { if (response) { new Float:quantity, id = PlayerData[playerid][pTransferDrug]; if (sscanf(inputtext, "f", quantity) || quantity < 0.1) { new string[128]; format(string, sizeof(string), "Your %s currently contains %.1f%s of %s.\n\nHow much do you wish to transfer?", GetPackageType(DrugData[playerid][id][drugPackage]), DrugData[playerid][id][drugQuantity], (IsPill(DrugData[playerid][id][drugType]) == 1) ? (" Pills") : ("g"), ReturnDrugsName(DrugData[playerid][id][drugType])); ShowPlayerDialog(playerid, DIALOG_NEW_PACKAGE, DIALOG_STYLE_INPUT, "Transfer Drug", string, "Next", "Back"); return 1; } if (quantity > DrugData[playerid][id][drugQuantity]) { new string[128]; format(string, sizeof(string), "Your %s currently contains %.1f%s of %s.\n\nHow much do you wish to transfer?", GetPackageType(DrugData[playerid][id][drugPackage]), DrugData[playerid][id][drugQuantity], (IsPill(DrugData[playerid][id][drugType]) == 1) ? (" Pills") : ("g"), ReturnDrugsName(DrugData[playerid][id][drugType])); SendClientMessage(playerid, COLOR_YELLOW, "You don't have that much."); ShowPlayerDialog(playerid, DIALOG_NEW_PACKAGE, DIALOG_STYLE_INPUT, "Transfer Drug", string, "Next", "Back"); return 1; } new dialog[650], string[64]; dialog = "#\tStorage Name\n"; PlayerData[playerid][pTransferQuantity] = quantity; for (new i = 0; i <= 13; i++) { format(string, sizeof(string), "%d\t%s (Capacity: %.1f%s)\n", i, GetPackageType(i), GetPackageCapacity(i, DrugData[playerid][id][drugType]), (IsPill(DrugData[playerid][id][drugType]) == 1) ? (" Pills") : ("g")); strcat(dialog, string); } ShowPlayerDialog(playerid, DIALOG_NEW_PACKAGE_TYPE, DIALOG_STYLE_TABLIST_HEADERS, "Transfer Drug", dialog, "Select", "Back"); } else ShowPlayerDialog(playerid, DIALOG_TRANSFER_DRUG, DIALOG_STYLE_LIST, "Transfer Drug", "Transfer to a new package\nTransfer to an existing package", "Next", "Exit"); } case DIALOG_NEW_PACKAGE_TYPE: { new string[128], id = PlayerData[playerid][pTransferDrug]; if (response) { if (PlayerData[playerid][pTransferQuantity] > GetPackageCapacity(listitem, DrugData[playerid][id][drugType])) { new dialog[512]; dialog = "#\tStorage Name\n"; for (new i = 0; i <= 13; i++) { format(string, sizeof(string), "%d\t%s (Capacity: %.1f%s)\n", i, GetPackageType(i), GetPackageCapacity(i, DrugData[playerid][id][drugType]), (IsPill(DrugData[playerid][id][drugType]) == 1) ? (" Pills") : ("g")); strcat(dialog, string); } ShowPlayerDialog(playerid, DIALOG_NEW_PACKAGE_TYPE, DIALOG_STYLE_TABLIST_HEADERS, "Transfer Drug", dialog, "Select", "Back"); SendClientMessage(playerid, COLOR_YELLOW, "You can't fit that much into that package."); return 1; } new strength; switch (random(2)) { case 0: { strength = DrugData[playerid][id][drugStrength] - random(5) + 1; if (strength < 50) strength = 50; } case 1: strength = DrugData[playerid][id][drugStrength]; } DrugData[playerid][id][drugQuantity] -= PlayerData[playerid][pTransferQuantity]; GiveDrugPackage(playerid, listitem, DrugData[playerid][id][drugType], PlayerData[playerid][pTransferQuantity], strength); format(string, sizeof(string), "You've transferred %.1f%s of %s into a %s.", PlayerData[playerid][pTransferQuantity], (IsPill(DrugData[playerid][id][drugType]) == 1) ? (" Pills") : ("g"), ReturnDrugsName(DrugData[playerid][id][drugType]), GetPackageType(listitem)); SendClientMessage(playerid, COLOR_YELLOW, string); if (DrugData[playerid][id][drugQuantity] == 0) { RemoveDrugPackage(playerid, id); } else { new query[100]; mysql_format(m_Handle, query, sizeof(query), "UPDATE player_drugs SET quantity = %.1f WHERE playersqlid = %d AND slot = %d", DrugData[playerid][id][drugQuantity], PlayerData[playerid][pSQLID], id); mysql_tquery(m_Handle, query); } } else { format(string, sizeof(string), "Your %s currently contains %.1f%s of %s.\n\nHow much do you wish to transfer?", GetPackageType(DrugData[playerid][id][drugPackage]), DrugData[playerid][id][drugQuantity], (IsPill(DrugData[playerid][id][drugType]) == 1) ? (" Pills") : ("g"), ReturnDrugsName(DrugData[playerid][id][drugType])); ShowPlayerDialog(playerid, DIALOG_NEW_PACKAGE, DIALOG_STYLE_INPUT, "Transfer Drug", string, "Next", "Back"); return 1; } } case DIALOG_EXISTING_PACKAGE: { if (response) { new Float:quantity, id = PlayerData[playerid][pTransferDrug]; if (sscanf(inputtext, "f", quantity) || quantity < 0.1) { new string[128]; format(string, sizeof(string), "Your %s currently contains %.1f%s of %s.\n\nHow much do you wish to transfer?", GetPackageType(DrugData[playerid][id][drugPackage]), DrugData[playerid][id][drugQuantity], (IsPill(DrugData[playerid][id][drugType]) == 1) ? (" Pills") : ("g"), ReturnDrugsName(DrugData[playerid][id][drugType])); ShowPlayerDialog(playerid, DIALOG_EXISTING_PACKAGE, DIALOG_STYLE_INPUT, "Transfer Drug", string, "Next", "Back"); return 1; } if (quantity > DrugData[playerid][id][drugQuantity]) { new string[128]; format(string, sizeof(string), "Your %s currently contains %.1f%s of %s.\n\nHow much do you wish to transfer?", GetPackageType(DrugData[playerid][id][drugPackage]), DrugData[playerid][id][drugQuantity], (IsPill(DrugData[playerid][id][drugType]) == 1) ? (" Pills") : ("g"), ReturnDrugsName(DrugData[playerid][id][drugType])); SendClientMessage(playerid, COLOR_YELLOW, "You don't have that much."); ShowPlayerDialog(playerid, DIALOG_EXISTING_PACKAGE, DIALOG_STYLE_INPUT, "Transfer Drug", string, "Next", "Back"); return 1; } new dialog[512], string[100], count; dialog = "#\tPackage Content\n"; PlayerData[playerid][pTransferQuantity] = quantity; for (new i = 0; i < 10; i++) PlayerData[playerid][pTransferList][i] = -1; for (new i = 0; i < 10; i++) if (DrugData[playerid][i][drugQuantity] > 0) { if (i == id || DrugData[playerid][i][drugType] != DrugData[playerid][id][drugType] || DrugData[playerid][i][drugQuantity] >= GetPackageCapacity(DrugData[playerid][i][drugPackage], DrugData[playerid][i][drugType]) || DrugData[playerid][i][drugQuantity] + PlayerData[playerid][pTransferQuantity] > GetPackageCapacity(DrugData[playerid][i][drugPackage], DrugData[playerid][i][drugType])) continue; format(string, sizeof(string), "%d\t%s (%s: %.1f%s/%.1f%s) (Strength: %d)\n", i, GetPackageType(DrugData[playerid][i][drugPackage]), ReturnDrugsName(DrugData[playerid][i][drugType]), DrugData[playerid][i][drugQuantity], (IsPill(DrugData[playerid][i][drugType]) == 1) ? (" Pills") : ("g"), GetPackageCapacity(DrugData[playerid][i][drugPackage], DrugData[playerid][i][drugType]), (IsPill(DrugData[playerid][i][drugType]) == 1) ? (" Pills") : ("g"), DrugData[playerid][i][drugStrength]); strcat(dialog, string); PlayerData[playerid][pTransferList][count] = i; count++; } ShowPlayerDialog(playerid, DIALOG_EXISTING_CHOOSE, DIALOG_STYLE_TABLIST_HEADERS, "Transfer Drug", dialog, "Select", "Back"); } else ShowPlayerDialog(playerid, DIALOG_TRANSFER_DRUG, DIALOG_STYLE_LIST, "Transfer Drug", "Transfer to a new package\nTransfer to an existing package", "Next", "Exit"); } case DIALOG_EXISTING_CHOOSE: { new string[128], id = PlayerData[playerid][pTransferDrug]; if (response) { if (PlayerData[playerid][pTransferList][0] == -1) return ShowPlayerDialog(playerid, DIALOG_EXISTING_CHOOSE, DIALOG_STYLE_TABLIST_HEADERS, "Transfer Drug", "#\tPackage Content\n", "Select", "Back"); new to_id = PlayerData[playerid][pTransferList][listitem], query[100], strength; if (PlayerData[playerid][pTransferQuantity] > DrugData[playerid][id][drugQuantity]) { adminWarn(1, sprintf("%s has attempted to duplicate drug package ID %d.", ReturnName(playerid, 1), id)); return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You do not have a sufficient amount of drugs in that slot to transfer."); } DrugData[playerid][to_id][drugQuantity] += PlayerData[playerid][pTransferQuantity]; DrugData[playerid][id][drugQuantity] -= PlayerData[playerid][pTransferQuantity]; strength = (DrugData[playerid][id][drugStrength] + DrugData[playerid][to_id][drugStrength]) / 2; switch (random(2)) { case 0: { strength -= random(5) + 1; if (strength < 50) strength = 50; } } format(string, sizeof(string), "You've transferred %.1f%s of %s into an existing %s.", PlayerData[playerid][pTransferQuantity], (IsPill(DrugData[playerid][id][drugType]) == 1) ? (" Pills") : ("g"), ReturnDrugsName(DrugData[playerid][id][drugType]), GetPackageType(DrugData[playerid][to_id][drugPackage])); SendClientMessage(playerid, COLOR_YELLOW, string); DrugData[playerid][to_id][drugStrength] = strength; if (DrugData[playerid][id][drugQuantity] == 0) { RemoveDrugPackage(playerid, id); } else { mysql_format(m_Handle, query, sizeof(query), "UPDATE player_drugs SET quantity = %.1f WHERE playersqlid = %d AND slot = %d", DrugData[playerid][id][drugQuantity], PlayerData[playerid][pSQLID], id); mysql_tquery(m_Handle, query); } mysql_format(m_Handle, query, sizeof(query), "UPDATE player_drugs SET quantity = %.1f, strength = %d WHERE playersqlid = %d AND slot = %d", DrugData[playerid][to_id][drugQuantity], strength, PlayerData[playerid][pSQLID], to_id); mysql_tquery(m_Handle, query); } else { format(string, sizeof(string), "Your %s currently contains %.1f%s of %s.\n\nHow much do you wish to transfer?", GetPackageType(DrugData[playerid][id][drugPackage]), DrugData[playerid][id][drugQuantity], (IsPill(DrugData[playerid][id][drugType]) == 1) ? (" Pills") : ("g"), ReturnDrugsName(DrugData[playerid][id][drugType])); ShowPlayerDialog(playerid, DIALOG_EXISTING_PACKAGE, DIALOG_STYLE_INPUT, "Transfer Drug", string, "Next", "Back"); } } } return false; } public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ) { if (PlayerData[playerid][pBuyingClothing]) { if (response) { new id_save = FreeClothingSlot(playerid) ; if(id_save == -1) { SendClientMessage(playerid, COLOR_ADM, "An error occurred. You don't have a free slot."); RemovePlayerAttachedObject(playerid, index); ClearAnimations(playerid); PlayerData[playerid][pBuyingClothing] = false; return 1; } ClothingData[playerid][id_save][attachment_modelid] = modelid; ClothingData[playerid][id_save][attachment_bone] = boneid; ClothingData[playerid][id_save][attachment_playerDBID] = PlayerData[playerid][pSQLID]; ClothingData[playerid][id_save][attachment_Pos][0] = fOffsetX; ClothingData[playerid][id_save][attachment_Pos][1] = fOffsetY; ClothingData[playerid][id_save][attachment_Pos][2] = fOffsetZ; ClothingData[playerid][id_save][attachment_Rot][0] = fRotX; ClothingData[playerid][id_save][attachment_Rot][1] = fRotY; ClothingData[playerid][id_save][attachment_Rot][2] = fRotZ; ClothingData[playerid][id_save][attachment_Scale][0] = fScaleX; ClothingData[playerid][id_save][attachment_Scale][1] = fScaleY; ClothingData[playerid][id_save][attachment_Scale][2] = fScaleZ; format(ClothingData[playerid][id_save][attachment_name], 90, "%s", PlayerData[playerid][pClothingName]); clothing_index[playerid] = id_save; new query[550], string[128]; mysql_format(m_Handle, query, sizeof(query), "INSERT INTO player_clothing (`player_dbid`, `modelid`, `bone`, `PosX`, `PosY`, `PosZ`, `RotX`, `RotY`, `RotZ`, `ScaleX`, `ScaleY`, `ScaleZ`, `name`) VALUES (%i, %i, %i, %f, %f, %f, %f, %f, %f, %f, %f, %f, '%e')", PlayerData[playerid][pSQLID], modelid, boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ, PlayerData[playerid][pClothingName]); mysql_pquery(m_Handle, query, "SQL_AddPlayerAttachment", "i", playerid); format(string, sizeof(string), "Enjoy your new %s!", PlayerData[playerid][pClothingName]); SendClientMessage(playerid, COLOR_WHITE, string); RemovePlayerAttachedObject(playerid, index); ClearAnimations(playerid); GiveMoney(playerid, -ClothingCost[playerid]); ClothingCost[playerid] = 0; PlayerData[playerid][pBuyingClothing] = false; } else { SendClientMessage(playerid, COLOR_DARKGREEN, "You cancelled your purchase!"); RemovePlayerAttachedObject(playerid, index); ClearAnimations(playerid); PlayerData[playerid][pBuyingClothing] = false; } } if (PlayerData[playerid][pEditingClothing]) { if (response) { new indexx; for(new i = 1; i < MAX_CLOTHING_ITEMS; i++) { if(ClothingData[playerid][i][attachment_SQLID] == ClothingHolder[playerid]) indexx = i; } ClothingData[playerid][indexx][attachment_Pos][0] = fOffsetX; ClothingData[playerid][indexx][attachment_Pos][1] = fOffsetY; ClothingData[playerid][indexx][attachment_Pos][2] = fOffsetZ; ClothingData[playerid][indexx][attachment_Rot][0] = fRotX; ClothingData[playerid][indexx][attachment_Rot][1] = fRotY; ClothingData[playerid][indexx][attachment_Rot][2] = fRotZ; ClothingData[playerid][indexx][attachment_Scale][0] = fScaleX; ClothingData[playerid][indexx][attachment_Scale][1] = fScaleY; ClothingData[playerid][indexx][attachment_Scale][2] = fScaleZ; new query[400]; mysql_format(m_Handle, query, sizeof(query), "UPDATE player_clothing SET PosX = %f, PosY = %f, PosZ = %f, RotX = %f, RotY = %f, RotZ = %f WHERE id = %i", fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, ClothingData[playerid][indexx][attachment_SQLID]); mysql_pquery(m_Handle, query); mysql_format(m_Handle, query, sizeof(query), "UPDATE player_clothing SET ScaleX = %f, ScaleY = %f, ScaleZ = %f WHERE id = %i", fScaleX, fScaleY, fScaleZ, ClothingData[playerid][indexx][attachment_SQLID]); mysql_pquery(m_Handle, query); SendClientMessage(playerid, COLOR_DARKGREEN, "You edited your clothing item!"); ClearAnimations(playerid); PlayerData[playerid][pEditingClothing] = false; } else { PlayerData[playerid][pEditingClothing] = false; ClearAnimations(playerid); RemovePlayerAttachedObject(playerid, index); SendClientMessage(playerid, COLOR_DARKGREEN, "You stopped editing your clothing item."); } } if (EditingDisplay[playerid]) { new string[128], query[500], id = EditingDisplay[playerid]; if (response) { WeaponDisplay[playerid][id][weaponPos][0] = fOffsetX; WeaponDisplay[playerid][id][weaponPos][1] = fOffsetY; WeaponDisplay[playerid][id][weaponPos][2] = fOffsetZ; WeaponDisplay[playerid][id][weaponRot][0] = fRotX; WeaponDisplay[playerid][id][weaponRot][1] = fRotY; WeaponDisplay[playerid][id][weaponRot][2] = fRotZ; SetPlayerAttachedObject(playerid, index, ReturnWeaponsModel(id), WeaponDisplay[playerid][id][weaponBone], fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ); EditingDisplay[playerid] = false; format (string, sizeof(string), "Your %s's position was changed.", ReturnWeaponName(id)); SendClientMessage(playerid, COLOR_ADM, string); mysql_format(m_Handle, query, sizeof(query), "INSERT INTO weapon_attachments(playerdbid, weaponid, boneid, PosX, PosY, PosZ, RotX, RotY, RotZ) VALUES(%i, %i, %i, %f, %f, %f, %f, %f, %f) ON DUPLICATE KEY UPDATE boneid = %i, PosX = %f, PosY = %f, PosZ = %f, RotX = %f, RotY = %f, RotZ = %f", PlayerData[playerid][pSQLID], id, WeaponDisplay[playerid][id][weaponBone], fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, WeaponDisplay[playerid][id][weaponBone], fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ); mysql_pquery(m_Handle, query); } else { //SetPlayerAttachedObject(playerid, index, ReturnWeaponsModel(id), WeaponDisplay[playerid][id][weaponBone], WeaponDisplay[playerid][id][weaponPos][0], WeaponDisplay[playerid][id][weaponPos][1], WeaponDisplay[playerid][id][weaponPos][2], //WeaponDisplay[playerid][id][weaponRot][0], WeaponDisplay[playerid][id][weaponRot][1], WeaponDisplay[playerid][id][weaponRot][2]); RemovePlayerAttachedObject(playerid, index); EditingDisplay[playerid] = false; } } return true; } Server:Float:GetDistanceBetweenPoints(Float:rx1,Float:ry1,Float:rz1,Float:rx2,Float:ry2,Float:rz2) { return floatadd(floatadd(floatsqroot(floatpower(floatsub(rx1,rx2),2)),floatsqroot(floatpower(floatsub(ry1,ry2),2))),floatsqroot(floatpower(floatsub(rz1,rz2),2))); } stock IsPointNearPoint(Float:aX, Float:aY, Float:aZ, Float:bX, Float:bY, Float:bZ, range = 50) return GetDistanceBetweenPoints(aX, aY, aZ, bX, bY, bZ) <= range; public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz) { if (PlayerData[playerid][pAddingFurniture]) { if(response == EDIT_RESPONSE_FINAL) { if(100 > PlayerData[playerid][pMoney]) { DestroyDynamicObject(PlayerData[playerid][pFurnitureObject]); PlayerData[playerid][pAddingFurniture] = false; SendClientMessage(playerid, COLOR_ADM, "You can't afford this."); return 1; } DestroyDynamicObject(PlayerData[playerid][pFurnitureObject]); SendClientMessage(playerid, COLOR_ADM, "[ ! ]{FFFFFF} You added new furniture to your home."); AddFurniture(playerid, IsPlayerInProperty(playerid), PlayerData[playerid][pFurnitureName], PlayerData[playerid][pFurnitureModel], x, y, z, rx, ry, rz); GiveMoney(playerid, -100); PlayerData[playerid][pAddingFurniture] = false; } else if(response == EDIT_RESPONSE_CANCEL) { DestroyDynamicObject(PlayerData[playerid][pFurnitureObject]); PlayerData[playerid][pAddingFurniture] = false; } printf("pAddFurniture called for %s.", ReturnName(playerid)); } else if (PlayerData[playerid][pAddingXMR]){ if(response == EDIT_RESPONSE_FINAL) { GiveMoney(playerid, -100); DestroyDynamicObject(PlayerData[playerid][pXMRObject]); new id = IsPlayerInProperty(playerid); PropertyData[id][propertyXMRObject] = CreateDynamicObject(2103, x, y, z, rx, ry, rz, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)); PropertyData[id][propertyHasXMR] = true; PropertyData[id][propertyXMRPos][0] = x; PropertyData[id][propertyXMRPos][1] = y; PropertyData[id][propertyXMRPos][2] = z; PropertyData[id][propertyXMRRot][0] = rx; PropertyData[id][propertyXMRRot][1] = ry; PropertyData[id][propertyXMRRot][2] = rz; SaveProperty(id); PlayerData[playerid][pAddingXMR] = false; SendClientMessage(playerid, COLOR_GRAD2, "SERVER: Your Property now has a radio! /setstation"); } else if(response == EDIT_RESPONSE_CANCEL) { DestroyDynamicObject(PlayerData[playerid][pXMRObject]); PlayerData[playerid][pAddingXMR] = false; } printf("pAddXMR called for %s.", ReturnName(playerid)); } else if (PlayerData[playerid][pEditingDuplicate]){ if(response == EDIT_RESPONSE_FINAL) { SendClientMessage(playerid, COLOR_ADM, "[ ! ]{FFFFFF} You duplicated and saved a new furniture to your home."); AddFurniture(playerid, IsPlayerInProperty(playerid), FurnitureData[FurnitureSelectHolderArr[playerid]][furnituresName], FurnitureData[FurnitureSelectHolderArr[playerid]][furnituresModel], x, y, z, rx, ry, rz); DestroyDynamicObject(PlayerData[playerid][pFurnitureDuplicate]); GiveMoney(playerid, -100); PlayerData[playerid][pEditingFurniture] = false; PlayerData[playerid][pEditingDuplicate] = false; PlayerData[playerid][pFurnitureDuplicate] = INVALID_OBJECT_ID; } else if(response == EDIT_RESPONSE_CANCEL) { DestroyDynamicObject(PlayerData[playerid][pFurnitureDuplicate]); PlayerData[playerid][pEditingDuplicate] = false; PlayerData[playerid][pEditingFurniture] = false; PlayerData[playerid][pFurnitureDuplicate] = INVALID_OBJECT_ID; } printf("pEditingDuplicate called for %s.", ReturnName(playerid)); } else if (PlayerData[playerid][pEditingFurniture]){ if(response == EDIT_RESPONSE_FINAL) { new query[400], id = FurnitureSelectHolderArr[playerid]; FurnitureData[id][furniturePos][0] = x; FurnitureData[id][furniturePos][1] = y; FurnitureData[id][furniturePos][2] = z; FurnitureData[id][furnitureRot][0] = rx; FurnitureData[id][furnitureRot][1] = ry; FurnitureData[id][furnitureRot][2] = rz; SetDynamicObjectPos(FurnitureData[id][furnitureObject], x, y, z); SetDynamicObjectRot(FurnitureData[id][furnitureObject], rx, ry, rz); mysql_format(m_Handle, query, sizeof(query), "UPDATE furniture SET PosX = %f, PosY = %f, PosZ = %f, RotX = %f, RotY = %f, RotZ = %f WHERE id = %d", x, y, z, rx, ry, rz, FurnitureData[FurnitureSelectHolderArr[playerid]][furnitureSQLID]); mysql_pquery(m_Handle, query); SendClientMessage(playerid, COLOR_ADM, "[ ! ]{FFFFFF} Your properties furniture was changed."); PlayerData[playerid][pEditingFurniture] = false; PlayerData[playerid][pEditingDuplicate] = false; } else if(response == EDIT_RESPONSE_CANCEL){ new i = FurnitureSelectHolderArr[playerid]; SetDynamicObjectPos(FurnitureData[i][furnitureObject], FurnitureData[i][furniturePos][0], FurnitureData[i][furniturePos][1], FurnitureData[i][furniturePos][2]); SetDynamicObjectRot(FurnitureData[i][furnitureObject], FurnitureData[i][furnitureRot][0], FurnitureData[i][furnitureRot][1], FurnitureData[i][furnitureRot][2]); PlayerData[playerid][pEditingFurniture] = false; PlayerData[playerid][pEditingDuplicate] = false; } printf("pEditingFurniture called for %s.", ReturnName(playerid)); } else if (PlayerData[playerid][pEditingXMR]) { new id = IsPlayerInProperty(playerid); if(response == EDIT_RESPONSE_FINAL) { PropertyData[id][propertyXMRPos][0] = x; PropertyData[id][propertyXMRPos][1] = y; PropertyData[id][propertyXMRPos][2] = z; PropertyData[id][propertyXMRRot][0] = rx; PropertyData[id][propertyXMRRot][1] = ry; PropertyData[id][propertyXMRRot][2] = rz; SetDynamicObjectPos(PropertyData[id][propertyXMRObject], x, y, z); SetDynamicObjectRot(PropertyData[id][propertyXMRObject], rx, ry, rz); SendClientMessage(playerid, COLOR_ADM, "[ ! ]{FFFFFF} Your properties XMR was changed."); PlayerData[playerid][pEditingXMR] = false; } else if(response == EDIT_RESPONSE_CANCEL) { PlayerData[playerid][pEditingXMR] = false; SetDynamicObjectPos(PropertyData[id][propertyXMRObject], PropertyData[id][propertyXMRPos][0], PropertyData[id][propertyXMRPos][1], PropertyData[id][propertyXMRPos][2]); SetDynamicObjectRot(PropertyData[id][propertyXMRObject], PropertyData[id][propertyXMRRot][0], PropertyData[id][propertyXMRRot][1], PropertyData[id][propertyXMRRot][2]); } printf("pEditingXMR called for %s.", ReturnName(playerid)); } else if (EditingBoombox[playerid]) { new id = EditingBoombox[playerid]; if (response == EDIT_RESPONSE_FINAL) { SetDynamicObjectPos(BoomboxData[id][boomboxObject], x, y, z); SetDynamicObjectRot(BoomboxData[id][boomboxObject], rx, ry, rz); if(IsValidDynamicArea(BoomboxData[id][boomboxArea])) DestroyDynamicArea(BoomboxData[id][boomboxArea]); BoomboxData[id][boomboxArea] = CreateDynamicCircle(x, y, 30.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)); BoomboxData[id][boomboxPos][0] = x; BoomboxData[id][boomboxPos][1] = y; BoomboxData[id][boomboxPos][2] = z; BoomboxData[id][boomboxRot][0] = rx; BoomboxData[id][boomboxRot][1] = ry; BoomboxData[id][boomboxRot][2] = rz; SendClientMessage(playerid, COLOR_DARKGREEN, "/setstation to change your boombox's station!"); EditingBoombox[playerid] = false; } else if (response == EDIT_RESPONSE_CANCEL) { EditingBoombox[playerid] = false; SetDynamicObjectPos(BoomboxData[id][boomboxObject], BoomboxData[id][boomboxPos][0], BoomboxData[id][boomboxPos][1], BoomboxData[id][boomboxPos][2]); SetDynamicObjectRot(BoomboxData[id][boomboxObject], BoomboxData[id][boomboxRot][0], BoomboxData[id][boomboxRot][1], BoomboxData[id][boomboxRot][2]); } printf("pEditingBoombox called for %s.", ReturnName(playerid)); } else if (PlayerData[playerid][pPlacingMeal]) { if (response == EDIT_RESPONSE_CANCEL) { PlayerData[playerid][pPlacingMeal] = false; PlayerData[playerid][pCarryingMeal] = false; DestroyDynamicObject(MealMenu[playerid][mealObject]); MealMenu[playerid][mealExists] = false; MealMenu[playerid][mealPlaced] = false; SendNearbyMessage(playerid, 20.0, COLOR_EMOTE, "* %s throws their meal away.", ReturnName(playerid, 0)); } else if (response == EDIT_RESPONSE_FINAL) { MealMenu[playerid][mealPos][0] = x; MealMenu[playerid][mealPos][1] = y; MealMenu[playerid][mealPos][2] = z; MealMenu[playerid][mealRot][0] = rx; MealMenu[playerid][mealRot][1] = ry; MealMenu[playerid][mealRot][2] = rz; SetDynamicObjectPos(MealMenu[playerid][mealObject], x, y, z); SetDynamicObjectRot(MealMenu[playerid][mealObject], rx, ry, rz); SendClientMessage(playerid, COLOR_ADM, "[ ! ]{FFFFFF} Use /meal pickup to get your meal back!"); MealMenu[playerid][mealPlaced] = true; } printf("pPlacingMeal called for %s.", ReturnName(playerid)); } else if(PlayerAddingObject[playerid]) { if(response == EDIT_RESPONSE_CANCEL) { PlayerAddingObject[playerid] = 0; DestroyDynamicObject(PlayerSpawnObject[playerid]); SendClientMessage(playerid, COLOR_GOLD, "* You cancelled your mapping."); printf("[DEBUG] Admin %s cancelled their Object (/map)", ReturnName(playerid)); } else if(response == EDIT_RESPONSE_FINAL) { PlayerAddingObject[playerid] = 0; DestroyDynamicObject(PlayerSpawnObject[playerid]); new query[356]; mysql_format(m_Handle, query, sizeof(query), "INSERT INTO objects (model_id, PosX, PosY, PosZ, RotX, RotY, RotZ, Interior, World) VALUES(%i, %f, %f, %f, %f, %f, %f, %i, %i)", PlayerAddingModel[playerid], x, y, z, rx, ry, rz, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); mysql_tquery(m_Handle, query, "OnMappingAdded", "iffffff", playerid, x, y, z, rx, ry, rz); } printf("pAddingMap called for %s.", ReturnName(playerid)); } else if(PlayerEditingObject[playerid]) { new id = PlayerEditingID[playerid]; if(response == EDIT_RESPONSE_CANCEL) { SetDynamicObjectPos(ObjectData[id][Object], ObjectData[id][Object_PosX], ObjectData[id][Object_PosY], ObjectData[id][Object_PosZ]); SetDynamicObjectRot(ObjectData[id][Object], ObjectData[id][Object_RotX], ObjectData[id][Object_RotY], ObjectData[id][Object_RotZ]); PlayerEditingObject[playerid] = 0; PlayerEditingID[playerid] = 0; SendClientMessage(playerid, COLOR_GOLD, "* You cancelled your editing."); } else if(response == EDIT_RESPONSE_FINAL) { SetDynamicObjectPos(ObjectData[id][Object], x, y, z); SetDynamicObjectRot(ObjectData[id][Object], rx, ry, rz); PlayerEditingObject[playerid] = 0; PlayerEditingID[playerid] = 0; new query[256]; mysql_format(m_Handle, query, sizeof(query), "UPDATE objects SET PosX = %f, PosY = %f, PosZ = %f, RotX = %f, RotY = %f, RotZ = %f WHERE id = %i", x, y, z, rx, ry, rz, ObjectData[id][ObjectDBID]); mysql_tquery(m_Handle, query, "OnMappingEdited", "iiffffff", playerid, id, x, y, z, rx, ry, rz); } printf("pEditingMap called for %s.", ReturnName(playerid)); } else if(PlayerEditingOpen[playerid]) { new id = PlayerEditingID[playerid]; if(response == EDIT_RESPONSE_CANCEL) { SetDynamicObjectPos(ObjectData[id][Object], ObjectData[id][Object_PosX], ObjectData[id][Object_PosY], ObjectData[id][Object_PosZ]); SetDynamicObjectRot(ObjectData[id][Object], ObjectData[id][Object_RotX], ObjectData[id][Object_RotY], ObjectData[id][Object_RotZ]); PlayerEditingOpen[playerid] = 0; PlayerEditingID[playerid] = 0; SendClientMessage(playerid, COLOR_GOLD, "* You cancelled your editing."); } else if(response == EDIT_RESPONSE_FINAL) { new query[256]; PlayerEditingOpen[playerid] = 0; PlayerEditingID[playerid] = 0; mysql_format(m_Handle, query, sizeof(query), "UPDATE objects SET OpenX = %f, OpenY = %f, OpenZ = %f, OpenRotX = %f, OpenRotY = %f, OpenRotZ = %f WHERE id = %i", x, y, z, rx, ry, rz, ObjectData[id][ObjectDBID]); mysql_tquery(m_Handle, query, "OnMappingEditedEx", "iiffffff", playerid, id, x, y, z, rx, ry, rz); } printf("pEditingMapOpen called for %s.", ReturnName(playerid)); } else if(PlayerData[playerid][pAddingRoadblock]) { if(response == EDIT_RESPONSE_CANCEL) { DestroyDynamicObject(PlayerData[playerid][pRoadblockObject]); PlayerData[playerid][pAddingRoadblock] = 0; } else if(response == EDIT_RESPONSE_FINAL) { new id = -1, str[128]; for(new i = 0; i < sizeof(Roadblocks); i++) { if(Roadblocks[i][RoadblockExists]) continue; id = i; break; } if(id == -1) { SendClientMessage(playerid, COLOR_WHITE, "SERVER: It looks like you can't spawn this anymore."); DestroyDynamicObject(PlayerData[playerid][pRoadblockObject]); PlayerData[playerid][pAddingRoadblock] = 0; return 1; } DestroyDynamicObject(PlayerData[playerid][pRoadblockObject]); format(str, sizeof(str), "** HQ: %s %s added a '%s' at %s! **", ReturnRank(playerid), ReturnName(playerid, 0), GetRoadblockNameFromModel(PlayerData[playerid][pRoadblockModel]), ReturnLocation(playerid)); SendLawMessage(COLOR_COP, str); format(Roadblocks[id][RoadblockLocation], 40, "%s", ReturnLocation(playerid)); format(Roadblocks[id][RoadblockPlacedBy], 34, "%s", ReturnName(playerid)); Roadblocks[id][RoadblockExists] = true; Roadblocks[id][RoadblocksModelID] = PlayerData[playerid][pRoadblockModel]; if(PlayerData[playerid][pRoadblockModel] == 2892 || PlayerData[playerid][pRoadblockModel] == 2899) Roadblocks[id][RoadblockSpikes] = true; Roadblocks[id][RoadblockPos][0] = x; Roadblocks[id][RoadblockPos][1] = y; Roadblocks[id][RoadblockPos][2] = z; Roadblocks[id][RoadblockObject] = CreateDynamicObject(PlayerData[playerid][pRoadblockModel], x, y, z, rx, ry, rz, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)); Roadblocks[id][RoadblockWorld] = GetPlayerVirtualWorld(playerid); Roadblocks[id][RoadblockInterior] = GetPlayerInterior(playerid); PlayerData[playerid][pAddingRoadblock] = 0; PlayerData[playerid][pRoadblockModel] = 0; } printf("pEditingRoadblock called for %s.", ReturnName(playerid)); } else if(PlayerPlacingWeapon[playerid]) { new bool:CanPlace = true, Float:VehiclePos[3]; if(response == EDIT_RESPONSE_UPDATE) { GetVehiclePos(PlayerPlacingInVehicle[playerid], VehiclePos[0], VehiclePos[1], VehiclePos[2]); if(IsPointNearPoint(x, y, z, VehiclePos[0], VehiclePos[1], VehiclePos[2], 4)) { CanPlace = true; } else { CanPlace = false; SendClientMessage(playerid, COLOR_ADM, "INFO: Your object is out of bound from the vehicle!"); } } else if(response == EDIT_RESPONSE_CANCEL) { GivePlayerWeapon(playerid, PlayerPlacingWeaponID[playerid], PlayerPlacingWeaponAmmo[playerid]); if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER && PlayerPlacingWeaponID[playerid] == 24) SetPlayerArmedWeapon(playerid, 0); DestroyDynamicObject(CarData[ PlayerPlacingInVehicle[playerid] ][carWeaponObject][ PlayerPlacingWeaponSlot[playerid] ]); PlayerPlacingWeapon[playerid] = 0; PlayerPlacingWeaponID[playerid] = 0; PlayerPlacingWeaponAmmo[playerid] = 0; SlotBeingUsed[ PlayerPlacingInVehicle[playerid] ][ PlayerPlacingWeaponSlot[playerid] ] = 0; PlayerPlacingWeaponSlot[playerid] = 0; PlayerPlacingInVehicle[playerid] = 0; SendClientMessage(playerid, COLOR_ADM, "INFO: Your weapon has been returned."); } else if(response == EDIT_RESPONSE_FINAL) { new Float:Offset[4], Float:ofx, Float:ofy, Float:ofz, Float:ofaz, Float:finalx, Float:finaly, Float:px, Float:py, Float:pz, Float:roz; GetVehiclePos(PlayerPlacingInVehicle[playerid], VehiclePos[0], VehiclePos[1], VehiclePos[2]); if(IsPointNearPoint(x, y, z, VehiclePos[0], VehiclePos[1], VehiclePos[2], 4)) CanPlace = true; else CanPlace = false; if(!CanPlace) { SendClientMessage(playerid, COLOR_ADM, "INFO: Your weapon was out of bound and set to a default position."); Offset[0] = 0.0; Offset[1] = 0.0; Offset[2] = 0.0; Offset[3] = 0.0; /*x = 0.0; y = 0.0; z = 0.0;*/ } else { GetVehiclePos(PlayerPlacingInVehicle[playerid], px, py, pz); GetVehicleZAngle(PlayerPlacingInVehicle[playerid], roz); ofx = x-px; ofy = y-py; ofz = z-pz; ofaz = rz-roz; finalx = ofx*floatcos(roz, degrees)+ofy*floatsin(roz, degrees); finaly = -ofx*floatsin(roz, degrees)+ofy*floatcos(roz, degrees); Offset[0] = finalx; Offset[1] = finaly; Offset[2] = ofz; Offset[3] = ofaz; } new slot_id = PlayerPlacingWeaponSlot[playerid], vehicleid = PlayerPlacingInVehicle[playerid], insert_query[230], string[128]; CarData[vehicleid][carWeapons][slot_id] = PlayerPlacingWeaponID[playerid]; CarData[vehicleid][carWeaponsAmmo][slot_id] = PlayerPlacingWeaponAmmo[playerid]; TakePlayerWeapon(playerid, PlayerPlacingWeaponID[playerid]); DestroyDynamicObject(CarData[vehicleid][carWeaponObject][slot_id]); CarData[vehicleid][carWeaponObject][slot_id] = CreateDynamicObject(ReturnWeaponsModel(PlayerPlacingWeaponID[playerid]), 0.0, 0.0, 0.0, rx, ry, Offset[3], GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)); AttachDynamicObjectToVehicle(CarData[vehicleid][carWeaponObject][slot_id], vehicleid, Offset[0], Offset[1], Offset[2], rx, ry, Offset[3]); Message(playerid, COLOR_ADM, "You've placed a {FFFFFF}%s{FF6347} with {FFFFFF}%d Ammo{FF6347} in this %s.", ReturnWeaponName(PlayerPlacingWeaponID[playerid]), PlayerPlacingWeaponAmmo[playerid], ReturnVehicleName(vehicleid)); format(string, sizeof(string), "* %s stores a %s in the %s.", ReturnName(playerid, 0), ReturnWeaponName(PlayerPlacingWeaponID[playerid]), ReturnVehicleName(vehicleid)); SetPlayerChatBubble(playerid, string, COLOR_EMOTE, 20.0, 2000); format(string, sizeof(string), "%s put a %s[%d] (slot %d)", ReturnName(playerid), ReturnWeaponName(PlayerPlacingWeaponID[playerid]), PlayerPlacingWeaponAmmo[playerid], slot_id); LogVehicleAction(vehicleid, string); WriteLog("weapon_logs/vehicle_place.txt", "[%s] %s (DBID: %i) placed %s (Ammo: %i) in Vehicle DBID %i", ReturnDate(), ReturnName(playerid), PlayerData[playerid][pSQLID], ReturnWeaponName(PlayerPlacingWeaponID[playerid]), PlayerPlacingWeaponAmmo[playerid], CarData[vehicleid][carID]); SaveCar(vehicleid); switch(PlayerPlacingWeaponSlot[playerid]) { case 1: mysql_format(m_Handle, insert_query, sizeof(insert_query), "UPDATE ownedcars SET Weapon1PosX = %f, Weapon1PosY = %f, Weapon1PosZ = %f, Weapon1RotX = %f, Weapon1RotY = %f, Weapon1RotZ = %f WHERE id = %i", Offset[0], Offset[1], Offset[2], rx, ry, Offset[3], CarData[vehicleid][carID]); case 2: mysql_format(m_Handle, insert_query, sizeof(insert_query), "UPDATE ownedcars SET Weapon2PosX = %f, Weapon2PosY = %f, Weapon2PosZ = %f, Weapon2RotX = %f, Weapon2RotY = %f, Weapon2RotZ = %f WHERE id = %i", Offset[0], Offset[1], Offset[2], rx, ry, Offset[3], CarData[vehicleid][carID]); case 3: mysql_format(m_Handle, insert_query, sizeof(insert_query), "UPDATE ownedcars SET Weapon3PosX = %f, Weapon3PosY = %f, Weapon3PosZ = %f, Weapon3RotX = %f, Weapon3RotY = %f, Weapon3RotZ = %f WHERE id = %i", Offset[0], Offset[1], Offset[2], rx, ry, Offset[3], CarData[vehicleid][carID]); case 4: mysql_format(m_Handle, insert_query, sizeof(insert_query), "UPDATE ownedcars SET Weapon4PosX = %f, Weapon4PosY = %f, Weapon4PosZ = %f, Weapon4RotX = %f, Weapon4RotY = %f, Weapon4RotZ = %f WHERE id = %i", Offset[0], Offset[1], Offset[2], rx, ry, Offset[3], CarData[vehicleid][carID]); } mysql_tquery(m_Handle, insert_query); PlayerPlacingWeapon[playerid] = 0; PlayerPlacingWeaponID[playerid] = 0; PlayerPlacingWeaponAmmo[playerid] = 0; SlotBeingUsed[vehicleid][slot_id] = 0; PlayerPlacingWeaponSlot[playerid] = 0; PlayerPlacingInVehicle[playerid] = 0; } } else if(GetPVarInt(playerid, "EditingCrateToVehicle") > 0) { new bool:CanPlace = true, Float:VehiclePos[3]; new crate; crate = GetPVarInt(playerid, "EditingCrateID"); if(response == EDIT_RESPONSE_CANCEL) { DestroyDynamicObject(WeaponCrates[crate][CrateObject]); PlayAnimation(playerid, "MISC", "pickup_box", 4.1, 0, 0, 0, 0, 0, 1); new attach; attach = FreeAttachmentSlot(playerid); if(attach == -1) { SendClientMessage(playerid, COLOR_YELLOW, "You ran out of space to carry this."); new Float:Pos[3]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); WeaponCrates[crate][CrateObject] = CreateDynamicObject(2912, Pos[0], Pos[1], Pos[2]-1, 0.0, 0.0, 0.0); new label[60]; format(label, sizeof label, "%s", ReturnFactionName(WeaponCrates[crate][CrateFaction])); WeaponCrates[crate][CrateLabel] = CreateDynamic3DTextLabel(label, COLOR_YELLOW, Pos[0], Pos[1], Pos[2]-1, 20.0); WeaponCrates[crate][CrateAttachedTo] = -1; WeaponCrates[crate][CrateVehicle] = -1; return 1; } SetTimerEx("PickupBox", 1000, false, "ii", playerid, attach); WeaponCrates[crate][CrateAttachedTo] = playerid; DeletePVar(playerid, "EditingCrateID"); DeletePVar(playerid, "EditingCrateVehicleID"); DeletePVar(playerid, "EditingCrateToVehicle"); } else if(response == EDIT_RESPONSE_UPDATE) { GetVehiclePos(GetPVarInt(playerid, "EditingCrateVehicleID"), VehiclePos[0], VehiclePos[1], VehiclePos[2]); if(IsPointNearPoint(x, y, z, VehiclePos[0], VehiclePos[1], VehiclePos[2], 6)) { CanPlace = true; } else { CanPlace = false; SendClientMessage(playerid, COLOR_ADM, "INFO: Your object is out of bound from the vehicle!"); } } else if(response == EDIT_RESPONSE_FINAL) { new Float:Offset[4], Float:ofx, Float:ofy, Float:ofz, Float:ofaz, Float:finalx, Float:finaly, Float:px, Float:py, Float:pz, Float:roz ; new vehicleid; vehicleid = GetPVarInt(playerid, "EditingCrateVehicleID"); GetVehiclePos(vehicleid, VehiclePos[0], VehiclePos[1], VehiclePos[2]); if(IsPointNearPoint(x, y, z, VehiclePos[0], VehiclePos[1], VehiclePos[2], 6)) CanPlace = true; else CanPlace = false; if(!CanPlace) { SendClientMessage(playerid, COLOR_ADM, "INFO: Your object was out of bound and set to a default position."); Offset[0] = 0.0; Offset[1] = 0.0; Offset[2] = 0.0; Offset[3] = 0.0; /*x = 0.0; y = 0.0; z = 0.0;*/ } else { GetVehiclePos(vehicleid, px, py, pz); GetVehicleZAngle(vehicleid, roz); ofx = x-px; ofy = y-py; ofz = z-pz; ofaz = rz-roz; finalx = ofx*floatcos(roz, degrees)+ofy*floatsin(roz, degrees); finaly = -ofx*floatsin(roz, degrees)+ofy*floatcos(roz, degrees); Offset[0] = finalx; Offset[1] = finaly; Offset[2] = ofz; Offset[3] = ofaz; } DestroyDynamicObject(WeaponCrates[crate][CrateObject]); WeaponCrates[crate][CrateObject] = CreateDynamicObject(2912, 0.0, 0.0, 0.0, rx, ry, Offset[3]); AttachDynamicObjectToVehicle(WeaponCrates[crate][CrateObject], vehicleid, Offset[0], Offset[1], Offset[2], rx, ry, Offset[3]); cmd_me(playerid, "puts the crate into the vehicle."); WeaponCrates[crate][CrateAttachedTo] = -1; WeaponCrates[crate][CrateVehicle] = vehicleid; SendClientMessage(playerid, COLOR_YELLOW, "You loaded the crate into your vehicle."); SendClientMessage(playerid, COLOR_YELLOW, "Take it to a discrete location to unload the packages."); DeletePVar(playerid, "EditingCrateID"); DeletePVar(playerid, "EditingCrateVehicleID"); DeletePVar(playerid, "EditingCrateToVehicle"); } } else if (PlayerData[playerid][pAdjustPackage] != -1) { if (response == EDIT_RESPONSE_FINAL || response == EDIT_RESPONSE_CANCEL) { new id = PlayerData[playerid][pAdjustPackage], house_id = IsPlayerInProperty(playerid); if (response == EDIT_RESPONSE_FINAL) { new query[200]; HousePackages[house_id][id][packagePos][0] = x; HousePackages[house_id][id][packagePos][1] = y; HousePackages[house_id][id][packagePos][2] = z; HousePackages[house_id][id][packagePos][3] = rx; HousePackages[house_id][id][packagePos][4] = ry; HousePackages[house_id][id][packagePos][5] = rz; mysql_format(m_Handle, query, sizeof(query), "UPDATE house_packages SET posX = %.3f, posY = %.3f, posZ = %.3f, rotX = %.3f, rotY = %.3f, rotZ = %.3f WHERE housesqlid = %d AND id = %d", x, y, z, rx, ry, rz, PropertyData[house_id][propertyid], id); mysql_tquery(m_Handle, query); } DestroyDynamicObject(HousePackages[house_id][id][packageObject]); HousePackages[house_id][id][packageObject] = CreateDynamicObject(GetPackageModel(HousePackages[house_id][id][packageType]), HousePackages[house_id][id][packagePos][0], HousePackages[house_id][id][packagePos][1], HousePackages[house_id][id][packagePos][2], HousePackages[house_id][id][packagePos][3], HousePackages[house_id][id][packagePos][4], HousePackages[house_id][id][packagePos][5], PropertyData[house_id][propertyInteriorWorld], PropertyData[house_id][propertyInteriorID]); PlayerData[playerid][pAdjustPackage] = -1; } } return true; } public OnPlayerDisconnect(playerid, reason) { printf("[CONNECTION] %s (DBID: %d) disconnected.", ReturnName(playerid, 1), PlayerData[playerid][pSQLID]); new string[128]; if(PlayerTutorialStep[playerid] != 0) KillTimer(PlayerTutorialTimer[playerid]); if(pLoggedIn[playerid]) { switch(reason) { case 0: { format(string, sizeof(string), "** %s (Connection lost)", ReturnName(playerid, 1)); SaveSQLInt(PlayerData[playerid][pSQLID], "players", "Crashed", 1); PlayerData[playerid][pCrashed] = 1; if(PlayerData[playerid][pLAWduty] || PlayerData[playerid][pSWATduty]) { new thr[128]; PlayerData[playerid][pSkin] = GetPlayerSkin(playerid); mysql_format(m_Handle, thr, sizeof(thr), "UPDATE players SET Crashed = 1, pCrashTime = %i, pCopDuty = %i, pSWATDuty = %i WHERE id = %i", gettime(), PlayerData[playerid][pLAWduty], PlayerData[playerid][pSWATduty], PlayerData[playerid][pSQLID]); mysql_tquery(m_Handle, thr); } } case 1: format(string, sizeof(string), "** %s (Quit)", ReturnName(playerid, 1)); case 2: format(string, sizeof(string), "** %s (Kicked)", ReturnName(playerid, 1)); } SendNearbyMessage(playerid, 20.0, COLOR_WHITE, string); if(reason == 1) { LogPlayerAction(playerid, "Disconnected by Quitting"); } if(gOpeningCrate[playerid] != -1) { KillTimer(gOpeningCrateTimer[playerid]); WeaponCrates[ gOpeningCrate[playerid] ][CrateBeingOpened] = 0; for(new i; i < 3; i++) gOpeningCratePos[playerid][i] = 0.0; gOpeningCrate[playerid] = -1; } if(PlayerData[playerid][pInsidePNS]) { new PNSvehicleid = GetPVarInt(playerid, "InsidePNSVehicle"); new ppns = PlayerData[playerid][pInsidePNS]; SetVehiclePos(PNSvehicleid, PNSData[ppns][pnsEntrance][0], PNSData[ppns][pnsEntrance][1], PNSData[ppns][pnsEntrance][2]); PNSData[ppns][pnsOccupied] = false; } if(gShowingTextDrawInfo[playerid]) KillTimer(gShowingTextDrawTimer[playerid]); foreach(new i : Player) { if(PlayerData[i][pSpectator] == playerid) { format(string, sizeof(string), "SERVER: The player you were spectating (%s) disconnected from the server.", ReturnName(playerid, 1)); SendClientMessage(i, COLOR_YELLOW, string); TogglePlayerSpectating(playerid, false); ShowSpectatorTextdraw(playerid, true); } if(VehicleOfferBy[i] == playerid) { Message(i, COLOR_ACTION, "SERVER: The player (%s) who offered to sell you a vehicle disconnected.", ReturnName(playerid)); VehicleOfferBy[i] = INVALID_PLAYER_ID; VehiclePrice[i] = 0; VehicleDBIDOffered[i] = 0; } if(VehicleOfferedTo[i] == playerid) { Message(i, COLOR_ACTION, "SERVER: The player (%s) you offered a vehicle to disconnected.", ReturnName(playerid)); VehicleOfferedTo[i] = INVALID_PLAYER_ID; VehiclePrice[i] = 0; VehicleDBIDOffered[i] = 0; } } if(PlayerRefilling[playerid]) { KillTimer(RefillTimer[playerid]); DestroyDynamic3DTextLabel(RefillTextdraw[playerid]); } if(IsValidDynamic3DTextLabel(vehicleTextdraw[playerid])) { DestroyDynamic3DTextLabel(vehicleTextdraw[playerid]); } if(IsValidDynamic3DTextLabel(BreakInTextDraw[playerid])) { DestroyDynamic3DTextLabel(BreakInTextDraw[playerid]); KillTimer(BreakInTDTimer[playerid]); } if(g_aVehicleSpawned[playerid] != 0) { if(IsValidVehicle(g_aVehicleSpawned[playerid]) && !IsValidPlayerCar(g_aVehicleSpawned[playerid]) && !IsValidFactionCar(g_aVehicleSpawned[playerid])){ DestroyVehicle(g_aVehicleSpawned[playerid]); } } if(PlayerData[playerid][pBrutallyWounded]){ GetPlayerPos(playerid, PlayerData[playerid][pPos][0], PlayerData[playerid][pPos][1], PlayerData[playerid][pPos][2]); } for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++){ if(IsPlayerAttachedObjectSlotUsed(playerid, i)){ RemovePlayerAttachedObject(playerid, i); } } if(PlayerData[playerid][pLAWduty] || PlayerData[playerid][pSWATduty] && reason != 0) SetPlayerArmour(playerid, 0.0); if(InTaxiRide[playerid]) { foreach(new i : Player) if(PlayerData[i][pSQLID] == TaxiDriver[playerid]) { SendClientMessage(i, COLOR_YELLOW, "-> A person in your taxi disconnected. You were compensated regardless."); } EndTaxiFair(playerid); } if(PlayerData[playerid][pICJailed]) { DestroyDynamic3DTextLabel(PlayerData[playerid][pICJail3D]); TotalJailees--; } foreach (new i : Player) { if(CanPMAdmin[i][playerid] == 1) { CanPMAdmin[i][playerid] = 0; } if(WatchingDamages[i][playerid] == 1) { WatchingDamages[i][playerid] = 0; Message(playerid, COLOR_ADM, "Player %s(%i) whos damages you were watching disconnected.", ReturnName(playerid), playerid); } } if(PlayerData[playerid][pLegShot]) KillTimer(LegShotTimer[playerid]); if(StartedTruckerMission[playerid]) { EndTruckerMission(playerid); } KillTimer(DisplayTimer[playerid]); KillTimer(graffitiTimer[playerid]); KillTimer(graffitiTimerEx[playerid]); KillTimer(MechanicCallTimer[playerid]); KillTimer(TaxiCallTimer[playerid]); KillTimer(TruckerJobExitTimer[playerid]); KillTimer(TrailerTimer[playerid]); KillTimer(TruckerJobDeliverTimer[playerid]); KillTimer(TruckerJobTimer[playerid]); KillTimer(PlayerData[playerid][pUnscrambleTimer]); KillTimer(GraffitiExitTimer[playerid]); if(PlayerData[playerid][pUnscrambling]) { KillTimer(PlayerData[playerid][pUnscrambleTimer]); } if(OrderedWeapon[playerid] || WeaponOrderPrompt[playerid] > 0) KillTimer(WeaponOrderTimer[playerid]); if(PlayerPlacingWeapon[playerid]) { PlayerPlacingWeapon[playerid] = 0; PlayerPlacingWeaponID[playerid] = 0; PlayerPlacingWeaponAmmo[playerid] = 0; SlotBeingUsed[ PlayerPlacingInVehicle[playerid] ][ PlayerPlacingWeaponSlot[playerid] ] = 0; PlayerPlacingWeaponSlot[playerid] = 0; PlayerPlacingInVehicle[playerid] = 0; DestroyDynamicObject(CarData[ PlayerPlacingInVehicle[playerid] ][carWeaponObject][ PlayerPlacingWeaponSlot[playerid] ]); } phone_OnPlayerDisconnect(playerid); new playerTime = NetStats_GetConnectedTime(playerid); new secondsConnection = ((playerTime % (1000*60*60)) % (1000*60)) / 1000; format(PlayerData[playerid][pLastConnect], 60, "%s", ReturnDate()); PlayerData[playerid][pLastConnectTime] = secondsConnection; SavePlayer(playerid); DefaultPlayerValues(playerid); } return true; } public OnPlayerText(playerid, text[]) { new string[128]; PlayerData[playerid][pLastChat] = gettime(); format(string, sizeof(string), "Said: %s", text); LogPlayerChat(playerid, string); if(!pLoggedIn[playerid]) { SendClientMessage(playerid, COLOR_ADM, "ACCESS DENIED:{FFFFFF} You need to login first to type."); return 0; } if(GetPlayerTeam(playerid) != STATE_ALIVE) { SendClientMessage(playerid, COLOR_ADM, "You can't type when you're dead."); return 0; } if(PlayerData[playerid][pSpectator] != -1 || PlayerData[playerid][pSpecVehicle] != -1) { SendClientMessage(playerid, COLOR_ADM, "-> You can't type during spectator mode."); return 0; } if(PlayerData[playerid][pPhoneline] != INVALID_PLAYER_ID && !PlayerData[playerid][pCalling]) { if(PlayerData[playerid][pPhoneline] == 911) { if(strlen(text) > 90) { format(string, sizeof(string), "%s says (phone): %.90s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text[90]); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } else { format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } switch(PlayerData[playerid][p911Steps]) { case 0: { if(strfind(text, "Police", true) != -1 || strfind(text, "Cops", true) != -1 || strfind(text, "Law enforcement", true) != -1) { SendClientMessage(playerid, COLOR_YELLOW, "Dispatch says: You're being transferred to the police department. Please state your emergency."); PlayerData[playerid][p911Steps] = 1; } else if(strfind(text, "Medics", true) != -1 || strfind(text, "Paramedics", true) != -1 || strfind(text, "Ambulance", true) != -1 || strfind(text, "Fire", true) != -1) { SendClientMessage(playerid, COLOR_YELLOW, "Dispatch says: You're being transferred over to medical units now. What's the emergency?"); PlayerData[playerid][p911Steps] = 2; } else SendClientMessage(playerid, COLOR_YELLOW, "Dispatch says: Sorry, I didn't hear that. Please repeat what service you require."); } case 1: // Police forward; { if(strlen(text) < 1) return SendClientMessage(playerid, COLOR_ADM, "-> You need actual text to continue."); format(PlayerData[playerid][p911Text], 128, "%s", text); PlayerData[playerid][p911Steps] = 5; SendClientMessage(playerid, COLOR_YELLOW, "Dispatch says: Can you tell me your location?"); } case 2: // Medic forward; { if(strlen(text) < 1) return SendClientMessage(playerid, COLOR_ADM, "-> You need actual text to continue."); format(PlayerData[playerid][p911Text], 128, "%s", text); PlayerData[playerid][p911Steps] = 10; SendClientMessage(playerid, COLOR_YELLOW, "Dispatch says: Can you tell me your location?"); } case 5: // Police; { if(strlen(text) < 1) return SendClientMessage(playerid, COLOR_ADM, "-> You need actual text to continue."); format(PlayerData[playerid][p911Location], 128, "%s", text); SendClientMessage(playerid, COLOR_YELLOW, "Dispatch says: Police units have been notified."); Send911Message(playerid, 1); } case 10: // Medics; { if(strlen(text) < 1) return SendClientMessage(playerid, COLOR_ADM, "-> You need actual text to continue."); format(PlayerData[playerid][p911Location], 128, "%s", text); SendClientMessage(playerid, COLOR_YELLOW, "Dispatch says: Medical units have been notified."); Send911Message(playerid, 2); } } } else if(PlayerData[playerid][pPhoneline] == 788 && PlayerStolenCarPrompt[playerid] != 0) { if(strlen(text) > 90) { format(string, sizeof(string), "%s says (phone): %.90s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text[90]); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } else { format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } switch(PlayerStolenCarPrompt[playerid]) { case 1: { if(strfind(text, "Yes", true) != -1 || strfind(text, "Affirmative", true) != -1 || strfind(text, "Mhm", true) != -1 || strfind(text, "Yeah", true) != -1) { PlayerStolenCarPrompt[playerid] = 2; SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Okay! Can you provide us with your vehicles license plate?"); } else if(strfind(text, "No", true) != -1 || strfind(text, "Nope", true) != -1 || strfind(text, "Negative", true) != -1) { PlayerStolenCarPrompt[playerid] = 10; SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Alright then! Would you like to be transferred to law enforcement or end the call?"); } else SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): I didn't understand that. Could you repeat it?"); } case 2: //"Yes" answer to prompt 1; { if(strlen(text) > 7) return SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): For now, please only provide your vehicles license plate."); else if(strlen(text) < 7) return SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Sorry, we need the entire plate for this to work."); format(PlayerStolenCarPlate[playerid], 32, "%s", text); PlayerStolenCarPrompt[playerid] = 99; SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Please standby while we confirm the vehicles plates."); mysql_format(m_Handle, string, sizeof(string), "SELECT Plate, ModelID FROM ownedcars WHERE Plate = '%e'", text); mysql_tquery(m_Handle, string, "OnStolenCarPrompt", "i", playerid); } case 3: //Bad plate, end or try again: { if(strfind(text, "try", true) != -1 || strfind(text, "again", true) != -1 || strfind(text, "yes", true) != -1) { PlayerStolenCarPrompt[playerid] = 2; SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Okay! Can you provide us with your vehicles license plate again?"); } else if(strfind(text, "end", true) != -1 || strfind(text, "no", true) != -1 || strfind(text, "stop", true) != -1) { SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Okay!"); PlayerStolenCarPrompt[playerid] = 0; cmd_hangup(playerid, ""); } else SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Could you repeat that? I didn't catch that."); } case 4: { if(strfind(text, "confirm", true) != -1 || strfind(text, "confirmed", true) != -1 || strfind(text, "yes", true) != -1 || strfind(text, "correct", true) != -1) { PlayerStolenCarPrompt[playerid] = 99; SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Thank you for confirming! Please standby."); mysql_format(m_Handle, string, sizeof(string), "SELECT OwnerID FROM ownedcars WHERE Plate = '%e'", PlayerStolenCarPlate[playerid]); mysql_tquery(m_Handle, string, "OnStolenCarOwnedCheck", "i", playerid); } else if(strfind(text, "no", true) != -1 || strfind(text, "incorrect", true) != -1 || strfind(text, "unconfirm", true) != -1 || strfind(text, "wrong", true) != -1) { SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Okay! Please don't call back until your information is persist."); PlayerStolenCarPrompt[playerid] = 0; cmd_hangup(playerid, ""); } else SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Sorry, I didn't get that. Can you confirm these details are correct?"); } case 10: //"No" answer to prompt 1; { if(strfind(text, "Transfer", true) != -1 || strfind(text, "Transferred", true) != -1 || strfind(text, "law enforcement", true) != -1) { SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Please standby while we transfer you to a 911 operator."); PlayerStolenCarPrompt[playerid] = 0; PlayerData[playerid][pPhoneline] = 999; PlayerData[playerid][pCalling] = 2; PlayerPlaySound(playerid, 3600, 0.0, 0.0, 0.0); PlayerData[playerid][p911CallTimer][0] = SetTimerEx("CallingEmergencyServices", 2000, false, "i", playerid); } else if(strfind(text, "End the call", true) != -1 || strfind(text, "end", true) != -1 || strfind(text, "hangup", true) != -1) { SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Okay! Please don't call unless you would like to report a stolen vehicle."); PlayerStolenCarPrompt[playerid] = 0; cmd_hangup(playerid, ""); } else SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Would you like to hangup or be transferred? I didn't understand that."); } case 99: //Avoid spam for prompt 2; { SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Please standby!"); } } } else if(PlayerData[playerid][pPhoneline] == WEAPON_ORDER_NUMBER && !PlayerData[playerid][pCalling] && WeaponOrderPrompt[playerid] != 999) { if(strlen(text) > 90) { format(string, sizeof(string), "%s says (phone): %.90s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text[90]); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } else { format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } switch(WeaponOrderPrompt[playerid]) { case 1: { if(strfind(text, "Calling for weapons", true) != -1 || strfind(text, "Calling about weapons", true) != -1 || strfind(text, "weapons", true) != -1 || strfind(text, "weapon", true) != -1 || strfind(text, "firearms", true) != -1 || strfind(text, "gun", true) != -1 || strfind(text, "guns", true) != -1) { WeaponOrderPrompt[playerid] = 66; WeaponOrderTimer[playerid] = SetTimerEx("WeaponOrderPrompts", 2000, false, "ii", playerid, 1); } else { SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): You got the wrong number pal."); SendClientMessage(playerid, COLOR_GREY, "[ ! ] They hung up."); cmd_hangup(playerid, ""); WeaponOrderPrompt[playerid] = 0; } } case 2: //Choosing first weapon: { new bool:confirm = true; for(new i = 0; i < sizeof PossibleWeapons; i++) { if(strfind(text, PossibleWeapons[i][WeaponName], true) != -1) { WeaponOrdered[0][playerid] = PossibleWeapons[i][WeaponID]; format(WeaponOrderedName[0][playerid], 32, "%s", PossibleWeapons[i][WeaponName]); confirm = true; break; } else { confirm = false; } } if(!confirm) { SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): Talk to me when you're ready kid. We don't got that."); SendClientMessage(playerid, COLOR_GREY, "[ ! ] They hung up."); cmd_hangup(playerid, ""); WeaponOrderPrompt[playerid] = 0; } if(WeaponOrderPrompt[playerid] != 0) { WeaponOrderPrompt[playerid] = 66; WeaponOrderTimer[playerid] = SetTimerEx("WeaponOrderPrompts", 3000, false, "ii", playerid, 3); } } case 3: //Confirming first weapon: { if(strfind(text, "yes", true) != -1 || strfind(text, "yeah", true) != -1 || strfind(text, "correct", true) != -1 || strfind(text, "affirm", true) != -1 || strfind(text, "yah", true) != -1) { WeaponOrderPrompt[playerid] = 4; SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): That it or another one?"); } else { SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): Talk to me when you know what you want."); SendClientMessage(playerid, COLOR_GREY, "[ ! ] They hung up."); cmd_hangup(playerid, ""); WeaponOrderPrompt[playerid] = 0; } } case 4: //Finishing with first order or picking another one. { if(strfind(text, "another", true) != -1 || strfind(text, "one", true) != -1 || strfind(text, "another one", true) != -1 || strfind(text, "one more", true) != -1) { WeaponOrderPrompt[playerid] = 5; SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): Name it."); } else if(strfind(text, "thats it", true) != -1 || strfind(text, "that's it", true) != -1 || strfind(text, "that's all", true) != -1 || strfind(text, "thats all", true) != -1 || strfind(text, "that it", true) != -1 || strfind(text, "done", true) != -1) { WeaponOrderPrompt[playerid] = 10; SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): Hold on."); WeaponOrderTimer[playerid] = SetTimerEx("WeaponOrderPrompts", 6000, false, "ii", playerid, 6); } else { SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): Don't waste my time if you can't answer straight."); SendClientMessage(playerid, COLOR_GREY, "[ ! ] They hung up."); cmd_hangup(playerid, ""); WeaponOrderPrompt[playerid] = 0; } } case 5: //Second weapon: { new bool:confirm = false; for(new i = 0; i < sizeof PossibleWeapons; i++) { if(strfind(text, PossibleWeapons[i][WeaponName], true) != -1) { WeaponOrdered[1][playerid] = PossibleWeapons[i][WeaponID]; format(WeaponOrderedName[1][playerid], 32, "%s", PossibleWeapons[i][WeaponName]); confirm = true; break; } } if(!confirm) { SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): Talk to me when you're ready kid. We don't got that."); SendClientMessage(playerid, COLOR_GREY, "[ ! ] They hung up."); cmd_hangup(playerid, ""); WeaponOrderPrompt[playerid] = 0; } if(WeaponOrderPrompt[playerid] != 0) { WeaponOrderPrompt[playerid] = 66; WeaponOrderTimer[playerid] = SetTimerEx("WeaponOrderPrompts", 3000, false, "ii", playerid, 5); } } case 6: //Answering to second weapon: { if(strfind(text, "yes", true) != -1 || strfind(text, "yeah", true) != -1 || strfind(text, "correct", true) != -1 || strfind(text, "affirm", true) != -1 || strfind(text, "yah", true) != -1) { WeaponOrderPrompt[playerid] = 10; SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): OK. Hold on."); WeaponOrderTimer[playerid] = SetTimerEx("WeaponOrderPrompts", 6000, false, "ii", playerid, 7); } else { SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): Talk to me when you know what you want."); SendClientMessage(playerid, COLOR_GREY, "[ ! ] They hung up."); cmd_hangup(playerid, ""); WeaponOrderPrompt[playerid] = 0; } } case 10: { SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): I said hold on."); WeaponOrderStop[playerid]++; if(WeaponOrderStop[playerid] > 2) { SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): Fuck you too."); SendClientMessage(playerid, COLOR_GREY, "[ ! ] They hung up."); cmd_hangup(playerid, ""); WeaponOrderPrompt[playerid] = 0; } } case 11: //Confirmation; { if(strfind(text, "confirm", true) != -1 || strfind(text, "confirmed", true) != -1 || strfind(text, "correct", true) != -1 || strfind(text, "yes", true) != -1 || strfind(text, "yeah", true) != -1) { WeaponOrderPrompt[playerid] = 66; WeaponOrderTimer[playerid] = SetTimerEx("WeaponOrderPrompts", 5000, false, "ii", playerid, 10); } else { SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): Don't waste my time."); SendClientMessage(playerid, COLOR_GREY, "[ ! ] They hung up."); cmd_hangup(playerid, ""); WeaponOrderPrompt[playerid] = 0; } } case 66: { SendClientMessage(playerid, COLOR_YELLOW, "[Mask 424956_61] says (phone): *Static*"); } } } else if(PlayerData[playerid][pPhoneline] == TAXI_NUMBER && !PlayerData[playerid][pCalling] && TaxiStage[playerid] > 0) { if(strlen(text) > 90) { format(string, sizeof(string), "%s says (phone): %.90s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text[90]); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } else { format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } switch(TaxiStage[playerid]) { case 1: { if(strlen(text) < 1) return SendClientMessage(playerid, COLOR_ADM, "Enter some text first."); format(TaxiText[playerid][0], 128, "%s", text); SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Okay! Where are you right now?"); TaxiStage[playerid] = 2; } case 2: { if(strlen(text) < 1) return SendClientMessage(playerid, COLOR_ADM, "Enter some text first."); format(TaxiText[playerid][1], 128, "%s", text); SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Our taxi drivers have been notified. A taxi will be with you shortly."); foreach(new i : Player) { if(StartedTaxiJob[i]) { SendClientMessage(i, COLOR_YELLOW, "|_______________TAXI CALL_______________|"); Message(i, COLOR_YELLOW, "Caller:%s, Phone:%d", ReturnName(playerid, 0), ReturnPhoneNumber(playerid)); Message(i, COLOR_YELLOW, "Destination: %s", TaxiText[playerid][0]); Message(i, COLOR_YELLOW, "Location: %s", TaxiText[playerid][1]); } } cmd_hangup(playerid, ""); TaxiStage[playerid] = 0; for(new i = 0; i < 2; i++) format(TaxiText[playerid][i], 128, ""); } } } else if(PlayerData[playerid][pPhoneline] == MECHANIC_NUMBER && !PlayerData[playerid][pCalling]) { if(strlen(text) > 90) { format(string, sizeof(string), "%s says (phone): %.90s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text[90]); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } else { format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } SendClientMessage(playerid, COLOR_YELLOW, "Operator says (phone): Alright! We notified our best mechanic!"); foreach(new i : Player) { if(PlayerData[i][pJob] == MECHANIC_JOB || PlayerData[i][pSidejob] == MECHANIC_JOB) { Message(i, COLOR_ADM, "Mechanic Call from %s, Phone:%i", ReturnName(playerid, 0), ReturnPhoneNumber(playerid)); if(strlen(text) > 90) { Message(i, COLOR_ADM, "They said: {FFFFFF}%.90s...", text); Message(i, COLOR_ADM, "...%s", text[90]); } else Message(i, COLOR_ADM, "They said: {FFFFFF}%s", text); } } cmd_hangup(playerid, ""); } else if(PlayerData[playerid][pPhoneline] == 991 && !PlayerData[playerid][pCalling] && GetPVarInt(playerid, "NonEmergencyCall") > 0) { if(strlen(text) > 90) { format(string, sizeof(string), "%s says (phone): %.90s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text[90]); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } else { format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } SendClientMessage(playerid, COLOR_YELLOW, "991 Operator says (phone): Alright! We notified local law enforcement."); cmd_hangup(playerid, ""); SendLawMessage(COLOR_NINER, "|____________Non-Emergency Call____________|"); new emertext[128]; format(emertext, sizeof(string), "Caller: %s, Phone: %d", ReturnName(playerid, 0), ReturnPhoneNumber(playerid)); SendLawMessage(COLOR_NINER, emertext); if(strlen(text) > 90) { format(emertext, 128, "Situation: %.90s", text); SendLawMessage(COLOR_NINER, emertext); format(emertext, 128, "Situation: ...%s", text); SendLawMessage(COLOR_NINER, emertext); } else { format(emertext, 128, "Situation: %s", text); SendLawMessage(COLOR_NINER, emertext); } } else if(PlayerData[playerid][pPhoneline] == GUN_SHOP_NUMBER && !PlayerData[playerid][pCalling] && WarehouseCallStep[playerid] > 1) { if(strlen(text) > 90) { format(string, sizeof(string), "%s says (phone): %.90s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text[90]); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } else { format(string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } switch(WarehouseCallStep[playerid]) { case 2: { if(strfind(text, "blackmarket", true) != -1 || strfind(text, "black market", true) != -1) { SetPVarInt(playerid, "DestinationSelected", BLACK_MARKET_SELECTED); SendClientMessage(playerid, COLOR_YELLOW, "A person says (phone): Understood."); WarehouseCallStep[playerid] = 1; WarehouseCallTimer[playerid] = SetTimerEx("CallingWarehouse_3", 2000, false, "i", playerid); } else if(strfind(text, "warehouse", true) != -1) { SetPVarInt(playerid, "DestinationSelected", WAREHOUSE_SELECTED); SendClientMessage(playerid, COLOR_YELLOW, "A person says (phone): Understood."); WarehouseCallStep[playerid] = 1; WarehouseCallTimer[playerid] = SetTimerEx("CallingWarehouse_3", 2000, false, "i", playerid); } else SendClientMessage(playerid, COLOR_YELLOW, "A person says (phone): Please repeat that."); } case 3: { if(strfind(text, "standard", true) != -1) { SetPVarInt(playerid, "WarehouseDeliveryType", 1); SendClientMessage(playerid, COLOR_YELLOW, "A person says (phone): Understood. Please wait a couple seconds while we process your order."); WarehouseCallStep[playerid] = 1; WarehouseCallTimer[playerid] = SetTimerEx("CallingWarehouse_4", 15000, false, "i", playerid); } else if(strfind(text, "deluxe", true) != -1) { SetPVarInt(playerid, "WarehouseDeliveryType", 2); SendClientMessage(playerid, COLOR_YELLOW, "A person says (phone): Understood. Please wait a couple seconds while we process your order."); SendClientMessage(playerid, COLOR_YELLOW, "A person says (phone): For choosing our deluxe delivery, you'll be charged extra upon delivery."); WarehouseCallStep[playerid] = 1; WarehouseCallTimer[playerid] = SetTimerEx("CallingWarehouse_4", 15000, false, "i", playerid); } else SendClientMessage(playerid, COLOR_YELLOW, "A person says (phone): Please repeat that."); } } } else { new playerb = PlayerData[playerid][pPhoneline]; if(strlen(text) > 99) { format (string, sizeof(string), "%s says (phone): %.99s...", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); if(!PlayerData[ playerb ][pLoudspeaker]) SendClientMessage(playerb, COLOR_YELLOW, string); else LocalChat(playerb, 6.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); format (string, sizeof(string), "%s says (phone): ... %s", ReturnName(playerid, 0), text[99]); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); if(!PlayerData[ playerb ][pLoudspeaker]) SendClientMessage(playerb, COLOR_YELLOW, string); else LocalChat(playerb, 6.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } else { format (string, sizeof(string), "%s says (phone): %s", ReturnName(playerid, 0), text); LocalChat(playerid, 20.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); if(!PlayerData[ playerb ][pLoudspeaker]) SendClientMessage(playerb, COLOR_YELLOW, string); else LocalChat(playerb, 6.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } } } else { if(PlayerData[playerid][pAutoLow]) { if(strlen(text) > 99) { format(string, sizeof(string), "%s says [low]: %.99s...", ReturnName(playerid, 0), text); LocalChat(playerid, 6.0, string, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5, COLOR_FADE5); format(string, sizeof(string), "%s says [low]: ... %s", ReturnName(playerid, 0), text[99]); LocalChat(playerid, 6.0, string, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5, COLOR_FADE5); } else { format(string, sizeof(string), "%s says [low]: %s", ReturnName(playerid, 0), text); LocalChat(playerid, 8.0, string, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5, COLOR_FADE5); } } else { if(strlen(text) > 99) { format (string, sizeof(string), "%s says: %.99s...", ReturnName(playerid, 0), text); LocalChat(playerid, 25.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); format (string, sizeof(string), "%s says: ... %s", ReturnName(playerid, 0), text[99]); LocalChat(playerid, 25.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } else { format (string, sizeof(string), "%s says: %s", ReturnName(playerid, 0), text); LocalChat(playerid, 25.0, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4); } } ReturnChatAnimation(playerid, text); } return 0; } public OnPlayerDeath(playerid, killerid, reason) { printf("[WARNING] %s was spawned in after OnPlayerDeath was called.", ReturnName(playerid, 1)); SetPlayerHealth(playerid, PlayerData[playerid][pMaxHealth]); new str[128]; if(killerid != INVALID_PLAYER_ID) { format(str, sizeof(str), "[DEATH] %s died. (%s from %s)", ReturnName(playerid, 1), ReturnWeaponName(reason), ReturnName(killerid, 1)); SendAdminMessage(COLOR_ADM, str); } else { format(str, sizeof(str), "[DEATH] %s died.", ReturnName(playerid)); SendAdminMessage(COLOR_ADM, str); } PlayerData[playerid][pLegShot] = false; return true; } public OnVehicleDeath(vehicleid, killerid) { new Float:vehiclesHealth; GetVehicleHealth(vehicleid, vehiclesHealth); new string[128]; printf("[DEBUG] %s was destroyed by %s. Health before destroy: %.0f", ReturnVehicleName(vehicleid), ReturnName(killerid, 1), vehiclesHealth); if(DoesVehicleHaveCrate(vehicleid)) { ClearActiveCrate(vehicleid); } foreach(new i : Player) { if(StartedTruckerMission[i]) { if(TruckerMissionVehicle[i] == vehicleid) { SendClientMessage(i, COLOR_ADM, "Your trucker mission vehicle has been destroyed."); if(IsTruckerVehicle(vehicleid)) { SetVehicleToRespawn(vehicleid); TruckerVehicleRentedBy[vehicleid] = 0; CarEngine[vehicleid] = false; ToggleVehicleEngine(vehicleid, false); if(TruckerJobEarnings[i] != 0) { format(string, sizeof(string), "You received half of your $%s earnings for the damages. ($%s)", MoneyFormat(TruckerJobEarnings[i]), MoneyFormat(TruckerJobEarnings[i] / 2)); SendClientMessage(i, COLOR_ADM, string); GiveMoney(i, TruckerJobEarnings[i] / 2); } else SendClientMessage(i, COLOR_ADM, "You didn't have any earnings."); } else { if(TruckerJobEarnings[i] != 0) { format(string, sizeof(string), "You received your earning of $%s.", MoneyFormat(TruckerJobEarnings[i])); SendClientMessage(i, COLOR_ADM, string); } else SendClientMessage(i, COLOR_ADM, "You didn't have any earnings."); } EndTruckerMission(i); } } if(RefillVehicle[i] == vehicleid) { EndPlayerRefill(i, 1); } } if( IsValidPlayerCar(vehicleid) ) { CarData[vehicleid][carEngine]-= 20.20; CarData[vehicleid][carBattery]-= 10.00; CarData[vehicleid][carTimeDestroyed]++; CarData[vehicleid][carLastHealth] = 1000; SaveCar(vehicleid); foreach(new f : Player) if(PlayerBreakInVehicle[f] == vehicleid) { if(IsValidDynamic3DTextLabel(BreakInTextDraw[f])) { DestroyDynamic3DTextLabel(BreakInTextDraw[f]); } BreakInLevel[f] = 0; KillTimer(BreakInTDTimer[f]); //Clearing variables: PlayerBreakInVehicle[f] = INVALID_VEHICLE_ID; PlayerBreakingIn[f] = 0; BreakInError[f] = 0; BreakInLevel[f] = 0; ActiveLockTD[f] = 0; } for(new i = 1; i < 5; i++) { if(CarData[vehicleid][carWeapons][i]) { if(IsValidDynamicObject(CarData[vehicleid][carWeaponObject][i])) DestroyDynamicObject(CarData[vehicleid][carWeaponObject][i]); } } format(string, sizeof(string), "%s ( %d ) ownedby %s was destroyed by %s", ReturnVehicleName(vehicleid), vehicleid, ReturnSQLName(CarData[vehicleid][carOwnerID]), ReturnName(killerid, 1)); adminWarn(1, string); foreach(new n : Player){ if(strfind(ReturnName(n, 1), ReturnSQLName(CarData[vehicleid][carOwnerID]), true) != -1){ format(string, sizeof(string), "Your %s has been destroyed.", ReturnVehicleName(vehicleid)); SendClientMessage(n, COLOR_ADM, string); format(string, sizeof(string), "LIFESPAN: Engine Health reduced to {FFFFFF}%.2f. {FF6346}Battery Health reduced to {FFFFFF}%.2f{FF6346}.", CarData[vehicleid][carEngine], CarData[vehicleid][carBattery]); SendClientMessage(n, COLOR_ADM, string); _has_vehicle_spawned[n] = false; } } DefaultVehicleValues(vehicleid); DestroyVehicle(vehicleid); } else { format(string, sizeof(string), "%s ( %d ) was destroyed by %s", ReturnVehicleName(vehicleid), vehicleid, ReturnName(killerid, 1)); adminWarn(1, string); if(IsValidFactionCar(vehicleid)) { if(FactionCar[vehicleid][carSirenOn]) { FactionCar[vehicleid][carSirenOn] = false; DestroyDynamicObject(FactionCar[vehicleid][carSirenObject]); } } SetVehicleToRespawn(vehicleid); } for(new i = 0; i < sizeof TruckerVehicles; i++) { if(vehicleid == TruckerVehicles[vehicleid]) { TruckerVehicleRentedBy[vehicleid] = 0; } } if(RentalData[vehicleid][rentalcarRented]) { RentalData[vehicleid][rentalcarRented] = false; RentalData[vehicleid][rentalcarRentedBy] = 0; } return true; } stock PlayerHasWeaponEx(playerid, weapon_id) { new weaponid, ammo; for(new i = 0; i < 13; i++) { GetPlayerWeaponData(playerid, i, weaponid, ammo); if(weaponid == weapon_id && ammo > 0) return 1; } return 0; } public OnPlayerUpdate(playerid) { new string[128]; if(GetPlayerDrunkLevel(playerid) == 0 && pLoggedIn[playerid] && !PlayerJustDied[playerid] && gettime() - PlayerLoginTick[playerid] >= 10) { if(!PlayerIsDesynced[playerid]) PlayerIsDesynced[playerid] = 1; if(!PlayerDesyncNotify[playerid]) { GameTextForPlayer(playerid, "~w~YOU'RE DESYNCED!~n~ AVOID MOVING AND RELOG!", 9000, 6); PlayerDesyncNotify[playerid] = 30; } } if(PlayerData[playerid][pAdminDuty]) SetPlayerHealth(playerid, 255); if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !NoEngineCar(GetPlayerVehicleID(playerid))) { if (PlayerData[playerid][pHUDToggled] == 0) UpdateHUDForPlayer(playerid); } PlayerData[playerid][pPauseCheck] = GetTickCount(); //if(pLoggedIn[playerid]) PlayerConnectionTick[playerid] = NetStats_GetConnectedTime(playerid); if(PlayerData[playerid][pBrutallyWounded] == 1) { format(string, sizeof(string), "(( Has been injured %d times, /damages %d for more information. ))", totalDamages[playerid], playerid); SetPlayerChatBubble(playerid, string, COLOR_ADM, 30.0, 2000); } if(PlayerData[playerid][pBrutallyWounded] == 2) SetPlayerChatBubble(playerid, "(( THIS PLAYER IS DEAD ))", COLOR_ADM, 30.0, 2000); if(PlayerData[playerid][pExecuteTime]) { ApplyAnimation(playerid, "WUZI", "CS_Dead_Guy", 4.1, 0, 1, 1, 1, 0, 1); } if(PlayerData[playerid][pSpectator] != -1) { UpdateSpectatorTextdraw(playerid); } if(PlayerData[playerid][pSpectator] != -1) { new Keys, ud, lr, update[60]; GetPlayerKeys(playerid, Keys, ud, lr); if(lr == KEY_RIGHT && SpectatorWait[playerid] == 0) { for(new p = PlayerData[playerid][pSpectator] + 1; p < MAX_PLAYERS; p++) { if(playerid == p) continue; if(IsPlayerConnected(p)) { PlayerData[playerid][pSpectator] = p; format(update, 60, "%d", PlayerData[playerid][pSpectator]); cmd_spectate(playerid, update); SpectatorWait[playerid] = 2; break; } else continue; } } if(lr == KEY_LEFT && SpectatorWait[playerid] == 0) { for(new p = PlayerData[playerid][pSpectator] - 1; p >= 0; p--) { if(playerid == p) continue; if(IsPlayerConnected(p)) { PlayerData[playerid][pSpectator] = p; format(update, 60, "%d", PlayerData[playerid][pSpectator]); cmd_spectate(playerid, update); SpectatorWait[playerid] = 2; break; } else continue; } } } if(NetStats_GetConnectedTime(playerid) - PlayerConnectionTick[playerid] >= 250) { new placeSlot, id; for(new i = 0; i < 4; i++) { if(Weapon[playerid][i][eWeaponAmmo] > 0) { id = Weapon[playerid][i][eWeaponID]; placeSlot = ReturnWeaponsSlot(id); if(IsWeaponShowable(id) && EditingDisplay[playerid] != id) { if (GetPlayerWeapon(playerid) != id && !WeaponDisplay[playerid][id][weaponHidden]) { SetPlayerAttachedObject (playerid, placeSlot, ReturnWeaponsModel(id), WeaponDisplay[playerid][id][weaponBone], WeaponDisplay[playerid][id][weaponPos][0], WeaponDisplay[playerid][id][weaponPos][1], WeaponDisplay[playerid][id][weaponPos][2], WeaponDisplay[playerid][id][weaponRot][0], WeaponDisplay[playerid][id][weaponRot][1], WeaponDisplay[playerid][id][weaponRot][2]); } else { if (IsPlayerAttachedObjectSlotUsed(playerid, placeSlot)) RemovePlayerAttachedObject(playerid, placeSlot); } } } } PlayerConnectionTick[playerid] = NetStats_GetConnectedTime(playerid); } return 1; } public OnVehicleSpawn(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 481, 509, 510: ToggleVehicleEngine(vehicleid, true); } switch(GetVehicleModel(vehicleid)) { case 528, 601, 427: SetVehicleHealth(vehicleid, 10000); default: SetVehicleHealth(vehicleid, 1000); } if(IsValidFactionCar(vehicleid)) { LinkVehicleToInterior(vehicleid, FactionCar[vehicleid][carInterior]); SetVehicleVirtualWorld(vehicleid, FactionCar[vehicleid][carWorld]); if(FactionCar[vehicleid][carSirenOn]) { DestroyDynamicObject(FactionCar[vehicleid][carSirenObject]); FactionCar[vehicleid][carSirenOn] = false; } } if(IsValidPlayerCar(vehicleid)) { LinkVehicleToInterior(vehicleid, CarData[vehicleid][carInterior]); SetVehicleVirtualWorld(vehicleid, CarData[vehicleid][carWorld]); } CarEngine[vehicleid] = false; CarLights[vehicleid] = false; for(new i = 0; i < sizeof TruckerVehicles; i++) { if(vehicleid == TruckerVehicles[i]) { TruckerVehicleRentedBy[vehicleid] = 0; } } SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF); printf("[DEBUG] Vehicle ID %d ( %s ) was respawned (OnVehicleSpawn)", vehicleid, ReturnVehicleName(vehicleid)); return 1; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { if(PlayerData[playerid][pAdmin] < 1) { switch(GetVehicleModel(vehicleid)) // Check if the vehicle is a non rp vehicle or a vehicle with a gun. { case 406, 425, 432, 441, 447, 464, 465, 476, 486, 520, 528, 537, 538, 556, 557, 564, 594, 595, 601, 490: { adminWarn(1, sprintf("%s has just entered a %s.", ReturnName(playerid, 1), ReturnVehicleModelName(vehicleid))); } } } if(PlayerData[playerid][pBrutallyWounded]) { SendClientMessage(playerid, COLOR_ADM, "SERVER: Trying to bug abuse into a vehicle while dead will lead to a ban."); ClearAnimations(playerid); return false; } if(IsValidFactionCar(vehicleid) && !ispassenger && FactionCar[vehicleid][carFaction] != PlayerData[playerid][pFaction] && !PlayerData[playerid][pAdminDuty]) { if(!playerTextdraw[playerid]) { vehicleTextdraw[playerid] = CreateDynamic3DTextLabel("You can't enter this. (Faction-vehicle)", COLOR_WHITE, 0.0, 0.0, 0.0, 10.0, .attachedvehicle = vehicleid, .playerid = playerid, .worldid = GetPlayerVirtualWorld(playerid), .interiorid = GetPlayerInterior(playerid)); SetTimerEx("OnVehicleTextdraw", 4000, false, "i", playerid); playerTextdraw[playerid] = true; } return ClearAnimations(playerid); } if(PlayerData[playerid][pAdminDuty]) { Message(playerid, COLOR_YELLOW, "VEHICLE ID: [%i] TYPE: [%s] USER ID: [%d]", vehicleid, GetVehicleTypeString(vehicleid), CarData[vehicleid][carOwnerID]); if(IsValidFactionCar(vehicleid)) Message(playerid, COLOR_YELLOW, "FACTION: [%i] DBID: [%i]", FactionCar[vehicleid][carFaction], FactionCar[vehicleid][carID]); if(IsValidPlayerCar(vehicleid)) Message(playerid, COLOR_YELLOW, "DBID: [%i]", CarData[vehicleid][carID]); } return true; } public OnPlayerExitVehicle(playerid, vehicleid) { if( _taking_license_test[playerid] ) { QuitLicenseSession(playerid); } return true; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(HOLDING(KEY_HANDBRAKE) && PRESSED(KEY_WALK)) { if(GetPVarInt(playerid, "MDCLayout")) { SelectTextDraw(playerid, COLOR_GREY); } } if (PRESSED(KEY_SPRINT) && PlayerTutorial[playerid] == 1 && PlayerTutorialStep[playerid] < 11) { KillTimer(PlayerTutorialTimer[playerid]); PlayerTutorialStep[playerid]++; SetTutorial(playerid); } if(PRESSED(KEY_FIRE)) { switch(GetPlayerWeapon(playerid)) { case WEAPON_GRENADE: { if(PlayerHasWeapon(playerid, WEAPON_GRENADE)) UpdatePlayerWeapon(playerid, WEAPON_GRENADE); } case WEAPON_TEARGAS: { if(PlayerHasWeapon(playerid, WEAPON_TEARGAS)) UpdatePlayerWeapon(playerid, WEAPON_TEARGAS); } case WEAPON_MOLTOV: { if(PlayerHasWeapon(playerid, WEAPON_MOLTOV)) UpdatePlayerWeapon(playerid, WEAPON_MOLTOV); } } } if(PlayerBreakingIn[playerid] && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT && RELEASED(KEY_FIRE)) { new level[60], gun = GetPlayerWeapon(playerid), vehicleid = GetNearestVehicle(playerid); if(gun != 0 && !PlayerHasWeapon(playerid, gun)) return 0; if(vehicleid != -1 && vehicleid == PlayerBreakInVehicle[playerid]) { new Float:cX, Float:cY, Float:cZ; new Float:dX, Float:dY, Float:dZ; GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_FRONTSEAT, cX, cY, cZ); GetVehicleRelativePos(vehicleid, dX, dY, dZ, -cX - 0.5, cY, cZ); if(!IsPlayerInRangeOfPoint(playerid, 1.2, dX, dY, dZ)) return 1; new Float:VehicleHealth; GetVehicleHealth(vehicleid, VehicleHealth); switch(gun) { case 0: SetVehicleHealth(vehicleid, (VehicleHealth - 5.0 <= 320.0) ? 320.0 : VehicleHealth - 3.0); case 5: SetVehicleHealth(vehicleid, (VehicleHealth - 10.0 <= 320.0) ? 320.0 : VehicleHealth - 6.0); case 4: SetVehicleHealth(vehicleid, (VehicleHealth - 12.0 <= 320.0) ? 320.0 : VehicleHealth - 7.0); } BreakInLevel[playerid]-= random(5); format(level, 60, "%d", BreakInLevel[playerid]); if(!IsValidDynamic3DTextLabel(BreakInTextDraw[playerid])) BreakInTextDraw[playerid] = CreateDynamic3DTextLabel(level, COLOR_WHITE, cX, cY, cZ, 10.0, .attachedvehicle = vehicleid, .playerid = playerid, .worldid = GetPlayerVirtualWorld(playerid), .interiorid = GetPlayerInterior(playerid)); else UpdateDynamic3DTextLabelText(BreakInTextDraw[playerid], COLOR_WHITE, level); if(BreakInLevel[playerid] <= 1) { BreakInLevel[playerid] = 0; //Vehicle unlocked: ToggleVehicleLock(vehicleid, false); //Updating label to let player know it's unlocked: UpdateDynamic3DTextLabelText(BreakInTextDraw[playerid], COLOR_DARKGREEN, "Unlocked"); Streamer_Update(playerid); //Destroying the label with a timer: BreakInTDTimer[playerid] = SetTimerEx("OnBreakSuccess", 2000, false, "i", playerid); //Clearing variables: PlayerBreakInVehicle[playerid] = INVALID_VEHICLE_ID; PlayerBreakingIn[playerid] = 0; BreakInError[playerid] = 0; BreakInLevel[playerid] = 0; ActiveLockTD[playerid] = 0; } new panels, doors, lights, tires; GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires); switch(BreakInLevel[playerid]) { case 0: UpdateVehicleDamageStatus(vehicleid, panels, encode_doors(0, 0, 4, 0, 0, 0), lights, tires); case 1 .. 240: UpdateVehicleDamageStatus(vehicleid, panels, encode_doors(0, 0, 2, 0, 0, 0), lights, tires); } } } if(PRESSED(KEY_CROUCH) && WeaponOrderPrompt[playerid] == 20) { if(!IsPlayerInRangeOfPoint(playerid, 5.0, PossibleDropSpots[WeaponOrderSpot[playerid]][LocationX], PossibleDropSpots[WeaponOrderSpot[playerid]][LocationY], PossibleDropSpots[WeaponOrderSpot[playerid]][LocationZ])) return SendClientMessage(playerid, COLOR_ADM, "* You can only drop the money at the checkpoint given."); SendNearbyMessage(playerid, 20.0, COLOR_EMOTE, "* %s puts down money on the floor.", ReturnName(playerid, 0)); GiveMoney(playerid, -WeaponOrderPrice[playerid]); ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 1, 1, 0, 0, 1); WeaponOrderPrompt[playerid] = 0; WeaponOrderTimer[playerid] = SetTimerEx("WeaponOrderPrompts", 4000, false, "ii", playerid, 15); } if(PRESSED(KEY_CROUCH) && WeaponOrderPrompt[playerid] == 21) { if(!IsPlayerInRangeOfPoint(playerid, 5.0, PlayerData[playerid][pPos][0], PlayerData[playerid][pPos][1], PlayerData[playerid][pPos][2])) return SendClientMessage(playerid, COLOR_ADM, "* You need to be at the spot marked to pick up your package."); SendNearbyMessage(playerid, 20.0, COLOR_EMOTE, "* %s picks up their package.", ReturnName(playerid, 0)); ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 1, 1, 0, 0, 1); DestroyDynamicObject(WeaponOrderObject[playerid]); PlayerData[playerid][pWepOrderRestricted] = true; OrderWeaponTime[playerid] = gettime(); new idx[2], str[128]; if(WeaponOrdered[0][playerid] && !WeaponOrdered[1][playerid]) format(str, sizeof(str), "* You picked up a %s package.", WeaponOrderedName[0][playerid]); else format(str, sizeof(str), "* You picked up a %s and %s package.", WeaponOrderedName[0][playerid], WeaponOrderedName[1][playerid]); SendClientMessage(playerid, COLOR_GOLD, str); if(WeaponOrdered[0][playerid]) { idx[0] = ReturnFreePackage(playerid); if(idx[0] == -1) { SendClientMessage(playerid, COLOR_ADM, "* You can't carry anymore packages on you... Goodbye."); return ClearPlayerOrder(playerid); } PackageData[playerid][packageWeapon][idx[0]] = WeaponOrdered[0][playerid]; if(WeaponOrdered[0][playerid] == WEAPON_DEAGLE) PackageData[playerid][packageAmmo][idx[0]] = 66; else if(WeaponOrdered[0][playerid] == WEAPON_SHOTGUN) PackageData[playerid][packageAmmo][idx[0]] = 50; else if(WeaponOrdered[0][playerid] == WEAPON_TEC9) PackageData[playerid][packageAmmo][idx[0]] = 110; else if(WeaponOrdered[0][playerid] == WEAPON_COLT45) PackageData[playerid][packageAmmo][idx[0]] = 75; format(str, sizeof(str), "Received %s(%d) from Weapon Order", ReturnWeaponName(WeaponOrdered[0][playerid]), PackageData[playerid][packageAmmo][idx[0]]); LogPlayerAction(playerid, str); } if(WeaponOrdered[1][playerid]) { idx[1] = ReturnFreePackage(playerid); if(idx[1] == -1) { SendClientMessage(playerid, COLOR_ADM, "* You don't have room for your second package. Goodbye."); return ClearPlayerOrder(playerid); } PackageData[playerid][packageWeapon][idx[1]] = WeaponOrdered[1][playerid]; if(WeaponOrdered[1][playerid] == WEAPON_DEAGLE) PackageData[playerid][packageAmmo][idx[1]] = 66; else if(WeaponOrdered[1][playerid] == WEAPON_SHOTGUN) PackageData[playerid][packageAmmo][idx[1]] = 50; else if(WeaponOrdered[1][playerid] == WEAPON_TEC9) PackageData[playerid][packageAmmo][idx[1]] = 110; else if(WeaponOrdered[1][playerid] == WEAPON_COLT45) PackageData[playerid][packageAmmo][idx[1]] = 75; format(str, sizeof(str), "Received %s(%d) from Weapon Order", ReturnWeaponName(WeaponOrdered[1][playerid]), PackageData[playerid][packageAmmo][idx[1]]); LogPlayerAction(playerid, str); } ClearPlayerOrder(playerid); SavePlayer(playerid); return 1; } if(newkeys & KEY_JUMP && !(oldkeys & KEY_JUMP) && PlayerData[playerid][pBrutallyWounded] && !PlayerData[playerid][pInsideAmbulance]){ ApplyAnimation(playerid, "WUZI", "CS_Dead_Guy", 4.1, 0, 0, 0, 1, 0, 1); } if(newkeys & KEY_JUMP && !(oldkeys & KEY_JUMP) && PlayerData[playerid][pLegShot] && GetPlayerTeam(playerid) == STATE_ALIVE){ ApplyAnimation(playerid, "GYMNASIUM", "gym_jog_falloff", 4.1, 0, 1, 1, 0, 0, 1); } if(newkeys & KEY_JUMP && !(oldkeys & KEY_JUMP) && PlayerData[playerid][pHandcuff] && GetPlayerTeam(playerid) == STATE_ALIVE){ ApplyAnimation(playerid, "GYMNASIUM", "gym_jog_falloff", 4.1, 0, 1, 1, 0, 0, 1); } if(newkeys & KEY_SPRINT && !(oldkeys & KEY_SPRINT) && PlayerData[playerid][pLegShot] && GetPlayerTeam(playerid) == STATE_ALIVE){ ApplyAnimation(playerid, "ped", "FALL_collapse", 4.1, 0, 1, 1, 0, 0, 1); } if(newkeys & KEY_SPRINT && !(oldkeys & KEY_SPRINT) && GetPlayerTeam(playerid) == STATE_WOUNDED){ ApplyAnimation(playerid, "WUZI", "CS_Dead_Guy", 4.1, 0, 1, 1, 1, 0, 1); } if (PRESSED(KEY_FIRE) && GetPlayerWeapon(playerid) == 41 && sprayPermission[playerid] == true && sprayingGraffiti[playerid] == false && strlen(graffitiText[playerid]) > 0) { if (PlayerData[playerid][pBrutallyWounded]) return false; new bool:nearGraffiti = false; for(new i = 0; i < sizeof(g_aGraffitiData); i++) { if(IsPlayerInRangeOfPoint(playerid, 4.0, g_aGraffitiData[i][graffitiPosX], g_aGraffitiData[i][graffitiPosY], g_aGraffitiData[i][graffitiPosZ])) { nearGraffiti = true; sprayingGraffiti[playerid] = true; graffitiID[playerid] = i; } } if(nearGraffiti) { graffitiTimer[playerid] = SetTimerEx("TIMER_PlayerGraffiti", 1000, true, "i", playerid); } } if (RELEASED(KEY_FIRE) && GetPlayerWeapon(playerid) == 41 && sprayingGraffiti[playerid] == true) { KillTimer(graffitiTimer[playerid]); KillTimer(graffitiTimerEx[playerid]); graffitiTimerEx_Confirm[playerid] = false; sprayingGraffiti[playerid] = false; sprayingGraffitiTime[playerid] = saveSprayingTime[playerid]; PlayerTextDrawSetString(playerid, GraffitiDisplay[playerid], "~r~GRAFFITI STOPPED!"); PlayerTextDrawShow(playerid, GraffitiDisplay[playerid]); GraffitiExitTimer[playerid] = SetTimerEx("ClearGraffitiTD", 2000, false, "i", playerid); ClearGraffitiVars(playerid); } if (PRESSED(KEY_YES) && paintjobOffered[playerid][0]) { new string[128], offerid = paintjobOffered[playerid][1]; if(!IsPlayerInAnyVehicle(playerid)) { SendClientMessage(playerid, COLOR_YELLOW, "SERVER: You're no longer in a vehicle. Your paintjob offer is voided."); format (string, sizeof(string), "SERVER: %s is no longer in their vehicle. Your paintjob offer was cancelled.", ReturnName(playerid, 1)); SendClientMessage(offerid, COLOR_YELLOW, string); paintjobOffered[playerid][0] = false; paintjobOffered[playerid][1] = -1; return true; } SendClientMessage(playerid, COLOR_YELLOW, "SERVER: You accepted the paintjob offer!"); format (string, sizeof(string), "SERVER: %s accepted your paintjob offer. Pull out your spraycan.", ReturnName(playerid, 1)); SendClientMessage(offerid, COLOR_YELLOW, string); GivePlayerGun(offerid, 41, 9999, WEAPON_SERVER_GIVEN); paintjobOffered[playerid][0] = false; paintjobOffered[playerid][1] = -1; startingPaintjob[offerid] = true; paintjobVehicle[offerid] = GetPlayerVehicleID(playerid); } if (PRESSED(KEY_NO) && paintjobOffered[playerid][0]) { new string[128], offerid = paintjobOffered[playerid][1]; SendClientMessage(playerid, COLOR_YELLOW, "SERVER: You declined the paintjob offer!"); format (string, sizeof(string), "SERVER: %s declined your paintjob offer.", ReturnName(playerid, 1)); SendClientMessage(offerid, COLOR_YELLOW, string); paintjobOffered[playerid][0] = false; paintjobOffered[playerid][1] = -1; } if (PRESSED(KEY_FIRE) && !IsPlayerInAnyVehicle(playerid) && startingPaintjob[playerid] == true) { new v = paintjobVehicle[playerid], Float: vehPos[3]; GetVehiclePos(v, vehPos[0], vehPos[1], vehPos[2]); if (!IsPlayerInRangeOfPoint(playerid, 5.0, vehPos[0], vehPos[1], vehPos[2])) { SendClientMessage(playerid, COLOR_YELLOW, "SERVER: You aren't near your selected vehicle."); startingPaintjob[playerid] = false; paintjobVehicle[playerid] = INVALID_VEHICLE_ID; return true; } paintjobTime[playerid] = 15; SendClientMessage(playerid, COLOR_YELLOW, "SERVER: Start spraying to change the colors!"); paintjobTimer[playerid] = SetTimerEx("PaintjobTimer", 1000, true, "i", playerid); paintjobCounter[playerid] = SetTimerEx("PaintjobCounter", 1000, true, "i", playerid); } if (RELEASED(KEY_FIRE) && !IsPlayerInAnyVehicle(playerid) && startingPaintjob[playerid] == true) { GameTextForPlayer(playerid, "~r~Spraying Stopped", 3000, 3); KillTimer(paintjobTimer[playerid]); KillTimer(paintjobCounter[playerid]); startingPaintjob[playerid] = false; } return true; } Server:PaintjobTimer(playerid) { new string[128], vehicleid = paintjobVehicle[playerid], Float:vehPos[3]; GetVehiclePos(vehicleid, vehPos[0], vehPos[1], vehPos[2]); if (!IsPlayerInRangeOfPoint(playerid, 5.0, vehPos[0], vehPos[1], vehPos[2])) { KillTimer(paintjobTimer[playerid]); KillTimer(paintjobCounter[playerid]); startingPaintjob[playerid] = false; SendClientMessage(playerid, COLOR_YELLOW, "SERVER: Your paintjob was cancelled. You're no longer near the vehicle."); return true; } format (string, sizeof(string), "~r~Spraying~n~~w~%d]", paintjobTime[playerid]); GameTextForPlayer(playerid, string, 3000, 3); if(paintjobTime[playerid] <= 0) { KillTimer(paintjobTimer[playerid]); KillTimer(paintjobCounter[playerid]); SendClientMessage(playerid, COLOR_YELLOW, "SERVER: You've finished spraying!"); ChangeVehicleColor(vehicleid, paintjobColors[playerid][0], paintjobColors[playerid][1]); startingPaintjob[playerid] = false; return true; } return true; } Server:PaintjobCounter(playerid) { if (startingPaintjob[playerid] == false) return KillTimer(paintjobCounter[playerid]); paintjobTime[playerid]--; return true; } public OnPlayerStateChange(playerid, newstate, oldstate) { if(newstate == PLAYER_STATE_DRIVER && oldstate == PLAYER_STATE_ONFOOT || oldstate == PLAYER_STATE_DRIVER){ new vehicleid = GetPlayerVehicleID(playerid), id, string[128]; id = FactionCar[vehicleid][carID]; if(id != -1 && FactionCar[vehicleid][carFaction] > 0 && FactionCar[vehicleid][carFaction] != PlayerData[playerid][pFaction] && !PlayerData[playerid][pAdminDuty]){ format(string, sizeof(string), "%s[%i] teleported into faction vehicleid %d", ReturnName(playerid, 1), playerid, vehicleid); adminWarn(1, string); RemovePlayerFromVehicle(playerid); ClearAnimations(playerid); } } if(newstate == PLAYER_STATE_DRIVER) { SetPlayerArmedWeapon(playerid, 0); foreach(new i : Player) { if(PlayerData[i][pSpectator] == playerid) { new cmd[30]; format(cmd, 30, "%i", playerid); cmd_awc(i, cmd); } } if (!NoEngineCar(GetPlayerVehicleID(playerid)) && !PlayerData[playerid][pHUDToggled]) { UpdateHUDForPlayer(playerid); switch(PlayerData[playerid][pHUD]) { case 0: { PlayerTextDrawShow(playerid, VehicleHUD[playerid][0]); PlayerTextDrawShow(playerid, VehicleHUD[playerid][1]); } case 1: { PlayerTextDrawShow(playerid, VehicleHUD[playerid][2]); } case 2: { PlayerTextDrawShow(playerid, VehicleHUD[playerid][3]); } case 3: { PlayerTextDrawShow(playerid, VehicleHUD[playerid][4]); PlayerTextDrawShow(playerid, VehicleHUD[playerid][5]); } } } } if(oldstate == PLAYER_STATE_DRIVER) { if(PlayerData[playerid][pUnscrambling]) { PlayerData[playerid][pUnscrambling] = false; PlayerData[playerid][pUnscrambleID] = 0; PlayerData[playerid][pUnscramblerTime] = 111; PlayerData[playerid][pScrambleFailed] = 0; PlayerData[playerid][pScrambleSuccess] = 0; KillTimer(PlayerData[playerid][pUnscrambleTimer]); ShowUnscrambleTextdraw(playerid, false); } /*if(!PlayerData[playerid][pHUDToggled]) HideHUDForPlayer(playerid); */ foreach(new i : Player) { if(PlayerData[i][pSpectator] == playerid) { new cmd[30]; format(cmd, 30, "%i", playerid); cmd_spectate(i, cmd); } } if (!PlayerData[playerid][pHUDToggled]) { switch(PlayerData[playerid][pHUD]) { case 0: { PlayerTextDrawHide(playerid, VehicleHUD[playerid][0]); PlayerTextDrawHide(playerid, VehicleHUD[playerid][1]); } case 1: { PlayerTextDrawHide(playerid, VehicleHUD[playerid][2]); } case 2: { PlayerTextDrawHide(playerid, VehicleHUD[playerid][3]); } case 3: { PlayerTextDrawHide(playerid, VehicleHUD[playerid][4]); PlayerTextDrawHide(playerid, VehicleHUD[playerid][5]); } } } } if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_DRIVER) { new id = GetPlayerVehicleID(playerid); if(IsValidPlayerCar(id)) { new string[128]; format(string, sizeof(string), "Player %s entered seat %d", ReturnName(playerid), GetPlayerVehicleSeat(playerid)); LogVehicleAction(id, string); } } if(newstate == PLAYER_STATE_DRIVER && oldstate == PLAYER_STATE_ONFOOT || oldstate == PLAYER_STATE_DRIVER){ new vehicleid = GetPlayerVehicleID(playerid); PlayerData[playerid][pEnterVehicle]++; if(PlayerData[playerid][pEnterVehicle] > 2){ new string[128]; format(string, sizeof(string), "%s(%i) may be teleporting (into) vehicles", ReturnName(playerid, 1), playerid); adminWarn(1, string); } if(IsValidPlayerCar(vehicleid)) { CarData[vehicleid][carlastDriver] = PlayerData[playerid][pSQLID]; } if(IsValidFactionCar(vehicleid)) { FactionCar[vehicleid][carlastDriver] = PlayerData[playerid][pSQLID]; } if(!IsValidFactionCar(vehicleid) && !IsValidPlayerCar(vehicleid)) { CarlastDriver[vehicleid] = PlayerData[playerid][pSQLID]; } } if(newstate == PLAYER_STATE_PASSENGER && oldstate == PLAYER_STATE_ONFOOT || oldstate == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(playerid); if(IsValidPlayerCar(vehicleid)) { CarData[vehicleid][carlastPassenger] = PlayerData[playerid][pSQLID]; } if(IsValidFactionCar(vehicleid)) { FactionCar[vehicleid][carlastPassenger] = PlayerData[playerid][pSQLID]; } if(!IsValidFactionCar(vehicleid) && !IsValidPlayerCar(vehicleid)) { CarlastPassenger[vehicleid] = PlayerData[playerid][pSQLID]; } if(GetPlayerWeapon(playerid) == WEAPON_DEAGLE || GetPlayerWeapon(playerid) == WEAPON_SNIPER) SetPlayerArmedWeapon(playerid, 0); } if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER) { if(StartedTruckerMission[playerid]) { for(new i = 0; i < 2; i++) PlayerTextDrawShow(playerid, TruckerWarning_PTD[playerid][i]); TruckerJobExitTimer[playerid] = SetTimerEx("OnExitTrucker", 1000, true, "i", playerid); TruckerJobExitCount[playerid] = 60; } } if(newstate == PLAYER_STATE_DRIVER && oldstate == PLAYER_STATE_ONFOOT){ new vehicleid = GetPlayerVehicleID(playerid), id, string[128]; id = CarData[vehicleid][carID]; if(StartedTruckerMission[playerid] && vehicleid == TruckerMissionVehicle[playerid]) { for(new i = 0; i < 2; i++) PlayerTextDrawHide(playerid, TruckerWarning_PTD[playerid][i]); TruckerJobExitCount[playerid] = 60; KillTimer(TruckerJobExitTimer[playerid]); } if(StartedTruckerMission[playerid] && TruckerMissionStep[playerid] == 3 && vehicleid == TruckerMissionVehicle[playerid]) { RewardTruckerMission(playerid); } if (!PlayerData[playerid][pDriversLicense]) { SendClientMessage(playerid, COLOR_ADM, "You don't have a driving license! Pass a driving test to get one."); } if(IsTruckerVehicle(vehicleid) && !StartedTruckerMission[playerid]) { SendClientMessage(playerid, COLOR_WHITE, "INFO: You're in a trucker mission vehicle. Use /truckermission to start!"); SendClientMessage(playerid, COLOR_WHITE, "INFO: Use /renttruck to rent the vehicle if you haven't!"); } if(IsTruckerVehicle(vehicleid) && StartedTruckerMission[playerid]) { SendClientMessage(playerid, COLOR_WHITE, "INFO: You can use /endmission to stop and collect your earnings."); } if(IsPlayerInDMVCar(playerid)) { SendClientMessage(playerid, COLOR_WHITE, "You have entered a license exam vehicle. To attempt to pass your license exam, type /licenseexam."); } if(!CarEngine[vehicleid] && !NoEngineCar(vehicleid)){ SendClientMessage(playerid, COLOR_DARKGREEN, "The engine is off. (/engine)"); } if(id && CarData[vehicleid][carOwnerID] == PlayerData[playerid][pSQLID]){ format(string, sizeof(string), "Welcome to your %s.", ReturnVehicleName(vehicleid)); SendClientMessage(playerid, COLOR_WHITE, string); if(CountVehicleFines(vehicleid) > 0) { format(string, sizeof(string), "[-] Your vehicle has fines accumulating up to $%s.", MoneyFormat(CountVehicleFinesTotal(vehicleid))); SendClientMessage(playerid, COLOR_YELLOW, string); SendClientMessage(playerid, COLOR_YELLOW, "[-] Use /v payfines at a dealership to take care of them."); } } if(IsValidRentalCar(vehicleid)){ format(string, sizeof(string), "Vehicle Rental Service: Rent the %s for $2500. (/rentvehicle)", ReturnVehicleName(vehicleid)); SendClientMessage(playerid, COLOR_WHITE, string); SendClientMessage(playerid, COLOR_DARKGREEN, "Renting this vehicle will make you able to /lock it."); } } if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER){ if(g_aVehicleSpawned[playerid] != 0){ if(IsValidVehicle(g_aVehicleSpawned[playerid]) && !IsValidPlayerCar(g_aVehicleSpawned[playerid]) && !IsValidFactionCar(g_aVehicleSpawned[playerid])){ DestroyVehicle(g_aVehicleSpawned[playerid]); } } StopAudioStreamForPlayer(playerid); } if(newstate == PLAYER_STATE_DRIVER || PLAYER_STATE_PASSENGER && oldstate == PLAYER_STATE_ONFOOT){ new vehicleid = GetPlayerVehicleID(playerid) ; if(IsValidPlayerCar(vehicleid)) { if(CarData[vehicleid][carXMR] && CarData[vehicleid][carXMROn]) { PlayAudioStreamForPlayer(playerid, CarData[vehicleid][carXMRUrl]); } } if(IsValidFactionCar(vehicleid)) { if(FactionCar[vehicleid][carsXMROn]) { PlayAudioStreamForPlayer(playerid, FactionCar[vehicleid][carsXMRURL]); } } } if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER && newstate == PLAYER_STATE_ONFOOT) { StopAudioStreamForPlayer(playerid); showMDCLayout(playerid, false); } return true; } public OnPlayerEnterCheckpoint(playerid) { if(!PlayerData[playerid][pCheckpoint]){ PlayerPlaySound(playerid, 1138, 0.0, 0.0, 0.0); DisablePlayerCheckpoint(playerid); } if(StartedTruckerMission[playerid] && TruckerMissionStep[playerid] == 1) { if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { SendClientMessage(playerid, COLOR_ADM, "** You need to enter the checkpoint on foot."); SetPlayerCheckpoint(playerid, BusinessData[TruckerMissionPoint[playerid]][businessExt][0], BusinessData[TruckerMissionPoint[playerid]][businessExt][1], BusinessData[TruckerMissionPoint[playerid]][businessExt][2], 1.0); return 1; } if(!IsPlayerInRangeOfPoint(playerid, 4.0, BusinessData[TruckerMissionPoint[playerid]][businessExt][0], BusinessData[TruckerMissionPoint[playerid]][businessExt][1], BusinessData[TruckerMissionPoint[playerid]][businessExt][2])) { SendClientMessage(playerid, COLOR_ADM, "** Uh-Oh! You don't seem to be at your assigned objective."); SetPlayerCheckpoint(playerid, BusinessData[TruckerMissionPoint[playerid]][businessExt][0], BusinessData[TruckerMissionPoint[playerid]][businessExt][1], BusinessData[TruckerMissionPoint[playerid]][businessExt][2], 1.0); return 1; } for(new i = 0; i < 2; i++) PlayerTextDrawHide(playerid, TruckerWarning_PTD[playerid][i]); TruckerJobExitCount[playerid] = 60; KillTimer(TruckerJobExitTimer[playerid]); TruckerMissionStep[playerid] = 2; TruckerJobDeliveryCount[playerid] = 0; TogglePlayerControllable(playerid, 0); TruckerJobDeliverTimer[playerid] = SetTimerEx("OnTruckerDelivery", 1000, true, "i", playerid); } if(PlayerData[playerid][pCheckpoint] == WEAPON_ORDER_NUMBER) { new str[128]; DisablePlayerCheckpoint(playerid); format(str, sizeof(str), "SMS: Put down $%s and wait., Sender: 434112", MoneyFormat(WeaponOrderPrice[playerid])); SendClientMessage(playerid, COLOR_YELLOW, str); WeaponOrderPrompt[playerid] = 20; PlayerData[playerid][pCheckpoint] = 0; SendClientMessage(playerid, COLOR_ADM, "TIP: Use your Crouch key (C) to put down money."); return 1; } if(_taking_license_test[playerid]){ PlayerPlaySound(playerid, 1138, 0.0, 0.0, 0.0); if(!IsPlayerInDMVCar(playerid))return QuitLicenseSession(playerid); if(_taking_license_point[playerid] == 101){ SetPlayerCheckpoint(playerid, 1209.1361, -1569.4271, 13.2656, 5.0); _taking_license_point[playerid] = 102; } else if(_taking_license_point[playerid] == 102){ SetPlayerCheckpoint(playerid, 929.7857, -1570.2813, 13.2577, 5.0); _taking_license_point[playerid] = 103; } else if(_taking_license_point[playerid] == 103){ SetPlayerCheckpoint(playerid, 915.2255, -1659.8831, 13.2578, 5.0); _taking_license_point[playerid] = 104; } else if(_taking_license_point[playerid] == 104){ SetPlayerCheckpoint(playerid, 915.0769, -1759.7145, 13.2548, 5.0); _taking_license_point[playerid] = 105; } else if(_taking_license_point[playerid] == 105){ //1022.2615, -1800.2925, 13.7688 SetPlayerCheckpoint(playerid, 1019.9954,-1810.2715,13.9787, 5.0); _taking_license_point[playerid] = 106; } else if(_taking_license_point[playerid] == 106){ // 1039.2104, -1671.6567, 13.2578 old coords // 1019.9954,-1810.2715,13.9787 SetPlayerCheckpoint(playerid, 1039.2104, -1671.6567, 13.2578, 5.0); _taking_license_point[playerid] = 107; } else if(_taking_license_point[playerid] == 107){ SetPlayerCheckpoint(playerid, 1039.4230, -1588.5918, 13.2577, 5.0); _taking_license_point[playerid] = 108; } else if(_taking_license_point[playerid] == 108){ SetPlayerCheckpoint(playerid, 1140.6078, -1574.2045, 13.1487, 5.0); _taking_license_point[playerid] = 109; } else if(_taking_license_point[playerid] == 109){ SetPlayerCheckpoint(playerid, 1240.2865, -1574.5254, 13.2583, 5.0); _taking_license_point[playerid] = 110; } else if(_taking_license_point[playerid] == 110){ SetPlayerCheckpoint(playerid, 1282.2665, -1574.0415, 13.2578, 5.0); _taking_license_point[playerid] = 111; } else if(_taking_license_point[playerid] == 111){ DisablePlayerCheckpoint(playerid); SetVehicleToRespawn(_taking_license_vehicle[playerid]); _taking_license_point[playerid] = 0; _taking_license_test[playerid] = false; _taking_license_vehicle[playerid] = 0; _taking_license_time[playerid] = 0; PlayerData[playerid][pDriversLicense] = true; SaveSQLInt(PlayerData[playerid][pSQLID], "players", "DriversLicense", PlayerData[playerid][pDriversLicense]); GiveMoney(playerid, -1000); GameTextForPlayer(playerid, "~w~Congratulations!~n~ Here is your license!", 5000, 1); } } return true; } public OnPlayerStreamIn(playerid, forplayerid) { if (PlayerData[playerid][pMasked]){ if(!PlayerData[forplayerid][pAdminDuty]){ ShowPlayerNameTagForPlayer(forplayerid, playerid, 0); } } return true; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { foreach(new i : Player) { if(PlayerData[i][pSpectator] == playerid) { new cmd[30]; format(cmd, 30, "%i", playerid); cmd_spectate(i, cmd); } } if(newinteriorid != 0) { Streamer_Update(playerid); TogglePlayerControllable(playerid, false); SetTimerEx("TIMER_LoadingInterior", 1000, false, "i", playerid); } else { ResetHouseVar(playerid); } return true; } public OnPlayerPickUpDynamicPickup(playerid, pickupid) { for(new i = 0; i < MAX_BUSINESS; i++){ if(BusinessData[i][businessID] != 0 && BusinessData[i][businessType] == BIZ_BANK){ if(GetPlayerVirtualWorld(playerid) == BusinessData[i][businessBankPickupWorld]){ if(pickupid == BusinessData[i][businessBankPickup]){ if (!PlayerData[playerid][pPaycheck]){ return false; } else{ new string[128]; GiveMoney(playerid, PlayerData[playerid][pPaycheck]); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); format(string, sizeof(string), "~w~You have just received~n~your paycheck:~n~~g~$%d", PlayerData[playerid][pPaycheck]); GameTextForPlayer(playerid, string, 4000, 4); WriteLog("money_logs/getpaycheck_log.txt", "[%s] %s got their paycheck: $%d (Bank: $%d, Hand: $%d)", ReturnDate(), ReturnName(playerid, 1), PlayerData[playerid][pPaycheck], PlayerData[playerid][pBank], PlayerData[playerid][pMoney]); PlayerData[playerid][pPaycheck] = 0; } } } } } return true; } public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid) { phone_OnPlayerClickPlayerTD(playerid, playertextid); ds_OnPlayerClickPlayerTD(playerid, playertextid); if(GetPVarInt(playerid, "UsingMDC") == 1) { if(playertextid == MDC_UI[playerid][35]) { PlayerTextDrawBackgroundColor(playerid, MDC_UI[playerid][36], -1431655681); PlayerTextDrawHide(playerid, MDC_UI[playerid][36]); PlayerTextDrawShow(playerid, MDC_UI[playerid][36]); PlayerTextDrawHide(playerid, MDC_UI[playerid][35]); PlayerTextDrawBackgroundColor(playerid, MDC_UI[playerid][35], 858993663); PlayerTextDrawShow(playerid, MDC_UI[playerid][35]); PlayerTextDrawHide(playerid, MDC_UI[playerid][39]); PlayerTextDrawColor(playerid, MDC_UI[playerid][39], -1); PlayerTextDrawShow(playerid, MDC_UI[playerid][39]); PlayerTextDrawHide(playerid, MDC_UI[playerid][40]); PlayerTextDrawColor(playerid, MDC_UI[playerid][40], 858993663); PlayerTextDrawShow(playerid, MDC_UI[playerid][40]); SetPVarInt(playerid, "Query_Mode", 0); } if(playertextid == MDC_UI[playerid][36]) { PlayerTextDrawHide(playerid, MDC_UI[playerid][39]); PlayerTextDrawColor(playerid, MDC_UI[playerid][39], 858993663); PlayerTextDrawShow(playerid, MDC_UI[playerid][39]); PlayerTextDrawHide(playerid, MDC_UI[playerid][40]); PlayerTextDrawColor(playerid, MDC_UI[playerid][40], -1); PlayerTextDrawShow(playerid, MDC_UI[playerid][40]); PlayerTextDrawHide(playerid, MDC_UI[playerid][35]); PlayerTextDrawBackgroundColor(playerid, MDC_UI[playerid][35], -1431655681); PlayerTextDrawShow(playerid, MDC_UI[playerid][35]); PlayerTextDrawHide(playerid, MDC_UI[playerid][36]); PlayerTextDrawBackgroundColor(playerid, MDC_UI[playerid][36], 858993663); PlayerTextDrawShow(playerid, MDC_UI[playerid][36]); SetPVarInt(playerid, "Query_Mode", 1); } if(playertextid == MDC_UI[playerid][37]) { if(!GetPVarInt(playerid, "Query_Mode")) { ShowPlayerDialog(playerid, DIALOG_MDC_NAME, DIALOG_STYLE_INPUT, "Name Search - MDC", "Enter the persons full name to search below:", "Search", "<<"); } else { ShowPlayerDialog(playerid, DIALOG_MDC_PLATE, DIALOG_STYLE_INPUT, "Plate Search - MDC", "Enter the vehicles full or partial plate to search below:", "Search", "<<"); } } for(new i = 10; i < 16; i ++) { if(playertextid == MDC_UI[playerid][i]) { if(GetPVarInt(playerid, "LastPage_ID") != -1) { PlayerTextDrawBackgroundColor(playerid, MDC_UI[playerid][GetPVarInt(playerid, "LastPage_ID")], -1431655681); PlayerTextDrawHide(playerid, MDC_UI[playerid][GetPVarInt(playerid, "LastPage_ID")]); PlayerTextDrawShow(playerid, MDC_UI[playerid][GetPVarInt(playerid, "LastPage_ID")]); PlayerTextDrawColor(playerid, MDC_UI[playerid][GetPVarInt(playerid, "LastPage_ID")+6], 858993663); PlayerTextDrawHide(playerid, MDC_UI[playerid][GetPVarInt(playerid, "LastPage_ID")+6]); PlayerTextDrawShow(playerid, MDC_UI[playerid][GetPVarInt(playerid, "LastPage_ID")+6]); } PlayerTextDrawColor(playerid, MDC_UI[playerid][i+6], -1); PlayerTextDrawHide(playerid, MDC_UI[playerid][i+6]); PlayerTextDrawShow(playerid, MDC_UI[playerid][i+6]); PlayerTextDrawHide(playerid, MDC_UI[playerid][i]); PlayerTextDrawBackgroundColor(playerid, MDC_UI[playerid][i], 858993663); PlayerTextDrawShow(playerid, MDC_UI[playerid][i]); SetPVarInt(playerid, "LastPage_ID", i); new messageEx[128]; format(messageEx, sizeof messageEx, "Page #%d", i-10); SendClientMessage(playerid, -1, messageEx); UpdateMDC(playerid, i-10); } } if(playertextid == MDC_UI[playerid][3]) { CancelSelectTextDraw(playerid); ToggleMDC(playerid, false); } } if(Text:playertextid != INVALID_TEXT_DRAW) { if(playertextid == Skinmenu_PTD[playerid][0]) { if(PlayerData[playerid][pSkinMenu] == 305) PlayerData[playerid][pSkinMenu] = 1; else PlayerData[playerid][pSkinMenu]++; PlayerTextDrawSetPreviewModel(playerid, Skinmenu_PTD[playerid][2], PlayerData[playerid][pSkinMenu]); DisplayClothingMenu(playerid, false, false); } else if(playertextid == Skinmenu_PTD[playerid][1]) { if(PlayerData[playerid][pSkinMenu] == 1) PlayerData[playerid][pSkinMenu] = 305; else PlayerData[playerid][pSkinMenu]--; PlayerTextDrawSetPreviewModel(playerid, Skinmenu_PTD[playerid][2], PlayerData[playerid][pSkinMenu]); DisplayClothingMenu(playerid, false, false); } else if(playertextid == Skinmenu_PTD[playerid][2]) { new forbidSkin[35] = { 0, 71, 74, 264, 265, 266, 267, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 300, 301, 302, 306, 307, 308, 309, 310, 311 }; for(new i = 0; i < sizeof forbidSkin; i++) { if(PlayerData[playerid][pSkinMenu] == forbidSkin[i]) { return SendClientMessage(playerid, COLOR_ADM, "You can't select this skin."); } } SendClientMessage(playerid, COLOR_ACTION, "Thank you for your purchase!"); SetPlayerSkin(playerid, PlayerData[playerid][pSkinMenu]); PlayerData[playerid][pSkin] = PlayerData[playerid][pSkinMenu]; CancelSelectTextDraw(playerid); DisplayClothingMenu(playerid, true); GiveMoney(playerid, -50); BusinessData[IsPlayerInBusiness(playerid)][businessCashbox]+= 50; } if(GetPVarInt(playerid, "Viewing_OwnedCarList") == 1) { if(playertextid == Player_Vehicles_Arrow[playerid][2]) { SetPVarInt(playerid, "Viewing_OwnedCarList", 2); ShowPlayerVehicleList2(playerid); } for(new i = 0; i < 6; i++) { if(playertextid == Player_Vehicles[playerid][i]) { if(_has_vehicle_spawned[playerid]) { SendClientMessage(playerid, COLOR_ADM, "SERVER: You already have a vehicle spawned."); HideVehicleUI(playerid, 1); DeletePVar(playerid, "Viewing_OwnedCarList"); return 1; } LoadOwnedCars(playerid, i+1); HideVehicleUI(playerid, 1); } } } if(GetPVarInt(playerid, "Viewing_OwnedCarList") == 2) { if(playertextid == Player_Static_Arrow[playerid]) { ShowPlayerVehicleList(playerid); SetPVarInt(playerid, "Viewing_OwnedCarList", 1); } new slot; for(new i = 0; i < 6; i++) { if(playertextid == Player_Vehicles[playerid][i]) { switch(i) { case 0: slot = 7; case 1: slot = 8; case 2: slot = 9; case 3: slot = 10; } if(_has_vehicle_spawned[playerid]) { SendClientMessage(playerid, COLOR_ADM, "SERVER: You already have a vehicle spawned."); HideVehicleUI(playerid, 1); DeletePVar(playerid, "Viewing_OwnedCarList"); return 1; } LoadOwnedCars(playerid, slot); HideVehicleUI(playerid, 1); } } } } else { DisplayClothingMenu(playerid, true); if(PlayerData[playerid][pPhoneline] == GUN_SHOP_NUMBER) HideWarehouseMenu(playerid, 0); else HideWarehouseMenu(playerid); HideVehicleUI(playerid, 0); DeletePVar(playerid, "Viewing_OwnedCarList"); } return true; } public OnPlayerClickTextDraw(playerid, Text:clickedid) { if(Text:clickedid != INVALID_TEXT_DRAW) { if(clickedid == Buymenu_TD[1]) { for(new i = 0; i < 37; i++){ TextDrawHideForPlayer(playerid, Buymenu_TD[i]); CancelSelectTextDraw(playerid); } } if(clickedid == Buymenu_TD[3]) { if(30 > PlayerData[playerid][pMoney]) { SendClientMessage(playerid, COLOR_ADM, "You can't afford this."); return 1; } if(IsPlayerInBusiness(playerid)) { BusinessData[IsPlayerInBusiness(playerid)][businessCashbox]+= 30; } SendClientMessage(playerid, COLOR_YELLOW, "You purchased a gasoline can. Use /fill to refill your car."); // Create function later to fuel vehicle. GiveMoney(playerid, -30); for(new i = 0; i < 37; i++) { TextDrawHideForPlayer(playerid, Buymenu_TD[i]); CancelSelectTextDraw(playerid); } } if(clickedid == Buymenu_TD[6]) { if(150 > PlayerData[playerid][pMoney]) { SendClientMessage(playerid, COLOR_ADM, "You can't afford this."); return 1; } if(IsPlayerInBusiness(playerid)) { BusinessData[IsPlayerInBusiness(playerid)][businessCashbox]+= 150; } SendClientMessage(playerid, COLOR_YELLOW, "You purchased a Boombox. Use /boombox!"); PlayerData[playerid][pHasBoombox] = true; GiveMoney(playerid, -150); for(new i = 0; i < 37; i++){ TextDrawHideForPlayer(playerid, Buymenu_TD[i]); CancelSelectTextDraw(playerid); } } if(clickedid == Buymenu_TD[11]) { if(10 > PlayerData[playerid][pMoney]) { SendClientMessage(playerid, COLOR_ADM, "You can't afford this."); return 1; } if(IsPlayerInBusiness(playerid)) { BusinessData[IsPlayerInBusiness(playerid)][businessCashbox]+= 10; } SendClientMessage(playerid, COLOR_YELLOW, "You bought a Baseball Bat. "); GiveMoney(playerid, -10); GivePlayerGun(playerid, 5, 1, WEAPON_UNKNOWN_GIVEN); for(new i = 0; i < 37; i++) { TextDrawHideForPlayer(playerid, Buymenu_TD[i]); CancelSelectTextDraw(playerid); } } if(clickedid == Buymenu_TD[14]) { if(3 > PlayerData[playerid][pMoney]) { SendClientMessage(playerid, COLOR_ADM, "You can't afford this."); return 1; } if(IsPlayerInBusiness(playerid)) { BusinessData[IsPlayerInBusiness(playerid)][businessCashbox]+= 3; } SendClientMessage(playerid, COLOR_YELLOW, "You bought Flowers. "); GiveMoney(playerid, -3); GivePlayerGun(playerid, 14, 1, WEAPON_UNKNOWN_GIVEN); for(new i = 0; i < 37; i++){ TextDrawHideForPlayer(playerid, Buymenu_TD[i]); CancelSelectTextDraw(playerid); } } if(clickedid == Buymenu_TD[17]) { if(20 > PlayerData[playerid][pMoney]) { SendClientMessage(playerid, COLOR_ADM, "You can't afford this."); return 1; } if(IsPlayerInBusiness(playerid)) { BusinessData[IsPlayerInBusiness(playerid)][businessCashbox]+= 20; } SendClientMessage(playerid, COLOR_YELLOW, "You bought a Cane. "); GiveMoney(playerid, -20); GivePlayerGun(playerid, 15, 1, WEAPON_UNKNOWN_GIVEN); for(new i = 0; i < 37; i++){ TextDrawHideForPlayer(playerid, Buymenu_TD[i]); CancelSelectTextDraw(playerid); } } if(clickedid == Buymenu_TD[20]) { if(50 > PlayerData[playerid][pMoney]) { SendClientMessage(playerid, COLOR_ADM, "You can't afford this."); return 1; } if(IsPlayerInBusiness(playerid)) { BusinessData[IsPlayerInBusiness(playerid)][businessCashbox]+= 50; } SendClientMessage(playerid, COLOR_YELLOW, "You bought a Camera. "); GiveMoney(playerid, -50); GivePlayerGun(playerid, 43, 9999, WEAPON_UNKNOWN_GIVEN); for(new i = 0; i < 37; i++){ TextDrawHideForPlayer(playerid, Buymenu_TD[i]); CancelSelectTextDraw(playerid); } } if(clickedid == Buymenu_TD[24]) { if(200 > PlayerData[playerid][pMoney]) { SendClientMessage(playerid, COLOR_ADM, "You can't afford this."); return 1; } if(IsPlayerInBusiness(playerid)) { BusinessData[IsPlayerInBusiness(playerid)][businessCashbox]+= 200; } SendClientMessage(playerid, COLOR_YELLOW, "You bought a Mask. You may now /Mask. "); GiveMoney(playerid, -200); PlayerData[playerid][pMask] = true; for(new i = 0; i < 37; i++){ TextDrawHideForPlayer(playerid, Buymenu_TD[i]); CancelSelectTextDraw(playerid); } } if(clickedid == Buymenu_TD[28]) { if(3 > PlayerData[playerid][pMoney]) { SendClientMessage(playerid, COLOR_ADM, "You can't afford this."); return 1; } if(IsPlayerInBusiness(playerid)) { BusinessData[IsPlayerInBusiness(playerid)][businessCashbox]+= 3; } SendClientMessage(playerid, COLOR_YELLOW, "You bought a Drink! Use /usedrink, /givedrink!"); GiveMoney(playerid, -3); PlayerData[playerid][pDrinks]++; for(new i = 0; i < 37; i++){ TextDrawHideForPlayer(playerid, Buymenu_TD[i]); CancelSelectTextDraw(playerid); } } if(clickedid == Buymenu_TD[31]) { if(30 > PlayerData[playerid][pMoney]) { SendClientMessage(playerid, COLOR_ADM, "You can't afford this."); return 1; } if(IsPlayerInBusiness(playerid)) { BusinessData[IsPlayerInBusiness(playerid)][businessCashbox]+= 30; } SendClientMessage(playerid, COLOR_YELLOW, "You bought a 20 pack Cigarette! Use /smokecig, /givecig, /passcig!"); GiveMoney(playerid, -30); PlayerData[playerid][pCigarettes] += 20; for(new i = 0; i < 37; i++){ TextDrawHideForPlayer(playerid, Buymenu_TD[i]); CancelSelectTextDraw(playerid); } } if(clickedid == Buymenu_TD[34]) { if(50 > PlayerData[playerid][pMoney]) { SendClientMessage(playerid, COLOR_ADM, "You can't afford this."); return 1; } if(IsPlayerInBusiness(playerid)) { BusinessData[IsPlayerInBusiness(playerid)][businessCashbox]+= 50; } SendClientMessage(playerid, COLOR_YELLOW, "You bought a Radio. Use /radio, /setchannel."); GiveMoney(playerid, -50); PlayerData[playerid][pHasRadio] = true; for(new i = 0; i < 37; i++){ TextDrawHideForPlayer(playerid, Buymenu_TD[i]); CancelSelectTextDraw(playerid); } } if(clickedid == TD_mealMenu[4]) { if(10 > PlayerData[playerid][pMoney]) { SendClientMessage(playerid, COLOR_ADM, "You can't afford this."); return 1; } if (MealMenu[playerid][mealExists] == true) { SendClientMessage(playerid, COLOR_ADM, "ERROR: You're already carrying a meal tray."); ShowMealMenu(playerid, false); CancelSelectTextDraw(playerid); return true; } if(IsPlayerInBusiness(playerid)) { BusinessData[IsPlayerInBusiness(playerid)][businessCashbox]+= 10; } GiveMoney(playerid, -10); ShowMealMenu(playerid, false); CancelSelectTextDraw(playerid); PlayerData[playerid][pCarryingMeal] = true; MealMenu[playerid][mealExists] = true; SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); MealMenu[playerid][mealModel] = 2220; SetPlayerAttachedObject(playerid, 9, 2220, 1, 0.027000, 0.426000, -0.268000, 127.699913, 119.700027, -66.799972);//MealMenu[playerid][mealPos][0], MealMenu[playerid][mealPos][1], MealMenu[playerid][mealPos][2]); SetPlayerHealth(playerid, PlayerData[playerid][pMaxHealth]); SendClientMessage(playerid, COLOR_ADM, "You bought a meal! Use /meal to see what you can do."); } if(clickedid == TD_mealMenu[8] || clickedid == TD_mealMenu[12]) { return SendClientMessage(playerid, COLOR_ADM, "We're out of this item!"); } if(clickedid == TD_mealMenu[16]) { ShowMealMenu(playerid, false); CancelSelectTextDraw(playerid); } if(GetPVarInt(playerid, "ViewingWarehouseMenu") == 1) { for(new i; i < 36; i++) { if(clickedid == WarehouseMenu[i]) { UpdateWarehouseMenu(playerid, i); } } } } else if(Text:clickedid == INVALID_TEXT_DRAW){ for(new i = 0; i < 37; i++) { TextDrawHideForPlayer(playerid, Buymenu_TD[i]); } if(PlayerData[playerid][pPhoneline] == GUN_SHOP_NUMBER) HideWarehouseMenu(playerid, 0); else HideWarehouseMenu(playerid); ShowMealMenu(playerid, false); DisplayClothingMenu(playerid, true); HideVehicleUI(playerid, 0); DeletePVar(playerid, "Viewing_OwnedCarList"); } return false; } public OnVehicleSirenStateChange(playerid, vehicleid, newstate) { if (PlayerData[playerid][pLAWduty]) { if (IsValidFactionCar(vehicleid)) { if(FactionCar[vehicleid][carSirens]) { if(newstate && !FactionCar[vehicleid][carSirenOn]) { new model = GetVehicleModel(vehicleid), preset = -1; for(new i = 0; i < sizeof(g_SirenPresets); i++) { if(model == g_SirenPresets[i][SirenForModel]) { preset = i; } } if(preset != -1) { FactionCar[vehicleid][carSirenObject] = CreateDynamicObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1, -1, -1, 20.0); AttachDynamicObjectToVehicle(FactionCar[vehicleid][carSirenObject], vehicleid, g_SirenPresets[preset][PosX], g_SirenPresets[preset][PosY], g_SirenPresets[preset][PosZ], 0.0, 0.0, 0.0); FactionCar[vehicleid][carSirenOn] = true; } } else { DestroyDynamicObject(FactionCar[vehicleid][carSirenObject]); FactionCar[vehicleid][carSirenOn] = false; } } } } return 1; } /*CMD:gendertest(playerid, params[]) { if(PlayerData[playerid][pGender] == 1) return SendClientMessage(playerid, COLOR_WHITE, "MALE"); else if(PlayerData[playerid][pGender] == 2) return SendClientMessage(playerid, COLOR_WHITE, "FEMALE"); return 1; } CMD:skintest(playerid, params[]) { if(PlayerData[playerid][pAdmin] < 1) return false; SetPlayerSkin(playerid, 20000); SendClientMessage(playerid, COLOR_WHITE, "[DEBUG] Skin set to 20000 (TESTING CUSTOM MODELS)"); return 1; }*/ CMD:setadmin(playerid, params[]) { if(!pLoggedIn[playerid]) return false; if(PlayerData[playerid][pAdmin] < 5 && !IsPlayerAdmin(playerid)) return false; new playerb, level; if (sscanf(params, "ui", playerb, level)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setadmin [playerid/PartofName] [level (0-5)]"); if (!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if (!pLoggedIn[playerid]) return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); if (level < 0 || (level > 5 && level != 6)) return SendClientMessage(playerid, COLOR_ADM, "Invalid admin level."); else if (level == 6) return SendClientMessage(playerid, COLOR_ADM, "ACCESS DENIED:{FFFFFF} This admin rank cannot be set ingame. Please contact a Developer."); //format(str, sizeof(str), ); SendAdminMessage(COLOR_ORANGE, sprintf("AdmCmd: %s made %s a level %i admin.", ReturnName(playerid, 1), ReturnName(playerb, 1), level)); PlayerData[playerb][pAdmin] = level; SaveSQLInt(PlayerData[playerid][pSQLID], "players", "AdminLevel", PlayerData[playerid][pAdmin]); WriteLog("admin_logs/samplogs/setadmin_log.txt", "[%s] %s has set %s's admin level to %d.", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerb, 1), level); printf("Server: [%s] %s was made an admin by %s (level %i).", ReturnDate(), ReturnName(playerb, 1), ReturnName(playerid, 1), level); return true; } CMD:adm(playerid, params[]) return cmd_aduty(playerid, params); CMD:adminduty(playerid, params[]) return cmd_aduty(playerid, params); CMD:aduty(playerid, params[]) { if (!PlayerData[playerid][pAdmin]) return false; new str[128]; if (PlayerData[playerid][pAdminDuty] == false) { PlayerData[playerid][pAdminDuty] = true; format(str, sizeof(str), "AdmCmd: %s is now on admin duty.", ReturnName(playerid, 1)); SendAdminMessage(COLOR_YELLOW, str); GetPlayerHealth(playerid, oldHealth[playerid]); SetPlayerColor(playerid, COLOR_ADMIN); foreach (new i : Player) { if (PlayerData[i][pMasked]) { ShowPlayerNameTagForPlayer(playerid, i, 1); } } Streamer_Update(playerid); } else { PlayerData[playerid][pAdminDuty] = false; format(str, sizeof(str), "AdmCmd: %s is now off admin duty.", ReturnName(playerid, 1)); SendAdminMessage(COLOR_YELLOW, str); if (PlayerData[playerid][pLAWduty]) SetPlayerColor(playerid, COLOR_COP); else if (PlayerData[playerid][pHelperDuty]) SetPlayerColor(playerid, COLOR_HELPER); else if (StartedTaxiJob[playerid]) SetPlayerColor(playerid, COLOR_YELLOW); else SetPlayerColor(playerid, COLOR_WHITE); foreach (new i : Player) { if (PlayerData[i][pMasked]) { ShowPlayerNameTagForPlayer(playerid, i, 0); } } Streamer_Update(playerid); SetPlayerHealth(playerid, oldHealth[playerid]); } return true; } CMD:a(playerid, params[]) return cmd_admin(playerid, params); CMD:admin(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); if(isnull(params)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /admin [admin chat]"); new str[128]; if(strlen(params) > 84) { format(str, sizeof(str), "** %s(%s): %.84s", ReturnName(playerid, 1), PlayerData[playerid][pForumName], params); SendAdminMessage(0x6CEFF0FF, str); format(str, sizeof(str), "** %s(%s): ...%s", ReturnName(playerid, 1), PlayerData[playerid][pForumName], params[84]); SendAdminMessage(0x6CEFF0FF, str); } else { format(str, sizeof(str), "** %s(%s): %s", ReturnName(playerid, 1), PlayerData[playerid][pForumName], params); SendAdminMessage(0x6CEFF0FF, str); } WriteLog("admin_logs/adminchat_log.txt", "[%s] %s said: %s", ReturnDate(), ReturnName(playerid, 1), params); return true; } CMD:la(playerid, params[]) { if(PlayerData[playerid][pAdmin] < 4) return false; new string[128]; if(isnull(params)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /la [lead admin text]"); foreach(new i : Player) { if(PlayerData[i][pAdmin] >= 4) { if(strlen(params) > 84) { format(string, sizeof(string), "** %s: %.84s", ReturnName(playerid, 1), params); SendClientMessage(i, COLOR_DARKGREEN, string); format(string, sizeof(string), "** %s: ...%s", ReturnName(playerid, 1), params[84]); SendClientMessage(i, COLOR_DARKGREEN, string); } else { format(string, sizeof(string), "** %s: %.s", ReturnName(playerid, 1), params); SendClientMessage(i, COLOR_DARKGREEN, string); } } } WriteLog("admin_logs/leadchat_log.txt", "[%s] %s said: %s", ReturnDate(), ReturnName(playerid), params); return true; } // Level 1 CMD:goto(playerid, params[]) { if(!pLoggedIn[playerid]) return true; if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb, id, location[128], string[90], str[128], Float:pos[3]; if(sscanf(params, "u", playerb)) { SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /goto [playerid OR name]"); SendClientMessage(playerid, COLOR_ADM, "[ ! ]{FFFFFF} ls, lv, sf, prison, idlewood, property, business, door"); SendClientMessage(playerid, COLOR_ADM, "[ ! ]{FFFFFF} faction, pns, car, mark, tolls, spawn, furniture"); SendClientMessage(playerid, COLOR_ADM, "[ ! ]{FFFFFF} pgarage, graffiti, map, entrance"); return 1; } if(playerb == INVALID_PLAYER_ID) { if(sscanf(params, "s[128]S()[90]", location, string)) { SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /goto [playerid OR name]"); SendClientMessage(playerid, COLOR_ADM, "[ ! ]{FFFFFF} ls, lv, sf, idlewood, pd, property, business faction, car, interiors"); return true; } if(!strcmp(location, "ls", true)){ SendPlayer(playerid, 1514.1836, -1677.8027, 14.0469, 0, 0); return SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); } else if(!strcmp(location, "lv", true)){ SendPlayer(playerid, 1721.1599, 1444.5464, 10.5450, 0, 0); return SendClientMessage(playerid, COLOR_GREY, "You have been teleported."); } else if(!strcmp(location, "sf", true)){ SendPlayer(playerid, -1751.6312, -607.6387, 16.2367, 0, 0); return SendClientMessage(playerid, COLOR_GREY, "You have been teleported."); } else if(!strcmp(location, "lv", true)){ SendPlayer(playerid, 2098.6453,-1760.2810, 13.5625, 0, 0); return SendClientMessage(playerid, COLOR_GREY, "You have been teleported."); } else if(!strcmp(location, "idlewood", true)){ SendPlayer(playerid, 2083.3252, -1758.8643, 13.5625, 0, 0); return SendClientMessage(playerid, COLOR_GREY, "You have been teleported."); } else if(!strcmp(location, "prison", true)){ SendPlayer(playerid, -351.7723, 1597.3220, 76.3849, 0, 0); return SendClientMessage(playerid, COLOR_GREY, "You have been teleported."); } else if(!strcmp(location, "spawn", true)){ SendPlayer(playerid, 1642.1362, -2332.5950, -2.6797, 0, 0); return SendClientMessage(playerid, COLOR_GREY, "You have been teleported."); } else if(!strcmp(location, "property", true)){ if(sscanf(string, "d", id))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /goto property [propid]"); if(id < 1 || id > MAX_PROPERTY || !PropertyData[id][propertyid]) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid house ID."); SendPlayer(playerid, PropertyData[id][propertyExterior][0], PropertyData[id][propertyExterior][1], PropertyData[id][propertyExterior][2], PropertyData[id][propertyExteriorID], PropertyData[id][propertyExteriorWorld]); if(!PropertyData[id][propertyOwnerSQL]) format(str, sizeof(str), "SERVER: You teleported to property %d that's for sale.", id); else format(str, sizeof(str), "SERVER: You teleported to property %d owned by %s.", id, ReturnSQLName(PropertyData[id][propertyOwnerSQL])); SendClientMessage(playerid, COLOR_YELLOW, str); return true; } else if(!strcmp(location, "business", true)){ if(sscanf(string, "d", id))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /goto business [bizid]"); if(id < 1 || id > MAX_BUSINESS || !BusinessData[id][businessID]) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid business ID."); SendPlayer(playerid, BusinessData[id][businessExt][0], BusinessData[id][businessExt][1], BusinessData[id][businessExt][2], 0, 0); if (!BusinessData[id][businessOwnerSQL]) format(str, sizeof(str), "SERVER: You teleported to business %d that's for sale", id); else format(str, sizeof(str), "SERVER: You teleported to business %d owned by %s", id, ReturnSQLName(BusinessData[id][businessOwnerSQL])); SendClientMessage(playerid, COLOR_YELLOW, str); return true; } else if(!strcmp(location, "door", true)){ if(sscanf(string, "d", id))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /goto door [doorid]"); if(id > MAX_DOORS || !DoorData[id][doorID])return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid door ID."); SendPlayer(playerid, DoorData[id][doorPos][0], DoorData[id][doorPos][1], DoorData[id][doorPos][2], DoorData[id][doorPosWorld], DoorData[id][doorPosIntID]); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); return true; } else if(!strcmp(location, "pgarage", true)){ if(sscanf(string, "d", id))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /goto pgarage [property garage id]"); if(id > MAX_PROPERTY_GARAGES || !GarageData[id][garageSQLID]) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid property garage."); SendPlayer(playerid, GarageData[id][garagePos][0], GarageData[id][garagePos][1], GarageData[id][garagePos][2], 0, 0); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); return true; } else if(!strcmp(location, "furniture", true)){ if(sscanf(string, "d", id))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /goto furniture [ferid] "); if(!FurnitureData[id][furnitureSQLID])return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid door ID."); SendPlayer(playerid, FurnitureData[id][furniturePos][0], FurnitureData[id][furniturePos][1], FurnitureData[id][furniturePos][2], PropertyData[FurnitureData[id][furniturePropertyID]][propertyInteriorID], PropertyData[FurnitureData[id][furniturePropertyID]][propertyInteriorWorld]); return true; } else if(!strcmp(location, "faction", true)){ if(sscanf(string, "d", id))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /goto faction [factionid]"); if(id < 1 || id > MAX_FACTIONS || !FactionData[id][factionID]) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You have specified an invalid faction ID."); format(str, sizeof(str), "SERVER: You teleported to %s's faction spawn.", FactionData[id][factionName]); SendClientMessage(playerid, COLOR_YELLOW, str); SendPlayer(playerid, FactionData[id][factionSpawn][0], FactionData[id][factionSpawn][1], FactionData[id][factionSpawn][2], 0, 0); return true; } else if(!strcmp(location, "pns", true)){ if(sscanf(string, "d", id))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /goto pns [pns id]"); if(id < 1 || id > MAX_PAYNSPRAY || !PNSData[id][pnsID]) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You have specified an invalid Pay n Spray ID."); format(str, sizeof(str), "SERVER: You teleported to Pay n' Spray %d", id); SendClientMessage(playerid, COLOR_YELLOW, str); SendPlayer(playerid, PNSData[id][pnsEntrance][0], PNSData[id][pnsEntrance][1], PNSData[id][pnsEntrance][2], 0, 0); return true; } else if(!strcmp(location, "tolls", true)){ if(sscanf(string, "d", id))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /goto tolls [toll id]"); if(id < 1 || id > MAX_TOLLS || !TollsData[id][tollID]) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You have specified an invalid toll booth ID."); format(str, sizeof(str), "SERVER: You teleported to Toll Booth %d", id); SendClientMessage(playerid, COLOR_YELLOW, str); SendPlayer(playerid, TollsData[id][tollPointA][0], TollsData[id][tollPointA][1], TollsData[id][tollPointA][2], 0, 0); return true; } else if(!strcmp(location, "car", true)){ if(sscanf(string, "d", id))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /goto car [vehicleid]"); if(id < 0 || id > MAX_VEHICLES || !IsValidVehicle(id))return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You have specified an invalid vehicle ID."); new Float: Pos[3]; GetVehiclePos(id, Pos[0], Pos[1], Pos[2]); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, Pos[0], Pos[1], Pos[2], GetVehicleInterior(id), GetVehicleVirtualWorld(id)); return true; } else if(!strcmp(location, "mark", true)){ SendPlayer(playerid, PlayerData[playerid][pMark][0], PlayerData[playerid][pMark][1], PlayerData[playerid][pMark][2], 0, 0); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); return true; } else if(!strcmp(location, "graffiti", true)){ if (sscanf(string, "d", id))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /goto graffiti [id]"); if(id < 0 || id > MAX_GRAFFITI_SPOTS)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} Graffiti's only exist between 0-30."); SendPlayer(playerid, g_aGraffitiData[id][graffitiPosX], g_aGraffitiData[id][graffitiPosY], g_aGraffitiData[id][graffitiPosZ], 0, 0); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); return true; } else if(!strcmp(location, "map", true)){ if(sscanf(string, "d", id)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /goto map [id]"); if(id < 0 || id > MAX_SERVER_OBJECTS || !ObjectData[id][ObjectDBID]) return SendClientMessage(playerid, COLOR_ADM, "SERVER: Invalid ID."); SendPlayer(playerid, ObjectData[id][Object_PosX], ObjectData[id][Object_PosY], ObjectData[id][Object_PosZ], ObjectData[id][Object_Interior], ObjectData[id][Object_World]); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); return 1; } else if(!strcmp(location, "entrance", true)){ if(sscanf(string, "d", id))return SendClientMessage(playerid, COLOR_ADM, "USAGE: /goto entrance [ID]"); if(id < 0 || id > 30 || !Entrances[id][InteriorDBID]) return SendClientMessage(playerid, COLOR_ADM, "SERVER: Invalid ID."); SendPlayer(playerid, Entrances[id][Entrance][0], Entrances[id][Entrance][1], Entrances[id][Entrance][2], Entrances[id][EntranceInteriorID], Entrances[id][EntranceWorld]); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); return 1; } else return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); } if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); if(PlayerData[playerb][pSpectator] != -1)return SendClientMessage(playerid, COLOR_GREY, "Their spectating someone already."); if (IsPlayerInBusiness(playerid)) PlayerData[playerid][pInsideBusiness] = 0; GetPlayerPos(playerb, pos[0], pos[1], pos[2]); SendPlayer(playerid, pos[0] + 1, pos[1], pos[2], GetPlayerInterior(playerb), GetPlayerVirtualWorld(playerb)); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); return true; } CMD:gethere(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); new playerb, Float:pos[3]; if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /gethere [playerid/PartofName]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); GetPlayerPos(playerid, pos[0], pos[1], pos[2]); SendPlayer(playerb, pos[0], pos[1], pos[2], GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); return true; } CMD:kick(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pHelper] && !PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); new playerb, reason[128], query[400], str[128]; if(sscanf(params, "us[128]", playerb, reason)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /kick [playerid/PartofName] [reason]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(PlayerData[playerb][pAdmin] > PlayerData[playerid][pAdmin])return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You can't kick higher level admins."); if(strlen(reason) > 55) { SendMessageToAll(COLOR_ADM, "AdmCmd: %s was kicked by %s, Reason: %.55s", ReturnName(playerb, 1), ReturnName(playerid, 1), reason); SendMessageToAll(COLOR_ADM, "AdmCmd: ...%s", reason[55]); } else { SendMessageToAll(COLOR_ADM, "AdmCmd: %s was kicked by %s, Reason: %s", ReturnName(playerb, 1), ReturnName(playerid, 1), reason); } for(new i = 1; i < MAX_ADMIN_NOTES; i++) { if(aNotesData[playerb][i][anote_SQLID] != 0) { if(aNotesData[playerb][i][anote_active]) { if(strlen(aNotesData[playerb][i][anote_reason]) > 45) { format(str, sizeof(str), "Player %s has %d active OnAdminAction notes on him, last is: %.45s", ReturnName(playerb, 1), CountAdminNotes(playerb), aNotesData[playerb][i][anote_reason]); adminWarn(1, str); format(str, sizeof(str), "...%s", aNotesData[playerb][i][anote_reason][45]); adminWarn(1, str); } else { format(str, sizeof(str), "Player %s has %d active OnAdminAction notes on him, last is: %s", ReturnName(playerb, 1), CountAdminNotes(playerb), aNotesData[playerb][i][anote_reason]); adminWarn(1, str); } } } } printf("[DEBUG] AdmCmd: %s was kicked by %s, Reason: %s", ReturnName(playerb, 1), ReturnName(playerid, 1), reason); mysql_format(m_Handle, query, sizeof(query), "INSERT INTO log_kicks (`Name`, `Reason`, `KickedBy`, `Date`, `IP`) VALUES('%e', '%e', '%e', '%e', '%e')", ReturnName(playerb, 1), reason, ReturnName(playerid, 1), ReturnDateLog(), ReturnIP(playerb)); mysql_pquery(m_Handle, query); WriteLog("admin_logs/punishments/kick_log.txt", "[%s] %s kicked %s, Reason: %s", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerb, 1), reason); KickEx(playerb); return true; } CMD:offlineajail(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); new playerb[30], minutes, reason[128], query[128]; if(sscanf(params, "s[30]ds[128]", playerb, minutes, reason))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /offlineajail [Firstname_Lastname] [time] [reason]"); if(minutes < 1)return SendClientMessage(playerid, COLOR_GREY, "You can't admin jail a player for under 1 minute."); PlayerData[playerid][pSetTime] = minutes; format(PlayerData[playerid][pSetReason], 128, "%s", reason); mysql_format(m_Handle, query, sizeof(query), "SELECT Name, OfflineAjail, AjailTime, OfflineAjailReason FROM `players` WHERE Name = '%e'", playerb); mysql_pquery(m_Handle, query, "SQL_OnOfflineJail", "i", playerid); return true; } CMD:ajail(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); new playerb, minutes, query[400], reason[128], str[128]; if(sscanf(params, "uds[128]", playerb, minutes, reason)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /ajail [playerid/PartofName] [minutes] [reason]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); if(minutes < 1)return SendClientMessage(playerid, COLOR_GREY, "You can't admin jail a player for under 1 minute."); ClearAnimations(playerb); SetPlayerPos(playerb, 2578.929931, 2658.771728, 10.820312); SetPlayerVirtualWorld(playerb, playerb); SetPlayerInterior(playerb, 0); ResetHouseVar(playerid); ClearPlayerWeapons(playerid, 0); PlayerData[playerb][pAjailed] = true; PlayerData[playerb][pAjailTime] = minutes * 60; if(StartedTruckerMission[playerb]) { EndTruckerMission(playerb); } if(InTaxiRide[playerb]) { foreach(new i : Player) if(PlayerData[i][pSQLID] == TaxiDriver[playerb]) { SendClientMessage(i, COLOR_YELLOW, "-> A person in your taxi was admin jailed. You were compensated regardless."); } EndTaxiFair(playerb); } if(StartedTaxiJob[playerb] && TaxiFairStarted[playerb]) { foreach(new i : Player) if(TaxiDriver[i] == PlayerData[playerb][pSQLID]) { SendClientMessage(i, COLOR_YELLOW, "-> Your taxi driver was admin jailed. The fair ended."); EndTaxiFair(i); } EndTaxiFairDriver(playerb); } if(OrderedWeapon[playerb]) ClearPlayerOrder(playerid); if(strlen(reason) > 45) { SendMessageToAll(COLOR_ADM, "AdmCmd: %s has been admin jailed by %s for %d minutes, Reason: %.45s", ReturnName(playerb, 1), ReturnName(playerid, 1), minutes, reason); SendMessageToAll(COLOR_ADM, "AdmCmd: ...%s", reason[45]); } else { SendMessageToAll(COLOR_ADM, "AdmCmd: %s has been admin jailed by %s for %d minutes, Reason: %s", ReturnName(playerb, 1), ReturnName(playerid, 1), minutes, reason); } for(new i = 1; i < MAX_ADMIN_NOTES; i++) { if(aNotesData[playerb][i][anote_SQLID] != 0) { if(aNotesData[playerb][i][anote_active]) { if(strlen(aNotesData[playerb][i][anote_reason]) > 45) { format(str, sizeof(str), "Player %s has %d active OnAdminAction notes on him, last is: %.45s", ReturnName(playerb, 1), CountAdminNotes(playerb), aNotesData[playerb][i][anote_reason]); adminWarn(1, str); format(str, sizeof(str), "...%s", aNotesData[playerb][i][anote_reason][45]); adminWarn(1, str); } else { format(str, sizeof(str), "Player %s has %d active OnAdminAction notes on him, last is: %s", ReturnName(playerb, 1), CountAdminNotes(playerb), aNotesData[playerb][i][anote_reason]); adminWarn(1, str); } } } } mysql_format(m_Handle, query, sizeof(query), "INSERT INTO log_ajail (`Name`, `Reason`, `JailedBy`, `Date`, `Time`, `IP`) VALUES('%e', '%e', '%e', '%e', %i, '%e')", ReturnName(playerb, 1), reason, ReturnName(playerid, 1), ReturnDateLog(), minutes, ReturnIP(playerb)); mysql_pquery(m_Handle, query); WriteLog("admin_logs/punishments/ajail_log.txt", "[%s] %s has admin jailed %s for %d minutes, Reason: %s", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerb, 1), minutes, reason); return true; } CMD:release(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); new playerb; if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /release [playerid/PartofName]"); if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); if(!PlayerData[playerb][pAjailed] && !PlayerData[playerb][pICJailed]) return SendClientMessage(playerid, COLOR_GREY, "That player isn't in admin jail or jail."); if(PlayerData[playerb][pAjailed]) { SendMessageToAll(COLOR_ADM, "AdmCmd: %s has been released from admin jail by %s.", ReturnName(playerb, 1), ReturnName(playerid, 1)); PlayerData[playerb][pAjailed] = false; PlayerData[playerb][pAjailTime] = 0; } if(PlayerData[playerb][pICJailed]) { SendMessageToAll(COLOR_ADM, "AdmCmd: %s has been released from prison/jail by %s.", ReturnName(playerb, 1), ReturnName(playerid, 1)); PlayerData[playerb][pICJailTime] = 0; PlayerData[playerb][pICJailed] = 0; PlayerData[playerb][pICJailNotify] = 0; DestroyDynamic3DTextLabel(PlayerData[playerid][pICJail3D]); TotalJailees--; } SendPlayer(playerb, 1553.0421, -1675.4706, 16.1953, 0, 0); SendClientMessage(playerb, COLOR_GREY, "You have paid your debt to society."); WriteLog("admin_logs/punishments/release_log.txt", "[%s] %s released %s from admin jail", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerb, 1)); if (IsValidDynamic3DTextLabel(PlayerData[playerb][pICJail3D])) { DestroyDynamic3DTextLabel(PlayerData[playerb][pICJail3D]); } return true; } CMD:jetpack(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); PlayerData[playerid][pJetpack] = 1; SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK); return true; } CMD:setskin(playerid, params[]) { if(!pLoggedIn[playerid]) return true; if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb, skinid, string[128]; if(sscanf(params, "ui", playerb, skinid)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setskin [playerid/PartofName] [skinid]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); if((skinid <= 0 || skinid == 74 || skinid > 50000) && PlayerData[playerid][pAdmin] != 6) return SendClientMessage(playerid, COLOR_GREY, "You specified a skin ID that isn't valid."); PlayerData[playerb][pSkin] = skinid; SetPlayerSkin(playerb, skinid); format(string, sizeof(string), "AdmCmd: %s set %s's skin to %d", ReturnName(playerid, 1), ReturnName(playerb, 1), skinid); SendClientMessage(playerid, COLOR_GREY, string); SaveSQLInt(PlayerData[playerid][pSQLID], "players", "Skin", PlayerData[playerid][pSkin]); WriteLog("admin_logs/setskin_log.txt", "[%s] %s has set %s's skin id to %d.", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerb, 1), skinid); return true; } CMD:setint(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin] && !PlayerData[playerid][pHelper])return UnAuthMessage(playerid); new playerb, interior, string[128]; if(sscanf(params, "ui", playerb, interior)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setint [playerid/PartofName] [interiorid]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); SetPlayerInterior(playerb, interior); format(string, sizeof(string), "AdmCmd: %s set %s's interior to %d", ReturnName(playerid, 1), ReturnName(playerb, 1), interior); SendClientMessage(playerid, COLOR_GREY, string); if(playerb != playerid){ format(string, sizeof(string), "AdmCmd: %s set %s's interior to %d", ReturnName(playerid, 1), ReturnName(playerb, 1), interior); SendClientMessage(playerb, COLOR_GREY, string); } return true; } CMD:setworld(playerid, params[]) { if(!pLoggedIn[playerid]) return true; if(!PlayerData[playerid][pAdmin] && !PlayerData[playerid][pHelper]) return UnAuthMessage(playerid); new playerb, world, string[128]; if(sscanf(params, "ui", playerb, world)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setworld [playerid/PartofName] [virtualworld]"); if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); SetPlayerVirtualWorld(playerb, world); format(string, sizeof(string), "AdmCmd: %s set %s's virtual world to %d", ReturnName(playerid, 1), ReturnName(playerb, 1), world); SendClientMessage(playerid, COLOR_GREY, string); if(playerb != playerid){ format(string, sizeof(string), "AdmCmd: %s set %s's virtual world to %d", ReturnName(playerid, 1), ReturnName(playerb, 1), world); SendClientMessage(playerb, COLOR_GREY, string); } return true; } // CMD:adminsys(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new user[60], type[30], query[256]; if(sscanf(params, "s[60]s[30]", user, type)) return SendClientMessage(playerid, COLOR_RED, "SERVER: /adminsys [username] [details, listaccounts]"); if(!ReturnSQLFromName(user)) return SendClientMessage(playerid, COLOR_ADM, "SERVER: The user you specified doesn't exist. "); if(!strcmp(type, "details")) { Message(playerid, COLOR_GOLD, "* You're viewing %s's user data.", user); mysql_format(m_Handle, query, sizeof(query), "SELECT * FROM players WHERE id = %i", ReturnSQLFromName(user)); new Cache:cache = mysql_query(m_Handle, query); new RegisterIP[32]; new LastConnection[90]; new LastConnectLength; new Money, Bank, Levelx, Exp, MaskID, MaskIDEx, Adminjailed, MaxHealth, Crashed; new ActiveIP[32]; cache_get_value_name(0, "RegisterIP", RegisterIP); cache_get_value_name_int(0, "Money", Money); cache_get_value_name_int(0, "Bank", Bank); cache_get_value_name_int(0, "Level", Levelx); cache_get_value_name_int(0, "Exp", Exp); cache_get_value_name(0, "IP", ActiveIP, 32); cache_get_value_name_int(0, "MaskID", MaskID); cache_get_value_name_int(0, "MaskIDEx", MaskIDEx); cache_get_value_name_int(0, "Adminjailed", Adminjailed); cache_get_value_name_int(0, "MaxHealth", MaxHealth); cache_get_value_name_int(0, "Crashed", Crashed); cache_get_value_name(0, "LastConnection", LastConnection, 90); cache_get_value_name_int(0, "LastConnectLength", LastConnectLength); new Float:LastHealth; cache_get_value_name_float(0, "LastHealth", LastHealth); new Float:LastArmor; cache_get_value_name_float(0, "LastArmor", LastArmor); new Phone; cache_get_value_name_int(0, "Phone", Phone); new BurnerPhone; cache_get_value_name_int(0, "BurnerPhoneNumber", BurnerPhone); new HWID[90]; cache_get_value_name(0, "HWID", HWID, 90); cache_delete(cache); Message(playerid, COLOR_GRAD2, "Registered IP Address:[%s] Last IP Address:[%s]", RegisterIP, ActiveIP); Message(playerid, COLOR_GRAD1, "Money:[$%s] Bank:[$%s]", MoneyFormat(Money), MoneyFormat(Bank)); Message(playerid, COLOR_GRAD2, "Level:[%i] EXP: [%i] MaskID:[%d_%d] MaxHealth:[%i/150] Admin jailed:[%s]", Levelx, Exp, MaskID, MaskIDEx, MaxHealth, (Adminjailed != 1) ? ("No") : ("Yes")); Message(playerid, COLOR_GRAD1, "LastArmor:[%.2f] LastHealth:[%.2f] Phone:[%i] BurnerPhone:[%i]", LastArmor, LastHealth, Phone, BurnerPhone); Message(playerid, COLOR_GRAD2, "Crashed last connection:[%s] Last Connection:[%s]", (Crashed != 1) ? ("No") : ("Yes"), LastConnection); Message(playerid, COLOR_GRAD1, "Last Connection length:[%i Minutes]", LastConnectLength); mysql_format(m_Handle, query, sizeof(query), "SELECT id FROM bans WHERE Name = '%e'", user); mysql_tquery(m_Handle, query, "CheckNameForBan", "is", playerid, user); mysql_format(m_Handle, query, sizeof(query), "SELECT id, Name FROM `bans` WHERE `IP` = '%e' AND `HWID` = '%e' OR `HWID` = '%e' OR `IP` = '%e'", ActiveIP, HWID, HWID, ActiveIP); mysql_tquery(m_Handle, query, "OnBanCheck", "is", playerid, user); mysql_format(m_Handle, query, sizeof(query), "SELECT weapon_id, ammo FROM player_weapons WHERE player_dbid = %i", ReturnSQLFromName(user)); mysql_tquery(m_Handle, query, "OnWeaponsCheck", "i", playerid); } else if(!strcmp(type, "listaccounts")) { Message(playerid, COLOR_GOLD, "* You're viewing accounts associated with %s.", user); mysql_format(m_Handle, query, sizeof(query), "SELECT IP FROM players WHERE id = %i", ReturnSQLFromName(user)); mysql_tquery(m_Handle, query, "OnListAccounts", "is", playerid, user); } else return SendClientMessage(playerid, COLOR_ADM, "SERVER: Invalid Parameter."); return 1; } CMD:adminp(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); ShowAdminPanel(playerid); return 1; } CMD:ipsys(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return 0; new user[60], query[256]; if(sscanf(params, "s[60]", user)) return SendClientMessage(playerid, COLOR_RED, "SERVER: /ipsys [ip address]"); if(!DoesIPExist(user)) return SendClientMessage(playerid, COLOR_ADM, "SERVER: That IP address isn't in our database."); mysql_format(m_Handle, query, sizeof(query), "SELECT Name FROM players WHERE IP = '%e' AND RegisterIP = '%e' OR IP = '%e' OR RegisterIP = '%e'", user, user, user, user); new Cache:cache = mysql_query(m_Handle, query); Message(playerid, COLOR_GOLD, "* You're viewing IP Address (%s) associations.", user); new Name[34]; for(new i = 0; i < cache_num_rows(); i++) { cache_get_value_name(i, "Name", Name); Message(playerid, COLOR_GOLD, "** %s", Name); } cache_delete(cache); return 1; } CMD:bansys(playerid, params[]) { new query[128], id; if(!PlayerData[playerid][pAdmin] && !PlayerData[playerid][pHelper]) return 0; if(isnull(params)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /bansys [ban ID or username]"); if(IsNumeric(params)) { id = strval(params); mysql_format(m_Handle, query, sizeof(query), "SELECT * FROM bans WHERE id = %i", id); mysql_tquery(m_Handle, query, "OnBanSys", "i", playerid); } else { mysql_format(m_Handle, query, sizeof(query), "SELECT * FROM bans WHERE Name = '%e'", params); mysql_tquery(m_Handle, query, "OnBanSys", "i", playerid); } return 1; } CMD:arecord(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return 0; new str_a[30], b_str[90], query[128]; if(sscanf(params, "s[30]s[90]", str_a, b_str)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /arecord [username] [bans, ajails, kicks]"); if(!ReturnSQLFromName(str_a)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: The username you specified doesn't exist."); if(!strcmp(b_str, "bans")) { mysql_format(m_Handle, query, sizeof(query), "SELECT * FROM log_bans WHERE Name = '%e' ORDER BY id DESC", str_a); mysql_tquery(m_Handle, query, "OnBanLookup", "is", playerid, str_a); } else if(!strcmp(b_str, "ajails")) { mysql_format(m_Handle, query, sizeof(query), "SELECT * FROM log_ajail WHERE Name = '%e' ORDER BY id DESC", str_a); mysql_tquery(m_Handle, query, "OnAjailLookup", "is", playerid, str_a); } else if(!strcmp(b_str, "kicks")) { mysql_format(m_Handle, query, sizeof(query), "SELECT * FROM log_kicks WHERE Name = '%e' ORDER BY id DESC", str_a); mysql_tquery(m_Handle, query, "OnKickLookup", "is", playerid, str_a); } else return SendClientMessage(playerid, COLOR_ADM, "SERVER: Invalid Parameter."); return 1; } CMD:as(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return 0; new playerb, Float:Health, Float:Armor ; if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /as [playerid/PartofName]"); if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_ADM, "SERVER: You specified an invalid player."); if(!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_ADM, "SERVER: That player hasn't logged in yet."); GetPlayerHealth(playerb, Health); GetPlayerArmour(playerb, Armor); SendClientMessage(playerid, COLOR_DARKGREEN, "____________________________________________"); Message(playerid, COLOR_ADM, "Players name: %s (Packetloss: %f)", ReturnName(playerb), NetStats_PacketLossPercent(playerb)); for(new i = 0; i < MAX_POSSIBLE_WEAPONS; i++) if(Weapon[playerb][i][eWeaponID]) { Message(playerid, COLOR_GREY, "Weapon: [%s(%i)] Ammo: [%i]", ReturnWeaponName(Weapon[playerb][i][eWeaponID]), Weapon[playerb][i][eWeaponID], Weapon[playerb][i][eWeaponAmmo]); } Message(playerid, COLOR_GREY, "Interior: [%i], World: [%i] Car ID: [%i], State: [%i], Health: [%f], Armor: [%f]", GetPlayerInterior(playerb), GetPlayerVirtualWorld(playerid), _has_spawned_vehicleid[playerb], GetPlayerState(playerb), Health, Armor); Message(playerid, COLOR_GREY, "Money out: [$%s] - Should have: [$%s] - Ajail time: [%i] Ajail: [%i] ", MoneyFormat(GetPlayerMoney(playerb)), MoneyFormat(PlayerData[playerb][pMoney]), PlayerData[playerb][pAjailTime], PlayerData[playerb][pAjailed]); Message(playerid, COLOR_GREY, "CH1: [%i] CH2: [%i] CH3: [%i] CH4: [%i] Crashed: [%s]", PlayerData[playerb][pRadio][0], PlayerData[playerb][pRadio][1], PlayerData[playerb][pRadio][2], PlayerData[playerb][pRadio][3], (PlayerData[playerb][pCrashed] != 1) ? ("No") : ("Yes")); Message(playerid, COLOR_GREY, "AFK Time: [%i] UserID: [%i] Last ME/DO: [%i] Skin: [%i] Mask: [%i_%i]", PlayerData[playerb][pPauseTime], PlayerData[playerb][pSQLID], gettime() - PlayerData[playerb][pLastEmoteTime], GetPlayerSkin(playerb), PlayerData[playerb][pMaskID], PlayerData[playerb][pMaskIDEx]); Message(playerid, COLOR_GREY, "Last CMD: [%i] Last Talk:[%i] Seconds on: [%i]", gettime() - PlayerData[playerb][pLastCMDTime], gettime() - PlayerData[playerb][pLastChat], NetStats_GetConnectedTime(playerb)); return 1; } CMD:checkmask(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new str[128], query[128], primary, sub; if(sscanf(params, "ii", primary, sub)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /checkmask Value Value (i.e: /checkmask 40404 21)"); if(primary < 200000 || sub < 40) return SendClientMessage(playerid, COLOR_ADM, "SERVER: You specified an impossible Mask ID."); mysql_format(m_Handle, query, sizeof(query), "SELECT Name FROM players WHERE MaskID = %i AND MaskIDEx = %i LIMIT 1", primary, sub); new Cache:cache = mysql_query(m_Handle, query); new Name[60]; if(!cache_num_rows()) { cache_delete(cache); format(str, sizeof(str), "[-] [Mask %d_%d] does not exist in the database.", primary, sub); SendClientMessage(playerid, COLOR_ADM, str); return 1; } cache_get_value_name(0, "Name", Name); format(str, sizeof(str), "[-] [Mask %d_%d] is used by '%s'", primary, sub, Name); SendClientMessage(playerid, COLOR_ADM, str); cache_delete(cache); return 1; } CMD:findweapon(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new weapon_id, weapon, ammo; if(sscanf(params, "i", weapon_id)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /findweapon [weapon id]"); SendClientMessage(playerid, COLOR_ADM, "Players with that weapon:"); foreach(new i : Player) { for(new f = 0; f < 13; f++) { GetPlayerWeaponData(i, f, weapon, ammo); if(weapon == weapon_id) { Message(playerid, COLOR_GREY, "%s(ID: %i) - %s [Ammo: %d]", ReturnName(i), i, ReturnWeaponName(weapon), ammo); } } } return 1; } CMD:checkvehdrugs(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new vehicleid, string[128]; if(sscanf(params, "i", vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /checkvehdrugs [vehicle id]"); if(!IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: You specified an invalid vehicle."); if(!IsValidPlayerCar(vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: That isn't a player car."); Message(playerid, COLOR_ADM, "VEHICLE ID: [%i] DBID ID: [%i] USER ID:[%i]", vehicleid, CarData[vehicleid][carID], CarData[vehicleid][carOwnerID]); for (new i = 0; i < 10; i++) { if (CarDrugData[vehicleid][i][drugQuantity] > 0) { format(string, sizeof(string), "[ {FFFFFF}%d. %s (%s: %.1f%s/%.1f%s) (Strength: %d) {FF6347}]", i, GetPackageType(CarDrugData[vehicleid][i][drugPackage]), ReturnDrugsName(CarDrugData[vehicleid][i][drugType]), CarDrugData[vehicleid][i][drugQuantity], (IsPill(CarDrugData[vehicleid][i][drugType]) == 1) ? (" Pills") : ("g"), GetPackageCapacity(CarDrugData[vehicleid][i][drugPackage], CarDrugData[vehicleid][i][drugType]), (IsPill(CarDrugData[vehicleid][i][drugType]) == 1) ? (" Pills") : ("g"), CarDrugData[vehicleid][i][drugStrength]); SendClientMessage(playerid, COLOR_WHITE, string); } } return 1; } CMD:checkvehpackages(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new vehicleid; if(sscanf(params, "i", vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /checkvehpackages [vehicle id]"); if(!IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: You specified an invalid vehicle."); if(!IsValidPlayerCar(vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: That isn't a player car."); Message(playerid, COLOR_ADM, "VEHICLE ID: [%i] DBID ID: [%i] USER ID:[%i]", vehicleid, CarData[vehicleid][carID], CarData[vehicleid][carOwnerID]); DisplayVehiclePackages(playerid, vehicleid, 0); return 1; } CMD:arealookup(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); if(isnull(params)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /arealookup [name] to lookup players in that area"); Message(playerid, COLOR_ADM, "Players in the '%s' area:", params); foreach(new i : Player) { if(!pLoggedIn[i]) continue; if(!strcmp(ReturnLocation(i), params, true)) { Message(playerid, COLOR_GREY, "%s[ID: %i] was found", ReturnName(i), i); } } return 1; } CMD:nearme(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new Float:distance, Float:x, Float:y, Float:z ; if(sscanf(params, "F(25.0)", distance)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /nearme [distance] Default 25.0 Players near you"); Message(playerid, COLOR_ADM, "Players within %f radius of you:", distance); GetPlayerPos(playerid, x, y, z); foreach(new i : Player) { if(i == playerid) continue; if(IsPlayerInRangeOfPoint(i, distance, x, y, z)) { Message(playerid, COLOR_GREY, "%s[ID: %i] Is Masked: %s Car ID: %i", ReturnName(i), i, (PlayerData[i][pMasked] != 1) ? ("No") : ("Yes"), GetPlayerVehicleID(i)); } } return 1; } CMD:watchdamages(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb; if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /watchdamages [playerid/PartofName]"); if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: Player isn't connected."); if(!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_ADM, "ERROR: Player isn't logged in."); if(!WatchingDamages[playerid][playerb]) { Message(playerid, COLOR_ADM, "You're now watching the damages %s(%i) takes.", ReturnName(playerb), playerb); WatchingDamages[playerid][playerb] = 1; } else { Message(playerid, COLOR_ADM, "You're no longer watching %s's damages.", ReturnName(playerb), playerb); WatchingDamages[playerid][playerb] = 0; } return 1; } CMD:vlog(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new vehicleid; if(sscanf(params, "i", vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /vlog [vehicleid]"); if(!IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: You specified an invalid vehicle."); if(!IsValidPlayerCar(vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: That isn't a valid player vehicle."); PlayerVlogVehicle[playerid] = vehicleid; ShowVehicleLogs(playerid, vehicleid, 1); return 1; } CMD:listvehicles(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb; if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /listvehicles [playerid/PartofName]"); if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: Player isn't connected."); if(!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_ADM, "ERROR: Player isn't logged in."); Message(playerid, COLOR_ADM, "Player %s[ID: %i] has vehicles:", ReturnName(playerb), playerb); for(new i = 0; i < MAX_OWNED_CARS; i++) if(PlayerData[playerb][pOwnedCar][i]) Message(playerid, COLOR_GREY, "Vehicle DBID: [%i]", PlayerData[playerb][pOwnedCar][i]); return 1; } CMD:log(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); return SendClientMessage(playerid, COLOR_ADM, "Command disabled. Please contact a Developer or Hossenberg for logs."); /*new playerb; if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /log [playerid/PartofName]"); if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: You specified an invalid player."); if(!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_ADM, "That player hasn't logged in yet."); PlayerLogPlayer[playerid] = playerb; ShowPlayerLogs(playerid, playerb, 1);*/ //return 1; } CMD:desync(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb; if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /desync [playerid/PartofName]"); if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: You specified an invalid player."); if(!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_ADM, "That player hasn't logged in yet."); Message(playerid, COLOR_ADM, "[ ! ] %s is %s", ReturnName(playerb), (GetPlayerDrunkLevel(playerb) != 0) ? ("not desynced right now.") : ("DESYNCED!")); return 1; } CMD:getincar(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new vehicleid, seat; new string[128]; if(sscanf(params, "ii", vehicleid, seat)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /getincar [vehicleid] [seat]"); if(seat < 0 || seat > 4) return SendClientMessage(playerid, COLOR_ADM, "ERROR: Invalid seat."); if(!IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: You specified an invalid vehicle."); if(!IsSeatAvailable(vehicleid, seat)) return SendClientMessage(playerid, COLOR_ADM, "There's a player in that seat."); if(NoEngineCar(vehicleid) && seat > 0) return SendClientMessage(playerid, COLOR_ADM, "That's a bike, use seat ID 0."); new vworld; vworld = GetVehicleVirtualWorld(vehicleid); PutPlayerInVehicle(playerid, vehicleid, seat); SetPlayerVirtualWorld(playerid, vworld); if(PlayerData[playerid][pAdmin] < 3) { format(string, sizeof(string), "%s teleported into vehicle ID %i.", ReturnName(playerid), vehicleid); adminWarn(3, string); } Message(playerid, COLOR_GREY, "You teleported into vehicle ID %i.", vehicleid); return 1; } CMD:spec(playerid, params[]) return cmd_spectate(playerid, params); CMD:spectate(playerid, params[]) { new string[128], playerb; if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(sscanf(params, "u", playerb))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /spectate [playerid/PartofName]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65534 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); if(playerb == playerid) return SendClientMessage(playerid, COLOR_ADM, "Hazard's an idiot LOL!"); if(PlayerData[playerb][pSpectator] != -1 && PlayerData[playerb][pSpecVehicle] != -1)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} That players in spectator mode already."); if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) { GetPlayerPos(playerid, PlayerData[playerid][pPos][0], PlayerData[playerid][pPos][1], PlayerData[playerid][pPos][2]); GetPlayerFacingAngle(playerid, PlayerData[playerid][pPos][3]); PlayerData[playerid][pInterior] = GetPlayerInterior(playerid); PlayerData[playerid][pWorld] = GetPlayerVirtualWorld(playerid); } SetPlayerInterior(playerid, GetPlayerInterior(playerb)); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(playerb)); TogglePlayerSpectating(playerid, true); if(!IsPlayerInAnyVehicle(playerb)) PlayerSpectatePlayer(playerid, playerb); else PlayerSpectateVehicle(playerid, GetPlayerVehicleID(playerb)); PlayerData[playerid][pSpectator] = playerb; if(PlayerData[playerid][pSpecVehicle] != -1){ PlayerData[playerid][pSpecVehicle] = -1; } if(PlayerData[playerb][pSQLID] == 1) Message(playerb, COLOR_GREY, "-> %s started spectating you...", ReturnName(playerid)); format(string, sizeof(string), "You're now spectating (%s). You can use /watchoff to stop.", ReturnName(playerb, 1)); SendClientMessage(playerid, COLOR_DARKGREEN, string); for(new i = 0; i < MAX_POSSIBLE_WEAPONS; i++) if(Weapon[playerb][i][eWeaponID]) { Message(playerid, COLOR_GREY, "Weapon: [%s(%i)] Ammo: [%i]", ReturnWeaponName(Weapon[playerb][i][eWeaponID]), Weapon[playerb][i][eWeaponID], Weapon[playerb][i][eWeaponAmmo]); } if(GetPlayerDrunkLevel(playerb) == 0)SendClientMessage(playerid, COLOR_RED, "WARNING: This player is desynced."); return true; } CMD:awc(playerid, params[]) { new string[128], vehicleid; if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(sscanf(params, "d", vehicleid))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /awc [vehicleid]"); if(!IsValidVehicle(vehicleid))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active vehicle."); if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) { GetPlayerPos(playerid, PlayerData[playerid][pPos][0], PlayerData[playerid][pPos][1], PlayerData[playerid][pPos][2]); GetPlayerFacingAngle(playerid, PlayerData[playerid][pPos][3]); PlayerData[playerid][pInterior] = GetPlayerInterior(playerid); PlayerData[playerid][pWorld] = GetPlayerVirtualWorld(playerid); } SetPlayerVirtualWorld(playerid, GetVehicleVirtualWorld(vehicleid)); TogglePlayerSpectating(playerid, true); PlayerSpectateVehicle(playerid, vehicleid); PlayerData[playerid][pSpecVehicle] = vehicleid; if(PlayerData[playerid][pSpectator] != -1){ PlayerData[playerid][pSpectator] = -1; } format(string, sizeof(string), "You're now spectating (vehicleid %d). You can use /specoff to stop.", vehicleid); SendClientMessage(playerid, COLOR_DARKGREEN, string); return true; } CMD:specoff(playerid, params[]) return cmd_stopspec(playerid, params); CMD:spectateoff(playerid, params[]) return cmd_stopspec(playerid, params); CMD:watchoff(playerid, params[]) return cmd_stopspec(playerid, params); CMD:stopspec(playerid, params[]) { if(!pLoggedIn[playerid]) return true; if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); if(PlayerData[playerid][pSpectator] == -1 && PlayerData[playerid][pSpecVehicle] == -1) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You aren't spectating anyone right now."); PlayerSpectatePlayer(playerid, INVALID_PLAYER_ID); PlayerSpectateVehicle(playerid, INVALID_VEHICLE_ID); TogglePlayerSpectating(playerid, false); return true; } CMD:masks(playerid, params[]) { new string[400], playerb; if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(!isnull(params) && !strcmp(params, "all", true)){ new count = 0; foreach(new i : Player) { if(PlayerData[i][pMasked] ==1) { format(string, sizeof(string), "%sName: %s (%d) | Mask ID: %d_%d\n", string, ReturnName(i, 1), i, PlayerData[i][pMaskID], PlayerData[i][pMaskIDEx]); ShowPlayerDialog(playerid, DIALOG_USE, DIALOG_STYLE_LIST, "Masked:", string, ">>", ""); count++; } } if(!count)return ShowPlayerDialog(playerid, DIALOG_USE, DIALOG_STYLE_LIST, "Masked:", "There are NO masked players.", ">>", ""); } if(sscanf(params, "d", playerb))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /masks [playerid/PartofName] OR `all`"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); format(string, sizeof(string), "-> %s (%d) is Mask %d_%d.", ReturnName(playerb, 1), playerb, PlayerData[playerb][pMaskID], PlayerData[playerb][pMaskIDEx]); SendClientMessage(playerid, COLOR_ADM, string); return true; } CMD:respawn(playerid, params[]) { new string[128], playerb; if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(sscanf(params, "u", playerb))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /respawn [playerid/PartofName]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); format(string, sizeof(string), "%s respawned %s", ReturnName(playerid, 1), ReturnName(playerb, 1)); adminWarn(1, string); PlayerData[playerid][pInsideApartment] = 0; PlayerData[playerid][pInsideBusiness] = 0; PlayerData[playerid][pInsideComplex] = 0; PlayerData[playerid][pInsideGarage] = 0; PlayerData[playerid][pInsideHouse] = 0; PlayerData[playerid][pLegShot] = 0; SetPlayerHealth(playerb, PlayerData[playerb][pMaxHealth]); SpawnPlayerIn(playerb); return true; } CMD:freeze(playerid, params[]) { new string[128], playerb; if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(sscanf(params, "u", playerb))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /freeze [playerid/PartofName]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); TogglePlayerControllable(playerb, false); format(string, sizeof(string), "AdmCmd: %s freezed %s.", ReturnName(playerid, 1), ReturnName(playerb, 1)); SendClientMessage(playerid, COLOR_GREY, string); if(playerb != playerid) { SendClientMessage(playerb, COLOR_GREY, string); } format(string, sizeof(string), "%s froze %s", ReturnName(playerid, 1), ReturnName(playerb, 1)); adminWarn(4, string); return true; } CMD:thaw(playerid, params[]) { new string[128], playerb; if(!pLoggedIn[playerid]) return true; if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /thaw [playerid/PartofName]"); if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); TogglePlayerControllable(playerb, true); format(string, sizeof(string), "AdmCmd: %s thawed %s.", ReturnName(playerid, 1), ReturnName(playerb, 1)); SendClientMessage(playerid, COLOR_GREY, string); if(playerb != playerid) { SendClientMessage(playerb, COLOR_GREY, string); } format(string, sizeof(string), "%s thawed %s", ReturnName(playerid, 1), ReturnName(playerb, 1)); adminWarn(4, string); return true; } CMD:ptp(playerid, params[]) { new string[128], Float:posa[3], Float:posb[3], playera, playerb; if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(sscanf(params, "uu", playera, playerb))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /ptp [sending playerid] [playerid]"); if(!IsPlayerConnected(playera))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playera] && !pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); GetPlayerPos(playera, posa[0], posa[1], posa[2]); GetPlayerPos(playerb, posb[0], posb[1], posb[2]); SendPlayer(playera, posb[0], posb[1], posb[2], GetPlayerInterior(playerb), GetPlayerVirtualWorld(playerb)); SendClientMessage(playera, COLOR_GREY, "You have been teleported"); format(string, sizeof(string), "%s teleported ID %d to ID %d.", ReturnName(playerid, 1), playera, playerb); adminWarn(1, string); return true; } CMD:p2biz(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); new playerb, bizid, string[128]; if(sscanf(params, "ud", playerb, bizid))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /p2biz [playerid/PartofName] [businessid]"); if(bizid > MAX_BUSINESS || !BusinessData[bizid][businessID])return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid business ID."); SendPlayer(playerb, BusinessData[bizid][businessExt][0], BusinessData[bizid][businessExt][1], BusinessData[bizid][businessExt][2], 0, 0); if(playerid != playerb) { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); } format(string, sizeof(string), "%s teleported %s to business %d", ReturnName(playerid, 1), ReturnName(playerb, 1), bizid); adminWarn(1, string); return true; } CMD:p2house(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); new playerb, houseid, string[128]; if(sscanf(params, "ud", playerb, houseid))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /p2house [playerid/PartofName] [propertyid]"); if(houseid > MAX_BUSINESS || !PropertyData[houseid][propertyid]) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid property ID."); SendPlayer(playerb, PropertyData[houseid][propertyExterior][0], PropertyData[houseid][propertyExterior][1], PropertyData[houseid][propertyExterior][2], PropertyData[houseid][propertyExteriorWorld], PropertyData[houseid][propertyExteriorID]); if(playerid != playerb) { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); } format(string, sizeof(string), "%s teleported %s to property %d", ReturnName(playerid, 1), ReturnName(playerb, 1), houseid); adminWarn(1, string); return true; } CMD:interiors(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new primary[2500], sub[128]; for(new i = 0; i < sizeof Interiors; i++) { format(sub, sizeof(sub), "%s\n", Interiors[i][IntName]); strcat(primary, sub); } ShowPlayerDialog(playerid, DIALOG_INTERIORS, DIALOG_STYLE_LIST, "Interiors:", primary, "Teleport", "<<"); return 1; } CMD:slap(playerid, params[]) { new playerb, string[128]; if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(sscanf(params, "u", playerb))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /slap [playerid/PartofName]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); new Float:x, Float:y, Float:z; GetPlayerPos(playerb, x, y, z); SetPlayerPos(playerb, x, y, z + 5); PlayNearbySound(playerb, 1130); format(string, sizeof(string), "AdmCmd: %s slapped %s", ReturnName(playerid, 1), ReturnName(playerb, 1)); SendClientMessage(playerid, COLOR_GREY, string); if(playerb != playerid){ SendClientMessage(playerb, COLOR_GREY, string); } return true; } CMD:slapcar(playerid, params[]) { new vehicleid, string[128]; if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(sscanf(params, "d", vehicleid))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /slapcar [vehicleid]"); if(!IsValidVehicle(vehicleid))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active vehicle."); new Float: currPos[3]; GetVehiclePos(vehicleid, currPos[0], currPos[1], currPos[2]); SetVehiclePos(vehicleid, currPos[0], currPos[1], currPos[2] + 5); format(string, sizeof(string), "AdmCmd: %s slapped vehicleid %d", ReturnName(playerid, 1), vehicleid); SendClientMessage(playerid, COLOR_GREY, string); return true; } CMD:o(playerid, params[]) return cmd_ooc(playerid, params); CMD:ooc(playerid, params[]) { if(isnull(params)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /o(oc) [text]"); if(PlayerData[playerid][pAdmin]) { if(strlen(params) > 80) { SendMessageToAll(COLOR_SAMP, "[OOC] %s: %.80s...", ReturnName(playerid, 1), params); SendMessageToAll(COLOR_SAMP, "[OOC] %s: ...%s", ReturnName(playerid, 1), params[80]); } else SendMessageToAll(COLOR_SAMP, "[OOC] %s: %s", ReturnName(playerid, 1), params); WriteLog("chat_logs/oocchat_log.txt", "[%s] %s said: %s", ReturnDate(), ReturnName(playerid, 1), params); } else { if(OOC == 1) { if(strlen(params) > 80) { SendMessageToAll(COLOR_SAMP, "[OOC] %s: %.80s...", ReturnName(playerid, 1), params); SendMessageToAll(COLOR_SAMP, "[OOC] %s: ...%s", ReturnName(playerid, 1), params[80]); } else SendMessageToAll(COLOR_SAMP, "[OOC] %s: %s", ReturnName(playerid, 1), params); WriteLog("chat_logs/oocchat_log.txt", "[%s] %s said: %s", ReturnDate(), ReturnName(playerid, 1), params); } else return UnAuthMessage(playerid); } return true; } CMD:aooc(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(isnull(params)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /aooc [text]"); SendMessageToAll(COLOR_ORANGE, "[AOOC] Admin %s (%s): %s", ReturnName(playerid, 1), PlayerData[playerid][pForumName], params); WriteLog("chat_logs/a_oocchat_log.txt", "[%s] (AOOC) %s (%s) said: %s", ReturnDate(), ReturnName(playerid, 1), PlayerData[playerid][pForumName], params); return true; } CMD:togdeath(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(PlayerData[playerid][pTogDeath]){ PlayerData[playerid][pTogDeath] = false; SendClientMessage(playerid, COLOR_ADM, "AdmCmd: You will no longer see death messages."); } else { PlayerData[playerid][pTogDeath] = true; SendClientMessage(playerid, COLOR_ADM, "AdmCmd: You will now see death messages."); } return true; } CMD:togadmwarn(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(!AdmWarmToggle[playerid]) { AdmWarmToggle[playerid] = 1; SendClientMessage(playerid, COLOR_ADM, "AdmCmd: You will now see the admin warnings!"); } else { AdmWarmToggle[playerid] = 0; SendClientMessage(playerid, COLOR_ADM, "AdmCmd: You will no longer see admin warnings!"); } return true; } CMD:togdoubleexp(playerid, params[]) { if(!pLoggedIn[playerid]) return true; if(PlayerData[playerid][pAdmin] < 5) return UnAuthMessage(playerid); if (DoubleEXP) { DoubleEXP = false; SendRconCommand("hostname [0.3.DL] San Andreas '92 Singleplayer Roleplay"); } else { DoubleEXP = true; SendRconCommand("hostname [0.3.DL] San Andreas '92 Singleplayer Roleplay [2x EXP]"); } return SendClientMessage(playerid, COLOR_ADM, sprintf("SUCCESS: You have toggled Double EXP %s!", (DoubleEXP ? "on" : "off"))); } CMD:mute(playerid, params[]) { new playerb; if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(sscanf(params, "u", playerb))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /mute [playerid/PartofName]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); if(!PlayerData[playerb][pMuted]){ SendMessageToAll(COLOR_ADM, "%s muted %s.", ReturnName(playerid, 1), ReturnName(playerb, 1)); PlayerData[playerb][pMuted] = true; } else{ SendMessageToAll(COLOR_ADM, "%s unmuted %s.", ReturnName(playerid, 1), ReturnName(playerb, 1)); PlayerData[playerb][pMuted] = false; } return true; } CMD:sethealth(playerid, params[]) { if(!pLoggedIn[playerid])return true; new string[128], playerb, health; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(sscanf(params, "uI(-1)", playerb, health)){ SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /sethealth [playerid/PartofName] [health]"); SendClientMessage(playerid, COLOR_ADM, "Warning: Leaving health blank will default set to players max health."); return true; } if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); if(health == -1){ SetPlayerHealth(playerb, PlayerData[playerb][pMaxHealth]); format(string, sizeof(string), "%s gave %d health to %s", ReturnName(playerid, 1), PlayerData[playerb][pMaxHealth], ReturnName(playerb, 1)); adminWarn(1, string); WriteLog("admin_logs/players/sethealth_log.txt", "[%s] %s set %s's health to %d.0", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerid, 1), PlayerData[playerb][pMaxHealth]); return true; } SetPlayerHealth(playerb, health); format(string, sizeof(string), "%s gave %d health to %s", ReturnName(playerid, 1), health, ReturnName(playerb, 1)); adminWarn(1, string); WriteLog("admin_logs/players/sethealth_log.txt", "[%s] %s set %s's health to %d.0", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerid, 1), health); return true; } CMD:setarmor(playerid, params[]) return cmd_setarmour(playerid, params); CMD:setarmour(playerid, params[]) { if(!pLoggedIn[playerid])return true; new string[128], playerb, armor; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(sscanf(params, "ui", playerb, armor))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setarmour [playerid/PartofName] [armor]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); SetPlayerArmour(playerb, armor); ArmorGiven[playerb] = 1; format(string, sizeof(string), "%s gave %d armor to %s", ReturnName(playerid, 1), armor, ReturnName(playerb, 1)); adminWarn(1, string); WriteLog("admin_logs/players/setarmor_log.txt", "[%s] %s set %s's armor to %d.0", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerid, 1), armor); return true; } CMD:afks(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); foreach(new i : Player) { if(GetTickCount() > (PlayerData[i][pPauseCheck]+2000)) Message(playerid, COLOR_GREY, "[AFK] %s - Time: %i Seconds", ReturnName(i), PlayerData[i][pPauseTime]); } return 1; } CMD:reports(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); SendClientMessage(playerid, COLOR_YELLOW, "No reports if no box!"); new primary_str[900], sub_str[128]; for(new i = 1; i < sizeof ReportData; i++) if(ReportData[i][reportExists]) { format(sub_str, sizeof(sub_str), "RID: %i | %s: %.20s...\n", i, ReturnSQLName(ReportData[i][reportBy]), ReportData[i][reportReason]); strcat(primary_str, sub_str); } ShowPlayerDialog(playerid, DIALOG_REPORTS, DIALOG_STYLE_LIST, "Reports:", primary_str, "Select", "<<"); new ncRequests; foreach(new i : Player) if(GetPVarInt(i, "RequestedNC") == 2) ncRequests++; if(ncRequests) SendClientMessage(playerid, COLOR_DARKGREEN, "_______________________________________"); foreach(new i : Player) if(GetPVarInt(i, "RequestedNC") == 2) { new requestedName[MAX_PLAYER_NAME + 1]; GetPVarString(i, "RequestedNCName", requestedName, MAX_PLAYER_NAME + 1); Message(playerid, COLOR_ADM, "%s [ID: %i] is requesting a NC to: %s", ReturnName(i), i, requestedName); } return 1; } CMD:reportsx(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); SendClientMessage(playerid, COLOR_DARKGREEN, "____________________REPORTS____________________"); for(new i = 1; i < sizeof ReportData; i++) if(ReportData[i][reportExists]) { if(strlen(ReportData[i][reportReason]) > 70) { Message(playerid, COLOR_REPORT, "%s | RID: %i | Pending: %i Minutes | Report: %.70s", ReturnSQLName(ReportData[i][reportBy]), i, SecondsToMinute(gettime() - ReportData[i][reportTime]), ReportData[i][reportReason]); Message(playerid, COLOR_REPORT, "...%s", ReportData[i][reportReason][70]); } else Message(playerid, COLOR_REPORT, "%s | RID: %i | Pending: %i Minutes | Report: %s", ReturnSQLName(ReportData[i][reportBy]), i, SecondsToMinute(gettime() - ReportData[i][reportTime]), ReportData[i][reportReason]); } return 1; } CMD:ar(playerid, params[])return cmd_acceptreport(playerid, params); CMD:acceptreport(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new reportid, str[128]; if(sscanf(params, "d", reportid))return SendClientMessage(playerid, COLOR_ADM, "USAGE: /acceptreport [report id]"); if(reportid > MAX_REPORTS || !ReportData[reportid][reportExists]) return SendClientMessage(playerid, COLOR_ADM, "ERROR: That report doesn't exist."); format(str, sizeof(str), "[REPORT]{FF9900} %s accepted report %d by %s", ReturnName(playerid, 1), reportid, ReturnSQLName(ReportData[reportid][reportBy])); SendAdminMessage(COLOR_HELPER, str); ClearReport(reportid); return 1; } CMD:dr(playerid, params[])return cmd_disregardreport(playerid, params); CMD:disregardreport(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new reportid, str[128]; if(sscanf(params, "d", reportid))return SendClientMessage(playerid, COLOR_ADM, "USAGE: /disregardreport [report id]"); if(reportid > MAX_REPORTS || !ReportData[reportid][reportExists]) return SendClientMessage(playerid, COLOR_ADM, "ERROR: That report doesn't exist."); format(str, sizeof(str), "[REPORT]{FF9900} %s disregarded report %d by %s", ReturnName(playerid, 1), reportid, ReturnSQLName(ReportData[reportid][reportBy])); SendAdminMessage(COLOR_HELPER, str); ClearReport(reportid); return 1; } CMD:revive(playerid, params[]) { if(!pLoggedIn[playerid]) return true; if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb, string[128]; if(sscanf(params, "u", playerb))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /revive [playerid/PartofName]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); if(!PlayerData[playerb][pBrutallyWounded])return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} That player isn't brutally wounded."); PlayerData[playerb][pBrutallyWounded] = false; PlayerData[playerb][pLegShot] = false; PlayerData[playerb][pExecuteTime] = 0; SetPlayerHealth(playerb, PlayerData[playerb][pMaxHealth]); TogglePlayerControllable(playerb, true); GameTextForPlayer(playerb, "~b~You were revived", 3000, 4); SetPlayerChatBubble(playerb, "Respawned", COLOR_WHITE, 20.0, 2000); ClearDamages(playerb); SetPlayerTeam(playerb, STATE_ALIVE); format(string, sizeof(string), "%s revived %s", ReturnName(playerid, 1), ReturnName(playerb, 1)); adminWarn(1, string); return true; } CMD:clearinjuries(playerid, params[]) { if (!pLoggedIn[playerid]) return true; if (!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb; if (sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /clearinjuries [playerid/PartofName]"); if (!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if (!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); if (!PlayerData[playerb][pLegShot]) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} That player isn't injured."); PlayerData[playerb][pLegShot] = false; adminWarn(1, sprintf("%s cleared %s's injuries.", ReturnName(playerid, 1), ReturnName(playerb, 1))); return 1; } CMD:mark(playerid, params[]) { if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); GetPlayerPos(playerid, PlayerData[playerid][pMark][0], PlayerData[playerid][pMark][1], PlayerData[playerid][pMark][2]); SendClientMessage(playerid, COLOR_ADM, "Marked. Use /goto mark next"); return true; } CMD:gotop(playerid, params[]) { new spots; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(sscanf(params, "n", spots)) { SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /gotop [number of location]"); SendClientMessage(playerid, COLOR_GREY, "|1. Los Santos |2. Las Venturas |3. San Fierro |4. Market Ammunation |5. Market DMV |6. LSLV Highway |7. Montgomery"); SendClientMessage(playerid, COLOR_GREY, "|8. Palomino |9. Dillimore |10. Fort Carson |11. Breach Center |12. Idlewood |13. El Corona |14. Idlegas |15. Ganton"); SendClientMessage(playerid, COLOR_GREY, "|16. Grove Circle |17. Willowfield |18. Seville |19. Los Flores |20. East Los |21. Jefferson |22. Glen Park"); SendClientMessage(playerid, COLOR_GREY, "|23. Downtown |24. Market |25. LS Runway |26. LV Runway |27. SF Runway |28. Mall |29. Trucker Trailers"); } else { switch(spots) { case 1: { SendPlayer(playerid, 1514.1836, -1677.8027, 14.0469, 0, 0); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); } case 2: { SendPlayer(playerid, 1721.1599, 1444.5464, 10.5450, 0, 0); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); } case 3: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, -1751.6312, -607.6387, 16.2367, 0, 0); } case 4: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 1364.0856, -1276.8530, 13.5469, 0, 0); } case 5: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 1286.8722, -1540.2163, 13.4944, 0, 0); } case 6: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 1622.8391,158.6248,34.8305, 0, 0); } case 7: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 1348.9205,231.8964,19.2818, 0, 0); } case 8: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 2284.1912, 26.9898, 26.2115, 0, 0); } case 9: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 656.5389, -586.2031, 16.0592, 0, 0); } case 10: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, -58.4578,1168.8517,19.3818, 0, 0); } case 11: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 2776.4807, 2416.5981, 11.0702, 0, 0); } case 12: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 2098.6453,-1760.2810,13.5625, 0, 0); } case 13: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 1882.9041,-2016.5022, 13.5469, 0, 0); } case 14: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 1949.9351, -1769.6365, 13.5469, 0, 0); } case 15: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 2225.5811, -1742.8641, 13.5634, 0, 0); } case 16: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 2499.9521,-1686.2581,13.4776, 0, 0); } case 17: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 2489.4878,-1941.6466,12.9567, 0, 0); } case 18: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 2767.3303, -1944.2482, 12.8437, 0, 0); } case 19: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 2628.9937, -1250.3225, 49.2440, 0, 0); } case 20: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 2363.8564, -1290.3566, 23.4254, 0, 0); } case 21: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 2188.8093,-1294.6794,23.4828, 0, 0); } case 22: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 2002.3489,-1277.4027,23.3324, 0, 0); } case 23: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 1567.7167, -1311.5303, 16.7319, 0, 0); } case 24: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 1102.7339, -1387.4949, 13.2131, 0, 0); } case 25: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 1974.6187, -2459.8467, 13.5469, 0, 0); } case 26: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 1512.8564, 1487.1121, 10.8273, 0, 0); } case 27: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, -1453.3241, -46.0731, 14.5469, 0, 0); } case 28: { SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); SendPlayer(playerid, 1121.2642, -1412.9189, 13.5747, 0, 0); } case 29: { SendPlayer(playerid, 104.6114, -272.4609, 1.5781, 0, 0); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); } } } return 1; } CMD:ban(playerid, params[]) { if(!pLoggedIn[playerid]) return true; if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb, reason[128], query[400], str[128]; if(sscanf(params, "us[128]", playerb, reason)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /ban [playerid/PartofName] [reason]"); if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(PlayerData[playerb][pAdmin] >= PlayerData[playerid][pAdmin]) return SendClientMessage(playerid, COLOR_ADM, "You can't do this to these type of players."); mysql_format(m_Handle, query, sizeof(query), "INSERT INTO bans (`Name`, `Reason`, `BannedBy`, `Date`, `IP`, `HWID`) VALUES('%e', '%e', '%e', '%e', '%e', '%e')", ReturnName(playerb, 1), reason, ReturnName(playerid, 1), ReturnDate(), ReturnIP(playerb), ReturnGPCI(playerb)); mysql_pquery(m_Handle, query); mysql_format(m_Handle, query, sizeof(query), "INSERT INTO log_bans (Name, Reason, BannedBy, Date, IP) VALUES('%e', '%e', '%e', '%e', '%e')", ReturnName(playerb, 1), reason, ReturnName(playerid), ReturnDateLog(), ReturnIP(playerb)); mysql_pquery(m_Handle, query); SendMessageToAll(COLOR_ADM, "AdmCmd: %s was banned by %s, reason: %s", ReturnName(playerb, 1), ReturnName(playerid, 1), reason); for(new i = 1; i < MAX_ADMIN_NOTES; i++) { if(aNotesData[playerb][i][anote_SQLID] != 0) { if(aNotesData[playerb][i][anote_active]) { if(strlen(aNotesData[playerb][i][anote_reason]) > 45) { format(str, sizeof(str), "Player %s has %d active OnAdminAction notes on him, last is: %.45s", ReturnName(playerb, 1), CountAdminNotes(playerb), aNotesData[playerb][i][anote_reason]); adminWarn(1, str); format(str, sizeof(str), "...%s", aNotesData[playerb][i][anote_reason][45]); adminWarn(1, str); } else { format(str, sizeof(str), "Player %s has %d active OnAdminAction notes on him, last is: %s", ReturnName(playerb, 1), CountAdminNotes(playerb), aNotesData[playerb][i][anote_reason]); adminWarn(1, str); } } } } KickEx(playerb); printf("[DEBUG] AdmCmd: %s was banned by %s, reason: %s", ReturnName(playerb, 1), ReturnName(playerid, 1), reason); WriteLog("admin_logs/punishments/ban_log.txt", "[%s] %s was banned by %s, reason: %s", ReturnDate(), ReturnName(playerb, 1), ReturnName(playerid, 1), reason); return true; } CMD:offlineban(playerid, params[]) { if(!pLoggedIn[playerid]) return true; if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb[30], reason[128], query[90 + MAX_PLAYER_NAME]; if(sscanf(params, "s[30]s[128]", playerb, reason))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /offlineban [Firstname_Lastname] [reason]"); format(PlayerData[playerid][pSetReason], 128, "%s", reason); mysql_format(m_Handle, query, sizeof(query), "SELECT Name, AdminLevel, IP, HWID FROM players WHERE Name = '%e'", playerb); mysql_pquery(m_Handle, query, "SQL_CheckAccountBan", "i", playerid); return true; } CMD:checkguns(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb, bool:hasWeapons = false, bool:hasWeaponsEx = false, weapon_id[2][13] ; if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /checkguns [playerid/PartofName]"); if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); Message(playerid, COLOR_ADM, ">> %s has the following server-sided weapons:", ReturnName(playerb)); for(new i = 0; i < MAX_POSSIBLE_WEAPONS; i++) { if(Weapon[playerb][i][eWeaponAmmo] > 0) { hasWeapons = true; Message(playerid, COLOR_ADM, ">{FFFFFF} [%i] %s - Ammo: %i [Receive code: %s]", Weapon[playerb][i][eWeaponID], ReturnWeaponName(Weapon[playerb][i][eWeaponID]), Weapon[playerb][i][eWeaponAmmo], ReturnWeaponReceiveString(playerid, Weapon[playerb][i][eWeaponID])); } } if(!hasWeapons) SendClientMessage(playerid, COLOR_ADM, ">{FFFFFF} This player has no weapons."); Message(playerid, COLOR_ADM, ">> %s has these weapons overall:", ReturnName(playerb)); for(new i = 0; i < 13; i++) { GetPlayerWeaponData(playerb, i, weapon_id[0][i], weapon_id[1][i]); if(weapon_id[0][i] != 0) { if(weapon_id[0][i] == WEAPON_SILENCED && PlayerData[playerb][pTaser]) continue; hasWeaponsEx = true; Message(playerid, COLOR_ADM, ">{FFFFFF} [%i] %s - Ammo: %i", weapon_id[0][i], ReturnWeaponName(weapon_id[0][i]), weapon_id[1][i]); } } if(!hasWeaponsEx) SendClientMessage(playerid, COLOR_ADM, ">{FFFFFF} This player has no weapons."); else SendClientMessage(playerid, COLOR_ADM, "[ ! ]{FFFFFF} If a weapon doesn't match their server-sided weapons, they're spawning weapons."); return 1; } CMD:checkhp(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); new playerb, string[128]; if(sscanf(params, "u", playerb))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /checkhp [playerid/PartofName]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); new Float:health, Float:armour; GetPlayerHealth(playerb, health); GetPlayerArmour(playerb, armour); format(string, sizeof(string), "SERVER: %s's health is %.1f (Max health: %d.0), armor is %.1f.", ReturnName(playerb, 1), health, PlayerData[playerid][pMaxHealth], armour); SendClientMessage(playerid, COLOR_ADM, string); return true; } CMD:dropinfo(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new idx; if( (idx = IsPlayerNearDroppedWeapon(playerid)) != -1 ) { Message(playerid, COLOR_YELLOW, "[%i] This is a %s with %d Ammo dropped by %s.", idx, ReturnWeaponName(DropData[idx][eDropWeaponID]), DropData[idx][eDropWeaponAmmo], ReturnSQLName(DropData[idx][eWeaponDroppedBy])); } else return SendClientMessage(playerid, COLOR_ADM, "SERVER: You aren't near a dropped weapon."); return true; } CMD:sendplayer(playerid, params[]) { new spots, playerb, string[128]; if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); if(sscanf(params, "un", playerb, spots)) { SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /sendplayer [playerid/PartofName] [location]"); SendClientMessage(playerid, COLOR_GREY, "|1. Los Santos |2. Las Venturas |3. San Fierro |4. Market Ammunation |5. Market DMV |6. LSLV Highway |7. Montgomery"); SendClientMessage(playerid, COLOR_GREY, "|8. Palomino |9. Dillimore |10. Fort Carson |11. Breach Center |12. Idlewood |13. El Corona |14. Idlegas |15. Ganton"); SendClientMessage(playerid, COLOR_GREY, "|16. Grove Circle |17. Willowfield |18. Seville |19. Los Flores |20. East Los |21. Jefferson |22. Glen Park"); SendClientMessage(playerid, COLOR_GREY, "|23. Downtown |24. Market |25. LS Runway |26. LV Runway |27. SF Runway |28. Mall |29. Trucker Trailers"); return 1; } else { switch(spots) { case 1: { SendPlayer(playerb, 1514.1836, -1677.8027, 14.0469, 0, 0); SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); } case 2: { SendPlayer(playerb, 1721.1599, 1444.5464, 10.5450, 0, 0); SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); } case 3: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, -1751.6312, -607.6387, 16.2367, 0, 0); } case 4: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 1364.0856, -1276.8530, 13.5469, 0, 0); } case 5: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 1286.8722, -1540.2163, 13.4944, 0, 0); } case 6: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 1622.8391,158.6248,34.8305, 0, 0); } case 7: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 1348.9205,231.8964,19.2818, 0, 0); } case 8: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 2284.1912, 26.9898, 26.2115, 0, 0); } case 9: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 656.5389, -586.2031, 16.0592, 0, 0); } case 10: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, -58.4578,1168.8517,19.3818, 0, 0); } case 11: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 2776.4807, 2416.5981, 11.0702, 0, 0); } case 12: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 2098.6453,-1760.2810,13.5625, 0, 0); } case 13: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 1882.9041,-2016.5022, 13.5469, 0, 0); } case 14: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 1949.9351, -1769.6365, 13.5469, 0, 0); } case 15: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 2225.5811, -1742.8641, 13.5634, 0, 0); } case 16: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 2499.9521,-1686.2581,13.4776, 0, 0); } case 17: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 2489.4878,-1941.6466,12.9567, 0, 0); } case 18: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 2767.3303, -1944.2482, 12.8437, 0, 0); } case 19: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 2628.9937, -1250.3225, 49.2440, 0, 0); } case 20: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 2363.8564, -1290.3566, 23.4254, 0, 0); } case 21: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 2188.8093,-1294.6794,23.4828, 0, 0); } case 22: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 2002.3489,-1277.4027,23.3324, 0, 0); } case 23: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 1567.7167, -1311.5303, 16.7319, 0, 0); } case 24: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 1102.7339, -1387.4949, 13.2131, 0, 0); } case 25: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 1974.6187, -2459.8467, 13.5469, 0, 0); } case 26: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 1512.8564, 1487.1121, 10.8273, 0, 0); } case 27: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, -1453.3241, -46.0731, 14.5469, 0, 0); } case 28: { SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); SendPlayer(playerb, 1121.2642, -1412.9189, 13.5747, 0, 0); } case 29: { SendPlayer(playerb, 104.6114, -272.4609, 1.5781, 0, 0); SendClientMessage(playerb, COLOR_GREY, "You have been teleported"); } } format(string, sizeof(string), "%s teleported %s to a location", ReturnName(playerid, 1), ReturnName(playerb, 1)); adminWarn(3, string); } return 1; } CMD:sendtospawn(playerid, params[]) { if (!pLoggedIn[playerid]) return 1; if (!PlayerData[playerid][pHelper] || !PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb; if (sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /sendtospawn [playerid/partOfName]"); SendPlayer(playerb, 1642.2314, -2333.6973, 13.5469, 0, 0); SendClientMessage(playerid, COLOR_GREY, sprintf("You've sent %s to spawn.", ReturnName(playerb, 1))); adminWarn(1, sprintf("%s has sent %s to spawn", ReturnName(playerid, 1), ReturnName(playerb, 1))); return 1; } CMD:respawncar(playerid, params[]) { new string[128], vehicleid; if(PlayerData[playerid][pAdminDuty]) { if(sscanf(params, "d", vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /respawncar [vehicle ID]"); if(vehicleid < 0 || !IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active vehicle."); format(string, sizeof(string), "%s respawned vehicle ID %d", ReturnName(playerid, 1), vehicleid); adminWarn(1, string); SetVehicleToRespawn(vehicleid); } else{ if(IsPlayerInAnyVehicle(playerid)){ new car = GetPlayerVehicleID(playerid); if(!IsValidFactionCar(car)) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You aren't in a faction vehicle."); if(IsPlayerInRangeOfPoint(playerid, 7.0, FactionCar[car][carPos][0], FactionCar[car][carPos][1], FactionCar[car][carPos][2])){ if(FactionCar[car][carFaction] == PlayerData[playerid][pFaction]){ SetVehicleToRespawn(car); format(string, sizeof(string), "%s respawned their faction vehicle ID %d", ReturnName(playerid, 1), car); adminWarn(1, string); } else{ SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} This vehicle doesn't belong to your faction."); } } else{ SetPlayerCheckpoint(playerid, FactionCar[car][carPos][0], FactionCar[car][carPos][1], FactionCar[car][carPos][2], 3.0); SendClientMessage(playerid, COLOR_ADM, "You aren't at your vehicles park spot."); SendClientMessage(playerid, COLOR_PINK, "Hint: Follow the red marker to the park spot."); } } else{ SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You aren't in a vehicle."); } } return true; } CMD:respawncars(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); new string[128], count = 0; for(new i = 0; i < MAX_VEHICLES; i++) { new Float: currPos[3]; GetVehiclePos(i, currPos[0], currPos[1], currPos[2]); if(IsPlayerInRangeOfPoint(playerid, 25.0, currPos[0], currPos[1], currPos[2])) { if(!IsVehicleOccupied(i)) { SetVehicleToRespawn(i); count++; } } } if(count) { format(string, sizeof(string), "AdmCmd: %s respawned nearby vehicles.", ReturnName(playerid, 1)); SendClientMessage(playerid, COLOR_GREY, string); } else return SendClientMessage(playerid, COLOR_GREY, "There are no nearby vehicles to respawn (25.0f radius). "); return true; } CMD:checktime(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); new string[128], playerb, checkString[60]; if(sscanf(params, "u", playerb))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /checktime [playerid/PartofName]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); if(!PlayerData[playerb][pAjailed]){ format(string, sizeof(string), "SERVER: %s is not admin jailed.", ReturnName(playerb, 1)); SendClientMessage(playerid, COLOR_YELLOW, string); return true; } if(PlayerData[playerb][pAjailed] == 1)format(checkString, sizeof(checkString), "true"); if(PlayerData[playerb][pAjailed] == 0)format(checkString, sizeof(checkString), "false"); format(string, sizeof(string), "SERVER: %s has %s seconds left ( %d minutes ). Admin jail variable is %s.", ReturnName(playerb, 1), MoneyFormat(PlayerData[playerb][pAjailTime]), PlayerData[playerb][pAjailTime] / 60, checkString); SendClientMessage(playerid, COLOR_YELLOW, string); return true; } CMD:fly(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return false; new Float:px, Float:py, Float:pz, Float:pa; GetPlayerFacingAngle(playerid, pa); if(pa >= 0.0 && pa <= 22.5) { GetPlayerPos(playerid, px, py, pz); if(GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, px, py+30, pz+5); } else { SetPlayerPos(playerid, px, py+30, pz+5); } } if(pa >= 332.5 && pa < 0.0) { GetPlayerPos(playerid, px, py, pz); if(GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, px, py+30, pz+5); } else { SetPlayerPos(playerid, px, py+30, pz+5); } } if(pa >= 22.5 && pa <= 67.5) { GetPlayerPos(playerid, px, py, pz); if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, px-15, py+15, pz+5); } else { SetPlayerPos(playerid, px-15, py+15, pz+5); } } if(pa >= 67.5 && pa <= 112.5) { GetPlayerPos(playerid, px, py, pz); if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, px-30, py, pz+5); } else { SetPlayerPos(playerid, px-30, py, pz+5); } } if(pa >= 112.5 && pa <= 157.5) { GetPlayerPos(playerid, px, py, pz); if(GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, px-15, py-15, pz+5); } else { SetPlayerPos(playerid, px-15, py-15, pz+5); } } if(pa >= 157.5 && pa <= 202.5) { GetPlayerPos(playerid, px, py, pz); if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, px, py-30, pz+5); } else { SetPlayerPos(playerid, px, py-30, pz+5); } } if(pa >= 202.5 && pa <= 247.5) { GetPlayerPos(playerid, px, py, pz); if(GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, px+15, py-15, pz+5); } else { SetPlayerPos(playerid, px+15, py-15, pz+5); } } if(pa >= 247.5 && pa <= 292.5) { GetPlayerPos(playerid, px, py, pz); if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, px+30, py, pz+5); } else { SetPlayerPos(playerid, px+30, py, pz+5); } } if(pa >= 292.5 && pa <= 332.5) { GetPlayerPos(playerid, px, py, pz); if(GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, px+15, py+15, pz+5); } else { SetPlayerPos(playerid, px+15, py+15, pz+5); } } return true; } CMD:ninjamove(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return false; new Float:currPos[3], playerb; if(sscanf(params, "u", playerb))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /ninjamove [playerid/PartofName]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65534 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); GetPlayerPos(playerb, currPos[0], currPos[1], currPos[2]); SetPlayerPos(playerid, currPos[0], currPos[1], currPos[2] + 15); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); return true; } CMD:forumname(playerid, params[]) { if(!PlayerData[playerid][pAdmin] && !PlayerData[playerid][pHelper]) return UnAuthMessage(playerid); if(isnull(params)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /forumname [name]"); if(strlen(params) > 60) return SendClientMessage(playerid, COLOR_ADM, "ERROR: Make your forum name below 60 characters."); if(!strcmp(params, "Kane", true) && PlayerData[playerid][pSQLID] != 1) return SendClientMessage(playerid, COLOR_ADM, "You aren't Kane!!!!!!!!!!!!!!!!!!"); format(PlayerData[playerid][pForumName], 60, "%s", params); Message(playerid, COLOR_ADM, "[ ! ] Your forum name is now: \"%s\". ", params); new updateName[128]; mysql_format(m_Handle, updateName, sizeof(updateName), "UPDATE players SET ForumName = '%e' WHERE id = %i", params, PlayerData[playerid][pSQLID]); mysql_tquery(m_Handle, updateName); return 1; } CMD:toggleconnects(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return 0; if(PlayerData[playerid][pToggleConnects]) { PlayerData[playerid][pToggleConnects] = 0; SendClientMessage(playerid, COLOR_ADM, "[ ! ] You will no longer see connections."); } else { PlayerData[playerid][pToggleConnects] = 1; SendClientMessage(playerid, COLOR_ADM, "[ ! ] You will now see connections."); } return 1; } CMD:clearmychat(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); for(new i; i < 25; i++) SendClientMessage(playerid, -1, " "); return 1; } CMD:lastincar(playerid, params[]) { new vehicleid, string[128]; if (!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); if (sscanf(params, "d", vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /lastincar [vehicle id]"); if (!IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_ADM , "ERROR:{FFFFFF} You have specified an invalid vehicle. "); if (IsValidFactionCar(vehicleid)) { format (string, sizeof(string), "(Faction) Last in %s dbid#%d was %s. Last driver was %s.", ReturnVehicleName(vehicleid), FactionCar[vehicleid][carID], ReturnSQLName(FactionCar[vehicleid][carlastPassenger]), ReturnSQLName(FactionCar[vehicleid][carlastDriver])); SendClientMessage(playerid, COLOR_ADM, string); } if (IsValidPlayerCar(vehicleid)) { format (string, sizeof(string), "(Private) Last in %s dbid#%d was %s. Last driver was %s.", ReturnVehicleName(vehicleid), CarData[vehicleid][carID], ReturnSQLName(CarData[vehicleid][carlastPassenger]), ReturnSQLName(CarData[vehicleid][carlastDriver])); SendClientMessage(playerid, COLOR_ADM, string); } if(!IsValidFactionCar(vehicleid) && !IsValidPlayerCar(vehicleid)) { if(IsValidRentalCar(vehicleid)) { format (string, sizeof(string), "(Rental) Last in %s dbid#%d was %s. Last driver was %s.", ReturnVehicleName(vehicleid), RentalData[vehicleid][rentalcarSQLID], ReturnSQLName(CarlastPassenger[vehicleid]), ReturnSQLName(CarlastDriver[vehicleid])); SendClientMessage(playerid, COLOR_ADM, string); } else { format (string, sizeof(string), "(Public) Last in %s veh#%d was %s. Last driver was %s.", ReturnVehicleName(vehicleid), vehicleid, ReturnSQLName(CarlastPassenger[vehicleid]), ReturnSQLName(CarlastDriver[vehicleid])); SendClientMessage(playerid, COLOR_ADM, string); } } return true; } CMD:clearguns(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return 0; new playerb, type, str[128]; if(sscanf(params, "ui", playerb, type)) { SendClientMessage(playerid, COLOR_ADM, "USAGE: /clearguns [playerid/PartofName] [type]"); SendClientMessage(playerid, COLOR_GRAD2, "Type was introduced with the changes to the weapons system."); SendClientMessage(playerid, COLOR_GRAD2, "Type (0) is ALL the weapons the player has. (1) is weapons that can't be saved. (i.e: /duty guns)"); SendClientMessage(playerid, COLOR_GRAD2, "Type (2): Every. This clears client and server sided. Use 0 to determine weapon cheats."); return 1; } if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_ADM, "ERROR: You specified a player that isn't logged in."); if(type > 2 || type < 0) return SendClientMessage(playerid, COLOR_ADM, "ERROR: Bad Type."); ClearPlayerWeapons(playerb, type); format(str, sizeof(str), "%s cleared %s's (%s) weapons.", ReturnName(playerid), ReturnName(playerb), (type != 1) ? ("ALL") : ("Unsavable")); adminWarn(1, str); WriteLog("weapon_logs/admin_logs/clearguns.txt", "[%s] %s cleared %s's weapons.", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerb, 1)); return 1; } CMD:adminnote(playerid, params[]) { new playerb, query[128], a_string[128], b_string[128], string[128]; if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); if(sscanf(params, "us[128]S()[128]", playerb, a_string, b_string)) { SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /adminnote [playerid OR name] [action]"); SendClientMessage(playerid, COLOR_ADM, "[Action] add, alter, delete, display"); return true; } if (!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if (!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_ADM, "You specified a player that isn't logged in."); if(!strcmp(a_string, "add")) { new reasons[128], slot_check = ReturnANoteSlot(playerb); if(sscanf(b_string, "s[128]", reasons)) { return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /adminnote [playerid] add [reasons] "); } if (slot_check == -1) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} This player already has 5 admin notes on them."); format(string, sizeof(string), "SERVER: An admin note was added to %s", ReturnName(playerb, 1)); SendClientMessage(playerid, COLOR_YELLOW, string); format(string, sizeof(string), "%s added a admin note to %s", ReturnName(playerid, 1), ReturnName(playerb, 1)); adminWarn(3, string); AddAdminNote(playerid, playerb, reasons); } else if(!strcmp(a_string, "alter")) { new reasons[128], id; if(sscanf(b_string, "ds[128]", id, reasons)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /adminnote [playerid] alter [noteid] [reasons]"); if(id < 1 || id > MAX_ADMIN_NOTES) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid admin note ID."); if(!aNotesData[playerb][id][anote_SQLID]) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} That player doesn't have a note in that ID."); format(string, sizeof(string), "SERVER: %s's Note %d edited to : %s", ReturnName(playerb, 1), id, reasons); SendClientMessage(playerid, COLOR_YELLOW, string); format(aNotesData[playerb][id][anote_reason], 128, "%s", reasons); mysql_format(m_Handle, query, sizeof(query), "UPDATE player_anotes SET anote_reason = '%e' WHERE id = %i", reasons, aNotesData[playerb][id][anote_SQLID]); mysql_pquery(m_Handle, query); WriteLog("admin_logs/players/admin_note/edit_note.txt", "[%s] %s edited %s's Note (%d) to %s", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerb, 1), id, reasons); } else if(!strcmp(a_string, "delete")) { new id; if(sscanf(b_string, "d", id)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /adminnote [playerid] delete [noteid]"); if(id < 1 || id > MAX_ADMIN_NOTES) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid admin note ID."); if(!aNotesData[playerb][id][anote_SQLID]) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} That player doesn't have a note in that ID."); format(string, sizeof(string), "SERVER: %s's Note %d was deleted", ReturnName(playerb, 1), id); SendClientMessage(playerid, COLOR_YELLOW, string); if(aNotesData[playerb][id][anote_active]) { aNotesData[playerb][id-1][anote_active] = true; // Sets the note before deleted active. } mysql_format(m_Handle, query, sizeof(query), "DELETE FROM player_anotes WHERE id = %i", aNotesData[playerb][id][anote_SQLID]); mysql_pquery(m_Handle, query); aNotesData[playerb][id][anote_SQLID] = 0; aNotesData[playerb][id][anote_active] = false; WriteLog("admin_logs/players/admin_note/delete_note.txt", "[%s] %s deleted %s's Note ID %d", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerb, 1), id); } else if(!strcmp(a_string, "display")) { new id; if (CountAdminNotes(playerb) == 0) { format(string, sizeof(string), "SERVER: %s has no OnAdminAction notes to display.", ReturnName(playerb, 1)); SendClientMessage(playerid, COLOR_ADM, string); return true; } if(sscanf(b_string, "d", id)) { format(string, sizeof(string), "___________%s's Admin Notes___________", ReturnName(playerb, 1)); SendClientMessage(playerid, COLOR_ACTION, string); for(new i = 1; i < MAX_ADMIN_NOTES; i++) { if(aNotesData[playerb][i][anote_SQLID]) { format(string, sizeof(string), "Note %d: %s", i, aNotesData[playerb][i][anote_reason]); SendClientMessage(playerid, COLOR_ACTION, string); } } SendClientMessage(playerid, COLOR_ACTION, "______________________________________"); SendClientMessage(playerid, COLOR_ADM, "USAGE: /adminnote [playerid] display [noteid] for more information."); return true; } if(id < 1 || id > MAX_ADMIN_NOTES) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid admin note ID."); if(!aNotesData[playerb][id][anote_SQLID]) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} That player doesn't have a note in that ID."); format(string, sizeof(string), "___________%s's Note___________", ReturnName(playerb, 1)); SendClientMessage(playerid, COLOR_ACTION, string); format(string, sizeof(string), "Note ID : %d", id); SendClientMessage(playerid, COLOR_ACTION, string); format(string, sizeof(string), "Reason : %s", aNotesData[playerb][id][anote_reason]); SendClientMessage(playerid, COLOR_ACTION, string); format(string, sizeof(string), "Issuer : %s", aNotesData[playerb][id][anote_issuer]); SendClientMessage(playerid, COLOR_ACTION, string); format(string, sizeof(string), "Date : %s", aNotesData[playerb][id][anote_date]); SendClientMessage(playerid, COLOR_ACTION, string); SendClientMessage(playerid, COLOR_ACTION, "_______________________________"); } return true; } CMD:adminmsg(playerid, params[]) { if (!PlayerData[playerid][pAdmin]) return false; new playerb[32], string[128], query[200], n_reason[128]; if (sscanf(params, "s[60]s[128]", playerb, n_reason)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /adminmsg [character name] [message]"); foreach(new i : Player) { if(strfind(ReturnName(i, 1), playerb, true) != -1) { format(string, sizeof(string), "SERVER: %s is logged in right now. (ID: %d)", playerb, i); SendClientMessage(playerid, COLOR_YELLOW, string); return true; } } format(PlayerData[playerid][pAdminMsg], 128, "%s", n_reason); mysql_format(m_Handle, query, sizeof(query), "SELECT Name, AdminMessage, AdminMessageBy, AdmMessageConfirm FROM `players` WHERE Name = '%e'", playerb); mysql_pquery(m_Handle, query, "SQL_AddAdminMessage", "i", playerid); return true; } CMD:logc(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb, specifier[20]; if(sscanf(params, "us[20]", playerb, specifier)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /logc [playerid OR name] [chat / command]"); if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_ADM, "You specified an invalid player."); if(!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_ADM, "That player hasn't logged in yet."); if(PlayerData[playerb][pSQLID] == 1) return SendClientMessage(playerid, COLOR_ADM, "Ahhh Oh My Gosh Wow!"); new log_viewer[1350], stringit[128], caption[60]; if(!strcmp(specifier, "chat", true)) { Message(playerid, COLOR_ADM, "%s's chat logs. If no box, they haven't said anything.", ReturnName(playerb)); for(new i = 0; i < 30; i++) { if(isnull(PlayerChatLogs[playerid][i])) continue; format(stringit, 128, "%s\n", PlayerChatLogs[playerb][i]); strcat(log_viewer, stringit); } format(caption, 60, "%s", ReturnName(playerb)); ShowPlayerDialog(playerid, DIALOG_USE, DIALOG_STYLE_MSGBOX, caption, log_viewer, "Okay!", ""); } else if(!strcmp(specifier, "command", true)) { Message(playerid, COLOR_ADM, "%s's command logs. If no box, they haven't done anything.", ReturnName(playerb)); for(new i = 0; i < 30; i++) { if(isnull(PlayerCommandLogs[playerid][i])) continue; format(stringit, 128, "%s\n", PlayerCommandLogs[playerb][i]); strcat(log_viewer, stringit); } format(caption, 60, "%s", ReturnName(playerb)); ShowPlayerDialog(playerid, DIALOG_USE, DIALOG_STYLE_MSGBOX, caption, log_viewer, "Okay!", ""); } else return SendClientMessage(playerid, COLOR_ADM, "SERVER: Invalid Parameter."); return 1; } CMD:apark(playerid, params[]) { if (!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new vehicleid, string[128], query[110]; if (sscanf(params, "i", vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /apark [vehicleid] "); if (!IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active vehicle."); if (!IsValidPlayerCar(vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "SERVER: You may only park private player vehicles."); new ownerid = CarData[vehicleid][carOwnerID]; foreach (new i : Player) { if(strfind(ReturnName(i, 1), ReturnSQLName(ownerid), true) != -1) { format(string, sizeof(string), "SERVER: Your %s was parked by Admin %s.", ReturnVehicleName(vehicleid), ReturnName(playerid, 1)); SendClientMessage(i, COLOR_ADM, string); _has_vehicle_spawned[i] = false; _has_spawned_vehicleid[i] = INVALID_VEHICLE_ID; if(StartedTruckerMission[i] && TruckerMissionVehicle[i] == vehicleid) { SendClientMessage(i, COLOR_ADM, "Your trucker mission ended due to your vehicle being parked..."); if(TruckerJobEarnings[i] != 0) format(string, sizeof(string), "You were given your earning of $%s.", MoneyFormat(TruckerJobEarnings[i])); else string = "You didn't have any earnings to give back."; SendClientMessage(i, COLOR_ADM, string); EndTruckerMission(i); } } else { mysql_format(m_Handle, query, sizeof(query), "UPDATE players SET HasCarSpawned = 0 WHERE id = %i", ownerid); mysql_pquery(m_Handle, query); } } foreach(new i : Player) { if(GetPVarInt(i, "DuplicateKey") == CarData[vehicleid][carID]) { DeletePVar(i, "DuplicateKey"); Message(i, COLOR_WHITE, "Your duplicate key to %s's vehicle expired.", ReturnSQLName(CarData[vehicleid][carOwnerID])); } } format (string, sizeof(string), "Parked by %s", ReturnName(playerid)); LogVehicleAction(vehicleid, string); format (string, sizeof(string), "%s parked %s's %s.", ReturnName(playerid, 1), ReturnSQLName(ownerid), ReturnVehicleName(vehicleid)); adminWarn(1, string); CarData[vehicleid][carExists] = false; SaveCar(vehicleid); SetVehicleHealth(vehicleid, 300); DefaultVehicleValues(vehicleid); DestroyVehicle(vehicleid); return true; } CMD:unban(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return 0; if(isnull(params)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /unban [username]"); if(!ReturnSQLFromName(params)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: The username you specified doesn't exist."); new thread[190]; mysql_format(m_Handle, thread, sizeof(thread), "SELECT id FROM bans WHERE Name = '%e'", params); mysql_tquery(m_Handle, thread, "CheckPlayerBanned", "is", playerid, params); return 1; } CMD:setfuel(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new vehicleid, Float:fuel; if(sscanf(params, "if", vehicleid, fuel)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /setfuel [vehicleid] [fuel]"); if(!IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: You specified an invalid vehicle!"); if(!IsValidPlayerCar(vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "SERVER: You can only set fuel on player cars."); if(fuel < 0 || fuel > 100) return SendClientMessage(playerid, COLOR_ADM, "SERVER: Fuel has to be between 1-100."); new str[128]; format(str, sizeof(str), "%s set vehicle ID %i's fuel to %.2f", ReturnName(playerid), vehicleid, fuel); adminWarn(1, str); CarData[vehicleid][carFuel] = fuel; return 1; } CMD:spawnedtrailers(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return 0; foreach(new i : Player) if(SpawnedTrailer[i]) { Message(playerid, COLOR_ADM, "Trailer ID %i by %s", TrailerID[i], ReturnName(i)); } return 1; } CMD:aunrentrental(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new vehicleid, str[128]; if(sscanf(params, "i", vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /aunrentrental [vehicle id]"); if(!IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "ERROR: You specified an invalid vehicle."); if(!RentalData[vehicleid][rentalcarSQLID]) return SendClientMessage(playerid, COLOR_ADM, "ERROR: That isn't a rental vehicle."); if(!RentalData[vehicleid][rentalcarRented]) return SendClientMessage(playerid, COLOR_ADM, "ERROR: This isn't rented by anyone."); Message(playerid, COLOR_ADM, "Vehicle %i was being rented by: %s. It's been unrented.", vehicleid, ReturnSQLName(RentalData[vehicleid][rentalcarRentedBy])); RentalData[vehicleid][rentalcarRented] = false; RentalData[vehicleid][rentalcarRentedBy] = 0; format(str, sizeof(str), "%s unrented rental vehicle ID %i", ReturnName(playerid), vehicleid); adminWarn(1, str); return 1; } CMD:aunrenttrucker(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new vehicleid, str[128], isTrucker = 0; if(sscanf(params, "i", vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /aunrenttrucker [vehicle id]"); for(new i = 0; i < sizeof TruckerVehicles; i++) { if(vehicleid == TruckerVehicles[i]) { isTrucker = 1; } } if(!isTrucker) return SendClientMessage(playerid, COLOR_ADM, "ERROR: That isn't a trucker vehicle."); SendClientMessage(playerid, COLOR_GREY, "Vehicle unrented."); format(str, sizeof(str), "%s unrented trucker vehicle ID: %i", ReturnName(playerid), vehicleid); adminWarn(1, str); TruckerVehicleRentedBy[vehicleid] = 0; return 1; } CMD:checkpackages(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb, string[128]; if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /checkpackages [playerid/PartofName]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); format(string, sizeof(string), "You're viewing %s's weapon packages.", ReturnName(playerb, 1)); SendClientMessage(playerid, COLOR_ADM, string); DisplayWeaponPackages(playerb, playerid); return 1; } CMD:showdrugs(playerid, params[]) { if(!PlayerData[playerid][pAdmin]) return UnAuthMessage(playerid); new playerb, string[100]; if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /showdrugs [playerid/PartofName]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); format(string, sizeof(string), "%s's Drugs:", ReturnName(playerb, 0)); SendClientMessage(playerid, COLOR_ADM, string); for (new i = 0; i < 10; i++) if (DrugData[playerb][i][drugQuantity] > 0) { format(string, sizeof(string), "[{FFFFFF} %d. %s (%s: %.1f%s/%.1f%s) (Strength: %d) {FF6347}]", i, GetPackageType(DrugData[playerb][i][drugPackage]), ReturnDrugsName(DrugData[playerb][i][drugType]), DrugData[playerb][i][drugQuantity], (IsPill(DrugData[playerb][i][drugType]) == 1) ? (" Pills") : ("g"), GetPackageCapacity(DrugData[playerb][i][drugPackage], DrugData[playerb][i][drugType]), (IsPill(DrugData[playerb][i][drugType]) == 1) ? (" Pills") : ("g"), DrugData[playerb][i][drugStrength]); SendClientMessage(playerid, COLOR_ADM, string); } return 1; } // Level 2 CMD:car(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(PlayerData[playerid][pAdmin] < 2)return UnAuthMessage(playerid); new string[128], model[32], color[2], siren, Float:pos[4], vehicleid; if(sscanf(params, "s[32]I(-1)I(-1)I(0)", model, color[0], color[1], siren)){ SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /car [modelid OR name] [color1] [color2] [siren]"); SendClientMessage(playerid, COLOR_ADM, "Tip: You can leave color1, color2 and siren blank and it'll set to random."); return true; } if ((model[0] = GetVehicleModelByName(model)) == 0) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You selected an invalid model ID."); if(color[0] == -1) { color[0] = random(255); } if(color[1] == -1) { color[1] = random(255); } GetPlayerPos(playerid, pos[0], pos[1], pos[2]); GetPlayerFacingAngle(playerid, pos[3]); vehicleid = CreateVehicle(model[0], pos[0], pos[1], pos[2], pos[3], color[0], color[1], 300, siren); SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(playerid)); PutPlayerInVehicle(playerid, vehicleid, 0); switch(GetVehicleModel(vehicleid)) { case 481, 509, 510: ToggleVehicleEngine(vehicleid, true); } AdminCar[vehicleid] = true; AdminCarColor1[vehicleid] = color[0]; AdminCarColor2[vehicleid] = color[1]; CarData[vehicleid][carID] = 0; FactionCar[vehicleid][carID] = 0; RentalData[vehicleid][rentalcarSQLID] = 0; CarEngine[vehicleid] = false; CarLights[vehicleid] = false; format(string, sizeof(string), "Warning: You spawned a %s. It will respawn when unoccupied every 300 seconds until you despawn it.", ReturnVehicleModelName(model[0])); SendClientMessage(playerid, COLOR_ADM, string); format(string, sizeof(string), "%s spawned a temporary %s. ", ReturnName(playerid, 1), ReturnVehicleModelName(model[0])); adminWarn(4, string); WriteLog("admin_logs/car_spawn.txt", "[%s] %s spawned a %s.", ReturnDate(), ReturnName(playerid, 1), ReturnVehicleModelName(model[0])); return true; } CMD:setcarparams(playerid, params[]) { new vehicleid, option[90], value, string[128]; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); if(sscanf(params, "ds[90]I(-1)", vehicleid, option, value)) { SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcarparams [vehicleid] [options]"); SendClientMessage(playerid, COLOR_ADM, "->{FFFFFF} engine, lights, lock, health"); return true; } if(vehicleid < 1 || !IsValidVehicle(vehicleid))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active vehicle."); if(strmatch(option, "engine")) { if(CarEngine[vehicleid]) { CarEngine[vehicleid] = false; ToggleVehicleEngine(vehicleid, false); format(string, sizeof(string), "%s turned vehicleid %d's (%s) engine OFF.", ReturnName(playerid, 1), vehicleid, ReturnVehicleName(vehicleid)); adminWarn(1, string); } else { CarEngine[vehicleid] = true; ToggleVehicleEngine(vehicleid, true); format(string, sizeof(string), "%s turned vehicleid %d's (%s) engine ON.", ReturnName(playerid, 1), vehicleid, ReturnVehicleName(vehicleid)); adminWarn(1, string); } } else if(strmatch(option, "lights")) { if(CarLights[vehicleid]){ CarLights[vehicleid] = false; ToggleVehicleLights(vehicleid, false); format(string, sizeof(string), "%s turned vehicleid %d's (%s) lights OFF.", ReturnName(playerid, 1), vehicleid, ReturnVehicleName(vehicleid)); adminWarn(1, string); } else { CarLights[vehicleid] = true; ToggleVehicleLights(vehicleid, true); format(string, sizeof(string), "%s turned vehicleid %d's (%s) lights ON.", ReturnName(playerid, 1), vehicleid, ReturnVehicleName(vehicleid)); adminWarn(1, string); } } else if(strmatch(option, "lock")) { if(CarData[vehicleid][carLocked]){ CarData[vehicleid][carLocked] = false; ToggleVehicleLock(vehicleid, false); format(string, sizeof(string), "%s unlocked vehicleid %d (%s).", ReturnName(playerid, 1), vehicleid, ReturnVehicleName(vehicleid)); adminWarn(1, string); } else { CarData[vehicleid][carLocked] = true; ToggleVehicleLock(vehicleid, true); format(string, sizeof(string), "%s locked vehicleid %d (%s).", ReturnName(playerid, 1), vehicleid, ReturnVehicleName(vehicleid)); adminWarn(1, string); } } else if(strmatch(option, "health")){ if(value == -1)return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcarparams [vehicleid] health [health]"); SetVehicleHealth(vehicleid, value); format(string, sizeof(string), "%s set vehicleid %d's (%s) health to %d", ReturnName(playerid, 1), vehicleid, ReturnVehicleName(vehicleid), value); adminWarn(1, string); WriteLog("admin_logs/vehicles/sethealth_log.txt", "[%s] %s set vehicle ID %d's Health to %i (Player car: %s)", ReturnDate(), ReturnName(playerid), vehicleid, value, (IsValidFactionCar(vehicleid) != 1) ? ("Yes") : ("No")); } return true; } CMD:set(playerid, params[]) { new string[128], type[90], id; if(PlayerData[playerid][pAdmin] < 2) return UnAuthMessage(playerid); if(sscanf(params, "s[90]I(-1)", type, id)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /set [weather OR time] [id]"); if(strmatch(type, "weather")) { if(id == -1)return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /set weather [weather id]"); if(id < 1 || id > 50)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid weather id."); GlobalWeather = id; SetWeather(id); format(string, sizeof(string), "%s set the weather to %d", ReturnName(playerid, 1), id); adminWarn(1, string); } else if(strmatch(type, "time")) { if(id == -1)return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /set time [time id]"); if(id < 0 || id > 23)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You have specified a invalid time."); format(string, sizeof(string), "%s set the time to %d", ReturnName(playerid, 1), id); adminWarn(1, string); SetWorldTime(id); } return true; } CMD:getcar(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(PlayerData[playerid][pAdmin] < 2)return UnAuthMessage(playerid); new vehicleid, Float:Pos[3], string[128]; if(sscanf(params, "d", vehicleid))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /getcar [vehicle ID]"); if(vehicleid < 1 || !IsValidVehicle(vehicleid))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active vehicle."); GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); SetVehiclePos(vehicleid, Pos[0]+1, Pos[1], Pos[2]); format(string, sizeof(string), "%s teleported vehicle ID %d", ReturnName(playerid, 1), vehicleid); adminWarn(2, string); return 1; } CMD:putplayerincar(playerid, params[]) { if(PlayerData[playerid][pAdmin] < 2) return UnAuthMessage(playerid); new vehicleid, playerb, seat; new string[128]; if(sscanf(params, "uii", playerb, vehicleid, seat)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /putplayerincar [playerid/PartofName] [vehicleid] [seat]"); if(seat < 0 || seat > 4) return SendClientMessage(playerid, COLOR_ADM, "ERROR: Invalid seat."); if(!IsPlayerConnected(playerb) || !pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_ADM, "Player is either not connected or logged in."); if(!IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "Invalid vehicle specified."); if(!IsSeatAvailable(vehicleid, seat)) return SendClientMessage(playerid, COLOR_ADM, "That seat is occupied."); PutPlayerInVehicle(playerb, vehicleid, seat); format(string, sizeof(string), "%s put player %s in vehicle ID %i.", ReturnName(playerid), ReturnName(playerb), seat); adminWarn(1, string); return 1; } CMD:backup(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(PlayerData[playerid][pAdmin] < 2)return false; new a_string[60], b_string[128], string[128]; if(sscanf(params, "s[60]S()[128]", a_string, b_string)) { SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /backup [action]"); SendClientMessage(playerid, COLOR_ADM, "[Action] players, playerid, properties, property_id, factions"); SendClientMessage(playerid, COLOR_ADM, "[Action] businesses, garages, garage_id, ALL"); return true; } if(!strcmp(a_string, "players")) { foreach(new i : Player) { if(pLoggedIn[i]) { SavePlayer(i); } } format(string, sizeof(string), "%s backed up all player data.", ReturnName(playerid, 1)); adminWarn(1, string); } else if(!strcmp(a_string, "playerid")) { new playerb; if(sscanf(b_string, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /backup playerid [playerid OR name]"); if(!IsPlayerConnected(playerb))return SendClientMessage(playerid, COLOR_GREY, "65534 is not an active player."); if(!pLoggedIn[playerb])return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); SavePlayer(playerb); format(string, sizeof(string), "%s backed up player %s", ReturnName(playerid, 1), ReturnName(playerb, 1)); adminWarn(2, string); } else if(!strcmp(a_string, "properties")) { new confirm[60]; if(sscanf(b_string, "s[60]", confirm)) { format(string, sizeof(string), "You're about to backup %i properties that are loaded.", TotalPropertyMade); SendClientMessage(playerid, COLOR_ADM, string); SendClientMessage(playerid, COLOR_ADM, "This could lag the server for a few seconds. Type /backup properties confirm to continue."); return true; } if(!strcmp(b_string, "confirm")) { for(new i = 0; i < TotalPropertyMade; i++){ SaveProperty(i); } format(string, sizeof(string), "%s backed up %i properties.", ReturnName(playerid, 1), TotalPropertyMade); adminWarn(1, string); } else return SendClientMessage(playerid, COLOR_ADM, "SERVER: Invalid Parameter."); } else if(!strcmp(a_string, "property_id")) { new p_id; if(sscanf(b_string, "d", p_id)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /backup property_id [property id]"); if(p_id > MAX_PROPERTY || !PropertyData[p_id][propertyid])return SendClientMessage(playerid, COLOR_ADM, "ERROR: You specified an invalid property."); SaveProperty(p_id); format(string, sizeof(string), "%s backed up property ID %d", ReturnName(playerid, 1), p_id); adminWarn(2, string); } else if(!strcmp(a_string, "factions")) { new confirm[60]; if(sscanf(b_string, "s[60]", confirm)) { format(string, sizeof(string), "You're about to backup %i factions that are loaded.", TotalFactionsLoaded); SendClientMessage(playerid, COLOR_ADM, string); SendClientMessage(playerid, COLOR_ADM, "Type /backup factions confirm to continue."); return true; } if(!strcmp(b_string, "confirm")) { for(new i = 0; i < TotalFactionsLoaded; i++) { SaveFaction(i); } format(string, sizeof(string), "%s backed up %i factions.", TotalFactionsLoaded); adminWarn(2, string); } else return SendClientMessage(playerid, COLOR_ADM, "SERVER: Invalid Parameter."); } else if(!strcmp(a_string, "businesses")) { new confirm[60]; if(sscanf(b_string, "s[60]", confirm)) { format(string, sizeof(string), "You're about to backup %i businesses that are loaded.", TotalBusinessesLoaded); SendClientMessage(playerid, COLOR_ADM, string); SendClientMessage(playerid, COLOR_ADM, "Type /backup businesses confirm to continue."); return true; } if(!strcmp(b_string, "confirm")) { for(new i = 0; i < TotalBusinessesLoaded; i++) { SaveBusiness(i); } format(string, sizeof(string), "%s backed up %i businesses.", TotalBusinessesLoaded); adminWarn(2, string); } else return SendClientMessage(playerid, COLOR_ADM, "SERVER: Invalid Parameter."); } else if(!strcmp(a_string, "garages")) { new confirm[60]; if(sscanf(b_string, "s[60]", confirm)) { format(string, sizeof(string), "You're about to backup %i property garages that are loaded.", TotalPropertyGaragesMade); SendClientMessage(playerid, COLOR_ADM, string); SendClientMessage(playerid, COLOR_ADM, "Type /backup garages confirm to continue."); return true; } if(!strcmp(b_string, "confirm")) { for(new i = 0; i < TotalPropertyGaragesMade; i++) { SavePropertyGarage(i); } format(string, sizeof(string), "%s backed up %i property garages.", ReturnName(playerid, 1), TotalPropertyGaragesMade); adminWarn(2, string); } else return SendClientMessage(playerid, COLOR_ADM, "SERVER: Invalid Parameter."); } else if(!strcmp(a_string, "garage_id")) { new g_id; if(sscanf(b_string, "d", g_id))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /backup garage_id [garage id]"); if(g_id > MAX_PROPERTY_GARAGES || !GarageData[g_id][garageSQLID])return SendClientMessage(playerid, COLOR_ADM, "ERROR: You specified an invalid garage."); SavePropertyGarage(g_id); format(string, sizeof(string), "%s backed up property garage %i.", ReturnName(playerid, 1), g_id); adminWarn(2, string); } else if(!strcmp(a_string, "all")) { new confirm[60]; if(sscanf(b_string, "s[60]", confirm)) { SendClientMessage(playerid, COLOR_ADM, "You're about to backup all server data. This could lag the server for a few seconds."); SendClientMessage(playerid, COLOR_ADM, "Type /backup ALL confirm to continue."); return true; } if(!strcmp(b_string, "confirm")) { foreach(new i : Player){ if(pLoggedIn[i]){ SavePlayer(i); } } SaveProperties(); SaveFactions(); SaveBusinesses(); SaveTolls(); SavePaynSprays(); SaveDoors(); SavePropertyGarages(); format(string, sizeof(string), "%s backed up the server data.", ReturnName(playerid, 1)); SendClientMessageToAll(COLOR_ADM, string); } else return SendClientMessage(playerid, COLOR_ADM, "SERVER: Invalid Parameter."); } else return SendClientMessage(playerid, COLOR_ADM, "SERVER: Invalid Parameter."); return true; } CMD:despawncar(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(PlayerData[playerid][pAdmin] < 2)return UnAuthMessage(playerid); new string[128], vehicleid = GetPlayerVehicleID(playerid); if(IsPlayerInAnyVehicle(playerid)) { if(AdminCar[vehicleid]){ AdminCar[vehicleid] = false; DestroyVehicle(vehicleid); format(string, sizeof(string), "%s destroyed vehicle ID %d", ReturnName(playerid, 1), vehicleid); adminWarn(1, string); } else { SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You aren't in an admin vehicle."); } } else { new carid; if(sscanf(params, "d", carid)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /despawncar [vehicleid]"); if(!IsValidVehicle(carid)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active vehicle."); if(!AdminCar[carid]) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You can't despawn that vehicle."); AdminCar[carid] = false; DestroyVehicle(carid); format(string, sizeof(string), "%s destroyed vehicle ID %d", ReturnName(playerid, 1), carid); adminWarn(1, string); } return true; } CMD:noooc(playerid, params[]) { if(!pLoggedIn[playerid])return true; if (PlayerData[playerid][pAdmin] < 2)return UnAuthMessage(playerid); new string[128]; if (!OOC){ OOC = true; SendMessageToAll(COLOR_GREY, "OOC chat was enabled by an admin."); format(string, sizeof(string), "%s enabled /o(oc) chat", ReturnName(playerid, 1)); adminWarn(1, string); } else{ OOC = false; SendMessageToAll(COLOR_GREY, "OOC chat was disabled by an admin."); format(string, sizeof(string), "%s disabled /o(oc) chat", ReturnName(playerid, 1)); adminWarn(1, string); } return true; } CMD:clearpackages(playerid, params[]) { new playerb, string[128]; if (PlayerData[playerid][pAdmin] < 2) return UnAuthMessage(playerid); if (sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /clearpackages [playerid/PartofName]"); if (!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if (!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); WriteLog("weapon_logs/admin_logs/clearpackage.txt", "[%s] %s cleared %s's weapon packages. They had %d.", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerb, 1), CountPlayerPackages(playerb)); for (new i = 1; i < MAX_WEAPON_PACKAGES; i++) { PackageData[playerb][packageWeapon][i] = 0; PackageData[playerb][packageAmmo][i] = 0; } format (string, sizeof(string), "%s cleared %s's weapon packages.", ReturnName(playerid, 1), ReturnName(playerb, 1)); adminWarn(2, string); return true; } CMD:clearvehpackages(playerid, params[]) { new vehicleid, string[128]; if (PlayerData[playerid][pAdmin] < 2) return UnAuthMessage(playerid); if (sscanf(params, "d", vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /clearvehpackages [vehicleid]"); if (!IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_GREY, "65534 is not an active vehicle."); if (!IsValidPlayerCar(vehicleid)) return SendClientMessage(playerid, COLOR_ADM, "The vehicle you specified can't hold weapon packages."); WriteLog("weapon_logs/admin_logs/clearvpackage.txt", "[%s] %s cleared vehicle DBID %d weapon packages. Owner DBID : %d", ReturnDate(), ReturnName(playerid, 1), CarData[vehicleid][carID], CarData[vehicleid][carOwnerID]); for (new i = 1; i < 21; i++) { CarData[vehicleid][carPackages][i] = 0; CarData[vehicleid][carPackagesAmmo][i] = 0; } format (string, sizeof(string), "%s cleared vehicleid %d's weapon packages. DBID %d", ReturnName(playerid, 1), vehicleid, CarData[vehicleid][carID]); adminWarn(2, string); return true; } CMD:cleardrugs(playerid, params[]) { new playerb, string[128]; if (PlayerData[playerid][pAdmin] < 2) return UnAuthMessage(playerid); if (sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /cleardrugs [playerid/PartofName]"); if (!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if (!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_GREY, "You specified a player that isn't logged in."); WriteLog("PlayerDrugs/admin_cleardrugs.txt", "[%s] %s cleared %s's drug packages.", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerb, 1)); format (string, sizeof(string), "%s cleared %s's drug packages.", ReturnName(playerid, 1), ReturnName(playerb, 1)); adminWarn(2, string); for(new i = 0; i < 10; i++){ RemoveDrugPackage(playerb, i); } return true; } CMD:checkfreq(playerid, params[]) { new channel; if(PlayerData[playerid][pAdmin] < 2) return UnAuthMessage(playerid); if(sscanf(params, "i", channel)) return SendClientMessage(playerid, COLOR_ADM, "USAGE: /checkfreq [frequency]"); if(channel < 1 || channel > 1000000)return SendClientMessage(playerid, COLOR_ADM, "ERROR: Only channels 1 - 1000000 are supported."); Message(playerid, COLOR_ADM, "Players in frequency %d:", channel); foreach(new i : Player) { for(new x = 0; x < 5; x++) if(PlayerData[i][pRadio][x] == channel) { Message(playerid, COLOR_GREY, "- %s [ID: %i]", ReturnName(i), i); } } return 1; } // Level 3 CMD:setcar(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(PlayerData[playerid][pAdmin] < 3)return UnAuthMessage(playerid); new vehicleid, option[90], value, string[128]; if(sscanf(params, "ds[90]I(-1)", vehicleid, option, value)){ SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcar [vehicleid] [options]"); SendClientMessage(playerid, COLOR_ADM, "->{FFFFFF} fuel, color1, color2, paintjob, xmr, timesdestroyed"); SendClientMessage(playerid, COLOR_ADM, "->{FFFFFF} lock, alarm, immob, insurance"); return true; } new id = CarData[vehicleid][carID]; if(vehicleid < 0 || !IsValidVehicle(vehicleid))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active vehicle."); if(!id)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} That vehicle doesn't exist in the database."); if(strmatch(option, "fuel")){ if(value == -1)return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcar [vehicleid] fuel [fuel 0-100]"); if(value < 0 || value > 100)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} Fuel must be 0-100."); CarData[vehicleid][carFuel] = value; format(string, sizeof(string), "%s set vehicleid %d's fuel to %d", ReturnName(playerid, 1), vehicleid, value); adminWarn(3, string); SaveCar(vehicleid); WriteLog("admin_logs/vehicles/setfuel_log.txt", "[%s] %s set Vehicle (DBID) %d's fuel to %d", ReturnDate(), ReturnName(playerid, 1), id, value); } else if(strmatch(option, "color1")){ if(value == -1)return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcar [vehicleid] color1 [colorid]"); if(value < 0 || value > 255)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid color id."); CarData[vehicleid][carColor1] = value; format(string, sizeof(string), "%s set vehicleid %d's color1 to %d", ReturnName(playerid, 1), vehicleid, value); adminWarn(3, string); SendClientMessage(playerid, COLOR_ADM, "Warning: They must respawn their vehicle for the color to take effect."); SaveCar(vehicleid); WriteLog("admin_logs/vehicles/setcolor.txt", "[%s] %s set Vehicle (DBID) %d's color1 to %d", ReturnDate(), ReturnName(playerid, 1), id, value); } else if(strmatch(option, "color2")){ if(value == -1)return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcar [vehicleid] color2 [colorid]"); if(value < 0 || value > 255)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid color id."); CarData[vehicleid][carColor2] = value; format(string, sizeof(string), "%s set vehicleid %d's color2 to %d", ReturnName(playerid, 1), vehicleid, value); adminWarn(3, string); SendClientMessage(playerid, COLOR_ADM, "Warning: They must respawn their vehicle for the color to take effect."); SaveCar(vehicleid); WriteLog("admin_logs/vehicles/setcolor.txt", "[%s] %s set Vehicle (DBID) %d's color2 to %d", ReturnDate(), ReturnName(playerid, 1), id, value); } else if(strmatch(option, "paintjob")){ if(value == -1){ SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcar [vehicleid] paintjob [paintjob]"); SendClientMessage(playerid, COLOR_ADM, "Warning: Valid paintjob IDs are 0-2. Use 3 to remove the paintjob."); return true; } if(value > 3 || value < 0)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You have specified an invalid paintjob id."); CarData[vehicleid][carPaintjob] = value; format(string, sizeof(string), "%s set vehicleid %d's paintjob to %d", ReturnName(playerid, 1), vehicleid, value); adminWarn(3, string); SendClientMessage(playerid, COLOR_ADM, "Warning: They must respawn their vehicle for the paintjob to take effect."); SaveCar(vehicleid); WriteLog("admin_logs/vehicles/setcolor.txt", "[%s] %s set Vehicle (DBID) %d's paintjob to %d", ReturnDate(), ReturnName(playerid, 1), id, value); } else if(strmatch(option, "xmr")){ if(CarData[vehicleid][carXMR]){ CarData[vehicleid][carXMR] = false; format(string, sizeof(string), "%s removed vehicleid %d's XMR.", ReturnName(playerid, 1), vehicleid); adminWarn(3, string); SaveCar(id); WriteLog("admin_logs/vehicles/setxmr_log.txt", "[%s] %s removed Vehicle (DBID) %d's XMR", ReturnDate(), ReturnName(playerid, 1), id); } else{ CarData[vehicleid][carXMR] = true; format(string, sizeof(string), "%s set vehicleid %d's XMR.", ReturnName(playerid, 1), vehicleid); adminWarn(3, string); SaveCar(vehicleid); WriteLog("admin_logs/vehicles/setxmr_log.txt", "[%s] %s added XMR to Vehicle (DBID) %d", ReturnDate(), ReturnName(playerid, 1), id); } } else if(strmatch(option, "timesdestroyed")){ if(value == -1)return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcar [vehicleid] timesdestroyed [value]"); format(string, sizeof(string), "%s set vehicleid %d's times destroyed to %d from %d", ReturnName(playerid, 1), vehicleid, value, CarData[vehicleid][carTimeDestroyed]); adminWarn(3, string); CarData[vehicleid][carTimeDestroyed] = value; SaveCar(vehicleid); WriteLog("admin_logs/vehicles/setdestroy_log.txt", "[%s] %s set Vehicle (DBID) %d's times destroyed to %d", ReturnDate(), ReturnName(playerid, 1), id, value); } else if(strmatch(option, "lock")){ if(value == -1)return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcar [vehicleid] lock [value]"); if(value > 3 || value < 1)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} Locks have to be 1-3."); format(string, sizeof(string), "%s set vehicleid %d's lock status to %d", ReturnName(playerid, 1), vehicleid, value); adminWarn(3, string); CarData[vehicleid][carLock] = value; SaveCar(vehicleid); WriteLog("admin_logs/vehicles/setlock_log.txt", "[%s] %s set Vehicle (DBID) %d's lock to %d", ReturnDate(), ReturnName(playerid, 1), id, value); } else if(strmatch(option, "alarm")){ if(value == -1)return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcar [vehicleid] alarm [value]"); if(value > 3 || value < 1)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} Alarms have to be 1-3."); format(string, sizeof(string), "%s set vehicleid %d's alarm status to %d", ReturnName(playerid, 1), vehicleid, value); adminWarn(3, string); CarData[vehicleid][carAlarm] = value; SaveCar(vehicleid); WriteLog("admin_logs/vehicles/setalarm_log.txt", "[%s] %s set Vehicle (DBID) %d's alarm to %d", ReturnDate(), ReturnName(playerid, 1), id, value); } else if(strmatch(option, "immob")){ if(value == -1)return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcar [vehicleid] immob [value]"); if(value > 3 || value < 1)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} Immoblizer has to be 1-3."); format(string, sizeof(string), "%s set vehicleid %d's Immoblizer status to %d", ReturnName(playerid, 1), vehicleid, value); adminWarn(3, string); CarData[vehicleid][carImmob] = value; SaveCar(vehicleid); WriteLog("admin_logs/vehicles/setimmob_log.txt", "[%s] %s set Vehicle (DBID) %d's immoblizer to %d", ReturnDate(), ReturnName(playerid, 1), id, value); } else if(strmatch(option, "insurance")){ if(value == -1)return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcar [vehicleid] insurance [value]"); if(value > 3 || value < 0)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} Insurance have to be 1-3."); format(string, sizeof(string), "%s set vehicleid %d's insurance to %d", ReturnName(playerid, 1), vehicleid, value); adminWarn(3, string); CarData[vehicleid][carInsurance] = value; SaveCar(vehicleid); WriteLog("admin_logs/vehicles/setinsurance_log.txt", "[%s] %s set Vehicle (DBID) %d's insurance to %d", ReturnDate(), ReturnName(playerid, 1), id, value); } return true; } CMD:setcarlife(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(PlayerData[playerid][pAdmin] < 3)return UnAuthMessage(playerid); new string[128], option[90], vehicleid, Float:life; if(sscanf(params, "ds[90]F(-1)", vehicleid, option, life))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcarlife [vehicleid] [engine OR battery] [life]"); new id = CarData[vehicleid][carID]; if(vehicleid < 0 || !IsValidVehicle(vehicleid))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active vehicle."); if(!id)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} That vehicle doesn't exist in the database."); if(strmatch(option, "engine")){ if(life == -1)return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcarlife [vehicleid] engine [life...]"); format(string, sizeof(string), "%s set vehicleid %d's engine to %.2f from %.2f", ReturnName(playerid, 1), vehicleid, life, CarData[vehicleid][carEngine]); adminWarn(3, string); CarData[vehicleid][carEngine] = life; SaveCar(vehicleid); WriteLog("admin_logs/vehicles/setengine_log.txt", "[%s] %s set Vehicle (DBID) %d's Engine Life to %d", ReturnDate(), ReturnName(playerid, 1), id, life); } else if(strmatch(option, "battery")) { if(life == -1) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setcarlife [vehicleid] battery [life...]"); format(string, sizeof(string), "%s set vehicleid %d's battery to %.2f from %.2f", ReturnName(playerid, 1), vehicleid, life, CarData[vehicleid][carBattery]); adminWarn(3, string); CarData[vehicleid][carBattery] = life; SaveCar(vehicleid); WriteLog("admin_logs/vehicles/setbattery_log.txt", "[%s] %s set Vehicle (DBID) %d's Battery Life to %d", ReturnDate(), ReturnName(playerid, 1), id, life); } return true; } CMD:setplate(playerid, params[]) { if(!pLoggedIn[playerid])return true; new string[128], plate[32], vehicleid; if(PlayerData[playerid][pAdmin] < 3)return UnAuthMessage(playerid); if(sscanf(params, "ds[32]", vehicleid, plate))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setplate [vehicleid] [car plates]"); //new id = CarData[vehicleid][carID]; if(vehicleid < 0 || !IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active vehicle."); if(!CarData[vehicleid][carID]) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} That vehicle doesn't exist in the database."); format(CarData[vehicleid][carPlates], 32, "%s", plate); format(string, sizeof(string), "%s set vehicleid %d's plates to `%s`", ReturnName(playerid, 1), vehicleid, plate); adminWarn(3, string); SendClientMessage(playerid, COLOR_ADM, "Warning: They must respawn their vehicle for it to take effect."); SaveCar(vehicleid); WriteLog("admin_logs/vehicles/setplate_log.txt", "[%s] %s set Vehicle (DBID) %d's plates to %s", ReturnDate(), ReturnName(playerid, 1), CarData[vehicleid][carID], plate); return true; } CMD:setfaction(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(PlayerData[playerid][pAdmin] < 3)return UnAuthMessage(playerid); new string[128], playerb, factionid, leader; if(sscanf(params, "uiI(-1)", playerb, factionid, leader)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setfaction [playerid/PartofName] [factionid] [leader]"); if(factionid < 1 || factionid > MAX_FACTIONS)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} Faction IDs must be greater than 1 and less then 11."); if(!FactionData[factionid][factionID])return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} That faction doesn't exist."); format(string, sizeof(string), "%s set %s's faction to the %s.", ReturnName(playerid, 1), ReturnName(playerb, 1), FactionData[factionid][factionName]); adminWarn(3, string); PlayerData[playerb][pFaction] = factionid; SaveSQLInt(PlayerData[playerid][pSQLID], "players", "Faction", PlayerData[playerid][pFaction]); if(leader == -1 || leader == 0){ PlayerData[playerb][pFactionRank] = 20; } else{ PlayerData[playerb][pFactionRank] = 1; } SaveSQLInt(PlayerData[playerid][pFaction], "players", "FactionRank", PlayerData[playerid][pFactionRank]); WriteLog("admin_logs/factions/setfaction_log.txt", "[%s] %s set %s to faction ID %d (leader = %d)", ReturnDate(), ReturnName(playerid, 1), ReturnName(playerb, 1), factionid, leader); if(leader == -1 || leader == 0){ format(string, sizeof(string), "[ ! ]{FFFFFF} %s added you to %s.", ReturnName(playerid, 1), FactionData[factionid][factionName]); } else{ format(string, sizeof(string), "[ ! ]{FFFFFF} %s made you leader of %s.", ReturnName(playerid, 1), FactionData[factionid][factionName]); } SendClientMessage(playerb, COLOR_ADM, string); return true; } CMD:custommsg(playerid, params[]) { if(PlayerData[playerid][pAdmin] < 3) return UnAuthMessage(playerid); new playerb, text[128]; if(sscanf(params, "us[128]", playerb, text)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /custommsg [playerid/PartofName] [text]"); if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_ADM, "Player isn't connected."); printf("[Debug] %s sent a custom TD message to %s: %s", ReturnName(playerid), ReturnName(playerb), text); ShowTextdrawInfo(playerb, text); if(playerb != playerid) SendClientMessage(playerid, COLOR_GREY, "Message was sent to the specified player."); return 1; } CMD:fixtruckers(playerid, params[]) { if(PlayerData[playerid][pAdmin] < 4) return UnAuthMessage(playerid); if(isnull(params)) return SendClientMessage(playerid, COLOR_ADM, "WARNING: This stops all trucker job related timers and stops their missions. /fixtruckers go"); if(!isnull(params) && !strcmp(params, "go")) { foreach(new i : Player) { KillTimer(TruckerJobExitTimer[i]); KillTimer(TrailerTimer[i]); KillTimer(TruckerJobDeliverTimer[i]); KillTimer(TruckerJobTimer[i]); if(StartedTruckerMission[i]) { SendClientMessage(i, COLOR_ADM, "Your trucking was reset by an admin due to an error. Contact a developer if you see this."); EndTruckerMission(i); } } } return 1; } // CMD:listorders(playerid, params[]) { if( PlayerData[playerid][pAdmin] < 4 ) return UnAuthMessage(playerid); SendClientMessage(playerid, COLOR_GREY, "Factions with active warehouse orders:"); for(new i = 1; i < MAX_FACTIONS; i++) if(FactionData[i][factionHasWeaponOrder]) { Message(playerid, COLOR_WHITE, "%s [%i] - Order time: %s", ReturnFactionName(i), i, TimeConvert(FactionData[i][factionOrderTime])); } return 1; } CMD:listcrates(playerid, params[]) { if( PlayerData[playerid][pAdmin] < 4 ) return UnAuthMessage(playerid); SendClientMessage(playerid, COLOR_GREY, "Active crates in the server:"); for(new i; i < MAX_WEAPON_CRATES; i++) if(WeaponCrates[i][CrateExists]) { Message(playerid, COLOR_WHITE, "Crate ID: %i - Faction: %s - Crate by: %s", i, ReturnFactionName(WeaponCrates[i][CrateFaction]), ReturnSQLName(WeaponCrates[i][CrateBy])); } return 1; } CMD:editordertime(playerid, params[]) { if( PlayerData[playerid][pAdmin] < 4 ) return UnAuthMessage(playerid); new faction_id, time; new string[128]; if(sscanf(params, "ii", faction_id, time)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /editordertime [faction id] [time in seconds] This should only be used incase of a bug."); if(faction_id < 1 || faction_id > MAX_FACTIONS || !FactionData[faction_id][factionID]) return SendClientMessage(playerid, COLOR_GREY, "Invalid faction specified."); if(time < 1) return SendClientMessage(playerid, COLOR_GREY, "Invalid seconds specified."); if(!FactionData[faction_id][factionHasWeaponOrder]) return SendClientMessage(playerid, COLOR_GREY, "This faction doesn't have an active weapon order."); format(string, sizeof string, "%s set faction ID %i's order time to: %i from %i", ReturnName(playerid), faction_id, time, FactionData[faction_id][factionOrderTime]); adminWarn(4, string); WriteLog("faction_logs/warehouse_logs/editordertime.txt", "[%s] Admin %s ordered Faction ID %i's order from %i to %i", ReturnDateLog(), ReturnName(playerid), faction_id, FactionData[faction_id][factionOrderTime], time); FactionData[faction_id][factionOrderTime] = time; return 1; } CMD:editproducts(playerid, params[]) { if( PlayerData[playerid][pAdmin] < 4 ) return UnAuthMessage(playerid); new faction_id, products; new string[128]; if(sscanf(params, "ii", faction_id, products)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /editproducts [faction id] [products]"); if(faction_id < 1 || faction_id > MAX_FACTIONS || !FactionData[faction_id][factionID]) return SendClientMessage(playerid, COLOR_GREY, "Invalid faction specified."); if(products < 1) return SendClientMessage(playerid, COLOR_GREY, "Invalid products."); format(string, sizeof(string), "%s set faction ID %i's products to %i from %i.", ReturnName(playerid), faction_id, products, FactionData[faction_id][factionProducts]); adminWarn(4, string); WriteLog("faction_logs/warehouse_logs/editproducts.txt", "%s set faction ID %i's products to %i from %i.", ReturnName(playerid), faction_id, products, FactionData[faction_id][factionProducts]); FactionData[faction_id][factionProducts] = products; return 1; } CMD:destroycrate(playerid, params[]) { if( PlayerData[playerid][pAdmin] < 4 ) return UnAuthMessage(playerid); new crateid; if(sscanf(params, "i", crateid)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /destroycrate [crate id]"); if(crateid < 0 || crateid > MAX_WEAPON_CRATES || !WeaponCrates[crateid][CrateExists]) return SendClientMessage(playerid, COLOR_GREY, "Specified an invalid crate ID."); new string[128]; format(string, sizeof(string), "%s destroyed weapon crate ID %i.", ReturnName(playerid), crateid); adminWarn(4, string); printf("[Debug] %s cleared active crate ID %i", ReturnName(playerid), crateid); ClearActiveCrate(crateid); return 1; } CMD:gotocrate(playerid, params[]) { if( PlayerData[playerid][pAdmin] < 4 ) return UnAuthMessage(playerid); new crateid; if(sscanf(params, "i", crateid)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /destroycrate [crate id]"); if(crateid < 0 || crateid > MAX_WEAPON_CRATES || !WeaponCrates[crateid][CrateExists]) return SendClientMessage(playerid, COLOR_GREY, "Specified an invalid crate ID."); new Float:Pos[3]; new string[128]; format(string, sizeof string, "%s teleported to Crate ID %i.", ReturnName(playerid), crateid); adminWarn(4, string); GetDynamicObjectPos(WeaponCrates[crateid][CrateObject], Pos[0], Pos[1], Pos[2]); SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); return 1; } // CMD:gotopoint(playerid, params[]) { new Float:Point[3], interior; if(!pLoggedIn[playerid])return true; if(PlayerData[playerid][pAdmin] < 3)return UnAuthMessage(playerid); if(sscanf(params, "dfff", interior, Point[0], Point[1], Point[2]))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /gotopoint [interior] [x axis] [y axis] [z axis]"); SendPlayer(playerid, Point[0], Point[1], Point[2], interior, GetPlayerVirtualWorld(playerid)); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); return 1; } CMD:getname(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(PlayerData[playerid][pAdmin] < 3)return UnAuthMessage(playerid); new dbid, string[128]; if(sscanf(params, "d", dbid))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /getname [player dbid]"); if(dbid < 1)return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You can't go below one."); format(string, sizeof(string), "DBID %d is Player %s.", dbid, ReturnSQLName(dbid)); SendClientMessage(playerid, COLOR_ADM, string); return true; } CMD:x(playerid, params[]) { new Float:playerPos[3], Float:coord; if(PlayerData[playerid][pAdmin] < 3) return UnAuthMessage(playerid); if(sscanf(params, "f", coord)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /x [coordinate]"); GetPlayerPos(playerid, playerPos[0], playerPos[1], playerPos[2]); SetPlayerPos(playerid, playerPos[0] + coord, playerPos[1], playerPos[2]); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); return true; } CMD:y(playerid, params[]) { new Float:playerPos[3], Float:coord; if(PlayerData[playerid][pAdmin] < 3) return UnAuthMessage(playerid); if(sscanf(params, "f", coord)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /y [coordinate]"); GetPlayerPos(playerid, playerPos[0], playerPos[1], playerPos[2]); SetPlayerPos(playerid, playerPos[0], playerPos[1] + coord, playerPos[2]); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); return true; } CMD:z(playerid, params[]) { new Float:playerPos[3], Float:coord; if(PlayerData[playerid][pAdmin] < 3) return UnAuthMessage(playerid); if(sscanf(params, "f", coord)) return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /z [coordinate]"); GetPlayerPos(playerid, playerPos[0], playerPos[1], playerPos[2]); SetPlayerPos(playerid, playerPos[0], playerPos[1], playerPos[2] + coord); SendClientMessage(playerid, COLOR_GREY, "You have been teleported"); return true; } CMD:propertyinfo(playerid, params[]) { new pid, name[40], string[128]; if (!pLoggedIn[playerid])return true; if (PlayerData[playerid][pAdmin] < 3)return UnAuthMessage(playerid); if (sscanf(params, "d", pid))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /propertyinfo [propertyid]"); if (pid < 1 || pid > MAX_PROPERTY || !PropertyData[pid][propertyid])return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid property ID."); if(!PropertyData[pid][propertyOwnerSQL]) name = "None"; else format(name, 40, "%s", ReturnSQLName(PropertyData[pid][propertyOwnerSQL])); new garage_id; for(new i = 1; i < MAX_PROPERTY_GARAGES; i++) if(GarageData[i][garagePropertyID] == pid) garage_id = i; SendClientMessage(playerid, COLOR_DARKGREEN, "____________________________________________"); format(string, sizeof(string), "Owner:[%s] Level:[%d] MarketPrice:[%d] Type:[%d] Locked:[%d] ID:[%d]", name, PropertyData[pid][propertyLevel], PropertyData[pid][propertyMarketPrice], PropertyData[pid][propertyType], PropertyData[pid][propertyLocked], PropertyData[pid][propertyid]); SendClientMessage(playerid, COLOR_WHITE, string); format(string, sizeof(string), "Interior:[%d] InteriorWorld:[%d] (Apartment)Exterior:[%d] ExteriorWorld:[%d] ComplexLink:[%d]", PropertyData[pid][propertyInteriorID], PropertyData[pid][propertyInteriorWorld], PropertyData[pid][propertyExteriorID], PropertyData[pid][propertyExteriorWorld], PropertyData[pid][propertyComplexLink]); SendClientMessage(playerid, COLOR_WHITE, string); format(string, sizeof(string), "Cashbox:[%d] Weapons:[%d], Faction:[%d], Linked Garage:[%d]", PropertyData[pid][propertyMoney], CountHouseWeapons(pid), PropertyData[pid][propertyFaction], garage_id); SendClientMessage(playerid, COLOR_WHITE, string); SendClientMessage(playerid, COLOR_DARKGREEN, "____________________________________________"); return true; } CMD:fixveh(playerid, params[]) return cmd_repair(playerid, params); CMD:repair(playerid, params[]) { if(!pLoggedIn[playerid])return true; if(!PlayerData[playerid][pAdmin])return UnAuthMessage(playerid); new string[128], Float: angle ; if(IsPlayerInAnyVehicle(playerid)){ RepairVehicle(GetPlayerVehicleID(playerid)); switch(GetVehicleModel(GetPlayerVehicleID(playerid))) { case 528, 601, 427: SetVehicleHealth(GetPlayerVehicleID(playerid), 10000); default: SetVehicleHealth(GetPlayerVehicleID(playerid), 1000); } GetVehicleZAngle(GetPlayerVehicleID(playerid), angle); SetVehicleZAngle(GetPlayerVehicleID(playerid), angle); format(string, sizeof(string), "%s repaired vehicle ID %d", ReturnName(playerid, 1), GetPlayerVehicleID(playerid)); adminWarn(3, string); } else{ new vehicleid; if(sscanf(params, "d", vehicleid))return SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /repair [vehicleid]"); if(!IsValidVehicle(vehicleid))return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active vehicle."); RepairVehicle(vehicleid); SetVehicleHealth(vehicleid, 1000); switch(GetVehicleModel(vehicleid)) { case 528, 601, 427: SetVehicleHealth(vehicleid, 10000); default: SetVehicleHealth(vehicleid, 1000); } GetVehicleZAngle(vehicleid, angle); SetVehicleZAngle(vehicleid, angle); format(string, sizeof(string), "%s repaired vehicle ID %d", ReturnName(playerid, 1), vehicleid); adminWarn(3, string); } return true; } CMD:setjob(playerid, params[]) { if (PlayerData[playerid][pAdmin] < 3) return false; new playerb, job_id, string[128]; if (sscanf(params, "ud", playerb, job_id)) { SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setjob [playerid/PartofName] [job_id] "); SendClientMessage(playerid, COLOR_WHITE, "| 1. Mechanic Job, 2. Fisherman Job (WIP), 3. Taxi Driver, 4. Trucker. |"); return true; } if (!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); if (job_id > 4 || job_id < 1) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid job."); if(PlayerData[playerb][pSidejob] == job_id) return SendClientMessage(playerid, COLOR_ADM, "ERROR: That job is the players sidejob."); PlayerData[playerb][pJob] = job_id; format(string, sizeof(string), "%s set %s's job to %s. ", ReturnName(playerid, 1), ReturnName(playerb, 1), ReturnJobName(job_id)); adminWarn(3, string); WriteLog("admin_logs/players/setjob_log.txt", "[%s] %s set %s's Job to %s.", ReturnDate(), ReturnName(playerid), ReturnName(playerb), ReturnJobName(job_id)); return true; } CMD:setsidejob(playerid, params[]) { if (PlayerData[playerid][pAdmin] < 3) return 0; new playerb, job_id, string[128]; if (sscanf(params, "ud", playerb, job_id)) { SendClientMessage(playerid, COLOR_ADM, "USAGE:{FFFFFF} /setsidejob [playerid/PartofName] [job_id] "); SendClientMessage(playerid, COLOR_WHITE, "| 1. Mechanic Job, 2. State Agent, 3. Taxi Job, 4. Weapon Dealer, 5. Trucker Job |"); return true; } if (!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "65535 is not an active player."); if(!pLoggedIn[playerb]) return SendClientMessage(playerid, COLOR_GREY, "You have specified a player that isn't logged in."); if (job_id > 5 || job_id < 1) return SendClientMessage(playerid, COLOR_ADM, "ERROR:{FFFFFF} You specified an invalid job."); if(PlayerData[playerb][pJob] == job_id) return SendClientMessage(playerid, COLOR_ADM, "ERROR: That job is the players primary."); PlayerData[playerb][pSidejob] = job_id; format(string, sizeof(string), "%s set %s's sidejob to %s. ", ReturnName(playerid, 1), ReturnName(playerb, 1), ReturnJobName(job_id)); adminWarn(3, string); WriteLog("admin_logs/players/setjob_log.txt", "[%s] %s set %s's SideJob to %s.", ReturnDate(), ReturnName(playerid), ReturnName(playerb), ReturnJobName(job_id)); return true; } CMD:near(playerid, params[]) { if (PlayerData[playerid][pAdmin] < 3) return 0; new id; if( (id = IsPlayerNearProperty(playerid)) != 0) Message(playerid, COLOR_YELLOW, "[ ! ] You're near Property ID %i", id); if( (id = IsPlayerInProperty(playerid)) != 0) Message(playerid, COLOR_YELLOW, "[ ! ] You're inside Property ID %i", id); if( (id = IsPlayerNearBusiness(playerid)) != 0) Message(playerid, COLOR_YELLOW, "[ ! ] You're near Business ID %i", id); if( (id = IsPlayerInBusiness(playerid)) != 0) Message(playerid, COLOR_YELLOW, "[ ! ] You're inside Business ID %i", id); if( (id = GetNearestVehicle(playerid)) != INVALID_VEHICLE_ID) Message(playerid, COLOR_YELLOW, "[ ! ] You're near vehicle ID %i", id); for(new i = 0; i < sizeof ObjectData; i++) if(IsPlayerInRangeOfPoint(playerid, 5.0, ObjectData[i][Object_PosX], ObjectData[i][Object_PosY], ObjectData[i][Object_PosZ]) && GetPlayerVirtualWorld(playerid) == ObjectData[i][Object_World]) Message(playerid, COLOR_YELLOW, "[ ! ] You're near Object ID %i (DBID: %i)", i, ObjectData[i][ObjectDBID]); if( (id = IsPlayerNearEntrance(playerid)) != -1) Message(playerid, COLOR_YELLOW, "[ ! ] You're near Entrance ID %i", id); return 1; } CMD:setfightstyle(playerid, params[]) { if(PlayerData[playerid][pAdmin] < 3) return UnAuthMessage(playerid); new playerb, style, str[128]; if(sscanf(params, "ui", playerb, style)) { SendClientMessage(playerid, COLOR_WHITE, "Styles: 0 1 2 3 4 5"); return SendClientMessage(playerid, COLOR_ADM, "USAGE: /setfightstyle [playerid/PartofName]