Part of Slepp's ProjectsPastebinTURLImagebinFilebin
Feedback -- English French German Japanese
Create Upload Newest Tools Donate
Sign In | Create Account

Advertising

Paste Description for VX-RP

Pawno script. Fixed by : Ballu Miaa

VX-RP
Thursday, April 26th, 2012 at 9:37:35pm MDT 

  1. /*
  2.                                                 Copyright 2010-2011 Frederick Wright
  3.  
  4.                    Licensed under the Apache License, Version 2.0 (the "License");
  5.                    you may not use this file except in compliance with the License.
  6.                    You may obtain a copy of the License at
  7.  
  8.                            http://www.apache.org/licenses/LICENSE-2.0
  9.  
  10.                    Unless required by applicable law or agreed to in writing, software
  11.                    distributed under the License is distributed on an "AS IS" BASIS,
  12.                    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13.                    See the License for the specific language governing permissions and
  14.                    limitations under the License.
  15.  
  16.                 SCRIPT:
  17.                     Vortex Roleplay 2 by Calgon and Brian
  18.  
  19.                 AUTHOR:
  20.                         Frederick Wright [mrfrederickwright@gmail.com]
  21.                         Stefan Rosic [streetfire68@hotmail.com]
  22.  
  23.                 ADDITIONAL CREDITS:
  24.                     All other unmentioned mapping: JamesC [http://forum.sa-mp.com/member.php?u=97617]
  25.                         Gym Map: Marcel_Collins [http://forum.sa-mp.com/showthread.php?p=1537421]
  26.                         LS Mall: cessil [http://forum.sa-mp.com/member.php?u=50597]
  27.  
  28.                 MISC INFO:
  29.                         gGroupType listing:
  30.                                 0 - Gangs
  31.                                 1 - Police
  32.                                 2 - Government
  33.                                 3 - Hitmen
  34.                                 4 - LSFMD
  35.  
  36.                                 Reserved group slots
  37.                                 1 - LSPD
  38.                                 3 - Government
  39.                                 4 - LSFMD
  40.  
  41.                                 Job Types
  42.                                 1 - Arms Dealer
  43.                                 2 - Detective
  44.                                 3 - Mechanic
  45.                                 4 - Fisherman
  46.                                
  47.                                 Business Item Types:
  48.                                 1 - Rope
  49.                                 2 - Walkie Talkie
  50.                                 3 - Phonebook
  51.                                 4 - Mobile Phone Credit
  52.                                 5 - Mobile Phone
  53.                                 6 - 5% health increase (food)
  54.                                 7 - 10% health increase (food)
  55.                                 8 - 30% health increase (food)
  56.                                 9 - Purple Dildo
  57.                                 10 - Small White Vibrator
  58.                                 11 - Large White Vibrator
  59.                                 12 - Silver Vibrator
  60.                                 13 - Flowers
  61.                                 14 - Cigar(s)
  62.                                 15 - Sprunk
  63.                                 16 - Wine
  64.                                 17 - Beer
  65.                                 18 - All Skins
  66.  
  67.                         Error Codes:
  68.                                 01x01 - Attempted to deposit an invalid (negative) amount of money to a house safe.
  69.                                 01x02 - Attempted to deposit an invalid (negative) amount of materials to a house safe.
  70.                                 01x03 - Attempted to withdraw an invalid (negative) amount of money from a house safe.
  71.                                 01x04 - Attempted to withdraw an invalid (negative) amount of materials from a house safe.
  72.                                 01x05 - No checkpoint reason. The checkpoint handle hasn't had a string defined in getPlayerCheckpointReason()
  73.                                 01x08 - Too many vehicles spawned (in danger of exceeding MAX_VEHICLES).
  74.  
  75.                         Business Types:
  76.                             0 - None
  77.                             1 - 24/7
  78.                                 2 - Clothing Store
  79.                                 3 - Bar
  80.                                 4 - Sex Shop
  81.                                 5 - Car Dealership
  82.                                 6 - Gym
  83.                                 7 - Restaurant
  84. */
  85.  
  86. #include                <a_samp>
  87. #include                <a_mysql>
  88. #include                <zcmd>
  89. #include                <foreach>
  90. #include                <GeoIP_Plugin>
  91. #include                <streamer>
  92. #include                <OPSP>
  93. #include                                <a_zones>
  94.  
  95. native      sscanf(const data[], const format[], {Float,_}:...);
  96. native      unformat(const data[], const format[], {Float,_}:...) = sscanf;
  97.  
  98. #define                 MAX_HOUSES                              (550)
  99. #define                 MAX_BOTS                                (2)
  100. #define                 MAX_TIMERS                                              (5)
  101. #define                 MAX_TEXTDRAWS                           (10)
  102. #define                 MAX_JOBS                                (10)
  103. #define                 MAX_GROUPS                              (20)
  104. #define                 MAX_BUSINESSES                          (100)
  105. #define                 MAX_WEAPON_HACK_WARNINGS                (3)
  106. #define                 MAX_ASSETS                              (10)
  107. #define     MAX_SPIKES                                                        (10)
  108. #define     MAX_LOGIN_ATTEMPTS                                          (3)
  109. #define                 MAX_ATMS                                (25)
  110. #define                 MAX_BUSINESS_ITEMS                      (MAX_BUSINESSES * 6)
  111.  
  112. #define                                 COLOR_YELLOW                      0xFFFF00AA
  113. #define                                 COLOR_RED                                                 0xE60000FF
  114. #define                                 COLOR_WHITE                             0xFFFFFFAA
  115. #define                                 COLOR_LIGHT                                        0xAFD9FAFF
  116. #define                                 COLOR_GREY                                         0xCECECEFF
  117. #define                                 COLOR_PURPLE                      0xC2A2DAAA
  118. #define                 COLOR_LIGHTRED                          0xFF8080FF
  119. #define                                 COLOR_NICESKY               0x00C2ECFF
  120. #define                                 COLOR_GREEN                             0x00FF00AA
  121. #define                 COLOR_TEAL                              0x67AAB1FF
  122. #define                                 COLOR_DCHAT                                   0xFFD7004A
  123. #define                 COLOR_CHATBUBBLE                                                0xFFFFFFCC
  124. #define                 COLOR_NEWBIE                            0xBED9EFFF
  125. #define                 COLOR_RADIOCHAT                         0x8D8DFFFF
  126. #define                 COLOR_GENANNOUNCE                       0xA9C4E4FF
  127. #define     COLOR_COOLBLUE                     0x0064FFAA
  128. #define                                 COLOR_HOTORANGE                                                 0xF97804FF
  129. #define     COLOR_SMS                                                                0xD5EAFFFF
  130. #define                 COLOR_GROUPGREEN                        0x00FF86FF
  131. #define                 COLOR_NGREEN                            0x5FFE6AFF
  132. #define                 COLOR_ME2                               0x6FA5FFFF
  133. #define                 COLOR_GROUP2                            0xFFC846FF
  134. #define                 EMBED_GREY                              "{CECECE}"
  135. #define                 EMBED_LIGHTRED                          "{FF8080}"
  136. #define                 EMBED_OOC                               "{AFD9FA}"
  137. #define                 EMBED_WHITE                             "{FFFFFF}"
  138. #define                                 EMBED_YELLOW                            "{FFFF00}"
  139. /* ----------------------------- [DIALOGS] ----------------------------- */
  140.  
  141. #define                 DIALOG_LOGIN                            (1)
  142. #define                 DIALOG_HOUSE_ENTER                      (2)
  143. #define                                 DIALOG_CREATEGUN                                           (3)
  144. #define                 DIALOG_GROUP_ENTER                      (4)
  145. #define                 DIALOG_LSPD                             (5)
  146. #define                 DIALOG_LSPD_EQUIPMENT                          (6)
  147. #define                 DIALOG_LSPD_RELEASE                          (7)
  148. #define                 DIALOG_LSPD_CLOTHING                           (8)
  149. #define                 DIALOG_LSPD_CLEAR                 (9)
  150. #define     LSPD_DIALOG_EQUIPMENT1                  (10)
  151. #define     LSPD_DIALOG_EQUIPMENT2                  (11)
  152. #define                                 DIALOG_LSPD_CLOTHING_OFFICIAL           (12)
  153. #define                                 DIALOG_LSPD_CLOTHING_CUSTOM             (13)
  154. #define     DIALOG_HELP                                                (14)
  155. #define     DIALOG_HELP2                                   (15)
  156. #define                 DIALOG_GENDER_SELECTION                 (16)
  157. #define                 DIALOG_TUTORIAL_DOB                     (17)
  158. #define                 DIALOG_TUTORIAL                         (18)
  159. #define                 DIALOG_REPORT                           (19)
  160. #define                 DIALOG_TWENTYFOURSEVEN                  (20)
  161. #define                                 DIALOG_GO                                                        (21)
  162. #define                                 DIALOG_GO1                                                (22)
  163. #define                                 DIALOG_GO2                                                (23)
  164. #define                                 DIALOG_GO3                                                (24)
  165. #define                                 DIALOG_GO4                                                (25)
  166. #define                                 DIALOG_GO5                                                (26)
  167. #define                                 DIALOG_GO6                                                (27)
  168. #define                 DIALOG_BUSINESS_ENTER                   (28)
  169. #define                 DIALOG_DROP                             (29)
  170. #define                                 DIALOG_ELEVATOR1                                           (30)
  171. #define                                 DIALOG_ELEVATOR2                                           (31)
  172. #define                                 DIALOG_ELEVATOR3                                           (32)
  173. #define                                 DIALOG_ELEVATOR4                                           (33)
  174. #define     DIALOG_DROPITEM              (34)
  175. #define                 DIALOG_BAR                              (35)
  176. #define                 DIALOG_SEX_SHOP                         (36)
  177. #define     DIALOG_BUYCAR                            (37)
  178. #define                                 DIALOG_BUYCAR_CRAP                                    (38)
  179. #define     DIALOG_BUYCAR_CLASSIC                    (39)
  180. #define     DIALOG_BUYCAR_SEDAN                                    (40)
  181. #define     DIALOG_BUYCAR_SUV                                                (41)
  182. #define     DIALOG_BUYCAR_BIKE                                          (42)
  183. #define     DIALOG_BUYCAR_MUSCLE                         (43)
  184. #define     DIALOG_FIGHTSTYLE                                                (44)
  185. #define                 DIALOG_REGISTER                         (46)
  186. #define                 DIALOG_SELL_FISH                        (47)
  187. #define                 DIALOG_FOOD                                   (48)
  188. #define                 DIALOG_LICENSE_PLATE                    (49)
  189. #define                 DIALOG_GMX                              (50)
  190. #define                 DIALOG_PHONE_MENU                       (51)
  191. #define                 DIALOG_MOBILE_HISTORY                   (52)
  192. #define                 DIALOG_MOBILE_CONTACTS_MAIN             (53)
  193. #define                 DIALOG_ATM_MENU                         (54)
  194. #define                 DIALOG_RP_NAME_CHANGE                   (55)
  195. #define                 DIALOG_ADMIN_PIN                        (56)
  196. #define                 DIALOG_SET_ADMIN_PIN                    (57)
  197. #define                 DIALOG_ATM_WITHDRAWAL                   (58)
  198. #define                 DIALOG_QUIZ                             (59)
  199. #define                 DIALOG_DO_TUTORIAL                      (60)
  200. #define                 DIALOG_TUTORIAL_CHOICE                  (61)
  201.  
  202. #define                 THREAD_CHECK_BANS_LIST                  (1)
  203. #define                 THREAD_CHECK_ACCOUNT_USERNAME           (2)
  204. #define                 THREAD_CHECK_CREDENTIALS                (3)
  205. #define                 THREAD_BAN_PLAYER                       (4)
  206. #define                 THREAD_FINALIZE_BAN                     (5)
  207. #define                 THREAD_CHECK_PLAYER_NAME_BANNED         (6)
  208. #define                 THREAD_FINALIZE_UNBAN                   (7)
  209. #define                 THREAD_INITIATE_VEHICLES                (8)
  210. #define                 THREAD_INITIATE_HOUSES                  (9)
  211. #define                 THREAD_INITIATE_JOBS                    (10)
  212. #define                 THREAD_INITIATE_GROUPS                  (11)
  213. #define                 THREAD_INITIATE_ASSETS                  (13)
  214. #define                 THREAD_INITIATE_BUSINESSES              (14)
  215. #define                 THREAD_CHECK_PLATES                     (15)
  216. #define                 THREAD_MOBILE_HISTORY                   (16)
  217. #define                 THREAD_MOBILE_LIST_CONTACTS             (17)
  218. #define                 THREAD_BANK_SUSPENSION                  (18)
  219. #define                 THREAD_CHECK_PLAYER_NAMES               (19)
  220. #define                 THREAD_CHANGE_SPAWN                     (20)
  221. #define                 THREAD_LOAD_ATMS                        (21)
  222. #define                 THREAD_RANDOM                          (22)
  223. #define                 THREAD_TIMESTAMP_CONNECT                (23)
  224. #define                 THREAD_LAST_CONNECTIONS                 (24)
  225. //#define                 THREAD_LOAD_PLAYER_VEHICLES             (25)
  226. #define                 THREAD_ADMIN_SECURITY                   (26)
  227. #define                 THREAD_INITIATE_BUSINESS_ITEMS          (27)
  228. #define                 THREAD_UNBAN_IP                         (28)
  229. #define                 THREAD_CHANGE_BUSINESS_TYPE_ITEMS       (29)
  230.  
  231. #define                 GROUP_VIRTUAL_WORLD                              (20000)
  232. #define                 HOUSE_VIRTUAL_WORLD                     (10000)
  233. #define                 BUSINESS_VIRTUAL_WORLD                  (30000)
  234.  
  235. #define                                 INTERIOR_WEATHER_ID                              (1) // Outdoor weather is used inside interiors too, blame San Andreas.
  236. #define     MAX_WEATHER_POINTS                                          (9)
  237.  
  238. #define     GOVERNMENT_GROUP_ID                                    (4)
  239.  
  240. #define                 ADMIN_PIN_TIMEOUT                       (120) // In seconds. 120 seconds (2 minutes) is default.
  241.  
  242. #define                 SERVER_VERSION                          "0.3d"
  243. #define                 SERVER_NAME                             "Bionic-Gaming RP" // Would be nice if you kept it as this, so I can see which servers are using this mode easily
  244. /*      --- SERVER_WEBSITE was removed in revision 307 - see 'weburl' in server.cfg --- */
  245.  
  246. #define                 SYNTAX_MESSAGE                          "Syntax: {FFFFFF}"
  247.  
  248. #define                 IRC_CHANNEL_MAIN                        "#"
  249.  
  250. #define                 IRC_SERVER                              "(server)"
  251. #define                 IRC_PORT                                6667
  252. #define                 IRC_BOT_PASS                            "(password)"
  253. #define                 IRC_STAFF_CHANNEL                       "#(channel)"
  254. #define                 IRC_STAFF_CHANNEL_PASSWORD              "(password)"
  255.  
  256. // Comment out #define NO_IRC or delete that line if you want to use IRC.
  257. #define                 NO_IRC
  258.  
  259. // Uncomment the line below if you want to use high-level debugging - prints every single callback and some advanced functions
  260. //#define                 DEBUG
  261.  
  262. #define                                 SpeedCheck(%0,%1,%2,%3,%4)                     floatround(floatsqroot(%4?(%0*%0+%1*%1+%2*%2):(%0*%0+%1*%1) ) *%3*1.6)
  263. #define                                 strcpy(%0,%1,%2)                                           strcat((%0[0] = '\0', %0), %1, %2) // strcpy(dest, source, length)
  264. #define                 hidePlayerDialog(%0)                    ShowPlayerDialog(%0, -1, 0, " ", " ", "", "")
  265.  
  266. forward                 cracktimer();
  267. forward                 methtimer();
  268. forward                 pottimer();
  269. forward                 globalPlayerLoop();
  270. forward                 restartTimer();
  271. forward                 AFKTimer();
  272. forward                                 initiateTutorial(const playerid);
  273. forward     ShutUp(slot);
  274. forward                 invalidNameChange(playerid);
  275. forward                 playerTabbedLoop();
  276. forward                 genderSelection(const playerid);
  277.  
  278. #if !defined NO_IRC
  279.         forward IRCBotDelay();
  280. #endif
  281.  
  282. forward     VendDrink(playerid);
  283.  
  284. forward                 antiCheat();
  285.  
  286. native          WP_Hash(buffer[], len, const str[]);
  287.  
  288. #if !defined NO_IRC
  289.         #include <irc>
  290. #endif
  291.  
  292. main() {
  293.         print("main() has been called.");
  294. }
  295.  
  296. enum systemE {
  297.         houseCount,
  298.         businessCount,
  299.         vehicleCounts[3],
  300.         reportSystem,
  301.         OOCStatus,
  302. }
  303.  
  304. enum assetsE {
  305.         aAssetName[32],
  306.         aAssetValue,
  307. }
  308.  
  309. enum connectionE {
  310.         szDatabaseName[32],
  311.         szDatabaseHostname[32],
  312.         szDatabaseUsername[32],
  313.         szDatabasePassword[64],
  314. }
  315.  
  316. enum jobsE {
  317.     jJobType,
  318.     Float: jJobPosition[3],
  319.     jJobName[32],
  320.     jJobPickupID,
  321.     Text3D:jJobLabelID,
  322. }
  323.  
  324. enum atmE {
  325.         Float: fATMPos[3],
  326.         Float: fATMPosRot[3],
  327.         rObjectId,
  328.         Text3D: rTextLabel,
  329. }
  330.  
  331. enum businessE {
  332.         bType,
  333.         bOwner[MAX_PLAYER_NAME],
  334.         bName[32],
  335.         Float: bExteriorPos[3],
  336.         Float: bInteriorPos[3],
  337.         bInterior,
  338.         bLocked,
  339.         Float: bMiscPos[3],
  340.         bVault,
  341.         Text3D: bLabelID,
  342.         bPickupID,
  343.         bPrice,
  344. }
  345.  
  346. enum spikeE {
  347.         sObjID,
  348.         Float:sPos[4],
  349.         sDeployer[MAX_PLAYER_NAME],
  350. }
  351.  
  352. enum vehicleE {
  353.         vVehicleModelID,
  354.         Float: vVehiclePosition[3],
  355.         Float: vVehicleRotation,
  356.         vVehicleGroup,
  357.         vVehicleColour[2],
  358.         vVehicleScriptID,
  359. }
  360.  
  361. enum houseE {
  362.         Float: hHouseExteriorPos[3],
  363.         Float: hHouseInteriorPos[3],
  364.         hHouseInteriorID,
  365.         hHouseLocked,
  366.         hHouseExteriorID,
  367.         hHousePrice,
  368.         hPickupID,
  369.         Text3D:hLabelID,
  370.         hHouseOwner[MAX_PLAYER_NAME],
  371.         hMoney,
  372.         hWeapons[5],
  373.         hWardrobe[5],
  374.         hMaterials,
  375. }
  376.  
  377. enum groupE {
  378.         gGroupName[64],
  379.         gGroupType,
  380.         Float: gGroupExteriorPos[3],
  381.         Float: gGroupInteriorPos[3],
  382.         gGroupHQInteriorID,
  383.         gGroupPickupID,
  384.         Float: gSafePos[3],
  385.         gSafePickupID,
  386.         Text3D: gSafeLabelID,
  387.         Text3D: gGroupLabelID,
  388.         gGroupHQLockStatus,
  389.         gSafe[2], // 0-1: Money, mats. pot, cocaine out for now
  390.         gswatInv,
  391.         gGroupMOTD[128],
  392.         gGroupRankName1[32], // 4d arrays aren't supported in pawn, so I'll have to continue it like this...
  393.         gGroupRankName2[32],
  394.         gGroupRankName3[32],
  395.         gGroupRankName4[32],
  396.         gGroupRankName5[32],
  397.         gGroupRankName6[32],
  398. }
  399.  
  400. enum businessItemsE {
  401.         bItemBusiness,
  402.         bItemType,
  403.         bItemName[32],
  404.         bItemPrice,
  405. }
  406.  
  407. enum playervEnum {
  408.         Float: pHealth,
  409.         Float: pArmour,
  410.         Float: pPos[3],
  411.         pPassword[129],
  412.         pStatus,
  413.         pAge,
  414.         pMoney,
  415.         pAdminLevel,
  416.         pInterior,
  417.         pLevel,
  418.         pSkinSet,
  419.         pCarID,
  420.         pAnticheatExemption,
  421.         pTabbed,
  422.         pCarWeapons[5],
  423.         pCarLicensePlate[32],
  424.         pCarTrunk[2], // Cash & mats
  425.         pPhoneCredit, // Will be done in seconds.
  426.         pWalkieTalkie, // -1 = no walkie, 0 = switched off
  427.         pSpectating,
  428.         pSpecSession,
  429.         pConnectedSeconds,
  430.         pSpamCount,
  431.         pFishing,
  432.         pMuted,
  433.         pVirtualWorld,
  434.         pFish,
  435.         pBanned,
  436.         pTazer,
  437.         pEvent,
  438.         Float: pCarPos[4],
  439.         pReport,
  440.         pPrisonTime,
  441.         pPrisonID, // 3 = IN CHARACTER JAIL! (future reference)
  442.         pHackWarnTime,
  443.         pHelperDuty,
  444.         pReportMessage[64],
  445.         pPlayingHours,
  446.         pSkin,
  447.         pJob,
  448.         pRope,
  449.         pAccent[40],
  450.         pWarning1[32],
  451.         pWarning2[32],
  452.         pWarning3[32],
  453.         pPhoneNumber,
  454.         pSkinCount,
  455.         pSeeOOC,
  456.         pOOCMuted,
  457.         pNewbieTimeout,
  458.         pTutorial,
  459.         pWeapons[13],
  460.         pOutstandingWeaponRemovalSlot,
  461.         pJetpack,
  462.         pBankMoney,
  463.         pHackWarnings,
  464.         pEmail[255], // because this is the max length for a valid email.
  465.         pSeconds,
  466.         pFightStyle,
  467.         pInternalID,
  468.         pJobDelay,
  469.         pGender,
  470.         pNewbieEnabled,
  471.         pFirstLogin,
  472.         pAdminDuty,
  473.         pHelper,
  474.         pCarColour[2],
  475.         pMatrunTime,
  476.         pAdminName[MAX_PLAYER_NAME],
  477.         pNormalName[MAX_PLAYER_NAME],
  478.         pPhoneBook,
  479.         pCheckpoint,
  480.         pPMStatus,
  481.         pOnRequest,
  482.         Text3D: pAFKLabel,
  483.         pGroup,
  484.         pCarModel,
  485.         pCarMods[13],
  486.         pCarPaintjob,
  487.         pCarLock,
  488.         pVIP,
  489.         pGroupRank,
  490.         pDropCarTimeout,
  491.         pMaterials,
  492.         pJobSkill[2],
  493.         pHospitalized,
  494.         pFreezeTime, // Seconds. Set it to -1 if you want to permafreeze.
  495.         pFreezeType, // 0 = not frozen (obviously), 1 = tazed, 2 = cuffed, 3 = admin frozen, 4 = tied
  496.         pDrag,
  497.         pAnimation,
  498.         pPhoneStatus, // togged on/off
  499.         pPhoneCall,
  500.         pConnectionIP[32],
  501.         pSeeWhisper,
  502.         pCrimes,
  503.         pArrests,
  504.     pWarrants,
  505.         pBackup,
  506.         pMask,
  507.         pHitPrice,
  508.         pContracted,
  509.         pAssignedTo,
  510.         pToDie,
  511.         pPot,
  512.         pCrack,
  513.         pMeth,
  514.         pUsingPot,
  515.         pUsingMeth,
  516.         pUsingCrack,
  517.         pPendingEMS,
  518.         pEMSAssigned,
  519.         pDeveloper,
  520.         pAdminSkin,
  521.         pSeatbelt,
  522. }
  523.  
  524. enum eventE {
  525.         eEventStat,
  526.         eEventCount,
  527.         Float:eEventPos[3], // XYZ pos.
  528.         Float:eArmourHP[2], // Health, armour
  529.         eEventWeapons[5],
  530.         eEventSkin,
  531.         eEventInt,
  532.         eEventVW,
  533. }
  534.  
  535. new
  536.         LSPDObjs[8][3], // 8 sets of doors. 0 = door1, 1 = door2, 2 = status (closed/open)
  537.         LSPDGates[2][2]; // Boom gate, garage (1 = status, closed/open).
  538.  
  539. new tutorialSkins[73] = {
  540.         0, 1, 2, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17,
  541.         18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  542.         30, 31, 32, 3334, 35, 36, 37, 38, 39, 40, 41,
  543.         43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 52, 53,
  544.         54, 55, 56, 57, 58, 59, 60, 6162, 63, 64,      66,
  545.         67, 68, 69, 70, 72, 73, 75, 76, 77, 78, 79, 299
  546. };
  547.  
  548. #if !defined NO_IRC
  549.         new
  550.             scriptBots[MAX_BOTS];
  551. #endif
  552.  
  553. new Float:JailSpawns[4][3] = {
  554.  
  555.         { 227.46, 110.0, 999.02 },
  556.         { 223.15, 110.0, 999.02 },
  557.         { 219.25, 110.0, 999.02 },
  558.         { 216.39, 110.0, 999.02 }
  559. };
  560. new mall1;
  561.  
  562. new validWeatherIDs[17] = { 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20 };
  563.  
  564. new WeaponNames[47][] = // As below
  565. {
  566.         "punch","brass knuckles","golf club","nitestick","knife","baseball bat","shovel","pool cue","katana","chainsaw","purple dildo","small white vibrator","large white vibrator","silver vibrator",
  567.         "bouquet of flowers","cane","grenade","tear gas grenade","molotov cocktail","jetpack"," "," ","Colt .45","silenced Colt .45","Desert Eagle","12-gauge shotgun","sawn-off shotgun","SPAS-12",
  568.         "Micro Uzi","MP5","AK-47","M4A1","TEC-9","rifle","sniper rifle","rocket launcher","heatseeker","flamethrower","minigun","satchel charge","detonator","spray can","fire extinguisher",
  569.         "camera","nightvision goggles", "thermal goggles","parachute"
  570. };
  571.  
  572. new fishNames[5][] = {
  573.         "Carp", "Bass", "Cod", "Plaice", "Tuna"
  574. };
  575.  
  576. new VehicleNames[212][] = // Keeping unnecessary bits out (easily calculated integers, etc) for the win
  577. {
  578.         "Landstalker","Bravura","Buffalo","Linerunner","Perennial","Sentinel","Dumper","Firetruck","Trashmaster","Stretch",
  579.         "Manana","Infernus","Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi",
  580.         "Washington","Bobcat","Mr Whoopee","BF Injection","Hunter","Premier","Enforcer","Securicar","Banshee","Predator",
  581.         "Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie","Stallion","Rumpo","RC Bandit", "Romero",
  582.         "Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder","Reefer","Tropic","Flatbed",
  583.         "Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
  584.         "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler",
  585.         "ZR-350","Walton","Regina","Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper",
  586.         "Rancher","FBI Rancher","Virgo","Greenwood","Jetmax","Hotring Racer","Sandking","Blista Compact","Police Maverick",
  587.         "Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B","Bloodring Banger","Rancher","Super GT",
  588.         "Elegant","Journey","Bike","Mountain Bike","Beagle","Cropduster","Stuntplane","Tanker","Road Train","Nebula","Majestic",
  589.         "Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV-1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
  590.         "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent",
  591.         "Bullet","Clover","Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility",
  592.         "Nevada","Yosemite","Windsor","Monster A","Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger",
  593.         "Flash","Tahoma","Savanna","Bandito","Freight","Trailer","Kart","Mower","Duneride","Sweeper","Broadway",
  594.         "Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer","Emperor","Wayfarer",
  595.         "Euros","Hotdog","Club","Trailer","Trailer","Andromada","Dodo","RCCam","Launch","Police Car (LSPD)","Police Car (SFPD)",
  596.         "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A",
  597.         "Luggage Trailer B","Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  598. };
  599.  
  600. new
  601.         databaseConnection,
  602.         pingTick,
  603.         adTick,
  604.         vehCount,
  605.         weatherVariables[2],
  606.         gTime[3],
  607.         iGMXTimer,
  608.         iTarget,
  609.         iGMXTick,
  610.         systemVariables[systemE],
  611.         eventVariables[eventE],
  612.         connectionInfo[connectionE],
  613.         houseVariables[MAX_HOUSES][houseE],
  614.         Text:textdrawVariables[MAX_TEXTDRAWS],
  615.         jobVariables[MAX_JOBS][jobsE],
  616.         AdminSpawnedVehicles[MAX_VEHICLES],
  617.         assetVariables[MAX_ASSETS][assetsE],
  618.         szQueryOutput[256],
  619.         szMessage[128],
  620.         szSmallString[32],
  621.         //szSmallString2[32],
  622.         szMediumString[64],
  623.         atmVariables[MAX_ATMS][atmE],
  624.         result[256],
  625.         szServerWebsite[32],
  626.         szLargeString[1024],
  627.         szPlayerName[MAX_PLAYER_NAME],
  628.         businessVariables[MAX_BUSINESSES][businessE],
  629.         Float:PlayerPos[MAX_PLAYERS][6],
  630.         vehicleVariables[MAX_VEHICLES][vehicleE],
  631.         groupVariables[MAX_GROUPS][groupE],
  632.         businessItems[MAX_BUSINESS_ITEMS][businessItemsE],
  633.         playerVariables[MAX_PLAYERS][playervEnum],
  634.         spikeVariables[MAX_SPIKES][spikeE],
  635.         scriptTimers[MAX_TIMERS];
  636.  
  637. public OnGameModeInit() {
  638.     AntiDeAMX();
  639.     ManualVehicleEngineAndLights();
  640.  
  641.     #if defined DEBUG
  642.                 mysql_debug(1);
  643.                 print("[debug] OnGameModeInit()");
  644.         #endif
  645.  
  646.     initiateConnections();
  647.  
  648.     mysql_query("UPDATE playeraccounts SET playerStatus = '0' WHERE playerStatus = '1'");
  649.  
  650.         scriptTimers[0] = SetTimer("globalPlayerLoop", 1000, true);
  651.         scriptTimers[1] = SetTimer("antiCheat", 1000, true);
  652.         scriptTimers[2] = SetTimer("playerTabbedLoop", 1000, true);
  653.         scriptTimers[3] = SetTimer("AFKTimer", 600000, true);
  654.  
  655.         initiateVehicleSpawns();
  656.         initiateHouseSpawns();
  657.         initiateJobs();
  658.         initiateGroups();
  659.         initiateAssets();
  660.         initiateBusinesses();
  661.         loadATMs();
  662.  
  663.         ShowPlayerMarkers(0);
  664.         EnableStuntBonusForAll(0);
  665.         DisableInteriorEnterExits();
  666.         UsePlayerPedAnims();
  667.        
  668.         #if !defined NO_IRC
  669.                 scriptTimers[4] = SetTimer("IRCBotDelay", 5000, false); // Run a timer to delay the bots from connecting, incase of the script going crazy!!1
  670.         #endif
  671.        
  672.         GetServerVarAsString("weburl", szServerWebsite, sizeof(szServerWebsite));
  673.  
  674.         SetGameModeText(SERVER_NAME" "SERVER_VERSION);
  675.  
  676.         weatherVariables[0] = validWeatherIDs[random(sizeof(validWeatherIDs))];
  677.         SetWeather(weatherVariables[0]);
  678.  
  679.         textdrawVariables[1] = TextDrawCreate(203.000000, 377.000000, "Press ~r~RIGHT~w~ to teleport to the player.~n~Press ~r~LEFT~w~ to disregard the request.");
  680.         TextDrawBackgroundColor(textdrawVariables[1], 255);
  681.         TextDrawFont(textdrawVariables[1], 2);
  682.         TextDrawLetterSize(textdrawVariables[1], 0.190000, 1.200000);
  683.         TextDrawColor(textdrawVariables[1], -1);
  684.         TextDrawSetOutline(textdrawVariables[1], 1);
  685.         TextDrawSetProportional(textdrawVariables[1], 1);
  686.         TextDrawSetShadow(textdrawVariables[1], 1);
  687.  
  688.         textdrawVariables[7] = TextDrawCreate(149.000000, 370.000000, "~n~~n~~g~You can now continue to the next step.");
  689.         TextDrawBackgroundColor(textdrawVariables[7], 255);
  690.         TextDrawFont(textdrawVariables[7], 2);
  691.         TextDrawLetterSize(textdrawVariables[7], 0.290000, 1.200000);
  692.         TextDrawColor(textdrawVariables[7], -1);
  693.         TextDrawSetOutline(textdrawVariables[7], 0);
  694.         TextDrawSetProportional(textdrawVariables[7], 1);
  695.         TextDrawSetShadow(textdrawVariables[7], 1);
  696.  
  697.         textdrawVariables[8] = TextDrawCreate(149.000000, 370.000000, "~n~~n~~r~You must wait a few seconds before continuing...");
  698.         TextDrawBackgroundColor(textdrawVariables[8], 255);
  699.         TextDrawFont(textdrawVariables[8], 2);
  700.         TextDrawLetterSize(textdrawVariables[8], 0.290000, 1.200000);
  701.         TextDrawColor(textdrawVariables[8], -1);
  702.         TextDrawSetOutline(textdrawVariables[8], 0);
  703.         TextDrawSetProportional(textdrawVariables[8], 1);
  704.         TextDrawSetShadow(textdrawVariables[8], 1);
  705.  
  706.         textdrawVariables[2] = TextDrawCreate(149.000000, 370.000000, "Press ~r~left~w~ and ~n~Press ~r~right~w~ arrows to change skins.~n~Press ~r~~k~~VEHICLE_ENTER_EXIT~~w~ to select that skin.");
  707.         TextDrawBackgroundColor(textdrawVariables[2], 255);
  708.         TextDrawFont(textdrawVariables[2], 2);
  709.         TextDrawLetterSize(textdrawVariables[2], 0.390000, 1.200000);
  710.         TextDrawColor(textdrawVariables[2], -1);
  711.         TextDrawSetOutline(textdrawVariables[2], 0);
  712.         TextDrawSetProportional(textdrawVariables[2], 1);
  713.         TextDrawSetShadow(textdrawVariables[2], 1);
  714.  
  715.         textdrawVariables[3] = TextDrawCreate(149.000000, 370.000000, "~w~Press ~r~left~w~ to go back a step~n~press ~r~right~w~ arrow to proceed");
  716.         TextDrawBackgroundColor(textdrawVariables[3], 255);
  717.         TextDrawFont(textdrawVariables[3], 2);
  718.         TextDrawLetterSize(textdrawVariables[3], 0.390000, 1.200000);
  719.         TextDrawColor(textdrawVariables[3], -1);
  720.         TextDrawSetOutline(textdrawVariables[3], 0);
  721.         TextDrawSetProportional(textdrawVariables[3], 1);
  722.         TextDrawSetShadow(textdrawVariables[3], 1);
  723.  
  724.         textdrawVariables[4] = TextDrawCreate(149.000000, 420.000000, "Press ~r~~k~~SNEAK_ABOUT~~w~ to quit the spectator tool."); // Moved it down a little, it was actually fairly obtrusive.
  725.         TextDrawBackgroundColor(textdrawVariables[4], 255);
  726.         TextDrawFont(textdrawVariables[4], 2);
  727.         TextDrawLetterSize(textdrawVariables[4], 0.390000, 1.200000);
  728.         TextDrawColor(textdrawVariables[4], -1);
  729.         TextDrawSetOutline(textdrawVariables[4], 0);
  730.         TextDrawSetProportional(textdrawVariables[4], 1);
  731.         TextDrawSetShadow(textdrawVariables[4], 1);
  732.  
  733.         textdrawVariables[5] = TextDrawCreate(610.0, 420.0, "Type ~r~/stopanim~w~ to stop your animation.");
  734.         TextDrawUseBox(textdrawVariables[5], 0);
  735.         TextDrawFont(textdrawVariables[5], 2);
  736.         TextDrawSetShadow(textdrawVariables[5], 0);
  737.     TextDrawSetOutline(textdrawVariables[5], 1);
  738.     TextDrawBackgroundColor(textdrawVariables[5], 0x000000FF);
  739.     TextDrawColor(textdrawVariables[5], 0xFFFFFFFF);
  740.     TextDrawAlignment(textdrawVariables[5], 3);
  741.     CreateDynamic3DTextLabel("Materials Pickup!\n\nType /getmats as an Arms Dealer \nto collect materials!", COLOR_YELLOW, 1423.9871, -1319.2954, 13.5547, 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
  742.     CreateDynamic3DTextLabel("Drug Pickup!\n\nType /getdrugs to collect drugs!", COLOR_YELLOW, 2156.9712,-1708.4882,15.0859, 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
  743.         CreateDynamicPickup(1239, 23, 1423.9871, -1319.2954, 13.5547, 0, -1, -1, 50);
  744.         CreateDynamicPickup(1239, 23, 2156.9712,-1708.4882,15.0859, 0, -1, -1, 50); //thanks!
  745.  
  746.         /* -------------------------------------- Mapping (objects, static 3D texts, static pickups) -------------------------------------- */
  747.  
  748.         LSMall();
  749.         GymMap();
  750.         /* Bank */
  751.         CreateDynamicPickup(1239, 23, 595.5443,-1250.3405,18.2836, 0, -1, -1, 50);
  752.         CreateDynamic3DTextLabel("Bank of Los Santos\nPress ~k~~PED_DUCK~ to enter", COLOR_YELLOW, 595.5443,-1250.3405,18.2836, 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
  753.         /* /arrest */
  754.         CreateDynamic3DTextLabel("Los Santos Police Department\nProcessing Entrance\n\n(/arrest)", COLOR_COOLBLUE, 1528.5240,-1678.2472,5.8906, 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 15.0);
  755.  
  756.         /* Exterior LSPD gates */
  757.         LSPDGates[0][0] = CreateDynamicObject(968, 1544.681640625, -1630.8924560547, 13.15, 0.0, 90.0, 90.0, 0, 0, _, 200.0);
  758.         LSPDGates[1][0] = CreateDynamicObject(10184,1589.19995117,-1637.98498535,14.69999981,0.00000000,0.00000000,270.00000000, 0, 0, _, 200.0);
  759.  
  760.         /* LSPD doors */
  761.         LSPDObjs[0][0] = CreateDynamicObject(1569,232.89999390,107.57499695,1009.21179199,0.00000000,0.00000000,90.00000000, _, 10, _, 200.0); //commander south
  762.         LSPDObjs[0][1] = CreateDynamicObject(1569,232.89941406,110.57499695,1009.21179199,0.00000000,0.00000000,270.00000000, _, 10, _, 200.0); //commander north
  763.         LSPDObjs[1][0] = CreateDynamicObject(1569,275.75000000,118.89941406,1003.61718750,0.00000000,0.00000000,270.00000000, _, 10, _, 200.0); // interrogation north
  764.         LSPDObjs[1][1] = CreateDynamicObject(1569,275.75000000,115.89941406,1003.61718750,0.00000000,0.00000000,90.00000000, _, 10, _, 200.0); // interrogation south
  765.         LSPDObjs[2][0] = CreateDynamicObject(1569,253.20410156,107.59960938,1002.22070312,0.00000000,0.00000000,90.00000000, _,10, _, 200.0); // north west lobby door
  766.         LSPDObjs[2][1] = CreateDynamicObject(1569,253.19921875,110.59960938,1002.22070312,0.00000000,0.00000000,270.00000000, _,10, _, 200.0); // north east lobby door
  767.         LSPDObjs[3][0] = CreateDynamicObject(1569,239.56933594,116.09960938,1002.22070312,0.00000000,0.00000000,90.00000000, _,10, _, 200.0); // south west lobby door
  768.         LSPDObjs[3][1] = CreateDynamicObject(1569,239.56445312,119.09960938,1002.22070312,0.00000000,0.00000000,269.98901367, _,10, _, 200.0); // south east lobby door
  769.         LSPDObjs[4][0] = CreateDynamicObject(1569,264.45019531,115.82421875,1003.62286377,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(gen_doorext15) (3)
  770.         LSPDObjs[4][1] = CreateDynamicObject(1569,267.45214844,115.82910156,1003.62286377,0.00000000,0.00000000,179.99450684, _,10, _, 200.0); //object(gen_doorext15) (8)
  771.         LSPDObjs[5][0] = CreateDynamicObject(1569,267.32000732,112.53222656,1003.62286377,0.00000000,0.00000000,179.99450684, _,10, _, 200.0); //object(gen_doorext15) (4)
  772.         LSPDObjs[5][1] = CreateDynamicObject(1569,264.32000732,112.52929688,1003.62286377,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(gen_doorext15) (5)
  773.         LSPDObjs[6][0] = CreateDynamicObject(1569,229.59960938,119.52929688,1009.22442627,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(gen_doorext15) (9)
  774.         LSPDObjs[6][1] = CreateDynamicObject(1569,232.59960938,119.53515625,1009.22442627,0.00000000,0.00000000,179.99450684, _,10, _, 200.0); //object(gen_doorext15) (10)
  775.         LSPDObjs[7][0] = CreateDynamicObject(1569,219.30000305,116.52999878,998.01562500,0.00000000,0.00000000,180.00000000, _,10, _, 200.0); //cell east door
  776.         LSPDObjs[7][1] = CreateDynamicObject(1569,216.30000305,116.52929688,998.01562500,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //cell west door
  777.  
  778.         /* LSPD interior objects (1st version) */
  779.         CreateDynamicObject(1886,240.39999390,107.69999695,1010.70001221,35.00000000,0.00000000,135.00000000, _,10, _, 200.0); //object(nt_securecam1_01) (1)
  780.         CreateDynamicObject(2058,262.23831177,107.09999847,1006.12506104,270.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(cj_gun_docs) (1)
  781.         CreateDynamicObject(1491,222.17500305,119.45999908,1009.21502686,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(gen_doorint01) (1)
  782.         CreateDynamicObject(1491,258.54980469,117.67968750,1007.82000732,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(gen_doorint01) (3)
  783.         CreateDynamicObject(1491,260.73925781,117.67968750,1007.82000732,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(gen_doorint01) (4)
  784.         CreateDynamicObject(2612,263.50000000,112.34960938,1005.50000000,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(police_nb2) (1)
  785.         CreateDynamicObject(3857,233.04499817,124.00000000,1013.00000000,0.00000000,0.00000000,315.00000000, _,10, _, 200.0); //object(ottosmash3) (1)
  786.         CreateDynamicObject(3857,232.73730469,124.00000000,1013.00000000,0.00000000,0.00000000,135.00012207, _,10, _, 200.0); //object(ottosmash3) (2)
  787.         CreateDynamicObject(1491,225.05999756,115.94999695,1002.22998047,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(gen_doorint01) (2)
  788.         CreateDynamicObject(1491,233.11000061,119.25000000,1002.22998047,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(gen_doorint01) (5)
  789.         CreateDynamicObject(1491,236.80957031,119.25000000,1002.22998047,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(gen_doorint01) (6)
  790.         CreateDynamicObject(3051,275.77499390,122.65599823,1004.97937012,0.00000000,0.00000000,46.00000000, _,10, _, 200.0); //object(lift_dr) (1)
  791.         CreateDynamicObject(3051,275.75000000,121.50000000,1004.97937012,0.00000000,0.00000000,45.00000000, _,10, _, 200.0); //object(lift_dr) (2)
  792.         CreateDynamicObject(1485,227.89999390,125.30000305,1010.21002197,50.00000000,10.00000000,2.00000000, _,10, _, 200.0); //object(cj_ciggy) (1)
  793.         CreateDynamicObject(1510,228.07321167,125.27845001,1010.15997314,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(dyn_ashtry) (1)
  794.         CreateDynamicObject(2196,228.40014648,125.53178406,1010.13958740,0.00000000,0.00000000,29.77478027, _,10, _, 200.0); //object(work_lamp1) (1)
  795.         CreateDynamicObject(2063,262.95996094,107.40136719,1004.53997803,0.00000000,0.00000000,179.99450684, _,10, _, 200.0); //object(cj_greenshelves) (1)
  796.         CreateDynamicObject(2043,262.29138184,107.46166229,1004.09997559,0.00000000,0.00000000,294.36035156, _,10, _, 200.0); //object(ammo_box_m4) (1)
  797.         CreateDynamicObject(353,262.79998779297,107.68000030518,1004.9,91.9,89,240, _,10, _, 200.0); //object(cj_mp5k) (2)
  798.         CreateDynamicObject(1672,262.62597656,107.59999847,1005.37500000,0.00000000,90.00000000,0.00000000, _,10, _, 200.0); //object(gasgrenade) (1)
  799.         CreateDynamicObject(1672,262.81585693,107.48020935,1005.41998291,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(gasgrenade) (2)
  800.         CreateDynamicObject(14782,267.76998901,109.30000305,1004.63323975,0.00000000,0.00000000,270.00000000, _,10, _, 200.0); //object(int3int_boxing30) (2)
  801.         CreateDynamicObject(14782,260.79980469,108.75000000,1004.63323975,0.00000000,0.00000000,90.00000000, _,10, _, 200.0); //object(int3int_boxing30) (3)
  802.         CreateDynamicObject(2359,263.54296875,107.39648438,1005.53002930,0.00000000,0.00000000,183.89465332, _,10, _, 200.0); //object(ammo_box_c5) (1)
  803.         CreateDynamicObject(2038,263.47906494,107.32552338,1004.51000977,270.00000000,0.00000000,29.91000366, _,10, _, 200.0); //object(ammo_box_s2) (1)
  804.         CreateDynamicObject(356,262.60000610352,107.30000305176,1004.4799804688,96, 90, 290, _,10, _, 200.0); //object(cj_m16) (1)
  805.         CreateDynamicObject(2690,267.92782593,108.53081512,1003.97998047,0.00000000,0.00000000,312.13256836, _,10, _, 200.0); //object(cj_fire_ext) (1)
  806.         CreateDynamicObject(2058,262.98568726,107.09528351,1005.36926270,90.00000000,180.00549316,359.98352051, _,10, _, 200.0); //object(cj_gun_docs) (1)
  807.         CreateDynamicObject(11631,269.81250000,118.18945312,1004.86309814,0.00000000,0.00000000,270.00000000, _,10, _, 200.0); //object(ranch_desk) (1)
  808.         CreateDynamicObject(2356,269.14312744,117.66873169,1003.61718750,0.00000000,0.00000000,294.49548340, _,10, _, 200.0); //object(police_off_chair) (1)
  809.         CreateDynamicObject(2094,262.86523438,110.89941406,1003.60998535,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(swank_cabinet_4) (1)
  810.         CreateDynamicObject(1886,267.73999023,107.50000000,1007.40002441,20.00000000,0.00000000,235.00000000, _,10, _, 200.0); //object(shop_sec_cam) (1)
  811.         CreateDynamicObject(2606,267.36914062,120.50683594,1004.59997559,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(cj_police_counter2) (1)
  812.         CreateDynamicObject(2606,267.36914062,120.50683594,1005.04998779,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(cj_police_counter2) (2)
  813.         CreateDynamicObject(1738,270.29000854,120.00000000,1004.27178955,0.00000000,0.00000000,269.27026367, _,10, _, 200.0); //object(cj_radiator_old) (1)
  814.         CreateDynamicObject(2180,265.50552368,120.27999878,1003.61718750,0.00000000,0.00000000,180.54052734, _,10, _, 200.0); //object(med_office5_desk_3) (1)
  815.         CreateDynamicObject(1788,265.60000610,120.50000000,1004.48681641,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(swank_video_1) (1)
  816.         CreateDynamicObject(1782,265.59960938,120.50000000,1004.65002441,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(med_video_2) (1)
  817.         CreateDynamicObject(2595,264.21002197,120.37789154,1004.77404785,0.00000000,0.00000000,314.65002441, _,10, _, 200.0); //object(cj_shop_tv_video) (1)
  818.         CreateDynamicObject(1785,265.59960938,120.50976562,1004.84997559,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(low_video_1) (1)
  819.         CreateDynamicObject(1840,264.81204224,120.58029938,1004.41882324,0.00000000,0.00000000,105.60998535, _,10, _, 200.0); //object(speaker_2) (1)
  820.         CreateDynamicObject(1840,265.70001221,120.55999756,1004.96264648,0.00000000,0.00000000,75.00000000, _,10, _, 200.0); //object(speaker_2) (2)
  821.         CreateDynamicObject(2356,265.15481567,119.43829346,1003.61718750,0.00000000,0.00000000,34.19393921, _,10, _, 200.0); //object(police_off_chair) (2)
  822.         CreateDynamicObject(1775,238.87988281,115.59960938,1010.32000732,0.00000000,0.00000000,270.26916504, _,10, _, 200.0); //object(vendmach) (1)
  823.         CreateDynamicObject(4100,246.51953125,119.39941406,1005.40002441,0.00000000,179.99450684,219.99023438, _,10, _, 200.0); //object(meshfence1_lan) (1)
  824.         CreateDynamicObject(4100,253.19999695,117.80000305,1010.50000000,320.00000000,90.00000000,90.00000000, _,10, _, 200.0); //object(pol_comp_gate) (1)
  825.         CreateDynamicObject(2101,266.74893188,120.49598694,1005.28363037,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(med_hi_fi_3) (1)
  826.         CreateDynamicObject(1886,264.25000000,116.55000305,1007.29998779,30.00000000,0.00000000,140.00000000, _,10, _, 200.0); //object(shop_sec_cam) (2)
  827.         CreateDynamicObject(2611,268.47473145,116.05200195,1005.25000000,0.00000000,0.00000000,180.00000000, _,10, _, 200.0); //object(police_nb1) (1)
  828.         CreateDynamicObject(4100,232.84960938,128.50000000,1011.91998291,0.00000000,0.00000000,49.99877930, _,10, _, 200.0); //object(meshfence1_lan) (4)
  829.         CreateDynamicObject(2595,226.24514771,120.27544403,1011.28753662,0.00000000,0.00000000,77.72994995, _,10, _, 200.0); //object(cj_shop_tv_video) (2)
  830.         CreateDynamicObject(3934,1563.90014648,-1700.00000000,27.40211487,0.00000000,0.00000000,0.00000000, 0, 0, _, 200.0); //object(helipad01) (2)
  831.         CreateDynamicObject(1496,1564.14257812,-1667.36914062,27.39560699,0.00000000,0.00000000,0.00000000, 0, 0, _, 200.0); //object(gen_doorshop02) (1)
  832.         CreateDynamicObject(2953,228.27796936,125.20470428,1010.14331055,0.00000000,0.00000000,143.45983887, _,10, _, 200.0); //object(kmb_paper_code) (1)
  833.         CreateDynamicObject(4100,239.60000610,113.19999695,1010.50000000,319.99877930,90.00000000,90.00000000, _,10, _, 200.0); //object(pol_comp_gate) (1)
  834.         CreateDynamicObject(2054,263.76342773,112.13343811,1004.64001465,0.00000000,0.00000000,36.00000000, _,10, _, 200.0); //object(cj_capt_hat) (1)
  835.         CreateDynamicObject(2053,264.10845947,112.14072418,1004.66998291,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(cj_jerry_hat) (1)
  836.         CreateDynamicObject(351,262.85000610352,111.90000152588,1004.6599731445,275,90,106, _,10, _, 200.0); //object(cj_m16) (2)
  837.         CreateDynamicObject(2040,262.57006836,112.05036163,1004.72113037,0.00000000,0.00000000,342.13513184, _,10, _, 200.0); //object(ammo_box_m1) (1)
  838.         CreateDynamicObject(2068,264.29998779,109.19999695,1007.00000000,0.00000000,0.00000000,90.00000000, _,10, _, 200.0); //object(cj_cammo_net) (1)
  839.         CreateDynamicObject(1516,272.90374756,118.44168854,1003.79998779,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(dyn_table_03) (1)
  840.         CreateDynamicObject(1810,272.74725342,117.44008636,1003.61718750,0.00000000,0.00000000,183.70996094, _,10, _, 200.0); //object(cj_foldchair) (1)
  841.         CreateDynamicObject(1810,273.19308472,119.28445435,1003.61718750,0.00000000,0.00000000,2.00000000, _,10, _, 200.0); //object(cj_foldchair) (2)
  842.         CreateDynamicObject(2953,272.84149170,118.41313934,1004.34997559,0.00000000,0.00000000,89.00000000, _,10, _, 200.0); //object(kmb_paper_code) (2)
  843.         CreateDynamicObject(2953,272.89001465,118.30000305,1004.34997559,0.00000000,0.00000000,13.00000000, _,10, _, 200.0); //object(kmb_paper_code) (3)
  844.         CreateDynamicObject(2196,273.04998779,118.69999695,1004.32000732,0.00000000,0.00000000,335.00000000, _,10, _, 200.0); //object(work_lamp1) (2)
  845.         CreateDynamicObject(1886,228.80000305,116.00000000,1002.20001221,10.00000000,0.00000000,290.00000000, _,10, _, 200.0); //object(shop_sec_cam) (3)
  846.         CreateDynamicObject(1491,265.17999268,112.68000031,1007.82000732,0.00000000,0.00000000,270.00000000, _,10, _, 200.0); //object(gen_doorint01) (4)
  847.         CreateDynamicObject(2954,224.00000000,107.40000153,998.70062256,0.00000000,90.00000000,89.99993896, _,10, _, 200.0); //object(kmb_ot) (1)
  848.         CreateDynamicObject(2954,228.19999695,107.39941406,998.70062256,0.00000000,90.00000000,90.00000000, _,10, _, 200.0); //object(kmb_ot) (2)
  849.         CreateDynamicObject(2954,220.09960938,107.39941406,998.70062256,0.00000000,90.00000000,89.99996948, _,10, _, 200.0); //object(kmb_ot) (3)
  850.         CreateDynamicObject(2954,216.10000610,107.39941406,998.70062256,0.00000000,90.00000000,90.00000000, _,10, _, 200.0); //object(kmb_ot) (4)
  851.         CreateDynamicObject(1235,225.47909546,121.89310455,1009.72180176,0.00000000,0.00000000,0.00000000, _,10, _, 200.0); //object(wastebin) (1)
  852.         CreateDynamicObject(2602,226.00000000,108.50000000,998.53906250,0.00000000,0.00000000,90.00000000, _,10, _, 200.0); //object(police_cell_toilet) (1)
  853.         CreateDynamicObject(2602,214.00000000,108.50000000,998.53906250,0.00000000,0.00000000,90.00000000, _,10, _, 200.0); //object(police_cell_toilet) (2)
  854.         CreateDynamicObject(2602,222.09960938,108.50000000,998.53906250,0.00000000,0.00000000,90.00000000, _,10, _, 200.0); //object(police_cell_toilet) (3)
  855.         CreateDynamicObject(2602,218.10000610,108.50000000,998.53906250,0.00000000,0.00000000,90.00000000, _,10, _, 200.0); //object(police_cell_toilet) (4)
  856.         CreateDynamicObject(8167,218.50000000,112.50000000,999.20001221,0.00000000,0.00000000,90.00000000, _,10, _, 200.0); //object(apgate1_vegs01) (1)
  857.         CreateDynamicObject(8167,226.34960938,112.50000000,999.20001221,0.00000000,0.00000000,90.00000000, _,10, _, 200.0); //object(apgate1_vegs01) (2)
  858.         CreateDynamicObject(3785,215.50000000,109.90000153,1001.40997314,0.00000000,90.00000000,0.00000000, _,10, _, 200.0); //object(bulkheadlight) (1)
  859.         CreateDynamicObject(3785,219.50000000,109.89941406,1001.40997314,0.00000000,90.00000000,0.00000000, _,10, _, 200.0); //object(bulkheadlight) (2)
  860.         CreateDynamicObject(3785,223.50000000,109.89941406,1001.40997314,0.00000000,90.00000000,0.00000000, _,10, _, 200.0); //object(bulkheadlight) (3)
  861.         CreateDynamicObject(3785,227.50000000,109.89941406,1001.40997314,0.00000000,90.00000000,0.00000000, _,10, _, 200.0); //object(bulkheadlight) (4)
  862.  
  863.         /* Exterior LSPD objects */
  864.         CreateDynamicObject(3934,1563.89941406,-1650.34277344,27.40211487,0.00000000,0.00000000,0.00000000, 0, 0, _, 200.0); //object(helipad01) (2)
  865.         CreateDynamicObject(1496,1563.84997559,-1671.13000488,51.45027542,0.00000000,0.00000000,0.00000000, 0, 0, _, 200.0); //object(gen_doorshop02) (2)
  866.         CreateDynamicObject(982,1577.75000000,-1701.50000000,28.07836533,0.00000000,0.00000000,0.00000000, 0, 0, _, 200.0); //object(fence) (1)
  867.         CreateDynamicObject(982,1577.75000000,-1650.30004883,28.07836533,0.00000000,0.00000000,0.00000000, 0, 0, _, 200.0); //object(fence) (3)
  868.         CreateDynamicObject(982,1565.00000000,-1637.50000000,28.07836533,0.00000000,0.00000000,90.00000000, 0, 0, _, 200.0); //object(fence) (4)
  869.         CreateDynamicObject(984,1549.02502441,-1637.50000000,28.03879547,0.00000000,0.00000000,90.00000000, 0, 0, _, 200.0); //object(fence2) (1)
  870.         CreateDynamicObject(982,1565.00000000,-1714.30004883,28.07836533,0.00000000,0.00000000,90.00000000, 0, 0, _, 200.0); //object(fencet) (5)
  871.         CreateDynamicObject(982,1577.75000000,-1675.89941406,28.07836533,0.00000000,0.00000000,0.00000000, 0, 0, _, 200.0); //object(fencest) (6)
  872.         CreateDynamicObject(984,1549.02441406,-1714.29980469,28.03879547,0.00000000,0.00000000,90.00000000, 0, 0, _, 200.0); //object(fenceshit2) (3)
  873.         CreateDynamicObject(983,1550.59997559,-1701.50000000,28.07836533,0.00000000,0.00000000,90.00000000, 0, 0, _, 200.0); //object(fenceshit3) (2)
  874.         CreateDynamicObject(984,1542.59960938,-1643.89941406,28.03879547,0.00000000,0.00000000,0.00000000, 0, 0, _, 200.0); //object(fenceshit2) (6)
  875.         CreateDynamicObject(983,1545.79980469,-1701.50000000,28.07836533,0.00000000,0.00000000,90.00000000, 0, 0, _, 200.0); //object(fenceshit3) (3)
  876.         CreateDynamicObject(983,1550.59997559,-1650.30004883,28.07836533,0.00000000,0.00000000,90.00000000, 0, 0, _, 200.0); //object(fenceshit3) (4)
  877.         CreateDynamicObject(983,1545.79980469,-1650.30004883,28.07836533,0.00000000,0.00000000,90.00000000, 0, 0, _, 200.0); //object(fenceshit3) (5)
  878.         CreateDynamicObject(984,1542.59960938,-1707.89941406,28.03879547,0.00000000,0.00000000,0.00000000, 0, 0, _, 200.0); //object(fenceshit2) (7)
  879.         CreateDynamicObject(984,1553.80004883,-1695.09997559,28.03000069,0.00000000,0.00000000,0.00000000, 0, 0, _, 200.0); //object(fenceshit2) (8)
  880.         CreateDynamicObject(984,1553.79980469,-1656.69995117,28.03000069,0.00000000,0.00000000,0.00000000, 0, 0, _, 200.0); //object(fenceshit2) (9)
  881.         CreateDynamicObject(983,1544.69995117,-1620.58996582,13.02000046,0.00000000,0.00000000,0.00000000); //object(fenceshit3) (1)
  882.         CreateDynamicObject(1331,1544.54602051,-1616.99133301,13.10000038,0.00000000,0.00000000,0.00000000); //object(binnt01_la) (1)
  883.         CreateDynamicObject(2952,1582.00000000,-1637.88598633,12.39045906,0.00000000,0.00000000,90.00000000); //object(kmb_gimpdoor) (1)
  884.         CreateDynamicObject(983,1544.69921875,-1636.00000000,13.02000046,0.00000000,0.00000000,0.00000000); //object(fenceshit3) (6)
  885.         CreateDynamicObject(2952,1582.00000000,-1638.30004883,12.39045906,0.00000000,0.00000000,90.00000000); //object(kmb_gimpdoor) (2)
  886.  
  887.         /* Moar crap */
  888.         CreateDynamicObject(2842,2320.79003906,-1021.39941406,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (2)
  889.         CreateDynamicObject(2842,2320.79003906,-1023.19921875,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (3)
  890.         CreateDynamicObject(2842,2320.79003906,-1025.00000000,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (4)
  891.         CreateDynamicObject(2842,2319.87500000,-1019.59997559,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (5)
  892.         CreateDynamicObject(2842,2319.87500000,-1017.79998779,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (6)
  893.         CreateDynamicObject(2842,2319.87500000,-1016.00000000,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (7)
  894.         CreateDynamicObject(2842,2319.87500000,-1014.20001221,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (8)
  895.         CreateDynamicObject(2842,2319.87500000,-1012.40002441,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (9)
  896.         CreateDynamicObject(2842,2319.87500000,-1010.59997559,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (10)
  897.         CreateDynamicObject(2842,2320.79003906,-1010.59960938,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (11)
  898.         CreateDynamicObject(2842,2320.79003906,-1012.39941406,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (12)
  899.         CreateDynamicObject(2842,2320.79003906,-1014.19921875,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (13)
  900.         CreateDynamicObject(2842,2320.79003906,-1016.00000000,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (14)
  901.         CreateDynamicObject(2842,2320.79003906,-1017.79980469,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (15)
  902.         CreateDynamicObject(2842,2320.79003906,-1019.59960938,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (16)
  903.         CreateDynamicObject(2842,2319.87500000,-1021.39941406,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (17)
  904.         CreateDynamicObject(2842,2319.87500000,-1023.19921875,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (18)
  905.         CreateDynamicObject(2842,2319.87500000,-1025.00000000,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_bedrug04) (19)
  906.         CreateDynamicObject(2069,2322.39306641,-1007.62664795,1049.30004883,0.00000000,0.00000000,0.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(cj_mlight7) (1)
  907.         CreateDynamicObject(2297,2322.41992188,-1018.77001953,1049.21997070,0.00000000,0.00000000,356.03002930, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(tv_unit_2) (1)
  908.         CreateDynamicObject(2069,2322.28906250,-1021.15917969,1049.26501465,0.00000000,0.00000000,0.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(cj_mlight7) (2)
  909.         CreateDynamicObject(2073,2319.97973633,-1013.20001221,1052.93005371,0.00000000,0.00000000,0.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(cj_mlight1) (1)
  910.         CreateDynamicObject(2332,2328.48388672,-1016.84997559,1054.50000000,0.00000000,0.00000000,180.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(kev_safe) (1)
  911.         CreateDynamicObject(2833,2325.89990234,-1010.70001221,1053.71875000,0.00000000,0.00000000,0.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_livingrug02) (1)
  912.         CreateDynamicObject(1210,2322.50390625,-1009.73980713,1054.77001953,90.00000000,0.00000000,23.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(briefcase) (1)
  913.         CreateDynamicObject(1742,2323.39990234,-1006.62500000,1053.70996094,0.00000000,0.00000000,0.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(med_bookshelf) (1)
  914.         CreateDynamicObject(2894,2322.46752930,-1009.14672852,1054.67187500,0.00000000,0.00000000,89.73001099, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(kmb_rhymesbook) (1)
  915.         CreateDynamicObject(1502,2321.91992188,-1023.88201904,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gen_doorint04) (1)
  916.         CreateDynamicObject(1502,2317.95996094,-1013.89001465,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gen_doorint04) (2)
  917.         CreateDynamicObject(1502,2321.91992188,-1013.88964844,1049.21093750,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gen_doorint04) (3)
  918.         CreateDynamicObject(2069,2316.20019531,-1026.69848633,1049.25000000,0.00000000,0.00000000,0.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(cj_mlight7) (2)
  919.         CreateDynamicObject(2267,2322.00000000,-1010.00000000,1051.36096191,0.00000000,0.00000000,90.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(frame_wood_3) (1)
  920.         CreateDynamicObject(2813,2326.06225586,-1016.13732910,1050.25781250,0.00000000,0.00000000,308.25524902, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(gb_novels01) (1)
  921.         CreateDynamicObject(1667,2324.96020508,-1011.50372314,1049.79870605,0.00000000,0.00000000,0.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(propwineglass1) (1)
  922.         CreateDynamicObject(1667,2324.88867188,-1011.38964844,1049.79870605,0.00000000,0.00000000,0.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(propwineglass1) (2)
  923.         CreateDynamicObject(1665,2324.96142578,-1011.71868896,1049.72058105,0.00000000,0.00000000,0.00000000, HOUSE_VIRTUAL_WORLD + 6, 9, _, 200.0); //object(propashtray1) (1)
  924.  
  925.         /* LSPD interior additions */
  926.         CreateDynamicObject(1742,239.44921875,109.50000000,1009.21179199,0.00000000,0.00000000,270.26916504, _, 10, _, 200.0); //object(med_bookshelf) (1)
  927.         CreateDynamicObject(2259,233.53700256,111.30000305,1010.52191162,0.00000000,0.00000000,90.00000000, _, 10, _, 200.0); //object(frame_clip_6) (1)
  928.         CreateDynamicObject(1510,237.27488708,110.47866058,1010.05999756,0.00000000,0.00000000,0.00000000, _, 10, _, 200.0); //object(dyn_ashtry) (1)
  929.         CreateDynamicObject(3044,237.19999695,110.61499786,1010.16998291,25.00000000,0.00000000,0.00000000, _, 10, _, 200.0); //object(cigar) (2)
  930.         CreateDynamicObject(2894,237.23359680,109.39933777,1010.05700684,0.00000000,0.00000000,105.56491089, _, 10, _, 200.0); //object(kmb_rhymesbook) (1)
  931.         CreateDynamicObject(16780,236.00000000,110.00000000,1012.85998535,0.00000000,0.00000000,0.00000000, _, 10, _, 200.0); //object(ufo_light03) (2)
  932.         CreateDynamicObject(1744,237.30000305,113.25000000,1010.70001221,0.00000000,0.00000000,0.00000000, _, 10, _, 200.0); //object(med_shelf) (1)
  933.         CreateDynamicObject(1235,238.86370850,112.72632599,1009.72180176,0.00000000,0.00000000,0.00000000, _, 10, _, 200.0); //object(wastebin) (1)
  934.         CreateDynamicObject(1520,237.29576111,110.73871613,1010.05700684,0.00000000,0.00000000,0.00000000, _, 10, _, 200.0); //object(dyn_wine_bounce) (1)
  935.         CreateDynamicObject(1742,239.44921875,108.06933594,1009.21179199,0.00000000,0.00000000,270.26916504, _, 10, _, 200.0); //object(med_bookshelf) (1)
  936.         CreateDynamicObject(2833,238.00000000,109.40000153,1009.22998047,0.00000000,0.00000000,90.00000000, _, 10, _, 200.0); //object(gb_livingrug02) (1)
  937.         CreateDynamicObject(2813,237.22207642,112.88127136,1011.04052734,0.00000000,0.00000000,0.00000000, _, 10, _, 200.0); //object(gb_novels01) (1)
  938.         CreateDynamicObject(2332,239.60000610,111.50000000,1011.04998779,0.00000000,0.00000000,270.00000000, _, 10, _, 200.0); //object(kev_safe) (1)
  939.         CreateDynamicObject(2558,238.82000732,112.00000000,1010.50000000,0.00000000,0.00000000,270.00000000, _, 10, _, 200.0); //object(curtain_1_closed) (1)
  940.         CreateDynamicObject(2289,237.42500305,107.12000275,1011.24859619,0.00000000,0.00000000,179.99450684, _, 10, _, 200.0); //object(frame_2) (1)
  941.         CreateDynamicObject(2267,231.40335083,128.39999390,1011.29760742,0.00000000,0.00000000,0.00000000, _, 10, _, 200.0); //object(frame_wood_3) (1)
  942.         CreateDynamicObject(2894,229.15087891,125.28470612,1010.13958740,0.00000000,0.00000000,0.00000000, _, 10, _, 200.0); //object(kmb_rhymesbook) (2)
  943.  
  944.         /* LSPD 3D Text Labels */
  945.         CreateDynamic3DTextLabel("Department building elevator\n(/elevator)", COLOR_YELLOW, 276.0980, 122.1232, 1004.6172, 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
  946.         CreateDynamic3DTextLabel("Upper roof elevator\n(/elevator)", COLOR_YELLOW, 1564.6584,-1670.2607,52.4503, 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
  947.         CreateDynamic3DTextLabel("Lower roof elevator\n(/elevator)", COLOR_YELLOW, 1564.8, -1666.2, 28.3, 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
  948.         CreateDynamic3DTextLabel("Police garage elevator\n(/elevator)", COLOR_YELLOW, 1568.6676, -1689.9708, 6.2188, 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
  949.         /* Fisherman dock */
  950.         CreateObject(12990,333.29998779,-1903.40002441,1.00000000,0.00000000,0.00000000,0.00000000); //object(sw_jetty) (1)
  951.         CreateObject(12990,333.39999390,-1927.50000000,0.69999999,0.00000000,0.00000000,0.00000000); //object(sw_jetty) (2)
  952.         /* mall fix */
  953.         mall1 = CreateObject(19176, 1155.41, -1440.25, 16.23,   0.00, 0.00, 90.00);
  954.         CreateObject(19176, 1155.40, -1440.24, 19.15,   0.00, 0.00, 90.00);
  955.         /*truth's farm*/
  956.         CreateObject(3261, -1023.1328, -1632.4609, 75.3594, 0.00, 0.00, 0.00);
  957.         CreateObject(3409, -1062.1406, -1631.7188, 75.3359, 0.00, 0.00, 0.00);
  958.         CreateObject(3261, -1023.1328, -1629.2813, 75.3594, 0.00, 0.00, 0.00);
  959.         CreateObject(3261, -1023.1328, -1626.1016, 75.3594, 0.00, 0.00, 0.00);
  960.         CreateObject(3261, -1023.1328, -1622.9766, 75.3594, 0.00, 0.00, 0.00);
  961.         CreateObject(3409, -1052.3594, -1631.7188, 75.3359, 0.00, 0.00, 0.00);
  962.         CreateObject(3409, -1042.4375, -1631.7188, 75.3359, 0.00, 0.00, 0.00);
  963.         CreateObject(3261, -1032.7031, -1622.9766, 75.3594, 0.00, 0.00, 0.00);
  964.         CreateObject(3409, -1032.6719, -1631.7188, 75.3359, 0.00, 0.00, 0.00);
  965.         CreateObject(3261, -1032.7031, -1629.2813, 75.3594, 0.00, 0.00, 0.00);
  966.         CreateObject(3261, -1032.7031, -1626.1016, 75.3594, 0.00, 0.00, 0.00);
  967.         CreateObject(3261, -1032.7031, -1632.4609, 75.3594, 0.00, 0.00, 0.00);
  968.         CreateObject(3261, -1032.7031, -1619.9063, 75.3594, 0.00, 0.00, 0.00);
  969.         CreateObject(3409, -1023.1328, -1631.7188, 75.3359, 0.00, 0.00, 0.00);
  970.         CreateObject(3409, -1062.1406, -1622.2031, 75.3359, 0.00, 0.00, 0.00);
  971.         CreateObject(3409, -1052.3594, -1622.2031, 75.3359, 0.00, 0.00, 0.00);
  972.         CreateObject(3409, -1042.4375, -1622.2031, 75.3359, 0.00, 0.00, 0.00);
  973.         CreateObject(3409, -1032.6719, -1622.2031, 75.3359, 0.00, 0.00, 0.00);
  974.         CreateObject(3409, -1023.1328, -1622.2031, 75.3359, 0.00, 0.00, 0.00);
  975.         CreateObject(3261, -991.9531, -1688.1875, 75.3594, 0.00, 0.00, 0.00);
  976.         CreateObject(3409, -991.9219, -1703.1094, 75.3359, 0.00, 0.00, 0.00);
  977.         CreateObject(3261, -991.9531, -1700.6797, 75.3594, 0.00, 0.00, 0.00);
  978.         CreateObject(3261, -991.9531, -1697.5000, 75.3594, 0.00, 0.00, 0.00);
  979.         CreateObject(3261, -991.9531, -1703.8594, 75.3594, 0.00, 0.00, 0.00);
  980.         CreateObject(3261, -991.9531, -1691.3047, 75.3594, 0.00, 0.00, 0.00);
  981.         CreateObject(3261, -991.9531, -1694.3750, 75.3594, 0.00, 0.00, 0.00);
  982.         CreateObject(3261, -991.9531, -1685.0781, 75.3594, 0.00, 0.00, 0.00);
  983.         CreateObject(3409, -982.3828, -1703.1094, 75.3359, 0.00, 0.00, 0.00);
  984.         CreateObject(3409, -991.9219, -1693.6016, 75.3359, 0.00, 0.00, 0.00);
  985.         CreateObject(3409, -982.3828, -1693.6016, 75.3359, 0.00, 0.00, 0.00);
  986.         CreateObject(3409, -991.9219, -1684.1719, 75.3359, 0.00, 0.00, 0.00);
  987.         CreateObject(3409, -982.3828, -1684.1719, 75.3359, 0.00, 0.00, 0.00);
  988.         CreateObject(3261, -1011.9297, -1655.8672, 75.3594, 0.00, 0.00, 0.00);
  989.         CreateObject(3409, -1011.8984, -1667.6719, 75.3359, 0.00, 0.00, 0.00);
  990.         CreateObject(3261, -1011.9297, -1665.2422, 75.3594, 0.00, 0.00, 0.00);
  991.         CreateObject(3261, -1011.9297, -1662.0625, 75.3594, 0.00, 0.00, 0.00);
  992.         CreateObject(3261, -1011.9297, -1668.4219, 75.3594, 0.00, 0.00, 0.00);
  993.         CreateObject(3261, -1011.9297, -1652.7500, 75.3594, 0.00, 0.00, 0.00);
  994.         CreateObject(3261, -1011.9297, -1658.9375, 75.3594, 0.00, 0.00, 0.00);
  995.         CreateObject(3261, -1011.9297, -1649.6406, 75.3594, 0.00, 0.00, 0.00);
  996.         CreateObject(3409, -1011.8984, -1658.1563, 75.3359, 0.00, 0.00, 0.00);
  997.         CreateObject(3409, -1011.8984, -1648.7344, 75.3359, 0.00, 0.00, 0.00);
  998.         CreateObject(3261, -1000.7500, -1652.7500, 75.3594, 0.00, 0.00, 0.00);
  999.         CreateObject(3409, -1000.7266, -1667.6719, 75.3359, 0.00, 0.00, 0.00);
  1000.         CreateObject(3261, -1000.7500, -1665.2422, 75.3594, 0.00, 0.00, 0.00);
  1001.         CreateObject(3261, -1000.7500, -1662.0625, 75.3594, 0.00, 0.00, 0.00);
  1002.         CreateObject(3261, -1000.7500, -1668.4219, 75.3594, 0.00, 0.00, 0.00);
  1003.         CreateObject(3261, -1000.7500, -1655.8672, 75.3594, 0.00, 0.00, 0.00);
  1004.         CreateObject(3261, -1000.7500, -1658.9375, 75.3594, 0.00, 0.00, 0.00);
  1005.         CreateObject(3261, -1000.7500, -1649.6406, 75.3594, 0.00, 0.00, 0.00);
  1006.         CreateObject(3409, -1000.7266, -1658.1563, 75.3359, 0.00, 0.00, 0.00);
  1007.         CreateObject(3409, -1000.7266, -1648.7344, 75.3359, 0.00, 0.00, 0.00);
  1008.         CreateObject(3261, -1052.3828, -1632.4609, 75.3672, 0.00, 0.00, 0.00);
  1009.         CreateObject(3261, -1052.3828, -1629.2813, 75.3594, 0.00, 0.00, 0.00);
  1010.         CreateObject(3261, -1052.3828, -1626.1016, 75.3594, 0.00, 0.00, 0.00);
  1011.         CreateObject(3261, -1052.3828, -1622.9766, 75.3594, 0.00, 0.00, 0.00);
  1012.         CreateObject(3261, -1042.4531, -1631.9375, 75.3594, 0.00, 0.00, 0.00);
  1013.         CreateObject(3261, -1042.4531, -1635.0547, 75.3594, 0.00, 0.00, 0.00);
  1014.         CreateObject(3409, -1023.1328, -1636.3906, 75.3359, 0.00, 0.00, 0.00);
  1015.         CreateObject(3409, -991.9219, -1688.8438, 75.3359, 0.00, 0.00, 0.00);
  1016.         CreateObject(3409, -982.3828, -1688.8438, 75.3359, 0.00, 0.00, 0.00);
  1017.         CreateObject(3409, -982.3828, -1698.2734, 75.3359, 0.00, 0.00, 0.00);
  1018.         CreateObject(3409, -991.9219, -1698.2734, 75.3359, 0.00, 0.00, 0.00);
  1019.         CreateObject(3409, -982.3828, -1707.7813, 75.3359, 0.00, 0.00, 0.00);
  1020.         CreateObject(3409, -1011.8984, -1662.8281, 75.3359, 0.00, 0.00, 0.00);
  1021.         CreateObject(3409, -1000.7266, -1672.3438, 75.3359, 0.00, 0.00, 0.00);
  1022.         CreateObject(3409, -1011.8984, -1653.4063, 75.3359, 0.00, 0.00, 0.00);
  1023.         CreateObject(3409, -1032.6719, -1636.3906, 75.3359, 0.00, 0.00, 0.00);
  1024.         CreateObject(3409, -1052.3594, -1636.3906, 75.3359, 0.00, 0.00, 0.00);
  1025.         CreateObject(3409, -1042.4375, -1636.3906, 75.3359, 0.00, 0.00, 0.00);
  1026.         CreateObject(3409, -1062.1406, -1626.8750, 75.3359, 0.00, 0.00, 0.00);
  1027.         CreateObject(3409, -1023.1328, -1626.8750, 75.3359, 0.00, 0.00, 0.00);
  1028.         CreateObject(3409, -1000.7266, -1662.8281, 75.3359, 0.00, 0.00, 0.00);
  1029.         CreateObject(3409, -1000.7266, -1653.4063, 75.3359, 0.00, 0.00, 0.00);
  1030.         CreateObject(3409, -1032.6719, -1626.8750, 75.3359, 0.00, 0.00, 0.00);
  1031.         CreateObject(3409, -1042.4375, -1626.8750, 75.3359, 0.00, 0.00, 0.00);
  1032.         CreateObject(3409, -1052.3594, -1626.8750, 75.3359, 0.00, 0.00, 0.00);
  1033.         CreateObject(3409, -1062.1406, -1636.3906, 75.3359, 0.00, 0.00, 0.00);
  1034.         CreateObject(3589, -1119.77, -1655.99, 78.14,   0.00, 0.00, 270.00);
  1035.         //moar truth
  1036.         CreateObject(1412, -946.62, -1632.51, 79.83,   3.14, 17.00, 111.11);
  1037.         CreateObject(1412, -945.79, -1638.12, 80.25,   3.01, -12.00, 90.00);
  1038.         CreateObject(1412, -948.73, -1627.35, 79.63,   3.14, -6.00, 112.32);
  1039.         CreateObject(1412, -948.81, -1622.86, 80.62,   3.14, -20.00, 57.73);
  1040.         CreateObject(1447, -945.46, -1618.86, 81.98,   3.14, -5.00, 47.14);
  1041.         CreateObject(1463, -1097.98, -1629.30, 75.68,   0.00, 0.00, 0.00);
  1042.         CreateObject(12922, -943.59, -1720.44, 80.44,   0.00, 0.00, 90.31);
  1043.         //Ganton Gym Edits
  1044.         CreateObject(1697,2245.69995117,-1689.90002441,20.50000000,15.99511719,0.00000000,0.00000000); //object(roofstuff16) (1)
  1045.     CreateObject(1697,2280.39990234,-1681.69995117,15.39999962,13.99511719,0.00000000,0.00000000); //object(roofstuff16) (2)
  1046.     CreateObject(1697,2280.39990234,-1686.90002441,16.50000000,25.99108887,0.00000000,0.00000000); //object(roofstuff16) (5)
  1047.     CreateObject(1697,2280.39990234,-1675.30004883,14.30000019,29.99511719,0.00000000,0.00000000); //object(roofstuff16) (6)
  1048.     CreateObject(1697,2280.39990234,-1672.00000000,14.19999981,29.99267578,0.00000000,0.00000000); //object(roofstuff16) (8)
  1049.     CreateObject(997,2248.00000000,-1725.00000000,12.50000000,0.00000000,0.00000000,0.00000000); //object(lhouse_barrier3) (1)
  1050.     CreateObject(997,2244.80004883,-1725.00000000,12.50000000,0.00000000,0.00000000,0.00000000); //object(lhouse_barrier3) (7)
  1051.     CreateObject(997,2238.39990234,-1725.00000000,12.60000038,0.00000000,0.00000000,0.00000000); //object(lhouse_barrier3) (9)
  1052.     CreateObject(997,2235.19995117,-1725.00000000,12.60000038,0.00000000,0.00000000,0.00000000); //object(lhouse_barrier3) (10)
  1053.     CreateObject(997,2232.00000000,-1725.00000000,12.60000038,0.00000000,0.00000000,0.00000000); //object(lhouse_barrier3) (11)
  1054.     CreateObject(997,2228.80004883,-1725.00000000,12.60000038,0.00000000,0.00000000,0.00000000); //object(lhouse_barrier3) (12)
  1055.     CreateObject(997,2225.60009766,-1725.00000000,12.60000038,0.00000000,0.00000000,0.00000000); //object(lhouse_barrier3) (13)
  1056.     CreateObject(997,2225.69995117,-1725.00000000,12.60000038,0.00000000,0.00000000,129.99597168); //object(lhouse_barrier3) (19)
  1057.     CreateObject(997,2255.60009766,-1705.00000000,16.60000038,0.00000000,0.00000000,89.99169922); //object(lhouse_barrier3) (20)
  1058.     CreateObject(997,2224.19995117,-1716.19995117,12.60000038,0.00000000,0.00000000,263.98999023); //object(lhouse_barrier3) (22)
  1059.     CreateObject(997,2224.50000000,-1713.09997559,12.60000038,0.00000000,0.00000000,263.98498535); //object(lhouse_barrier3) (23)
  1060.     CreateObject(997,2224.80004883,-1710.00000000,12.60000038,0.00000000,0.00000000,263.98498535); //object(lhouse_barrier3) (24)
  1061.     CreateObject(997,2225.19995117,-1706.90002441,12.60000038,0.00000000,0.00000000,263.98498535); //object(lhouse_barrier3) (25)
  1062.     CreateObject(997,2225.50000000,-1703.80004883,12.60000038,0.00000000,0.00000000,263.98498535); //object(lhouse_barrier3) (26)
  1063.     CreateObject(997,2226.00000000,-1700.69995117,12.60000038,0.00000000,0.00000000,261.98498535); //object(lhouse_barrier3) (27)
  1064.     CreateObject(997,2226.39990234,-1697.50000000,12.60000038,0.00000000,0.00000000,261.97998047); //object(lhouse_barrier3) (28)
  1065.     CreateObject(997,2226.89990234,-1694.40002441,12.60000038,0.00000000,0.00000000,261.97998047); //object(lhouse_barrier3) (29)
  1066.     CreateObject(997,2227.30004883,-1691.30004883,12.60000038,0.00000000,0.00000000,261.97998047); //object(lhouse_barrier3) (30)
  1067.     CreateObject(1697,2280.39990234,-1697.50000000,16.50000000,37.98815918,0.00000000,0.00000000); //object(roofstuff16) (9)
  1068.     CreateObject(1697,2280.39990234,-1692.19995117,16.79999924,31.98669434,0.00000000,0.00000000); //object(roofstuff16) (11)
  1069.     CreateObject(973,2288.80004883,-1696.00000000,17.39999962,0.00000000,0.00000000,0.00000000); //object(sub_roadbarrier) (2)
  1070.     CreateObject(973,2293.39990234,-1700.59997559,17.39999962,0.00000000,0.00000000,270.00000000); //object(sub_roadbarrier) (3)
  1071.     CreateObject(973,2293.39990234,-1709.90002441,17.39999962,0.00000000,0.00000000,270.00000000); //object(sub_roadbarrier) (4)
  1072.     CreateObject(973,2288.80004883,-1722.00000000,17.39999962,0.00000000,0.00000000,180.00000000); //object(sub_roadbarrier) (5)
  1073.     CreateObject(973,2293.39941406,-1717.39941406,17.39999962,0.00000000,0.00000000,270.00000000); //object(sub_roadbarrier) (6)
  1074.     CreateObject(973,2279.10009766,-1721.30004883,17.39999962,0.00000000,0.00000000,179.99450684); //object(sub_roadbarrier) (7)
  1075.     CreateObject(973,2268.50000000,-1721.30004883,17.39999962,0.00000000,0.00000000,179.99450684); //object(sub_roadbarrier) (8)
  1076.     CreateObject(973,2259.10009766,-1721.80004883,17.39999962,0.00000000,0.00000000,179.99450684); //object(sub_roadbarrier) (9)
  1077.     CreateObject(973,2273.69995117,-1721.30004883,17.39999962,0.00000000,0.00000000,179.99450684); //object(sub_roadbarrier) (11)
  1078.     CreateObject(973,2262.80004883,-1701.90002441,17.39999962,0.00000000,0.00000000,0.00000000); //object(sub_roadbarrier) (13)
  1079.     CreateObject(10832,2289.89990234,-1700.80004883,18.39999962,0.00000000,0.00000000,0.00000000); //object(gatehouse2_sfse) (1)
  1080.     CreateObject(3578,2293.10009766,-1715.90002441,16.00000000,0.00000000,0.00000000,270.00000000); //object(dockbarr1_la) (3)
  1081.     CreateObject(3578,2261.10009766,-1720.90002441,16.00000000,0.00000000,0.00000000,0.00000000); //object(dockbarr1_la) (4)
  1082.     CreateObject(3578,2271.30004883,-1720.90002441,16.00000000,0.00000000,0.00000000,0.00000000); //object(dockbarr1_la) (5)
  1083.     CreateObject(3578,2281.30004883,-1720.90002441,16.00000000,0.00000000,0.00000000,0.00000000); //object(dockbarr1_la) (6)
  1084.     CreateObject(3578,2288.19995117,-1720.90002441,16.00000000,0.00000000,0.00000000,0.00000000); //object(dockbarr1_la) (7)
  1085.     CreateObject(3578,2271.50000000,-1702.09997559,16.00000000,0.00000000,0.00000000,0.00000000); //object(dockbarr1_la) (9)
  1086.     CreateObject(3578,2263.19995117,-1702.09997559,16.00000000,0.00000000,0.00000000,0.00000000); //object(dockbarr1_la) (10)
  1087.     CreateObject(3578,2293.10009766,-1706.09997559,16.00000000,0.00000000,0.00000000,270.00000000); //object(dockbarr1_la) (12)
  1088.     CreateObject(997,2223.80004883,-1719.30004883,12.60000038,0.00000000,0.00000000,265.98999023); //object(lhouse_barrier3) (38)
  1089.     CreateObject(997,2255.60009766,-1708.19995117,16.60000038,0.00000000,0.00000000,89.98901367); //object(lhouse_barrier3) (42)
  1090.     CreateObject(997,2255.60009766,-1708.19995117,16.60000038,0.00000000,0.00000000,239.98901367); //object(lhouse_barrier3) (43)
  1091.     CreateObject(997,2255.60009766,-1718.69995117,16.60000038,0.00000000,0.00000000,89.98901367); //object(lhouse_barrier3) (45)
  1092.     CreateObject(997,2255.60009766,-1721.90002441,16.60000038,0.00000000,0.00000000,89.98901367); //object(lhouse_barrier3) (46)
  1093.     CreateObject(1498,2251.39990234,-1710.19995117,16.60000038,0.00000000,0.00000000,270.00000000); //object(gen_doorext03) (1)
  1094.     CreateObject(1498,2251.39990234,-1713.19995117,16.60000038,0.00000000,0.00000000,90.00000000); //object(gen_doorext03) (4)
  1095.     CreateObject(997,2255.59960938,-1715.50000000,16.60000038,0.00000000,0.00000000,119.98718262); //object(lhouse_barrier3) (49)
  1096.     CreateObject(5020,2253.89990234,-1711.69995117,20.50000000,0.00000000,90.00000000,0.00000000); //object(mul_las) (2)
  1097.     CreateObject(5020,2253.89990234,-1718.00000000,20.50000000,0.00000000,90.00000000,0.00000000); //object(mul_las) (5)
  1098.     CreateObject(5020,2253.89990234,-1705.50000000,20.50000000,0.00000000,90.00000000,0.00000000); //object(mul_las) (6)
  1099.     CreateObject(3578,2289.80004883,-1686.30004883,13.10000038,0.00000000,0.00000000,0.00000000); //object(dockbarr1_la) (16)
  1100.     CreateObject(3578,2284.30004883,-1681.09997559,13.10000038,0.00000000,0.00000000,270.00000000); //object(dockbarr1_la) (17)
  1101.     CreateObject(3578,2277.60009766,-1674.59997559,14.60000038,0.00000000,0.00000000,270.00000000); //object(dockbarr1_la) (18)
  1102.     CreateObject(3578,2283.10009766,-1674.59997559,14.50000000,0.00000000,0.00000000,270.00000000); //object(dockbarr1_la) (19)
  1103.     CreateObject(8615,2252.19995117,-1699.90002441,19.29999924,0.00000000,0.00000000,92.00000000); //object(vgssstairs04_lvs) (1)
  1104.     CreateObject(997,2227.30004883,-1691.30004883,12.60000038,0.00000000,0.00000000,77.97998047); //object(lhouse_barrier3) (50)
  1105.     CreateObject(3851,2251.39990234,-1716.69995117,18.60000038,0.00000000,0.00000000,180.00000000); //object(carshowwin_sfsx) (2)
  1106.     CreateObject(3851,2251.39990234,-1707.50000000,18.60000038,0.00000000,0.00000000,359.99450684); //object(carshowwin_sfsx) (3)
  1107.     CreateObject(1337,2300.12695312,-1713.82812500,25.96356583,0.00000000,0.00000000,0.00000000); //object(binnt07_la) (5)
  1108.     CreateObject(1280,2227.69995117,-1712.69995117,13.00000000,0.00000000,0.00000000,354.00000000); //object(parkbench1) (1)
  1109.     CreateObject(1280,2227.30004883,-1715.90002441,12.89999962,0.00000000,0.00000000,353.99597168); //object(parkbench1) (2)
  1110.     CreateObject(1280,2252.00000000,-1715.40002441,17.00000000,0.00000000,0.00000000,179.99597168); //object(parkbench1) (3)
  1111.     CreateObject(1280,2252.00000000,-1718.40002441,17.00000000,0.00000000,0.00000000,179.99450684); //object(parkbench1) (4)
  1112.     CreateObject(1280,2252.00000000,-1708.19995117,17.00000000,0.00000000,0.00000000,179.99450684); //object(parkbench1) (5)
  1113.     CreateObject(5020,2251.30004883,-1711.69995117,20.79999924,0.00000000,90.00000000,0.00000000); //object(mul_las) (9)
  1114.     CreateObject(5020,2251.19995117,-1705.50000000,20.70000076,0.00000000,90.00000000,0.00000000); //object(mul_las) (10)
  1115.     CreateObject(5020,2251.19921875,-1718.00000000,20.70000076,0.00000000,90.00000000,0.00000000); //object(mul_las) (11)
  1116.     CreateObject(656,2239.30004883,-1712.09997559,21.60000038,0.00000000,0.00000000,0.00000000); //object(pinetree05) (1)
  1117.     CreateObject(3472,2239.69995117,-1712.30004883,21.89999962,0.00000000,0.00000000,0.00000000); //object(circuslampost03) (1)
  1118.     CreateObject(3534,2245.10009766,-1714.50000000,35.70000076,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (1)
  1119.     CreateObject(1262,2239.19995117,-1712.30004883,31.79999924,0.00000000,0.00000000,108.00000000); //object(mtraffic4) (1)
  1120.     CreateObject(7666,2239.60009766,-1712.59997559,46.70000076,0.00000000,0.00000000,62.00000000); //object(vgswlcmsign2) (1)
  1121.     CreateObject(8042,2285.29980469,-1668.59960938,19.50000000,0.00000000,0.00000000,105.99609375); //object(apbarriergate07_lvs) (2)
  1122.     CreateObject(7666,2239.59960938,-1712.59960938,46.70000076,0.00000000,0.00000000,331.99584961); //object(vgswlcmsign2) (3)
  1123.     CreateObject(3472,2239.69995117,-1712.30004883,24.79999924,0.00000000,0.00000000,177.99511719); //object(circuslampost03) (3)
  1124.     CreateObject(3472,2239.69995117,-1712.30004883,29.29999924,0.00000000,0.00000000,147.99499512); //object(circuslampost03) (4)
  1125.     CreateObject(3472,2239.50000000,-1712.30004883,32.59999847,0.00000000,0.00000000,67.99133301); //object(circuslampost03) (5)
  1126.     CreateObject(3534,2293.39990234,-1695.90002441,21.20000076,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (2)
  1127.     CreateObject(3534,2234.69995117,-1713.69995117,35.70000076,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (3)
  1128.     CreateObject(3534,2237.80004883,-1707.69995117,34.59999847,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (4)
  1129.     CreateObject(3534,2235.19995117,-1714.69995117,39.50000000,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (6)
  1130.     CreateObject(3534,2246.39990234,-1709.90002441,34.50000000,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (7)
  1131.     CreateObject(3534,2244.30004883,-1711.80004883,39.40000153,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (8)
  1132.     CreateObject(3534,2234.60009766,-1712.09997559,39.40000153,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (9)
  1133.     CreateObject(3534,2233.39990234,-1714.80004883,34.20000076,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (10)
  1134.     CreateObject(1262,2237.89990234,-1712.69995117,37.00000000,0.00000000,0.00000000,107.99560547); //object(mtraffic4) (2)
  1135.     CreateObject(1262,2240.19995117,-1712.09997559,34.20000076,0.00000000,0.00000000,317.99560547); //object(mtraffic4) (3)
  1136.     CreateObject(1262,2240.19995117,-1713.09997559,33.09999847,0.00000000,0.00000000,225.99377441); //object(mtraffic4) (4)
  1137.     CreateObject(3534,2286.39990234,-1695.90002441,21.29999924,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (11)
  1138.     CreateObject(3534,2293.39941406,-1705.59960938,21.20000076,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (12)
  1139.     CreateObject(3534,2286.39990234,-1705.69995117,21.20000076,0.00000000,0.00000000,0.00000000); //object(trdlamp01) (13)
  1140.     CreateObject(3472,2292.69995117,-1721.50000000,17.00000000,0.00000000,0.00000000,277.98706055); //object(circuslampost03) (6)
  1141.     CreateObject(8615,2250.39941406,-1723.19921875,14.80000019,0.00000000,0.00000000,0.00000000); //object(vgssstairs04_lvs) (2)
  1142.     CreateObject(973,2272.09960938,-1701.89941406,17.39999962,0.00000000,0.00000000,0.00000000); //object(sub_roadbarrier) (21)
  1143.     CreateObject(1282,2285.00000000,-1696.90002441,17.29999924,0.00000000,0.00000000,0.00000000); //object(barrierm) (1)
  1144.     CreateObject(1282,2285.10009766,-1698.19995117,17.29999924,0.00000000,0.00000000,0.00000000); //object(barrierm) (2)
  1145.     CreateObject(1282,2285.19995117,-1699.59997559,17.29999924,0.00000000,0.00000000,0.00000000); //object(barrierm) (3)
  1146.     CreateObject(1422,2277.19995117,-1700.09997559,17.00000000,0.00000000,0.00000000,270.00000000); //object(dyn_roadbarrier_5) (1)
  1147.     CreateObject(1422,2277.19921875,-1697.39941406,17.00000000,0.00000000,0.00000000,270.00000000); //object(dyn_roadbarrier_5) (2)
  1148.     CreateObject(997,2229.00000000,-1719.90002441,21.89999962,0.00000000,0.00000000,313.98498535); //object(lhouse_barrier3) (51)
  1149.     CreateObject(997,2229.00000000,-1716.69995117,21.89999962,0.00000000,0.00000000,269.98376465); //object(lhouse_barrier3) (52)
  1150.     CreateObject(997,2229.00000000,-1713.50000000,21.89999962,0.00000000,0.00000000,269.98352051); //object(lhouse_barrier3) (53)
  1151.     CreateObject(997,2229.00000000,-1710.30004883,21.89999962,0.00000000,0.00000000,269.98352051); //object(lhouse_barrier3) (54)
  1152.     CreateObject(997,2229.00000000,-1707.09997559,21.89999962,0.00000000,0.00000000,269.98352051); //object(lhouse_barrier3) (55)
  1153.     CreateObject(997,2229.00000000,-1703.90002441,21.89999962,0.00000000,0.00000000,269.98352051); //object(lhouse_barrier3) (56)
  1154.     CreateObject(997,2229.00000000,-1700.69995117,21.89999962,0.00000000,0.00000000,269.98352051); //object(lhouse_barrier3) (57)
  1155.     CreateObject(997,2234.39990234,-1722.19995117,21.89999962,0.00000000,0.00000000,179.98352051); //object(lhouse_barrier3) (58)
  1156.     CreateObject(997,2237.60009766,-1722.19995117,21.89999962,0.00000000,0.00000000,179.98352051); //object(lhouse_barrier3) (59)
  1157.     CreateObject(997,2240.80004883,-1722.19995117,21.89999962,0.00000000,0.00000000,179.98352051); //object(lhouse_barrier3) (60)
  1158.     CreateObject(997,2244.00000000,-1722.19995117,21.89999962,0.00000000,0.00000000,179.98352051); //object(lhouse_barrier3) (61)
  1159.     CreateObject(997,2247.19995117,-1722.19995117,21.89999962,0.00000000,0.00000000,179.98352051); //object(lhouse_barrier3) (62)
  1160.     CreateObject(997,2250.39990234,-1722.19995117,21.89999962,0.00000000,0.00000000,179.98352051); //object(lhouse_barrier3) (63)
  1161.     CreateObject(997,2232.19995117,-1700.69995117,21.89999962,0.00000000,0.00000000,179.98352051); //object(lhouse_barrier3) (64)
  1162.     CreateObject(997,2235.39990234,-1700.69995117,21.89999962,0.00000000,0.00000000,179.98352051); //object(lhouse_barrier3) (65)
  1163.     CreateObject(997,2240.89990234,-1700.69995117,21.89999962,0.00000000,0.00000000,179.98352051); //object(lhouse_barrier3) (66)
  1164.     CreateObject(997,2251.30004883,-1722.19995117,21.89999962,0.00000000,0.00000000,179.98352051); //object(lhouse_barrier3) (68)
  1165.     CreateObject(997,2238.59960938,-1700.69921875,21.89999962,0.00000000,0.00000000,179.98352051); //object(lhouse_barrier3) (69)
  1166.     CreateObject(997,2251.19995117,-1719.00000000,21.89999962,0.00000000,0.00000000,269.98352051); //object(lhouse_barrier3) (70)
  1167.     CreateObject(997,2251.19995117,-1715.80004883,21.89999962,0.00000000,0.00000000,269.98352051); //object(lhouse_barrier3) (71)
  1168.     CreateObject(997,2251.19995117,-1712.59997559,21.89999962,0.00000000,0.00000000,269.98352051); //object(lhouse_barrier3) (72)
  1169.     CreateObject(997,2251.19995117,-1709.40002441,21.89999962,0.00000000,0.00000000,269.98352051); //object(lhouse_barrier3) (73)
  1170.     CreateObject(997,2251.19995117,-1706.19995117,21.89999962,0.00000000,0.00000000,269.98352051); //object(lhouse_barrier3) (74)
  1171.     CreateObject(997,2251.19995117,-1703.00000000,21.89999962,0.00000000,0.00000000,269.98352051); //object(lhouse_barrier3) (75)
  1172.     CreateObject(997,2251.19995117,-1701.50000000,21.89999962,0.00000000,0.00000000,269.98352051); //object(lhouse_barrier3) (77)
  1173.     CreateObject(1280,2229.80004883,-1705.59997559,22.29999924,0.00000000,0.00000000,179.99450684); //object(parkbench1) (9)
  1174.     CreateObject(1280,2229.80004883,-1708.80004883,22.29999924,0.00000000,0.00000000,179.99450684); //object(parkbench1) (10)
  1175.     CreateObject(1280,2245.60009766,-1721.59997559,22.29999924,0.00000000,0.00000000,269.99450684); //object(parkbench1) (11)
  1176.     CreateObject(1280,2242.39990234,-1721.59997559,22.29999924,0.00000000,0.00000000,269.98901367); //object(parkbench1) (12)
  1177.     CreateObject(1280,2250.60009766,-1706.19995117,22.29999924,0.00000000,0.00000000,359.99450684); //object(parkbench1) (13)
  1178.     CreateObject(1280,2250.60009766,-1709.09997559,22.29999924,0.00000000,0.00000000,359.98901367); //object(parkbench1) (14)
  1179.     CreateObject(3472,2289.89941406,-1700.59960938,20.20000076,0.00000000,0.00000000,87.98889160); //object(circuslampost03) (7)
  1180.     CreateObject(3472,2256.69921875,-1721.29980469,17.00000000,0.00000000,0.00000000,177.98400879); //object(circuslampost03) (8)
  1181.     CreateObject(3472,2256.09960938,-1701.89941406,17.00000000,0.00000000,0.00000000,97.98205566); //object(circuslampost03) (9)
  1182.     CreateObject(2714,2229.69995117,-1721.19995117,15.69999981,0.00000000,0.00000000,315.99975586); //object(cj_open_sign_2) (1)
  1183.     CreateObject(3851,2251.39941406,-1698.09960938,18.60000038,0.00000000,0.00000000,359.98352051); //object(carshowwin_sfsx) (5)
  1184.     CreateObject(3851,2251.39941406,-1698.09960938,14.60000038,0.00000000,0.00000000,359.98352051); //object(carshowwin_sfsx) (6)
  1185.     CreateObject(3851,2229.00000000,-1698.00000000,15.69999981,270.00000000,180.00000000,173.98901367); //object(carshowwin_sfsx) (18)
  1186.     CreateObject(3851,2229.39990234,-1694.40002441,15.69999981,270.00000000,179.99450684,173.98498535); //object(carshowwin_sfsx) (19)
  1187.     CreateObject(3851,2228.69995117,-1701.90002441,15.69999981,270.00000000,179.99450684,179.98498535); //object(carshowwin_sfsx) (20)
  1188.     CreateObject(3851,2228.69995117,-1706.00000000,15.69999981,270.00000000,179.99450684,179.98352051); //object(carshowwin_sfsx) (21)
  1189.     CreateObject(3851,2228.69995117,-1709.80004883,15.69999981,270.00000000,179.99450684,179.98352051); //object(carshowwin_sfsx) (22)
  1190.     CreateObject(3851,2228.69995117,-1713.69995117,15.69999981,270.00000000,179.99450684,179.98352051); //object(carshowwin_sfsx) (23)
  1191.     CreateObject(3851,2240.39990234,-1722.40002441,16.20000076,270.00000000,179.99450684,269.98352051); //object(carshowwin_sfsx) (25)
  1192.     CreateObject(3851,2242.30004883,-1722.50000000,16.20000076,270.00000000,179.99450684,269.97802734); //object(carshowwin_sfsx) (26)
  1193.     CreateObject(3851,2236.69995117,-1722.40002441,19.79999924,0.00000000,0.00000000,89.98901367); //object(carshowwin_sfsx) (27)
  1194.     CreateObject(3851,2236.69995117,-1722.40002441,17.79999924,0.00000000,0.00000000,89.98901367); //object(carshowwin_sfsx) (28)
  1195.     CreateObject(3851,2245.69995117,-1722.40002441,17.79999924,0.00000000,0.00000000,89.98901367); //object(carshowwin_sfsx) (29)
  1196.     CreateObject(3851,2245.69995117,-1722.40002441,19.89999962,0.00000000,0.00000000,89.98901367); //object(carshowwin_sfsx) (30)
  1197.     CreateObject(3851,2228.69995117,-1717.50000000,15.69999981,270.00000000,179.99450684,179.98352051); //object(carshowwin_sfsx) (31)
  1198.     CreateObject(3851,2231.69995117,-1692.30004883,15.69999981,270.00000000,190.18205261,100.17251587); //object(carshowwin_sfsx) (32)
  1199.     CreateObject(3851,2235.59960938,-1692.29980469,15.69999981,270.00000000,190.17333984,100.16787720); //object(carshowwin_sfsx) (33)
  1200.     CreateObject(3851,2239.50000000,-1692.30004883,15.69999981,270.00000000,190.17883301,100.16784668); //object(carshowwin_sfsx) (34)
  1201.     CreateObject(3851,2243.50000000,-1692.30004883,15.69999981,270.00000000,190.17883301,100.16787720); //object(carshowwin_sfsx) (35)
  1202.     CreateObject(3851,2247.39990234,-1692.30004883,15.69999981,270.00000000,190.17883301,100.16784668); //object(carshowwin_sfsx) (36)
  1203.     CreateObject(3851,2249.30004883,-1692.30004883,15.69999981,270.00000000,190.17883301,100.16784668); //object(carshowwin_sfsx) (37)
  1204.     CreateObject(3850,2251.29980469,-1699.69921875,21.89999962,0.00000000,0.00000000,359.99450684); //object(carshowbann_sfsx) (2)
  1205.     CreateObject(3850,2229.00000000,-1699.30004883,21.89999962,0.00000000,0.00000000,353.99597168); //object(carshowbann_sfsx) (3)
  1206.     CreateObject(3850,2231.39990234,-1692.40002441,21.89999962,0.00000000,0.00000000,269.99597168); //object(carshowbann_sfsx) (4)
  1207.     CreateObject(3850,2234.89990234,-1692.40002441,21.89999962,0.00000000,0.00000000,269.99450684); //object(carshowbann_sfsx) (5)
  1208.     CreateObject(3850,2238.39990234,-1692.40002441,21.89999962,0.00000000,0.00000000,269.99450684); //object(carshowbann_sfsx) (6)
  1209.     CreateObject(3850,2229.80004883,-1721.19995117,20.79999924,0.00000000,0.00000000,223.98901367); //object(carshowbann_sfsx) (7)
  1210.     CreateObject(3850,2243.10009766,-1701.00000000,21.60000038,0.00000000,56.00000000,269.99450684); //object(carshowbann_sfsx) (8)
  1211.     CreateObject(3850,2229.19921875,-1697.59960938,21.89999962,0.00000000,0.00000000,353.99597168); //object(carshowbann_sfsx) (11)
  1212.     CreateObject(3850,2251.30004883,-1694.19995117,21.89999962,0.00000000,0.00000000,359.99450684); //object(carshowbann_sfsx) (12)
  1213.     CreateObject(3850,2246.60009766,-1701.00000000,21.60000038,0.00000000,55.99731445,269.98901367); //object(carshowbann_sfsx) (14)
  1214.     CreateObject(3850,2249.50000000,-1701.00000000,21.60000038,0.00000000,55.99731445,269.98901367); //object(carshowbann_sfsx) (15)
  1215.     CreateObject(2714,2251.50000000,-1711.69995117,19.39999962,0.00000000,0.00000000,90.00000000); //object(cj_open_sign_2) (2)
  1216.     CreateObject(3335,2284.30004883,-1668.90002441,14.10000038,0.00000000,0.00000000,180.00000000); //object(ce_roadsign1) (1)
  1217.     CreateObject(3335,2231.50000000,-1719.80004883,20.70000076,318.00000000,0.00000000,133.99450684); //object(ce_roadsign1) (2)
  1218.     CreateObject(1432,2239.30004883,-1702.19995117,21.89999962,0.00000000,0.00000000,300.00000000); //object(dyn_table_2) (2)
  1219.     CreateObject(2637,2232.00000000,-1694.79980469,21.70000076,0.00000000,0.00000000,0.00000000); //object(cj_pizza_table2) (1)
  1220.     CreateObject(2635,2249.39990234,-1693.90002441,21.70000076,0.00000000,0.00000000,0.00000000); //object(cj_pizza_table) (1)
  1221.     CreateObject(2636,2233.69921875,-1694.79980469,22.00000000,0.00000000,0.00000000,0.00000000); //object(cj_pizza_chair) (1)
  1222.     CreateObject(1432,2235.80004883,-1702.19995117,21.89999962,0.00000000,0.00000000,299.99816895); //object(dyn_table_2) (6)
  1223.     CreateObject(1432,2232.39990234,-1702.09997559,21.89999962,0.00000000,0.00000000,299.99816895); //object(dyn_table_2) (7)
  1224.     CreateObject(2636,2230.29980469,-1694.79980469,22.00000000,0.00000000,0.00000000,179.99450684); //object(cj_pizza_chair) (2)
  1225.     CreateObject(2636,2232.50000000,-1693.50000000,22.00000000,0.00000000,0.00000000,89.99450684); //object(cj_pizza_chair) (3)
  1226.     CreateObject(2636,2231.50000000,-1693.50000000,22.00000000,0.00000000,0.00000000,89.99450684); //object(cj_pizza_chair) (4)
  1227.     CreateObject(2636,2231.39941406,-1696.09960938,22.00000000,0.00000000,0.00000000,269.98901367); //object(cj_pizza_chair) (5)
  1228.     CreateObject(2636,2232.69995117,-1700.09997559,22.00000000,0.00000000,0.00000000,269.98901367); //object(cj_pizza_chair) (6)
  1229.     CreateObject(3934,2244.00000000,-1678.59997559,20.10000038,0.00000000,359.75000000,0.00000000); //object(helipad01) (1)
  1230.     CreateObject(1697,2280.39941406,-1677.29980469,14.30000019,19.99511719,0.00000000,0.00000000); //object(roofstuff16) (1)
  1231.     CreateObject(3850,2241.89941406,-1692.39941406,21.89999962,0.00000000,0.00000000,269.98901367); //object(carshowbann_sfsx) (7)
  1232.     CreateObject(3850,2249.59960938,-1692.39941406,21.89999962,0.00000000,0.00000000,269.98901367); //object(carshowbann_sfsx) (7)
  1233.     CreateObject(3850,2229.80004883,-1721.19995117,19.79999924,0.00000000,0.00000000,223.98376465); //object(carshowbann_sfsx) (7)
  1234.     CreateObject(3850,2229.80004883,-1721.19995117,18.70000076,0.00000000,0.00000000,223.98376465); //object(carshowbann_sfsx) (7)
  1235.     CreateObject(3850,2229.80004883,-1721.19995117,17.60000038,0.00000000,0.00000000,223.98376465); //object(carshowbann_sfsx) (7)
  1236.     CreateObject(3850,2229.80004883,-1721.19995117,16.50000000,0.00000000,0.00000000,223.98376465); //object(carshowbann_sfsx) (7)
  1237.     CreateObject(3850,2229.80004883,-1721.19995117,15.60000038,0.00000000,0.00000000,223.98376465); //object(carshowbann_sfsx) (7)
  1238.     CreateObject(2636,2250.60009766,-1693.90002441,22.00000000,0.00000000,0.00000000,0.00000000); //object(cj_pizza_chair) (1)
  1239.     CreateObject(2636,2249.50000000,-1692.69995117,22.00000000,0.00000000,0.00000000,89.99450684); //object(cj_pizza_chair) (3)
  1240.     CreateObject(3850,2229.50000000,-1694.19921875,21.89999962,0.00000000,0.00000000,353.99597168); //object(carshowbann_sfsx) (1)
  1241.     CreateObject(2636,2248.30004883,-1693.90002441,22.00000000,0.00000000,0.00000000,179.99450684); //object(cj_pizza_chair) (2)
  1242.     CreateObject(2636,2249.39990234,-1694.90002441,22.00000000,0.00000000,0.00000000,269.98901367); //object(cj_pizza_chair) (5)
  1243.     CreateObject(2637,2232.19995117,-1698.90002441,21.70000076,0.00000000,0.00000000,0.00000000); //object(cj_pizza_table2) (1)
  1244.     CreateObject(2636,2232.39941406,-1696.09960938,22.00000000,0.00000000,0.00000000,269.98901367); //object(cj_pizza_chair) (6)
  1245.     CreateObject(2636,2231.80004883,-1700.09997559,22.00000000,0.00000000,0.00000000,269.98901367); //object(cj_pizza_chair) (6)
  1246.     CreateObject(2636,2230.50000000,-1698.90002441,22.00000000,0.00000000,0.00000000,179.99450684); //object(cj_pizza_chair) (2)
  1247.     CreateObject(2636,2233.89990234,-1698.90002441,22.00000000,0.00000000,0.00000000,0.00000000); //object(cj_pizza_chair) (1)
  1248.     CreateObject(2636,2231.80004883,-1697.80004883,22.00000000,0.00000000,0.00000000,89.99450684); //object(cj_pizza_chair) (4)
  1249.     CreateObject(2636,2232.80004883,-1697.80004883,22.00000000,0.00000000,0.00000000,89.99450684); //object(cj_pizza_chair) (4)
  1250.     CreateObject(2637,2237.30004883,-1699.30004883,21.70000076,0.00000000,0.00000000,270.00000000); //object(cj_pizza_table2) (1)
  1251.     CreateObject(2636,2238.60009766,-1699.90002441,22.00000000,0.00000000,0.00000000,0.00000000); //object(cj_pizza_chair) (1)
  1252.     CreateObject(2636,2238.60009766,-1699.00000000,22.00000000,0.00000000,0.00000000,0.00000000); //object(cj_pizza_chair) (1)
  1253.     CreateObject(2636,2236.10009766,-1699.80004883,22.00000000,0.00000000,0.00000000,179.99450684); //object(cj_pizza_chair) (2)
  1254.     CreateObject(2636,2236.10009766,-1698.90002441,22.00000000,0.00000000,0.00000000,179.99450684); //object(cj_pizza_chair) (2)
  1255.     CreateObject(2636,2237.30004883,-1697.69995117,22.00000000,0.00000000,0.00000000,89.99450684); //object(cj_pizza_chair) (3)
  1256.     CreateObject(3526,2239.60009766,-1681.09997559,20.10000038,0.00000000,0.00000000,180.00000000); //object(vegasairportlight) (1)
  1257.     CreateObject(3526,2239.59960938,-1676.39941406,20.10000038,0.00000000,0.00000000,179.99450684); //object(vegasairportlight) (2)
  1258.     CreateObject(3526,2241.10009766,-1674.80004883,20.10000038,0.00000000,0.00000000,89.99450684); //object(vegasairportlight) (3)
  1259.     CreateObject(3526,2246.69921875,-1674.79980469,20.10000038,0.00000000,0.00000000,89.99450684); //object(vegasairportlight) (4)
  1260.     CreateObject(3526,2248.19995117,-1676.30004883,20.10000038,0.00000000,0.00000000,358.99450684); //object(vegasairportlight) (5)
  1261.     CreateObject(3526,2248.19995117,-1681.09997559,20.10000038,0.00000000,0.00000000,358.98925781); //object(vegasairportlight) (6)
  1262.     CreateObject(3526,2246.69995117,-1682.59997559,20.10000038,0.00000000,0.00000000,272.98925781); //object(vegasairportlight) (7)
  1263.     CreateObject(3526,2241.00000000,-1682.59997559,20.10000038,0.00000000,0.00000000,272.98828125); //object(vegasairportlight) (8)
  1264.     CreateObject(3279,2271.39990234,-1683.19995117,19.39999962,0.00000000,0.00000000,180.00000000); //object(a51_spottower) (1)
  1265.     CreateObject(3851,2268.69995117,-1678.50000000,21.50000000,270.00000000,190.17333984,100.16787720); //object(carshowwin_sfsx) (33)
  1266.     CreateObject(3851,2268.69995117,-1678.50000000,32.50000000,270.00000000,190.17333984,100.16787720); //object(carshowwin_sfsx) (33)
  1267.     CreateObject(3851,2273.60009766,-1678.50000000,21.50000000,270.00000000,190.17333984,100.16787720); //object(carshowwin_sfsx) (33)
  1268.     CreateObject(3851,2273.60009766,-1678.50000000,32.50000000,270.00000000,190.17333984,100.16787720); //object(carshowwin_sfsx) (33)
  1269.     CreateObject(3851,2270.89990234,-1678.40002441,21.60000038,270.00000000,190.17883301,100.16787720); //object(carshowwin_sfsx) (33)
  1270.     CreateObject(3851,2270.89990234,-1678.40002441,32.50000000,270.00000000,190.17333984,100.16787720); //object(carshowwin_sfsx) (33)
  1271.     CreateObject(3851,2266.69995117,-1682.00000000,21.50000000,270.00000000,177.31793213,177.31250000); //object(carshowwin_sfsx) (33)
  1272.     CreateObject(1523,2266.80004883,-1680.00000000,19.50000000,0.00000000,0.00000000,90.25000000); //object(gen_doorext10) (1)
  1273.     CreateObject(3851,2266.60009766,-1682.09997559,32.50000000,270.00000000,190.17333984,190.16235352); //object(carshowwin_sfsx) (33)
  1274.     CreateObject(3851,2266.69995117,-1685.40002441,21.50000000,270.00000000,177.31384277,177.30834961); //object(carshowwin_sfsx) (33)
  1275.     CreateObject(3851,2266.69995117,-1685.40002441,32.50000000,270.00000000,177.31384277,177.30834961); //object(carshowwin_sfsx) (33)
  1276.     CreateObject(3851,2266.80004883,-1680.50000000,32.50000000,270.00000000,190.17333984,190.16235352); //object(carshowwin_sfsx) (33)
  1277.     CreateObject(3851,2266.89990234,-1680.50000000,27.50000000,270.00000000,190.17333984,190.16235352); //object(carshowwin_sfsx) (33)
  1278.     CreateObject(3851,2268.69995117,-1687.30004883,32.50000000,270.00000000,190.17333984,100.16787720); //object(carshowwin_sfsx) (33)
  1279.     CreateObject(3851,2268.69995117,-1687.30004883,21.29999924,270.00000000,190.17333984,100.16787720); //object(carshowwin_sfsx) (33)
  1280.     CreateObject(3851,2273.60009766,-1687.30004883,21.29999924,270.00000000,190.17333984,100.16787720); //object(carshowwin_sfsx) (33)
  1281.     CreateObject(3851,2273.60009766,-1687.30004883,32.50000000,270.00000000,190.17333984,100.16787720); //object(carshowwin_sfsx) (33)
  1282.     CreateObject(3851,2275.60009766,-1685.30004883,21.29999924,270.00000000,177.31384277,177.30834961); //object(carshowwin_sfsx) (33)
  1283.     CreateObject(3851,2275.60009766,-1685.30004883,32.50000000,270.00000000,177.31384277,177.30834961); //object(carshowwin_sfsx) (33)
  1284.     CreateObject(3851,2275.60009766,-1680.59997559,21.29999924,270.00000000,177.31384277,177.30834961); //object(carshowwin_sfsx) (33)
  1285.     CreateObject(3851,2275.60009766,-1680.59997559,32.50000000,270.00000000,177.31384277,177.30834961); //object(carshowwin_sfsx) (33)
  1286.     CreateObject(3851,2275.69995117,-1683.19995117,25.10000038,270.00000000,177.31384277,177.30834961); //object(carshowwin_sfsx) (33)
  1287.     CreateObject(3851,2275.69995117,-1683.19995117,32.50000000,270.00000000,177.31384277,177.30834961); //object(carshowwin_sfsx) (33)
  1288.     CreateObject(3851,2270.89990234,-1687.09997559,21.29999924,270.00000000,190.17333984,100.16784668); //object(carshowwin_sfsx) (33)
  1289.     CreateObject(3851,2270.89990234,-1687.09997559,32.50000000,270.00000000,190.17333984,100.16787720); //object(carshowwin_sfsx) (33)
  1290.     CreateObject(2637,2271.39990234,-1685.30004883,35.90000153,0.00000000,0.00000000,180.00000000); //object(cj_pizza_table2) (1)
  1291.     CreateObject(1738,2268.00000000,-1687.40002441,17.89999962,0.00000000,0.00000000,180.00000000); //object(cj_radiator_old) (1)
  1292.     CreateObject(3397,2271.60009766,-1680.19995117,35.50000000,0.00000000,0.00000000,90.00000000); //object(a51_sdsk_1_) (1)
  1293.     CreateObject(3395,2274.30004883,-1683.19995117,35.50000000,0.00000000,0.00000000,0.00000000); //object(a51_sdsk_3_) (1)
  1294.     CreateObject(1649,2268.80004883,-1680.09997559,38.09999847,270.00000000,180.00000000,180.00000000); //object(wglasssmash) (1)
  1295.     CreateObject(1649,2268.80004883,-1683.00000000,38.09999847,270.00000000,179.99450684,179.99450684); //object(wglasssmash) (4)
  1296.     CreateObject(1649,2268.80004883,-1685.69995117,38.09999847,270.00000000,179.99450684,179.99450684); //object(wglasssmash) (5)
  1297.     CreateObject(1649,2273.60009766,-1683.00000000,38.09999847,270.00000000,179.99450684,179.99450684); //object(wglasssmash) (6)
  1298.     CreateObject(1649,2273.60009766,-1680.09997559,38.09999847,270.00000000,179.99450684,179.99450684); //object(wglasssmash) (7)
  1299.     CreateObject(1649,2273.60009766,-1685.69995117,38.09999847,270.00000000,179.99450684,179.99450684); //object(wglasssmash) (8)
  1300.     CreateObject(1649,2271.10009766,-1685.69995117,38.20000076,270.00000000,179.99450684,179.99450684); //object(wglasssmash) (9)
  1301.     CreateObject(1649,2271.10009766,-1682.50000000,38.20000076,270.00000000,179.99450684,179.99450684); //object(wglasssmash) (10)
  1302.     CreateObject(1649,2271.10009766,-1680.09997559,38.20000076,270.00000000,179.99450684,179.99450684); //object(wglasssmash) (11)
  1303.  
  1304.  
  1305.  
  1306.         /* -------------------------------------- END OF RAEP. -------------------------------------- */
  1307.  
  1308.         print("-----------------------------------------------------------------");
  1309.         print("Script:Welcome to Bionic RP!");
  1310.         print("Status: Loaded OnGameModeInit, running version "SERVER_VERSION);
  1311.         print("-----------------------------------------------------------------");
  1312.        
  1313.         if(strfind(SERVER_VERSION, "BETA", true) != -1) {
  1314.             print("-----------------------------------------------------------------");
  1315.             print("WARNING: You are running a BETA version of the script.");
  1316.             print("WARNING: This script is not optimized (or specifically built) for public usage yet.");
  1317.             print("-----------------------------------------------------------------");
  1318.         }
  1319.        
  1320.         return 1;
  1321. }
  1322.  
  1323. #if !defined NO_IRC
  1324. public IRCBotDelay() {
  1325.         scriptBots[0] = IRC_Connect(IRC_SERVER, IRC_PORT, "YOURBOTNAME", "Maurice Moss", "VXRP2SCRIPT");
  1326.         return 1;
  1327. }
  1328.  
  1329. public IRC_OnConnect(botid) {
  1330.     IRC_SendRaw(scriptBots[0], "PRIVMSG NickServ :IDENTIFY "IRC_BOT_PASS);
  1331.     IRC_JoinChannel(scriptBots[0], IRC_CHANNEL_MAIN);
  1332.     IRC_JoinChannel(scriptBots[0], IRC_STAFF_CHANNEL, IRC_STAFF_CHANNEL_PASSWORD);
  1333.         return 1;
  1334. }
  1335.  
  1336. public IRC_OnJoinChannel(botid, channel[]) {
  1337.         if(!strcmp(channel, IRC_CHANNEL_MAIN, true))
  1338.                 IRC_Say(scriptBots[0], IRC_CHANNEL_MAIN, "Server started. Release: "SERVER_VERSION".");
  1339.  
  1340.         return 1;
  1341. }
  1342.  
  1343. public IRC_OnLeaveChannel(botid, channel[], message[]) {
  1344.         if(channel == IRC_CHANNEL_MAIN) {
  1345.             IRC_JoinChannel(scriptBots[0], IRC_CHANNEL_MAIN);
  1346.         } else if(channel == IRC_STAFF_CHANNEL) {
  1347.             IRC_JoinChannel(scriptBots[0], IRC_STAFF_CHANNEL, IRC_STAFF_CHANNEL_PASSWORD);
  1348.         }
  1349.        
  1350.         return 1;
  1351. }
  1352.  
  1353. public IRC_OnDisconnect(botid) {
  1354.         return SetTimer("IRCBotDelay", 5000, false);
  1355. }
  1356.  
  1357. public IRC_OnUserSay(botid, recipient[], user[], host[], message[]) {
  1358.         if(systemVariables[OOCStatus] == 0) {
  1359.             if(!strcmp(recipient, IRC_CHANNEL_MAIN, true)) {
  1360.                       format(szMessage, sizeof(szMessage), "(( %s says [on IRC]: %s ))", user, message);
  1361.  
  1362.                         foreach(Player, x) {
  1363.                                 if(playerVariables[x][pSeeOOC] == 1) {
  1364.                                     GetPlayerName(x, szPlayerName, MAX_PLAYER_NAME);
  1365.                                     if(strfind(szPlayerName, message, true, 0) != -1) {
  1366.                                                 SendClientMessage(x, COLOR_LIGHT, szMessage);
  1367.                                                 PlayerPlaySound(x, 1057, 0, 0, 0);
  1368.                                         }
  1369.                                         else {
  1370.                                             SendClientMessage(x, COLOR_LIGHT, szMessage);
  1371.                                         }
  1372.                                 }
  1373.                         }
  1374.                 }
  1375.                 else if(!strcmp(recipient, IRC_STAFF_CHANNEL, true)) {
  1376.                     format(szMessage, sizeof(szMessage), "* Admin %s says [on IRC]: %s", user, message);
  1377.                     submitToAdmins(szMessage, COLOR_YELLOW);
  1378.                 }
  1379.         }
  1380.         return 1;
  1381. }
  1382. #endif
  1383.  
  1384. stock loadATMs() {
  1385.         mysql_query("SELECT * FROM atms", THREAD_LOAD_ATMS);
  1386.         return 1;
  1387. }
  1388.  
  1389. stock unixTimeConvert(timestamp, compare = -1) {
  1390.     if(compare == -1)
  1391.                 compare = gettime();
  1392.  
  1393.     new
  1394.         n,
  1395.         Float:d = (timestamp > compare) ? timestamp - compare : compare - timestamp,
  1396.         returnstr[32];
  1397.  
  1398.     if (d < 60) {
  1399.         format(returnstr, sizeof(returnstr), "< 1 minute");
  1400.         return returnstr;
  1401.     } else if (d < 3600) { // 3600 = 1 hour
  1402.         n = floatround(floatdiv(d, 60.0), floatround_floor);
  1403.         format(returnstr, sizeof(returnstr), "minute");
  1404.     } else if (d < 86400) { // 86400 = 1 day
  1405.         n = floatround(floatdiv(d, 3600.0), floatround_floor);
  1406.         format(returnstr, sizeof(returnstr), "hour");
  1407.     } else if (d < 2592000) { // 2592000 = 1 month
  1408.         n = floatround(floatdiv(d, 86400.0), floatround_floor);
  1409.         format(returnstr, sizeof(returnstr), "day");
  1410.     } else if (d < 31536000) { // 31536000 = 1 year
  1411.         n = floatround(floatdiv(d, 2592000.0), floatround_floor);
  1412.         format(returnstr, sizeof(returnstr), "month");
  1413.     } else {
  1414.         n = floatround(floatdiv(d, 31536000.0), floatround_floor);
  1415.         format(returnstr, sizeof(returnstr), "year");
  1416.     }
  1417.  
  1418.     if (n == 1) {
  1419.         format(returnstr, sizeof(returnstr), "1 %s", returnstr);
  1420.     } else {
  1421.         format(returnstr, sizeof(returnstr), "%d %ss", n, returnstr);
  1422.     }
  1423.     return returnstr;
  1424. }
  1425.  
  1426. public genderSelection(const playerid) {
  1427.         return ShowPlayerDialog(playerid, DIALOG_GENDER_SELECTION, DIALOG_STYLE_MSGBOX, "SERVER: Gender Selection", "What sex/gender is your character?", "Male", "Female");
  1428. }
  1429.  
  1430. public OnPlayerShootPlayer(Shooter,Target,Float:HealthLost,Float:ArmourLost) {
  1431.         if(playerVariables[Shooter][pTazer] == 1 && groupVariables[playerVariables[Shooter][pGroup]][gGroupType] == 1 && playerVariables[Shooter][pGroup] != 0 && GetPlayerWeapon(Shooter) == 22) {
  1432.             if(IsPlayerInAnyVehicle(Target) || IsPlayerInAnyVehicle(Shooter))
  1433.                 return 1;
  1434.  
  1435.                 if(groupVariables[playerVariables[Target][pGroup]][gGroupType] == 1 && playerVariables[Target][pGroup] != 0)
  1436.                     return 1;
  1437.  
  1438.                 new
  1439.                     playerNames[2][MAX_PLAYER_NAME];
  1440.  
  1441.                 GetPlayerName(Shooter, playerNames[0], MAX_PLAYER_NAME);
  1442.                 GetPlayerName(Target, playerNames[1], MAX_PLAYER_NAME);
  1443.  
  1444.                 TogglePlayerControllable(Target, 0);
  1445.                 playerVariables[Target][pFreezeTime] = 15;
  1446.                 playerVariables[Target][pFreezeType] = 1;
  1447.                 GameTextForPlayer(Target, "~n~~r~ Tazed!",4000, 4);
  1448.  
  1449.                 format(szMessage, sizeof(szMessage), "* %s fires their tazer at %s, stunning them.", playerNames[0], playerNames[1]);
  1450.                 nearByMessage(Shooter, COLOR_PURPLE, szMessage);
  1451.                 format(szMessage, sizeof(szMessage), "You have successfully stunned %s.", playerNames[1]);
  1452.                 SendClientMessage(Shooter, COLOR_NICESKY, szMessage);
  1453.                 ApplyAnimation(Target,"CRACK","crckdeth2",4.1,0,1,1,1,1,1);
  1454.         }
  1455.         return 1;
  1456. }
  1457.  
  1458. public playerTabbedLoop() {
  1459.         foreach(Player, x) {
  1460.             if(playerVariables[x][pTabbed] == 0 && IsValidDynamic3DTextLabel(playerVariables[x][pAFKLabel]))
  1461.                         DestroyDynamic3DTextLabel(playerVariables[x][pAFKLabel]);
  1462.  
  1463.             playerVariables[x][pConnectedSeconds] += 1;
  1464.  
  1465.             if(playerVariables[x][pConnectedSeconds] < gettime()-1 && playerVariables[x][pTabbed] != 1 && playerVariables[x][pConnectedSeconds] >= 5 && GetPlayerState(x) != 9 && GetPlayerState(x) != 0 && GetPlayerState(x) != 7) {
  1466.                 playerVariables[x][pTabbed] = 1;
  1467.                 playerVariables[x][pAFKLabel] = CreateDynamic3DTextLabel("Paused.", COLOR_RED, 0, 0, 0, 7.5, x, _, 1, _, _, _, 7.5);
  1468.             }
  1469.         }
  1470.         return 1;
  1471. }
  1472.  
  1473. public restartTimer() {
  1474.         iGMXTick--;
  1475.  
  1476.         switch(iGMXTick) {
  1477.             case 0: {
  1478.                     SendClientMessageToAll(COLOR_LIGHTRED, "AdmCmd:{FFFFFF} The server is now restarting...");
  1479.  
  1480.                         mysql_close();
  1481.                         KillTimer(iGMXTimer);
  1482.  
  1483.                         SendRconCommand("gmx");
  1484.             }
  1485.             case 1: GameTextForAll("~w~The server will restart...~n~ ~r~NOW!", 1110, 5);
  1486.             case 2: GameTextForAll("~w~The server will restart in...~n~ ~r~2~w~ seconds.", 1110, 5);
  1487.             case 3: GameTextForAll("~w~The server will restart in...~n~ ~r~3~w~ seconds.", 1110, 5);
  1488.             case 4: GameTextForAll("~w~The server will restart in...~n~ ~r~4~w~ seconds.", 1110, 5);
  1489.             case 5: GameTextForAll("~w~The server will restart in...~n~ ~r~5~w~ seconds.", 1110, 5);
  1490.         }
  1491.  
  1492.         return 1;
  1493. }
  1494.  
  1495. AntiDeAMX() {
  1496.     new a[][] = {
  1497.         "Unarmed (Fist)",
  1498.         "Brass K"
  1499.     };
  1500.     #pragma unused a
  1501. }
  1502.  
  1503. public OnPlayerCommandReceived(playerid, cmdtext[]) {
  1504.         #if defined DEBUG
  1505.             printf("[debug] OnPlayerCommandReceived(%d, %s)", playerid, cmdtext);
  1506.         #endif
  1507.        
  1508.         if(GetPVarInt(playerid, "pAdminFrozen") == 1)
  1509.             Kick(playerid);
  1510.        
  1511.         GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
  1512.  
  1513.         if(playerVariables[playerid][pStatus] == 0)
  1514.             return 0;
  1515.  
  1516.         printf("[server] [cmd] %s (ID %d): %s", szPlayerName, playerid, cmdtext);
  1517.  
  1518.         if(playerVariables[playerid][pMuted] > 0) {
  1519.                 SendClientMessage(playerid, COLOR_GREY, "You cannot submit any commands or text at the moment, as you have been muted.");
  1520.                 return 0;
  1521.         }
  1522.  
  1523.         playerVariables[playerid][pSpamCount]++;
  1524.  
  1525.         new
  1526.                 charCount[3];
  1527.  
  1528.         for(new i; i < strlen(cmdtext); i++) switch(cmdtext[i]) {
  1529.                 case '0' .. '9': charCount[0]++;
  1530.                 case '.': charCount[1]++;
  1531.                 case ':': charCount[2]++;
  1532.         }
  1533.  
  1534.         if(charCount[0] > 8 && charCount[1] >= 3 && charCount[2] >= 1 && playerVariables[playerid][pAdminLevel] < 1) {
  1535.                 format(szMessage, sizeof(szMessage),"Warning: {FFFFFF}%s may be server advertising: '%s'.", szPlayerName, cmdtext);
  1536.                 submitToAdmins(szMessage, COLOR_HOTORANGE);
  1537.                 return 0;
  1538.         }
  1539.         return 1;
  1540. }
  1541.  
  1542. public OnVehicleSpawn(vehicleid) {
  1543.         #if defined DEBUG
  1544.             printf("[debug] OnVehicleSpawn(%d)", vehicleid);
  1545.         #endif
  1546.        
  1547.         switch(GetVehicleModel(vehicleid)) {
  1548.                 case 427, 428, 432, 601, 528: SetVehicleHealth(vehicleid, 5000.0); // Enforcer, Securicar, Rhino, SWAT Tank, FBI truck - this is the armour plating dream come true.
  1549.         }
  1550.         return 1;
  1551. }
  1552.  
  1553. public OnVehicleDeath(vehicleid, killerid) {
  1554.         #if defined DEBUG
  1555.             printf("[debug] OnVehicleDeath(%d, %d)", vehicleid, killerid);
  1556.         #endif
  1557.        
  1558.         return 1;
  1559. }
  1560.  
  1561. stock encode_lights(light1, light2, light3, light4) {
  1562.     return light1 | (light2 << 1) | (light3 << 2) | (light4 << 3);
  1563. }
  1564.  
  1565. stock encode_doors(bonnet, boot, driver_door, passenger_door) {
  1566.     return bonnet | (boot << 8) | (driver_door << 16) | (passenger_door << 24);
  1567. }
  1568.  
  1569. stock encode_panels(flp, frp, rlp, rrp, windshield, front_bumper, rear_bumper) {
  1570.     return flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (front_bumper << 20) | (rear_bumper << 24);
  1571. }
  1572.  
  1573. public ShutUp(slot) { // One function for eight doors. A WINRAR IS YOU!
  1574.         if(LSPDObjs[slot][2] == 1) switch(slot) {
  1575.                 case 0: {
  1576.                         MoveDynamicObject(LSPDObjs[0][0],232.89999390,107.57499695,1009.21179199,3.5); //commander south
  1577.                         MoveDynamicObject(LSPDObjs[0][1],232.89941406,110.57499695,1009.21179199,3.5); //commander north
  1578.                         LSPDObjs[0][2] = 0;
  1579.                 }
  1580.                 case 1: {
  1581.                         MoveDynamicObject(LSPDObjs[1][0],275.75000000,118.89941406,1003.61718750,3.5); // interrogation north
  1582.                         MoveDynamicObject(LSPDObjs[1][1],275.75000000,115.89941406,1003.61718750,3.5); // interrogation south
  1583.                         LSPDObjs[1][2] = 0;
  1584.                 }
  1585.                 case 2: {
  1586.                         MoveDynamicObject(LSPDObjs[2][0],253.20410156,107.59960938,1002.22070312,3.5); // north west lobby door
  1587.                         MoveDynamicObject(LSPDObjs[2][1],253.19921875,110.59960938,1002.22070312,3.5); // north east lobby door
  1588.                         LSPDObjs[2][2] = 0;
  1589.                 }
  1590.                 case 3: {
  1591.                         MoveDynamicObject(LSPDObjs[3][0],239.56933594,116.09960938,1002.22070312,3.5); // south west lobby door
  1592.                         MoveDynamicObject(LSPDObjs[3][1],239.56445312,119.09960938,1002.22070312,3.5); // south east lobby door
  1593.                         LSPDObjs[3][2] = 0;
  1594.                 }
  1595.                 case 4: {
  1596.                         MoveDynamicObject(LSPDObjs[4][0],264.45019531,115.82421875,1003.62286377,3.5); //object(gen_doorext15) (3)
  1597.                         MoveDynamicObject(LSPDObjs[4][1],267.45214844,115.82910156,1003.62286377,3.5); //object(gen_doorext15) (8)
  1598.                         LSPDObjs[4][2] = 0;
  1599.                 }
  1600.                 case 5: {
  1601.                         MoveDynamicObject(LSPDObjs[5][0],267.32000732,112.53222656,1003.62286377,3.5); //object(gen_doorext15) (4)
  1602.                         MoveDynamicObject(LSPDObjs[5][1],264.32000732,112.52929688,1003.62286377,3.5); //object(gen_doorext15) (5)
  1603.                         LSPDObjs[5][2] = 0;
  1604.                 }
  1605.                 case 6: {
  1606.                         MoveDynamicObject(LSPDObjs[6][0],229.59960938,119.52929688,1009.22442627,3.5); //object(gen_doorext15) (9)
  1607.                         MoveDynamicObject(LSPDObjs[6][1],232.59960938,119.53515625,1009.22442627,3.5); //object(gen_doorext15) (10)
  1608.                         LSPDObjs[6][2] = 0;
  1609.                 }
  1610.                 case 7: {
  1611.                         MoveDynamicObject(LSPDObjs[7][0],219.30000305,116.52999878,998.01562500,3.5); //cell east door
  1612.                         MoveDynamicObject(LSPDObjs[7][1],216.30000305,116.52929688,998.01562500,3.5); //cell west door
  1613.                         LSPDObjs[7][2] = 0;
  1614.                 }
  1615.         }
  1616.         return 1;
  1617. }
  1618. public AFKTimer() {
  1619.         foreach(Player, i) {
  1620.             if(playerVariables[i][pAdminLevel] < 1) {
  1621.                         GetPlayerPos(i, PlayerPos[i][0], PlayerPos[i][1], PlayerPos[i][2]);
  1622.  
  1623.                         if(PlayerPos[i][0] == PlayerPos[i][3] && PlayerPos[i][1] == PlayerPos[i][4] && PlayerPos[i][2] == PlayerPos[i][5]) {
  1624.                             savePlayerData(i);
  1625.                             playerVariables[i][pStatus] = 0;
  1626.                                 RemovePlayerFromVehicle(i);
  1627.                             SendClientMessage(i, COLOR_GREY, "You have been logged out due to inactivity.");
  1628.                             ShowPlayerDialog(i, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "SERVER: Login", "Welcome to the "SERVER_NAME" Server.\n\nPlease enter your password below!", "Login", "Cancel");
  1629.                         }
  1630.  
  1631.                         PlayerPos[i][3] = PlayerPos[i][0];
  1632.                         PlayerPos[i][4] = PlayerPos[i][1];
  1633.                         PlayerPos[i][5] = PlayerPos[i][2];
  1634.                 }
  1635.         }
  1636.  
  1637.         return 1;
  1638. }
  1639.  
  1640. public OnGameModeExit() {
  1641.         #if defined DEBUG
  1642.             print("[debug] OnGameModeInit()");
  1643.         #endif
  1644.        
  1645.         new
  1646.             x;
  1647.  
  1648.         while(x < MAX_TIMERS) {
  1649.             KillTimer(scriptTimers[x]);
  1650.                 x++;
  1651.         }
  1652.  
  1653.         mysql_close(databaseConnection);
  1654.  
  1655.         return 1;
  1656. }
  1657.  
  1658. stock GetWeaponSlot(weaponid) {
  1659.         switch(weaponid) {
  1660.                 case 0, 1: return 0;
  1661.                 case 2 .. 9: return 1;
  1662.                 case 22 .. 24: return 2;
  1663.                 case 25 .. 27: return 3;
  1664.                 case 28, 29, 32: return 4;
  1665.                 case 30, 31: return 5;
  1666.                 case 33, 34: return 6;
  1667.                 case 35 .. 38: return 7;
  1668.                 case 16, 17, 18, 39, 40: return 8;
  1669.                 case 41 .. 43: return 9;
  1670.                 case 10 .. 15: return 10;
  1671.                 case 44 .. 46: return 11;
  1672.         }
  1673.         return -1;
  1674. }
  1675.  
  1676. stock PlayerPlaySoundEx(soundid, Float:x, Float:y, Float:z) { // Realistic sound playback
  1677.         foreach(Player, i) {
  1678.                 if(IsPlayerInRangeOfPoint(i, 30.0, x, y, z))
  1679.                         PlayerPlaySound(i, soundid, x, y, z);
  1680.         }
  1681.  
  1682.         return 1;
  1683. }
  1684.  
  1685. stock GetClosestPlayer(const playerid) {
  1686.     new
  1687.                 Float:Distance,
  1688.                 target = -1;
  1689.  
  1690.     foreach(Player, i) {
  1691.         if (playerid != i && playerVariables[i][pSpectating] == INVALID_PLAYER_ID && (target < 0 || Distance > GetDistanceBetweenPlayers(playerid, i))) {
  1692.             target = i;
  1693.             Distance = GetDistanceBetweenPlayers(playerid, i);
  1694.         }
  1695.     }
  1696.     return target;
  1697. }
  1698.  
  1699. stock GetClosestVehicle(playerid, exception = INVALID_VEHICLE_ID) {
  1700.     new
  1701.                 Float:Distance,
  1702.                 target = -1;
  1703.  
  1704.     for(new v; v < MAX_VEHICLES; v++) if(doesVehicleExist(v)) {
  1705.         if(v != exception && (target < 0 || Distance > GetDistancePlayerVeh(playerid, v))) {
  1706.             target = v;
  1707.             Distance = GetDistancePlayerVeh(playerid, v);
  1708.         }
  1709.     }
  1710.     return target;
  1711. }
  1712.  
  1713. stock checkVehicleSeat(vehicleid, seatid) {
  1714.         foreach(Player, x) {
  1715.             if(GetPlayerVehicleID(x) == vehicleid && GetPlayerVehicleSeat(x) == seatid) return 1;
  1716.         }
  1717.         return 0;
  1718. }
  1719.  
  1720. stock IsValidSkin(skinid) {
  1721.         if(skinid < 0 || skinid > 299)
  1722.                 return false;
  1723.  
  1724.         switch(skinid) {
  1725.                 case 3, 4, 5, 6, 8, 42, 65, 74, 86, 119, 149, 208, 268, 273, 289: return false;
  1726.         }
  1727.         return true;
  1728. }
  1729.  
  1730. stock IsPublicSkin(skinid) {
  1731.         if(!IsValidSkin(skinid)) return false;
  1732.  
  1733.         switch(skinid) {
  1734.                 case 274 .. 288, 265 .. 267, 71: return false;
  1735.         }
  1736.         return true;
  1737. }
  1738.  
  1739. public OnPlayerConnect(playerid) {
  1740.         #if defined DEBUG
  1741.             printf("[debug] OnPlayerConnect(%d)", playerid);
  1742.         #endif
  1743.        
  1744.         /*
  1745.         (a) Attempts must be made to protect players from access to explicit content. If your
  1746.         server contains elements that may be considered only suitable for adults, your server
  1747.         must state this fact to the player when they first join.
  1748.         */
  1749.         SendClientMessage(playerid, COLOR_LIGHTRED, "Welcome to Bionic-Gaming RP!");
  1750.        
  1751.     SetPlayerColor(playerid, COLOR_WHITE);
  1752.     resetPlayerVariables(playerid);
  1753.  
  1754.     GetPlayerIp(playerid, playerVariables[playerid][pConnectionIP], 16);
  1755.  
  1756.         // Query if the player is banned or not, then continue with other auth code after the thread goes through
  1757.     format(szMessage, sizeof(szMessage), "SELECT `banID` FROM `bans` WHERE `IPBanned` = '%s'", playerVariables[playerid][pConnectionIP]);
  1758.     mysql_query(szMessage, THREAD_CHECK_BANS_LIST, playerid);
  1759.  
  1760.     SetPlayerMapIcon(playerid, 10, 595.5443, -1250.3405, 18.2836, 52, 0);
  1761.         syncPlayerTime(playerid);
  1762.         SetPlayerWeather(playerid, weatherVariables[0]); // Keep it all in sync (weather bugged out sometimes until we fixed it this way).
  1763.        
  1764.         /* Mall object removal - 0.3d */
  1765.     // Remove the original mall mesh
  1766.         RemoveBuildingForPlayer(playerid, 6130, 1117.5859, -1490.0078, 32.7188, 10.0);
  1767.  
  1768.         // This is the mall mesh LOD
  1769.         RemoveBuildingForPlayer(playerid, 6255, 1117.5859, -1490.0078, 32.7188, 10.0);
  1770.  
  1771.         // There are some trees on the outside of the mall which poke through one of the interiors
  1772.         RemoveBuildingForPlayer(playerid, 762, 1175.3594, -1420.1875, 19.8828, 0.25);
  1773.         RemoveBuildingForPlayer(playerid, 615, 1166.3516, -1417.6953, 13.9531, 0.25);
  1774.         return 1;
  1775. }
  1776.  
  1777. stock getIdFromName(const szPlayerName2[]) {
  1778.         new
  1779.                 szEsc[24];
  1780.  
  1781.         mysql_real_escape_string(szPlayerName2, szEsc);
  1782.         format(szQueryOutput, sizeof(szQueryOutput), "SELECT `playerID` FROM `playeraccounts` WHERE `playerName` = '%e'", szEsc);
  1783.         mysql_query(szQueryOutput);
  1784.         mysql_store_result();
  1785.         print(szQueryOutput);
  1786.  
  1787.         if(mysql_num_rows() > 1) {
  1788.             mysql_retrieve_row();
  1789.                 new iResult = mysql_fetch_int();
  1790.                 mysql_free_result();
  1791.                 return iResult;
  1792.         } else return -1;
  1793. }
  1794.  
  1795. stock SendToGroup(groupid, colour, string[]) {
  1796.         if(groupid > 0) {
  1797.                 foreach(Player, i) {
  1798.                         if(playerVariables[i][pStatus] == 1 && playerVariables[i][pGroup] == groupid) {
  1799.                                 SendClientMessage(i, colour, string);
  1800.                         }
  1801.                 }
  1802.         }
  1803.         return 1;
  1804. }
  1805.  
  1806. stock SendToEvent(const colour, const string[]) {
  1807.         foreach(Player, i) {
  1808.                 if(playerVariables[i][pEvent] >= 1) SendClientMessage(i, colour, string);
  1809.         }
  1810.         return 1;
  1811. }
  1812.  
  1813. stock FetchLevelFromHours(const iHours) {
  1814.         switch(iHours) {
  1815.             case 0..24: return 1;
  1816.             case 25..48: return 2;
  1817.             case 49..72: return 3;
  1818.             case 73..100: return 4;
  1819.             case 101..175: return 5;
  1820.             case 176..200: return 6;
  1821.             case 201..208: return 8;
  1822.             case 209..336: return 9;
  1823.             case 337..480: return 10;
  1824.         }
  1825.         return 0;
  1826. }
  1827.  
  1828. stock SendToFrequency(const frequency, const colour, const string[]) {
  1829.         if(frequency > 0) {
  1830.                 foreach(Player, i) {
  1831.                         if(playerVariables[i][pStatus] == 1 && playerVariables[i][pWalkieTalkie] == frequency) {
  1832.                                 SendClientMessage(i, colour, string);
  1833.                         }
  1834.                 }
  1835.         }
  1836.         return 1;
  1837. }
  1838.  
  1839. stock sendDepartmentMessage(const colour, const string[]) {
  1840.         foreach(Player, i) {
  1841.             if(playerVariables[i][pStatus] == 1 && (groupVariables[playerVariables[i][pGroup]][gGroupType] == 1 || groupVariables[playerVariables[i][pGroup]][gGroupType] == 2)) {
  1842.                 SendClientMessage(i, colour, string);
  1843.                 }
  1844.         }
  1845.         return 1;
  1846. }
  1847.  
  1848. stock IsKeyJustDown(key, newkeys, oldkeys) {
  1849.         if((newkeys & key) && !(oldkeys & key))
  1850.                 return 1;
  1851.  
  1852.         return 0;
  1853. }
  1854.  
  1855. stock IsPlayerInInvalidNosVehicle(const playerid) {
  1856.         switch(GetVehicleModel(GetPlayerVehicleID(playerid))) {
  1857.                 case 581, 523, 462, 521, 463, 522, 461, 448, 468, 586, 509, 481, 510, 472, 473, 493, 595, 484, 430, 453, 452, 446, 454, 590, 569, 537, 538, 570, 449: return true;
  1858.         }
  1859.         return false;
  1860. }
  1861.  
  1862. stock IsPlayerConnectedEx(const playerid) {
  1863.         if(IsPlayerConnected(playerid) && playerVariables[playerid][pStatus] == 1) return 1;
  1864.         return 0;
  1865. }
  1866.  
  1867. stock givePlayerValidWeapon(playerid, weapon) {
  1868.         switch(weapon) {
  1869.                 case 0, 1: {
  1870.                 playerVariables[playerid][pWeapons][0] = weapon;
  1871.                 GivePlayerWeapon(playerid, weapon, 99999);
  1872.             }
  1873.             case 2, 3, 4, 5, 6, 7, 8, 9: {
  1874.                 playerVariables[playerid][pWeapons][1] = weapon;
  1875.                 GivePlayerWeapon(playerid, weapon, 99999);
  1876.             }
  1877.             case 22, 23, 24: {
  1878.                 playerVariables[playerid][pWeapons][2] = weapon;
  1879.                 GivePlayerWeapon(playerid, weapon, 99999);
  1880.             }
  1881.             case 25, 26, 27: {
  1882.                 playerVariables[playerid][pWeapons][3] = weapon;
  1883.                 GivePlayerWeapon(playerid, weapon, 99999);
  1884.             }
  1885.             case 28, 29, 32: {
  1886.                 playerVariables[playerid][pWeapons][4] = weapon;
  1887.                 GivePlayerWeapon(playerid, weapon, 99999);
  1888.             }
  1889.             case 30, 31: {
  1890.                 playerVariables[playerid][pWeapons][5] = weapon;
  1891.                 GivePlayerWeapon(playerid, weapon, 99999);
  1892.             }
  1893.             case 33, 34: {
  1894.                 playerVariables[playerid][pWeapons][6] = weapon;
  1895.                 GivePlayerWeapon(playerid, weapon, 99999);
  1896.             }
  1897.             case 35, 36, 37, 38: {
  1898.                 playerVariables[playerid][pWeapons][7] = weapon;
  1899.                 GivePlayerWeapon(playerid, weapon, 99999);
  1900.             }
  1901.             case 16, 17, 18, 39: {
  1902.                 playerVariables[playerid][pWeapons][8] = weapon;
  1903.                 GivePlayerWeapon(playerid, weapon, 99999);
  1904.             }
  1905.             case 41, 42, 43: {
  1906.                 playerVariables[playerid][pWeapons][9] = weapon;
  1907.                 GivePlayerWeapon(playerid, weapon, 99999);
  1908.             }
  1909.             case 10, 11, 12, 13, 14, 15: {
  1910.                 playerVariables[playerid][pWeapons][10] = weapon;
  1911.                 GivePlayerWeapon(playerid, weapon, 99999);
  1912.             }
  1913.             case 44, 45, 46: {
  1914.                 playerVariables[playerid][pWeapons][11] = weapon;
  1915.                 GivePlayerWeapon(playerid, weapon, 99999);
  1916.             }
  1917.             case 40: {
  1918.                 playerVariables[playerid][pWeapons][12] = weapon;
  1919.                 GivePlayerWeapon(playerid, weapon, 99999);
  1920.             }
  1921.         }
  1922.         return 1;
  1923. }
  1924.  
  1925. stock GymMap() {
  1926.         /*
  1927.             --- CUSTOM MAP ---
  1928.             
  1929.                 Credits to: Marcel_Collins
  1930.                 Release thread: http://forum.sa-mp.com/showthread.php?p=1537421
  1931.         */
  1932.        
  1933.         CreateDynamicObject(1257,2242.38281250,-1725.93640137,13.82606697,0.00000000,0.00000000,90.00000000); //object(bustopm)(1)
  1934.         CreateDynamicObject(1229,2240.03955078,-1727.28039551,14.10655499,0.00000000,0.00000000,88.00000000); //object(bussign1)(1)
  1935.         CreateDynamicObject(1215,2224.59545898,-1712.75476074,13.11704731,0.00000000,0.00000000,0.00000000); //object(bollardlight)(1)
  1936.         CreateDynamicObject(1215,2236.68701172,-1725.17114258,13.11119843,0.00000000,0.00000000,0.00000000); //object(bollardlight)(3)
  1937.         CreateDynamicObject(1215,2221.71606445,-1723.97021484,13.12682343,0.00000000,0.00000000,0.00000000); //object(bollardlight)(4)
  1938.         CreateDynamicObject(1215,2225.08544922,-1726.94616699,13.12256432,0.00000000,0.00000000,0.00000000); //object(bollardlight)(5) (5)
  1939.         CreateDynamicObject(996,2230.76025391,-1727.23754883,13.29563046,0.00000000,0.00000000,0.00000000); //object(lhouse_barrier1)(1)
  1940.         CreateDynamicObject(997,2238.22485352,-1727.02954102,12.54687500,0.00000000,0.00000000,88.00000000); //object(lhouse_barrier3)(2)
  1941.         CreateDynamicObject(997,2225.60278320,-1727.18811035,12.65393353,0.00000000,0.00000000,0.00000000); //object(lhouse_barrier3)(3)
  1942.         CreateDynamicObject(997,2222.02197266,-1724.68554688,12.56250000,0.00000000,0.00000000,318.00000000); //object(lhouse_barrier3)(4)
  1943.         CreateDynamicObject(997,2221.68579102,-1719.86242676,12.53577995,0.00000000,0.00000000,266.00000000); //object(lhouse_barrier3)(5)
  1944.         CreateDynamicObject(996,2221.84472656,-1718.27014160,13.26626015,0.00000000,0.00000000,84.00000000); //object(lhouse_barrier1)(2)
  1945.         CreateDynamicObject(997,2223.02758789,-1710.96203613,12.58030415,0.00000000,0.00000000,0.00000000); //object(lhouse_barrier3)(7)
  1946.         return 1;
  1947. }
  1948.  
  1949. stock LSMall() {
  1950.         CreateDynamicObject(19322,1117.58000000,-1490.01000000,32.72000000,0.00000000,0.00000000,0.00000000); //
  1951.         CreateDynamicObject(19323,1117.58000000,-1490.01000000,32.72000000,0.00000000,0.00000000,0.00000000); //
  1952.         CreateDynamicObject(19325,1155.40000000,-1434.89000000,16.49000000,0.00000000,0.00000000,0.30000000); //
  1953.         CreateDynamicObject(19325,1155.37000000,-1445.41000000,16.31000000,0.00000000,0.00000000,0.00000000); //
  1954.         CreateDynamicObject(19325,1155.29000000,-1452.38000000,16.31000000,0.00000000,0.00000000,0.00000000); //
  1955.         CreateDynamicObject(19325,1157.36000000,-1468.35000000,16.31000000,0.00000000,0.00000000,18.66000000); //
  1956.         CreateDynamicObject(19325,1160.64000000,-1478.37000000,16.31000000,0.00000000,0.00000000,17.76000000); //
  1957.         CreateDynamicObject(19325,1159.84000000,-1502.06000000,16.31000000,0.00000000,0.00000000,-19.92000000); //
  1958.         CreateDynamicObject(19325,1139.28000000,-1523.71000000,16.31000000,0.00000000,0.00000000,-69.36000000); //
  1959.         CreateDynamicObject(19325,1117.06000000,-1523.43000000,16.51000000,0.00000000,0.00000000,-109.44000000); //
  1960.         CreateDynamicObject(19325,1097.18000000,-1502.43000000,16.51000000,0.00000000,0.00000000,-158.58000000); //
  1961.         CreateDynamicObject(19325,1096.47000000,-1478.29000000,16.51000000,0.00000000,0.00000000,-197.94000000); //
  1962.         CreateDynamicObject(19325,1099.70000000,-1468.27000000,16.51000000,0.00000000,0.00000000,-197.94000000); //
  1963.         CreateDynamicObject(19325,1101.81000000,-1445.45000000,16.22000000,0.00000000,0.00000000,-180.24000000); //
  1964.         CreateDynamicObject(19325,1101.76000000,-1452.47000000,16.22000000,0.00000000,0.00000000,-181.62000000); //
  1965.         CreateDynamicObject(19325,1101.77000000,-1434.88000000,16.22000000,0.00000000,0.00000000,-180.24000000); //
  1966.         CreateDynamicObject(19325,1094.31000000,-1444.92000000,23.47000000,0.00000000,0.00000000,-180.24000000); //
  1967.         CreateDynamicObject(19325,1094.37000000,-1458.37000000,23.47000000,0.00000000,0.00000000,-179.46000000); //
  1968.         CreateDynamicObject(19325,1093.01000000,-1517.44000000,23.44000000,0.00000000,0.00000000,-138.72000000); //
  1969.         CreateDynamicObject(19325,1101.08000000,-1526.64000000,23.42000000,0.00000000,0.00000000,-137.34000000); //
  1970.         CreateDynamicObject(19325,1155.12000000,-1526.38000000,23.46000000,0.00000000,0.00000000,-42.12000000); //
  1971.         CreateDynamicObject(19325,1163.09000000,-1517.25000000,23.46000000,0.00000000,0.00000000,-40.74000000); //
  1972.         CreateDynamicObject(19325,1163.04000000,-1442.06000000,23.40000000,0.00000000,0.00000000,-0.12000000); //
  1973.         CreateDynamicObject(19325,1163.09000000,-1428.47000000,23.50000000,0.00000000,0.00000000,0.54000000); //
  1974.         CreateDynamicObject(19326,1155.34000000,-1446.73000000,16.38000000,0.00000000,0.00000000,-89.82000000); //
  1975.         CreateDynamicObject(19326,1155.25000000,-1443.85000000,16.36000000,0.00000000,0.00000000,-89.82000000); //
  1976.         CreateDynamicObject(19326,1155.37000000,-1436.32000000,16.36000000,0.00000000,0.00000000,-89.82000000); //
  1977.         CreateDynamicObject(19326,1155.35000000,-1433.51000000,16.36000000,0.00000000,0.00000000,-89.70000000); //
  1978.         CreateDynamicObject(19329,1155.18000000,-1440.22000000,18.70000000,0.00000000,0.00000000,89.04000000); //
  1979.         CreateDynamicObject(19329,1161.59000000,-1431.50000000,17.93000000,0.00000000,0.00000000,0.00000000); //
  1980.         CreateDynamicObject(19329,1160.40000000,-1448.79000000,17.96000000,0.00000000,0.00000000,0.00000000); //
  1981.         CreateDynamicObject(2543,1168.18000000,-1436.39000000,14.79000000,0.00000000,0.00000000,0.30000000); //
  1982.         CreateDynamicObject(2535,1182.74000000,-1448.30000000,14.70000000,0.00000000,0.00000000,-90.96000000); //
  1983.         CreateDynamicObject(2543,1167.10000000,-1436.40000000,14.79000000,0.00000000,0.00000000,0.31000000); //
  1984.         CreateDynamicObject(2538,1172.31000000,-1435.32000000,14.79000000,0.00000000,0.00000000,180.34000000); //
  1985.         CreateDynamicObject(2539,1171.38000000,-1435.31000000,14.79000000,0.00000000,0.00000000,180.19000000); //
  1986.         CreateDynamicObject(2540,1169.56000000,-1435.36000000,14.79000000,0.00000000,0.00000000,180.17000000); //
  1987.         CreateDynamicObject(1984,1157.37000000,-1442.59000000,14.79000000,0.00000000,0.00000000,-450.06000000); //
  1988.         CreateDynamicObject(2012,1163.25000000,-1448.31000000,14.75000000,0.00000000,0.00000000,-179.16000000); //
  1989.         CreateDynamicObject(2012,1169.29000000,-1431.92000000,14.75000000,0.00000000,0.00000000,359.80000000); //
  1990.         CreateDynamicObject(1987,1163.13000000,-1436.34000000,14.79000000,0.00000000,0.00000000,361.06000000); //
  1991.         CreateDynamicObject(1988,1164.13000000,-1436.33000000,14.79000000,0.00000000,0.00000000,360.80000000); //
  1992.         CreateDynamicObject(2871,1164.79000000,-1443.96000000,14.79000000,0.00000000,0.00000000,177.73000000); //
  1993.         CreateDynamicObject(2871,1164.70000000,-1444.98000000,14.79000000,0.00000000,0.00000000,358.07000000); //
  1994.         CreateDynamicObject(2942,1155.52000000,-1464.68000000,15.43000000,0.00000000,0.00000000,-71.22000000); //
  1995.         CreateDynamicObject(1987,1164.12000000,-1435.32000000,14.77000000,0.00000000,0.00000000,180.96000000); //
  1996.         CreateDynamicObject(2530,1171.13000000,-1443.79000000,14.79000000,0.00000000,0.00000000,-182.16000000); //
  1997.         CreateDynamicObject(1991,1173.75000000,-1439.56000000,14.79000000,0.00000000,0.00000000,179.47000000); //
  1998.         CreateDynamicObject(1996,1169.82000000,-1439.50000000,14.79000000,0.00000000,0.00000000,179.10000000); //
  1999.         CreateDynamicObject(1996,1174.24000000,-1435.38000000,14.79000000,0.00000000,0.00000000,179.24000000); //
  2000.         CreateDynamicObject(1991,1175.23000000,-1435.39000000,14.79000000,0.00000000,0.00000000,179.57000000); //
  2001.         CreateDynamicObject(1995,1182.65000000,-1435.10000000,14.79000000,0.00000000,0.00000000,90.00000000); //
  2002.         CreateDynamicObject(1994,1182.66000000,-1438.07000000,14.79000000,0.00000000,0.00000000,90.00000000); //
  2003.         CreateDynamicObject(1993,1182.66000000,-1437.08000000,14.79000000,0.00000000,0.00000000,90.00000000); //
  2004.         CreateDynamicObject(2542,1163.78000000,-1443.92000000,14.76000000,0.00000000,0.00000000,178.77000000); //
  2005.         CreateDynamicObject(2536,1166.88000000,-1445.07000000,14.70000000,0.00000000,0.00000000,-0.42000000); //
  2006.         CreateDynamicObject(2542,1163.70000000,-1444.93000000,14.78000000,0.00000000,0.00000000,-1.74000000); //
  2007.         CreateDynamicObject(1984,1157.34000000,-1435.71000000,14.79000000,0.00000000,0.00000000,-450.06000000); //
  2008.         CreateDynamicObject(2012,1166.31000000,-1448.28000000,14.75000000,0.00000000,0.00000000,-180.12000000); //
  2009.         CreateDynamicObject(2530,1172.14000000,-1443.83000000,14.79000000,0.00000000,0.00000000,-181.38000000); //
  2010.         CreateDynamicObject(2530,1173.14000000,-1443.85000000,14.79000000,0.00000000,0.00000000,-180.96000000); //
  2011.         CreateDynamicObject(2530,1174.13000000,-1443.88000000,14.79000000,0.00000000,0.00000000,-181.50000000); //
  2012.         CreateDynamicObject(1981,1170.76000000,-1439.52000000,14.79000000,0.00000000,0.00000000,-181.74000000); //
  2013.         CreateDynamicObject(1981,1171.76000000,-1439.54000000,14.79000000,0.00000000,0.00000000,-180.80000000); //
  2014.         CreateDynamicObject(1981,1172.75000000,-1439.55000000,14.79000000,0.00000000,0.00000000,-180.84000000); //
  2015.         CreateDynamicObject(2535,1182.75000000,-1447.28000000,14.70000000,0.00000000,0.00000000,-90.78000000); //
  2016.         CreateDynamicObject(2535,1182.74000000,-1446.28000000,14.70000000,0.00000000,0.00000000,-90.78000000); //
  2017.         CreateDynamicObject(2535,1182.74000000,-1445.26000000,14.70000000,0.00000000,0.00000000,-90.00000000); //
  2018.         CreateDynamicObject(2541,1182.75000000,-1444.22000000,14.79000000,0.00000000,0.00000000,-90.06000000); //
  2019.         CreateDynamicObject(2541,1182.75000000,-1443.20000000,14.79000000,0.00000000,0.00000000,-90.06000000); //
  2020.         CreateDynamicObject(2541,1182.74000000,-1442.16000000,14.79000000,0.00000000,0.00000000,-90.06000000); //
  2021.         CreateDynamicObject(2543,1182.76000000,-1441.18000000,14.79000000,0.00000000,0.00000000,-90.84000000); //
  2022.         CreateDynamicObject(2541,1182.79000000,-1440.17000000,14.79000000,0.00000000,0.00000000,-90.06000000); //
  2023.         CreateDynamicObject(2543,1182.72000000,-1439.15000000,14.79000000,0.00000000,0.00000000,-90.84000000); //
  2024.         CreateDynamicObject(1990,1182.66000000,-1431.67000000,14.79000000,0.00000000,0.00000000,3.30000000); //
  2025.         CreateDynamicObject(1990,1181.63000000,-1431.73000000,14.79000000,0.00000000,0.00000000,3.30000000); //
  2026.         CreateDynamicObject(1990,1180.61000000,-1431.81000000,14.79000000,0.00000000,0.00000000,3.30000000); //
  2027.         CreateDynamicObject(1990,1179.61000000,-1431.83000000,14.79000000,0.00000000,0.00000000,3.30000000); //
  2028.         CreateDynamicObject(1990,1178.61000000,-1431.89000000,14.79000000,0.00000000,0.00000000,3.30000000); //
  2029.         CreateDynamicObject(1990,1177.59000000,-1431.86000000,14.79000000,0.00000000,0.00000000,3.30000000); //
  2030.         CreateDynamicObject(1993,1182.66000000,-1436.09000000,14.79000000,0.00000000,0.00000000,90.00000000); //
  2031.         CreateDynamicObject(2012,1175.50000000,-1431.82000000,14.75000000,0.00000000,0.00000000,361.17000000); //
  2032.         CreateDynamicObject(2012,1172.42000000,-1431.87000000,14.75000000,0.00000000,0.00000000,359.93000000); //
  2033.         CreateDynamicObject(2012,1160.10000000,-1448.35000000,14.75000000,0.00000000,0.00000000,-179.94000000); //
  2034.         CreateDynamicObject(2539,1170.45000000,-1435.33000000,14.79000000,0.00000000,0.00000000,181.26000000); //
  2035.         CreateDynamicObject(2545,1161.82000000,-1431.84000000,14.91000000,0.00000000,0.00000000,-90.54000000); //
  2036.         CreateDynamicObject(2545,1160.82000000,-1431.83000000,14.91000000,0.00000000,0.00000000,-90.54000000); //
  2037.         CreateDynamicObject(2545,1159.81000000,-1431.86000000,14.91000000,0.00000000,0.00000000,-90.54000000); //
  2038.         CreateDynamicObject(2545,1162.82000000,-1431.87000000,14.91000000,0.00000000,0.00000000,-90.54000000); //
  2039.         CreateDynamicObject(1988,1163.13000000,-1435.34000000,14.79000000,0.00000000,0.00000000,541.46000000); //
  2040.         CreateDynamicObject(1988,1166.07000000,-1436.32000000,14.79000000,0.00000000,0.00000000,360.80000000); //
  2041.         CreateDynamicObject(1987,1165.07000000,-1436.33000000,14.79000000,0.00000000,0.00000000,361.06000000); //
  2042.         CreateDynamicObject(1987,1166.11000000,-1435.30000000,14.77000000,0.00000000,0.00000000,180.96000000); //
  2043.         CreateDynamicObject(1988,1165.07000000,-1435.31000000,14.79000000,0.00000000,0.00000000,540.44000000); //
  2044.         CreateDynamicObject(2536,1165.79000000,-1445.07000000,14.70000000,0.00000000,0.00000000,-1.20000000); //
  2045.         CreateDynamicObject(2536,1167.83000000,-1445.07000000,14.70000000,0.00000000,0.00000000,-0.06000000); //
  2046.         CreateDynamicObject(2871,1165.79000000,-1444.00000000,14.79000000,0.00000000,0.00000000,178.27000000); //
  2047.         CreateDynamicObject(2871,1166.81000000,-1444.03000000,14.79000000,0.00000000,0.00000000,179.35000000); //
  2048.         CreateDynamicObject(2871,1167.79000000,-1444.04000000,14.79000000,0.00000000,0.00000000,179.89000000); //
  2049.         CreateDynamicObject(2543,1168.13000000,-1435.36000000,14.79000000,0.00000000,0.00000000,180.05000000); //
  2050.         CreateDynamicObject(2543,1167.10000000,-1435.37000000,14.79000000,0.00000000,0.00000000,180.35000000); //
  2051.         CreateDynamicObject(2012,1170.63000000,-1440.67000000,14.75000000,0.00000000,0.00000000,359.50000000); //
  2052.         CreateDynamicObject(2012,1173.77000000,-1440.72000000,14.75000000,0.00000000,0.00000000,359.82000000); //
  2053.         CreateDynamicObject(2012,1177.30000000,-1445.31000000,14.75000000,0.00000000,0.00000000,359.93000000); //
  2054.         CreateDynamicObject(1996,1173.36000000,-1448.30000000,14.79000000,0.00000000,0.00000000,179.10000000); //
  2055.         CreateDynamicObject(1981,1174.33000000,-1448.32000000,14.79000000,0.00000000,0.00000000,-181.74000000); //
  2056.         CreateDynamicObject(1981,1175.32000000,-1448.35000000,14.79000000,0.00000000,0.00000000,-180.84000000); //
  2057.         CreateDynamicObject(1981,1176.30000000,-1448.37000000,14.79000000,0.00000000,0.00000000,-180.84000000); //
  2058.         CreateDynamicObject(1991,1177.28000000,-1448.37000000,14.79000000,0.00000000,0.00000000,179.47000000); //
  2059.         CreateDynamicObject(1996,1178.33000000,-1448.36000000,14.79000000,0.00000000,0.00000000,179.24000000); //
  2060.         CreateDynamicObject(1991,1179.33000000,-1448.37000000,14.79000000,0.00000000,0.00000000,179.57000000); //
  2061.         CreateDynamicObject(1994,1176.82000000,-1444.16000000,14.79000000,0.00000000,0.00000000,-0.84000000); //
  2062.         CreateDynamicObject(1995,1178.81000000,-1444.20000000,14.79000000,0.00000000,0.00000000,-1.26000000); //
  2063.         CreateDynamicObject(2543,1168.89000000,-1444.06000000,14.79000000,0.00000000,0.00000000,178.97000000); //
  2064.         CreateDynamicObject(2543,1169.91000000,-1444.07000000,14.79000000,0.00000000,0.00000000,179.69000000); //
  2065.         CreateDynamicObject(2543,1169.87000000,-1445.12000000,14.79000000,0.00000000,0.00000000,-0.06000000); //
  2066.         CreateDynamicObject(2543,1168.86000000,-1445.11000000,14.79000000,0.00000000,0.00000000,0.31000000); //
  2067.         CreateDynamicObject(2538,1167.02000000,-1431.87000000,14.79000000,0.00000000,0.00000000,0.42000000); //
  2068.         CreateDynamicObject(2539,1166.03000000,-1431.89000000,14.79000000,0.00000000,0.00000000,0.70000000); //
  2069.         CreateDynamicObject(2540,1164.04000000,-1431.91000000,14.79000000,0.00000000,0.00000000,0.60000000); //
  2070.         CreateDynamicObject(2539,1165.03000000,-1431.91000000,14.79000000,0.00000000,0.00000000,1.02000000); //
  2071.         CreateDynamicObject(2538,1176.17000000,-1436.38000000,14.79000000,0.00000000,0.00000000,0.24000000); //
  2072.         CreateDynamicObject(2539,1174.22000000,-1436.37000000,14.79000000,0.00000000,0.00000000,-0.06000000); //
  2073.         CreateDynamicObject(2540,1173.22000000,-1436.36000000,14.79000000,0.00000000,0.00000000,0.18000000); //
  2074.         CreateDynamicObject(2539,1175.20000000,-1436.38000000,14.79000000,0.00000000,0.00000000,-2.06000000); //
  2075.         CreateDynamicObject(2540,1173.26000000,-1435.31000000,14.79000000,0.00000000,0.00000000,180.17000000); //
  2076.         CreateDynamicObject(1991,1175.74000000,-1439.58000000,14.79000000,0.00000000,0.00000000,179.57000000); //
  2077.         CreateDynamicObject(1996,1174.74000000,-1439.57000000,14.79000000,0.00000000,0.00000000,179.24000000); //
  2078.         CreateDynamicObject(1996,1176.17000000,-1435.37000000,14.79000000,0.00000000,0.00000000,179.24000000); //
  2079.         CreateDynamicObject(1991,1177.16000000,-1435.38000000,14.79000000,0.00000000,0.00000000,179.57000000); //
  2080.         CreateDynamicObject(2540,1169.44000000,-1436.35000000,14.79000000,0.00000000,0.00000000,0.18000000); //
  2081.         CreateDynamicObject(2539,1170.43000000,-1436.35000000,14.79000000,0.00000000,0.00000000,0.90000000); //
  2082.         CreateDynamicObject(2539,1171.34000000,-1436.33000000,14.79000000,0.00000000,0.00000000,0.58000000); //
  2083.         CreateDynamicObject(2538,1172.22000000,-1436.32000000,14.79000000,0.00000000,0.00000000,0.30000000); //
  2084.         CreateDynamicObject(2871,1163.40000000,-1440.68000000,14.79000000,0.00000000,0.00000000,360.41000000); //
  2085.         CreateDynamicObject(2536,1164.49000000,-1440.73000000,14.70000000,0.00000000,0.00000000,-1.20000000); //
  2086.         CreateDynamicObject(2536,1165.49000000,-1440.75000000,14.70000000,0.00000000,0.00000000,-0.42000000); //
  2087.         CreateDynamicObject(2536,1166.50000000,-1440.75000000,14.70000000,0.00000000,0.00000000,-0.06000000); //
  2088.         CreateDynamicObject(2543,1167.61000000,-1440.64000000,14.79000000,0.00000000,0.00000000,0.31000000); //
  2089.         CreateDynamicObject(2543,1168.62000000,-1440.64000000,14.79000000,0.00000000,0.00000000,0.30000000); //
  2090.         CreateDynamicObject(2543,1168.64000000,-1439.60000000,14.79000000,0.00000000,0.00000000,180.05000000); //
  2091.         CreateDynamicObject(2543,1167.67000000,-1439.61000000,14.79000000,0.00000000,0.00000000,180.35000000); //
  2092.         CreateDynamicObject(2871,1163.65000000,-1439.67000000,14.79000000,0.00000000,0.00000000,180.61000000); //
  2093.         CreateDynamicObject(2871,1164.68000000,-1439.67000000,14.79000000,0.00000000,0.00000000,179.77000000); //
  2094.         CreateDynamicObject(2871,1165.68000000,-1439.68000000,14.79000000,0.00000000,0.00000000,180.61000000); //
  2095.         CreateDynamicObject(2871,1166.68000000,-1439.66000000,14.79000000,0.00000000,0.00000000,180.61000000); //
  2096.         CreateDynamicObject(1990,1175.09000000,-1444.97000000,14.79000000,0.00000000,0.00000000,-2.46000000); //
  2097.         CreateDynamicObject(1990,1181.63000000,-1431.73000000,14.79000000,0.00000000,0.00000000,3.30000000); //
  2098.         CreateDynamicObject(1990,1174.07000000,-1444.94000000,14.79000000,0.00000000,0.00000000,0.48000000); //
  2099.         CreateDynamicObject(1990,1173.09000000,-1444.94000000,14.79000000,0.00000000,0.00000000,-1.20000000); //
  2100.         CreateDynamicObject(1990,1172.11000000,-1444.92000000,14.79000000,0.00000000,0.00000000,-1.14000000); //
  2101.         CreateDynamicObject(1990,1171.12000000,-1444.91000000,14.79000000,0.00000000,0.00000000,-0.72000000); //
  2102.         CreateDynamicObject(2530,1168.54000000,-1448.31000000,14.79000000,0.00000000,0.00000000,-178.98000000); //
  2103.         CreateDynamicObject(2530,1169.60000000,-1448.29000000,14.79000000,0.00000000,0.00000000,-178.98000000); //
  2104.         CreateDynamicObject(2530,1170.67000000,-1448.30000000,14.79000000,0.00000000,0.00000000,-178.98000000); //
  2105.         CreateDynamicObject(2530,1171.72000000,-1448.32000000,14.79000000,0.00000000,0.00000000,-181.50000000); //
  2106.         CreateDynamicObject(2530,1175.13000000,-1443.91000000,14.79000000,0.00000000,0.00000000,-181.50000000); //
  2107.         CreateDynamicObject(2012,1176.82000000,-1440.75000000,14.75000000,0.00000000,0.00000000,359.93000000); //
  2108.         CreateDynamicObject(1995,1177.71000000,-1439.63000000,14.79000000,0.00000000,0.00000000,0.00000000); //
  2109.         CreateDynamicObject(1994,1176.73000000,-1439.63000000,14.79000000,0.00000000,0.00000000,0.06000000); //
  2110.         CreateDynamicObject(1993,1177.83000000,-1444.15000000,14.79000000,0.00000000,0.00000000,179.46000000); //
  2111.         return 1;
  2112. }
  2113.  
  2114. stock firstPlayerSpawn(const playerid) {
  2115.         playerVariables[playerid][pTutorial] = 0;
  2116.         playerVariables[playerid][pFirstLogin] = 0;
  2117.  
  2118.         playerVariables[playerid][pInterior] = 0;
  2119.         playerVariables[playerid][pVirtualWorld] = 0;
  2120.  
  2121.         SetSpawnInfo(playerid, 0, playerVariables[playerid][pSkin], playerVariables[playerid][pPos][0], playerVariables[playerid][pPos][1], playerVariables[playerid][pPos][2], 0, 0, 0, 0, 0, 0, 0);
  2122.         SpawnPlayer(playerid);
  2123.  
  2124.         TextDrawHideForPlayer(playerid, textdrawVariables[3]);
  2125.         return 1;
  2126. }
  2127.  
  2128. public initiateTutorial(const playerid) {
  2129.         // Clear the dialog if it still exists from the quiz...
  2130.     hidePlayerDialog(playerid);
  2131.    
  2132.     // Clear the variable storing the timer handle if it still exists from the quiz...
  2133.     if(GetPVarType(playerid, "tutt") != 0)
  2134.         DeletePVar(playerid, "tutt");
  2135.    
  2136.         GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
  2137.  
  2138.         format(szMessage, sizeof(szMessage), "Welcome to "SERVER_NAME", %s.", szPlayerName);
  2139.  
  2140.     SendClientMessage(playerid, COLOR_TEAL, "----------------------------------------------------------------------------");
  2141.         SendClientMessage(playerid, COLOR_YELLOW, szMessage);
  2142.         SendClientMessage(playerid, COLOR_WHITE, "Please select your style of clothing from the selection below.");
  2143.  
  2144.         playerVariables[playerid][pTutorial] = 1;
  2145.  
  2146.         playerVariables[playerid][pVirtualWorld] = playerid+50;
  2147.  
  2148.         SetSpawnInfo(playerid, 0, 0, 220.4862, 1822.8994, 7.5387, 268.3423, 0, 0, 0, 0, 0, 0);
  2149.         SpawnPlayer(playerid);
  2150.         SetPlayerPos(playerid, 220.4862, 1822.8994, 7.5387);
  2151.         SetPlayerFacingAngle(playerid, 268.3423);
  2152.         TogglePlayerControllable(playerid, false);
  2153.  
  2154.         TextDrawShowForPlayer(playerid, textdrawVariables[2]);
  2155.         return 1;
  2156. }
  2157.  
  2158. stock GetDistanceBetweenPlayers(playerid, playerid2) {
  2159.         new
  2160.             Float:Floats[7];
  2161.  
  2162.         GetPlayerPos(playerid, Floats[0], Floats[1], Floats[2]);
  2163.         GetPlayerPos(playerid2, Floats[3], Floats[4], Floats[5]);
  2164.         Floats[6] = floatsqroot((Floats[3]-Floats[0])*(Floats[3]-Floats[0])+(Floats[4]-Floats[1])*(Floats[4]-Floats[1])+(Floats[5]-Floats[2])*(Floats[5]-Floats[2]));
  2165.  
  2166.         return floatround(Floats[6]);
  2167. }
  2168.  
  2169. stock GetDistancePlayerVeh(playerid, veh) {
  2170.  
  2171.         new
  2172.             Float:Floats[7];
  2173.  
  2174.         GetPlayerPos(playerid, Floats[0], Floats[1], Floats[2]);
  2175.         GetVehiclePos(veh, Floats[3], Floats[4], Floats[5]);
  2176.         Floats[6] = floatsqroot((Floats[3]-Floats[0])*(Floats[3]-Floats[0])+(Floats[4]-Floats[1])*(Floats[4]-Floats[1])+(Floats[5]-Floats[2])*(Floats[5]-Floats[2]));
  2177.  
  2178.         return floatround(Floats[6]);
  2179. }
  2180.  
  2181. stock IsPlayerInRangeOfVehicle(playerid, vehicleid, Float: radius) {
  2182.  
  2183.         new
  2184.                 Float:Floats[3];
  2185.  
  2186.         GetVehiclePos(vehicleid, Floats[0], Floats[1], Floats[2]);
  2187.         return IsPlayerInRangeOfPoint(playerid, radius, Floats[0], Floats[1], Floats[2]);
  2188. }
  2189.  
  2190. stock IsPlayerInRangeOfPlayer(playerid, playerid2, Float: radius) {
  2191.  
  2192.         new
  2193.                 Float:Floats[3];
  2194.  
  2195.         GetPlayerPos(playerid2, Floats[0], Floats[1], Floats[2]);
  2196.         return IsPlayerInRangeOfPoint(playerid, radius, Floats[0], Floats[1], Floats[2]);
  2197. }
  2198.  
  2199. stock IsVehicleInRangeOfPoint(vehicleid, Float: radius, Float:x, Float:y, Float:z) {
  2200.  
  2201.         new
  2202.                 Float:Floats[6];
  2203.  
  2204.         GetVehiclePos(vehicleid, Floats[0], Floats[1], Floats[2]);
  2205.         Floats[3] = (Floats[0] -x);
  2206.         Floats[4] = (Floats[1] -y);
  2207.         Floats[5] = (Floats[2] -z);
  2208.         if (((Floats[3] < radius) && (Floats[3] > -radius)) && ((Floats[4] < radius) && (Floats[4] > -radius)) && ((Floats[5] < radius) && (Floats[5] > -radius)))
  2209.                 return 1;
  2210.         return 0;
  2211. }
  2212.  
  2213. stock GetPlayerSpeed(playerid, get3d) // Need this for fixcar
  2214. {
  2215.         new
  2216.                 Float:Floats[3];
  2217.  
  2218.         if(IsPlayerInAnyVehicle(playerid))
  2219.             GetVehicleVelocity(GetPlayerVehicleID(playerid), Floats[0], Floats[1], Floats[2]);
  2220.         else
  2221.             GetPlayerVelocity(playerid, Floats[0], Floats[1], Floats[2]);
  2222.  
  2223.         return SpeedCheck(Floats[0], Floats[1], Floats[2], 100.0, get3d);
  2224. }
  2225.  
  2226. stock givePlayerWeapons(playerid) {
  2227.         new
  2228.             x;
  2229.  
  2230.         while(x < 13) {
  2231.                 GivePlayerWeapon(playerid, playerVariables[playerid][pWeapons][x], 99999);
  2232.                 x++;
  2233.         }
  2234.  
  2235.         return 1;
  2236. }
  2237.  
  2238. //      Credits to Westie for explode, from his strlib include.
  2239. stock explode(aExplode[][], const sSource[], const sDelimiter[] = " ", iVertices = sizeof aExplode, iLength = sizeof aExplode[])
  2240. {
  2241.         new
  2242.                 iNode,
  2243.                 iPointer,
  2244.                 iPrevious = -1,
  2245.                 iDelimiter = strlen(sDelimiter);
  2246.  
  2247.         while(iNode < iVertices)
  2248.         {
  2249.                 iPointer = strfind(sSource, sDelimiter, false, iPointer);
  2250.  
  2251.                 if(iPointer == -1)
  2252.                 {
  2253.                         strmid(aExplode[iNode], sSource, iPrevious, strlen(sSource), iLength);
  2254.                         break;
  2255.                 }
  2256.                 else
  2257.                 {
  2258.                         strmid(aExplode[iNode], sSource, iPrevious, iPointer, iLength);
  2259.                 }
  2260.  
  2261.                 iPrevious = (iPointer += iDelimiter);
  2262.                 ++iNode;
  2263.         }
  2264.  
  2265.         return iPrevious;
  2266. }
  2267.  
  2268. stock removePlayerWeapon(playerid, weapon) {
  2269.         playerVariables[playerid][pAnticheatExemption] = 6;
  2270.  
  2271.         switch(weapon) {
  2272.                 case 0, 1: {
  2273.                     if(playerVariables[playerid][pTabbed] >= 1) {
  2274.                         playerVariables[playerid][pOutstandingWeaponRemovalSlot] = 0;
  2275.                     }
  2276.                     else {
  2277.                             ResetPlayerWeapons(playerid);
  2278.                         playerVariables[playerid][pWeapons][0] = 0;
  2279.                                 givePlayerWeapons(playerid);
  2280.                         }
  2281.             }
  2282.             case 2, 3, 4, 5, 6, 7, 8, 9: {
  2283.                     if(playerVariables[playerid][pTabbed] >= 1) {
  2284.                         playerVariables[playerid][pOutstandingWeaponRemovalSlot] = 1;
  2285.                     }
  2286.                     else {
  2287.                             ResetPlayerWeapons(playerid);
  2288.                         playerVariables[playerid][pWeapons][1] = 0;
  2289.                                 givePlayerWeapons(playerid);
  2290.                         }
  2291.             }
  2292.             case 22, 23, 24: {
  2293.                     if(playerVariables[playerid][pTabbed] >= 1) {
  2294.                         playerVariables[playerid][pOutstandingWeaponRemovalSlot] = 2;
  2295.                     }
  2296.                     else {
  2297.                             ResetPlayerWeapons(playerid);
  2298.                         playerVariables[playerid][pWeapons][2] = 0;
  2299.                                 givePlayerWeapons(playerid);
  2300.                         }
  2301.             }
  2302.             case 25, 26, 27: {
  2303.                     if(playerVariables[playerid][pTabbed] >= 1) {
  2304.                         playerVariables[playerid][pOutstandingWeaponRemovalSlot] = 3;
  2305.                     }
  2306.                     else {
  2307.                             ResetPlayerWeapons(playerid);
  2308.                         playerVariables[playerid][pWeapons][3] = 0;
  2309.                                 givePlayerWeapons(playerid);
  2310.                         }
  2311.             }
  2312.             case 28, 29, 32: {
  2313.                     if(playerVariables[playerid][pTabbed] >= 1) {
  2314.                         playerVariables[playerid][pOutstandingWeaponRemovalSlot] = 4;
  2315.                     }
  2316.                     else {
  2317.                             ResetPlayerWeapons(playerid);
  2318.                         playerVariables[playerid][pWeapons][4] = 0;
  2319.                                 givePlayerWeapons(playerid);
  2320.                         }
  2321.             }
  2322.             case 30, 31: {
  2323.                     if(playerVariables[playerid][pTabbed] >= 1) {
  2324.                         playerVariables[playerid][pOutstandingWeaponRemovalSlot] = 5;
  2325.                     }
  2326.                     else {
  2327.                             ResetPlayerWeapons(playerid);
  2328.                         playerVariables[playerid][pWeapons][5] = 0;
  2329.                                 givePlayerWeapons(playerid);
  2330.                         }
  2331.             }
  2332.             case 33, 34: {
  2333.                     if(playerVariables[playerid][pTabbed] >= 1) {
  2334.                         playerVariables[playerid][pOutstandingWeaponRemovalSlot] = 6;
  2335.                     }
  2336.                     else {
  2337.                             ResetPlayerWeapons(playerid);
  2338.                         playerVariables[playerid][pWeapons][6] = 0;
  2339.                                 givePlayerWeapons(playerid);
  2340.                         }
  2341.             }
  2342.             case 35, 36, 37, 38: {
  2343.                     if(playerVariables[playerid][pTabbed] >= 1) {
  2344.                         playerVariables[playerid][pOutstandingWeaponRemovalSlot] = 7;
  2345.                     }
  2346.                     else {
  2347.                             ResetPlayerWeapons(playerid);
  2348.                         playerVariables[playerid][pWeapons][7] = 0;
  2349.                                 givePlayerWeapons(playerid);
  2350.                         }
  2351.             }
  2352.             case 16, 17, 18, 39: {
  2353.                     if(playerVariables[playerid][pTabbed] >= 1) {
  2354.                         playerVariables[playerid][pOutstandingWeaponRemovalSlot] = 8;
  2355.                     }
  2356.                     else {
  2357.                             ResetPlayerWeapons(playerid);
  2358.                         playerVariables[playerid][pWeapons][8] = 0;
  2359.                                 givePlayerWeapons(playerid);
  2360.                         }
  2361.             }
  2362.             case 41, 42, 43: {
  2363.                     if(playerVariables[playerid][pTabbed] >= 1) {
  2364.                         playerVariables[playerid][pOutstandingWeaponRemovalSlot] = 9;
  2365.                     }
  2366.                     else {
  2367.                             ResetPlayerWeapons(playerid);
  2368.                         playerVariables[playerid][pWeapons][9] = 0;
  2369.                                 givePlayerWeapons(playerid);
  2370.                         }
  2371.             }
  2372.             case 10, 11, 12, 13, 14, 15: {
  2373.                     if(playerVariables[playerid][pTabbed] >= 1) {
  2374.                         playerVariables[playerid][pOutstandingWeaponRemovalSlot] = 10;
  2375.                     }
  2376.                     else {
  2377.                             ResetPlayerWeapons(playerid);
  2378.                         playerVariables[playerid][pWeapons][10] = 0;
  2379.                                 givePlayerWeapons(playerid);
  2380.                         }
  2381.             }
  2382.             case 44, 45, 46: {
  2383.                     if(playerVariables[playerid][pTabbed] >= 1) {
  2384.                         playerVariables[playerid][pOutstandingWeaponRemovalSlot] = 11;
  2385.                     }
  2386.                     else {
  2387.                             ResetPlayerWeapons(playerid);
  2388.                         playerVariables[playerid][pWeapons][11] = 0;
  2389.                                 givePlayerWeapons(playerid);
  2390.                         }
  2391.             }
  2392.             case 40: {
  2393.                     if(playerVariables[playerid][pTabbed] >= 1) {
  2394.                         playerVariables[playerid][pOutstandingWeaponRemovalSlot] = 12;
  2395.                     }
  2396.                     else {
  2397.                             ResetPlayerWeapons(playerid);
  2398.                         playerVariables[playerid][pWeapons][12] = 0;
  2399.                                 givePlayerWeapons(playerid);
  2400.                         }
  2401.             }
  2402.         }
  2403.         return 1;
  2404. }
  2405.  
  2406. public antiCheat() {
  2407.         foreach(Player, i) {
  2408.             if(playerVariables[i][pStatus] >= 1) {
  2409.                     if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK && playerVariables[i][pJetpack] == 0 && playerVariables[i][pAdminLevel] < 1) {
  2410.                         scriptBan(i, "Hacking (Jetpack)");
  2411.                     }
  2412.                         if(playerVariables[i][pAdminLevel] < 3 && playerVariables[i][pEvent] == 0 && playerVariables[i][pAnticheatExemption] == 0) {
  2413.                                 if(GetPlayerWeapon(i) >= 1 && GetPlayerState(i) == 1) {
  2414.                                         if(playerVariables[i][pWeapons][0] != 1 && GetPlayerWeapon(i) == 1) hackerTrigger(i);
  2415.  
  2416.                                         if(playerVariables[i][pWeapons][1] != 2 && GetPlayerWeapon(i) == 2) hackerTrigger(i);
  2417.                                         if(playerVariables[i][pWeapons][1] != 3 && GetPlayerWeapon(i) == 3) hackerTrigger(i);
  2418.                                         if(playerVariables[i][pWeapons][1] != 4 && GetPlayerWeapon(i) == 4) hackerTrigger(i);
  2419.                                         if(playerVariables[i][pWeapons][1] != 5 && GetPlayerWeapon(i) == 5) hackerTrigger(i);
  2420.                                         if(playerVariables[i][pWeapons][1] != 6 && GetPlayerWeapon(i) == 6) hackerTrigger(i);
  2421.                                         if(playerVariables[i][pWeapons][1] != 7 && GetPlayerWeapon(i) == 7) hackerTrigger(i);
  2422.                                         if(playerVariables[i][pWeapons][1] != 8 && GetPlayerWeapon(i) == 8) hackerTrigger(i);
  2423.                                         if(playerVariables[i][pWeapons][1] != 9 && GetPlayerWeapon(i) == 9) hackerTrigger(i);
  2424.  
  2425.                                         if(playerVariables[i][pWeapons][2] != 22 && GetPlayerWeapon(i) == 22) hackerTrigger(i);
  2426.                                         if(playerVariables[i][pWeapons][2] != 23 && GetPlayerWeapon(i) == 23) hackerTrigger(i);
  2427.                                         if(playerVariables[i][pWeapons][2] != 24 && GetPlayerWeapon(i) == 24) hackerTrigger(i);
  2428.  
  2429.                                         if(playerVariables[i][pWeapons][3] != 25 && GetPlayerWeapon(i) == 25) hackerTrigger(i);
  2430.                                         if(playerVariables[i][pWeapons][3] != 26 && GetPlayerWeapon(i) == 26) hackerTrigger(i);
  2431.                                         if(playerVariables[i][pWeapons][3] != 27 && GetPlayerWeapon(i) == 27) hackerTrigger(i);
  2432.  
  2433.                                         if(playerVariables[i][pWeapons][4] != 28 && GetPlayerWeapon(i) == 28) hackerTrigger(i);
  2434.                                         if(playerVariables[i][pWeapons][4] != 29 && GetPlayerWeapon(i) == 29) hackerTrigger(i);
  2435.                                         if(playerVariables[i][pWeapons][4] != 32 && GetPlayerWeapon(i) == 32) hackerTrigger(i);
  2436.  
  2437.                                         if(playerVariables[i][pWeapons][5] != 30 && GetPlayerWeapon(i) == 30) hackerTrigger(i);
  2438.                                         if(playerVariables[i][pWeapons][5] != 31 && GetPlayerWeapon(i) == 31) hackerTrigger(i);
  2439.  
  2440.                                         if(playerVariables[i][pWeapons][6] != 33 && GetPlayerWeapon(i) == 33) hackerTrigger(i);
  2441.                                         if(playerVariables[i][pWeapons][6] != 34 && GetPlayerWeapon(i) == 34) hackerTrigger(i);
  2442.  
  2443.                                         if(playerVariables[i][pWeapons][7] != 35 && GetPlayerWeapon(i) == 35) hackerTrigger(i);
  2444.                                         if(playerVariables[i][pWeapons][7] != 36 && GetPlayerWeapon(i) == 36) hackerTrigger(i);
  2445.                                         if(playerVariables[i][pWeapons][7] != 37 && GetPlayerWeapon(i) == 37) hackerTrigger(i);
  2446.                                         if(playerVariables[i][pWeapons][7] != 38 && GetPlayerWeapon(i) == 38) hackerTrigger(i);
  2447.  
  2448.                                         if(playerVariables[i][pWeapons][8] != 16 && GetPlayerWeapon(i) == 16) hackerTrigger(i);
  2449.                                         if(playerVariables[i][pWeapons][8] != 17 && GetPlayerWeapon(i) == 17) hackerTrigger(i);
  2450.                                         if(playerVariables[i][pWeapons][8] != 18 && GetPlayerWeapon(i) == 18) hackerTrigger(i);
  2451.                                         if(playerVariables[i][pWeapons][8] != 39 && GetPlayerWeapon(i) == 39) hackerTrigger(i);
  2452.  
  2453.                                         if(playerVariables[i][pWeapons][9] != 41 && GetPlayerWeapon(i) == 41) hackerTrigger(i);
  2454.                                         if(playerVariables[i][pWeapons][9] != 42 && GetPlayerWeapon(i) == 42) hackerTrigger(i);
  2455.                                         if(playerVariables[i][pWeapons][9] != 43 && GetPlayerWeapon(i) == 43) hackerTrigger(i);
  2456.  
  2457.                                         if(playerVariables[i][pWeapons][10] != 10 && GetPlayerWeapon(i) == 10) hackerTrigger(i);
  2458.                                         if(playerVariables[i][pWeapons][10] != 11 && GetPlayerWeapon(i) == 11) hackerTrigger(i);
  2459.                                         if(playerVariables[i][pWeapons][10] != 12 && GetPlayerWeapon(i) == 12) hackerTrigger(i);
  2460.                                         if(playerVariables[i][pWeapons][10] != 13 && GetPlayerWeapon(i) == 13) hackerTrigger(i);
  2461.                                         if(playerVariables[i][pWeapons][10] != 14 && GetPlayerWeapon(i) == 14) hackerTrigger(i);
  2462.                                         if(playerVariables[i][pWeapons][10] != 15 && GetPlayerWeapon(i) == 15) hackerTrigger(i);
  2463.  
  2464.                                         if(playerVariables[i][pWeapons][11] != 44 && GetPlayerWeapon(i) == 44) hackerTrigger(i);
  2465.                                         if(playerVariables[i][pWeapons][11] != 45 && GetPlayerWeapon(i) == 45) hackerTrigger(i);
  2466.                                         if(playerVariables[i][pWeapons][11] != 46 && GetPlayerWeapon(i) == 46) hackerTrigger(i);
  2467.  
  2468.                                         if(playerVariables[i][pWeapons][12] != 40 && GetPlayerWeapon(i) == 40) hackerTrigger(i);
  2469.                                 }
  2470.                                 else if(eventVariables[eEventStat] != 0) { // Event anticheat - check 5 event weapon slots, checks if the weapon is valid (in case of a bug).
  2471.  
  2472.                                         new
  2473.                                                 wep = GetPlayerWeapon(i); // so we don't call getplayerweapon a million times!1
  2474.  
  2475.                                         if(eventVariables[eEventWeapons][0] != wep && eventVariables[eEventWeapons][1] != wep && eventVariables[eEventWeapons][2] != wep && eventVariables[eEventWeapons][3] != wep && eventVariables[eEventWeapons][4] != wep) { // Valid weapon check (in case someone has admin weapons)
  2476.                                                  if(playerVariables[i][pWeapons][GetWeaponSlot(wep)] != wep) hackerTrigger(i);
  2477.                                         }
  2478.                                 }
  2479.                         }
  2480.                 }
  2481.         }
  2482.  
  2483.         return 1;
  2484. }
  2485.  
  2486. stock hackerTrigger(playerid) {
  2487.         if(playerVariables[playerid][pTabbed] == 0) {
  2488.             playerVariables[playerid][pHackWarnings]++;
  2489.             playerVariables[playerid][pHackWarnTime] = 1;
  2490.  
  2491.             printf("Hack Warning! Weapon %d (playerid: %d)", GetPlayerWeapon(playerid), playerid);
  2492.  
  2493.             if(playerVariables[playerid][pHackWarnings] >= 3) {
  2494.  
  2495.                         new
  2496.                                 wep = GetPlayerWeapon(playerid),
  2497.                         reason[94];
  2498.  
  2499.                         GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
  2500.  
  2501.                         format(reason, sizeof(reason), "Warning: {FFFFFF}%s may possibly be weapon hacking (%s).", szPlayerName, WeaponNames[wep]);
  2502.                         submitToAdmins(reason, COLOR_HOTORANGE);
  2503.  
  2504.                     if(playerVariables[playerid][pHackWarnings] >= MAX_WEAPON_HACK_WARNINGS) {
  2505.                         format(reason, sizeof(reason), "Weapon Hacking (%s).", WeaponNames[wep]);
  2506.                         scriptBan(playerid, reason);
  2507.                     }
  2508.                 }
  2509.     }
  2510.         return 1;
  2511. }
  2512.  
  2513. stock scriptBan(playerid, reason[]) {
  2514.         new
  2515.                 playerIP[32],
  2516.             aString[240];
  2517.  
  2518.         GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
  2519.         GetPlayerIp(playerid, playerIP, sizeof(playerIP));
  2520.  
  2521.         playerVariables[playerid][pBanned] = 1;
  2522.  
  2523.         format(aString, sizeof(aString), "Ban: %s has been banned, reason: %s", szPlayerName, reason);
  2524.         SendClientMessageToAll(COLOR_LIGHTRED, aString);
  2525.  
  2526.     mysql_real_escape_string(aString, aString);
  2527.     adminLog(aString);
  2528.  
  2529.         Kick(playerid);
  2530.  
  2531.         format(aString, sizeof(aString), "INSERT INTO bans (playerNameBanned, playerBannedBy, playerBanReason, IPBanned) VALUES('%s', 'System', '%s', '%s')", szPlayerName, reason, playerIP);
  2532.         mysql_query(aString);
  2533.         return 1;
  2534. }
  2535.  
  2536. stock IPBan(ip[], reason[], name[] = "Nobody") {
  2537.         new
  2538.             cleanReason[64],
  2539.             querySz[150]; // To be on the safe side.
  2540.  
  2541.         mysql_real_escape_string(reason, cleanReason);
  2542.         format(querySz, sizeof(querySz), "INSERT INTO Bans (playerNameBanned, playerBanReason, IPBanned) VALUES('%s', '%s', '%s')", name, reason, ip);
  2543.         mysql_query(querySz);
  2544.         return 1;
  2545. }
  2546.  
  2547. public OnQueryError(errorid, error[], resultid, extraid, callback[], query[], connectionHandle) {
  2548.         return printf("errorid: %d | error: %s | resultid: %d | extraid: %d | callback: %s | query: %s", errorid, error, resultid, extraid, callback, query);
  2549. }
  2550.  
  2551. public OnQueryFinish(query[], resultid, extraid, connectionHandle) {
  2552.         switch(resultid) {
  2553.             case THREAD_UNBAN_IP: {
  2554.                         SendClientMessage(extraid, COLOR_WHITE, "You have successfully unbanned the IP.");
  2555.                 }
  2556.                 case THREAD_CHANGE_BUSINESS_TYPE_ITEMS: {
  2557.                         createRelevantItems(extraid);
  2558.                 }
  2559.             case THREAD_TIMESTAMP_CONNECT: {
  2560.                         mysql_store_result();
  2561.                        
  2562.                         if(mysql_num_rows() == 0)
  2563.                             return SendClientMessage(extraid, COLOR_GENANNOUNCE, "SERVER:"EMBED_WHITE" Welcome to the server!");
  2564.                             
  2565.             GetPlayerName(extraid, szPlayerName, MAX_PLAYER_NAME);
  2566.  
  2567.                         mysql_fetch_row_format(result);
  2568.                         format(szMessage, sizeof(szMessage), "SERVER:"EMBED_WHITE" Welcome back %s, you last visited us on %s.", szPlayerName, result);
  2569.                         SendClientMessage(extraid, COLOR_GENANNOUNCE, szMessage);
  2570.                        
  2571.                     if(playerVariables[extraid][pGroup] >= 1) {
  2572.                             format(szMessage, sizeof(szMessage), "(Group) "EMBED_WHITE"%s from your group has just logged in.", szPlayerName);
  2573.                             SendToGroup(playerVariables[extraid][pGroup], COLOR_GENANNOUNCE, szMessage);
  2574.  
  2575.                         format(szMessage, sizeof(szMessage), "(Group) MOTD: "EMBED_WHITE"%s", groupVariables[playerVariables[extraid][pGroup]][gGroupMOTD]);
  2576.                         SendClientMessage(extraid, COLOR_GENANNOUNCE, szMessage);
  2577.                 }
  2578.                 
  2579.                 mysql_free_result();
  2580.                 }
  2581.                 case THREAD_ADMIN_SECURITY: {
  2582.                         mysql_store_result();
  2583.                        
  2584.                         if(!mysql_num_rows()) {
  2585.                             if(GetPVarInt(extraid, "pAdminPIN") == 0)
  2586.                                         return 1;
  2587.                                        
  2588.                             SetPVarInt(extraid, "pAdminFrozen", 1);
  2589.                             
  2590.                             ShowPlayerDialog(extraid, DIALOG_ADMIN_PIN, DIALOG_STYLE_INPUT, "SERVER: Admin authentication verification", "The system has recognised that you have connected with an IP that you've never used before.\n\nPlease confirm your admin PIN to continue:", "OK", "Cancel");
  2591.                         } else mysql_free_result();
  2592.                 }
  2593.                 /*case THREAD_LOAD_PLAYER_VEHICLES: {
  2594.                         mysql_store_result();
  2595.                        
  2596.                         if(mysql_num_rows() == 0)
  2597.                             return 1;
  2598.  
  2599.                         new
  2600.                             iModel,
  2601.                             Float: fPos[3],
  2602.                             Float: fAngle,
  2603.                             iColours[2],
  2604.                             iPaintjob,
  2605.                             iComponents[14],
  2606.                             iVehicleID;
  2607.  
  2608.                         while(mysql_retrieve_row()) {
  2609.                             mysql_get_field("pvModel", result);
  2610.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Model", iVehicleID);
  2611.                             SetPVarInt(extraid, szSmallString, strval(result));
  2612.                             iModel = strval(result);
  2613.                             
  2614.                             mysql_get_field("pvPosX", result);
  2615.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_PosX", iVehicleID);
  2616.                             SetPVarFloat(extraid, szSmallString, floatstr(result));
  2617.                             fPos[0] = floatstr(result);
  2618.                             
  2619.                             mysql_get_field("pvPosY", result);
  2620.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_PosY", iVehicleID);
  2621.                             SetPVarFloat(extraid, szSmallString, floatstr(result));
  2622.                             fPos[1] = floatstr(result);
  2623.                             
  2624.                             mysql_get_field("pvPosZ", result);
  2625.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_PosZ", iVehicleID);
  2626.                             SetPVarFloat(extraid, szSmallString, floatstr(result));
  2627.                             fPos[2] = floatstr(result);
  2628.                             
  2629.                             mysql_get_field("pvPosZAngle", result);
  2630.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_PosZAngle", iVehicleID);
  2631.                             SetPVarFloat(extraid, szSmallString, floatstr(result));
  2632.                             fAngle = floatstr(result);
  2633.                             
  2634.                             mysql_get_field("pvColour1", result);
  2635.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Colour1", iVehicleID);
  2636.                             SetPVarInt(extraid, szSmallString, strval(result));
  2637.                             iColours[0] = strval(result);
  2638.  
  2639.                             mysql_get_field("pvColour1", result);
  2640.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Colour2", iVehicleID);
  2641.                             SetPVarInt(extraid, szSmallString, strval(result));
  2642.                             iColours[1] = strval(result);
  2643.                             
  2644.                             mysql_get_field("pvPaintjob", result);
  2645.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Paintjob", iVehicleID);
  2646.                             SetPVarInt(extraid, szSmallString, strval(result));
  2647.                             iPaintjob = strval(result);
  2648.  
  2649.                             mysql_get_field("pvStaticPrice", result);
  2650.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_StaticPrice", iVehicleID);
  2651.                             SetPVarInt(extraid, szSmallString, strval(result));
  2652.  
  2653.                             mysql_get_field("pvComponent0", result);
  2654.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component0", iVehicleID);
  2655.                             SetPVarInt(extraid, szSmallString, strval(result));
  2656.                             iComponents[0] = strval(result);
  2657.  
  2658.                             mysql_get_field("pvComponent1", result);
  2659.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component1", iVehicleID);
  2660.                             SetPVarInt(extraid, szSmallString, strval(result));
  2661.                             iComponents[1] = strval(result);
  2662.  
  2663.                                 mysql_get_field("pvComponent2", result);
  2664.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component2", iVehicleID);
  2665.                             SetPVarInt(extraid, szSmallString, strval(result));
  2666.                             iComponents[2] = strval(result);
  2667.  
  2668.                             mysql_get_field("pvComponent3", result);
  2669.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component3", iVehicleID);
  2670.                             SetPVarInt(extraid, szSmallString, strval(result));
  2671.                             iComponents[3] = strval(result);
  2672.  
  2673.                                 mysql_get_field("pvComponent4", result);
  2674.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component4", iVehicleID);
  2675.                             SetPVarInt(extraid, szSmallString, strval(result));
  2676.                             iComponents[4] = strval(result);
  2677.  
  2678.                             mysql_get_field("pvComponent5", result);
  2679.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component5", iVehicleID);
  2680.                             SetPVarInt(extraid, szSmallString, strval(result));
  2681.                             iComponents[5] = strval(result);
  2682.  
  2683.                                 mysql_get_field("pvComponent6", result);
  2684.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component6", iVehicleID);
  2685.                             SetPVarInt(extraid, szSmallString, strval(result));
  2686.                             iComponents[6] = strval(result);
  2687.  
  2688.                             mysql_get_field("pvComponent7", result);
  2689.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component7", iVehicleID);
  2690.                             SetPVarInt(extraid, szSmallString, strval(result));
  2691.                             iComponents[7] = strval(result);
  2692.  
  2693.                                 mysql_get_field("pvComponent8", result);
  2694.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component8", iVehicleID);
  2695.                             SetPVarInt(extraid, szSmallString, strval(result));
  2696.                             iComponents[8] = strval(result);
  2697.  
  2698.                             mysql_get_field("pvComponent9", result);
  2699.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component9", iVehicleID);
  2700.                             SetPVarInt(extraid, szSmallString, strval(result));
  2701.                             iComponents[9] = strval(result);
  2702.  
  2703.                                 mysql_get_field("pvComponent10", result);
  2704.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component10", iVehicleID);
  2705.                             SetPVarInt(extraid, szSmallString, strval(result));
  2706.                             iComponents[10] = strval(result);
  2707.  
  2708.                             mysql_get_field("pvComponent11", result);
  2709.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component11", iVehicleID);
  2710.                             SetPVarInt(extraid, szSmallString, strval(result));
  2711.                             iComponents[11] = strval(result);
  2712.  
  2713.                                 mysql_get_field("pvComponent12", result);
  2714.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component12", iVehicleID);
  2715.                             SetPVarInt(extraid, szSmallString, strval(result));
  2716.                             iComponents[12] = strval(result);
  2717.  
  2718.                             mysql_get_field("pvComponent13", result);
  2719.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_Component13", iVehicleID);
  2720.                             SetPVarInt(extraid, szSmallString, strval(result));
  2721.                             iComponents[13] = strval(result);
  2722.                             
  2723.                             format(szSmallString, sizeof(szSmallString), "playerVehicle%d_RealID", iVehicleID);
  2724.                             SetPVarInt(extraid, szSmallString, CreateVehicle(iModel, fPos[0], fPos[1], fPos[2], fAngle, iColours[0], iColours[1], 0));
  2725.  
  2726.                                 for(new i = 0; i <= 13; i++)
  2727.                                         AddVehicleComponent(GetPVarInt(extraid, szSmallString), iComponents[i]);
  2728.  
  2729.                                 ChangeVehiclePaintjob(GetPVarInt(extraid, szSmallString), iPaintjob);
  2730.                                
  2731.                 systemVariables[vehicleCounts][1]++;
  2732.                             iVehicleID++;
  2733.                         }
  2734.                        
  2735.                         mysql_free_result();
  2736.                 }*/
  2737.                 case THREAD_INITIATE_BUSINESS_ITEMS: {
  2738.             mysql_store_result();
  2739.  
  2740.             new
  2741.                                 x;
  2742.            
  2743.                         for(x = 0; x < MAX_BUSINESS_ITEMS; x++) {
  2744.                                 businessItems[x][bItemBusiness] = 0;
  2745.                                 businessItems[x][bItemType] = 0;
  2746.                                 businessItems[x][bItemPrice] = 0;
  2747.                                 format(businessItems[x][bItemName], 32, "");
  2748.                         }
  2749.                        
  2750.                         x = 0;
  2751.  
  2752.                         while(mysql_retrieve_row()) {
  2753.                             x++;
  2754.                             
  2755.                             mysql_get_field("itemBusinessId", result);
  2756.                             businessItems[x][bItemBusiness] = strval(result);
  2757.  
  2758.                             mysql_get_field("itemTypeId", result);
  2759.                             businessItems[x][bItemType] = strval(result);
  2760.                             
  2761.                             mysql_get_field("itemName", businessItems[x][bItemName]);
  2762.                             
  2763.                             mysql_get_field("itemPrice", result);
  2764.                             businessItems[x][bItemPrice] = strval(result);
  2765.                         }
  2766.            
  2767.             mysql_free_result();
  2768.                 }
  2769.                 case THREAD_LAST_CONNECTIONS: {
  2770.                         mysql_store_result();
  2771.                        
  2772.                         if(mysql_num_rows() < 1)
  2773.                             return SendClientMessage(extraid, COLOR_GREY, "You haven't connected more than once yet.");
  2774.  
  2775.             format(szLargeString, sizeof(szLargeString), "Last ~5 of your connections:\n");
  2776.                         while(mysql_fetch_row_format(result, " ")) {
  2777.                             format(szLargeString, sizeof(szLargeString), "%s\n%s", szLargeString, result);
  2778.                         }
  2779.                        
  2780.                         ShowPlayerDialog(extraid, 0, DIALOG_STYLE_MSGBOX, "SERVER: Connection log", szLargeString, "OK", "");
  2781.                        
  2782.                         mysql_free_result();
  2783.                 }
  2784.             case THREAD_CHECK_PLAYER_NAMES: {
  2785.                 mysql_store_result();
  2786.  
  2787.                 if(mysql_num_rows() == 0)
  2788.                     return SendClientMessage(extraid, COLOR_GREY, "There are no recorded name changes for this player.");
  2789.  
  2790.                         new
  2791.                             iNCID,
  2792.                             szOldName[MAX_PLAYER_NAME],
  2793.                             szTime[20],
  2794.                             szNewName[MAX_PLAYER_NAME];
  2795.  
  2796.                         format(szLargeString, sizeof(szLargeString), "Name changes:\n");
  2797.             while(mysql_fetch_row_format(result)) {
  2798.                 sscanf(result, "p<|>ds[24]s[24]s[20]", iNCID, szOldName, szNewName, szTime);
  2799.                 format(szLargeString, sizeof(szLargeString), "%s\n- (%d) Name: %s (changed from %s, %s)", szLargeString, iNCID, szNewName, szOldName, szTime);
  2800.             }
  2801.  
  2802.             ShowPlayerDialog(extraid, 0, DIALOG_STYLE_MSGBOX, "SERVER: Name changes", szLargeString, "OK", "");
  2803.  
  2804.                         mysql_free_result();
  2805.             }
  2806.             case THREAD_LOAD_ATMS: {
  2807.                         mysql_store_result();
  2808.                        
  2809.                         new
  2810.                             x;
  2811.                        
  2812.                         while(mysql_retrieve_row()) {
  2813.                             mysql_get_field("atmId", result);
  2814.                             x = strval(result);
  2815.                             
  2816.                                 mysql_get_field("atmPosX", result);
  2817.                                 atmVariables[x][fATMPos][0] = floatstr(result);
  2818.                                
  2819.                                 mysql_get_field("atmPosY", result);
  2820.                                 atmVariables[x][fATMPos][1] = floatstr(result);
  2821.                                
  2822.                                 mysql_get_field("atmPosZ", result);
  2823.                                 atmVariables[x][fATMPos][2] = floatstr(result) - 0.7;
  2824.                                
  2825.                                 mysql_get_field("atmPosRotX", result);
  2826.                                 atmVariables[x][fATMPosRot][0] = floatstr(result);
  2827.  
  2828.                                 mysql_get_field("atmPosRotY", result);
  2829.                                 atmVariables[x][fATMPosRot][1] = floatstr(result);
  2830.  
  2831.                                 mysql_get_field("atmPosRotZ", result);
  2832.                                 atmVariables[x][fATMPosRot][2] = floatstr(result);
  2833.                                
  2834.                                 atmVariables[x][rObjectId] = CreateDynamicObject(2618, atmVariables[x][fATMPos][0], atmVariables[x][fATMPos][1], atmVariables[x][fATMPos][2], atmVariables[x][fATMPosRot][0], atmVariables[x][fATMPosRot][1], atmVariables[x][fATMPosRot][2], -1, -1, -1, 500.0);
  2835.                                 atmVariables[x][rTextLabel] = CreateDynamic3DTextLabel("ATM\n\nWithdraw your cash here!\n\nPress ~k~~PED_DUCK~ to use this ATM.", COLOR_YELLOW, atmVariables[x][fATMPos][0], atmVariables[x][fATMPos][1], atmVariables[x][fATMPos][2], 50.0);
  2836.                                 //CreateDynamicObject(2618, x, y, z, rx, ry, rz, -1, -1, -1, 500.0);
  2837.                         }
  2838.                        
  2839.                         mysql_free_result();
  2840.                 }
  2841.             case THREAD_CHANGE_SPAWN: {
  2842.                         SendClientMessage(extraid, COLOR_WHITE, "You have successfully changed the newbie spawn and newbie skin.");
  2843.                         GetPlayerName(extraid, szPlayerName, MAX_PLAYER_NAME);
  2844.                         format(szMessage, sizeof(szMessage), "AdmWarn: %s has changed the newbie spawn & skin.", szPlayerName);
  2845.                         submitToAdmins(szMessage, COLOR_HOTORANGE);
  2846.                 }
  2847.             case THREAD_CHECK_ACCOUNT_USERNAME: {
  2848.                 mysql_store_result();
  2849.                         if(mysql_num_rows() == 0) {
  2850.  
  2851.                             if(!IsPlayerConnected(extraid))
  2852.                                         return mysql_free_result(); // Incase they're disconnected since... Sometimes queries F*"!%$" up.
  2853.  
  2854.                             new
  2855.                                         charCounts[5];
  2856.  
  2857.                                 GetPlayerName(extraid, szPlayerName, MAX_PLAYER_NAME);
  2858.  
  2859.                                 for(new n; n < MAX_PLAYER_NAME; n++) {
  2860.                                         switch(szPlayerName[n]) {
  2861.                                                 case '[', ']', '.', '$', '(', ')', '@', '=': charCounts[1]++;
  2862.                                                 case '_': charCounts[0]++;
  2863.                                                 case '0' .. '9': charCounts[2]++;
  2864.                                                 case 'a' .. 'z': charCounts[3]++;
  2865.                                                 case 'A' .. 'Z': charCounts[4]++;
  2866.                                         }
  2867.                                 }
  2868.                                 if(charCounts[0] == 0 || charCounts[0] >= 3) {
  2869.                                         SendClientMessage(extraid, COLOR_GREY, "Your name is not valid. {FFFFFF}Please use an underscore and a first/last name (i.e. Mark_Edwards).");
  2870.                                         invalidNameChange(extraid);
  2871.                                 }
  2872.                                 else if(charCounts[1] >= 1) {
  2873.                                         SendClientMessage(extraid, COLOR_GREY, "Your name is not valid, as it contains symbols. {FFFFFF}Please use a roleplay name.");
  2874.                                         invalidNameChange(extraid);
  2875.                                 }
  2876.                                 else if(charCounts[2] >= 1) {
  2877.                                         SendClientMessage(extraid, COLOR_GREY, "Your name is not valid, as it contains numbers. {FFFFFF}Please use a roleplay name.");
  2878.                                         invalidNameChange(extraid);
  2879.                                 }
  2880.                                 else if(charCounts[3] == strlen(szPlayerName) - 1) {
  2881.                                         SendClientMessage(extraid, COLOR_GREY, "Your name is not valid, as it is lower case. {FFFFFF}Please use a roleplay name (i.e. Dave_Meniketti).");
  2882.                                         invalidNameChange(extraid);
  2883.                                 }
  2884.                                 else if(charCounts[4] == strlen(szPlayerName) - 1) {
  2885.                                         SendClientMessage(extraid, COLOR_GREY, "Your name is not valid, as it is upper case. {FFFFFF}Please use a roleplay name (i.e. Dave_Jones).");
  2886.                                         invalidNameChange(extraid);
  2887.                                 }
  2888.                                 else {
  2889.                                     SendClientMessage(extraid, COLOR_GENANNOUNCE, "SERVER: {FFFFFF}Welcome to "SERVER_NAME".");
  2890.                                     SendClientMessage(extraid, COLOR_GENANNOUNCE, "SERVER: {FFFFFF}You aren't registered yet. Please enter your desired password in the dialog box to register.");
  2891.  
  2892.                                     ShowPlayerDialog(extraid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "SERVER: Registration", "Welcome to the "SERVER_NAME" Server.\n\nPlease enter your desired password below!", "Register", "Cancel");
  2893.                                 }
  2894.                         }
  2895.                         else {
  2896.                             if(!IsPlayerConnected(extraid))
  2897.                                         return mysql_free_result();
  2898.  
  2899.                                 SendClientMessage(extraid, COLOR_GENANNOUNCE, "SERVER: {FFFFFF}Welcome to "SERVER_NAME".");
  2900.                                 SendClientMessage(extraid, COLOR_GENANNOUNCE, "SERVER: {FFFFFF}You already have a registered account, please enter your password into the dialog box.");
  2901.  
  2902.                                 ShowPlayerDialog(extraid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "SERVER: Login", "Welcome to the "SERVER_NAME" Server.\n\nPlease enter your password below!", "Login", "Cancel");
  2903.                         }
  2904.  
  2905.                         mysql_free_result();
  2906.                 }
  2907.                 case THREAD_MOBILE_HISTORY: {
  2908.                         mysql_store_result();
  2909.  
  2910.                         if(mysql_num_rows() > 0) {
  2911.                             new
  2912.                                 iLoop;
  2913.  
  2914.                                 format(szMessage, sizeof(szMessage), "");
  2915.                                 format(szLargeString, sizeof(szLargeString), "");
  2916.           while(mysql_retrieve_row()) {
  2917.                                 if(iLoop == 0)
  2918.                                                 format(szLargeString, sizeof(szLargeString), "\n");
  2919.  
  2920.                                         mysql_get_field("phoneAction", szMessage);
  2921.                                         format(szLargeString, sizeof(szLargeString), "%s%s\n", szLargeString, szMessage);
  2922.                                 iLoop++;
  2923.                             }
  2924.  
  2925.                             mysql_free_result();
  2926.                             return ShowPlayerDialog(extraid, DIALOG_MOBILE_HISTORY, DIALOG_STYLE_LIST, "Mobile Phone: History", szLargeString, "Return", "");
  2927.                         } else {
  2928.                             return ShowPlayerDialog(extraid, DIALOG_MOBILE_HISTORY, DIALOG_STYLE_LIST, "Mobile Phone: History", "There is no recorded history of your mobile phone usage.", "Return", "");
  2929.                         }
  2930.                 }
  2931.                 case THREAD_MOBILE_LIST_CONTACTS: {
  2932.                         mysql_store_result();
  2933.  
  2934.                         if(mysql_num_rows() > 0) {
  2935.                             new
  2936.                                 iLoop,
  2937.                                 szGet[3][64],
  2938.                                 iNum[2],
  2939.                                 szCat[512];
  2940.  
  2941.                             while(mysql_retrieve_row()) {
  2942.                                 if(iLoop == 0)
  2943.                                     format(szCat, sizeof(szCat), "\n{FFFFFF}");
  2944.  
  2945.                                         mysql_get_field("contactName", szGet[0]);
  2946.                                         mysql_get_field("contactAdded", szGet[1]);
  2947.                                         mysql_get_field("contactAddee", szGet[2]);
  2948.  
  2949.                                         iNum[0] = strval(szGet[1]);
  2950.                                         iNum[1] = strval(szGet[2]);
  2951.  
  2952.                                         format(szCat, sizeof(szCat), "%s%s "EMBED_GREY"(#%d){FFFFFF}\n", szCat, szGet[0], iNum[0]);
  2953.  
  2954.                                 iLoop++;
  2955.                             }
  2956.  
  2957.                                 mysql_free_result();
  2958.                                 return ShowPlayerDialog(extraid, DIALOG_MOBILE_HISTORY, DIALOG_STYLE_LIST, "Mobile Phone: List Contacts", szCat, "Return", "");
  2959.                         } else {
  2960.                             return ShowPlayerDialog(extraid, DIALOG_MOBILE_HISTORY, DIALOG_STYLE_LIST, "Mobile Phone: List Contacts", "You don't have any contacts.", "Return", "");
  2961.                         }
  2962.                 }
  2963.                 case THREAD_CHECK_PLATES: {
  2964.                     mysql_store_result();
  2965.  
  2966.                     mysql_retrieve_row();
  2967.  
  2968.                     if(mysql_num_rows() > 0) {
  2969.                         mysql_free_result();
  2970.                             return ShowPlayerDialog(extraid, DIALOG_LICENSE_PLATE, DIALOG_STYLE_INPUT, "License plate registration", "{FFFFFF}ERROR:"EMBED_GREY" The plate specified already exists. Pick another one.{FFFFFF}\n\nPlease enter a license plate for your vehicle. \n\nThere is only two conditions:\n- The license plate must be unique\n- The license plate can be alphanumerical, but it must consist of only 7 characters and include one space.", "Select", "");
  2971.                     }
  2972.  
  2973.                     GetPVarString(extraid, "plate", playerVariables[extraid][pCarLicensePlate], 32);
  2974.                     DeletePVar(extraid, "plate");
  2975.  
  2976.                     SendClientMessage(extraid, COLOR_WHITE, "The license plate you selected has been applied to your vehicle.");
  2977.  
  2978.                     SetVehicleNumberPlate(playerVariables[extraid][pCarID], playerVariables[extraid][pCarLicensePlate]);
  2979.                     SetVehicleVirtualWorld(playerVariables[extraid][pCarID], GetVehicleVirtualWorld(playerVariables[extraid][pCarID])+1);
  2980.                     SetVehicleVirtualWorld(playerVariables[extraid][pCarID], GetVehicleVirtualWorld(playerVariables[extraid][pCarID])-1);
  2981.                 }
  2982.                 case THREAD_CHECK_CREDENTIALS: {
  2983.                     mysql_store_result();
  2984.  
  2985.                         if(!IsPlayerConnected(extraid)) return mysql_free_result(); // Incase they're disconnected since... Sometimes queries F*"!%$" up.
  2986.  
  2987.                         if(mysql_num_rows() == 0) { // INCORRECT PASSWORD!1
  2988.  
  2989.                                 SetPVarInt(extraid, "LA", GetPVarInt(extraid, "LA") + 1);
  2990.  
  2991.                                 new
  2992.                                         playerIP[32];
  2993.  
  2994.                                 if(GetPVarInt(extraid, "LA") > MAX_LOGIN_ATTEMPTS) {
  2995.                                         SendClientMessage(extraid, COLOR_RED, "You have used all available login attempts.");
  2996.                                         GetPlayerIp(extraid, playerIP, sizeof(playerIP));
  2997.  
  2998.                                         GetPlayerName(extraid, szPlayerName, MAX_PLAYER_NAME);
  2999.                                         format(szMessage, sizeof(szMessage), "AdmWarn: {FFFFFF}IP %s has been banned (%d failed 3 attempts on account %s).", playerIP, MAX_LOGIN_ATTEMPTS, szPlayerName);
  3000.                                         submitToAdmins(szMessage, COLOR_HOTORANGE);
  3001.  
  3002.                                         IPBan(playerIP, "Exceeded maximum login attempts.");
  3003.                                         Kick(extraid);
  3004.                                         return 1;
  3005.  
  3006.                                 }
  3007.                             else {
  3008.                                         ShowPlayerDialog(extraid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "SERVER: Login", "Welcome to the "SERVER_NAME" Server.\n\nPlease enter your password below!", "Login", "Cancel");
  3009.                                         format(szMessage, sizeof(szMessage), "Incorrect password. You have %d remaining login attempts left.", MAX_LOGIN_ATTEMPTS - GetPVarInt(extraid, "LA"));
  3010.                                         SendClientMessage(extraid, COLOR_HOTORANGE, szMessage);
  3011.                                         return 1;
  3012.                                 }
  3013.                         }
  3014.                         else {
  3015.                             clearScreen(extraid);
  3016.                             DeletePVar(extraid, "LA");
  3017.  
  3018.                                 mysql_retrieve_row();
  3019.  
  3020.                                 mysql_get_field("playerBanned", result);
  3021.  
  3022.                                 if(strval(result) >= 1) {
  3023.  
  3024.                                         new
  3025.                                                 playerIP[32];
  3026.  
  3027.                                     SendClientMessage(extraid, COLOR_RED, "You are banned from this server.");
  3028.  
  3029.                                         GetPlayerIp(extraid, playerIP, sizeof(playerIP));
  3030.                                         GetPlayerName(extraid, szPlayerName, MAX_PLAYER_NAME);
  3031.  
  3032.                                         format(szMessage, sizeof(szMessage), "AdmWarn: {FFFFFF}%s has attempted to evade their account ban (using IP %s).", szPlayerName, playerIP);
  3033.                                         submitToAdmins(szMessage, COLOR_HOTORANGE);
  3034.  
  3035.                                         format(szMessage, sizeof(szMessage), "Attempted ban evasion (%s).", szPlayerName);
  3036.  
  3037.                                         IPBan(playerIP, szMessage);
  3038.                                         Kick(extraid);
  3039.                                 }
  3040.  
  3041.                                 playerVariables[extraid][pBanned] = strval(result);
  3042.  
  3043.                                 mysql_get_field("playerPassword", playerVariables[extraid][pPassword]);
  3044.  
  3045.                 mysql_get_field("playerEmail", playerVariables[extraid][pEmail]);
  3046.  
  3047.                 mysql_get_field("playerSkin", result);
  3048.                 playerVariables[extraid][pSkin] = strval(result);
  3049.  
  3050.                 mysql_get_field("playerMoney", result);
  3051.                 playerVariables[extraid][pMoney] = strval(result);
  3052.  
  3053.                 mysql_get_field("playerBankMoney", result);
  3054.                 playerVariables[extraid][pBankMoney] = strval(result);
  3055.  
  3056.                 mysql_get_field("playerPosX", result);
  3057.                 playerVariables[extraid][pPos][0] = floatstr(result);
  3058.  
  3059.                 mysql_get_field("playerPosY", result);
  3060.                 playerVariables[extraid][pPos][1] = floatstr(result);
  3061.  
  3062.                 mysql_get_field("playerPosZ", result);
  3063.                 playerVariables[extraid][pPos][2] = floatstr(result);
  3064.  
  3065.                 mysql_get_field("playerHealth", result);
  3066.                 playerVariables[extraid][pHealth] = floatstr(result);
  3067.  
  3068.                 mysql_get_field("playerArmour", result);
  3069.                 playerVariables[extraid][pArmour] = floatstr(result);
  3070.                
  3071.                                 mysql_get_field("playerVIP", result);
  3072.                 playerVariables[extraid][pVIP] = strval(result);
  3073.  
  3074.                 mysql_get_field("playerSeconds", result);
  3075.                 playerVariables[extraid][pSeconds] = strval(result);
  3076.  
  3077.                 mysql_get_field("playerAdminLevel", result);
  3078.                 playerVariables[extraid][pAdminLevel] = strval(result);
  3079.                
  3080.                 if(playerVariables[extraid][pAdminLevel] > 0) {
  3081.                     mysql_get_field("playerAdminPIN", result);
  3082.                     SetPVarInt(extraid, "pAdminPIN", strval(result));
  3083.                 }
  3084.  
  3085.                 mysql_get_field("playerAccent", playerVariables[extraid][pAccent]);
  3086.  
  3087.                     mysql_get_field("playerInterior", result);
  3088.                     playerVariables[extraid][pInterior] = strval(result);
  3089.  
  3090.                     mysql_get_field("playerVirtualWorld", result);
  3091.                     playerVariables[extraid][pVirtualWorld] = strval(result);
  3092.  
  3093.                 mysql_get_field("playerID", result);
  3094.                 playerVariables[extraid][pInternalID] = strval(result);
  3095.  
  3096.                                 mysql_get_field("playerCarLicensePlate", playerVariables[extraid][pCarLicensePlate]);
  3097.  
  3098.                 mysql_get_field("playerJob", result);
  3099.                 playerVariables[extraid][pJob] = strval(result);
  3100.  
  3101.                 mysql_get_field("playerWeapon0", result);
  3102.                 playerVariables[extraid][pWeapons][0] = strval(result);
  3103.  
  3104.                 mysql_get_field("playerWeapon1", result);
  3105.                 playerVariables[extraid][pWeapons][1] = strval(result);
  3106.  
  3107.                 mysql_get_field("playerWeapon2", result);
  3108.                 playerVariables[extraid][pWeapons][2] = strval(result);
  3109.  
  3110.                 mysql_get_field("playerWeapon3", result);
  3111.                 playerVariables[extraid][pWeapons][3] = strval(result);
  3112.  
  3113.                 mysql_get_field("playerWeapon4", result);
  3114.                 playerVariables[extraid][pWeapons][4] = strval(result);
  3115.  
  3116.                 mysql_get_field("playerWeapon5", result);
  3117.                 playerVariables[extraid][pWeapons][5] = strval(result);
  3118.  
  3119.                 mysql_get_field("playerWeapon6", result);
  3120.                 playerVariables[extraid][pWeapons][6] = strval(result);
  3121.  
  3122.                 mysql_get_field("playerWeapon7", result);
  3123.                 playerVariables[extraid][pWeapons][7] = strval(result);
  3124.  
  3125.                 mysql_get_field("playerWeapon8", result);
  3126.                 playerVariables[extraid][pWeapons][8] = strval(result);
  3127.  
  3128.                 mysql_get_field("playerWeapon9", result);
  3129.                 playerVariables[extraid][pWeapons][9] = strval(result);
  3130.  
  3131.                                 mysql_get_field("playerWeapon10", result);
  3132.                 playerVariables[extraid][pWeapons][10] = strval(result);
  3133.  
  3134.                                 mysql_get_field("playerWeapon11", result);
  3135.                 playerVariables[extraid][pWeapons][11] = strval(result);
  3136.  
  3137.                                 mysql_get_field("playerWeapon12", result);
  3138.                 playerVariables[extraid][pWeapons][12] = strval(result);
  3139.  
  3140.                                 mysql_get_field("playerJobSkill1", result);
  3141.                 playerVariables[extraid][pJobSkill][0] = strval(result);
  3142.  
  3143.                                 mysql_get_field("playerJobSkill2", result);
  3144.                 playerVariables[extraid][pJobSkill][1] = strval(result);
  3145.  
  3146.                                 mysql_get_field("playerMaterials", result);
  3147.                 playerVariables[extraid][pMaterials] = strval(result);
  3148.  
  3149.                                 mysql_get_field("playerGroup", result);
  3150.                 playerVariables[extraid][pGroup] = strval(result);
  3151.  
  3152.                                 mysql_get_field("playerGroupRank", result);
  3153.                 playerVariables[extraid][pGroupRank] = strval(result);
  3154.  
  3155.                                 mysql_get_field("playerHours", result);
  3156.                 playerVariables[extraid][pPlayingHours] = strval(result);
  3157.  
  3158.                 mysql_get_field("playerWarning1", playerVariables[extraid][pWarning1]);
  3159.                 mysql_get_field("playerWarning2", playerVariables[extraid][pWarning2]);
  3160.                 mysql_get_field("playerWarning3", playerVariables[extraid][pWarning3]);
  3161.  
  3162.                                 mysql_get_field("playerHospitalized", result);
  3163.                 playerVariables[extraid][pHospitalized] = strval(result);
  3164.  
  3165.                                 mysql_get_field("playerAdminName", playerVariables[extraid][pAdminName]);
  3166.  
  3167.                                 mysql_get_field("playerFirstLogin", result);
  3168.                                 playerVariables[extraid][pFirstLogin] = strval(result);
  3169.  
  3170.                                 mysql_get_field("playerGender", result);
  3171.                                 playerVariables[extraid][pGender] = strval(result);
  3172.  
  3173.                                 mysql_get_field("playerPrisonID", result);
  3174.                 playerVariables[extraid][pPrisonID] = strval(result);
  3175.  
  3176.                                 mysql_get_field("playerPrisonTime", result);
  3177.                 playerVariables[extraid][pPrisonTime] = strval(result);
  3178.  
  3179.                 mysql_get_field("playerPhoneNumber", result);
  3180.                 playerVariables[extraid][pPhoneNumber] = strval(result);
  3181.  
  3182.                 mysql_get_field("playerPhoneBook", result);
  3183.                 playerVariables[extraid][pPhoneBook] = strval(result);
  3184.  
  3185.                 mysql_get_field("playerHelperLevel", result);
  3186.                 playerVariables[extraid][pHelper] = strval(result);
  3187.  
  3188.                 mysql_get_field("playerDropCarTimeout", result);
  3189.                 playerVariables[extraid][pDropCarTimeout] = strval(result);
  3190.  
  3191.                 mysql_get_field("playerRope", result);
  3192.                 playerVariables[extraid][pRope] = strval(result);
  3193.  
  3194.                 mysql_get_field("playerAdminDuty", result);
  3195.                 playerVariables[extraid][pAdminDuty] = strval(result);
  3196.  
  3197.                 mysql_get_field("playerCrimes", result);
  3198.                 playerVariables[extraid][pCrimes] = strval(result);
  3199.  
  3200.                 mysql_get_field("playerArrests", result);
  3201.                 playerVariables[extraid][pArrests] = strval(result);
  3202.  
  3203.                 mysql_get_field("playerWarrants", result);
  3204.                 playerVariables[extraid][pWarrants] = strval(result);
  3205.  
  3206.                 mysql_get_field("playerLevel", result);
  3207.                 playerVariables[extraid][pLevel] = strval(result);
  3208.  
  3209.                 mysql_get_field("playerAge", result);
  3210.                 playerVariables[extraid][pAge] = strval(result);
  3211.  
  3212.                 mysql_get_field("playerCarModel", result);
  3213.                 playerVariables[extraid][pCarModel] = strval(result);
  3214.  
  3215.                 mysql_get_field("playerCarMod0", result);
  3216.                 playerVariables[extraid][pCarMods][0] = strval(result);
  3217.  
  3218.                 mysql_get_field("playerCarMod1", result);
  3219.                 playerVariables[extraid][pCarMods][1] = strval(result);
  3220.  
  3221.                 mysql_get_field("playerCarMod2", result);
  3222.                 playerVariables[extraid][pCarMods][2] = strval(result);
  3223.  
  3224.                 mysql_get_field("playerCarMod3", result);
  3225.                 playerVariables[extraid][pCarMods][3] = strval(result);
  3226.  
  3227.                 mysql_get_field("playerCarMod4", result);
  3228.                 playerVariables[extraid][pCarMods][4] = strval(result);
  3229.  
  3230.                 mysql_get_field("playerCarMod5", result);
  3231.                 playerVariables[extraid][pCarMods][5] = strval(result);
  3232.  
  3233.                 mysql_get_field("playerCarMod6", result);
  3234.                 playerVariables[extraid][pCarMods][6] = strval(result);
  3235.  
  3236.                 mysql_get_field("playerCarMod7", result);
  3237.                 playerVariables[extraid][pCarMods][7] = strval(result);
  3238.  
  3239.                 mysql_get_field("playerCarMod8", result);
  3240.                 playerVariables[extraid][pCarMods][8] = strval(result);
  3241.  
  3242.                 mysql_get_field("playerCarMod9", result);
  3243.                 playerVariables[extraid][pCarMods][9] = strval(result);
  3244.  
  3245.                 mysql_get_field("playerCarMod10", result);
  3246.                 playerVariables[extraid][pCarMods][10] = strval(result);
  3247.  
  3248.                 mysql_get_field("playerCarMod11", result);
  3249.                 playerVariables[extraid][pCarMods][11] = strval(result);
  3250.  
  3251.                 mysql_get_field("playerCarMod12", result);
  3252.                 playerVariables[extraid][pCarMods][12] = strval(result);
  3253.  
  3254.                 mysql_get_field("playerCarPosX", result);
  3255.                 playerVariables[extraid][pCarPos][0] = floatstr(result);
  3256.  
  3257.                 mysql_get_field("playerCarPosY", result);
  3258.                 playerVariables[extraid][pCarPos][1] = floatstr(result);
  3259.  
  3260.                 mysql_get_field("playerCarPosZ", result);
  3261.                 playerVariables[extraid][pCarPos][2] = floatstr(result);
  3262.  
  3263.                 mysql_get_field("playerCarPosZAngle", result);
  3264.                 playerVariables[extraid][pCarPos][3] = floatstr(result);
  3265.  
  3266.                 mysql_get_field("playerCarColour1", result);
  3267.                 playerVariables[extraid][pCarColour][0] = strval(result);
  3268.  
  3269.                 mysql_get_field("playerCarColour2", result);
  3270.                 playerVariables[extraid][pCarColour][1] = strval(result);
  3271.  
  3272.                 mysql_get_field("playerCarPaintJob", result);
  3273.                 playerVariables[extraid][pCarPaintjob] = strval(result);
  3274.  
  3275.                 mysql_get_field("playerCarLock", result);
  3276.                 playerVariables[extraid][pCarLock] = strval(result);
  3277.  
  3278.                 mysql_get_field("playerFightStyle", result);
  3279.                 playerVariables[extraid][pFightStyle] = strval(result);
  3280.  
  3281.                 mysql_get_field("playerCarWeapon1", result);
  3282.                 playerVariables[extraid][pCarWeapons][0] = strval(result);
  3283.  
  3284.                 mysql_get_field("playerCarWeapon2", result);
  3285.                 playerVariables[extraid][pCarWeapons][1] = strval(result);
  3286.  
  3287.                 mysql_get_field("playerCarWeapon3", result);
  3288.                 playerVariables[extraid][pCarWeapons][2] = strval(result);
  3289.  
  3290.                 mysql_get_field("playerCarWeapon4", result);
  3291.                 playerVariables[extraid][pCarWeapons][3] = strval(result);
  3292.  
  3293.                 mysql_get_field("playerCarWeapon5", result);
  3294.                 playerVariables[extraid][pCarWeapons][4] = strval(result);
  3295.  
  3296.                 mysql_get_field("playerCarTrunk1", result);
  3297.                 playerVariables[extraid][pCarTrunk][0] = strval(result);
  3298.  
  3299.                 mysql_get_field("playerCarTrunk2", result);
  3300.                 playerVariables[extraid][pCarTrunk][1] = strval(result);
  3301.  
  3302.                 mysql_get_field("playerPhoneCredit", result);
  3303.                 playerVariables[extraid][pPhoneCredit] = strval(result);
  3304.  
  3305.                 mysql_get_field("playerWalkieTalkie", result);
  3306.                 playerVariables[extraid][pWalkieTalkie] = strval(result);
  3307.  
  3308.                                 GetPlayerName(extraid, playerVariables[extraid][pNormalName], MAX_PLAYER_NAME);
  3309.  
  3310.                                 GetPlayerIp(extraid, playerVariables[extraid][pConnectionIP], 32);
  3311.  
  3312.                                 playerVariables[extraid][pStatus] = 1;
  3313.                                
  3314.                                 if(playerVariables[extraid][pAdminLevel] > 0) {
  3315.                                         format(result, sizeof(result), "SELECT conIP from playerconnections WHERE conPlayerID = %d AND conIP = '%s'", playerVariables[extraid][pInternalID], playerVariables[extraid][pConnectionIP]);
  3316.                                         mysql_query(result, THREAD_ADMIN_SECURITY, extraid);
  3317.                                        
  3318.                                         if(GetPVarInt(extraid, "pAdminPIN") == 0)
  3319.                                         ShowPlayerDialog(extraid, DIALOG_SET_ADMIN_PIN, DIALOG_STYLE_INPUT, "SERVER: Admin PIN creation", "The system has detected you do not yet have an admin PIN set.\n\nThis is a new compulsory security measure.\n\nPlease set a four digit pin:", "OK", "");
  3320.                                 }
  3321.                                
  3322.                                 format(result, sizeof(result), "SELECT `conTS` FROM `playerconnections` WHERE `conPlayerID` = '%d' ORDER BY `conId` DESC LIMIT 1", playerVariables[extraid][pInternalID]);
  3323.                                 mysql_query(result, THREAD_TIMESTAMP_CONNECT, extraid);
  3324.  
  3325.                                 format(result, sizeof(result), "INSERT INTO playerconnections (conName, conIP, conPlayerID) VALUES('%s', '%s', %d)", playerVariables[extraid][pNormalName], playerVariables[extraid][pConnectionIP], playerVariables[extraid][pInternalID]);
  3326.                                 mysql_query(result, THREAD_RANDOM);
  3327.  
  3328.                                 format(result, sizeof(result), "UPDATE playeraccounts SET playerStatus = '1' WHERE playerID = %d", playerVariables[extraid][pInternalID]);
  3329.                                 mysql_query(result, THREAD_RANDOM);
  3330.                                
  3331.                                 /*format(result, sizeof(result), "SELECT * FROM playervehicles WHERE pvOwnerId = %d", playerVariables[extraid][pInternalID]);
  3332.                                 mysql_query(result, THREAD_LOAD_PLAYER_VEHICLES, extraid);*/
  3333.  
  3334.                             if(playerVariables[extraid][pFirstLogin] >= 1) {
  3335.                                 // Dialog to send player in to quiz and prevent any other code for the player from being executed, as they have to complete the quiz/tutorial first.
  3336.                                 return ShowPlayerDialog(extraid, DIALOG_QUIZ, DIALOG_STYLE_LIST, "What is roleplay in SA-MP?", "A type of gamemode where you realistically act out a character\nAn STD\nA track by Jay-Z\nA type of gamemode where you just kill people", "Select", "");
  3337.                                 }
  3338.  
  3339.                 SetSpawnInfo(extraid, 0, playerVariables[extraid][pSkin], playerVariables[extraid][pPos][0], playerVariables[extraid][pPos][1], playerVariables[extraid][pPos][2], 0, 0, 0, 0, 0, 0, 0);
  3340.                                 SpawnPlayer(extraid);
  3341.  
  3342.                         if(playerVariables[extraid][pWarrants] > 0) {
  3343.                             SetPlayerWantedLevel(extraid, playerVariables[extraid][pWarrants]);
  3344.                             SendClientMessage(extraid, COLOR_HOTORANGE, "You're still a wanted man! Your criminal record has been reinstated.");
  3345.                         }
  3346.  
  3347.                         format(szQueryOutput, sizeof(szQueryOutput), "SELECT * FROM `banksuspensions` WHERE `playerID` = %d", playerVariables[extraid][pInternalID]);
  3348.                                 mysql_query(szQueryOutput, THREAD_BANK_SUSPENSION, extraid);
  3349.  
  3350.                         if(playerVariables[extraid][pCarModel] > 0)
  3351.                                         SpawnPlayerVehicle(extraid);
  3352.  
  3353.                                 if(playerVariables[extraid][pLevel] > 0)
  3354.                                     SetPlayerScore(extraid, playerVariables[extraid][pLevel]);
  3355.  
  3356.                                 if(playerVariables[extraid][pAdminDuty] == 1 && playerVariables[extraid][pAdminLevel] < 1) {
  3357.                                         playerVariables[extraid][pAdminLevel] = 0;
  3358.                                         playerVariables[extraid][pAdminDuty] = 0;
  3359.                                         format(playerVariables[extraid][pAdminName], MAX_PLAYER_NAME, "(null)");
  3360.                                         SendClientMessage(extraid, COLOR_HOTORANGE, "You're no longer an administrator.");
  3361.                                 }
  3362.  
  3363.                                 if(playerVariables[extraid][pAdminLevel] > 0 && playerVariables[extraid][pAdminDuty] > 1)
  3364.                                     SetPlayerName(extraid, playerVariables[extraid][pAdminName]);
  3365.                         }
  3366.  
  3367.                         mysql_free_result();
  3368.                 }
  3369.                 case THREAD_BANK_SUSPENSION: {
  3370.                         mysql_store_result();
  3371.  
  3372.                         if(mysql_num_rows() < 1)
  3373.                             return 1;
  3374.  
  3375.                         mysql_retrieve_row();
  3376.  
  3377.                         mysql_get_field("suspensionReason", result);
  3378.                         SetPVarString(extraid, "BSuspend", result);
  3379.  
  3380.                         mysql_get_field("suspendeeID", result);
  3381.                         mysql_free_result();
  3382.  
  3383.                         format(szQueryOutput, sizeof(szQueryOutput), "SELECT `playerName` FROM `playeraccounts` WHERE `playerID` = %d", strval(result));
  3384.                         mysql_query(szQueryOutput);
  3385.                         mysql_store_result();
  3386.                         mysql_retrieve_row();
  3387.  
  3388.                         mysql_get_field("playerName", result);
  3389.                         SetPVarString(extraid, "BSuspendee", result);
  3390.  
  3391.                         mysql_free_result();
  3392.                 }
  3393.                 case THREAD_CHECK_BANS_LIST: {
  3394.                     mysql_store_result();
  3395.  
  3396.                         if(!IsPlayerConnected(extraid))
  3397.                                 return mysql_free_result(); // Incase they're disconnected since... Sometimes queries F*"!%$" up.
  3398.  
  3399.                     if(mysql_num_rows() >= 1) {
  3400.                                 SendClientMessage(extraid, COLOR_RED, "You're banned from this server.");
  3401.                                 Kick(extraid);
  3402.                         }
  3403.                     else {
  3404.                                 new
  3405.                                 playerEscapedName[MAX_PLAYER_NAME],
  3406.                                 queryUsername[100];
  3407.  
  3408.                             GetPlayerName(extraid, szPlayerName, MAX_PLAYER_NAME);
  3409.                             mysql_real_escape_string(szPlayerName, playerEscapedName);
  3410.  
  3411.                                 // Continue with the rest of the auth code...
  3412.                             format(queryUsername, sizeof(queryUsername), "SELECT `playerName` FROM `playeraccounts` WHERE `playerName` = '%s'", playerEscapedName);
  3413.                             mysql_query(queryUsername, THREAD_CHECK_ACCOUNT_USERNAME, extraid);
  3414.                     }
  3415.  
  3416.                     mysql_free_result();
  3417.                 }
  3418.                 case THREAD_BAN_PLAYER: {
  3419.                         format(szQueryOutput, sizeof(szQueryOutput), "UPDATE playeraccounts SET playerBanned = '1' WHERE playerID = '%d'", playerVariables[extraid][pInternalID]);
  3420.                         mysql_query(szQueryOutput, THREAD_FINALIZE_BAN, extraid);
  3421.                 }
  3422.                 case THREAD_FINALIZE_BAN: return Kick(extraid);
  3423.                 case THREAD_CHECK_PLAYER_NAME_BANNED: {
  3424.                         mysql_store_result();
  3425.  
  3426.                         if(mysql_num_rows() >= 1) {
  3427.                             GetPVarString(extraid, "playerNameUnban", szPlayerName, MAX_PLAYER_NAME);
  3428.  
  3429.                                 format(szQueryOutput, sizeof(szQueryOutput), "DELETE FROM bans WHERE playerNameBanned = '%s'", szPlayerName);
  3430.                                 mysql_query(szQueryOutput, THREAD_FINALIZE_UNBAN, extraid);
  3431.                         }
  3432.                         else {
  3433.                             SendClientMessage(extraid, COLOR_GREY, "The specified player name is not banned.");
  3434.                         }
  3435.  
  3436.                         mysql_free_result();
  3437.                 }
  3438.                 case THREAD_FINALIZE_UNBAN: {
  3439.                     new
  3440.                         szPlayerName2[MAX_PLAYER_NAME];
  3441.  
  3442.             GetPVarString(extraid, "playerNameUnban", szPlayerName2, MAX_PLAYER_NAME);
  3443.                     GetPlayerName(extraid, szPlayerName, MAX_PLAYER_NAME);
  3444.                     SendClientMessage(extraid, COLOR_WHITE, "The unban has been successful.");
  3445.  
  3446.                         format(szMessage, sizeof(szMessage), "AdmWarn: {FFFFFF}%s has unbanned player %s.", szPlayerName, szPlayerName2);
  3447.  
  3448.                         submitToAdmins(szMessage, COLOR_HOTORANGE);
  3449.                     adminLog(szMessage);
  3450.  
  3451.                     format(szMessage, sizeof(szMessage), "UPDATE playeraccounts SET playerBanned = '0' WHERE playerName = '%s'", szPlayerName2);
  3452.                     mysql_query(szMessage);
  3453.                 }
  3454.                 case THREAD_INITIATE_HOUSES: {
  3455.                         mysql_store_result();
  3456.  
  3457.                         new
  3458.                             x;
  3459.  
  3460.                         while(mysql_retrieve_row()) {
  3461.                                 mysql_get_field("houseID", result);
  3462.                                 x = strval(result);
  3463.  
  3464.                                 mysql_get_field("houseExteriorPosX", result);
  3465.                                 houseVariables[x][hHouseExteriorPos][0] = floatstr(result);
  3466.  
  3467.                                 mysql_get_field("houseExteriorPosY", result);
  3468.                                 houseVariables[x][hHouseExteriorPos][1] = floatstr(result);
  3469.  
  3470.                                 mysql_get_field("houseExteriorPosZ", result);
  3471.                                 houseVariables[x][hHouseExteriorPos][2] = floatstr(result);
  3472.  
  3473.                                 mysql_get_field("houseInteriorPosX", result);
  3474.                                 houseVariables[x][hHouseInteriorPos][0] = floatstr(result);
  3475.  
  3476.                                 mysql_get_field("houseInteriorPosY", result);
  3477.                                 houseVariables[x][hHouseInteriorPos][1] = floatstr(result);
  3478.  
  3479.                                 mysql_get_field("houseInteriorPosZ", result);
  3480.                                 houseVariables[x][hHouseInteriorPos][2] = floatstr(result);
  3481.  
  3482.                                 mysql_get_field("houseInteriorID", result);
  3483.                                 houseVariables[x][hHouseInteriorID] = strval(result);
  3484.  
  3485.                                 mysql_get_field("houseExteriorID", result);
  3486.                                 houseVariables[x][hHouseExteriorID] = strval(result);
  3487.  
  3488.                                 mysql_get_field("houseOwner", houseVariables[x][hHouseOwner]);
  3489.  
  3490.                                 mysql_get_field("housePrice", result);
  3491.                                 houseVariables[x][hHousePrice] = strval(result);
  3492.  
  3493.                                 mysql_get_field("houseLocked", result);
  3494.                                 houseVariables[x][hHouseLocked] = strval(result);
  3495.  
  3496.                                 mysql_get_field("houseMoney", result);
  3497.                                 houseVariables[x][hMoney] = strval(result);
  3498.  
  3499.                                 mysql_get_field("houseWeapon1", result);
  3500.                                 houseVariables[x][hWeapons][0] = strval(result);
  3501.  
  3502.                                 mysql_get_field("houseWeapon2", result);
  3503.                                 houseVariables[x][hWeapons][1] = strval(result);
  3504.  
  3505.                                 mysql_get_field("houseWeapon3", result);
  3506.                                 houseVariables[x][hWeapons][2] = strval(result);
  3507.  
  3508.                                 mysql_get_field("houseWeapon4", result);
  3509.                                 houseVariables[x][hWeapons][3] = strval(result);
  3510.  
  3511.                                 mysql_get_field("houseWeapon5", result);
  3512.                                 houseVariables[x][hWeapons][4] = strval(result);
  3513.  
  3514.                                 mysql_get_field("houseWardrobe1", result);
  3515.                                 houseVariables[x][hWardrobe][0] = strval(result);
  3516.  
  3517.                                 mysql_get_field("houseWardrobe2", result);
  3518.                                 houseVariables[x][hWardrobe][1] = strval(result);
  3519.  
  3520.                                 mysql_get_field("houseWardrobe3", result);
  3521.                                 houseVariables[x][hWardrobe][2] = strval(result);
  3522.  
  3523.                                 mysql_get_field("houseWardrobe4", result);
  3524.                                 houseVariables[x][hWardrobe][3] = strval(result);
  3525.  
  3526.                                 mysql_get_field("houseWardrobe5", result);
  3527.                                 houseVariables[x][hWardrobe][4] = strval(result);
  3528.  
  3529.                                 mysql_get_field("houseMaterials", result);
  3530.                                 houseVariables[x][hMaterials] = strval(result);
  3531.  
  3532.                                 if(!strcmp(houseVariables[x][hHouseOwner], "Nobody", true) && strlen(houseVariables[x][hHouseOwner]) >= 1) {
  3533.                                     new
  3534.                                         labelString[96];
  3535.  
  3536.                                     if(houseVariables[x][hHouseLocked] == 1) {
  3537.                                         format(labelString, sizeof(labelString), "House %d (un-owned - /buyhouse)\nPrice: $%d\n\n(locked)", x, houseVariables[x][hHousePrice]);
  3538.                                     }
  3539.                                     else {
  3540.                                         format(labelString, sizeof(labelString), "House %d (un-owned - /buyhouse)\nPrice: $%d\n\nPress ~k~~PED_DUCK~ to enter.", x, houseVariables[x][hHousePrice]);
  3541.                                     }
  3542.  
  3543.                                     houseVariables[x][hLabelID] = CreateDynamic3DTextLabel(labelString, COLOR_YELLOW, houseVariables[x][hHouseExteriorPos][0], houseVariables[x][hHouseExteriorPos][1], houseVariables[x][hHouseExteriorPos][2], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
  3544.                                         houseVariables[x][hPickupID] = CreateDynamicPickup(1273, 23, houseVariables[x][hHouseExteriorPos][0], houseVariables[x][hHouseExteriorPos][1], houseVariables[x][hHouseExteriorPos][2], 0, houseVariables[x][hHouseExteriorID], -1, 250);
  3545.                                 }
  3546.                                 else {
  3547.                                     new
  3548.                                         labelString[96];
  3549.  
  3550.                                     if(houseVariables[x][hHouseLocked] == 1) {
  3551.                                         format(labelString, sizeof(labelString), "House %d (owned)\nOwner: %s\n\n(locked)", x, houseVariables[x][hHouseOwner]);
  3552.                                     }
  3553.                                     else {
  3554.                                         format(labelString, sizeof(labelString), "House %d (owned)\nOwner: %s\n\nPress ~k~~PED_DUCK~ to enter.", x, houseVariables[x][hHouseOwner]);
  3555.                                     }
  3556.  
  3557.                                     houseVariables[x][hLabelID] = CreateDynamic3DTextLabel(labelString, COLOR_YELLOW, houseVariables[x][hHouseExteriorPos][0], houseVariables[x][hHouseExteriorPos][1], houseVariables[x][hHouseExteriorPos][2], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
  3558.                                     houseVariables[x][hPickupID] = CreateDynamicPickup(1272, 23, houseVariables[x][hHouseExteriorPos][0], houseVariables[x][hHouseExteriorPos][1], houseVariables[x][hHouseExteriorPos][2], 0, houseVariables[x][hHouseExteriorID], -1, 50);
  3559.                                 }
  3560.  
  3561.                                 systemVariables[houseCount]++;
  3562.                         }
  3563.  
  3564.                         printf("[script] %d houses loaded.", systemVariables[houseCount]);
  3565.  
  3566.                         mysql_free_result();
  3567.                 }
  3568.                 case THREAD_INITIATE_BUSINESSES: {
  3569.                         mysql_store_result();
  3570.  
  3571.                         new
  3572.                             x;
  3573.  
  3574.                         while(mysql_retrieve_row()) {
  3575.                                 mysql_get_field("businessID", result);
  3576.                                 x = strval(result);
  3577.  
  3578.                                 mysql_get_field("businessName", businessVariables[x][bName]);
  3579.  
  3580.                                 mysql_get_field("businessOwner", businessVariables[x][bOwner]);
  3581.  
  3582.                                 mysql_get_field("businessType", result);
  3583.                                 businessVariables[x][bType] = strval(result);
  3584.  
  3585.                                 mysql_get_field("businessExteriorX", result);
  3586.                                 businessVariables[x][bExteriorPos][0] = floatstr(result);
  3587.  
  3588.                                 mysql_get_field("businessExteriorY", result);
  3589.                                 businessVariables[x][bExteriorPos][1] = floatstr(result);
  3590.  
  3591.                                 mysql_get_field("businessExteriorZ", result);
  3592.                                 businessVariables[x][bExteriorPos][2] = floatstr(result);
  3593.  
  3594.                                 mysql_get_field("businessInteriorX", result);
  3595.                                 businessVariables[x][bInteriorPos][0] = floatstr(result);
  3596.  
  3597.                                 mysql_get_field("businessInteriorY", result);
  3598.                                 businessVariables[x][bInteriorPos][1] = floatstr(result);
  3599.  
  3600.                                 mysql_get_field("businessInteriorZ", result);
  3601.                                 businessVariables[x][bInteriorPos][2] = floatstr(result);
  3602.  
  3603.                                 mysql_get_field("businessInterior", result);
  3604.                                 businessVariables[x][bInterior] = strval(result);
  3605.  
  3606.                                 mysql_get_field("businessLock", result);
  3607.                                 businessVariables[x][bLocked] = strval(result);
  3608.  
  3609.                                 mysql_get_field("businessPrice", result);
  3610.                                 businessVariables[x][bPrice] = strval(result);
  3611.  
  3612.                                 mysql_get_field("businessVault", result);
  3613.                                 businessVariables[x][bVault] = strval(result);
  3614.  
  3615.                                 mysql_get_field("businessMiscX", result);
  3616.                                 businessVariables[x][bMiscPos][0] = floatstr(result);
  3617.  
  3618.                                 mysql_get_field("businessMiscY", result);
  3619.                                 businessVariables[x][bMiscPos][1] = floatstr(result);
  3620.  
  3621.                                 mysql_get_field("businessMiscZ", result);
  3622.                                 businessVariables[x][bMiscPos][2] = floatstr(result);
  3623.  
  3624.                                 switch(businessVariables[x][bLocked]) {
  3625.                                         case 1: {
  3626.                                             if(!strcmp(businessVariables[x][bOwner], "Nobody", true)) {
  3627.                                                         format(result, sizeof(result), "%s\n(Business %d - un-owned)\nPrice: $%d (/buybusiness)\n\n(locked)", businessVariables[x][bName], x, businessVariables[x][bPrice]);
  3628.                                                 }
  3629.                                                 else {
  3630.                                                     format(result, sizeof(result), "%s\n(Business %d - owned by %s)\n\n(locked)", businessVariables[x][bName], x, businessVariables[x][bOwner]);
  3631.                                                 }
  3632.                                         }
  3633.                                         case 0: {
  3634.                                             if(!strcmp(businessVariables[x][bOwner], "Nobody", true)) {
  3635.                                                         format(result, sizeof(result), "%s\n(Business %d - un-owned)\nPrice: $%d (/buybusiness)\n\nPress ~k~~PED_DUCK~ to enter", businessVariables[x][bName], x, businessVariables[x][bPrice]);
  3636.                                                 }
  3637.                                                 else {
  3638.                                                     format(result, sizeof(result), "%s\n(Business %d - owned by %s)\n\nPress ~k~~PED_DUCK~ to enter", businessVariables[x][bName], x, businessVariables[x][bOwner]);
  3639.                                                 }
  3640.                                         }
  3641.                                 }
  3642.  
  3643.                                 businessVariables[x][bLabelID] = CreateDynamic3DTextLabel(result, COLOR_YELLOW, businessVariables[x][bExteriorPos][0], businessVariables[x][bExteriorPos][1], businessVariables[x][bExteriorPos][2], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
  3644.                                 businessVariables[x][bPickupID] = CreateDynamicPickup(1239, 23, businessVariables[x][bExteriorPos][0], businessVariables[x][bExteriorPos][1], businessVariables[x][bExteriorPos][2], 0, 0, -1, 250);
  3645.                                 systemVariables[businessCount]++;
  3646.                         }
  3647.  
  3648.                         mysql_free_result();
  3649.                 }
  3650.                 case THREAD_INITIATE_VEHICLES: {
  3651.                         mysql_store_result();
  3652.  
  3653.                         new
  3654.                             x,
  3655.                                 bool: success = true;
  3656.  
  3657.                         while(mysql_retrieve_row()) {
  3658.                             mysql_get_field("vehicleID", result);
  3659.                             x = strval(result);
  3660.  
  3661.                                 if(systemVariables[vehicleCounts][0] + systemVariables[vehicleCounts][1] + systemVariables[vehicleCounts][2] < MAX_VEHICLES) {
  3662.                                         mysql_get_field("vehicleModelID", result);
  3663.                                         vehicleVariables[x][vVehicleModelID] = strval(result);
  3664.  
  3665.                                         mysql_get_field("vehiclePosX", result);
  3666.                                         vehicleVariables[x][vVehiclePosition][0] = floatstr(result);
  3667.  
  3668.                                         mysql_get_field("vehiclePosY", result);
  3669.                                         vehicleVariables[x][vVehiclePosition][1] = floatstr(result);
  3670.  
  3671.                                         mysql_get_field("vehiclePosZ", result);
  3672.                                         vehicleVariables[x][vVehiclePosition][2] = floatstr(result);
  3673.  
  3674.                                         mysql_get_field("vehiclePosRotation", result);
  3675.                                         vehicleVariables[x<