Guest User

CSCR

a guest
Jun 20th, 2013
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.12 KB | None | 0 0
  1. //============================================================================//
  2. //============================== Official Topic ==============================//
  3. //============= http://forum.sa-mp.com/showthread.php?p=1340142 ==============//
  4. //============================================================================//
  5. //====================== Camera Security Controle Room =======================//
  6. //============================ Police Department =============================//
  7. //============================================================================//
  8. //=================== FilterScript Created by Improvementâ„¢ ===================//
  9. //============================================================================//
  10.  
  11. #include <a_samp>
  12. #include <dudb>
  13. #pragma unused ret_memcpy
  14.  
  15. //|======| Define Colours |======|
  16. #define COLOR_LIGHTRED 0xFF6347FF
  17. #define COLOR_RED 0xE60000FF
  18.  
  19. //|=====| Enum & New |=====|
  20. enum LSPD_Door1_Info
  21. {
  22. Obj1,
  23. Obj2,
  24. Obj3,
  25. Obj4,
  26. };
  27. new CSCR_Door1[LSPD_Door1_Info];
  28.  
  29. enum LSPD_Door2_Info
  30. {
  31. Obj1,
  32. Obj2,
  33. Obj3,
  34. Obj4,
  35. };
  36. new CSCR_Door2[LSPD_Door2_Info];
  37.  
  38. new IsPlayerViewingCSCR[MAX_PLAYERS];
  39. new ViewingCSCR[MAX_PLAYERS];
  40. new CSCR_DoorTimer = 0;
  41. new CSCR_Door1Open = 0;
  42. new CSCR_Door2Open = 0;
  43. new CloseDoorTimer1, CloseDoorTimer2;
  44.  
  45. //|======| Forwards |======|
  46. forward CloseDoor1();
  47. forward CloseDoor2();
  48. forward CSCRDoors(playerid);
  49. forward CSCRCameras(playerid);
  50. forward OpenDoorTimer(playerid);
  51.  
  52. public OnFilterScriptInit()
  53. {
  54. print("\n-----------------------");
  55. print("Camera Security Controle Room Loaded");
  56. print("Created by Improvement.");
  57. print("-----------------------\n");
  58. }
  59.  
  60. //------------------------------------------------------------------------//
  61. //|======| OnPlayerSpawn Function |======|
  62.  
  63. public OnPlayerSpawn(playerid)
  64. {
  65. IsPlayerViewingCSCR[playerid] = 0;
  66. }
  67.  
  68. //------------------------------------------------------------------------//
  69. //|======| Custom Functions |======|
  70. public CSCRCameras(playerid)
  71. {
  72. if(IsPlayerConnected(playerid))
  73. {
  74. if(IsPlayerAdmin(playerid))
  75. {
  76. if(IsPlayerInRangeOfPoint(playerid, 1.5, 215.54, 80.63, 1005.04))
  77. {
  78. TogglePlayerControllable(playerid, 0);
  79. SetPlayerPos(playerid, 242.76, 71.97, 1011.24);
  80. SetPlayerFacingAngle(playerid, 210);
  81. SetPlayerCameraPos(playerid, 242.76, 71.97, 1007.08);
  82. SetPlayerCameraLookAt(playerid, 248.69, 62.71, 1003.64);
  83. }
  84. if(ViewingCSCR[playerid] == 0)
  85. {
  86. SetPlayerPos(playerid, 242.76, 71.97, 1011.24);
  87. SetPlayerFacingAngle(playerid, 210);
  88. SetPlayerCameraPos(playerid, 242.76, 71.97, 1007.08);
  89. SetPlayerCameraLookAt(playerid, 248.69, 62.71, 1003.64);
  90. }
  91. else if(ViewingCSCR[playerid] == 1)
  92. {
  93. SetPlayerPos(playerid, 257.54, 71.06, 1007.22);
  94. SetPlayerFacingAngle(playerid, 122.5);
  95. SetPlayerCameraPos(playerid, 257.70, 71.11, 1006.01);
  96. SetPlayerCameraLookAt(playerid, 251.82, 67.25, 1003.64);
  97. }
  98. else if(ViewingCSCR[playerid] == 2)
  99. {
  100. SetPlayerPos(playerid, 251.36, 82.39, 1005.97);
  101. SetPlayerFacingAngle(playerid, 335.0);
  102. SetPlayerCameraPos(playerid, 251.36, 82.39, 1004.82);
  103. SetPlayerCameraLookAt(playerid, 255.34, 91.49, 1002.45);
  104. }
  105. else if(ViewingCSCR[playerid] == 3)
  106. {
  107. SetPlayerPos(playerid, 269.95, 92.30, 1004.68);
  108. SetPlayerFacingAngle(playerid, 155.0);
  109. SetPlayerCameraPos(playerid, 269.95, 92.30, 1003.45);
  110. SetPlayerCameraLookAt(playerid, 264.38, 80.40, 1000.50);
  111. }
  112. else if(ViewingCSCR[playerid] == 4)
  113. {
  114. SetPlayerPos(playerid, 231.00, 81.95, 1008.71);
  115. SetPlayerFacingAngle(playerid, 142.5);
  116. SetPlayerCameraPos(playerid, 231.14, 82.15, 1007.33);
  117. SetPlayerCameraLookAt(playerid, 227.18, 76.50, 1005.04);
  118. }
  119. else if(ViewingCSCR[playerid] == 5)
  120. {
  121. SetPlayerPos(playerid, 222.86, 80.43, 1008.71);
  122. SetPlayerFacingAngle(playerid, 210);
  123. SetPlayerCameraPos(playerid, 222.86, 80.43, 1007.47);
  124. SetPlayerCameraLookAt(playerid, 227.19, 73.67, 1005.04);
  125. }
  126. else if(ViewingCSCR[playerid] == 6)
  127. {
  128. SetPlayerPos(playerid, 214.67, 74.36, 1008.71);
  129. SetPlayerFacingAngle(playerid, 301.5);
  130. SetPlayerCameraPos(playerid, 214.67, 74.36, 1007.44);
  131. SetPlayerCameraLookAt(playerid, 223.55, 80.09, 1005.04);
  132. }
  133. }
  134. }
  135. return 1;
  136. }
  137.  
  138. public OpenDoorTimer(playerid)
  139. {
  140. if(IsPlayerInRangeOfPoint(playerid, 0.25, 226.94, 77.17, 1005.04) || IsPlayerInRangeOfPoint(playerid, 0.25, 225.35, 77.17, 1005.04))
  141. {
  142. if(IsPlayerAdmin(playerid))
  143. {
  144. CSCR_DoorTimer = 1;
  145. }
  146. if(IsPlayerInRangeOfPoint(playerid, 0.25, 226.94, 77.17, 1005.04))
  147. {
  148. SetPlayerPos(playerid, 227.09, 77.17, 1005.04);
  149. SetPlayerFacingAngle(playerid, 90.00);
  150. }
  151. else if(IsPlayerInRangeOfPoint(playerid, 0.25, 225.35, 77.17, 1005.04))
  152. {
  153. SetPlayerPos(playerid, 225.20, 77.17, 1005.04);
  154. SetPlayerFacingAngle(playerid, 270.00);
  155. }
  156. ApplyAnimation(playerid,"HEIST9","Use_SwipeCard", 2.1, 0, 0, 0, 0, 0, 1);
  157. SetTimerEx("CSCRDoors", 600, false, "d", playerid);
  158. }
  159. else if(IsPlayerInRangeOfPoint(playerid, 0.2, 222.93, 78.45, 1005.04) || IsPlayerInRangeOfPoint(playerid, 0.2, 221.36, 78.47, 1005.04))
  160. {
  161. if(IsPlayerInRangeOfPoint(playerid, 0.2, 222.93, 78.45, 1005.04))
  162. {
  163. SetPlayerPos(playerid, 223.08, 78.45, 1005.04);
  164. SetPlayerFacingAngle(playerid, 90.00);
  165. }
  166. else if(IsPlayerInRangeOfPoint(playerid, 0.2, 221.36, 78.47, 1005.04))
  167. {
  168. SetPlayerPos(playerid, 221.21, 78.47, 1005.04);
  169. SetPlayerFacingAngle(playerid, 270.00);
  170. }
  171. ApplyAnimation(playerid,"HEIST9","Use_SwipeCard", 2.1, 0, 0, 0, 0, 0, 1);
  172. SetTimerEx("CSCRDoors", 600, false, "d", playerid);
  173. CSCR_DoorTimer = 1;
  174. }
  175. }
  176.  
  177. public CSCRDoors(playerid)
  178. {
  179. if(IsPlayerConnected(playerid))
  180. {
  181. if(IsPlayerAdmin(playerid))
  182. {
  183. new PlayeridName[MAX_PLAYER_NAME],
  184. StrMsgLocking1[256],
  185. StrMsgLocking2[256],
  186. StrMsgUnlocking1[256],
  187. StrMsgUnlocking2[256];
  188. GetPlayerName(playerid, PlayeridName, sizeof(PlayeridName));
  189.  
  190. format(StrMsgLocking1, sizeof(StrMsgLocking1), "* %s enters the 6-digit code, locking the first security door.", PlayeridName);
  191. format(StrMsgUnlocking1, sizeof(StrMsgUnlocking1), "* %s enters the 6-digit code, unlocking the first security door.", PlayeridName);
  192. format(StrMsgLocking2, sizeof(StrMsgLocking2), "* %s enters the 6-digit code, locking the second security door.", PlayeridName);
  193. format(StrMsgUnlocking2, sizeof(StrMsgUnlocking2), "* %s enters the 6-digit code, unlocking the second security door.", PlayeridName);
  194.  
  195. if(IsPlayerInRangeOfPoint(playerid, 0.25, 226.94, 77.17, 1005.04) || IsPlayerInRangeOfPoint(playerid, 0.25, 225.35, 77.17, 1005.04))
  196. {
  197. if(CSCR_Door1Open == 0)
  198. {
  199. if(CSCR_Door2Open == 1)
  200. {
  201. SendClientMessage(playerid, COLOR_RED, "You Read ''ERROR: Second Security Door Must Be Closed! (Security Reasons)'' Of The Machine.");
  202. PlayerPlaySound(playerid, 1084, 0.0, 0.0, 0.0);
  203. CSCR_DoorTimer = 0;
  204. return 1;
  205. }
  206. MoveObject(CSCR_Door1[Obj1], 225.98766800,74.83477000,1005.18896500, 1.20);
  207. MoveObject(CSCR_Door2[Obj1], 226.10955500,74.24663500,1005.11053500, 1.25);
  208. MoveObject(CSCR_Door1[Obj2], 226.26766700,76.81610100,1005.18896500, 1.20);
  209. MoveObject(CSCR_Door2[Obj2], 226.13242800,77.41355900,1005.11053500, 1.25);
  210.  
  211. CSCR_Door1Open = 1;
  212. PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
  213. SendClientMessageToAll(COLOR_LIGHTRED, StrMsgUnlocking1);
  214. CloseDoorTimer1 = SetTimer("CloseDoor1", 5000, false);
  215. }
  216. else if(CSCR_Door1Open == 1)
  217. {
  218. MoveObject(CSCR_Door1[Obj1], 225.98766800,75.83477000,1005.18896500, 1.20);
  219. MoveObject(CSCR_Door2[Obj1], 226.10955500,75.24663500,1005.11053500, 1.20);
  220. MoveObject(CSCR_Door1[Obj2], 226.26766700,75.81610100,1005.18896500, 1.20);
  221. MoveObject(CSCR_Door2[Obj2], 226.13242800,76.41355900,1005.11053500, 1.20);
  222.  
  223. CSCR_Door1Open = 0;
  224. PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
  225. SendClientMessageToAll(COLOR_LIGHTRED, StrMsgLocking1);
  226. KillTimer(CloseDoorTimer1);
  227. }
  228. }
  229. if(IsPlayerInRangeOfPoint(playerid, 0.2, 222.93, 78.45, 1005.04) || IsPlayerInRangeOfPoint(playerid, 0.2, 221.36, 78.47, 1005.04))
  230. {
  231. if(CSCR_Door2Open == 0)
  232. {
  233. if(CSCR_Door1Open == 1)
  234. {
  235. SendClientMessage(playerid, COLOR_RED, "You Read ''ERROR: First Security Door Must Be Closed! (Security Reasons)'' Of The Machine.");
  236. PlayerPlaySound(playerid, 1084, 0.0, 0.0, 0.0);
  237. CSCR_DoorTimer = 0;
  238. return 1;
  239. }
  240. MoveObject(CSCR_Door1[Obj3], 222.18733200,78.83387000,1005.18896500, 1.20);
  241. MoveObject(CSCR_Door2[Obj3], 222.33020000,77.24927500,1005.13555900, 1.25);
  242. MoveObject(CSCR_Door1[Obj4], 222.46356200,80.81382800,1005.18896500, 1.20);
  243. MoveObject(CSCR_Door2[Obj4], 222.35713200,81.40256500,1005.11053500, 1.25);
  244.  
  245. CSCR_Door2Open = 1;
  246. PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
  247. SendClientMessageToAll(COLOR_LIGHTRED, StrMsgUnlocking2);
  248. CloseDoorTimer2 = SetTimer("CloseDoor2", 5000, false);
  249. }
  250. else if(CSCR_Door2Open == 1)
  251. {
  252. MoveObject(CSCR_Door1[Obj3], 222.18733200,79.83387000,1005.18896500, 1.20);
  253. MoveObject(CSCR_Door2[Obj3], 222.33020000,79.24927500,1005.13555900, 1.20);
  254. MoveObject(CSCR_Door1[Obj4], 222.46356200,79.81382800,1005.18896500, 1.20);
  255. MoveObject(CSCR_Door2[Obj4], 222.35713200,80.40256500,1005.11053500, 1.20);
  256.  
  257. CSCR_Door2Open = 0;
  258. PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
  259. SendClientMessageToAll(COLOR_LIGHTRED, StrMsgLocking2);
  260. KillTimer(CloseDoorTimer2);
  261. }
  262. }
  263. CSCR_DoorTimer = 0;
  264. }
  265. }
  266. return 1;
  267. }
  268.  
  269. public CloseDoor1()
  270. {
  271. if(CSCR_Door1Open == 1)
  272. {
  273. MoveObject(CSCR_Door1[Obj1], 225.98766800,75.83477000,1005.18896500, 1.20);
  274. MoveObject(CSCR_Door2[Obj1], 226.10955500,75.24663500,1005.11053500, 1.20);
  275. MoveObject(CSCR_Door1[Obj2], 226.26766700,75.81610100,1005.18896500, 1.20);
  276. MoveObject(CSCR_Door2[Obj2], 226.13242800,76.41355900,1005.11053500, 1.20);
  277. CSCR_Door1Open = 0;
  278. }
  279. }
  280.  
  281. public CloseDoor2()
  282. {
  283. if(CSCR_Door2Open == 1)
  284. {
  285. MoveObject(CSCR_Door1[Obj3], 222.18733200,79.83387000,1005.18896500, 1.20);
  286. MoveObject(CSCR_Door2[Obj3], 222.33020000,79.24927500,1005.13555900, 1.20);
  287. MoveObject(CSCR_Door1[Obj4], 222.46356200,79.81382800,1005.18896500, 1.20);
  288. MoveObject(CSCR_Door2[Obj4], 222.35713200,80.40256500,1005.11053500, 1.20);
  289. CSCR_Door2Open = 0;
  290. }
  291. }
  292.  
  293. //------------------------------------------------------------------------//
  294. //|======| Press Button Function |======|
  295.  
  296. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  297. {
  298. if(newkeys & (KEY_SECONDARY_ATTACK))
  299. {
  300. if(CSCR_DoorTimer == 0)
  301. {
  302. OpenDoorTimer(playerid);
  303. }
  304. }
  305. return 1;
  306. }
  307.  
  308. //------------------------------------------------------------------------//
  309. //|======| Command |======|
  310.  
  311. public OnPlayerText(playerid, text[])
  312. {
  313. new txt[256], idx;
  314. txt = strtok(text, idx);
  315.  
  316. if(strcmp(txt, "next", true) == 0)
  317. {
  318. if(IsPlayerViewingCSCR[playerid] == 1)
  319. {
  320. if(ViewingCSCR[playerid] == 6)
  321. {
  322. ViewingCSCR[playerid] = 0;
  323. CSCRCameras(playerid);
  324. return 0;
  325. }
  326. ViewingCSCR[playerid] ++;
  327. CSCRCameras(playerid);
  328. return 0;
  329. }
  330. }
  331. if(strcmp(txt, "prev", true) == 0 || strcmp(txt, "previous", true) == 0 || strcmp(txt, "back", true) == 0 || strcmp(txt, "before", true) == 0)
  332. {
  333. if(IsPlayerViewingCSCR[playerid] == 1)
  334. {
  335. if(ViewingCSCR[playerid] == 0)
  336. {
  337. ViewingCSCR[playerid] = 6;
  338. CSCRCameras(playerid);
  339. return 0;
  340. }
  341. ViewingCSCR[playerid] --;
  342. CSCRCameras(playerid);
  343. return 0;
  344. }
  345. }
  346. if(strcmp(txt, "stop", true) == 0)
  347. {
  348. if(IsPlayerViewingCSCR[playerid] == 1)
  349. {
  350. TogglePlayerControllable(playerid, 1);
  351. SetPlayerPos(playerid, 215.97, 80.65, 1005.04);
  352. SetPlayerFacingAngle(playerid, 90);
  353. SetCameraBehindPlayer(playerid);
  354. IsPlayerViewingCSCR[playerid] = 0;
  355. return 0;
  356. }
  357. }
  358. return 1;
  359. }
  360.  
  361. public OnPlayerCommandText(playerid, cmdtext[])
  362. {
  363. new cmd[256], idx;
  364. cmd = strtok(cmdtext, idx);
  365.  
  366. if(strcmp(cmd, "/camera", true) == 0 || strcmp(cmd, "/cameras", true) == 0 || strcmp(cmd, "/viewcamera", true) == 0 || strcmp(cmd, "/viewcameras", true) == 0)
  367. {
  368. if(IsPlayerInRangeOfPoint(playerid, 2.0, 215.97, 80.65, 1005.04))
  369. {
  370. if(IsPlayerViewingCSCR[playerid] == 1)
  371. {
  372. SendClientMessage(playerid, COLOR_RED, "You Are Already Viewing The Cameras!");
  373. return 1;
  374. }
  375. SendClientMessage(playerid, COLOR_LIGHTRED, "You Are Now Viewing The Los Santos Security Cameras.");
  376. SendClientMessage(playerid, COLOR_LIGHTRED, "Type 'next' or 'back' To Switch From Cameras. Type 'stop' To Stop Viewing The Cameras.");
  377. IsPlayerViewingCSCR[playerid] = 1;
  378. ViewingCSCR[playerid] = 0;
  379. CSCRCameras(playerid);
  380. }
  381. return 1;
  382. }
  383.  
  384. if(strcmp(cmd, "/cscrdoor", true) == 0)
  385. {
  386. OpenDoorTimer(playerid);
  387. return 1;
  388. }
  389. return 1;
  390. }
  391.  
  392. //End of FilterScript
Advertisement
Add Comment
Please, Sign In to add comment