Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2019
296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.82 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 = (577),
  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. DisablePlayerCheckpoint(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] = SetPlayerCheckpoint(playerid, X, Y, Z, 10.0);
  56. }
  57. return (true);
  58. }
  59.  
  60. /*
  61. - timers
  62. */
  63.  
  64. forward _UnfreezeJob(playerid);
  65. public _UnfreezeJob(playerid) {
  66. TogglePlayerControllable(playerid, true);
  67. KillTimer(PilotTimer[playerid]);
  68. return (true);
  69. }
  70.  
  71. /*
  72. - hooks
  73. */
  74.  
  75. hook OnPlayerConnect(playerid) {
  76. ResetPilotVars(playerid);
  77. return (true);
  78. }
  79.  
  80. hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  81. switch(dialogid) {
  82. case DIALOG_PILOTJOB: {
  83. if(response) {
  84. switch(listitem) {
  85. case 0: {
  86. if(GetVehicleModel(GetPlayerVehicleID(playerid)) != PASSENGER_PLANE)
  87. return SendMessage(playerid, MESSAGE_TYPE_ERROR,"Ne nalazite se u avionu za prijevoz ljudi.");
  88.  
  89. PilotPassengersJob[playerid] = (1);
  90. PilotJobType[playerid] = TYPE_PASSENGER;
  91. PilotVW[playerid] = random(100)+100;
  92. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  93. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), PilotVW[playerid]);
  94.  
  95. SetNewPilotCP(playerid, 1993.8254,-2379.7437,14.4658, 1);
  96. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Uputi se na oznaceno podrucje kako bi smo se pripremili za polijetanje.");
  97. }
  98. case 1: {
  99. if(GetVehicleModel(GetPlayerVehicleID(playerid)) != CARGO_PLANE)
  100. return SendMessage(playerid, MESSAGE_TYPE_ERROR,"Ne nalazite se u avionu za Transport robe.");
  101.  
  102. PilotCargoJob[playerid] = (1);
  103. PilotJobType[playerid] = TYPE_CARGO;
  104. PilotVW[playerid] = random(100)+100;
  105. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  106. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), PilotVW[playerid]);
  107.  
  108. SetNewPilotCP(playerid, 1989.6998,-2313.1260,13.5469, 1);
  109. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Idi malo naprijed kako bi smo utovarili robu.");
  110. }
  111. case 2: {
  112. if(GetVehicleModel(GetPlayerVehicleID(playerid)) != CARGO_PLANE)
  113. return SendMessage(playerid, MESSAGE_TYPE_ERROR,"Ne nalazite se u avionu za Transport robe.");
  114.  
  115. PilotCargoJob[playerid] = (2);
  116. PilotJobType[playerid] = TYPE_CARGO;
  117. PilotVW[playerid] = random(100)+100;
  118. SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
  119. SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), PilotVW[playerid]);
  120.  
  121. SetNewPilotCP(playerid, 1991.5836,-2382.6089,14.4687, 1);
  122. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Idi malo naprijed kako bi smo utovarili robu.");
  123. }
  124. }
  125. }
  126. }
  127. }
  128. return (true);
  129. }
  130.  
  131.  
  132.  
  133. hook OnPlayerEnterCheckpoint(playerid) {
  134. if(PilotJobType[playerid] == TYPE_PASSENGER) {
  135. if(PilotPassengersJob[playerid] == 1) {
  136. if(PilotJobCP[playerid] == 1) {
  137.  
  138. SetNewPilotCP(playerid, 1821.3727,-2493.5276,14.4823, 2);
  139.  
  140. TogglePlayerControllable(playerid, false);
  141. GameTextForPlayer(playerid,"~w~U tijeku je utovar putnika",17000,0);
  142. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000, (false), "i", playerid);
  143.  
  144. SendClientMessage(playerid,-1," ");
  145. 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?");
  146. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, pozitivno, dobili ste zeleno svijetlo za uzlijetanje.");
  147. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Nakon utovara, uputi se prema sljedecoj oznacenoj lokaciji na radaru, a to je sredina piste.");
  148. 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");
  149. return (true);
  150. }
  151. if(PilotJobCP[playerid] == 2) {
  152. SetNewPilotCP(playerid, -1204.6528,-197.7682,15.0674, 3);
  153. SendClientMessage(playerid,-1," ");
  154. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Kad se priblizis aerodromu u San Fierru, sputi na najnizu razinu.");
  155. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Samo prati marker na navigaciji, slusaj mene i nece biti problema.");
  156. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Malo prije San Fierro Aerodroma, uspori kako bi se mogao spustiti bez problema.");
  157. return (true);
  158. }
  159. if(PilotJobCP[playerid] == 3) {
  160. SetNewPilotCP(playerid, -1327.4601,-27.4226,15.0702, 4);
  161. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  162. return (true);
  163. }
  164. if(PilotJobCP[playerid] == 4) {
  165. SetNewPilotCP(playerid, 1569.2314,-2494.3040,14.4786, 5);
  166. TogglePlayerControllable(playerid, false);
  167.  
  168. SendClientMessage(playerid,-1," ");
  169. SendClientMessage(playerid,-1,"Kopilot kaze[radio]: Avion B189 za kontrolni toranj, uspjesno smo sletjeli, istovariti cemo putnike i vratiti se.");
  170. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, primljeno, javit cemo vasem kontrolnom tornju u Los Santosu.");
  171. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Odlicno, uspjeli smo sletjeti. Sada se okreni ulijevo za 180 stupnjeva i idemo istovariti putnike.");
  172. return (true);
  173. }
  174. if(PilotJobCP[playerid] == 5) {
  175. SetNewPilotCP(playerid, 1973.8142,-2494.0815,14.4613, 6);
  176. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  177. return (true);
  178. }
  179. if(PilotJobCP[playerid] == 7) {
  180. ResetPilotVars(playerid);
  181. SendClientMessage(playerid,-1," ");
  182. SendClientMessage(playerid,-1,"Kopilot Chris kaze: Odlicno, uspjeo si sletjeti nazad. Bilo mi je drago putovati s tobom.");
  183. GivePlayerMoney(playerid,1000);
  184. return (true);
  185. }
  186. }
  187. }
  188. if(PilotJobType[playerid] == TYPE_CARGO) {
  189. if(PilotCargoJob[playerid] == 1) {
  190.  
  191. if(PilotJobCP[playerid] == 1) {
  192. SetNewPilotCP(playerid, 1989.6998,-2313.1260,13.5469, 2);
  193.  
  194. TogglePlayerControllable(playerid, false);
  195. GameTextForPlayer(playerid,"~w~Vrsi se utovar robe",27000,0);
  196. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_CUNLOADING*1000,false,"i", playerid);
  197.  
  198. SendClientMessage(playerid,-1," ");
  199. 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.");
  200. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za BDD897, primljeno.");
  201. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Cilj nam je odvesti robu do Las Payasadasa, na stari aerodrom.");
  202. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Kad se roba utovari, idi do sredine piste i cekaj nove upute.");
  203. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Samo prati oznake((checkpoint)) i nece biti problema.");
  204. return (true);
  205. }
  206. if(PilotJobCP[playerid] == 2) {
  207. SetNewPilotCP(playerid, 1785.6935,-2493.5881,14.4886, 3);
  208. return (true);
  209. }
  210. if(PilotJobCP[playerid] == 3) {
  211. SetNewPilotCP(playerid, 965.8230,2472.4363,144.7341, 4);
  212.  
  213. SendClientMessage(playerid,-1," ");
  214. 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.");
  215. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, pozitivno, dobili ste zeleno svijetlo za uzlijetanje, sretno.");
  216. return (true);
  217. }
  218. if(PilotJobCP[playerid] == 4) {
  219. SetNewPilotCP(playerid, 287.8836,2498.8228,17.4443, 5);
  220.  
  221. SendClientMessage(playerid,-1," ");
  222. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  223. return (true);
  224. }
  225. if(PilotJobCP[playerid] == 5) {
  226. SetNewPilotCP(playerid, 1991.5836,-2382.6089,14.4687, 6);
  227.  
  228. TogglePlayerControllable(playerid, false);
  229. GameTextForPlayer(playerid,"~w~Vrsi se istovar robe",17000,0);
  230. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000,false,"i", playerid);
  231.  
  232. SendClientMessage(playerid,-1," ");
  233. SendClientMessage(playerid,-1,"Kopilot Tom kaze[radio]: Avion BDD897 za kontrolni toranj, roba se istovara, imamo li dozvolu za polijetanje?");
  234. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za BDD897, pozitivno, dobili ste zeleno svijetlo za uzlijetanje.");
  235. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Dobri smo s gorivom, nemamo nikakvih gresaka na motoru, spremni smo za uzlijetanje kada se istovari.");
  236. return (true);
  237. }
  238. if(PilotJobCP[playerid] == 6){
  239. SetNewPilotCP(playerid, 1785.6935,-2493.5881,14.4886, 7);
  240.  
  241. SendClientMessage(playerid,-1," ");
  242. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  243. return (true);
  244. }
  245. if(PilotJobCP[playerid] == 7) {
  246. ResetPilotVars(playerid);
  247. SendClientMessage(playerid,-1," ");
  248. SendClientMessage(playerid,-1,"Kopilot Tom kaze: Odlicno, uspjeo si sletjeti. Bilo mi je drago putovati s tobom.");
  249. GivePlayerMoney(playerid,5000);
  250. return (true);
  251. }
  252. }
  253. if(PilotCargoJob[playerid] == 2) {
  254.  
  255. if(PilotJobCP[playerid] == 1) {
  256. SetNewPilotCP(playerid, 1989.6998,-2313.1260,13.5469, 2);
  257.  
  258. TogglePlayerControllable(playerid, false);
  259. GameTextForPlayer(playerid,"~w~Vrsi se utovar robe",27000,0);
  260. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_CUNLOADING*1000,false,"i", playerid);
  261.  
  262. SendClientMessage(playerid,-1," ");
  263. 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.");
  264. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, primljeno.");
  265. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Cilj nam je odvesti robu do Las Venturasa, glavni aerodrom.");
  266. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Kad se roba utovari, idi do sredine piste Sve što trebaš raditi jest pratiti moje isntrukcije\n\
  267. i putovati u smjeru oznake na navigaciji((checkpointa)).");
  268. return (true);
  269. }
  270. if(PilotJobCP[playerid] == 2) {
  271. SetNewPilotCP(playerid, 1785.6935,-2493.5881,14.4886, 3);
  272. return (true);
  273. }
  274. if(PilotJobCP[playerid] == 3) {
  275. SetNewPilotCP(playerid, 1484.5450,1365.4445,25.7466, 4);
  276.  
  277. SendClientMessage(playerid,-1," ");
  278. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze[radio]: Avion B228 za kontrolni toranj, roba je spremna, možemo li uzlijetjeti?");
  279. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, zeleno svijetlo, sretno.");
  280. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Samo vozi prema checkpointu i sve ce biti u redu.");
  281. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Prije aerodroma sleti.");
  282. return (true);
  283. }
  284. if(PilotJobCP[playerid] == 4) {
  285. SetNewPilotCP(playerid, 1571.4429,1548.5474,11.5475, 5);
  286.  
  287. SendClientMessage(playerid,-1," ");
  288. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  289. return (true);
  290. }
  291. if(PilotJobCP[playerid] == 5) {
  292. SetNewPilotCP(playerid, 1991.5836,-2382.6089,14.4687, 6);
  293.  
  294. TogglePlayerControllable(playerid, false);
  295. GameTextForPlayer(playerid,"~w~Vrsi se istovar robe",17000,0);
  296. PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000,false,"i", playerid);
  297.  
  298. SendClientMessage(playerid,-1," ");
  299. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze[radio]: Avion B228 za kontrolni toranj, roba pri kraju s istovarom, je li pista čista za polijetanje?");
  300. SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, biti ćete u mogućnosti krenuti s polijetanjem za 20ak sekundi.");
  301. SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Taman da se još ovaj zadnji paket istovari i možemo krenuti.");
  302. return (true);
  303. }
  304. if(PilotJobCP[playerid] == 6){
  305. SetNewPilotCP(playerid, 1785.6935,-2493.5881,14.4886, 7);
  306.  
  307. SendClientMessage(playerid,-1," ");
  308. GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
  309. return (true);
  310. }
  311. if(PilotJobCP[playerid] == 7) {
  312. ResetPilotVars(playerid);
  313.  
  314. SendClientMessage(playerid,-1," ");
  315. 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.");
  316. GivePlayerMoney(playerid,5000);
  317. return (true);
  318. }
  319. }
  320. }
  321. return (true);
  322. }
  323.  
  324. /* KOMANDE */
  325. CMD:pilot(playerid, params[]) {
  326. new action[20];
  327.  
  328. if(PlayerInfo[playerid][pJob] != PILOT_JOB)
  329. return SendMessage(playerid, MESSAGE_TYPE_ERROR, "Morate biti zaposlen kao pilot da bi ste mogli koristiti ovu komandu.");
  330.  
  331. if(sscanf(params, "s[20] ", action)) {
  332. SendClientMessage(playerid, COLOR_WHITE, "(COMMAND): /pilot [option].");
  333. SendClientMessage(playerid, 0xAFAFAFAA, "(options): start, stop, help");
  334. return (true);
  335. }
  336.  
  337. if(strcmp(action,"start", (true)) == 0) {
  338. ShowPlayerDialog(playerid, DIALOG_PILOTJOB, DIALOG_STYLE_LIST, "Tip transporta",
  339. "Transport putnika - B189 - San Fierro - Kopilot Chris\n\
  340. Transport cargoa - BDD897 - Las Venturas - Kopilot Tom\n\
  341. Transport cargoa - B228 - Las Venturas - Kopilot Treshuan", "Select", "Close"
  342. );
  343. }
  344.  
  345. if(strcmp(action,"stop", (true)) == 0) {
  346. PilotPassengersJob[playerid] = (0);
  347. PilotCargoJob[playerid] = (0);
  348. SetPlayerVirtualWorld(playerid, 0);
  349. ResetPilotVars(playerid);
  350.  
  351. SetPlayerPosEx(playerid, 1993.8254,-2379.7437,14.4658, 0, 0, true);
  352. SendClientMessage(playerid, 0xAFAFAFAA, "[INFO]: Prekinuli ste s voznjom rute, vraceni ste kod posla.");
  353. }
  354.  
  355. if(strcmp(action,"help", (true)) == 0) {
  356. ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"POSAO PILOT","Ovaj posao se odradjuje na aerodromu u Los Santosu. Tamo uvijek pocinjete i zavrsavate.\n\
  357. Glavni zadatak ovog posla jest transport, tako da se nudi mogucnost transporta putnika i cargoa na vise odredista.\n\
  358. Za pocetak posla, koristite /pilot.\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\
  359. Kod utovara i istovara, igrica se zamrzne na 20-30 sekundi(sve zavisi je li cargo ili putnicki)\n\
  360. Kolicina novca za ovaj posao ovisi o brzini o zavrsenom poslu, kao i o vasem skillu za ovaj posao.\n\
  361. Za prekidanje posla, koristite komandu /pilot stop. Kod prijevremenog zavrestka, necete dobiti nikakav novac.","Okej",""
  362. );
  363. }
  364. return (true);
  365. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement