Guest User

NtCat

a guest
Mar 23rd, 2009
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.83 KB | None | 0 0
  1. /* Mount Chilliad Funicular 1.1 by NtCat
  2.  
  3. Tento filterscript mozete pouzit na svojom serveri, ale nesmiete z neho odstranit copyright!
  4. Ak si chcete tento FS upravit a zmenit jeho nazov a autora, napiste mi na ICQ 379-616-719 alebo na e-mail [email protected].
  5. Nezabudnite si zmenit farby a premennu AdminLVL na taku, ktoru pouzivate v mode.
  6.  
  7. You can use this filterscript on your server, but you can NOT remove copyright from it!
  8. If you want to edit this FS and change its name and author, contact me on ICQ 379-616-719 or on e-mail [email protected].
  9. Don�t forget to change the colors and variable AdminLVL to your own, if you use it.
  10.  
  11. */
  12. #include <a_samp>
  13.  
  14. #define FILTERSCRIPT
  15.  
  16. #define dcmd(%1,%2,%3) if((strcmp((%3)[1],#%1,true,(%2))==0)&&((((%3)[(%2)+1]==0)&&(dcmd_%1(playerid,"")))||(((%3)[(%2)+1]==32)&&(dcmd_%1(playerid,(%3)[(%2)+2]))))) return 1
  17.  
  18. #define COL_WHITE 0xFFFFFFAA
  19. #define COL_RED 0xE10000AA
  20. #define COL_ORAN 0xFF8C00AA
  21.  
  22. new Fun1Floor1;
  23. new Fun1Floor2;
  24. new Fun1Floor3;
  25. new Fun1WallN;
  26. new Fun1WallS;
  27. new Fun1Roof1;
  28. new Fun1Roof2;
  29. new Fun1Roof3;
  30. new Fun1WallNW;
  31. new Fun1WallSW;
  32. new Fun1WallNE;
  33. new Fun1WallSE;
  34.  
  35. new Fun2Floor1;
  36. new Fun2Floor2;
  37. new Fun2Floor3;
  38. new Fun2WallS;
  39. new Fun2WallN;
  40. new Fun2WallSE;
  41. new Fun2WallNE;
  42. new Fun2WallNW;
  43. new Fun2WallSW;
  44. new Fun2Roof1;
  45. new Fun2Roof2;
  46. new Fun2Roof3;
  47.  
  48. new bool:fun1stred;
  49. new bool:fun2stred;
  50. new bool:fun1block;
  51. new bool:fun2block;
  52.  
  53. new Pickup1;
  54. new Pickup2;
  55. new Pickup3;
  56. new Pickup4;
  57.  
  58. new AdminLVL[MAX_PLAYERS];
  59.  
  60. forward Funicular1();
  61. forward Funicular2();
  62.  
  63. public OnFilterScriptInit()
  64. {
  65. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  66. Fun1Floor1=CreateObject(974,-2451.901,-717.832,135.030,90.241,0.0,0.0); // Funicullar1-Floor1-DOWN
  67. Fun1Floor2=CreateObject(974,-2451.891,-712.360,135.028,90.241,0.0,0.0); // Funicullar1-Floor2-DOWN
  68. Fun1Floor3=CreateObject(974,-2451.889,-706.934,135.039,90.241,0.0,0.0); // Funicullar1-Floor3-DOWN
  69. Fun1WallN=CreateObject(974,-2451.889,-704.205,137.788,0.0,0.0,0.0); // Funicullar1-WallN-DOWN
  70. Fun1WallS=CreateObject(974,-2451.898,-720.594,137.781,0.0,0.0,0.0); // Funicullar1-WallS-DOWN
  71. Fun1Roof1=CreateObject(974,-2451.896,-717.847,140.514,90.241,0.0,0.0); // Funicullar1-Roof1-DOWN
  72. Fun1Roof2=CreateObject(974,-2451.907,-712.352,140.532,90.241,0.0,0.0); // Funicullar1-Roof2-DOWN
  73. Fun1Roof3=CreateObject(974,-2451.897,-706.928,140.537,90.241,0.0,0.0); // Funicullar1-Roof3-DOWN
  74. Fun1WallNW=CreateObject(974,-2455.236,-707.546,137.770,0.0,0.0,-90.000); // Funicullar1-WallNW-DOWN
  75. Fun1WallSW=CreateObject(974,-2455.218,-717.269,137.745,0.0,0.0,-90.000); // Funicullar1-WallSW-DOWN
  76. Fun1WallNE=CreateObject(974,-2448.587,-707.552,137.787,0.0,0.0,90.000); // Funicullar1-WallNE-DOWN
  77. Fun1WallSE=CreateObject(974,-2448.598,-717.267,137.749,0.0,0.0,90.000); // Funicullar1-WallSE-DOWN
  78.  
  79. Fun2Floor1=CreateObject(974,-2448.069,-1603.818,511.891,90.241,0.0,0.0); // Funicullar2-Floor1-UP
  80. Fun2Floor2=CreateObject(974,-2448.082,-1609.324,511.901,90.241,0.0,0.0); // Funicullar2-Floor2-UP
  81. Fun2Floor3=CreateObject(974,-2448.104,-1614.831,511.889,90.241,0.0,0.0); // Funicullar2-Floor3-UP
  82. Fun2WallS=CreateObject(974,-2448.096,-1617.592,514.640,0.0,0.0,0.0); // Funicullar2-WallS-UP
  83. Fun2WallN=CreateObject(974,-2448.066,-1601.099,514.636,0.0,0.0,0.0); // Funicullar2-WallN-UP
  84. Fun2WallSE=CreateObject(974,-2444.822,-1614.272,514.627,0.0,0.0,-90.000); // Funicullar2-WallSE-UP
  85. Fun2WallNE=CreateObject(974,-2444.760,-1604.423,514.626,0.0,0.0,-90.000); // Funicullar2-WallNE-UP
  86. Fun2WallNW=CreateObject(974,-2451.377,-1604.419,514.643,0.0,0.0,-270.000); // Funicullar2-WallNW-UP
  87. Fun2WallSW=CreateObject(974,-2451.417,-1614.263,514.626,0.0,0.0,-270.000); // Funicullar2-WallSW-UP
  88. Fun2Roof1=CreateObject(974,-2448.061,-1603.846,517.401,90.241,0.0,0.0); // Funicullar2-Roof1-UP
  89. Fun2Roof2=CreateObject(974,-2448.052,-1609.311,517.377,90.241,0.0,0.0); // Funicullar2-Roof2-UP
  90. Fun2Roof3=CreateObject(974,-2448.053,-1614.807,517.353,90.241,0.0,0.0); // Funicullar2-Roof3-UP
  91.  
  92. Pickup1=CreatePickup(1239,2,-2467.246,-713.491,136.551); // DownSt-Pickup-Info
  93. Pickup2=CreatePickup(1239,2,-2452.581,-1614.500,512.217); // ChilliadSt-Pickup-Info
  94. Pickup3=CreatePickup(1318,2,-2459.237,-930.180,311.590); // MidSt-Elevator-Pickup-DOWN
  95. Pickup4=CreatePickup(1318,2,-2461.552,-920.702,1999.612); // MidSt-Elevator-Pickup-UP
  96. CreatePickup(371,2,-2460.246,-909.274,1998.889); // MidSt-UP-Pickup
  97.  
  98. CreateObject(971,-2459.724,-716.915,135.060,90.241,-0.859,0.859); // object (1)
  99. CreateObject(971,-2459.727,-702.675,135.099,90.241,-0.859,0.859); // object (3)
  100. CreateObject(971,-2451.818,-703.609,135.027,90.241,-0.859,-89.381); // object (7)
  101. CreateObject(971,-2444.066,-716.910,135.042,90.241,-0.859,0.859); // object (8)
  102. CreateObject(971,-2444.055,-709.788,135.046,90.241,-0.859,0.859); // object (9)
  103. CreateObject(971,-2444.090,-702.628,135.073,90.241,-0.859,0.859); // object (10)
  104. CreateObject(971,-2463.955,-716.074,138.592,0.859,0.0,90.859); // object (34)
  105. CreateObject(971,-2464.082,-703.556,138.609,0.859,0.0,90.859); // object (39)
  106. CreateObject(971,-2459.789,-699.181,138.601,0.859,0.0,180.000); // object (41)
  107. CreateObject(971,-2443.956,-699.034,138.661,0.859,0.0,180.000); // object (42)
  108. CreateObject(971,-2439.592,-703.415,138.672,0.859,0.0,90.000); // object (44)
  109. CreateObject(971,-2439.611,-716.056,138.647,0.859,0.0,90.000); // object (45)
  110. CreateObject(971,-2439.623,-709.325,138.635,0.859,0.0,90.000); // object (46)
  111. CreateObject(971,-2443.810,-720.529,138.581,0.859,0.0,0.0); // object (48)
  112. CreateObject(971,-2459.693,-720.432,138.599,0.859,0.0,0.0); // object (49)
  113. CreateObject(971,-2451.824,-699.163,138.603,0.859,0.0,180.000); // object (55)
  114. CreateObject(12985,-2466.785,-711.101,132.569,0.0,0.0,90.000); // object (58)
  115. CreateObject(12987,-2466.799,-708.466,132.604,0.0,0.0,90.000); // object (59)
  116. CreateObject(971,-2459.702,-709.774,135.055,90.241,-0.859,0.859); // object (60)
  117. CreateObject(971,-2459.629,-942.261,310.410,90.241,-0.859,0.859); // object (61)
  118. CreateObject(971,-2459.655,-935.162,310.457,90.241,-0.859,0.859); // object (62)
  119. CreateObject(971,-2459.634,-928.071,310.467,90.241,-0.859,0.859); // object (63)
  120. CreateObject(5837,-2468.884,-713.320,137.099,0.0,8.594,0.0); // object (64)
  121. CreateObject(14413,-2457.838,-702.565,129.050,0.0,0.0,90.000); // object (67)
  122. CreateObject(10832,-2460.402,-925.596,312.247,0.0,0.0,90.000); // object (68)
  123. CreateObject(10832,-2460.401,-925.601,2000.000,0.0,0.0,270.000); // object (70)
  124. CreateObject(971,-2460.222,-918.741,1998.238,90.241,-0.859,0.859); // object (71)
  125. CreateObject(971,-2460.234,-911.635,1998.236,90.241,-0.859,0.859); // object (72)
  126. CreateObject(971,-2459.625,-949.393,310.382,90.241,-0.859,0.859); // object (77)
  127. CreateObject(971,-2450.813,-949.389,310.368,90.241,-0.859,0.859); // object (78)
  128. CreateObject(974,-2448.590,-937.385,313.165,0.0,0.0,90.000); // object (79)
  129. CreateObject(971,-2442.053,-949.388,310.387,90.241,-0.859,0.859); // object (80)
  130. CreateObject(971,-2441.198,-957.414,310.346,90.241,-0.859,-89.141); // object (63)
  131. CreateObject(971,-2441.201,-966.253,310.345,90.241,-0.859,-89.141); // object (66)
  132. CreateObject(974,-2451.449,-961.173,313.073,0.0,0.0,270.000); // object (76)
  133. CreateObject(971,-2454.955,-1605.499,511.853,90.241,-0.859,-89.141); // object (90)
  134. CreateObject(974,-2444.740,-1609.289,514.612,0.0,0.0,-90.000); // object (91)
  135. CreateObject(971,-2454.921,-1614.364,511.826,90.241,-0.859,-89.141); // object (92)
  136. CreateObject(971,-2454.920,-1623.192,511.816,90.241,-0.859,-89.141); // object (93)
  137. CreateObject(971,-2454.882,-1632.088,511.788,90.241,-0.859,-89.141); // object (94)
  138. CreateObject(971,-2454.872,-1640.925,511.760,90.241,-0.859,-89.141); // object (95)
  139. CreateObject(971,-2454.895,-1649.742,511.759,90.241,-0.859,-89.141); // object (96)
  140. CreateObject(971,-2454.880,-1658.548,511.742,90.241,-0.859,-89.141); // object (97)
  141. CreateObject(971,-2454.874,-1667.380,511.721,90.241,-0.859,-89.141); // object (98)
  142. CreateObject(971,-2448.107,-1667.379,510.177,64.458,-0.859,-89.141); // object (100)
  143. CreateObject(971,-2441.694,-1667.408,507.115,64.458,-0.859,-89.141); // object (101)
  144. CreateObject(971,-2435.246,-1667.442,504.044,64.458,-0.859,-89.141); // object (102)
  145. CreateObject(971,-2428.797,-1667.450,500.967,64.458,-0.859,-89.141); // object (103)
  146. CreateObject(971,-2422.348,-1667.462,497.880,64.458,-0.859,-89.141); // object (104)
  147. CreateObject(971,-2415.906,-1667.473,494.818,64.458,-0.859,-89.141); // object (105)
  148. CreateObject(971,-2409.457,-1667.495,491.756,64.458,-0.859,-89.141); // object (106)
  149. CreateObject(971,-2403.009,-1667.503,488.677,64.458,-0.859,-89.141); // object (107)
  150. CreateObject(971,-2396.541,-1667.514,485.600,64.458,-0.859,-89.141); // object (108)
  151. CreateObject(971,-2390.070,-1667.524,482.512,64.458,-0.859,-89.141); // object (109)
  152.  
  153. fun1stred=false;
  154. fun2stred=false;
  155. fun1block=false;
  156. fun2block=false;
  157.  
  158. SetTimer("Funicular1",300000,true);
  159. SetTimer("Funicular2",450000,true);
  160.  
  161. SendClientMessageToAll(COL_ORAN,"Mt. Chilliad Funicular v1.1 by NtCat");
  162. return 1;
  163. }
  164.  
  165. public OnPlayerPickUpPickup(playerid,pickupid)
  166. {
  167. if (pickupid == Pickup1 || Pickup2)
  168. {
  169. SendClientMessage(playerid, COL_ORAN, "Mt. Chilliad Funicular Info");
  170. SendClientMessage(playerid, COL_WHITE, "This funicular is leaving the station every 5/7.5 minutes, you can use it for free.");
  171. return 1;
  172. }
  173. else if (pickupid == Pickup3)
  174. {
  175. SetPlayerPos(playerid,-2461.413,-918.014,1999.681);
  176. SendClientMessage(playerid, COL_WHITE, "You have just used elevator to get to parachute platform.");
  177. return 1;
  178. }
  179. else if (pickupid == Pickup4)
  180. {
  181. SetPlayerPos(playerid,-2459.373,-934.017,311.795);
  182. SendClientMessage(playerid, COL_WHITE, "You have just used elevator to get down from parachute platform.");
  183. return 1;
  184. }
  185. return 1;
  186. }
  187.  
  188. public OnPlayerCommandText(playerid, cmdtext[])
  189. {
  190. dcmd(fun1block, 9, cmdtext);
  191. dcmd(fun2block, 9, cmdtext);
  192. dcmd(fun1unblock, 11, cmdtext);
  193. dcmd(fun2unblock, 11, cmdtext);
  194. return 1;
  195. }
  196.  
  197. public Funicular1()
  198. {
  199. if (fun1block == true)
  200. {
  201. SendClientMessageToAll(COL_RED,"[ ! ] Lower funicular is blocked by admin.");
  202. }
  203. else
  204. {
  205. if (fun1stred == false)
  206. {
  207. MoveObject(Fun1Floor1,-2451.898,-943.018,310.419,2.5);
  208. MoveObject(Fun1Floor2,-2451.883,-937.515,310.457,2.5);
  209. MoveObject(Fun1Floor3,-2451.897,-932.013,310.473,2.5);
  210. MoveObject(Fun1WallN,-2451.902,-929.286,313.213,2.5);
  211. MoveObject(Fun1WallS,-2451.888,-945.808,313.142,2.5);
  212. MoveObject(Fun1Roof1,-2451.883,-943.046,315.899,2.5);
  213. MoveObject(Fun1Roof2,-2451.898,-937.546,315.918,2.5);
  214. MoveObject(Fun1Roof3,-2451.901,-932.055,315.934,2.5);
  215. MoveObject(Fun1WallNW,-2455.260,-932.617,313.207,2.5);
  216. MoveObject(Fun1WallSW,-2455.219,-942.474,313.126,2.5);
  217. MoveObject(Fun1WallNE,-2448.608,-932.636,313.204,2.5);
  218. MoveObject(Fun1WallSE,-2448.564,-942.433,313.156,2.5);
  219. SendClientMessageToAll(COL_ORAN,"[ ! ] Lower funicular is leaving, direction: Middle Station");
  220. fun1stred=true;
  221. }
  222. else
  223. {
  224. MoveObject(Fun1Floor1,-2451.901,-717.832,135.030,2.5);
  225. MoveObject(Fun1Floor2,-2451.891,-712.360,135.028,2.5);
  226. MoveObject(Fun1Floor3,-2451.889,-706.934,135.039,2.5);
  227. MoveObject(Fun1WallN,-2451.889,-704.205,137.788,2.5);
  228. MoveObject(Fun1WallS,-2451.898,-720.594,137.781,2.5);
  229. MoveObject(Fun1Roof1,-2451.896,-717.847,140.514,2.5);
  230. MoveObject(Fun1Roof2,-2451.907,-712.352,140.532,2.5);
  231. MoveObject(Fun1Roof3,-2451.897,-706.928,140.537,2.5);
  232. MoveObject(Fun1WallNW,-2455.236,-707.546,137.770,2.5);
  233. MoveObject(Fun1WallSW,-2455.218,-717.269,137.745,2.5);
  234. MoveObject(Fun1WallNE,-2448.587,-707.552,137.787,2.5);
  235. MoveObject(Fun1WallSE,-2448.598,-717.267,137.749,2.5);
  236. SendClientMessageToAll(COL_ORAN,"[ ! ] Lower funicular is leaving, direction: Missionary Hill, SF");
  237. fun2stred=false;
  238. }
  239. }
  240. return 1;
  241. }
  242.  
  243. public Funicular2()
  244. {
  245. if (fun2block == true)
  246. {
  247. SendClientMessageToAll(COL_RED,"Upper funicular is blocked by admin.");
  248. }
  249. else
  250. {
  251. if (fun2stred == false)
  252. {
  253. MoveObject(Fun2Floor1,-2448.114,-955.687,310.390,3);
  254. MoveObject(Fun2Floor2,-2448.110,-961.201,310.367,3);
  255. MoveObject(Fun2Floor3,-2448.108,-966.708,310.346,3);
  256. MoveObject(Fun2WallS,-2448.108,-969.475,313.072,3);
  257. MoveObject(Fun2WallN,-2448.120,-952.923,313.114,3);
  258. MoveObject(Fun2WallSE,-2444.777,-966.121,313.066,3);
  259. MoveObject(Fun2WallNE,-2444.762,-956.289,313.112,3);
  260. MoveObject(Fun2WallNW,-2451.442,-956.257,313.102,3);
  261. MoveObject(Fun2WallSW,-2451.436,-966.131,313.059,3);
  262. MoveObject(Fun2Roof1,-2448.110,-955.684,315.858,3);
  263. MoveObject(Fun2Roof2,-2448.115,-961.188,315.827,3);
  264. MoveObject(Fun2Roof3,-2448.121,-966.699,315.806,3);
  265. }
  266. else
  267. {
  268. MoveObject(Fun2Floor1,-2448.069,-1603.818,511.891,3);
  269. MoveObject(Fun2Floor2,-2448.082,-1609.324,511.901,3);
  270. MoveObject(Fun2Floor3,-2448.104,-1614.831,511.889,3);
  271. MoveObject(Fun2WallS,-2448.096,-1617.592,514.640,3);
  272. MoveObject(Fun2WallN,-2448.066,-1601.099,514.636,3);
  273. MoveObject(Fun2WallSE,-2444.822,-1614.272,514.627,3);
  274. MoveObject(Fun2WallNE,-2444.760,-1604.423,514.626,3);
  275. MoveObject(Fun2WallNW,-2451.377,-1604.419,514.643,3);
  276. MoveObject(Fun2WallSW,-2451.417,-1614.263,514.626,3);
  277. MoveObject(Fun2Roof1,-2448.061,-1603.846,517.401,3);
  278. MoveObject(Fun2Roof2,-2448.052,-1609.311,517.377,3);
  279. MoveObject(Fun2Roof3,-2448.053,-1614.807,517.353,3);
  280. }
  281. }
  282. }
  283.  
  284. //----------------------------------|
  285. dcmd_fun1unblock(playerid, params[])
  286. {
  287. #pragma unused params
  288. if(IsPlayerConnected(playerid))
  289. {
  290. if(AdminLVL[playerid] > 2)
  291. {
  292. fun1block=false;
  293. SendClientMessageToAll(COL_RED,"[ ! ] Lower funicular has been unblocked.");
  294. }else SendClientMessage(playerid, COL_WHITE, "[ ! ] You don�t have an adequate admin level.");
  295. }
  296. return 1;
  297. }
  298. //----------------------------------|
  299. dcmd_fun1block(playerid, params[])
  300. {
  301. #pragma unused params
  302. if(IsPlayerConnected(playerid))
  303. {
  304. if(AdminLVL[playerid] > 2)
  305. {
  306. StopObject(Fun1Floor1);
  307. StopObject(Fun1Floor2);
  308. StopObject(Fun1Floor3);
  309. StopObject(Fun1WallN);
  310. StopObject(Fun1WallS);
  311. StopObject(Fun1Roof1);
  312. StopObject(Fun1Roof2);
  313. StopObject(Fun1Roof3);
  314. StopObject(Fun1WallNW);
  315. StopObject(Fun1WallSW);
  316. StopObject(Fun1WallNE);
  317. StopObject(Fun1WallSE);
  318. fun1block=true;
  319. SendClientMessageToAll(COL_RED,"[ ! ] Lower funicular has been blocked.");
  320. }else SendClientMessage(playerid, COL_WHITE, "[ ! ] You don�t have an adequate admin level.");
  321. }
  322. return 1;
  323. }
  324. //----------------------------------|
  325. dcmd_fun2unblock(playerid, params[])
  326. {
  327. #pragma unused params
  328. if(IsPlayerConnected(playerid))
  329. {
  330. if(AdminLVL[playerid] > 2)
  331. {
  332. fun2block=false;
  333. SendClientMessageToAll(COL_RED,"[ ! ] Upper funicular has been unblocked.");
  334. }else SendClientMessage(playerid, COL_WHITE, "[ ! ] You don�t have an adequate admin level.");
  335. }
  336. return 1;
  337. }
  338. //----------------------------------|
  339. dcmd_fun2block(playerid, params[])
  340. {
  341. #pragma unused params
  342. if(IsPlayerConnected(playerid))
  343. {
  344. if(AdminLVL[playerid] > 2)
  345. {
  346. StopObject(Fun2Floor1);
  347. StopObject(Fun2Floor2);
  348. StopObject(Fun2Floor3);
  349. StopObject(Fun2WallS);
  350. StopObject(Fun2WallN);
  351. StopObject(Fun2WallSE);
  352. StopObject(Fun2WallNE);
  353. StopObject(Fun2WallNW);
  354. StopObject(Fun2WallSW);
  355. StopObject(Fun2Roof1);
  356. StopObject(Fun2Roof2);
  357. StopObject(Fun2Roof3);
  358. fun1block=true;
  359. SendClientMessageToAll(COL_RED,"[ ! ] Upper funicular has been blocked.");
  360. }else SendClientMessage(playerid, COL_WHITE, "[ ! ] You don�t have an adequate admin level.");
  361. }
  362. return 1;
  363. }
Advertisement
Add Comment
Please, Sign In to add comment