1
0

PPC_Defines.inc 77 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360
  1. //************************************************************************************************************************************
  2. // Keep the values and assignments below this line to what they are
  3. //************************************************************************************************************************************
  4. // Define path to player's account-files
  5. #define PlayerFile "ServerData/Players/%s.ini"
  6. #define HouseFile "ServerData/Houses/House%i.ini"
  7. #define CameraFile "ServerData/Cameras/Camera%i.ini"
  8. #define BusinessFile "ServerData/Business/Business%i.ini"
  9. #define BankFile "ServerData/Bank/%s.ini"
  10. // Define vehicles
  11. #define VehicleFlatbed 455 // Truck: Flatbed
  12. #define VehicleDFT30 578 // Truck: DFT-30
  13. #define VehicleCementTruck 524 // Truck: Cementtruck
  14. #define VehicleLineRunner 403 // Truck: LineRunner
  15. #define VehicleTanker 514 // Truck: Tanker
  16. #define VehicleRoadTrain 515 // Truck: RoadTrain
  17. #define VehicleTrailerCargo 435 // Trailer: cargo
  18. #define VehicleTrailerCargo2 591 // Trailer: cargo
  19. #define VehicleTrailerOre 450 // Trailer: Ore
  20. #define VehicleTrailerFluids 584 // Trailer: Fluids
  21. #define VehicleCoach 437 // Bus
  22. #define VehicleShamal 519 // Plane: Shamal
  23. #define VehicleNevada 553 // Plane: Nevada
  24. #define VehicleStuntPlane 513 // Plane: Stuntplane
  25. #define VehicleDodo 593 // Plane: Dodo
  26. #define VehicleMaverick 487 // Helicopter: Maverick
  27. #define VehicleCargobob 548 // Helicopter: Cargobob
  28. #define VehiclePoliceLSPD 596 // Police Car Los Santos Police Department
  29. #define VehiclePoliceSFPD 597 // Police Car San Fierro Police Department
  30. #define VehiclePoliceLVPD 598 // Police Car Las Venturas Police Department
  31. #define VehicleHPV1000 523 // Police motorcycle
  32. #define VehiclePoliceRanger 599 // Police Ranger
  33. #define VehicleSandKing 495 // Mafia-van: Sandking
  34. #define VehicleMoonbeam 418 // Mafia-van: Moonbeam
  35. #define VehicleBike 509 // Bike: Bike
  36. #define VehicleBMX 481 // Bike: BMX
  37. #define VehicleMountainBike 510 // Bike: Mountain Bike
  38. #define VehicleFaggio 462 // Bike: Faggio
  39. #define VehiclePizzaBoy 448 // Bike: Pizzaboy
  40. #define VehicleBF400 581 // Bike: BF-400
  41. #define VehicleNRG500 522 // Bike: NRG-500
  42. #define VehiclePCJ600 461 // Bike: PCJ-600
  43. #define VehicleFCR900 521 // Bike: FCR-900
  44. #define VehicleFreeway 463 // Bike: Freeway
  45. #define VehicleWayfarer 586 // Bike: Wayfarer
  46. #define VehicleSanchez 468 // Bike: Sanchez
  47. #define VehicleQuad 471 // Bike: Quad
  48. #define VehicleCoastguard 472 // Boat: Coastguard
  49. #define VehicleDinghy 473 // Boat: Dinghy
  50. #define VehicleJetmax 493 // Boat: Jetmax
  51. #define VehicleLaunch 595 // Boat: Launch
  52. #define VehicleMarquis 484 // Boat: Marquis
  53. #define VehiclePredator 430 // Boat: Predator
  54. #define VehicleReefer 453 // Boat: Reefer
  55. #define VehicleSpeeder 452 // Boat: Speeder
  56. #define VehicleSquallo 446 // Boat: Squallo
  57. #define VehicleTropic 454 // Boat: Tropic
  58. #define VehicleRhino 432 // Tank: Rhino
  59. #define VehiclePatriot 470 // Jeep: Patriot
  60. #define VehicleTowTruck 525 // Towtruck
  61. #define VehicleBurrito 482 // Van: Burrito
  62. #define VehicleFaggio 462 // Bike: Faggio
  63. #define VehicleBenson 499 // Truck: Benson
  64. #define VehicleDozer 486 // Dozer
  65. #define VehicleUtilityVan 552 // Utility Van
  66. #define VehicleUtilityTrailer 611 // Utility trailer
  67. // Define player-class AND vehicle statements to use for missions (PCV = PlayerClass and Vehicle)
  68. #define PCV_TruckerOreTrailer 1
  69. #define PCV_TruckerFluidsTrailer 2
  70. #define PCV_TruckerCargoTrailer 3
  71. #define PCV_TruckerCementTruck 4
  72. #define PCV_TruckerNoTrailer 5
  73. #define PCV_PilotPlane 6
  74. #define PCV_PilotHelicopter 7
  75. #define PCV_MafiaVan 8
  76. // Define classes
  77. #define ClassTruckDriver 1
  78. #define ClassBusDriver 2
  79. #define ClassPilot 3
  80. #define ClassPolice 4
  81. #define ClassMafia 5
  82. #define ClassCourier 6
  83. #define ClassAssistance 7
  84. #define ClassRoadWorker 8
  85. // Defines for all classes
  86. #define Job_TimeToFailMission 60
  87. // Define class-colors
  88. #define ColorClassTruckDriver 0xFF8000FF // Orange
  89. #define ColorClassBusDriver 0x80FFFFFF // Light blue
  90. #define ColorClassPilot 0x008080FF // Dark blue
  91. #define ColorClassPolice 0x0000FFFF // Blue
  92. #define ColorClassMafia 0x8000FFFF // Purple
  93. #define ColorClassCourier 0xFF0080FF // Pink
  94. #define ColorClassAssistance 0x80FF00FF // Dark green
  95. #define ColorClassRoadWorker 0xFFFF80FF // Light yellow
  96. // Define Dialogs
  97. #define DialogRegister 1
  98. #define DialogLogin 2
  99. #define DialogStats 3
  100. #define DialogStatsOtherPlayer 4
  101. #define DialogRules 5
  102. #define DialogReports 6
  103. #define DialogStatsHouse 7
  104. #define DialogStatsGoHouse 8
  105. #define DialogStatsGoBusiness 9
  106. #define DialogRescue 11
  107. #define DialogBuyLicenses 12
  108. #define DialogTruckerJobMethod 21
  109. #define DialogTruckerSelectLoad 22
  110. #define DialogTruckerStartLoc 23
  111. #define DialogTruckerEndLoc 24
  112. #define DialogBusJobMethod 31
  113. #define DialogBusSelectRoute 32
  114. #define DialogCourierSelectQuant 41
  115. #define DialogBike 101
  116. #define DialogCar 102
  117. #define DialogPlane 103
  118. #define DialogTrailer 104
  119. #define DialogRentCarClass 105
  120. #define DialogRentCar 106
  121. #define DialogBoat 107
  122. #define DialogNeon 108
  123. #define DialogWeather 201
  124. #define DialogCarOption 202
  125. #define DialogSelectConvoy 401
  126. #define DialogConvoyMembers 402
  127. #define DialogPlayerCommands 501
  128. #define DialogPrimaryCarColor 502
  129. #define DialogSedundaryCarColor 503
  130. #define DialogHouseMenu 601
  131. #define DialogUpgradeHouse 602
  132. #define DialogGoHome 603
  133. #define DialogHouseNameChange 604
  134. #define DialogSellHouse 605
  135. #define DialogBuyCarClass 606
  136. #define DialogBuyCar 607
  137. #define DialogSellCar 608
  138. #define DialogBuyInsurance 609
  139. #define DialogGetCarSelectHouse 610
  140. #define DialogGetCarSelectCar 611
  141. #define DialogUnclampVehicles 612
  142. #define DialogCreateBusSelType 701
  143. #define DialogBusinessMenu 702
  144. #define DialogGoBusiness 703
  145. #define DialogBusinessNameChange 704
  146. #define DialogSellBusiness 705
  147. #define DialogBankPasswordRegister 801
  148. #define DialogBankPasswordLogin 802
  149. #define DialogBankOptions 803
  150. #define DialogBankDeposit 804
  151. #define DialogBankWithdraw 805
  152. #define DialogBankTransferMoney 806
  153. #define DialogBankTransferName 807
  154. #define DialogBankCancel 808
  155. #define DialogHelpItemChosen 901
  156. #define DialogHelpItem 902
  157. #define DialogOldPassword 1001
  158. #define DialogNewPassword 1002
  159. #define DialogConfirmPassword 1003
  160. #define DialogNoResponse 25000
  161. // Define the maximum amount of convoys at the same time
  162. #define MAX_CONVOYS 5
  163. #define CONVOY_MAX_MEMBERS 25
  164. #define CONVOY_EMPTY 0
  165. #define CONVOY_OPEN 1
  166. #define CONVOY_FULL 2
  167. #define CONVOY_CLOSED 3
  168. // Define messagecolors
  169. #define ColorRed 0xFF0000FF
  170. #define ColorGreen 0x00FF00FF
  171. #define ColorBlue 0x0000FFFF
  172. // Define Virtual Worlds
  173. #define WORLD_JAIL 10254
  174. // Define options for admins
  175. #define AutoKickAfterWarn 1 // Define if the player gets kicked after a certain amount of warnings
  176. #define AutoKickWarnings 3 // Define the amount of warnings before a player is kicked automatically
  177. // Define spectate modes
  178. #define ADMIN_SPEC_TYPE_NONE 0
  179. #define ADMIN_SPEC_TYPE_PLAYER 1
  180. #define ADMIN_SPEC_TYPE_VEHICLE 2
  181. // Create some global variables that are used to display large dialogs
  182. new DialogMsg5000[5000];
  183. // These variables are only used during the GameModeInit, they are used for debugging purposes
  184. // A variable to hold the ID of every vehicle (used to record the last ID of a vehicle, for debugging)
  185. new LastVehicleID;
  186. // A variable to hold the ID of every object (used to record the last ID of an object, for debugging)
  187. new LastObjectID;
  188. // A variable to hold the total amount of houses that are loaded
  189. new TotalHouses;
  190. // A variable that holds the last speedcam-id
  191. new TotalCameras;
  192. // A variable that holds the total amount of businesses loaded
  193. new TotalBusiness;
  194. // This variable holds the number of the last TimedMessage that was sent to all players
  195. new LastTimedMessage;
  196. // This array holds all timed messages that will be sent every few minutes
  197. new ATimedMessages[][128] =
  198. {
  199. {TXT_TimedRefuel},
  200. {TXT_TimedConvoy},
  201. {TXT_TimedGohome},
  202. {TXT_TimedRentCar},
  203. {TXT_TimedLicense},
  204. {TXT_TimedSpeedTraps},
  205. {TXT_TimedGoBusiness}
  206. // {"{808080}Message"}
  207. // {"{808080}Message"}
  208. // {"{808080}Message"}
  209. // {"{808080}Message"}
  210. // {"{808080}Message"}
  211. // {"{808080}Message"}
  212. };
  213. // Holds the data about the random bonus mission
  214. enum TRandomBonusMission
  215. {
  216. RandomLoad, // Holds the random LoadID
  217. RandomStartLoc, // Holds the random StartLocation ID
  218. RandomEndLoc, // Holds the random EndLocation ID
  219. bool:MissionFinished // Holds true if the bonus mission has been completed by someone, a new random mission will be chosen next
  220. }
  221. // Create one random bonus mission
  222. new RandomBonusMission[TRandomBonusMission];
  223. // Holds the admin-levelnames
  224. new AdminLevelName[6][24] =
  225. {
  226. {"Player"}, // Admin-level 0
  227. {"Moderator"}, // Admin-level 1
  228. {"Helper-admin"}, // Admin-level 2
  229. {"Admin"}, // Admin-level 3
  230. {"Head-admin"}, // Admin-level 4
  231. {"Owner-admin"} // Admin-level 5
  232. };
  233. // Holds the reference to the pickup that can reward you with a trucker/busdriver license
  234. new Pickup_License;
  235. // Setup a custom type that holds the data of pickups
  236. enum TPickupData
  237. {
  238. Float:pux,
  239. Float:puy,
  240. Float:puz,
  241. PickupID
  242. }
  243. // Holds the data for pickups for refuelling (maximum 50 refuel-pickups)
  244. new ARefuelPickups[50][TPickupData];
  245. // Holds the data for pickups for 3 cardealers
  246. new ACarDealerPickups[3][TPickupData];
  247. // Setup a custom type that holds all data about toll-boots
  248. enum TTollGate
  249. {
  250. GateID, // Holds the object-id of the gate
  251. TollPrice, // Holds the price for passing the gate
  252. GateStatus, // Holds the status of the gate (open = 1, closed = 0)
  253. Float:OpenX, // Holds the coordinates when the gate is opened
  254. Float:OpenY, // Holds the coordinates when the gate is opened
  255. Float:OpenZ, // Holds the coordinates when the gate is opened
  256. Float:CloseX, // Holds the coordinates when the gate is closed
  257. Float:CloseY, // Holds the coordinates when the gate is closed
  258. Float:CloseZ // Holds the coordinates when the gate is closed
  259. }
  260. new ATollGates[MAX_TOLLGATES][TTollGate];
  261. // Setup a custom type that holds all data about spikestrips
  262. enum TSpikeStrip
  263. {
  264. SpikeTime, // This holds the time left when the spikestrip automatically disappears
  265. SpikeTimer, // This holds the reference to the timer for spikestrips
  266. SpikeObject, // This holds the ObjectID of the spikestrip object
  267. Float:SpikeX, // This holds the X coordinates of the spikestrip
  268. Float:SpikeY, // This holds the Y coordinates of the spikestrip
  269. Float:SpikeZ // This holds the Z coordinates of the spikestrip
  270. }
  271. new ASpikeStrips[MAX_SPIKESTRIPS][TSpikeStrip];
  272. // Setup a custom type that holds all data about a speedcamera
  273. enum TSpeedCamera
  274. {
  275. Float:CamX, // Holds the X-coordinate of the camera
  276. Float:CamY, // Holds the Y-coordinate of the camera
  277. Float:CamZ, // Holds the Z-coordinate of the camera
  278. Float:CamAngle, // Holds the Angle of the camera
  279. CamSpeed, // Holds the maximum speed allowed to pass this camera without being caught
  280. CamObj1, // Holds the reference to the first camera object
  281. CamObj2 // Holds the reference to the second camera object
  282. }
  283. new ACameras[100][TSpeedCamera];
  284. // Setup a custom type to hold all data about a convoy
  285. enum TConvoyData
  286. {
  287. Members[CONVOY_MAX_MEMBERS], // This array holds the playerid's of all members (at index 0, the leader is stored), so a convoy can hold 1 leader and 9 members
  288. LoadID, // Holds the ID of the load
  289. Location1, // Holds the location-id of the start-location
  290. Location2, // Holds the location-id of the end-location
  291. Status, // Holds the status of the convoy (1 = open, 2 = full, 3 = closed, 0 = empty)
  292. ConvoyStep, // Holds the jobstep for the entire convoy
  293. TrailerModel, // Holds the trailer-model required by the convoy
  294. bool:LeaderInformedTrailers, // Is used to inform the leader ONCE if all members failed to have the same trailer
  295. Text:ConvoyTextLeader, // This is the textdraw for the leader of the convoy
  296. Text:ConvoyTextMember, // This is the textdraw for all members of the convoy
  297. ConvoyTimer // This convoy-timer checks everything for the whole convoy
  298. }
  299. // Setup an array which holds all data for every convoy
  300. new AConvoys[MAX_CONVOYS][TConvoyData];
  301. // Setup a custom type to hold all data about a vehicle
  302. enum TVehicleData
  303. {
  304. bool:MafiaLoad, // Holds True if the vehicle (or trailer) is carrying a mafia-wanted load
  305. Fuel, // Holds the amount of fuel for this vehicle
  306. BelongsToHouse, // Holds the HouseID to which this vehicle belongs
  307. bool:StaticVehicle, // Holds true if this is a static vehicle
  308. bool:Owned, // Holds true if the vehicle is owned by somebody
  309. Owner[24], // Holds the name of the owned of the vehicle
  310. Model, // Holds the vehicle-model of this vehicle
  311. PaintJob, // Holds the ID of the paintjob applied to the vehicle
  312. Components[14], // Holds all Component-ID's for all components on the vehicle
  313. Color1, // Holds the primary color for this vehicle
  314. Color2, // Holds the secundairy color for this vehicle
  315. NeonLeft, // Holds the neon-object on the left side
  316. NeonRight, // Holds the neon-object on the right side
  317. Float:SpawnX, // Holds the X-coordinate of the parking spot for this vehicle
  318. Float:SpawnY, // Holds the Y-coordinate of the parking spot for this vehicle
  319. Float:SpawnZ, // Holds the Z-coordinate of the parking spot for this vehicle
  320. Float:SpawnRot, // Holds the rotation of the parking spot for this vehicle
  321. bool:Clamped // Holds "true" if the vehicle is clamped by an admin
  322. }
  323. // Setup an array which holds all data for every vehicleid, max 2000 vehicles (server limit)
  324. new AVehicleData[2000][TVehicleData];
  325. // Setup a custom type that holds all data for businesses
  326. enum TBusinessData
  327. {
  328. PickupID, // Holds the pickup-id that is linked to this business
  329. Text3D:DoorText, // Holds the reference to the 3DText above the business's pickup
  330. MapIconID, // Holds the ID of the mapicon for the business
  331. BusinessName[100], // Holds the name of the business (this will be displayed above the pickup near the business when it's owned)
  332. Float:BusinessX, // Holds the X-coordinate of the pickup for the Business
  333. Float:BusinessY, // Holds the Y-coordinate of the pickup for the Business
  334. Float:BusinessZ, // Holds the Z-coordinate of the pickup for the Business
  335. BusinessType, // Holds the type of business (well stacked pizza, burger shot, ...), this defines which icon and interior to use
  336. BusinessLevel, // Holds the level of upgrades the business has
  337. LastTransaction, // Holds the amount of minutes when the last transaction took place (buying the business or retrieving the money by the owner)
  338. bool:Owned, // Holds true if the Business is owned by somebody
  339. Owner[24] // Holds the name of the owner of the Business
  340. }
  341. // Holds the data for all houses
  342. new ABusinessData[MAX_BUSINESS][TBusinessData];
  343. // This variable holds the business-time (this value is increased every hour and is used to calculate the amount of money a business
  344. // has generated after the last transaction of the business)
  345. new BusinessTransactionTime;
  346. // Setup a custom type that holds all data for houses
  347. enum THouseData
  348. {
  349. PickupID, // Holds the pickup-id that is linked to this house
  350. Text3D:DoorText, // Holds the reference to the 3DText above the house's pickup
  351. MapIconID, // Holds the ID of the mapicon for the house
  352. HouseName[100], // Holds the name of the house (this will be displayed above the pickup near the house when it's owned)
  353. Insurance, // Holds "1" if the house has an insurance for the vehicles belonging to this house
  354. Float:HouseX, // Holds the X-coordinate of the pickup for the house
  355. Float:HouseY, // Holds the Y-coordinate of the pickup for the house
  356. Float:HouseZ, // Holds the Z-coordinate of the pickup for the house
  357. HouseLevel, // Holds the level of upgrades the house has (also defines how many vehicles can currently be added to the house)
  358. HouseMaxLevel, // Holds the maximum level this house can be upgraded to
  359. HousePrice, // Holds the price for buying the house, the same price applies when upgrading a house per level
  360. bool:Owned, // Holds true if the house is owned by somebody
  361. Owner[24], // Holds the name of the owner of the house
  362. bool:HouseOpened, // Holds true if the house is open to the public (anyone can enter), false means: only the owner can enter it
  363. VehicleIDs[10] // Holds the vehicle-id's of the vehicles linked to this house
  364. }
  365. // Holds the data for all houses
  366. new AHouseData[MAX_HOUSES][THouseData];
  367. // Setup a custom type that holds all data about a house-interior (selected when entering a house, based on the house-level)
  368. enum THouseInterior
  369. {
  370. InteriorName[50], // Holds the name of the interior
  371. InteriorID, // Holds the interior-id
  372. Float:IntX, // Holds the X-coordinate of the spawn-location where you enter the house
  373. Float:IntY, // Holds the Y-coordinate of the spawn-location where you enter the house
  374. Float:IntZ // Holds the Z-coordinate of the spawn-location where you enter the house
  375. }
  376. // Holds the data for all interiors for houses
  377. new AHouseInteriors[][THouseInterior] =
  378. {
  379. {"Dummy", 0, 0.0, 0.0, 0.0}, // Dummy interior (Level 0), as the house-level starts at 1
  380. {"Small motel room", 10, 2262.83, -1137.71, 1050.63}, // Level 1
  381. {"Small house", 2, 2467.36, -1698.38, 1013.51}, // Level 2
  382. {"Small house 2", 1, 223.00, 1289.26, 1082.20}, // Level 3
  383. {"Medium house", 10, 2260.76, -1210.45, 1049.02}, // Level 4
  384. {"Medium house 2", 8, 2365.42, -1131.85, 1050.88}, // Level 5
  385. {"Duplex house", 12, 2324.33, -1144.79, 1050.71}, // Level 6
  386. {"Big house", 15, 295.14, 1474.47, 1080.52}, // Level 7
  387. {"Big duplex house", 3, 235.50, 1189.17, 1080.34}, // Level 8
  388. {"Huge house", 7, 225.63, 1022.48, 1084.07}, // Level 9
  389. {"Mansion", 5, 1299.14, -794.77, 1084.00} // Level 10
  390. };
  391. // Setup a custom type that holds all data about a business
  392. enum TBusinessType
  393. {
  394. InteriorName[50], // Holds the name of the interior
  395. InteriorID, // Holds the interior-id
  396. Float:IntX, // Holds the X-coordinate of the spawn-location where you enter the business
  397. Float:IntY, // Holds the Y-coordinate of the spawn-location where you enter the business
  398. Float:IntZ, // Holds the Z-coordinate of the spawn-location where you enter the business
  399. BusPrice, // Holds the price for the business
  400. BusEarnings, // Holds the earnings for this type of business
  401. IconID // Holds the icon-id which represents the business
  402. }
  403. // Holds the data for all interiors for businesses
  404. new ABusinessInteriors[][TBusinessType] =
  405. {
  406. {"Dummy", 0, 0.0, 0.0, 0.0, 0, 0, 0}, // Dummy business (Type 0)
  407. {"24/7 (Small)", 6, -26.75, -55.75, 1003.6, 500000, 50, 52}, // Type 1 (earnings per day: $1200)
  408. {"24/7 (Medium)", 18, -31.0, -89.5, 1003.6, 750000, 75, 52}, // Type 2 (earnings per day: $1800)
  409. {"Bar", 11, 502.25, -69.75, 998.8, 350000, 35, 49}, // Type 3 (earnings per day: $840)
  410. {"Barber (Small)", 2, 411.5, -21.25, 1001.8, 300000, 30, 7}, // Type 4 (earnings per day: $720)
  411. {"Barber (Medium)", 3, 418.75, -82.5, 1001.8, 350000, 35, 7}, // Type 5 (earnings per day: $840)
  412. {"Betting shop", 3, 833.25, 7.0, 1004.2, 1500000, 150, 52}, // Type 6 (earnings per day: $3600)
  413. {"Burger Shot", 10, 363.5, -74.5, 1001.5, 750000, 75, 10}, // Type 7 (earnings per day: $1800)
  414. {"Casino (4 Dragons)", 10, 2017.25, 1017.75, 996.9, 2500000, 250, 44}, // Type 8 (earnings per day: $6000)
  415. {"Casino (Caligula's)", 1, 2234.0, 1710.75, 1011.3, 2500000, 250, 25}, // Type 9 (earnings per day: $6000)
  416. {"Casino (Small)", 12, 1133.0, -9.5, 1000.7, 2000000, 200, 43}, // Type 10 (earnings per day: $4800)
  417. {"Clothing (Binco)", 15, 207.75, -109.0, 1005.2, 850000, 85, 45}, // Type 11 (earnings per day: $2040)
  418. {"Clothing (Pro)", 3, 207.0, -138.75, 1003.5, 850000, 85, 45}, // Type 12 (earnings per day: $2040)
  419. {"Clothing (Urban)", 1, 203.75, -48.5, 1001.8, 850000, 85, 45}, // Type 13 (earnings per day: $2040)
  420. {"Clothing (Victim)", 5, 226.25, -7.5, 1002.3, 850000, 85, 45}, // Type 14 (earnings per day: $2040)
  421. {"Clothing (ZIP)", 18, 161.5, -92.25, 1001.8, 850000, 85, 45}, // Type 15 (earnings per day: $2040)
  422. {"Cluckin' Bell", 9, 365.75, -10.75, 1001.9, 750000, 75, 14}, // Type 16 (earnings per day: $1800)
  423. {"Disco (Small)", 17, 492.75, -22.0, 1000.7, 1000000, 100, 48}, // Type 17 (earnings per day: $2400)
  424. {"Disco (Large)", 3, -2642.0, 1406.5, 906.5, 1200000, 120, 48}, // Type 18 (earnings per day: $2880)
  425. {"Gym (LS)", 5, 772.0, -3.0, 1000.8, 500000, 50, 54}, // Type 19 (earnings per day: $1200)
  426. {"Gym (SF)", 6, 774.25, -49.0, 1000.6, 500000, 50, 54}, // Type 20 (earnings per day: $1200)
  427. {"Gym (LV)", 7, 774.25, -74.0, 1000.7, 500000, 50, 54}, // Type 21 (earnings per day: $1200)
  428. {"Motel", 15, 2216.25, -1150.5, 1025.8, 1000000, 100, 37}, // Type 22 (earnings per day: $2400)
  429. {"RC shop", 6, -2238.75, 131.0, 1035.5, 600000, 60, 46}, // Type 23 (earnings per day: $1440)
  430. {"Sex-shop", 3, -100.25, -22.75, 1000.8, 800000, 80, 38}, // Type 24 (earnings per day: $1920)
  431. {"Slaughterhouse", 1, 933.75, 2151.0, 1011.1, 500000, 50, 50}, // Type 25 (earnings per day: $1200)
  432. {"Stadium (Bloodbowl)", 15, -1394.25, 987.5, 1024.0, 1750000, 175, 33}, // Type 26 (earnings per day: $4200)
  433. {"Stadium (Kickstart)", 14, -1410.75, 1591.25, 1052.6, 1750000, 175, 33}, // Type 27 (earnings per day: $4200)
  434. {"Stadium (8-Track)", 7, -1396.0, -208.25, 1051.2, 1750000, 175, 33}, // Type 28 (earnings per day: $4200)
  435. {"Stadium (Dirt Bike)", 4, -1425.0, -664.5, 1059.9, 1750000, 175, 33}, // Type 29 (earnings per day: $4200)
  436. {"Stripclub (Small)", 3, 1212.75, -30.0, 1001.0, 750000, 75, 48}, // Type 30 (earnings per day: $1800)
  437. {"Stripclub (Large)", 2, 1204.75, -12.5, 1001.0, 900000, 90, 48}, // Type 31 (earnings per day: $2160)
  438. {"Tattoo LS", 16, -203.0, -24.25, 1002.3, 500000, 50, 39}, // Type 32 (earnings per day: $1200)
  439. {"Well Stacked Pizza", 5, 372.25, -131.50, 1001.5, 650000, 65, 29} // Type 33 (earnings per day: $1560)
  440. };
  441. // This holds all data about a report
  442. enum TReport
  443. {
  444. bool:ReportUsed, // Holds true if this report-spot has been used
  445. ReportName[24], // Holds the name of the offender
  446. ReportReason[128] // Holds the reason why he's been reported
  447. }
  448. // This array holds all data about the recent 50 reports that have been reported
  449. new AReports[50][TReport];
  450. new ReportList[5000]; // Setup an array to holds the reports for the report-dialog
  451. // Setup all the fields required for the player data (Speedometer TextDraw, current job, ...)
  452. enum TPlayerData
  453. {
  454. PlayerPassword[50], // Holds the password of the player's account
  455. PlayerNewPassword[50], // Holds the new password for the player
  456. PlayerLevel, // The admin-level of the player
  457. PlayerJailed, // Holds jail-time left for this player
  458. PlayerJailedTimer, // Holds the reference to the jail-timer
  459. PlayerFrozen, // Holds the time this player is frozen
  460. PlayerFrozenTimer, // Holds the reference to the frozen-timer
  461. Warnings, // Holds the number of warnings for this player
  462. Bans, // Holds the number of bans for this player
  463. BanTime, // Holds the time where the player is unbanned automatically (when the ban is over)
  464. bool:LoggedIn, // Holds true if the player has properly logged in
  465. bool:Muted, // Holds "true" if the player is muted
  466. bool:RulesRead, // Holds "true" if the player accepted the rules
  467. AutoReportTime, // Used to prevent the anti-hack system reporting the player every half a second when the player uses hacks
  468. TruckerLicense, // Holds "1" if the player has acquired his truckers-license
  469. BusLicense, // Holds "1" if the player has acquired his busdriver license
  470. PlayerMoney, // Holds the money of this player
  471. PlayerScore, // Holds the score of this player
  472. PlayerName[24], // Holds the name of the player
  473. Houses[MAX_HOUSESPERPLAYER], // Holds the HouseID's of the houses that the player owns (index of the AHouseData array)
  474. CurrentHouse, // Holds the HouseID to track in which house the player currently is (used when accessing the housemenu)
  475. Business[MAX_BUSINESSPERPLAYER], // Holds the BusinessID's of the business that the player owns
  476. CurrentBusiness, // Holds the BusinessID to track in which business the player currently is (used when accessing the businessmenu)
  477. PlayerClass, //Holds the Class that the player chose (1 = truckdriver, 2 = taxidriver, ... -> see DEFINES)
  478. SpectateID, // Holds the ID of the other player which this player is spectating
  479. SpectateVehicle, // If the target player is inside a vehicle, store it here
  480. SpectateType, // Holds the type of spectating (none, player or vehicle)
  481. Float:PreviousX, // Holds the previous X location of the player (used to detect airbreak hacks)
  482. Float:PreviousY, // Holds the previous Y location of the player (used to detect airbreak hacks)
  483. Float:PreviousZ, // Holds the previous Z location of the player (used to detect airbreak hacks)
  484. PreviousInt, // Holds the previous interior id (used to detect airbreak hacks)
  485. StatsTruckerJobs, // Holds the number of succesfully completed trucker-missions
  486. StatsConvoyJobs, // Holds the number of completed trucking-routes when in a convoy
  487. StatsBusDriverJobs, // Holds the number of completed busroutes
  488. StatsPilotJobs, // Holds the number of completed pilot-missions
  489. StatsMafiaJobs, // Holds the number of completed mafia-missions
  490. StatsMafiaStolen, // Holds the number of succesfully deliveries of stolen mafialoads
  491. StatsPoliceFined, // Holds the number of fined players for police
  492. StatsPoliceJailed, // Holds the number of jailed players for police
  493. StatsCourierJobs, // Holds the number of completed courier-jobs
  494. StatsAssistance, // Holds the number of player-vehicles that this player has repaired/refuelled
  495. StatsRoadworkerJobs, // Holds the number of completed roadworker jobs
  496. Float:StatsMetersDriven, // Holds the total kilometers that the player has driven already
  497. Text:SpeedometerText, // The TextDraw of the speedometer for this player
  498. Text:FuelGauge, // The textdraw of the fuel-gauge for this player
  499. SpeedometerTimer, // Holds the reference to the speedometer timer for this player
  500. PlayerSpeed, // Holds the speed of the player
  501. PlayerCaughtSpeeding, // This holds a value to prevent being caught multiple times by the same speedcamera
  502. Timer_PoliceCanJailMe, // This holds a reference to the timer which is started when the player got warned by a police player
  503. Value_PoliceCanJailMe, // This holds the remaining time for the Timer_PoliceCanJailPlayer timer
  504. bool:PoliceCanJailMe, // This holds "true" when the player was warned by a police player but didn't stop before the timer ran out
  505. bool:PoliceWarnedMe, // This holds "true" is the player got caught by a police player and got at least one warning
  506. bool:AssistanceNeeded, // Holds "true" is the player called for assistance
  507. bool:JobStarted, // States that the player has started a job or not
  508. Text:MissionText, // Displays the mission info at the bottom of the screen
  509. JobID, // Mission ID of the job (in the appropriate array, based on the PlayerClass), not used by truckers
  510. JobStep, // Current step of the job (for trucker: 1 = going to load, 2 = delivering goods to destination)
  511. Passengers, // Holds the number of passengers (used for busdriver, taxi classes)
  512. PlayerCheckTimer, // A special timer used by certain classes (police, mafia) to check players every second if they're wanted/carrying mafialoads
  513. LoadingTimer, // The timer used for loading and unloading during jobs
  514. VehicleTimerTime, // Holds the remaining seconds for the global vehicletimer
  515. VehicleID, // Holds the ID of the vehicle that the player is driving during his job
  516. TrailerID, // Holds the ID of the trailer that the player has attached during his job (is 0 if no trailer attached)
  517. LoadID, // Holds the ID of the load
  518. JobLoc1, // Holds the LocationID where to pickup the load (used in trucking missions)
  519. JobLoc2, // Holds the LocationID where to deliver the load (used in trucking missions)
  520. bool:Overloaded, // Holds True if the player's vehicle is overloaded (wanted level increases by 2)
  521. bool:MafiaLoad, // Holds True is the player's load is wanted by the mafia
  522. bool:MafiaLoadHijacked, // Holds true if the mafia-player has hijacked a mafia-load
  523. bool:InConvoy, // Holds true if the player has joined a convoy already
  524. ConvoyID, // Holds the ID of the convoy where this player is a member
  525. CourierHouses[11], // This holds up to 10 HouseID's for use during Courier-missions
  526. CourierMaxStep, // This holds the max number of houses to deliver packages to
  527. DialogFirstItem, // Holds the first array-index where a split dialog must start
  528. DialogCarFirstCar, // Holds the first array-index where the carlist should start when the player asks to choose a car to spawn ("/car")
  529. DialogPlaneFirstPlane, // Holds the first array-index where the planelist should start when the player asks to choose a plane to spawn ("/plane")
  530. DialogTrailerFirstTrailer, // Holds the first array-index where the trailerlist should start when the player asks to choose a trailer to spawn ("/trailer")
  531. DialogRentVClass, // Holds the ID of the chosen vehicle class to process when renting a vehicle
  532. DialogRentCarIndex, // Holds the index in the ABuyableVehicles array which vehicle the player chose to rent
  533. DialogBuyVClass, // Holds the ID of the chose vehicle class to process when buying a vehicle
  534. DialogBuyCarIndex, // Holds the index in the ABuyableVehicles array which vehicle the player chose to buy
  535. DialogGetCarHouseID, // Holds the HouseID from which to get a vehicle when using /getcar
  536. DialogOtherPlayer, // Holds the id of the other player when viewing that other player's stats
  537. DialogOtherPlayerHouse, // Holds the HouseID of the other player when viewing the stats for that house
  538. BankPassword[24], // Bank-system: Used to hold the password to your bank-account
  539. bool:BankLoggedIn, // Bank-system: Used to determine if you have logged in to your bank account
  540. BankMoney, // Bank-system: Used to hold the money in your bank-account
  541. UseMoney, // Bank-system: Used to hold the money you're be transferring to another player's account
  542. LastIntrestTime, // Bank-system: Used to hold the last time where your bank account has received intrest
  543. RentedVehicleID // Holds the vehicle-id of the rented vehicle (if any)
  544. }
  545. // Create an array to hold the playerdata for every player
  546. new APlayerData[MAX_PLAYERS][TPlayerData];
  547. // This variable holds the intrest-time (this value is increased every hour
  548. // and is used to calculate the intrest you receive on your bank account
  549. new CurrentIntrestTime;
  550. // Setup all the fields for a spawnlocation
  551. enum TSpawnLocation
  552. {
  553. Float:SpawnX,
  554. Float:SpawnY,
  555. Float:SpawnZ,
  556. Float:SpawnAngle
  557. }
  558. // Setup spawnlocations for each class (when selecting "Spawn" at class-selection, a random spawnlocation is selected)
  559. new ASpawnLocationsTrucker[][TSpawnLocation] =
  560. {
  561. {-525.0, -502.0, 26.0, 0.0}, // Fallen Tree Depot
  562. {-74.7, -1137.5, 4.5, 0.0}, // Flint Trucking Depot
  563. {1457.0, 975.5, 11.0, 0.0}, // LVA Freight Depot
  564. {-2136.0, -247.5, 36.5, 270.0}, // Doherty Depot
  565. {1766.5, -2040.7, 14.0, 270.0}, // El Corona Depot
  566. {-546.0, 2594.0, 54.0, 270.0}, // Las Payasdas Depot
  567. {332.0, 900.0, 25.0, 205.0}, // Quarry Top
  568. {-1575.0, -2724.0, 49.0, 146.0} // Shady Creek Depot
  569. };
  570. new ASpawnLocationsBusDriver[][TSpawnLocation] =
  571. {
  572. {1809.0, -1905.0, 13.6, 90.0}, // Los Santos busdepot
  573. {-1983.0, 110.0, 27.7, 180.0}, // San Fierro busdepot
  574. {1060.0, 1260.0, 11.0, 270.0} // Las Venturas busdepot
  575. };
  576. new ASpawnLocationsPilot[][TSpawnLocation] =
  577. {
  578. {2010.0, -2345.0, 13.6, 90.0}, // Los Santos airport
  579. {-1211.0, -105.0, 14.2, 135.0}, // San Fierro airport
  580. {1630.0, 1615.0, 10.9, 90.0} // Las Venturas airport
  581. };
  582. new ASpawnLocationsPolice[][TSpawnLocation] =
  583. {
  584. {1568.5, -1693.5, 6.0, 180.0}, // Los Santos police station
  585. {-1590.0, 716.25, -5.0, 270.0}, // San Fierro police station
  586. {2275.0, 2460.0, 10.9, 90.0} // Las Venturas police station
  587. };
  588. new ASpawnLocationsMafia[][TSpawnLocation] =
  589. {
  590. {2822.5, 898.5, 10.8, 0.0} // Mafia hideout
  591. };
  592. new ASpawnLocationsCourier[][TSpawnLocation] =
  593. {
  594. {798.0, -618.75, 16.4, 0.0}, // Los Santos
  595. {-1849.25, -135.0, 12.0, 90.0}, // San Fierro
  596. {1050.5, 1931.0, 10.9, 270.0} // Las Venturas
  597. };
  598. new ASpawnLocationsAssistance[][TSpawnLocation] =
  599. {
  600. {211.25, 24.75, 2.6, 270.0}
  601. };
  602. new ASpawnLocationsRoadWorker[][TSpawnLocation] =
  603. {
  604. {-1866.25, -1715.25, 22.7, 125.0} // Junkyard
  605. };
  606. // Setup an array that holds all prices for vehicle-components
  607. new AVehicleModPrices[] =
  608. {
  609. 400, // ID 1000, Spoiler Pro Certain Transfender cars
  610. 550, // ID 1001, Spoiler Win Certain Transfender cars
  611. 200, // ID 1002, Spoiler Drag Certain Transfender cars
  612. 250, // ID 1003, Spoiler Alpha Certain Transfender cars
  613. 100, // ID 1004, Hood Champ Scoop Certain Transfender cars
  614. 150, // ID 1005, Hood Fury Scoop Certain Transfender cars
  615. 80, // ID 1006, Roof Roof Scoop Certain Transfender cars
  616. 500, // ID 1007, Sideskirt Right Sideskirt Certain Transfender cars
  617. 500, // ID 1008, Nitro 5 times Most cars, Most planes and Most Helicopters
  618. 200, // ID 1009, Nitro 2 times Most cars, Most planes and Most Helicopters
  619. 1000, // ID 1010, Nitro 10 times Most cars, Most planes and Most Helicopters
  620. 220, // ID 1011, Hood Race Scoop Certain Transfender cars
  621. 250, // ID 1012, Hood Worx Scoop Certain Transfender cars
  622. 100, // ID 1013, Lamps Round Fog Certain Transfender cars
  623. 400, // ID 1014, Spoiler Champ Certain Transfender cars
  624. 500, // ID 1015, Spoiler Race Certain Transfender cars
  625. 200, // ID 1016, Spoiler Worx Certain Transfender cars
  626. 500, // ID 1017, Sideskirt Left Sideskirt Certain Transfender cars
  627. 350, // ID 1018, Exhaust Upswept Most cars
  628. 300, // ID 1019, Exhaust Twin Most cars
  629. 250, // ID 1020, Exhaust Large Most cars
  630. 200, // ID 1021, Exhaust Medium Most cars
  631. 150, // ID 1022, Exhaust Small Most cars
  632. 350, // ID 1023, Spoiler Fury Certain Transfender cars
  633. 50, // ID 1024, Lamps Square Fog Certain Transfender cars
  634. 1000, // ID 1025, Wheels Offroad Certain Transfender cars
  635. 480, // ID 1026, Sideskirt Right Alien Sideskirt Sultan
  636. 480, // ID 1027, Sideskirt Left Alien Sideskirt Sultan
  637. 770, // ID 1028, Exhaust Alien Sultan
  638. 680, // ID 1029, Exhaust X-Flow Sultan
  639. 370, // ID 1030, Sideskirt Left X-Flow Sideskirt Sultan
  640. 370, // ID 1031, Sideskirt Right X-Flow Sideskirt Sultan
  641. 170, // ID 1032, Roof Alien Roof Vent Sultan
  642. 120, // ID 1033, Roof X-Flow Roof Vent Sultan
  643. 790, // ID 1034, Exhaust Alien Elegy
  644. 150, // ID 1035, Roof X-Flow Roof Vent Elegy
  645. 500, // ID 1036, SideSkirt Right Alien Sideskirt Elegy
  646. 690, // ID 1037, Exhaust X-Flow Elegy
  647. 190, // ID 1038, Roof Alien Roof Vent Elegy
  648. 390, // ID 1039, SideSkirt Right X-Flow Sideskirt Elegy
  649. 500, // ID 1040, SideSkirt Left Alien Sideskirt Elegy
  650. 390, // ID 1041, SideSkirt Right X-Flow Sideskirt Elegy
  651. 1000, // ID 1042, SideSkirt Right Chrome Sideskirt Broadway
  652. 500, // ID 1043, Exhaust Slamin Broadway
  653. 500, // ID 1044, Exhaust Chrome Broadway
  654. 510, // ID 1045, Exhaust X-Flow Flash
  655. 710, // ID 1046, Exhaust Alien Flash
  656. 670, // ID 1047, SideSkirt Right Alien Sideskirt Flash
  657. 530, // ID 1048, SideSkirt Right X-Flow Sideskirt Flash
  658. 810, // ID 1049, Spoiler Alien Flash
  659. 620, // ID 1050, Spoiler X-Flow Flash
  660. 670, // ID 1051, SideSkirt Left Alien Sideskirt Flash
  661. 530, // ID 1052, SideSkirt Left X-Flow Sideskirt Flash
  662. 130, // ID 1053, Roof X-Flow Flash
  663. 210, // ID 1054, Roof Alien Flash
  664. 230, // ID 1055, Roof Alien Stratum
  665. 520, // ID 1056, Sideskirt Right Alien Sideskirt Stratum
  666. 430, // ID 1057, Sideskirt Right X-Flow Sideskirt Stratum
  667. 620, // ID 1058, Spoiler Alien Stratum
  668. 720, // ID 1059, Exhaust X-Flow Stratum
  669. 530, // ID 1060, Spoiler X-Flow Stratum
  670. 180, // ID 1061, Roof X-Flow Stratum
  671. 520, // ID 1062, Sideskirt Left Alien Sideskirt Stratum
  672. 430, // ID 1063, Sideskirt Left X-Flow Sideskirt Stratum
  673. 830, // ID 1064, Exhaust Alien Stratum
  674. 850, // ID 1065, Exhaust Alien Jester
  675. 750, // ID 1066, Exhaust X-Flow Jester
  676. 250, // ID 1067, Roof Alien Jester
  677. 200, // ID 1068, Roof X-Flow Jester
  678. 550, // ID 1069, Sideskirt Right Alien Sideskirt Jester
  679. 450, // ID 1070, Sideskirt Right X-Flow Sideskirt Jester
  680. 550, // ID 1071, Sideskirt Left Alien Sideskirt Jester
  681. 450, // ID 1072, Sideskirt Left X-Flow Sideskirt Jester
  682. 1100, // ID 1073, Wheels Shadow Most cars
  683. 1030, // ID 1074, Wheels Mega Most cars
  684. 980, // ID 1075, Wheels Rimshine Most cars
  685. 1560, // ID 1076, Wheels Wires Most cars
  686. 1620, // ID 1077, Wheels Classic Most cars
  687. 1200, // ID 1078, Wheels Twist Most cars
  688. 1030, // ID 1079, Wheels Cutter Most cars
  689. 900, // ID 1080, Wheels Switch Most cars
  690. 1230, // ID 1081, Wheels Grove Most cars
  691. 820, // ID 1082, Wheels Import Most cars
  692. 1560, // ID 1083, Wheels Dollar Most cars
  693. 1350, // ID 1084, Wheels Trance Most cars
  694. 770, // ID 1085, Wheels Atomic Most cars
  695. 100, // ID 1086, Stereo Stereo Most cars
  696. 1500, // ID 1087, Hydraulics Hydraulics Most cars
  697. 150, // ID 1088, Roof Alien Uranus
  698. 650, // ID 1089, Exhaust X-Flow Uranus
  699. 450, // ID 1090, Sideskirt Right Alien Sideskirt Uranus
  700. 100, // ID 1091, Roof X-Flow Uranus
  701. 750, // ID 1092, Exhaust Alien Uranus
  702. 350, // ID 1093, Sideskirt Right X-Flow Sideskirt Uranus
  703. 450, // ID 1094, Sideskirt Left Alien Sideskirt Uranus
  704. 350, // ID 1095, Sideskirt Right X-Flow Sideskirt Uranus
  705. 1000, // ID 1096, Wheels Ahab Most cars
  706. 620, // ID 1097, Wheels Virtual Most cars
  707. 1140, // ID 1098, Wheels Access Most cars
  708. 1000, // ID 1099, Sideskirt Left Chrome Sideskirt Broadway
  709. 940, // ID 1100, Bullbar Chrome Grill Remington
  710. 780, // ID 1101, Sideskirt Left `Chrome Flames` Sideskirt Remington
  711. 830, // ID 1102, Sideskirt Left `Chrome Strip` Sideskirt Savanna
  712. 3250, // ID 1103, Roof Convertible Blade
  713. 1610, // ID 1104, Exhaust Chrome Blade
  714. 1540, // ID 1105, Exhaust Slamin Blade
  715. 780, // ID 1106, Sideskirt Right `Chrome Arches` Remington
  716. 780, // ID 1107, Sideskirt Left `Chrome Strip` Sideskirt Blade
  717. 780, // ID 1108, Sideskirt Right `Chrome Strip` Sideskirt Blade
  718. 1610, // ID 1109, Rear Bullbars Chrome Slamvan
  719. 1540, // ID 1110, Rear Bullbars Slamin Slamvan
  720. 55, // ID 1111, Front Sign? Little Sign? Slamvan ???
  721. 55, // ID 1112, Front Sign? Little Sign? Slamvan ???
  722. 3340, // ID 1113, Exhaust Chrome Slamvan
  723. 3250, // ID 1114, Exhaust Slamin Slamvan
  724. 2130, // ID 1115, Front Bullbars Chrome Slamvan
  725. 2050, // ID 1116, Front Bullbars Slamin Slamvan
  726. 2040, // ID 1117, Front Bumper Chrome Slamvan
  727. 780, // ID 1118, Sideskirt Right `Chrome Trim` Sideskirt Slamvan
  728. 940, // ID 1119, Sideskirt Right `Wheelcovers` Sideskirt Slamvan
  729. 780, // ID 1120, Sideskirt Left `Chrome Trim` Sideskirt Slamvan
  730. 940, // ID 1121, Sideskirt Left `Wheelcovers` Sideskirt Slamvan
  731. 780, // ID 1122, Sideskirt Right `Chrome Flames` Sideskirt Remington
  732. 860, // ID 1123, Bullbars Bullbar Chrome Bars Remington
  733. 780, // ID 1124, Sideskirt Left `Chrome Arches` Sideskirt Remington
  734. 1120, // ID 1125, Bullbars Bullbar Chrome Lights Remington
  735. 3340, // ID 1126, Exhaust Chrome Exhaust Remington
  736. 3250, // ID 1127, Exhaust Slamin Exhaust Remington
  737. 3340, // ID 1128, Roof Vinyl Hardtop Blade
  738. 1650, // ID 1129, Exhaust Chrome Savanna
  739. 3380, // ID 1130, Roof Hardtop Savanna
  740. 3290, // ID 1131, Roof Softtop Savanna
  741. 1590, // ID 1132, Exhaust Slamin Savanna
  742. 830, // ID 1133, Sideskirt Right `Chrome Strip` Sideskirt Savanna
  743. 800, // ID 1134, SideSkirt Right `Chrome Strip` Sideskirt Tornado
  744. 1500, // ID 1135, Exhaust Slamin Tornado
  745. 1000, // ID 1136, Exhaust Chrome Tornado
  746. 800, // ID 1137, Sideskirt Left `Chrome Strip` Sideskirt Tornado
  747. 580, // ID 1138, Spoiler Alien Sultan
  748. 470, // ID 1139, Spoiler X-Flow Sultan
  749. 870, // ID 1140, Rear Bumper X-Flow Sultan
  750. 980, // ID 1141, Rear Bumper Alien Sultan
  751. 150, // ID 1142, Vents Left Oval Vents Certain Transfender Cars
  752. 150, // ID 1143, Vents Right Oval Vents Certain Transfender Cars
  753. 100, // ID 1144, Vents Left Square Vents Certain Transfender Cars
  754. 100, // ID 1145, Vents Right Square Vents Certain Transfender Cars
  755. 490, // ID 1146, Spoiler X-Flow Elegy
  756. 600, // ID 1147, Spoiler Alien Elegy
  757. 890, // ID 1148, Rear Bumper X-Flow Elegy
  758. 1000, // ID 1149, Rear Bumper Alien Elegy
  759. 1090, // ID 1150, Rear Bumper Alien Flash
  760. 840, // ID 1151, Rear Bumper X-Flow Flash
  761. 910, // ID 1152, Front Bumper X-Flow Flash
  762. 1200, // ID 1153, Front Bumper Alien Flash
  763. 1030, // ID 1154, Rear Bumper Alien Stratum
  764. 1030, // ID 1155, Front Bumper Alien Stratum
  765. 920, // ID 1156, Rear Bumper X-Flow Stratum
  766. 930, // ID 1157, Front Bumper X-Flow Stratum
  767. 550, // ID 1158, Spoiler X-Flow Jester
  768. 1050, // ID 1159, Rear Bumper Alien Jester
  769. 1050, // ID 1160, Front Bumper Alien Jester
  770. 950, // ID 1161, Rear Bumper X-Flow Jester
  771. 650, // ID 1162, Spoiler Alien Jester
  772. 450, // ID 1163, Spoiler X-Flow Uranus
  773. 550, // ID 1164, Spoiler Alien Uranus
  774. 850, // ID 1165, Front Bumper X-Flow Uranus
  775. 950, // ID 1166, Front Bumper Alien Uranus
  776. 850, // ID 1167, Rear Bumper X-Flow Uranus
  777. 950, // ID 1168, Rear Bumper Alien Uranus
  778. 970, // ID 1169, Front Bumper Alien Sultan
  779. 880, // ID 1170, Front Bumper X-Flow Sultan
  780. 990, // ID 1171, Front Bumper Alien Elegy
  781. 900, // ID 1172, Front Bumper X-Flow Elegy
  782. 950, // ID 1173, Front Bumper X-Flow Jester
  783. 1000, // ID 1174, Front Bumper Chrome Broadway
  784. 900, // ID 1175, Front Bumper Slamin Broadway
  785. 1000, // ID 1176, Rear Bumper Chrome Broadway
  786. 900, // ID 1177, Rear Bumper Slamin Broadway
  787. 2050, // ID 1178, Rear Bumper Slamin Remington
  788. 2150, // ID 1179, Front Bumper Chrome Remington
  789. 2130, // ID 1180, Rear Bumper Chrome Remington
  790. 2050, // ID 1181, Front Bumper Slamin Blade
  791. 2130, // ID 1182, Front Bumper Chrome Blade
  792. 2040, // ID 1183, Rear Bumper Slamin Blade
  793. 2150, // ID 1184, Rear Bumper Chrome Blade
  794. 2040, // ID 1185, Front Bumper Slamin Remington
  795. 2095, // ID 1186, Rear Bumper Slamin Savanna
  796. 2175, // ID 1187, Rear Bumper Chrome Savanna
  797. 2080, // ID 1188, Front Bumper Slamin Savanna
  798. 2200, // ID 1189, Front Bumper Chrome Savanna
  799. 1200, // ID 1190, Front Bumper Slamin Tornado
  800. 1040, // ID 1191, Front Bumper Chrome Tornado
  801. 940, // ID 1192, Rear Bumper Chrome Tornado
  802. 1100, // ID 1193 Rear Bumper Slamin Tornado
  803. };
  804. enum TCommands
  805. {
  806. CommandLevel, // Holds the admin-level required to execute this command
  807. CommandStructure[128], // Holds the command-structure
  808. CommandDescription[128] // Holds the description of the command
  809. }
  810. new ACommands[][TCommands] =
  811. {
  812. {0, "/admins", "Displays all online admins"},
  813. {0, "/assist", "Call for assistance to repair/refuel your vehicle"},
  814. {0, "/bank", "Register/login/manage your bank account"},
  815. {0, "/busmenu", "Displays the menu for controlling your business"},
  816. {0, "/buybus", "Buy a business (you must be in range of a business)"},
  817. {0, "/buyhouse", "Buy a house (you must be in range of a house"},
  818. {0, "/changepassword", "Allows the player to change his login password"},
  819. {0, "/cmds", "Displays all the commands"},
  820. {0, "/color1", "Changes the primary color of your vehicle"},
  821. {0, "/color2", "Changes the secundary color of your vehicle"},
  822. {0, "/convoy", "Lets you start or join a convoy"},
  823. {0, "/convoycancel", "Cancels the convoy you're in"},
  824. {0, "/convoykick <OtherPlayerID>", "Kicks a member from the convoy"},
  825. {0, "/convoyleave", "You leave the convoy"},
  826. {0, "/convoymembers", "Displays all convoy members"},
  827. {0, "/detach", "Detaches your trailer"},
  828. {0, "/enter", "Enter your business or house"},
  829. {0, "/flip", "Flips your vehicle back onto it's wheels"},
  830. {0, "/getcar", "Teleports a house-car to your location"},
  831. {0, "/givecash <OtherPlayer> <Money>", "Give money to another player"},
  832. {0, "/gobus", "Teleport to a business you own"},
  833. {0, "/gohome", "Teleport to a house you own"},
  834. {0, "/help", "Get help information about a specific topic"},
  835. {0, "/housemenu", "Displays the menu for controlling your house"},
  836. {0, "/kill", "Kill yourself"},
  837. {0, "/me <action>", "Just a silly command to repeat your text"},
  838. {0, "/overload", "Lets a trucker to overload his vehicle"},
  839. {0, "/paint <paintjobid (0-2)>", "Apply a paintjob to a vehicle you own"},
  840. {0, "/park", "Park your vehicle where it's standing now"},
  841. {0, "/pm <otherplayerid> <message>", "Send a private message to another player"},
  842. {0, "/reclass", "Choose another class"},
  843. {0, "/rentcar", "Rent a car from a cardealer"},
  844. {0, "/report <OtherPlayer> <Your report>", "Report a player for breaking the rules"},
  845. {0, "/rescue", "Teleports you to a location where your class starts"},
  846. {0, "/rules", "Display the rules and get a small gift (only once)"},
  847. {0, "/say <message>", "Say something to players that have same class as you"},
  848. {0, "/spike", "Creates a spikestrip (can only be used by cops)"},
  849. {0, "/stats", "Displays statistics about yourself"},
  850. {0, "/stopwork", "Ends the current job"},
  851. {0, "/unclamp", "Allows a player to un-clamp his vehicles for a price"},
  852. {0, "/work", "Starts a job"},
  853. {1, "/asay <message>", "Admin-chat (this allows admins to chat privately)"},
  854. {1, "/bike", "Spawns a bike of your choice"},
  855. {1, "/boat", "Spawns a boat of your choice"},
  856. {1, "/car", "Spawns a car of your choice"},
  857. {1, "/endspec", "Stop spectating a player"},
  858. {1, "/engine <EngineStatus (0/1)>", "Toggle engine-status on or off"},
  859. {1, "/freeze <OtherPlayer> <Duration> <Reason>", "Freeze a player for a certain time in seconds"},
  860. {1, "/fuel", "Refuels your vehicle for free"},
  861. {1, "/get <OtherPlayer>", "Teleports another player to your location"},
  862. {1, "/jail <PlayerToJail> <JailTime> <Reason>", "Jails another player for a certain time in seconds"},
  863. {1, "/kick <PlayerToKick> <Reason>", "Kick a player"},
  864. {1, "/mute <OtherPlayer> <Reason>", "Mute a player"},
  865. {1, "/mutes", "Display muted players"},
  866. {1, "/nos", "Adds nitro to your vehicle"},
  867. {1, "/plane", "Spawns a plane of your choice"},
  868. {1, "/port <OtherPlayer>", "Teleport yourself to another player"},
  869. {1, "/portloc <x> <y> <z>", "Teleport yourself to the given coordinates"},
  870. {1, "/portvehicle <CarID>", "Teleport yourself to a vehicle"},
  871. {1, "/rep", "Show the last 50 reports in a dialog"},
  872. {1, "/repair", "Repairs your vehicle for free"},
  873. {1, "/respawn <Vehicle-id>", "Forces a vehicle to respawn"},
  874. {1, "/spec <OtherPlayer>", "Spectate a player"},
  875. {1, "/tele <PlayerToPort> <TargetPlayer>", "Teleport a player to another player"},
  876. {1, "/trailer", "Spawns a trailer of your choice"},
  877. {1, "/unmute <OtherPlayer>", "Un-mutes a player"},
  878. {1, "/warn <PlayerToWarn> <Reason>", "Warn a player, up to three times"},
  879. {2, "/eject <OtherPlayer>", "Ejects a player from his vehicle"},
  880. {2, "/wanted <PlayerID> <Stars>", "Set a player's wanted level"},
  881. {3, "/ban <PlayerToBan> <Days> <Hours> <Reason>", "Ban a player for a certain time"},
  882. {3, "/caroption", "Changes some options for your vehicle"},
  883. {3, "/cleanupcars", "Removes all spawned vehicles from the map"},
  884. {3, "/fly", "Equips yourself with a jetpack"},
  885. {3, "/healall", "Heals all the players"},
  886. {3, "/ipban <PlayerToBan> <Reason>", "Ban a player's IP"},
  887. {3, "/loc", "Display your current location"},
  888. {3, "/plate <NumberPlate>", "Changes the plate on your vehicle"},
  889. {3, "/rangeban <PlayerToBan> <Reason>", "Ban a player's entire IP-range"},
  890. {3, "/repairall", "Repair all vehicles for free"},
  891. {3, "/setscore <OtherPlayer> <Score>", "Sets another player's score to the given value"},
  892. {3, "/unban <PlayerToUnban>", "Unban a player"},
  893. {4, "/cash <amount>", "Give cash to yourself"},
  894. {4, "/score <amount>", "Give scorepoints to yourself"},
  895. {4, "/setskin <skin-id (0-299)>", "Lets an admin choose another skin"},
  896. {4, "/weather", "Changes the weather"},
  897. {5, "/clamp <vehicleid> <reason>", "Delete a player-owned vehicle"},
  898. {5, "/createbusiness", "Create a business at your location"},
  899. {5, "/createcamera <max_speed>", "Create s speedcamera at your location"},
  900. {5, "/createhouse <price> <maxlevel (1-10)>", "Create a new house"},
  901. {5, "/delbusiness", "Delete a business"},
  902. {5, "/delcamera", "Delete a speedcamera"},
  903. {5, "/delhouse", "Delete a house"},
  904. {5, "/delobject <ObjectID>", "Deletes an object"},
  905. {5, "/delvehicle <VehicleID>", "Deletes a vehicle"},
  906. {5, "/fixplayer <OtherPlayer>", "Fix a player's property (re-add his houses and buinesses)"},
  907. {5, "/object <ObjectModel> <x> <y> <z> <Angle>", "Create an object"},
  908. {5, "/pickup <PickupModel> <x> <y> <z> <PickupType>", "Create a pickup"},
  909. {5, "/resetplayer <OtherPlayer> <Money (0/1)> <Score (0/1)> <Stats (0/1)> <Reason>", "Reset a player's money, score, stats"},
  910. {5, "/restart", "Restarts the server in 2 minutes"},
  911. {5, "/saveloc <ID> <LocationName>", "Saves your location to a file"},
  912. {5, "/setlevel <OtherPlayer> <AdminLevel>", "Changes a player's admin-level"},
  913. {5, "/vehicle <VehicleModel> <x> <y> <z> <Angle> <SpawnDelay>", "Create a vehicle"}
  914. };
  915. // Help text stuff
  916. #define HelpIDTruckingClass 0 // Defines the ID for getting help about the trucking class
  917. #define HelpIDBusDriverClass 1 // Defines the ID for getting help about the busdriver class
  918. #define HelpIDMafiaClass 2 // Defines the ID for getting help about the mafia class
  919. #define HelpIDPoliceClass 3 // Defines the ID for getting help about the police class
  920. #define HelpIDPilotClass 4 // Defines the ID for getting help about the pilot class
  921. #define HelpIDCourierClass 5 // Defines the ID for getting help about the courier class
  922. #define HelpIDAssistanceClass 6 // Defines the ID for getting help about the assistance class
  923. #define HelpIDRoadworkerClass 7 // Defines the ID for getting help about the roadworker class
  924. #define HelpIDConvoy 8 // Defines the ID for getting help about convoys
  925. #define HelpIDBonusMissions 9 // Defines the ID for getting help about bonus missions
  926. #define HelpIDHouses 10 // Defines the ID for getting help about the houses
  927. #define HelpIDInsurance 11 // Defines the ID for getting help about insurance
  928. #define HelpIDBuyingVehicles 12 // Defines the ID for getting help about buying vehicles
  929. #define HelpIDRentingVehicles 13 // Defines the ID for getting help about renting vehicles
  930. #define HelpIDBusinesses 14 // Defines the ID for getting help about businesses
  931. // Define the topics for the help menu
  932. new AHelpTopics[][50] =
  933. {
  934. {"Trucking class"},
  935. {"Busdriver class"},
  936. {"Mafia class"},
  937. {"Police class"},
  938. {"Pilot class"},
  939. {"Courier class"},
  940. {"Assistance class"},
  941. {"Roadworker class"},
  942. {"Convoys"},
  943. {"Bonus missions"},
  944. {"Houses"},
  945. {"Insurance"},
  946. {"Buying vehicles"},
  947. {"Renting vehicles"},
  948. {"Businesses"}
  949. };
  950. // Setup a custom type that holds all text-lines for all help-topics
  951. enum THelpItem
  952. {
  953. HelpID, // Holds the item for which to get help-info
  954. HelpText[128] // Contains one line for the help-info, every help-item can use multiple lines
  955. }
  956. // This array holds the texts for the /help command
  957. new AHelpText[][THelpItem] =
  958. {
  959. {HelpIDTruckingClass, "Using the trucking class, your job is to transport products from one location to another."},
  960. {HelpIDTruckingClass, "To do so, take a truck (Flatbed, DFT-30, LineRunner, Tanker or Roadtrain) and enter the command \"/work\"."},
  961. {HelpIDTruckingClass, "For the linerunner, Tanker or Roadtrain trucks, you'll need a trailer to start a job."},
  962. {HelpIDTruckingClass, "When the job is started, you'll see a red marker on the map. That's the location where you must load your products."},
  963. {HelpIDTruckingClass, "When you reach that location, the products are loaded onto your vehicle."},
  964. {HelpIDTruckingClass, "Next, you're shown the location where you must unload your products."},
  965. {HelpIDTruckingClass, "If you reach the destination, the products are unloaded and you will get paid."},
  966. {HelpIDTruckingClass, "The payment depends on the distance between the loading and unloading points."},
  967. {HelpIDTruckingClass, " "},
  968. {HelpIDTruckingClass, "Some products can be wanted by the mafia. If you have such products loaded onto your vehicle, the mafia is informed"},
  969. {HelpIDTruckingClass, "and they will chase you to steal your vehicle or trailer, so be careful."},
  970. {HelpIDTruckingClass, "Delivering a mafia-wanted load to your destination earns you an extra bonus."},
  971. {HelpIDTruckingClass, " "},
  972. {HelpIDTruckingClass, "There is also a chance your vehicle can be overloaded. When this happens, the police is informed."},
  973. {HelpIDTruckingClass, "Being overloaded rewards you with an extra bonus if you reach the destination."},
  974. {HelpIDTruckingClass, " "},
  975. {HelpIDTruckingClass, "You also get a small bonus if you transport the products using your own truck."},
  976. {HelpIDTruckingClass, " "},
  977. {HelpIDTruckingClass, "You can also buy a trucking license near the driving school in Doherty, San Fierro."},
  978. {HelpIDTruckingClass, "This will allow you to choose your own product, loading point and unloading point for a job."},
  979. {HelpIDTruckingClass, " "},
  980. {HelpIDTruckingClass, "Truckers can also create and join convoys."},
  981. {HelpIDTruckingClass, "See the \"Convoys\" topic for more information about them."},
  982. {HelpIDBusDriverClass, "Using the busdriver class, your job is to transport passengers between several busstops."},
  983. {HelpIDBusDriverClass, "To start a job, enter a bus and use the \"/work\" command."},
  984. {HelpIDBusDriverClass, "You'll be shown the first busstop as a red marker on your map."},
  985. {HelpIDBusDriverClass, "Go to this location to load your first passengers."},
  986. {HelpIDBusDriverClass, " "},
  987. {HelpIDBusDriverClass, "Because your bus is still empty, no passengers can get off your bus and you'll get no payment yet."},
  988. {HelpIDBusDriverClass, "From the second busstop onwards, a random amount of passengers get off your bus."},
  989. {HelpIDBusDriverClass, "For every passenger that gets off your bus, you'll get paid."},
  990. {HelpIDBusDriverClass, " "},
  991. {HelpIDBusDriverClass, "If you have completed the entire busroute, you're also shown the location of the busdepot."},
  992. {HelpIDBusDriverClass, "Now you can choose to do the same busroute again by going to the first busstop again"},
  993. {HelpIDBusDriverClass, "or to end the busroute by going to the busdepot."},
  994. {HelpIDMafiaClass, "Using the mafia class, your job is to transport products from one location to another."},
  995. {HelpIDMafiaClass, "To start a job, enter a Sandking or Moonbeam and use the \"/work\" command."},
  996. {HelpIDMafiaClass, "This works almost the same way as the trucker class."},
  997. {HelpIDMafiaClass, "Mafia's cannot be overloaded, and you cannot have mafia-wanted loads."},
  998. {HelpIDMafiaClass, "Instead, every job informs the police. You'll get a wanted level of 4."},
  999. {HelpIDMafiaClass, " "},
  1000. {HelpIDMafiaClass, "A second possibility for mafia's to earn money is to steal mafia-wanted loads from truckers."},
  1001. {HelpIDMafiaClass, "When a trucker with such a load onboard is driving around, you'll be informed. The trucker will appear as a red dot"},
  1002. {HelpIDMafiaClass, "on your radar. Now you have to chase that trucker and try to steal his load."},
  1003. {HelpIDMafiaClass, "If the trucker is in a Flatbed or DFT-30, his load in onboard the truck itself, so you'll have to force the trucker"},
  1004. {HelpIDMafiaClass, "out of his vehicle to steal it."},
  1005. {HelpIDMafiaClass, "If the trucker is driving a truck with a trailer, you'll need to steal the trailer, as the load is located in the trailer."},
  1006. {HelpIDMafiaClass, "Also possible is to steal the truck with the trailer attached to it."},
  1007. {HelpIDMafiaClass, " "},
  1008. {HelpIDMafiaClass, "From the moment you succeed in detaching the trucker's trailer, you have 60 seconds to attach the trailer to your own truck."},
  1009. {HelpIDMafiaClass, "If you fail to do this, the trucker's mission has failed and the load is lost."},
  1010. {HelpIDMafiaClass, "If you succeed to steal the trucker's load, take it to your mafia-hideout to deliver the load there."},
  1011. {HelpIDMafiaClass, "Once you reach the mafia-hideout with your stolen load, you'll get paid."},
  1012. {HelpIDPoliceClass, "Using the police class, your job is to fine or arrest any offenders of the law."},
  1013. {HelpIDPoliceClass, "When a trucker is overloaded, he'll get 2 stars on his wanted level."},
  1014. {HelpIDPoliceClass, "A mafia doing a job, gets 4 stars on his wanted level."},
  1015. {HelpIDPoliceClass, "Anyone speeding near a speedcamera gets one extra star on his wanted level."},
  1016. {HelpIDPoliceClass, " "},
  1017. {HelpIDPoliceClass, "Any player with a wanted level appears as a red dot on your radar."},
  1018. {HelpIDPoliceClass, "You need to pursue the player and try to stop him, so you can fine him."},
  1019. {HelpIDPoliceClass, "When you get close to the wanted player, you can use the LCTRL button on your keyboard to warn them."},
  1020. {HelpIDPoliceClass, "The wanted player will be informed that he's being chased by cops and that he needs to pull over."},
  1021. {HelpIDPoliceClass, " "},
  1022. {HelpIDPoliceClass, "If the wanted player stops immediately, you can only fine him, using the Right Mouse Button."},
  1023. {HelpIDPoliceClass, "You need to be on foot to fine a wanted player."},
  1024. {HelpIDPoliceClass, "If the wanted player doesn't stop within 60 seconds, he'll be sent to jail if you catch him."},
  1025. {HelpIDPoliceClass, "This will also double the fine."},
  1026. {HelpIDPilotClass, "When you choose the pilot class, your job is to transport passengers or cargo from one location to another."},
  1027. {HelpIDPilotClass, "To start a job, enter a Shamal or Nevada airplane and use the \"/work\" command."},
  1028. {HelpIDPilotClass, "Airplanes transport passengers and/or cargo."},
  1029. {HelpIDPilotClass, "Pilots can also use helicopters. Enter a Maverick or Cargobob helicopter to start a job."},
  1030. {HelpIDPilotClass, "Helicopters only transport passengers."},
  1031. {HelpIDCourierClass, "If you choose the courier class, your job is to deliver packages to player's houses."},
  1032. {HelpIDCourierClass, "To start a job, use a Burrito van or Faggio bike and use the \"/work\" command."},
  1033. {HelpIDCourierClass, "Next you can choose how many packages you want to deliver."},
  1034. {HelpIDCourierClass, " "},
  1035. {HelpIDCourierClass, "Player's houses are chosen randomly within a certain range."},
  1036. {HelpIDCourierClass, "If there are no owned houses in the vicinity, you'll be notified to search for another area to work in."},
  1037. {HelpIDCourierClass, " "},
  1038. {HelpIDCourierClass, "When you reach the house, get out of your vehicle and deliver the package at the door of the house."},
  1039. {HelpIDCourierClass, "When all packages are delivered, you'll be paid for the amount of packages you've delivered."},
  1040. {HelpIDAssistanceClass, "If you choose the assistance class, your job is to assist players when they're out of fuel"},
  1041. {HelpIDAssistanceClass, "or if their vehicle is damaged."},
  1042. {HelpIDAssistanceClass, "Players needing help from assistance players can use the \"/assist\" command to call for assistance."},
  1043. {HelpIDAssistanceClass, "All players in need of assistance are marked red on the radar."},
  1044. {HelpIDAssistanceClass, " "},
  1045. {HelpIDAssistanceClass, "The assistance player should go to the player who needs assistance and help them out."},
  1046. {HelpIDAssistanceClass, "You can help them by getting out of your vehicle and use the Right Mouse Button"},
  1047. {HelpIDAssistanceClass, "when you're near their vehicle."},
  1048. {HelpIDAssistanceClass, " "},
  1049. {HelpIDAssistanceClass, "You cannot randomly repair and refuel other player's vehicles if they didn't ask for it."},
  1050. {HelpIDRoadworkerClass, "The roadworker has 2 different kinds of jobs."},
  1051. {HelpIDRoadworkerClass, " "},
  1052. {HelpIDRoadworkerClass, "The first job is to repair speedcamera's which have been placed all around the map."},
  1053. {HelpIDRoadworkerClass, "Use a Utility Van with a Utility Trailer attached to it and use the \"/work\" command to start a job."},
  1054. {HelpIDRoadworkerClass, "Go to the indicated speedcamera to repair it. You need to be on foot near the speedcamera to fix it."},
  1055. {HelpIDRoadworkerClass, "After it has been repaired, the next one is chosen randomly."},
  1056. {HelpIDRoadworkerClass, "Now you have a choice: either you continu to repair speedcamera's, or you drive back to base"},
  1057. {HelpIDRoadworkerClass, "to end the mission."},
  1058. {HelpIDRoadworkerClass, " "},
  1059. {HelpIDRoadworkerClass, "The second job is to tow broken vehicles to the shredder."},
  1060. {HelpIDRoadworkerClass, "Use a towtruck and use the \"/work\" command to start a job."},
  1061. {HelpIDRoadworkerClass, "Drive to the red marker and there will be a broken vehicle."},
  1062. {HelpIDRoadworkerClass, "Enter the checkpoint to automatically attach the broken vehicle to your towtruck."},
  1063. {HelpIDRoadworkerClass, "Tow the vehicle back to base so it can be dumped into the shredder."},
  1064. {HelpIDRoadworkerClass, " "},
  1065. {HelpIDRoadworkerClass, "If you lose the broken vehicle while returning to base, drive close to the vehicle"},
  1066. {HelpIDRoadworkerClass, "and use the Left Mouse Button to re-attach it to your towtruck."},
  1067. {HelpIDConvoy, "Convoys are used by multiple players, so they can do the same mission all together."},
  1068. {HelpIDConvoy, "Only truckers can do convoys."},
  1069. {HelpIDConvoy, "Every convoy has one leader. This leader determines the job for the entire convoy."},
  1070. {HelpIDConvoy, "As there can only be 5 convoys at the same time, it's wise to create only one large convoy instead of"},
  1071. {HelpIDConvoy, "several small convoys. A large convoy earns more money than small convoys"},
  1072. {HelpIDConvoy, "Convoys can have up to 25 members."},
  1073. {HelpIDConvoy, " "},
  1074. {HelpIDConvoy, "Every member of the convoy increases the payment for every member by 25%."},
  1075. {HelpIDConvoy, "Convoys can also complete the bonus missions for extra cash."},
  1076. {HelpIDConvoy, "To start or join a convoy, use the \"/convoy\" command and select a slot."},
  1077. {HelpIDConvoy, " "},
  1078. {HelpIDConvoy, "Once a convoy has started the job, the convoy is closed, so new members cannot join in the middle of the job."},
  1079. {HelpIDConvoy, "As soon as every member of the convoy unloads their products at the destination,"},
  1080. {HelpIDConvoy, "all members are paid. The convoy also opens up to receive new members."},
  1081. {HelpIDBonusMissions, "Bonus missions are detected automatically when you finish a job."},
  1082. {HelpIDBonusMissions, "Only truckers can do those bonus missions. You're rewarded twice the normal payment when you complete the mission."},
  1083. {HelpIDBonusMissions, "Besides the double payment, all bonusses are doubled as well, for being overloaded, delivering mafia-load, ..."},
  1084. {HelpIDBonusMissions, "Bonus missions can only be completed by one trucker or convoy."},
  1085. {HelpIDBonusMissions, "As soon as the bonus mission is completed by a player, the other players cannot get the bonus,"},
  1086. {HelpIDBonusMissions, "even if they do the same job."},
  1087. {HelpIDBonusMissions, "The bonus mission stays the same until it has been completed. Once it's completed, a new bonus mission is generated."},
  1088. {HelpIDHouses, "Houses are properties that can be bought by players."},
  1089. {HelpIDHouses, "Up to 2 houses can be bought by any player."},
  1090. {HelpIDHouses, "Each house has a buying price and a maximum upgrade-level."},
  1091. {HelpIDHouses, "The maximum level of the house also determines the amount of vehicle-slots this house can hold when fully upgraded."},
  1092. {HelpIDHouses, "When you buy a house, it will be level 1. This gives you one vehicle slot."},
  1093. {HelpIDHouses, "Every time you upgrade your house one more level, one additional vehicle slot is created."},
  1094. {HelpIDHouses, "Each house-level also has a different interior. It gets bigger by every level."},
  1095. {HelpIDHouses, "The maximum level for any house is level 10."},
  1096. {HelpIDHouses, "These houses are expensive, because they can hold up to 10 vehicle slots when they're fully upgraded."},
  1097. {HelpIDHouses, " "},
  1098. {HelpIDHouses, "When you've bought your house, you can enter it by standing near the house-entrance (spinning house icon)"},
  1099. {HelpIDHouses, "and using the \"/enter\" command."},
  1100. {HelpIDHouses, "Once you've entered your house, you can use the command \"/housemenu\" to change some options for the house."},
  1101. {HelpIDHouses, "In this menu, you can change the name of the house, upgrade the house to a higher level, buy and sell vehicles,"},
  1102. {HelpIDHouses, "buy vehicle insurance and exit the house."},
  1103. {HelpIDHouses, "You can also sell the house if there are no more vehicles connected to the house."},
  1104. {HelpIDHouses, "Selling a vehicle refunds 50% of the price you've paid for it."},
  1105. {HelpIDHouses, "This excludes any moddings you have applied to the vehicle."},
  1106. {HelpIDHouses, " "},
  1107. {HelpIDHouses, "Also, you can open your house to the public. By doing so, anyone can enter your house."},
  1108. {HelpIDHouses, "Closing the house will only allow the owner to enter the house."},
  1109. {HelpIDHouses, "This way, you can invite your friends at your house. If they want to leave the house, they also have to use"},
  1110. {HelpIDHouses, "the \"/housemenu\" command. They're given the same menu as the owner, except only \"Exit house\" will work"},
  1111. {HelpIDHouses, "for your visitors."},
  1112. {HelpIDInsurance, "The vehicle insurance is pretty important to buy. This insures your vehicles in case they're destroyed."},
  1113. {HelpIDInsurance, "The insurance can be bought at your house for 10% of the buying price of the house."},
  1114. {HelpIDInsurance, "A vehicle can be destroyed by getting damage or by driving it into the water."},
  1115. {HelpIDInsurance, "If you don't have insurance, your destroyed vehicle is lost, you don't get it back."},
  1116. {HelpIDInsurance, "If you're insured, the vehicle is returned to you with full health and gas-tank."},
  1117. {HelpIDInsurance, " "},
  1118. {HelpIDInsurance, "When you buy a vehicle, the vehicle is connected to the house from which you've bought the vehicle."},
  1119. {HelpIDInsurance, "If you have 2 houses and only your first house has insurance, it will not insure the vehicles of the second house."},
  1120. {HelpIDBuyingVehicles, "Players can buy vehicles once they have earned enough money to buy a house first."},
  1121. {HelpIDBuyingVehicles, "Entering your house and using the \"/housemenu\" command will allow you to buy vehicles."},
  1122. {HelpIDBuyingVehicles, "The vehicles are connected to the house from which you've bought them."},
  1123. {HelpIDBuyingVehicles, "Once you've bought a vehicle, you can exit your house and use the \"/getcar\" command to spawn it."},
  1124. {HelpIDBuyingVehicles, "Now you can drive your vehicle to a desired spot where you can park it permanently using the \"/park\" command."},
  1125. {HelpIDBuyingVehicles, " "},
  1126. {HelpIDBuyingVehicles, "Bought vehicles can also be modded (tuned) with spoilers, nitro, other wheels, and much more."},
  1127. {HelpIDBuyingVehicles, "Just visit a modding garage and apply the tunings to your vehicle."},
  1128. {HelpIDBuyingVehicles, "The tunings will be saved when you exit the game, so don't worry about losing them."},
  1129. {HelpIDBuyingVehicles, " "},
  1130. {HelpIDBuyingVehicles, "When you exit the game, your vehicles will be unloaded, so other players cannot ruin them."},
  1131. {HelpIDBuyingVehicles, "Also, when you're logged in, your vehicles will be loaded again."},
  1132. {HelpIDBuyingVehicles, " "},
  1133. {HelpIDBuyingVehicles, "Your vehicles cannot be driven by other players, they will be kicked out if they're not the owner of the vehicle."},
  1134. {HelpIDBuyingVehicles, "Other players can take place in a passenger seat though."},
  1135. {HelpIDRentingVehicles, "Players who don't have a house yet, can rent a vehicle."},
  1136. {HelpIDRentingVehicles, "Go to Wang Cars in Doherty, San Fierro to rent a vehicle."},
  1137. {HelpIDRentingVehicles, " "},
  1138. {HelpIDRentingVehicles, "When you rent a vehicle, ownership is transferred to you."},
  1139. {HelpIDRentingVehicles, "This doesn't mean you can keep the vehicle."},
  1140. {HelpIDRentingVehicles, "It only means that you can be the only driver of the vehicle."},
  1141. {HelpIDRentingVehicles, " "},
  1142. {HelpIDRentingVehicles, "Rented vehicles cost 10% of the buying price of a vehicle."},
  1143. {HelpIDRentingVehicles, " "},
  1144. {HelpIDRentingVehicles, "If you already have a rented vehicle, the first one is impounded."},
  1145. {HelpIDRentingVehicles, "You cannot have 2 rented vehicles at the same time."},
  1146. {HelpIDRentingVehicles, "Also, when you logout, the rented vehicle will be impounded."},
  1147. {HelpIDRentingVehicles, "Logging in again won't give it back to you."},
  1148. {HelpIDBusinesses, "Players can also buy up to 2 businesses."},
  1149. {HelpIDBusinesses, "As houses, a business can be upgraded, the maximum upgrade-level for a business is 5."},
  1150. {HelpIDBusinesses, " "},
  1151. {HelpIDBusinesses, "Owning a business earns you a steady but low amount of cash every hour."},
  1152. {HelpIDBusinesses, "Your business also earns money when you're offline."},
  1153. {HelpIDBusinesses, "Upgrading a business earns more money every hour."},
  1154. {HelpIDBusinesses, "For every level, the earnings per hour are increased."},
  1155. {HelpIDBusinesses, "For the maximum level (level 5), a business earns 5 times the money it earned when the business was level 1."},
  1156. {HelpIDBusinesses, " "},
  1157. {HelpIDBusinesses, "There are different kinds of businesses. Each kind earns a different amount of money per hour."},
  1158. {HelpIDBusinesses, "The most profitable business is the casino. This business earns $250 per hour, that's $6000 each day."},
  1159. {HelpIDBusinesses, "Upgraded to level 5, this business earns $1,250 per hour, or $30,000 each day."},
  1160. {HelpIDBusinesses, "The downside is that a casino costs alot of money to buy."}
  1161. // {HelpIDBusinesses, "xxxxxxxxxxxx"},
  1162. };
  1163. // This array holds the vehicle-colors
  1164. new AVehicleColors[][10] =
  1165. {
  1166. {"{000000}"}, {"{f5f5f5}"}, {"{2a77a1}"}, {"{840510}"}, {"{253739}"}, // Colors 0, 1, 2, 3, 4
  1167. {"{87446f}"}, {"{d68f11}"}, {"{4c75b7}"}, {"{bdbdc5}"}, {"{5e7072}"}, // Colors 5, 6, 7, 8, 9
  1168. {"{46597a}"}, {"{66697a}"}, {"{5e7e8d}"}, {"{58595b}"}, {"{d6dbd5}"}, // Colors 10, 11, 12, 13, 14
  1169. {"{9ca1a4}"}, {"{34603f}"}, {"{740e1b}"}, {"{7c0a2b}"}, {"{a09d94}"}, // Colors 15, 16, 17, 18, 19
  1170. {"{3b4e79}"}, {"{732e40}"}, {"{691e3c}"}, {"{96918d}"}, {"{515459}"}, // Colors 20, 21, 22, 23, 24
  1171. {"{3f3e46}"}, {"{a5a9a8}"}, {"{645c5a}"}, {"{3c4969}"}, {"{969591}"}, // Colors 25, 26, 27, 28, 29
  1172. {"{431f21}"}, {"{5f272a}"}, {"{8494ab}"}, {"{757a7d}"}, {"{646464}"}, // Colors 30, 31, 32, 33, 34
  1173. {"{5b5853}"}, {"{252527}"}, {"{2e3a36}"}, {"{93a398}"}, {"{6d7a8a}"}, // Colors 35, 36, 37, 38, 39
  1174. {"{28201e}"}, {"{6f6860}"}, {"{7c1c28}"}, {"{600a15}"}, {"{193828}"}, // Colors 40, 41, 42, 43, 44
  1175. {"{5c1b1f}"}, {"{9c9872}"}, {"{7a7561}"}, {"{989586}"}, {"{acb0b1}"}, // Colors 45, 46, 47, 48, 49
  1176. {"{848a88}"}, {"{305045}"}, {"{4e6368}"}, {"{162248}"}, {"{282f4c}"}, // Colors 50, 51, 52, 53, 54
  1177. {"{7e6257}"}, {"{9fa4aa}"}, {"{9c8d70}"}, {"{6e1821}"}, {"{4e6881}"}, // Colors 55, 56, 57, 58, 59
  1178. {"{9c9d98}"}, {"{907347}"}, {"{661d26}"}, {"{949c9f}"}, {"{a3a8a4}"}, // Colors 60, 61, 62, 63, 64
  1179. {"{8f8c47}"}, {"{331a1d}"}, {"{697a8a}"}, {"{aaad8e}"}, {"{ac988f}"}, // Colors 65, 66, 67, 68, 69
  1180. {"{86202e}"}, {"{708298}"}, {"{585953}"}, {"{9aa68e}"}, {"{601a1a}"}, // Colors 70, 71, 72, 73, 74
  1181. {"{21212d}"}, {"{a4a097}"}, {"{ab9d83}"}, {"{78222b}"}, {"{0e326e}"}, // Colors 75, 76, 77, 78, 79
  1182. {"{722a40}"}, {"{7a715f}"}, {"{741c28}"}, {"{1d2f31}"}, {"{4e322f}"}, // Colors 80, 81, 82, 83, 84
  1183. {"{7d1b44}"}, {"{2f5b20}"}, {"{395a83}"}, {"{6c2837}"}, {"{a7a28f}"}, // Colors 85, 86, 87, 88, 89
  1184. {"{b0b2b1}"}, {"{364155}"}, {"{6d6d6f}"}, {"{0f6a89}"}, {"{204b6d}"}, // Colors 90, 91, 92, 93, 94
  1185. {"{2c3d57}"}, {"{9a9e9d}"}, {"{6d8494}"}, {"{4d5c5f}"}, {"{ac9b7f}"}, // Colors 95, 96, 97, 98, 99
  1186. {"{416c8f}"}, {"{20253b}"}, {"{ac9277}"}, {"{124574}"}, {"{96816c}"}, // Colors 100, 101, 102, 103, 104
  1187. {"{64686b}"}, {"{115083}"}, {"{a19984}"}, {"{385694}"}, {"{525661}"}, // Colors 105, 106, 107, 108, 109
  1188. {"{7e6956}"}, {"{8d919a}"}, {"{596d86}"}, {"{483433}"}, {"{456250}"}, // Colors 110, 111, 112, 113, 114
  1189. {"{730a28}"}, {"{223556}"}, {"{630d1a}"}, {"{a3adc6}"}, {"{6a5854}"}, // Colors 115, 116, 117, 118, 119
  1190. {"{9b8a80}"}, {"{620b1c}"}, {"{5c5d5f}"}, {"{634428}"}, {"{741827}"}, // Colors 120, 121, 122, 123, 124
  1191. {"{1c376e}"}, {"{ed6aae}"} // Colors 125, 126
  1192. };