Advertisement
Guest User

Untitled

a guest
Sep 21st, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.53 KB | None | 0 0
  1. /* www.cityofangels-roleplay.com - Pilot Job system - by WentworthHFD */
  2.  
  3. #include <YSI\y_hooks>
  4.  
  5.  
  6. /*
  7. - defines & enum
  8. */
  9. #define PILOT_JOB (17) // Job ID
  10. #define PILOT_TIMER_PUNLOADING (20) //*1000 Koliko sekundi ceka na istovaranju putnika.
  11. #define PILOT_TIMER_CUNLOADING (30) //*1000 Koliko sekundi ceka na istovaranju cargo-a.
  12.  
  13. enum {
  14. PASSENGER_PLANE = (519),
  15. CARGO_PLANE = (553),
  16.  
  17. TYPE_NONE = (0),
  18. TYPE_PASSENGER = (1),
  19. TYPE_CARGO = (2)
  20. };
  21.  
  22. /*
  23. - vars
  24. */
  25. new PilotTimer[MAX_PLAYERS],
  26. PilotVW[MAX_PLAYERS] = {99, ...},
  27. PilotJobType[MAX_PLAYERS] = {TYPE_NONE, ...},
  28. PilotJobCP[MAX_PLAYERS] = {0, ...},
  29. PilotCP_ID[MAX_PLAYERS] = {0, ...},
  30. PilotPassengersJob[MAX_PLAYERS] = {0, ...},
  31. PilotCargoJob[MAX_PLAYERS] = {0, ...};
  32.  
  33. /*
  34. - functions
  35. */
  36.  
  37. ResetPilotVars(playerid) {
  38. PilotVW[playerid] = 0;
  39. PilotJobType[playerid] = 0;
  40. PilotJobCP[playerid] = 0;
  41. PilotPassengersJob[playerid] = 0;
  42. PilotCargoJob[playerid] = 0;
  43.  
  44. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  45. DestroyDynamicCP(PilotCP_ID[playerid]);
  46. KillTimer(PilotTimer[playerid]);
  47. return (true);
  48. }
  49.  
  50. SetNewPilotCP(playerid, Float: X, Float: Y, Float: Z, CP_ID) {
  51. if(CP_ID != 0 && PilotVW[playerid] != 0) {
  52. DisablePlayerCheckpoint(playerid);
  53.  
  54. PilotJobCP[playerid] = CP_ID;
  55. // PilotCP_ID[playerid] = CreateDynamicCP(X, Y, Z, 10.0, PilotVW[playerid], -1, -1, 50.0 );
  56. PilotCP_ID[playerid] = SetPlayerCheckpoint(playerid, X, Y, Z, 10.0);
  57. }
  58. return (true);
  59. }
  60.  
  61. /*
  62. - timers
  63. */
  64.  
  65. forward _UnfreezeJob(playerid);
  66. public _UnfreezeJob(playerid) {
  67. TogglePlayerControllable(playerid, true);
  68. KillTimer(PilotTimer[playerid]);
  69. return (true);
  70. }
  71.  
  72. /*
  73. - hooks
  74. */
  75.  
  76. hook OnPlayerConnect(playerid) {
  77. ResetPilotVars(playerid);
  78. return (true);
  79. }
  80.  
  81. hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  82. switch(dialogid) {
  83. case DIALOG_PILOTJOB: {
  84. if(response) {
  85. switch(listitem) {
  86. case 0: {
  87. if(GetVehicleModel(GetPlayerVehicleID(playerid)) != PASSENGER_PLANE)
  88. return SendMessage(playerid, MESSAGE_TYPE_ERROR,"Ne nalazite se u avionu za prijevoz ljudi.");
  89.  
  90. PilotPassengersJob[playerid] = (1);
  91. PilotJobType[playerid] = TYPE_PASSENGER;
  92. PilotVW[playerid] = random(100)+100;
  93. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  94. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), PilotVW[playerid]);
  95.  
  96. SetNewPilotCP(playerid, 1991.5836,-2382.6089,14.4687, 1);
  97. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Uputi se na oznaceno podrucje kako bi smo se pripremili za polijetanje.");
  98. }
  99. case 1: {
  100. if(GetVehicleModel(GetPlayerVehicleID(playerid)) != CARGO_PLANE)
  101. return SendMessage(playerid, MESSAGE_TYPE_ERROR,"Ne nalazite se u avionu za Transport robe.");
  102.  
  103. PilotCargoJob[playerid] = (1);
  104. PilotJobType[playerid] = TYPE_CARGO;
  105. PilotVW[playerid] = random(100)+100;
  106. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  107. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), PilotVW[playerid]);
  108.  
  109. SetNewPilotCP(playerid, 1989.6998,-2313.1260,13.5469, 1);
  110. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Idi malo naprijed kako bi smo utovarili robu.");
  111. }
  112. case 2: {
  113. if(GetVehicleModel(GetPlayerVehicleID(playerid)) != CARGO_PLANE)
  114. return SendMessage(playerid, MESSAGE_TYPE_ERROR,"Ne nalazite se u avionu za Transport robe.");
  115.  
  116. PilotCargoJob[playerid] = (2);
  117. PilotJobType[playerid] = TYPE_CARGO;
  118. PilotVW[playerid] = random(100)+100;
  119. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  120. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), PilotVW[playerid]);
  121.  
  122. SetNewPilotCP(playerid, 1991.5836,-2382.6089,14.4687, 1);
  123. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Idi malo naprijed kako bi smo utovarili robu.");
  124. }
  125. }
  126. }
  127. }
  128. }
  129. return (true);
  130. }
  131.  
  132.  
  133.  
  134. hook OnPlayerEnterCheckpoint(playerid) {
  135. if(PilotJobType[playerid] == TYPE_PASSENGER) {
  136. if(PilotPassengersJob[playerid] == 1) {
  137. if(PilotJobCP[playerid] == 1) {
  138.  
  139. SetNewPilotCP(playerid, 1991.5836,-2382.6089,14.4687, 2);
  140.  
  141. TogglePlayerControllable(playerid, false);
  142. GameTextForPlayer(playerid,"~w~U tijeku je utovar putnika",17000,0);
  143. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000, (false), "i", playerid);
  144.  
  145. SendClientMessage(playerid,-1," ");
  146. SendClientMessage(playerid,-1,"Kopilot Chris kaze[radio]: Avion B189 za kontrolni toranj, putnici polako ulaze u avion, avion je ispravan, imamo li dozvolu za polijetanje?");
  147. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, pozitivno, dobili ste zeleno svijetlo za uzlijetanje.");
  148. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Nakon utovara, uputi se prema sljedecoj oznacenoj lokaciji na radaru, a to je sredina piste.");
  149. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Kod uzlijetanja, ubrzaj i uzleti prije kraja piste. Nemoj zaboraviti kotače podići. Neka ti to uvijek bude na umu");
  150. return (true);
  151. }
  152. if(PilotJobCP[playerid] == 2) {
  153. SetNewPilotCP(playerid, 1784.1711,-2493.7402,14.4759, 3);
  154. return (true);
  155. }
  156. if(PilotJobCP[playerid] == 3) {
  157. SetNewPilotCP(playerid, 1533.0920,-2490.5625,62.5184, 4);
  158.  
  159. SendClientMessage(playerid,-1," ");
  160. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Kad se priblizis aerodromu u San Fierru, sputi na najnizu razinu.");
  161. return (true);
  162. }
  163. if(PilotJobCP[playerid] == 4) {
  164. SetNewPilotCP(playerid, -1035.3253,-329.4680,76.2880, 5);
  165.  
  166. SendClientMessage(playerid,-1," ");
  167. SendClientMessage(playerid,-1,"Kopilot kaze[radio]: Avion B189 za kontrolni toranj, uspjesno smo uzlijetjeli, u San Fierru smo za 10ak minuta.");
  168. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, primljeno, obavijestiti cemo San Fierro.");
  169. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Samo idi avionom u smjeru sljedece oznake((checkpointa)) i nece biti problema.");
  170. return (true);
  171. }
  172. if(PilotJobCP[playerid] == 5) {
  173. SetNewPilotCP(playerid, -1368.4176,-32.6200,15.0719, 6);
  174. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  175. return (true);
  176. }
  177. if(PilotJobCP[playerid] == 6) {
  178. SetNewPilotCP(playerid, -1359.6765,-118.9294,15.0702, 7);
  179. TogglePlayerControllable(playerid, false);
  180.  
  181. SendClientMessage(playerid,-1," ");
  182. SendClientMessage(playerid,-1,"Kopilot kaze[radio]: Avion B189 za kontrolni toranj, uspjesno smo sletjeli, pripremamo se za istovar putnika.");
  183. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, primljeno, javit cemo vasem kontrolnom tornju u Los Santosu da ste sletjeli..");
  184. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Odlicno, uspjeli smo sletjeti. Sada se okreni ulijevo za 180 stupnjeva i idemo istovariti putnike.");
  185. return (true);
  186. }
  187. if(PilotJobCP[playerid] == 7) {
  188. SetNewPilotCP(playerid, 1223.8855,-2324.8608,103.0302, 8);
  189.  
  190. TogglePlayerControllable(playerid, false);
  191. GameTextForPlayer(playerid,"~w~U tijeku jeistovar putnika",17000,0);
  192. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000,false,"i", playerid);
  193.  
  194. SendClientMessage(playerid,-1," ");
  195. SendClientMessage(playerid,-1,"Kopilot kaze[radio]: Avion B189 za kontrolni toranj, putnici su iskrcani, krecemo nazad u Los Santos.");
  196. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, primljeno, sretno, javit cemo vasem kontrolnom tornju u Los Santosu da dolazite.");
  197. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Samo idi avionom u smjeru sljedece oznake((checkpointa)) i nece biti problema.");
  198. return (true);
  199. }
  200. if(PilotJobCP[playerid] == 8) {
  201. SetNewPilotCP(playerid, 1784.1711,-2493.7402,14.4759, 9);
  202. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  203. return (true);
  204. }
  205. if(PilotJobCP[playerid] == 9) {
  206. ResetPilotVars(playerid);
  207. SendClientMessage(playerid,-1," ");
  208. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Odlicno, uspjeo si sletjeti nazad. Bilo mi je drago putovati s tobom.");
  209. GivePlayerMoney(playerid,1000);
  210. return (true);
  211. }
  212. }
  213. }
  214. if(PilotJobType[playerid] == TYPE_CARGO) {
  215. if(PilotCargoJob[playerid] == 1) {
  216.  
  217. if(PilotJobCP[playerid] == 1) {
  218. SetNewPilotCP(playerid, 1989.6998,-2313.1260,13.5469, 2);
  219.  
  220. TogglePlayerControllable(playerid, false);
  221. GameTextForPlayer(playerid,"~w~Vrsi se utovar robe",27000,0);
  222. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_CUNLOADING*1000,false,"i", playerid);
  223.  
  224. SendClientMessage(playerid,-1," ");
  225. SendClientMessage(playerid,-1,"Kopilot Tom kaze[radio]: Avion BDD897 za kontrolni toranj, roba se stavljna u avion, avion je pun goriva, nemamo problema s motorom.");
  226. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za BDD897, primljeno.");
  227. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Cilj nam je odvesti robu do Las Payasadasa, na stari aerodrom.");
  228. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Kad se roba utovari, idi do sredine piste i cekaj nove upute.");
  229. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Samo prati oznake((checkpoint)) i neće biti problema.");
  230. return (true);
  231. }
  232. if(PilotJobCP[playerid] == 2) {
  233. SetNewPilotCP(playerid, 1785.6935,-2493.5881,14.4886, 3);
  234. return (true);
  235. }
  236. if(PilotJobCP[playerid] == 3) {
  237. SetNewPilotCP(playerid, 287.8836,2498.8228,17.4443, 4);
  238.  
  239. SendClientMessage(playerid,-1," ");
  240. SendClientMessage(playerid,-1,"Kopilot Tom kaze[radio]: Avion BDD897 za kontrolni toranj, roba je u avionu, imamo li dozvolu za polijetanje? Spremni smo za polijetjeti.");
  241. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, pozitivno, dobili ste zeleno svijetlo za uzlijetanje, sretno.");
  242. return (true);
  243. }
  244. if(PilotJobCP[playerid] == 4) {
  245. SetNewPilotCP(playerid, 965.8230,2472.4363,144.7341, 5);
  246.  
  247. SendClientMessage(playerid,-1," ");
  248. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  249. return (true);
  250. }
  251. if(PilotJobCP[playerid] == 5) {
  252. SetNewPilotCP(playerid, 1991.5836,-2382.6089,14.4687, 6);
  253.  
  254. TogglePlayerControllable(playerid, false);
  255. GameTextForPlayer(playerid,"~w~Vrsi se istovar robe",17000,0);
  256. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000,false,"i", playerid);
  257.  
  258. SendClientMessage(playerid,-1," ");
  259. SendClientMessage(playerid,-1,"Kopilot Tom kaze[radio]: Avion BDD897 za kontrolni toranj, roba se istovara, imamo li dozvolu za polijetanje?");
  260. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za BDD897, pozitivno, dobili ste zeleno svijetlo za uzlijetanje.");
  261. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Dobri smo s gorivom, nemamo nikakvih gresaka na motoru, spremni smo za uzlijetanje kada se istovari.");
  262. return (true);
  263. }
  264. if(PilotJobCP[playerid] == 6){
  265. SetNewPilotCP(playerid, 1785.6935,-2493.5881,14.4886, 7);
  266.  
  267. SendClientMessage(playerid,-1," ");
  268. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  269. return (true);
  270. }
  271. if(PilotJobCP[playerid] == 7) {
  272. ResetPilotVars(playerid);
  273. SendClientMessage(playerid,-1," ");
  274. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Odlicno, uspjeo si sletjeti. Bilo mi je drago putovati s tobom.");
  275. GivePlayerMoney(playerid,5000);
  276. return (true);
  277. }
  278. }
  279. if(PilotCargoJob[playerid] == 2) {
  280.  
  281. if(PilotJobCP[playerid] == 1) {
  282. SetNewPilotCP(playerid, 1989.6998,-2313.1260,13.5469, 2);
  283.  
  284. TogglePlayerControllable(playerid, false);
  285. GameTextForPlayer(playerid,"~w~Vrsi se utovar robe",27000,0);
  286. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_CUNLOADING*1000,false,"i", playerid);
  287.  
  288. SendClientMessage(playerid,-1," ");
  289. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze[radio]: Avion B228 za kontrolni toranj, roba se stavljna u avion, avion je pun goriva, nemamo problema s motorom.");
  290. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, primljeno.");
  291. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Cilj nam je odvesti robu do Las Venturasa, glavni aerodrom.");
  292. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Kad se roba utovari, idi do sredine piste Sve što trebaš raditi jest pratiti moje isntrukcije\n\
  293. i putovati u smjeru oznake na navigaciji((checkpointa)).");
  294. return (true);
  295. }
  296. if(PilotJobCP[playerid] == 2) {
  297. SetNewPilotCP(playerid, 1785.6935,-2493.5881,14.4886, 3);
  298. return (true);
  299. }
  300. if(PilotJobCP[playerid] == 3) {
  301. SetNewPilotCP(playerid, 1481.7861,854.9142,96.6241, 4);
  302.  
  303. SendClientMessage(playerid,-1," ");
  304. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze[radio]: Avion B228 za kontrolni toranj, roba je spremna, možemo li uzlijetjeti?");
  305. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, zeleno svijetlo, sretno.");
  306. return (true);
  307. }
  308. if(PilotJobCP[playerid] == 4) {
  309. SetNewPilotCP(playerid, 1571.4429,1548.5474,11.5475, 5);
  310.  
  311. SendClientMessage(playerid,-1," ");
  312. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  313. return (true);
  314. }
  315. if(PilotJobCP[playerid] == 5) {
  316. SetNewPilotCP(playerid, 1991.5836,-2382.6089,14.4687, 6);
  317.  
  318. TogglePlayerControllable(playerid, false);
  319. GameTextForPlayer(playerid,"~w~Vrsi se istovar robe",17000,0);
  320. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000,false,"i", playerid);
  321.  
  322. SendClientMessage(playerid,-1," ");
  323. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze[radio]: Avion B228 za kontrolni toranj, roba pri kraju s istovarom, je li pista čista za polijetanje?");
  324. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, biti ćete u mogućnosti krenuti s polijetanjem za 20ak sekundi.");
  325. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Taman da se još ovaj zadnji paket istovari i možemo krenuti.");
  326. return (true);
  327. }
  328. if(PilotJobCP[playerid] == 6){
  329. SetNewPilotCP(playerid, 1785.6935,-2493.5881,14.4886, 7);
  330.  
  331. SendClientMessage(playerid,-1," ");
  332. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  333. return (true);
  334. }
  335. if(PilotJobCP[playerid] == 7) {
  336. ResetPilotVars(playerid);
  337.  
  338. SendClientMessage(playerid,-1," ");
  339. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Odlicno, uspjeo si sletjeti, jeste li za kavu kasnije? Kakogod, imate moj broj, nazovite me, pa možemo popiti jednu.");
  340. GivePlayerMoney(playerid,5000);
  341. return (true);
  342. }
  343. }
  344. }
  345. return (true);
  346. }
  347.  
  348. /* KOMANDE */
  349. CMD:pilot(playerid, params[]) {
  350. new action[25];
  351.  
  352. if(PlayerInfo[playerid][pJob] != PILOT_JOB)
  353. return SendMessage(playerid, MESSAGE_TYPE_ERROR, "Morate biti zaposlen kao pilot da bi ste mogli koristiti ovu komandu.");
  354.  
  355. if(sscanf(params, "s[25] ", action)) {
  356. SendClientMessage(playerid, COLOR_WHITE, "(COMMAND): /pilot [option].");
  357. SendClientMessage(playerid, 0xAFAFAFAA, "(options): start, help");
  358. return (true);
  359. }
  360.  
  361. if(strcmp(action,"start", (true)) == 0) {
  362. ShowPlayerDialog(playerid, DIALOG_PILOTJOB, DIALOG_STYLE_LIST, "Tip transporta",
  363. "Transport putnika - B189 - San Fierro - Kopilot Chris\n\
  364. Transport cargoa - BDD897 - Las Venturas - Kopilot Tom\n\
  365. Transport cargoa - B228 - Las Venturas - Kopilot Treshuan", "Select", "Close"
  366. );
  367. }
  368.  
  369. if(strcmp(action,"help", (true)) == 0) {
  370. ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"POSAO PILOT","Ovaj posao se odradjuje na aerodromu u Los Santosu. Tamo uvijek pocinjete i zavrsavate.\n\
  371. Glavni zadatak ovog posla jest transport, tako da se nudi mogucnost transporta putnika i cargoa na vise odredista.\n\
  372. Za pocetak posla, koristite /jobduty.\nKroz putovanje, s vama je kopilot(postoji nekoliko kopilota), koji vas upucuje u posao i da bi posao uspjeo, morate pratiti što on govori.\n\
  373. Kod utovara i istovara, igrica se zamrzne na 20-30 sekundi(sve zavisi je li cargo ili putnicki)\n\
  374. Kolicina novca za ovaj posao ovisi o brzini o zavrsenom poslu, kao i o vasem skillu za ovaj posao.","Okej",""
  375. );
  376. }
  377. return (true);
  378. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement