Advertisement
Guest User

Untitled

a guest
Sep 20th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.06 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) // Koliko sekundi ceka na istovaranju putnika.
  11. #define PILOT_TIMER_CUNLOADING (30) // 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. if(IsValidDynamicCP(PilotCP_ID[playerid]))
  53. DestroyDynamicCP(PilotCP_ID[playerid]);
  54.  
  55. PilotJobCP[playerid] = CP_ID;
  56. PilotCP_ID[playerid] = CreateDynamicCP(X, Y, Z, 10.0, PilotVW[playerid], -1, -1, 50.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,"[ERROR]: Ne nalazite se u avionu za prijevoz ljudi.");
  89.  
  90. PilotPassengersJob[playerid] = (1);
  91. PilotJobCP[playerid] = 1;
  92. PilotJobType[playerid] = TYPE_PASSENGER;
  93. PilotVW[playerid] = random(100)+100;
  94. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  95.  
  96. SetPlayerCheckpoint(playerid,1991.5836,-2382.6089,14.4687,50);
  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,"[ERROR]: Ne nalazite se u avionu za Transport robe.");
  102.  
  103. PilotCargoJob[playerid] = (1);
  104. PilotJobCP[playerid] = 1;
  105. PilotJobType[playerid] = TYPE_CARGO;
  106. PilotVW[playerid] = random(100)+100;
  107. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  108.  
  109. SetPlayerCheckpoint(playerid,1989.6998,-2313.1260,13.5469,50);
  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,"[ERROR]: Ne nalazite se u avionu za Transport robe.");
  115.  
  116. PilotCargoJob[playerid] = (2);
  117. PilotJobCP[playerid] = 1;
  118. PilotJobType[playerid] = TYPE_CARGO;
  119. PilotVW[playerid] = random(100)+100;
  120. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  121.  
  122. SetPlayerCheckpoint(playerid,1991.5836,-2382.6089,14.4687,50);
  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) { // putnicka ruta do san fierra
  137. if(PilotJobCP[playerid] == 1) {
  138. SetNewPilotCP(playerid, 1991.5836,-2382.6089,14.4687, 2);
  139. TogglePlayerControllable(playerid, false);
  140. GameTextForPlayer(playerid,"~w~U tijeku je utovar putnika",17000,0);
  141. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000, (false), "i", playerid);
  142.  
  143. SendClientMessage(playerid,-1," ");
  144. 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?");
  145. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, pozitivno, dobili ste zeleno svijetlo za uzlijetanje.");
  146. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Nakon utovara, uputi se prema sljedecoj oznacenoj lokaciji na radaru, a to je sredina piste.");
  147. 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");
  148. return (true);
  149. }
  150. if(PilotJobCP[playerid] == 2) {
  151. PilotJobCP[playerid] = 3;
  152. SetPlayerCheckpoint(playerid,1784.1711,-2493.7402,14.4759,10);
  153. return (true);
  154. }
  155. if(PilotJobCP[playerid] == 3) {
  156. PilotJobCP[playerid] = 4;
  157. SetPlayerCheckpoint(playerid,1533.0920,-2490.5625,62.5184,10);
  158. SendClientMessage(playerid,-1," ");
  159. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Kad se priblizis aerodromu u San Fierru, sputi na najnizu razinu.");
  160. return (true);
  161. }
  162. if(PilotJobCP[playerid] == 4) {
  163. PilotJobCP[playerid] = 5;
  164. SetPlayerCheckpoint(playerid,-1035.3253,-329.4680,76.2880,50);
  165. SendClientMessage(playerid,-1," ");
  166. SendClientMessage(playerid,-1,"Kopilot kaze[radio]: Avion B189 za kontrolni toranj, uspjesno smo uzlijetjeli, u San Fierru smo za 10ak minuta.");
  167. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, primljeno, obavijestiti cemo San Fierro.");
  168. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Samo idi avionom u smjeru sljedece oznake((checkpointa)) i nece biti problema.");
  169. return (true);
  170. }
  171. if(PilotJobCP[playerid] == 5) {
  172. PilotJobCP[playerid] = 6;
  173. SetPlayerCheckpoint(playerid,-1368.4176,-32.6200,15.0719,50);
  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. PilotJobCP[playerid] = 7;
  179. SetPlayerCheckpoint(playerid,-1359.6765,-118.9294,15.0702,10);
  180. TogglePlayerControllable(playerid, false);
  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. PilotJobCP[playerid] = 8;
  189. SetPlayerCheckpoint(playerid,1223.8855,-2324.8608,103.0302,50);
  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. SendClientMessage(playerid,-1," ");
  194. SendClientMessage(playerid,-1,"Kopilot kaze[radio]: Avion B189 za kontrolni toranj, putnici su iskrcani, krecemo nazad u Los Santos.");
  195. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, primljeno, sretno, javit cemo vasem kontrolnom tornju u Los Santosu da dolazite.");
  196. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Samo idi avionom u smjeru sljedece oznake((checkpointa)) i nece biti problema.");
  197. return (true);
  198. }
  199. if(PilotJobCP[playerid] == 8) {
  200. PilotJobCP[playerid] = 9;
  201. SetPlayerCheckpoint(playerid,1784.1711,-2493.7402,14.4759,10);
  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) { //cargo ruta do starog aerodroma
  215. if(PilotCargoJob[playerid] == 1) {
  216.  
  217. if(PilotJobCP[playerid] == 1) {
  218. PilotJobCP[playerid] = 2;
  219. SetPlayerCheckpoint(playerid,1989.6998,-2313.1260,13.5469,10);
  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. SendClientMessage(playerid,-1," ");
  224. 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.");
  225. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za BDD897, primljeno.");
  226. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Cilj nam je odvesti robu do Las Payasadasa, na stari aerodrom.");
  227. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Kad se roba utovari, idi do sredine piste i cekaj nove upute.");
  228. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Samo prati oznake((checkpoint)) i neće biti problema.");
  229. return (true);
  230. }
  231. if(PilotJobCP[playerid] == 2) {
  232. PilotJobCP[playerid] = 3;
  233. SetPlayerCheckpoint(playerid,1785.6935,-2493.5881,14.4886,10);
  234. return (true);
  235. }
  236. if(PilotJobCP[playerid] == 3) {
  237. PilotJobCP[playerid] = 4;
  238. SetPlayerCheckpoint(playerid,287.8836,2498.8228,17.4443,50);
  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. PilotJobCP[playerid] = 5;
  246. SetPlayerCheckpoint(playerid,965.8230,2472.4363,144.7341,10);
  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. PilotJobCP[playerid] = 6;
  253. SetPlayerCheckpoint(playerid,1991.5836,-2382.6089,14.4687,50);
  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. SendClientMessage(playerid,-1," ");
  258. SendClientMessage(playerid,-1,"Kopilot Tom kaze[radio]: Avion BDD897 za kontrolni toranj, roba se istovara, imamo li dozvolu za polijetanje?");
  259. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za BDD897, pozitivno, dobili ste zeleno svijetlo za uzlijetanje.");
  260. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Dobri smo s gorivom, nemamo nikakvih gresaka na motoru, spremni smo za uzlijetanje kada se istovari.");
  261. return (true);
  262. }
  263. if(PilotJobCP[playerid] == 6){
  264. PilotJobCP[playerid] = 7;
  265. SetPlayerCheckpoint(playerid,1785.6935,-2493.5881,14.4886,10);
  266. SendClientMessage(playerid,-1," ");
  267. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  268. return (true);
  269. }
  270. if(PilotJobCP[playerid] == 7) {
  271. ResetPilotVars(playerid);
  272. SendClientMessage(playerid,-1," ");
  273. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Odlicno, uspjeo si sletjeti. Bilo mi je drago putovati s tobom.");
  274. GivePlayerMoney(playerid,5000);
  275. return (true);
  276. }
  277. }
  278. if(PilotCargoJob[playerid] == 2) { //cargo ruta do las venturasa
  279.  
  280. if(PilotJobCP[playerid] == 1) {
  281. PilotJobCP[playerid] = 2;
  282. SetPlayerCheckpoint(playerid,1989.6998,-2313.1260,13.5469,10);
  283. TogglePlayerControllable(playerid, false);
  284. GameTextForPlayer(playerid,"~w~Vrsi se utovar robe",27000,0);
  285. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_CUNLOADING*1000,false,"i", playerid);
  286. SendClientMessage(playerid,-1," ");
  287. 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.");
  288. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, primljeno.");
  289. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Cilj nam je odvesti robu do Las Venturasa, glavni aerodrom.");
  290. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Kad se roba utovari, idi do sredine piste Sve što trebaš raditi jest pratiti moje isntrukcije\n\
  291. i putovati u smjeru oznake na navigaciji((checkpointa)).");
  292. return (true);
  293. }
  294. if(PilotJobCP[playerid] == 2) {
  295. PilotJobCP[playerid] = 3;
  296. SetPlayerCheckpoint(playerid,1785.6935,-2493.5881,14.4886,10);
  297. return (true);
  298. }
  299. if(PilotJobCP[playerid] == 3) {
  300. PilotJobCP[playerid] = 4;
  301. SetPlayerCheckpoint(playerid,1481.7861,854.9142,96.6241,50);
  302. SendClientMessage(playerid,-1," ");
  303. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze[radio]: Avion B228 za kontrolni toranj, roba je spremna, možemo li uzlijetjeti?");
  304. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, zeleno svijetlo, sretno.");
  305. return (true);
  306. }
  307. if(PilotJobCP[playerid] == 4) {
  308. PilotJobCP[playerid] = 5;
  309. SetPlayerCheckpoint(playerid,1571.4429,1548.5474,11.5475,10);
  310. SendClientMessage(playerid,-1," ");
  311. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  312. return (true);
  313. }
  314. if(PilotJobCP[playerid] == 5) {
  315. PilotJobCP[playerid] = 6;
  316. SetPlayerCheckpoint(playerid,1991.5836,-2382.6089,14.4687,50);
  317. TogglePlayerControllable(playerid, false);
  318. GameTextForPlayer(playerid,"~w~Vrsi se istovar robe",17000,0);
  319. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000,false,"i", playerid);
  320. SendClientMessage(playerid,-1," ");
  321. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze[radio]: Avion B228 za kontrolni toranj, roba pri kraju s istovarom, je li pista čista za polijetanje?");
  322. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, biti ćete u mogućnosti krenuti s polijetanjem za 20ak sekundi.");
  323. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Taman da se još ovaj zadnji paket istovari i možemo krenuti.");
  324. return (true);
  325. }
  326. if(PilotJobCP[playerid] == 6){
  327. PilotJobCP[playerid] = 7;
  328. SetPlayerCheckpoint(playerid,1785.6935,-2493.5881,14.4886,10);
  329. SendClientMessage(playerid,-1," ");
  330. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  331. return (true);
  332. }
  333. if(PilotJobCP[playerid] == 7) {
  334. ResetPilotVars(playerid);
  335. SendClientMessage(playerid,-1," ");
  336. 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.");
  337. GivePlayerMoney(playerid,5000);
  338. return (true);
  339. }
  340. }
  341. }
  342. return (true);
  343. }
  344.  
  345. /* KOMANDE */
  346. CMD:pilot(playerid, params[]) {
  347. new action[25];
  348.  
  349. if(PlayerInfo[playerid][pJob] != PILOT_JOB)
  350. return SendMessage(playerid, MESSAGE_TYPE_ERROR, "Moras biti clan taxi sluzbe da bi mogao koristiti komandu!");
  351.  
  352. if(sscanf(params, "s[25] ", action)) {
  353. SendClientMessage(playerid, COLOR_WHITE, "(COMMAND): /pilot [option].");
  354. SendClientMessage(playerid, 0xAFAFAFAA, "(options): start, help");
  355. return (true);
  356. }
  357.  
  358. if(strcmp(action,"start", (true)) == 0) {
  359. ShowPlayerDialog(playerid, DIALOG_PILOTJOB, DIALOG_STYLE_LIST, "Tip transporta",
  360. "Transport putnika - B189 - San Fierro - Kopilot Chris\n\
  361. Transport cargoa - BDD897 - Las Venturas - Kopilot Tom\n\
  362. Transport cargoa - B228 - Las Venturas - Kopilot Treshuan", "Select", "Close"
  363. );
  364. }
  365.  
  366. if(strcmp(action,"help", (true)) == 0) {
  367. ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"POSAO PILOT","Ovaj posao se odradjuje na aerodromu u Los Santosu. Tamo uvijek pocinjete i zavrsavate.\n\
  368. Glavni zadatak ovog posla jest transport, tako da se nudi mogucnost transporta putnika i cargoa na vise odredista.\n\
  369. 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\
  370. Kod utovara i istovara, igrica se zamrzne na 20-30 sekundi(sve zavisi je li cargo ili putnicki)\n\
  371. Kolicina novca za ovaj posao ovisi o brzini o zavrsenom poslu, kao i o vasem skillu za ovaj posao.","Okej",""
  372. );
  373. }
  374. return (true);
  375. }/* www.cityofangels-roleplay.com - Pilot Job system - by WentworthHFD */
  376.  
  377. #include <YSI\y_hooks>
  378.  
  379.  
  380. /*
  381. - defines & enum
  382. */
  383. #define PILOT_JOB (17) // Job ID
  384. #define PILOT_TIMER_PUNLOADING (20) // Koliko sekundi ceka na istovaranju putnika.
  385. #define PILOT_TIMER_CUNLOADING (30) // Koliko sekundi ceka na istovaranju cargo-a.
  386.  
  387. enum {
  388. PASSENGER_PLANE = (519),
  389. CARGO_PLANE = (553),
  390.  
  391. TYPE_NONE = (0),
  392. TYPE_PASSENGER = (1),
  393. TYPE_CARGO = (2)
  394. };
  395.  
  396. /*
  397. - vars
  398. */
  399. new PilotTimer[MAX_PLAYERS],
  400. PilotVW[MAX_PLAYERS] = {99, ...},
  401. PilotJobType[MAX_PLAYERS] = {TYPE_NONE, ...},
  402. PilotJobCP[MAX_PLAYERS] = {0, ...},
  403. PilotCP_ID[MAX_PLAYERS] = {0, ...},
  404. PilotPassengersJob[MAX_PLAYERS] = {0, ...},
  405. PilotCargoJob[MAX_PLAYERS] = {0, ...};
  406.  
  407. /*
  408. - functions
  409. */
  410.  
  411. ResetPilotVars(playerid) {
  412. PilotVW[playerid] = 0;
  413. PilotJobType[playerid] = 0;
  414. PilotJobCP[playerid] = 0;
  415. PilotPassengersJob[playerid] = 0;
  416. PilotCargoJob[playerid] = 0;
  417.  
  418. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  419. DestroyDynamicCP(PilotCP_ID[playerid]);
  420. KillTimer(PilotTimer[playerid]);
  421. return (true);
  422. }
  423.  
  424. SetNewPilotCP(playerid, Float: X, Float: Y, Float: Z, CP_ID) {
  425. if(CP_ID != 0 && PilotVW[playerid] != 0) {
  426. if(IsValidDynamicCP(PilotCP_ID[playerid]))
  427. DestroyDynamicCP(PilotCP_ID[playerid]);
  428.  
  429. PilotJobCP[playerid] = CP_ID;
  430. PilotCP_ID[playerid] = CreateDynamicCP(X, Y, Z, 10.0, PilotVW[playerid], -1, -1, 50.0 );
  431. }
  432. return (true);
  433. }
  434.  
  435. /*
  436. - timers
  437. */
  438.  
  439. forward _UnfreezeJob(playerid);
  440. public _UnfreezeJob(playerid) {
  441. TogglePlayerControllable(playerid, true);
  442. KillTimer(PilotTimer[playerid]);
  443. return (true);
  444. }
  445.  
  446. /*
  447. - hooks
  448. */
  449.  
  450. hook OnPlayerConnect(playerid) {
  451. ResetPilotVars(playerid);
  452. return (true);
  453. }
  454.  
  455. hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  456. switch(dialogid) {
  457. case DIALOG_PILOTJOB: {
  458. if(response) {
  459. switch(listitem) {
  460. case 0: {
  461. if(GetVehicleModel(GetPlayerVehicleID(playerid)) != PASSENGER_PLANE)
  462. return SendMessage(playerid, MESSAGE_TYPE_ERROR,"[ERROR]: Ne nalazite se u avionu za prijevoz ljudi.");
  463.  
  464. PilotPassengersJob[playerid] = (1);
  465. PilotJobCP[playerid] = 1;
  466. PilotJobType[playerid] = TYPE_PASSENGER;
  467. PilotVW[playerid] = random(100)+100;
  468. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  469.  
  470. SetPlayerCheckpoint(playerid,1991.5836,-2382.6089,14.4687,50);
  471. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Uputi se na oznaceno podrucje kako bi smo se pripremili za polijetanje.");
  472. }
  473. case 1: {
  474. if(GetVehicleModel(GetPlayerVehicleID(playerid)) != CARGO_PLANE)
  475. return SendMessage(playerid, MESSAGE_TYPE_ERROR,"[ERROR]: Ne nalazite se u avionu za Transport robe.");
  476.  
  477. PilotCargoJob[playerid] = (1);
  478. PilotJobCP[playerid] = 1;
  479. PilotJobType[playerid] = TYPE_CARGO;
  480. PilotVW[playerid] = random(100)+100;
  481. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  482.  
  483. SetPlayerCheckpoint(playerid,1989.6998,-2313.1260,13.5469,50);
  484. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Idi malo naprijed kako bi smo utovarili robu.");
  485. }
  486. case 2: {
  487. if(GetVehicleModel(GetPlayerVehicleID(playerid)) != CARGO_PLANE)
  488. return SendMessage(playerid, MESSAGE_TYPE_ERROR,"[ERROR]: Ne nalazite se u avionu za Transport robe.");
  489.  
  490. PilotCargoJob[playerid] = (2);
  491. PilotJobCP[playerid] = 1;
  492. PilotJobType[playerid] = TYPE_CARGO;
  493. PilotVW[playerid] = random(100)+100;
  494. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  495.  
  496. SetPlayerCheckpoint(playerid,1991.5836,-2382.6089,14.4687,50);
  497. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Idi malo naprijed kako bi smo utovarili robu.");
  498. }
  499. }
  500. }
  501. }
  502. }
  503. return (true);
  504. }
  505.  
  506.  
  507.  
  508. hook OnPlayerEnterCheckpoint(playerid) {
  509. if(PilotJobType[playerid] == TYPE_PASSENGER) {
  510. if(PilotPassengersJob[playerid] == 1) { // putnicka ruta do san fierra
  511. if(PilotJobCP[playerid] == 1) {
  512. SetNewPilotCP(playerid, 1991.5836,-2382.6089,14.4687, 2);
  513. TogglePlayerControllable(playerid, false);
  514. GameTextForPlayer(playerid,"~w~U tijeku je utovar putnika",17000,0);
  515. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000, (false), "i", playerid);
  516.  
  517. SendClientMessage(playerid,-1," ");
  518. 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?");
  519. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, pozitivno, dobili ste zeleno svijetlo za uzlijetanje.");
  520. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Nakon utovara, uputi se prema sljedecoj oznacenoj lokaciji na radaru, a to je sredina piste.");
  521. 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");
  522. return (true);
  523. }
  524. if(PilotJobCP[playerid] == 2) {
  525. PilotJobCP[playerid] = 3;
  526. SetPlayerCheckpoint(playerid,1784.1711,-2493.7402,14.4759,10);
  527. return (true);
  528. }
  529. if(PilotJobCP[playerid] == 3) {
  530. PilotJobCP[playerid] = 4;
  531. SetPlayerCheckpoint(playerid,1533.0920,-2490.5625,62.5184,10);
  532. SendClientMessage(playerid,-1," ");
  533. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Kad se priblizis aerodromu u San Fierru, sputi na najnizu razinu.");
  534. return (true);
  535. }
  536. if(PilotJobCP[playerid] == 4) {
  537. PilotJobCP[playerid] = 5;
  538. SetPlayerCheckpoint(playerid,-1035.3253,-329.4680,76.2880,50);
  539. SendClientMessage(playerid,-1," ");
  540. SendClientMessage(playerid,-1,"Kopilot kaze[radio]: Avion B189 za kontrolni toranj, uspjesno smo uzlijetjeli, u San Fierru smo za 10ak minuta.");
  541. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, primljeno, obavijestiti cemo San Fierro.");
  542. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Samo idi avionom u smjeru sljedece oznake((checkpointa)) i nece biti problema.");
  543. return (true);
  544. }
  545. if(PilotJobCP[playerid] == 5) {
  546. PilotJobCP[playerid] = 6;
  547. SetPlayerCheckpoint(playerid,-1368.4176,-32.6200,15.0719,50);
  548. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  549. return (true);
  550. }
  551. if(PilotJobCP[playerid] == 6) {
  552. PilotJobCP[playerid] = 7;
  553. SetPlayerCheckpoint(playerid,-1359.6765,-118.9294,15.0702,10);
  554. TogglePlayerControllable(playerid, false);
  555. SendClientMessage(playerid,-1," ");
  556. SendClientMessage(playerid,-1,"Kopilot kaze[radio]: Avion B189 za kontrolni toranj, uspjesno smo sletjeli, pripremamo se za istovar putnika.");
  557. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, primljeno, javit cemo vasem kontrolnom tornju u Los Santosu da ste sletjeli..");
  558. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Odlicno, uspjeli smo sletjeti. Sada se okreni ulijevo za 180 stupnjeva i idemo istovariti putnike.");
  559. return (true);
  560. }
  561. if(PilotJobCP[playerid] == 7) {
  562. PilotJobCP[playerid] = 8;
  563. SetPlayerCheckpoint(playerid,1223.8855,-2324.8608,103.0302,50);
  564. TogglePlayerControllable(playerid, false);
  565. GameTextForPlayer(playerid,"~w~U tijeku jeistovar putnika",17000,0);
  566. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000,false,"i", playerid);
  567. SendClientMessage(playerid,-1," ");
  568. SendClientMessage(playerid,-1,"Kopilot kaze[radio]: Avion B189 za kontrolni toranj, putnici su iskrcani, krecemo nazad u Los Santos.");
  569. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, primljeno, sretno, javit cemo vasem kontrolnom tornju u Los Santosu da dolazite.");
  570. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Samo idi avionom u smjeru sljedece oznake((checkpointa)) i nece biti problema.");
  571. return (true);
  572. }
  573. if(PilotJobCP[playerid] == 8) {
  574. PilotJobCP[playerid] = 9;
  575. SetPlayerCheckpoint(playerid,1784.1711,-2493.7402,14.4759,10);
  576. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  577. return (true);
  578. }
  579. if(PilotJobCP[playerid] == 9) {
  580. ResetPilotVars(playerid);
  581. SendClientMessage(playerid,-1," ");
  582. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Odlicno, uspjeo si sletjeti nazad. Bilo mi je drago putovati s tobom.");
  583. GivePlayerMoney(playerid,1000);
  584. return (true);
  585. }
  586. }
  587. }
  588. if(PilotJobType[playerid] == TYPE_CARGO) { //cargo ruta do starog aerodroma
  589. if(PilotCargoJob[playerid] == 1) {
  590.  
  591. if(PilotJobCP[playerid] == 1) {
  592. PilotJobCP[playerid] = 2;
  593. SetPlayerCheckpoint(playerid,1989.6998,-2313.1260,13.5469,10);
  594. TogglePlayerControllable(playerid, false);
  595. GameTextForPlayer(playerid,"~w~Vrsi se utovar robe",27000,0);
  596. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_CUNLOADING*1000,false,"i", playerid);
  597. SendClientMessage(playerid,-1," ");
  598. 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.");
  599. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za BDD897, primljeno.");
  600. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Cilj nam je odvesti robu do Las Payasadasa, na stari aerodrom.");
  601. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Kad se roba utovari, idi do sredine piste i cekaj nove upute.");
  602. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Samo prati oznake((checkpoint)) i neće biti problema.");
  603. return (true);
  604. }
  605. if(PilotJobCP[playerid] == 2) {
  606. PilotJobCP[playerid] = 3;
  607. SetPlayerCheckpoint(playerid,1785.6935,-2493.5881,14.4886,10);
  608. return (true);
  609. }
  610. if(PilotJobCP[playerid] == 3) {
  611. PilotJobCP[playerid] = 4;
  612. SetPlayerCheckpoint(playerid,287.8836,2498.8228,17.4443,50);
  613. SendClientMessage(playerid,-1," ");
  614. 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.");
  615. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, pozitivno, dobili ste zeleno svijetlo za uzlijetanje, sretno.");
  616. return (true);
  617. }
  618. if(PilotJobCP[playerid] == 4) {
  619. PilotJobCP[playerid] = 5;
  620. SetPlayerCheckpoint(playerid,965.8230,2472.4363,144.7341,10);
  621. SendClientMessage(playerid,-1," ");
  622. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  623. return (true);
  624. }
  625. if(PilotJobCP[playerid] == 5) {
  626. PilotJobCP[playerid] = 6;
  627. SetPlayerCheckpoint(playerid,1991.5836,-2382.6089,14.4687,50);
  628. TogglePlayerControllable(playerid, false);
  629. GameTextForPlayer(playerid,"~w~Vrsi se istovar robe",17000,0);
  630. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000,false,"i", playerid);
  631. SendClientMessage(playerid,-1," ");
  632. SendClientMessage(playerid,-1,"Kopilot Tom kaze[radio]: Avion BDD897 za kontrolni toranj, roba se istovara, imamo li dozvolu za polijetanje?");
  633. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za BDD897, pozitivno, dobili ste zeleno svijetlo za uzlijetanje.");
  634. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Dobri smo s gorivom, nemamo nikakvih gresaka na motoru, spremni smo za uzlijetanje kada se istovari.");
  635. return (true);
  636. }
  637. if(PilotJobCP[playerid] == 6){
  638. PilotJobCP[playerid] = 7;
  639. SetPlayerCheckpoint(playerid,1785.6935,-2493.5881,14.4886,10);
  640. SendClientMessage(playerid,-1," ");
  641. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  642. return (true);
  643. }
  644. if(PilotJobCP[playerid] == 7) {
  645. ResetPilotVars(playerid);
  646. SendClientMessage(playerid,-1," ");
  647. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Odlicno, uspjeo si sletjeti. Bilo mi je drago putovati s tobom.");
  648. GivePlayerMoney(playerid,5000);
  649. return (true);
  650. }
  651. }
  652. if(PilotCargoJob[playerid] == 2) { //cargo ruta do las venturasa
  653.  
  654. if(PilotJobCP[playerid] == 1) {
  655. PilotJobCP[playerid] = 2;
  656. SetPlayerCheckpoint(playerid,1989.6998,-2313.1260,13.5469,10);
  657. TogglePlayerControllable(playerid, false);
  658. GameTextForPlayer(playerid,"~w~Vrsi se utovar robe",27000,0);
  659. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_CUNLOADING*1000,false,"i", playerid);
  660. SendClientMessage(playerid,-1," ");
  661. 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.");
  662. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, primljeno.");
  663. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Cilj nam je odvesti robu do Las Venturasa, glavni aerodrom.");
  664. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Kad se roba utovari, idi do sredine piste Sve što trebaš raditi jest pratiti moje isntrukcije\n\
  665. i putovati u smjeru oznake na navigaciji((checkpointa)).");
  666. return (true);
  667. }
  668. if(PilotJobCP[playerid] == 2) {
  669. PilotJobCP[playerid] = 3;
  670. SetPlayerCheckpoint(playerid,1785.6935,-2493.5881,14.4886,10);
  671. return (true);
  672. }
  673. if(PilotJobCP[playerid] == 3) {
  674. PilotJobCP[playerid] = 4;
  675. SetPlayerCheckpoint(playerid,1481.7861,854.9142,96.6241,50);
  676. SendClientMessage(playerid,-1," ");
  677. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze[radio]: Avion B228 za kontrolni toranj, roba je spremna, možemo li uzlijetjeti?");
  678. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, zeleno svijetlo, sretno.");
  679. return (true);
  680. }
  681. if(PilotJobCP[playerid] == 4) {
  682. PilotJobCP[playerid] = 5;
  683. SetPlayerCheckpoint(playerid,1571.4429,1548.5474,11.5475,10);
  684. SendClientMessage(playerid,-1," ");
  685. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  686. return (true);
  687. }
  688. if(PilotJobCP[playerid] == 5) {
  689. PilotJobCP[playerid] = 6;
  690. SetPlayerCheckpoint(playerid,1991.5836,-2382.6089,14.4687,50);
  691. TogglePlayerControllable(playerid, false);
  692. GameTextForPlayer(playerid,"~w~Vrsi se istovar robe",17000,0);
  693. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000,false,"i", playerid);
  694. SendClientMessage(playerid,-1," ");
  695. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze[radio]: Avion B228 za kontrolni toranj, roba pri kraju s istovarom, je li pista čista za polijetanje?");
  696. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, biti ćete u mogućnosti krenuti s polijetanjem za 20ak sekundi.");
  697. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Taman da se još ovaj zadnji paket istovari i možemo krenuti.");
  698. return (true);
  699. }
  700. if(PilotJobCP[playerid] == 6){
  701. PilotJobCP[playerid] = 7;
  702. SetPlayerCheckpoint(playerid,1785.6935,-2493.5881,14.4886,10);
  703. SendClientMessage(playerid,-1," ");
  704. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  705. return (true);
  706. }
  707. if(PilotJobCP[playerid] == 7) {
  708. ResetPilotVars(playerid);
  709. SendClientMessage(playerid,-1," ");
  710. 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.");
  711. GivePlayerMoney(playerid,5000);
  712. return (true);
  713. }
  714. }
  715. }
  716. return (true);
  717. }
  718.  
  719. /* KOMANDE */
  720. CMD:pilot(playerid, params[]) {
  721. new action[25];
  722.  
  723. if(PlayerInfo[playerid][pJob] != PILOT_JOB)
  724. return SendMessage(playerid, MESSAGE_TYPE_ERROR, "Moras biti clan taxi sluzbe da bi mogao koristiti komandu!");
  725.  
  726. if(sscanf(params, "s[25] ", action)) {
  727. SendClientMessage(playerid, COLOR_WHITE, "(COMMAND): /pilot [option].");
  728. SendClientMessage(playerid, 0xAFAFAFAA, "(options): start, help");
  729. return (true);
  730. }
  731.  
  732. if(strcmp(action,"start", (true)) == 0) {
  733. ShowPlayerDialog(playerid, DIALOG_PILOTJOB, DIALOG_STYLE_LIST, "Tip transporta",
  734. "Transport putnika - B189 - San Fierro - Kopilot Chris\n\
  735. Transport cargoa - BDD897 - Las Venturas - Kopilot Tom\n\
  736. Transport cargoa - B228 - Las Venturas - Kopilot Treshuan", "Select", "Close"
  737. );
  738. }
  739.  
  740. if(strcmp(action,"help", (true)) == 0) {
  741. ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"POSAO PILOT","Ovaj posao se odradjuje na aerodromu u Los Santosu. Tamo uvijek pocinjete i zavrsavate.\n\
  742. Glavni zadatak ovog posla jest transport, tako da se nudi mogucnost transporta putnika i cargoa na vise odredista.\n\
  743. 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\
  744. Kod utovara i istovara, igrica se zamrzne na 20-30 sekundi(sve zavisi je li cargo ili putnicki)\n\
  745. Kolicina novca za ovaj posao ovisi o brzini o zavrsenom poslu, kao i o vasem skillu za ovaj posao.","Okej",""
  746. );
  747. }
  748. return (true);
  749. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement