bday.pwn 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857
  1. #include <a_samp>
  2. #include <sscanf2>
  3. #include <streamer>
  4. #include <zcmd>
  5. #undef MAX_PLAYERS
  6. #define MAX_PLAYERS (700)
  7. new musicarea;
  8. new startcount = 3,
  9. kartlaps = 6;
  10. enum posenum
  11. {
  12. Float:posx,
  13. Float:posy,
  14. Float:posz,
  15. Float:rot
  16. }
  17. new Float:gFerrisOrigin[4] = {592.7563, -2110.7573, 19.1848, 90.0};
  18. new gFerrisWheel, gFerrisBase;
  19. new gFerrisCages[10];
  20. new Float:gCurrentTargetYAngle = 0.0;
  21. new gWheelTransAlternate = 0;
  22. new Text3D:karttext;
  23. enum krace
  24. {
  25. count,//Racer Count
  26. status,// 0 = Waiting for more players | 1 = Starting | 2 = Active/In Progress
  27. starting,//Countdown for race to start
  28. left,//Time left till race ends
  29. place//Used to determine place within race.
  30. }
  31. new kartraceinfo[krace];
  32. new Float:gKartOrigin[3] = {630.558898, -1954.361938, 2.103125};
  33. new kartspawns[20][posenum] = {
  34. {-1408.9274, -256.9805, 1042.9756, -12.0000},
  35. {-1407.3546, -257.3370, 1042.9756, -12.0000},
  36. {-1405.7192, -257.7513, 1042.9756, -12.0000},
  37. {-1404.1395, -258.1555, 1042.9756, -12.0000},
  38. {-1402.5757, -258.5850, 1042.9756, -12.0000},
  39. {-1400.7500, -259.1611, 1042.9756, -12.0000},
  40. {-1409.5157, -259.6704, 1042.9469, 347.7900},
  41. {-1407.9257, -260.0362, 1042.9420, 347.9987},
  42. {-1406.2892, -260.4301, 1042.9402, 348.0003},
  43. {-1404.7195, -260.7973, 1042.9401, 347.7173},
  44. {-1403.1281, -261.1814, 1042.9401, 348.0005},
  45. {-1401.2646, -261.5770, 1042.9401, 348.0003},
  46. {-1408.3922, -262.2319, 1042.9401, 347.9778},
  47. {-1409.9801, -261.8108, 1042.9452, 347.9067},
  48. {-1406.7289, -262.5020, 1042.9402, 348.0008},
  49. {-1405.1556, -262.8064, 1042.9401, 347.7223},
  50. {-1403.6023, -263.4142, 1042.9401, 348.0040},
  51. {-1401.7275, -263.7579, 1042.9399, 348.0006},
  52. {-1408.7980, -264.1048, 1042.9401, 348.0253},
  53. {-1404.0042, -265.3026, 1042.9399, 348.0053}
  54. };
  55. new kartcheckpoints[8][posenum] = {
  56. {-1397.205810, -214.877273, 1043.112792},
  57. {-1439.78906, -130.596008, 1045.408325},
  58. {-1530.023071, -191.30276, 1050.58276},
  59. {-1417.048583, -276.298309, 1050.758300},
  60. {-1382.499755, -140.864669, 1050.701904},
  61. {-1268.074951, -180.060577, 1050.245849},
  62. {-1359.534912, -283.226837, 1045.215942},
  63. {-1397.205322, -214.870254, 1043.112792}
  64. };
  65. new bumpercars;
  66. new Float:gBumperOrigin[3] = {705.361083, -1958.251831, 2.103125};
  67. new bumperspawns[6][posenum] = {
  68. {722.6320, -1961.7069, 0.4044, 91.2988},
  69. {687.9482, -1961.6224, 0.4857, 271.2970},
  70. {687.3447, -1997.3239, 0.4351, 270.8343},
  71. {723.4386, -1997.6876, 0.3873, 87.2896},
  72. {705.4752, -1976.1241, 0.4615, 87.7215},
  73. {705.1586, -1982.2360, 0.3112, 270.5194}
  74. };
  75. public OnFilterScriptInit()
  76. {
  77. musicarea = CreateDynamicSphere(592.84, -2085, 0, 330.0);
  78. SetTimer("KartUpdateGlobal", 1000, true);
  79. CreateDynamic3DTextLabel("{FFFF00}Type {FF0000}/bumpercars {FFFF00}to join in!", 0xFFFFFFF, 705.361083, -1958.251831, 2.103125, 10.0);
  80. karttext = CreateDynamic3DTextLabel("{FFFF00}Type {FF0000}/joinkart {FFFF00}to join in!", 0xFFFFFFF, gKartOrigin[0], gKartOrigin[1], gKartOrigin[2], 15.0);
  81. CreateBDayObjects();
  82. new Float:gFerrisCageOffsets[10][3] = {
  83. {0.0699, 0.0600, -11.7500},
  84. {-6.9100, -0.0899, -9.5000},
  85. {11.1600, 0.0000, -3.6300},
  86. {-11.1600, -0.0399, 3.6499},
  87. {-6.9100, -0.0899, 9.4799},
  88. {0.0699, 0.0600, 11.7500},
  89. {6.9599, 0.0100, -9.5000},
  90. {-11.1600, -0.0399, -3.6300},
  91. {11.1600, 0.0000, 3.6499},
  92. {7.0399, -0.0200, 9.3600}
  93. };
  94. gFerrisWheel = CreateObject(18877, gFerrisOrigin[0], gFerrisOrigin[1], gFerrisOrigin[2], 0.0, 0.0, gFerrisOrigin[3], 300.0);
  95. gFerrisBase = CreateObject(18878, gFerrisOrigin[0], gFerrisOrigin[1], gFerrisOrigin[2], 0.0, 0.0, gFerrisOrigin[3], 300.0);
  96. for(new x;x<10;x++)
  97. {
  98. gFerrisCages[x] = CreateObject(19316, gFerrisOrigin[0], gFerrisOrigin[1], gFerrisOrigin[2], 0.0, 0.0, gFerrisOrigin[3], 300.0);
  99. AttachObjectToObject(gFerrisCages[x], gFerrisWheel, gFerrisCageOffsets[x][0], gFerrisCageOffsets[x][1], gFerrisCageOffsets[x][2], 0.0, 0.0, gFerrisOrigin[3], 0);
  100. }
  101. SetTimer("RotateWheel",3*1000,0);
  102. }
  103. public OnFilterScriptExit()
  104. {
  105. for(new i; i < MAX_PLAYERS; i++)
  106. {
  107. if(!IsPlayerConnected(i)) continue;
  108. if(GetPVarType(i, "pBumperCar"))
  109. {
  110. LeaveBumper(i);
  111. }
  112. if(GetPVarType(i, "pKartCar"))
  113. {
  114. LeaveKart(i);
  115. }
  116. }
  117. DestroyObject(gFerrisWheel);
  118. DestroyObject(gFerrisBase);
  119. for(new x;x<10;x++)
  120. {
  121. DestroyObject(gFerrisCages[x]);
  122. }
  123. }
  124. public OnPlayerDisconnect(playerid, reason)
  125. {
  126. if(GetPVarType(playerid, "pBumperCar"))
  127. {
  128. LeaveBumper(playerid);
  129. }
  130. if(GetPVarType(playerid, "pKartCar"))
  131. {
  132. LeaveKart(playerid);
  133. }
  134. return 1;
  135. }
  136. public OnPlayerEnterDynamicArea(playerid, areaid)
  137. {
  138. if(areaid == musicarea)
  139. {
  140. StopAudioStreamForPlayer(playerid);
  141. PlayAudioStreamForPlayer(playerid, "http://shoutcast.ng-gaming.net:8000/listen.pls?sid=1", 592.84, -2085, 0, 400, 1);
  142. }
  143. return 1;
  144. }
  145. public OnPlayerLeaveDynamicArea(playerid, areaid)
  146. {
  147. if(areaid == musicarea)
  148. {
  149. StopAudioStreamForPlayer(playerid);
  150. }
  151. return 1;
  152. }
  153. public OnPlayerEnterCheckpoint(playerid)
  154. {
  155. if(GetPVarType(playerid, "pKartCar"))
  156. {
  157. new checkpoint = GetPVarInt(playerid, "pKartCheckpoint"), string[128];
  158. if(!IsPlayerInRangeOfPoint(playerid, 10.0, kartcheckpoints[checkpoint][posx], kartcheckpoints[checkpoint][posy], kartcheckpoints[checkpoint][posz])) return 1;
  159. if(checkpoint == (sizeof(kartcheckpoints)-1))
  160. {
  161. SetPlayerCheckpoint(playerid, kartcheckpoints[0][posx], kartcheckpoints[0][posy], kartcheckpoints[0][posz], 5.0);
  162. SetPVarInt(playerid, "pKartCheckpoint", 0);
  163. SetPVarInt(playerid, "pKartLap", GetPVarInt(playerid, "pKartLap")+1);
  164. if(GetPVarInt(playerid, "pKartLap") == kartlaps-1) GameTextForPlayer(playerid, "~r~Final Lap!", 1100, 3);
  165. if(GetPVarInt(playerid, "pKartLap") == kartlaps)
  166. {
  167. kartraceinfo[place]++;
  168. if(kartraceinfo[place] > 3)
  169. {
  170. format(string, sizeof(string), "You came in %dth place, better luck next time!", kartraceinfo[place]);
  171. SendClientMessage(playerid, -1, string);
  172. }
  173. if(kartraceinfo[place] < 4)
  174. {
  175. for(new x; x < MAX_PLAYERS; x++)
  176. {
  177. if(IsPlayerConnected(x) && (GetPVarInt(x, "pKartCar") || IsPlayerInRangeOfPoint(x, 15.0, gKartOrigin[0], gKartOrigin[1], gKartOrigin[2])))
  178. {
  179. format(string, sizeof(string), "** [KARTRACE] %s has come in", GetPlayerNameEx(playerid), kartraceinfo[place]);
  180. if(kartraceinfo[place] == 1) strcat(string, " 1st place!");
  181. if(kartraceinfo[place] == 2) strcat(string, " 2nd place!");
  182. if(kartraceinfo[place] == 3) strcat(string, " 3rd place!");
  183. SendClientMessage(x, -1, string);
  184. }
  185. }
  186. }
  187. //SetPVarInt(playerid, "kartCooldown", gettime()+60);
  188. LeaveKart(playerid);
  189. }
  190. }
  191. else
  192. {
  193. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  194. checkpoint++;
  195. SetPVarInt(playerid, "pKartCheckpoint", checkpoint);
  196. DisablePlayerCheckpoint(playerid);
  197. SetPlayerCheckpoint(playerid, kartcheckpoints[checkpoint][posx], kartcheckpoints[checkpoint][posy], kartcheckpoints[checkpoint][posz], 5.0);
  198. }
  199. }
  200. return 1;
  201. }
  202. public OnPlayerStateChange(playerid, newstate, oldstate)
  203. {
  204. if(newstate == PLAYER_STATE_DRIVER)
  205. {
  206. if(GetPVarType(playerid, "pBumperCar") || GetPVarType(playerid, "pKartCar"))
  207. {
  208. SetPVarInt(playerid, "TeleportWarnings", -1);
  209. }
  210. }
  211. if(newstate == PLAYER_STATE_ONFOOT)
  212. {
  213. if(GetPVarType(playerid, "pBumperCar"))
  214. {
  215. LeaveBumper(playerid);
  216. }
  217. if(GetPVarType(playerid, "pKartCar"))
  218. {
  219. LeaveKart(playerid);
  220. }
  221. }
  222. return 1;
  223. }
  224. //Bumper
  225. CMD:bumpercars(playerid, params[])
  226. {
  227. if(GetPVarType(playerid, "pBumperCar")) return LeaveBumper(playerid);
  228. if(!IsPlayerInRangeOfPoint(playerid, 10.0, gBumperOrigin[0], gBumperOrigin[1], gBumperOrigin[2])) return SendClientMessage(playerid, 0xFFFFFFFF, "You are not near the bumper cars area!");
  229. if(bumpercars > 15) return SendClientMessage(playerid, 0xFFFFFFFF, "The arena is full, please wait your turn!");
  230. new rand=random(sizeof(bumperspawns));
  231. SetPVarInt(playerid, "pBumperCar", CreateVehicle(539, bumperspawns[rand][posx], bumperspawns[rand][posy], bumperspawns[rand][posz], bumperspawns[rand][rot], random(10), random(10), 15));
  232. new veh = GetPVarInt(playerid, "pBumperCar");
  233. new engine,lights,alarm,doors,bonnet,boot,objective;
  234. GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
  235. SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  236. PutPlayerInVehicle(playerid, veh, 0);
  237. SetPVarInt(playerid, "pBumperTimer", SetTimerEx("BumperCars", 1000, false, "i", playerid));
  238. bumpercars++;
  239. SetTimerEx("KartUpdate", 1000, false, "i", playerid);
  240. SendClientMessage(playerid, 0xFFFFFFFF, "Type /bumpercars again to stop playing!");
  241. return 1;
  242. }
  243. forward BumperCars(playerid);
  244. public BumperCars(playerid)
  245. {
  246. new Float:hp;
  247. GetVehicleHealth(GetPVarInt(playerid, "pBumperCar"), hp);
  248. if(hp < 500)
  249. {
  250. new veh = GetPVarInt(playerid, "pBumperCar");
  251. if(GetVehicleModel(veh)) DestroyVehicle(veh);
  252. DeletePVar(playerid, "pBumperCar");
  253. DeletePVar(playerid, "pBumperTimer");
  254. SetPlayerPos(playerid, gBumperOrigin[0], gBumperOrigin[1], gBumperOrigin[2]);
  255. SendClientMessage(playerid, 0xFFFFFFFF, "Too damaged to continue, thanks for playing!");
  256. if(bumpercars > 0) bumpercars--;
  257. }
  258. else
  259. {
  260. SetPVarInt(playerid, "pBumperTimer", SetTimerEx("BumperCars", 1000, false, "i", playerid));
  261. }
  262. }
  263. LeaveBumper(playerid)
  264. {
  265. if(GetPVarType(playerid, "pBumperCar"))
  266. {
  267. new veh = GetPVarInt(playerid, "pBumperCar");
  268. if(GetVehicleModel(veh)) DestroyVehicle(veh);
  269. DeletePVar(playerid, "pBumperCar");
  270. KillTimer(GetPVarInt(playerid, "pBumperTimer"));
  271. DeletePVar(playerid, "pBumperTimer");
  272. if(bumpercars > 0) bumpercars--;
  273. CallRemoteFunction("Player_StreamPrep", "ifffi", playerid, gBumperOrigin[0], gBumperOrigin[1], gBumperOrigin[2], 2000);
  274. SendClientMessage(playerid, 0xFFFFFFFF, "Thanks for playing!");
  275. }
  276. return 1;
  277. }
  278. //Bumper
  279. //Kart
  280. CMD:kartlaps(playerid, params[])
  281. {
  282. if(GetPVarInt(playerid, "aLvl") < 1337) return 1;
  283. new laps, string[22];
  284. if(sscanf(params, "d", laps)) return SendClientMessage(playerid, -1, "USAGE: /kartlaps [laps]");
  285. kartlaps = laps;
  286. format(string, sizeof(string), "Kart Laps set to: %d", kartlaps);
  287. SendClientMessage(playerid, -1, string);
  288. return 1;
  289. }
  290. CMD:startcount(playerid, params[])
  291. {
  292. if(GetPVarInt(playerid, "aLvl") < 1337) return 1;
  293. new countt, string[22];
  294. if(sscanf(params, "d", countt)) return SendClientMessage(playerid, -1, "USAGE: /startcount [count]");
  295. startcount = countt;
  296. format(string, sizeof(string), "Kart Count set to: %d", startcount);
  297. SendClientMessage(playerid, -1, string);
  298. return 1;
  299. }
  300. CMD:joinkart(playerid, params[])
  301. {
  302. if(GetPVarType(playerid, "pKartCar")) return LeaveKart(playerid);
  303. if(!IsPlayerInRangeOfPoint(playerid, 10.0, gKartOrigin[0], gKartOrigin[1], gKartOrigin[2])) return SendClientMessage(playerid, 0xFFFFFFFF, "You are not near the Kart entrance!");
  304. if(kartraceinfo[status] == 2) return SendClientMessage(playerid, 0xFFFFFFFF, "The race has already started");
  305. if(kartraceinfo[count] == 20) return SendClientMessage(playerid, 0xFFFFFFFF, "The race is full, try again next time!");
  306. if(gettime() < GetPVarInt(playerid, "kartCooldown"))
  307. {
  308. new str[53];
  309. format(str, sizeof(str), "Please wait %d seconds before joining another race!", GetPVarInt(playerid, "kartCooldown")-gettime());
  310. return SendClientMessage(playerid, -1, str);
  311. }
  312. new engine,lights,alarm,doors,bonnet,boot,objective;
  313. SetPVarInt(playerid, "pKartCar", CreateVehicle(571, kartspawns[kartraceinfo[count]][posx], kartspawns[kartraceinfo[count]][posy], kartspawns[kartraceinfo[count]][posz], kartspawns[kartraceinfo[count]][rot], random(10), random(10), 15));
  314. new veh = GetPVarInt(playerid, "pKartCar");
  315. GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
  316. SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective);
  317. LinkVehicleToInterior(veh, 7);
  318. SetVehicleVirtualWorld(veh, 7);
  319. SetPVarInt(playerid, "pSkin", GetPlayerSkin(playerid));
  320. SetPlayerSkin(playerid, 22);
  321. SetPlayerVirtualWorld(playerid, 7);
  322. SetPlayerInterior(playerid, 7);
  323. PutPlayerInVehicle(playerid, veh, 0);
  324. TogglePlayerControllable(playerid, 0);
  325. SetTimerEx("KartUpdate", 1000, false, "i", playerid);
  326. kartraceinfo[count]++;
  327. UpdateKartLabel();
  328. SendClientMessage(playerid, 0xFFFFFFFF, "Type /joinkart again to leave the race");
  329. return 1;
  330. }
  331. LeaveKart(playerid)
  332. {
  333. if(GetPVarType(playerid, "pKartCar"))
  334. {
  335. new veh = GetPVarInt(playerid, "pKartCar");
  336. if(GetVehicleModel(veh)) DestroyVehicle(veh);
  337. DeletePVar(playerid, "pKartCar");
  338. DeletePVar(playerid, "pKartCheckpoint");
  339. DeletePVar(playerid, "pKartLap");
  340. CallRemoteFunction("Player_StreamPrep", "ifffi", playerid, gKartOrigin[0], gKartOrigin[1], gKartOrigin[2]+3, 2500);
  341. if(kartraceinfo[count] > 0) kartraceinfo[count]--;
  342. UpdateKartLabel();
  343. TogglePlayerControllable(playerid, 1);
  344. DisablePlayerCheckpoint(playerid);
  345. SetPlayerInterior(playerid, 0);
  346. SetPlayerVirtualWorld(playerid, 0);
  347. SetPlayerSkin(playerid, GetPVarInt(playerid, "pSkin"));
  348. DeletePVar(playerid, "pSkin");
  349. SendClientMessage(playerid, 0xFFFFFFFF, "Thanks for playing!");
  350. }
  351. return 1;
  352. }
  353. stock UpdateKartLabel()
  354. {
  355. new string[256];
  356. if(kartraceinfo[status] == 2) format(string, sizeof(string), "{FFFF00}Race in progress!\nRacers: {FF0000}%d\nTime left: %d seconds", kartraceinfo[count], kartraceinfo[left]-gettime());
  357. else format(string, sizeof(string), "{FFFF00}Type {FF0000}/joinkart {FFFF00}to join in!\nRacers: {FF0000}%d", kartraceinfo[count]);
  358. UpdateDynamic3DTextLabelText(karttext, 0xFFFFFFFF, string);
  359. }
  360. forward KartUpdate(playerid);
  361. public KartUpdate(playerid)
  362. {
  363. if(GetPVarType(playerid, "pKartCar"))
  364. {
  365. if(kartraceinfo[status] == 0)
  366. {
  367. GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~r~Waiting for more racers..", 1100, 3);
  368. }
  369. else if(kartraceinfo[status] == 1)
  370. {
  371. new string[64];
  372. format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~n~~r~Race starting in %d seconds", kartraceinfo[starting]);
  373. if(kartraceinfo[starting] <= 3)
  374. {
  375. PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
  376. }
  377. GameTextForPlayer(playerid, string, 1100, 3);
  378. }
  379. else if(kartraceinfo[status] == 2)
  380. {
  381. new engine,lights,alarm,doors,bonnet,boot,objective;
  382. new veh=GetPVarInt(playerid, "pKartCar");
  383. GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
  384. if(engine != VEHICLE_PARAMS_ON) SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  385. }
  386. SetTimerEx("KartUpdate", 1000, false, "i", playerid);
  387. }
  388. if(GetPVarType(playerid, "pBumperCar"))
  389. {
  390. new engine,lights,alarm,doors,bonnet,boot,objective;
  391. new veh=GetPVarInt(playerid, "pKartCar");
  392. GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
  393. if(engine != VEHICLE_PARAMS_ON) SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  394. SetTimerEx("KartUpdate", 1000, false, "i", playerid);
  395. }
  396. }
  397. forward KartUpdateGlobal();
  398. public KartUpdateGlobal()
  399. {
  400. if(kartraceinfo[status] == 1)
  401. {
  402. if(--kartraceinfo[starting] <= 0)
  403. {
  404. kartraceinfo[status] = 2;
  405. kartraceinfo[left] = gettime()+240;
  406. for(new x; x < MAX_PLAYERS; x++)
  407. {
  408. if(IsPlayerConnected(x) && GetPVarType(x, "pKartCar"))
  409. {
  410. new engine,lights,alarm,doors,bonnet,boot,objective;
  411. new veh=GetPVarInt(x, "pKartCar");
  412. GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
  413. SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  414. GameTextForPlayer(x, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~GO!", 2000, 3);
  415. PlayerPlaySound(x, 1057, 0.0, 0.0, 0.0);
  416. SetPlayerCheckpoint(x, kartcheckpoints[0][posx], kartcheckpoints[0][posy], kartcheckpoints[0][posz], 5.0);
  417. SetPVarInt(x, "pKartCheckpoint", 0);
  418. TogglePlayerControllable(x, 1);
  419. }
  420. }
  421. }
  422. return 1;
  423. }
  424. else if(kartraceinfo[status] == 2)
  425. {
  426. if(kartraceinfo[left]-gettime() <= 0 || kartraceinfo[count] == 0)
  427. {
  428. for(new i; i < sizeof(kartraceinfo); i++)
  429. {
  430. kartraceinfo[krace:i] = 0;
  431. }
  432. UpdateKartLabel();
  433. for(new x; x < MAX_PLAYERS; x++)
  434. {
  435. if(IsPlayerConnected(x) && GetPVarType(x, "pKartCar"))
  436. {
  437. LeaveKart(x);
  438. }
  439. }
  440. }
  441. else
  442. {
  443. UpdateKartLabel();
  444. }
  445. }
  446. if(kartraceinfo[count] >= startcount && kartraceinfo[status] == 0)
  447. {
  448. kartraceinfo[status] = 1;
  449. kartraceinfo[starting] = 15;
  450. return 1;
  451. }
  452. if(kartraceinfo[count] < 1 && kartraceinfo[status] == 1)
  453. {
  454. kartraceinfo[status] = 0;
  455. return 1;
  456. }
  457. for(new i; i < MAX_PLAYERS; i++)
  458. {
  459. if(IsPlayerConnected(i) && GetPVarType(i, "pBumperCar"))
  460. {
  461. new engine,lights,alarm,doors,bonnet,boot,objective;
  462. new veh=GetPVarInt(i, "pBumperCar");
  463. GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
  464. SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  465. }
  466. }
  467. return 1;
  468. }
  469. //Kart
  470. public OnObjectMoved(objectid)
  471. {
  472. if(objectid == gFerrisWheel)
  473. {
  474. SetTimer("RotateWheel",3*1000,0);
  475. }
  476. }
  477. forward RotateWheel();
  478. public RotateWheel()
  479. {
  480. UpdateWheelTarget();
  481. new Float:fModifyWheelZPos = 0.0;
  482. if(gWheelTransAlternate) fModifyWheelZPos = 0.05;
  483. MoveObject(gFerrisWheel, gFerrisOrigin[0], gFerrisOrigin[1], gFerrisOrigin[2]+fModifyWheelZPos, 0.01, 0.0, gCurrentTargetYAngle, gFerrisOrigin[3]);
  484. }
  485. stock UpdateWheelTarget()
  486. {
  487. gCurrentTargetYAngle += 36.0;
  488. if(gCurrentTargetYAngle >= 360.0) gCurrentTargetYAngle = 0.0;
  489. if(gWheelTransAlternate) gWheelTransAlternate = 0; else gWheelTransAlternate = 1;
  490. }
  491. CreateBDayObjects()
  492. {
  493. CreateDynamicObject(3578, 737.58, -1792.50, 12.80, 0.00, 1.00, -13.00);
  494. CreateDynamicObject(10831, 630.70, -1968.90, 4.50, 0.00, 0.00, 180.25);
  495. CreateDynamicObject(11495, 706.10, -1924.20, 0.90, 0.00, 0.00, 0.00);
  496. CreateDynamicObject(11495, 706.10, -1946.20, 0.90, 0.00, 0.00, 0.00);
  497. CreateDynamicObject(11495, 704.30, -1924.20, 0.90, 0.00, 0.00, 180.00);
  498. CreateDynamicObject(11495, 704.30, -1946.20, 0.90, 0.00, 0.00, 179.99);
  499. CreateDynamicObject(3578, 700.20, -1959.30, 0.58, 0.00, 0.00, 0.00);
  500. CreateDynamicObject(11495, 705.60, -1958.10, 0.90, 0.00, 0.00, 270.00);
  501. CreateDynamicObject(3578, 710.50, -1959.30, 0.58, 0.00, 0.00, 0.00);
  502. CreateDynamicObject(3499, 684.48, -1959.20, 5.00, 0.00, 0.00, 0.00);
  503. CreateDynamicObject(3578, 785.80, -1797.30, 12.40, 0.00, 0.00, 360.00);
  504. CreateDynamicObject(3578, 813.40, -1797.12, 12.80, 0.00, 0.00, 359.99);
  505. CreateDynamicObject(3578, 823.40, -1797.12, 13.40, 0.00, 0.00, 359.99);
  506. CreateDynamicObject(3578, 830.30, -1799.66, 13.10, 0.00, 0.00, 0.00);
  507. CreateDynamicObject(3578, 837.28, -1797.12, 13.50, 0.00, 0.00, 359.99);
  508. CreateDynamicObject(3578, 847.40, -1798.20, 13.50, 0.00, 0.00, 347.99);
  509. CreateDynamicObject(3578, 942.80, -1808.00, 13.40, 0.00, 0.00, 351.99);
  510. CreateDynamicObject(3578, 990.80, -1841.40, 12.50, 0.00, 0.00, 76.00);
  511. CreateDynamicObject(3578, 986.10, -1854.70, 12.50, 0.00, 0.00, 76.00);
  512. CreateDynamicObject(3578, 983.50, -1864.90, 11.40, 0.00, 350.00, 76.00);
  513. CreateDynamicObject(3578, 981.20, -1874.50, 10.00, 0.00, 356.00, 76.75);
  514. CreateDynamicObject(3578, 978.90, -1883.90, 9.60, 0.00, 0.00, 76.75);
  515. CreateDynamicObject(3578, 976.60, -1894.00, 9.00, 0.00, 355.00, 76.75);
  516. CreateDynamicObject(3578, 972.70, -1903.00, 7.70, 0.00, 351.00, 56.74);
  517. CreateDynamicObject(3578, 965.60, -1908.30, 4.60, 0.00, 335.00, 16.74);
  518. CreateDynamicObject(3578, 956.70, -1911.00, 0.20, 0.00, 334.99, 16.74);
  519. CreateDynamicObject(3578, 651.63, -1766.54, 13.10, 0.00, 0.00, 343.99);
  520. CreateDynamicObject(3578, 472.55, -1733.50, 10.50, 0.00, -2.00, -4.00);
  521. CreateDynamicObject(3578, 458.75, -1731.68, 10.02, 0.00, -2.00, -9.00);
  522. CreateDynamicObject(3578, 445.57, -1730.09, 9.81, 0.00, -2.00, -6.00);
  523. CreateDynamicObject(3578, 435.48, -1730.25, 9.17, 0.00, -5.00, 8.00);
  524. CreateDynamicObject(3578, 382.60, -1741.10, 8.10, 0.00, 345.00, 357.99);
  525. CreateDynamicObject(3578, 362.50, -1769.00, 5.10, 0.00, 0.00, 90.00);
  526. CreateDynamicObject(3578, 362.48, -1779.30, 5.10, 0.00, 0.00, 90.00);
  527. CreateDynamicObject(3578, 362.48, -1789.54, 4.83, 0.00, -3.00, 90.00);
  528. CreateDynamicObject(3578, 362.47, -1799.83, 4.56, 0.00, 0.00, 90.00);
  529. CreateDynamicObject(3578, 364.00, -1886.10, 1.90, 0.00, -4.00, 90.00);
  530. CreateDynamicObject(11495, 631.50, -1922.20, 0.90, 0.00, 0.00, 0.00);
  531. CreateDynamicObject(11495, 629.70, -1922.20, 0.90, 0.00, 0.00, 180.00);
  532. CreateDynamicObject(11495, 629.70, -1944.20, 0.90, 0.00, 0.00, 179.99);
  533. CreateDynamicObject(11495, 631.50, -1944.20, 0.90, 0.00, 0.00, 0.00);
  534. CreateDynamicObject(10184, 630.10, -1955.30, 3.50, 0.00, 0.00, 270.00);
  535. CreateDynamicObject(8674, 630.20, -1955.16, -0.41, 0.00, 0.00, 0.00);
  536. CreateDynamicObject(901, 645.70, -1956.60, 0.00, 0.00, 0.00, 0.00);
  537. CreateDynamicObject(901, 618.50, -1956.70, 0.00, 0.00, 0.00, 78.00);
  538. CreateDynamicObject(901, 647.30, -1964.20, 0.00, 0.00, 0.00, 78.00);
  539. CreateDynamicObject(905, 626.50, -1948.30, 0.00, 0.00, 0.00, 0.00);
  540. CreateDynamicObject(905, 639.00, -1939.20, 0.00, 0.00, 0.00, 0.00);
  541. CreateDynamicObject(905, 618.80, -1926.80, 0.00, 0.00, 0.00, 0.00);
  542. CreateDynamicObject(901, 646.10, -1982.90, 0.00, 0.00, 0.00, 0.00);
  543. CreateDynamicObject(905, 660.70, -1982.00, 0.00, 0.00, 0.00, 0.00);
  544. CreateDynamicObject(900, 647.00, -1975.30, -3.00, 0.00, 0.00, 18.00);
  545. CreateDynamicObject(900, 632.80, -1984.00, -1.00, 15.00, 0.00, 358.00);
  546. CreateDynamicObject(905, 631.40, -1983.00, 4.50, 0.00, 0.00, 0.00);
  547. CreateDynamicObject(905, 630.90, -1982.80, 5.00, 0.00, 0.00, 0.00);
  548. CreateDynamicObject(905, 631.50, -1982.70, 5.20, 0.00, 0.00, 0.00);
  549. CreateDynamicObject(905, 631.00, -1982.60, 5.70, 0.00, 0.00, 0.00);
  550. CreateDynamicObject(901, 620.10, -1965.60, 0.00, 0.00, 0.00, 42.00);
  551. CreateDynamicObject(900, 628.00, -1983.40, -1.00, 15.00, 0.00, 315.99);
  552. CreateDynamicObject(1497, 629.10, -1955.20, 1.10, 0.00, 0.00, 0.00);
  553. CreateDynamicObject(1497, 632.11, -1955.17, 1.10, 0.00, 0.00, 180.00);
  554. CreateDynamicObject(12814, 511.40, -1988.40, 1.00, 0.00, 0.00, 0.00);
  555. CreateDynamicObject(11495, 507.60, -1909.90, 0.40, 0.00, 0.00, 179.99);
  556. CreateDynamicObject(11495, 509.40, -1909.90, 0.40, 0.00, 0.00, 0.00);
  557. CreateDynamicObject(11495, 507.6000, -1952.6000, 0.6500, 1.0000, 0.0000, 179.9950);
  558. CreateDynamicObject(11495, 507.58, -1931.90, 0.40, 0.00, 0.00, 179.99);
  559. CreateDynamicObject(11495, 509.40, -1931.90, 0.40, 0.00, 0.00, 0.00);
  560. CreateDynamicObject(11495, 509.40, -1952.60, 0.65, 359.00, 0.00, 0.00);
  561. CreateDynamicObject(3578, 526.70, -1987.60, 0.70, 0.00, 0.00, 90.00);
  562. CreateDynamicObject(3578, 501.50, -1963.60, 0.70, 0.00, 0.00, 0.00);
  563. CreateDynamicObject(3578, 515.50, -1963.50, 0.70, 0.00, 0.00, 0.00);
  564. CreateDynamicObject(3578, 496.50, -1968.50, 0.70, 0.00, 0.00, 90.00);
  565. CreateDynamicObject(3578, 496.50, -1978.80, 0.70, 0.00, 0.00, 90.00);
  566. CreateDynamicObject(3578, 496.50, -1989.10, 0.70, 0.00, 0.00, 90.00);
  567. CreateDynamicObject(3578, 496.50, -1999.40, 0.70, 0.00, 0.00, 90.00);
  568. CreateDynamicObject(3578, 496.50, -2008.50, 0.70, 0.00, 0.00, 90.00);
  569. CreateDynamicObject(3578, 501.50, -2013.50, 0.70, 0.00, 0.00, 0.00);
  570. CreateDynamicObject(3578, 511.80, -2013.50, 0.70, 0.00, 0.00, 0.00);
  571. CreateDynamicObject(3578, 522.10, -2013.50, 0.70, 0.00, 0.00, 0.00);
  572. CreateDynamicObject(3578, 526.70, -2008.20, 0.70, 0.00, 0.00, 90.00);
  573. CreateDynamicObject(3578, 526.70, -1997.90, 0.70, 0.00, 0.00, 90.00);
  574. CreateDynamicObject(3578, 526.70, -1977.30, 0.70, 0.00, 0.00, 90.00);
  575. CreateDynamicObject(3578, 526.70, -1968.00, 0.70, 0.00, 0.00, 90.00);
  576. CreateDynamicObject(3578, 522.10, -1963.60, 0.70, 0.00, 0.00, 0.00);
  577. CreateDynamicObject(617, 525.68, -1966.00, 0.50, 0.00, 0.00, 0.00);
  578. CreateDynamicObject(617, 497.40, -1964.70, 0.80, 0.00, 0.00, 338.00);
  579. CreateDynamicObject(655, 511.10, -1964.40, 1.00, 0.00, 0.00, 0.00);
  580. CreateDynamicObject(655, 505.80, -1964.50, 1.00, 0.00, 0.00, 0.00);
  581. CreateDynamicObject(8674, 515.50, -1963.62, 2.90, 0.00, 0.00, 0.00);
  582. CreateDynamicObject(8674, 501.50, -1963.70, 2.90, 0.00, 0.00, 0.00);
  583. CreateDynamicObject(8674, 521.90, -1963.60, 2.90, 0.00, 0.00, 0.00);
  584. CreateDynamicObject(8674, 526.70, -1968.80, 2.90, 0.00, 0.00, 90.00);
  585. CreateDynamicObject(8674, 526.70, -1979.20, 2.90, 0.00, 0.00, 90.00);
  586. CreateDynamicObject(8674, 526.70, -1989.60, 2.90, 0.00, 0.00, 90.00);
  587. CreateDynamicObject(8674, 526.70, -2000.00, 2.90, 0.00, 0.00, 90.00);
  588. CreateDynamicObject(8674, 526.70, -2008.30, 2.90, 0.00, 0.00, 90.00);
  589. CreateDynamicObject(8674, 496.40, -1968.90, 2.90, 0.00, 0.00, 90.00);
  590. CreateDynamicObject(8674, 496.40, -1979.20, 2.90, 0.00, 0.00, 90.00);
  591. CreateDynamicObject(8674, 496.40, -1989.50, 2.90, 0.00, 0.00, 90.00);
  592. CreateDynamicObject(8674, 496.40, -1999.80, 2.90, 0.00, 0.00, 90.00);
  593. CreateDynamicObject(8674, 496.40, -2008.50, 2.90, 0.00, 0.00, 90.00);
  594. CreateDynamicObject(8674, 501.60, -2013.60, 2.90, 0.00, 0.00, 0.00);
  595. CreateDynamicObject(8674, 511.90, -2013.60, 2.90, 0.00, 0.00, 0.00);
  596. CreateDynamicObject(8674, 521.89, -2013.58, 2.90, 0.00, 0.00, 0.00);
  597. CreateDynamicObject(658, 498.50, -2011.30, 0.00, 0.00, 0.00, 0.00);
  598. CreateDynamicObject(661, 523.00, -2010.20, 0.00, 0.00, 0.00, 0.00);
  599. CreateDynamicObject(669, 519.20, -1965.60, 0.60, 0.00, 0.00, 0.00);
  600. CreateDynamicObject(671, 502.20, -1966.70, 0.90, 0.00, 0.00, 0.00);
  601. CreateDynamicObject(683, 506.10, -1974.40, 0.00, 0.00, 0.00, 338.00);
  602. CreateDynamicObject(683, 514.70, -1971.60, -0.50, 0.00, 0.00, 0.00);
  603. CreateDynamicObject(683, 523.20, -1986.30, 1.00, 0.00, 0.00, 338.00);
  604. CreateDynamicObject(686, 501.30, -1984.00, 1.00, 0.00, 0.00, 0.00);
  605. CreateDynamicObject(687, 502.50, -2000.10, 1.00, 0.00, 0.00, 0.00);
  606. CreateDynamicObject(688, 509.70, -1988.20, 0.40, 0.00, 0.00, 0.00);
  607. CreateDynamicObject(698, 515.98, -2005.79, 5.21, 0.00, 0.00, 18.00);
  608. CreateDynamicObject(617, 519.90, -2003.20, 0.00, 0.00, 0.00, 0.00);
  609. CreateDynamicObject(18783, 592.40, -2095.16, 1.62, 0.00, 0.00, 0.00);
  610. CreateDynamicObject(18783, 587.73, -2075.23, 0.14, 0.00, 0.00, 0.00);
  611. CreateDynamicObject(19054, 597.50, -1901.02, 2.54, 0.00, 11.00, 22.00);
  612. CreateDynamicObject(19054, 511.85, -1898.48, 0.71, -6.00, 19.00, 55.00);
  613. CreateDynamicObject(19129, 607.77, -2075.20, 2.63, 0.00, 0.00, 0.00);
  614. CreateDynamicObject(19332, 638.21, -1851.31, 39.59, 0.00, 0.00, 0.00);
  615. CreateDynamicObject(19333, 479.83, -1886.54, 28.91, 0.00, 0.00, 0.00);
  616. CreateDynamicObject(19337, 736.53, -1869.08, 50.05, 0.00, 0.00, 0.00);
  617. CreateDynamicObject(19338, 495.84, -2012.09, 65.52, 0.00, 0.00, 0.00);
  618. CreateDynamicObject(19337, 677.49, -2053.15, 43.23, 0.00, 0.00, -4.00);
  619. CreateDynamicObject(19129, 587.77, -2075.20, 2.63, 0.00, 0.00, 0.00);
  620. CreateDynamicObject(19054, 505.11, -1899.58, 0.74, 0.00, 17.00, 0.00);
  621. CreateDynamicObject(19054, 547.91, -1827.12, 1.61, 0.00, 0.00, 0.00);
  622. CreateDynamicObject(19054, 547.91, -1827.12, 1.61, 0.00, 0.00, 0.00);
  623. CreateDynamicObject(18783, 607.72, -2075.23, 0.14, 0.00, 0.00, 0.00);
  624. CreateDynamicObject(18783, 587.80, -2095.15, 0.14, 0.00, 0.00, 0.00);
  625. CreateDynamicObject(18783, 607.81, -2095.15, 0.14, 0.00, 0.00, 0.00);
  626. CreateDynamicObject(14537, 609.80, -2095.90, 4.60, 0.00, 0.00, 0.00);
  627. CreateDynamicObject(8572, 618.67, -2068.26, 1.45, 0.00, 0.00, 90.00);
  628. CreateDynamicObject(8572, 577.02, -2081.87, 1.39, 0.00, 0.00, -90.00);
  629. CreateDynamicObject(3406, 577.10, -2075.89, -1.20, 0.00, 0.00, 90.00);
  630. CreateDynamicObject(3406, 573.87, -2070.99, -1.20, 0.00, 0.00, 0.00);
  631. CreateDynamicObject(3406, 565.11, -2071.00, -1.20, 0.00, 0.00, 0.00);
  632. CreateDynamicObject(3406, 561.18, -2065.08, -1.20, 0.00, 0.00, 90.00);
  633. CreateDynamicObject(3406, 561.18, -2056.28, -1.20, 0.00, 0.00, 90.00);
  634. CreateDynamicObject(11495, 561.20, -2034.67, 6.21, 0.00, 0.00, 0.00);
  635. CreateDynamicObject(3406, 561.18, -2047.38, 2.36, 0.00, -39.00, 90.00);
  636. CreateDynamicObject(3406, 561.19, -2021.14, 1.69, 0.00, 39.00, 90.00);
  637. CreateDynamicObject(3406, 561.17, -2011.90, -1.20, 0.00, 0.00, 90.00);
  638. CreateDynamicObject(3406, 561.17, -2003.10, -1.20, 0.00, 0.00, 90.00);
  639. CreateDynamicObject(3406, 561.17, -1994.30, -1.20, 0.00, 0.00, 90.00);
  640. CreateDynamicObject(3406, 561.17, -1985.50, -1.20, 0.00, 0.00, 90.00);
  641. CreateDynamicObject(3406, 561.18, -1976.71, -1.20, 0.00, 0.00, 90.00);
  642. CreateDynamicObject(3406, 561.17, -1967.91, -1.20, 0.00, 0.00, 90.00);
  643. CreateDynamicObject(3406, 561.17, -1958.93, 2.36, 0.00, -39.00, 90.00);
  644. CreateDynamicObject(11495, 561.12, -1946.23, 6.23, 0.00, 0.00, 0.00);
  645. CreateDynamicObject(3406, 561.11, -1932.70, 1.72, 0.00, 39.00, 90.00);
  646. CreateDynamicObject(3406, 561.12, -1923.47, -1.19, 0.00, 0.00, 90.00);
  647. CreateDynamicObject(3406, 561.12, -1914.67, -1.19, 0.00, 0.00, 90.00);
  648. CreateDynamicObject(3406, 561.12, -1906.27, -1.94, 0.00, 9.00, 90.00);
  649. CreateDynamicObject(1607, 585.65, -1941.91, -0.09, 15.00, 4.00, 60.00);
  650. CreateDynamicObject(1608, 523.48, -1957.19, -0.50, 9.00, -1.00, 47.00);
  651. CreateDynamicObject(1608, 498.81, -1947.70, -0.76, 9.00, -1.00, -164.00);
  652. CreateDynamicObject(1607, 685.75, -1946.98, -0.24, 15.00, 4.00, -62.00);
  653. CreateDynamicObject(970, 615.67, -2085.23, 3.21, 0.00, 0.00, 0.00);
  654. CreateDynamicObject(970, 610.08, -2085.22, 3.21, 0.00, 0.00, 0.00);
  655. CreateDynamicObject(970, 604.60, -2085.21, 3.21, 0.00, 0.00, 0.00);
  656. CreateDynamicObject(970, 617.78, -2087.33, 3.21, 0.00, 0.00, 90.00);
  657. CreateDynamicObject(970, 617.79, -2091.55, 3.21, 0.00, 0.00, 90.00);
  658. CreateDynamicObject(970, 617.79, -2091.55, 3.21, 0.00, 0.00, 90.00);
  659. CreateDynamicObject(970, 617.79, -2095.77, 3.21, 0.00, 0.00, 90.00);
  660. CreateDynamicObject(970, 617.78, -2099.96, 3.21, 0.00, 0.00, 90.00);
  661. CreateDynamicObject(970, 616.44, -2103.56, 3.21, 0.00, 0.00, 229.00);
  662. CreateDynamicObject(970, 612.94, -2105.17, 3.21, 0.00, 0.00, 0.00);
  663. CreateDynamicObject(970, 608.72, -2105.18, 3.21, 0.00, 0.00, 0.00);
  664. CreateDynamicObject(970, 604.52, -2105.14, 3.21, 0.00, 0.00, 0.00);
  665. CreateDynamicObject(19054, 609.66, -2093.18, 7.20, 0.00, 0.00, -21.00);
  666. CreateDynamicObject(19054, 606.96, -2095.82, 7.20, 0.00, 0.00, 34.00);
  667. CreateDynamicObject(19056, 535.38, -1939.94, 0.17, 0.00, -14.00, -15.00);
  668. CreateDynamicObject(19056, 542.78, -1884.10, 2.70, 0.00, -14.00, -15.00);
  669. CreateDynamicObject(2232, 601.98, -2085.66, 4.71, 0.00, 0.00, 180.00);
  670. CreateDynamicObject(2232, 599.01, -2085.62, 4.71, 0.00, 0.00, 180.00);
  671. CreateDynamicObject(2232, 596.27, -2085.65, 4.71, 0.00, 0.00, 180.00);
  672. CreateDynamicObject(2232, 589.64, -2085.63, 4.71, 0.00, 0.00, 180.00);
  673. CreateDynamicObject(2232, 586.64, -2085.62, 4.71, 0.00, 0.00, 180.00);
  674. CreateDynamicObject(2232, 583.62, -2085.68, 4.71, 0.00, 0.00, 180.00);
  675. CreateDynamicObject(2232, 616.44, -2065.96, 3.27, 0.00, 0.00, 327.00);
  676. CreateDynamicObject(2232, 578.50, -2065.94, 3.27, 0.00, 0.00, 35.00);
  677. CreateDynamicObject(2232, 617.06, -2084.50, 3.27, 0.00, 0.00, 222.00);
  678. CreateDynamicObject(3406, 556.32, -2071.00, -1.20, 0.00, 0.00, 0.00);
  679. CreateDynamicObject(970, 580.09, -2093.46, 3.21, 0.00, 0.00, 0.00);
  680. CreateDynamicObject(3406, 550.40, -2073.91, -1.20, 0.00, 0.00, 90.00);
  681. CreateDynamicObject(3406, 550.40, -2082.71, -1.20, 0.00, 0.00, 90.00);
  682. CreateDynamicObject(3406, 550.40, -2091.51, -1.20, 0.00, 0.00, 90.00);
  683. CreateDynamicObject(3406, 556.33, -2077.48, -1.20, 0.00, 0.00, 0.00);
  684. CreateDynamicObject(3406, 556.36, -2083.48, -1.20, 0.00, 0.00, 0.00);
  685. CreateDynamicObject(3406, 556.34, -2089.62, -1.20, 0.00, 0.00, 0.00);
  686. CreateDynamicObject(3406, 556.33, -2095.44, -1.20, 0.00, 0.00, 0.00);
  687. CreateDynamicObject(3406, 545.51, -2071.03, -1.20, 0.00, 0.00, 0.00);
  688. CreateDynamicObject(3406, 541.61, -2075.90, -1.20, 0.00, 0.00, 90.00);
  689. CreateDynamicObject(3406, 532.94, -2075.89, -1.20, 0.00, 0.00, 90.00);
  690. CreateDynamicObject(3406, 536.72, -2071.03, -1.20, 0.00, 0.00, 0.00);
  691. CreateDynamicObject(3406, 527.94, -2071.02, -1.20, 0.00, 0.00, 0.00);
  692. CreateDynamicObject(3406, 519.14, -2071.01, -1.20, 0.00, 0.00, 0.00);
  693. CreateDynamicObject(3406, 524.44, -2075.94, -1.20, 0.00, 0.00, 90.00);
  694. CreateDynamicObject(3406, 515.26, -2075.90, -1.20, 0.00, 0.00, 90.00);
  695. CreateDynamicObject(19054, 700.05, -1958.01, 1.74, 0.00, 0.00, -21.00);
  696. CreateDynamicObject(2125, 613.80, -2090.49, 2.97, 0.00, 0.00, 0.00);
  697. CreateDynamicObject(2125, 611.78, -2090.51, 2.97, 0.00, 0.00, 0.00);
  698. CreateDynamicObject(2125, 607.88, -2090.51, 2.97, 0.00, 0.00, 0.00);
  699. CreateDynamicObject(2125, 606.10, -2090.50, 2.97, 0.00, 0.00, 0.00);
  700. CreateDynamicObject(2125, 604.41, -2091.94, 2.97, 0.00, 0.00, 0.00);
  701. CreateDynamicObject(2125, 604.32, -2093.70, 2.97, 0.00, 0.00, 0.00);
  702. CreateDynamicObject(2125, 604.42, -2098.20, 2.97, 0.00, 0.00, 0.00);
  703. CreateDynamicObject(2125, 604.45, -2099.78, 2.97, 0.00, 0.00, 0.00);
  704. CreateDynamicObject(2125, 605.82, -2101.27, 2.97, 0.00, 0.00, 0.00);
  705. CreateDynamicObject(2125, 607.70, -2101.25, 2.97, 0.00, 0.00, 0.00);
  706. CreateDynamicObject(2125, 611.94, -2101.35, 2.97, 0.00, 0.00, 0.00);
  707. CreateDynamicObject(2125, 613.53, -2101.32, 2.97, 0.00, 0.00, 0.00);
  708. CreateDynamicObject(2125, 615.22, -2099.85, 2.97, 0.00, 0.00, 0.00);
  709. CreateDynamicObject(2125, 615.18, -2098.13, 2.97, 0.00, 0.00, 0.00);
  710. CreateDynamicObject(2125, 615.13, -2093.73, 2.97, 0.00, 0.00, 0.00);
  711. CreateDynamicObject(2125, 615.13, -2092.12, 2.97, 0.00, 0.00, 0.00);
  712. CreateDynamicObject(1243, 601.10, -2021.39, -2.60, 0.00, 0.00, 0.00);
  713. CreateDynamicObject(3461, 577.85, -2065.34, 4.10, 0.00, 0.00, 0.00);
  714. CreateDynamicObject(3461, 617.62, -2065.29, 4.10, 0.00, 0.00, 0.00);
  715. CreateDynamicObject(3461, 617.63, -2084.91, 4.10, 0.00, 0.00, 0.00);
  716. CreateDynamicObject(3461, 577.98, -2085.04, 4.10, 0.00, 0.00, 0.00);
  717. CreateDynamicObject(3461, 628.64, -1911.02, 2.64, 0.00, 0.00, 0.00);
  718. CreateDynamicObject(3461, 632.48, -1910.96, 2.64, 0.00, 0.00, 0.00);
  719. CreateDynamicObject(3461, 703.33, -1913.20, 2.64, 0.00, 0.00, 0.00);
  720. CreateDynamicObject(3461, 707.03, -1913.17, 2.64, 0.00, 0.00, 0.00);
  721. CreateDynamicObject(3461, 560.08, -1907.29, 1.85, 0.00, 0.00, 0.00);
  722. CreateDynamicObject(3461, 562.18, -1907.33, 1.85, 0.00, 0.00, 0.00);
  723. CreateDynamicObject(3461, 562.06, -1935.26, 7.88, 0.00, 0.00, 0.00);
  724. CreateDynamicObject(3461, 562.04, -1957.21, 7.88, 0.00, 0.00, 0.00);
  725. CreateDynamicObject(3461, 562.14, -2023.68, 7.88, 0.00, 0.00, 0.00);
  726. CreateDynamicObject(3461, 562.11, -2045.63, 7.88, 0.00, 0.00, 0.00);
  727. CreateDynamicObject(3461, 562.10, -2070.00, 2.33, 0.00, 0.00, 0.00);
  728. CreateDynamicObject(3461, 506.69, -1898.93, 1.85, 0.00, 0.00, 0.00);
  729. CreateDynamicObject(3461, 510.33, -1898.92, 1.85, 0.00, 0.00, 0.00);
  730. CreateDynamicObject(18653, 602.45, -2085.17, 2.69, 0.00, 0.00, -55.00);
  731. CreateDynamicObject(18653, 582.34, -2085.17, 2.69, 0.00, 0.00, -125.00);
  732. CreateDynamicObject(18647, 600.45, -2085.16, 4.03, 0.00, 0.00, 90.00);
  733. CreateDynamicObject(18647, 594.35, -2085.16, 4.03, 0.00, 0.00, 90.00);
  734. CreateDynamicObject(18647, 589.92, -2085.16, 4.03, 0.00, 0.00, 90.00);
  735. CreateDynamicObject(18647, 584.76, -2085.15, 4.03, 0.00, 0.00, 90.00);
  736. CreateDynamicObject(18771, 676.01, -2054.44, -5.66, 0.00, 0.00, 0.00);
  737. CreateDynamicObject(2180, 595.39, -2085.93, 4.06, 0.00, 0.00, 180.00);
  738. CreateDynamicObject(2180, 593.43, -2085.94, 4.06, 0.00, 0.00, 180.00);
  739. CreateDynamicObject(2180, 591.49, -2085.94, 4.06, 0.00, 0.00, 180.00);
  740. CreateDynamicObject(18647, 594.90, -2085.46, 4.86, 0.00, 0.00, 90.00);
  741. CreateDynamicObject(18647, 592.92, -2085.46, 4.86, 0.00, 0.00, 90.00);
  742. CreateDynamicObject(18647, 590.93, -2085.45, 4.86, 0.00, 0.00, 90.00);
  743. CreateDynamicObject(14820, 593.88, -2085.92, 4.89, 0.00, 0.00, 0.00);
  744. CreateDynamicObject(14820, 591.88, -2085.92, 4.89, 0.00, 0.00, 0.00);
  745. CreateDynamicObject(18653, 595.83, -2085.54, 4.09, 0.00, 0.00, -55.00);
  746. CreateDynamicObject(18653, 590.06, -2085.57, 4.09, 0.00, 0.00, -125.00);
  747. CreateDynamicObject(18275, 592.83, -2086.86, 6.32, 0.00, 0.00, 0.00);
  748. CreateDynamicObject(970, 600.47, -2089.90, 4.67, 0.00, 0.00, 25.00);
  749. CreateDynamicObject(970, 596.53, -2090.76, 4.67, 0.00, 0.00, 0.00);
  750. CreateDynamicObject(970, 592.43, -2090.76, 4.67, 0.00, 0.00, 0.00);
  751. CreateDynamicObject(970, 588.29, -2090.77, 4.67, 0.00, 0.00, 0.00);
  752. CreateDynamicObject(970, 584.32, -2089.88, 4.67, 0.00, 0.00, -25.00);
  753. CreateDynamicObject(970, 582.47, -2087.19, 4.67, 0.00, 0.00, -90.00);
  754. CreateDynamicObject(970, 602.38, -2087.28, 4.67, 0.00, 0.00, -90.00);
  755. CreateDynamicObject(970, 602.39, -2091.48, 4.67, 0.00, 0.00, -90.00);
  756. CreateDynamicObject(970, 602.37, -2095.67, 4.67, 0.00, 0.00, -90.00);
  757. CreateDynamicObject(970, 602.38, -2099.76, 4.67, 0.00, 0.00, -90.00);
  758. CreateDynamicObject(970, 600.47, -2123.88, 4.67, 0.00, 0.00, 33.00);
  759. CreateDynamicObject(970, 588.15, -2125.01, 4.67, 0.00, 0.00, 0.00);
  760. CreateDynamicObject(970, 584.24, -2123.87, 4.67, 0.00, 0.00, -33.00);
  761. CreateDynamicObject(970, 582.54, -2099.59, 4.67, 0.00, 0.00, -90.00);
  762. CreateDynamicObject(970, 582.53, -2095.34, 4.67, 0.00, 0.00, -90.00);
  763. CreateDynamicObject(970, 584.41, -2094.15, 4.67, 0.00, 0.00, -25.00);
  764. CreateDynamicObject(970, 577.86, -2087.24, 3.21, 0.00, 0.00, 90.00);
  765. CreateDynamicObject(970, 577.89, -2091.41, 3.21, 0.00, 0.00, 90.00);
  766. CreateDynamicObject(14394, 581.32, -2089.27, 3.25, 0.00, 0.00, 0.00);
  767. CreateDynamicObject(970, 582.23, -2085.24, 3.21, 0.00, 0.00, 0.00);
  768. CreateDynamicObject(18783, 592.39, -2115.16, 1.62, 0.00, 0.00, 0.00);
  769. CreateDynamicObject(970, 582.54, -2103.80, 4.67, 0.00, 0.00, -90.00);
  770. CreateDynamicObject(970, 582.53, -2107.98, 4.67, 0.00, 0.00, -90.00);
  771. CreateDynamicObject(970, 582.52, -2112.21, 4.67, 0.00, 0.00, -90.00);
  772. CreateDynamicObject(970, 582.50, -2116.42, 4.67, 0.00, 0.00, -90.00);
  773. CreateDynamicObject(970, 582.49, -2120.59, 4.67, 0.00, 0.00, -90.00);
  774. CreateDynamicObject(970, 592.35, -2125.02, 4.67, 0.00, 0.00, 0.00);
  775. CreateDynamicObject(970, 596.57, -2125.02, 4.67, 0.00, 0.00, 0.00);
  776. CreateDynamicObject(970, 602.37, -2103.98, 4.67, 0.00, 0.00, -90.00);
  777. CreateDynamicObject(970, 602.38, -2108.14, 4.67, 0.00, 0.00, -90.00);
  778. CreateDynamicObject(970, 602.38, -2112.26, 4.67, 0.00, 0.00, -90.00);
  779. CreateDynamicObject(970, 602.39, -2116.43, 4.67, 0.00, 0.00, -90.00);
  780. CreateDynamicObject(970, 602.39, -2120.61, 4.67, 0.00, 0.00, -90.00);
  781. CreateDynamicObject(3578, 689.90, -1959.30, 0.58, 0.00, 0.00, 0.00);
  782. CreateDynamicObject(3578, 720.78, -1959.30, 0.58, 0.00, 0.00, 0.00);
  783. CreateDynamicObject(3578, 726.19, -1964.20, 0.58, 0.00, 0.00, 90.00);
  784. CreateDynamicObject(3578, 684.52, -1964.20, 0.58, 0.00, 0.00, 90.00);
  785. CreateDynamicObject(3578, 684.52, -1974.50, 0.58, 0.00, 0.00, 90.00);
  786. CreateDynamicObject(3578, 684.52, -1984.80, 0.58, 0.00, 0.00, 90.00);
  787. CreateDynamicObject(3578, 684.52, -1995.10, 0.58, 0.00, 0.00, 90.00);
  788. CreateDynamicObject(3578, 726.19, -1974.50, 0.58, 0.00, 0.00, 90.00);
  789. CreateDynamicObject(3578, 726.19, -1984.80, 0.58, 0.00, 0.00, 90.00);
  790. CreateDynamicObject(3578, 726.19, -1995.10, 0.58, 0.00, 0.00, 90.00);
  791. CreateDynamicObject(3578, 689.90, -1999.98, 0.58, 0.00, 0.00, 0.00);
  792. CreateDynamicObject(3578, 700.20, -1999.98, 0.58, 0.00, 0.00, 0.00);
  793. CreateDynamicObject(3578, 710.50, -1999.98, 0.58, 0.00, 0.00, 0.00);
  794. CreateDynamicObject(3578, 720.78, -1999.98, 0.58, 0.00, 0.00, 0.00);
  795. CreateDynamicObject(3499, 726.21, -1959.20, 5.00, 0.00, 0.00, 0.00);
  796. CreateDynamicObject(3499, 726.21, -2000.05, 5.00, 0.00, 0.00, 0.00);
  797. CreateDynamicObject(3499, 684.48, -2000.05, 5.00, 0.00, 0.00, 0.00);
  798. CreateDynamicObject(19313, 718.66, -1999.96, 4.59, 0.00, 0.00, 0.00);
  799. CreateDynamicObject(19313, 704.58, -1999.96, 4.59, 0.00, 0.00, 180.00);
  800. CreateDynamicObject(19313, 690.90, -1999.96, 4.59, 0.00, 0.00, 0.00);
  801. CreateDynamicObject(19313, 718.66, -1959.28, 4.59, 0.00, 0.00, 0.00);
  802. CreateDynamicObject(19313, 704.58, -1959.28, 4.59, 0.00, 0.00, 180.00);
  803. CreateDynamicObject(19313, 690.90, -1959.28, 4.59, 0.00, 0.00, 180.00);
  804. CreateDynamicObject(19313, 726.18, -1992.48, 4.59, 0.00, 0.00, 90.00);
  805. CreateDynamicObject(19313, 726.18, -1978.41, 4.59, 0.00, 0.00, -90.00);
  806. CreateDynamicObject(19313, 726.18, -1965.63, 4.59, 0.00, 0.00, -90.00);
  807. CreateDynamicObject(19313, 684.48, -1966.36, 4.59, 0.00, 0.00, -90.00);
  808. CreateDynamicObject(19313, 684.48, -1978.41, 4.59, 0.00, 0.00, -90.00);
  809. CreateDynamicObject(19313, 684.48, -1992.48, 4.59, 0.00, 0.00, -90.00);
  810. CreateDynamicObject(3578, 705.25, -1979.18, 0.58, 0.00, 0.00, 0.00);
  811. CreateDynamicObject(3499, 699.46, -1979.17, 5.00, 0.00, 0.00, 0.00);
  812. CreateDynamicObject(3499, 711.03, -1979.17, 5.00, 0.00, 0.00, 0.00);
  813. CreateDynamicObject(12814, 690.21, -1980.05, 8.65, 0.00, 180.00, 0.00);
  814. CreateDynamicObject(12814, 720.20, -1980.05, 8.65, 0.00, 180.00, 0.00);
  815. }
  816. stock GetPlayerNameEx(playerid) {
  817. new
  818. sz_playerName[MAX_PLAYER_NAME],
  819. i_pos;
  820. GetPlayerName(playerid, sz_playerName, MAX_PLAYER_NAME);
  821. while ((i_pos = strfind(sz_playerName, "_", false, i_pos)) != -1) sz_playerName[i_pos] = ' ';
  822. return sz_playerName;
  823. }