Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* www.cityofangels-roleplay.com - Pilot Job system - by WentworthHFD */
- #include <YSI\y_hooks>
- /*
- - defines & enum
- */
- #define PILOT_JOB (17) // Job ID
- #define PILOT_TIMER_PUNLOADING (20) //*1000 Koliko sekundi ceka na istovaranju putnika.
- #define PILOT_TIMER_CUNLOADING (30) //*1000 Koliko sekundi ceka na istovaranju cargo-a.
- enum {
- PASSENGER_PLANE = (519),
- CARGO_PLANE = (577),
- TYPE_NONE = (0),
- TYPE_PASSENGER = (1),
- TYPE_CARGO = (2)
- };
- /*
- - vars
- */
- new PilotTimer[MAX_PLAYERS],
- PilotVW[MAX_PLAYERS] = {99, ...},
- PilotJobType[MAX_PLAYERS] = {TYPE_NONE, ...},
- PilotJobCP[MAX_PLAYERS] = {0, ...},
- PilotCP_ID[MAX_PLAYERS] = {0, ...},
- PilotPassengersJob[MAX_PLAYERS] = {0, ...},
- PilotCargoJob[MAX_PLAYERS] = {0, ...};
- /*
- - functions
- */
- ResetPilotVars(playerid) {
- PilotVW[playerid] = 0;
- PilotJobType[playerid] = 0;
- PilotJobCP[playerid] = 0;
- PilotPassengersJob[playerid] = 0;
- PilotCargoJob[playerid] = 0;
- SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
- DisablePlayerCheckpoint(playerid);
- KillTimer(PilotTimer[playerid]);
- return (true);
- }
- SetNewPilotCP(playerid, Float: X, Float: Y, Float: Z, CP_ID) {
- if(CP_ID != 0 && PilotVW[playerid] != 0) {
- DisablePlayerCheckpoint(playerid);
- PilotJobCP[playerid] = CP_ID;
- PilotCP_ID[playerid] = SetPlayerCheckpoint(playerid, X, Y, Z, 10.0);
- }
- return (true);
- }
- /*
- - timers
- */
- forward _UnfreezeJob(playerid);
- public _UnfreezeJob(playerid) {
- TogglePlayerControllable(playerid, true);
- KillTimer(PilotTimer[playerid]);
- return (true);
- }
- /*
- - hooks
- */
- hook OnPlayerConnect(playerid) {
- ResetPilotVars(playerid);
- return (true);
- }
- hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- switch(dialogid) {
- case DIALOG_PILOTJOB: {
- if(response) {
- switch(listitem) {
- case 0: {
- if(GetVehicleModel(GetPlayerVehicleID(playerid)) != PASSENGER_PLANE)
- return SendMessage(playerid, MESSAGE_TYPE_ERROR,"Ne nalazite se u avionu za prijevoz ljudi.");
- PilotPassengersJob[playerid] = (1);
- PilotJobType[playerid] = TYPE_PASSENGER;
- PilotVW[playerid] = random(100)+100;
- SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
- SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), PilotVW[playerid]);
- SetNewPilotCP(playerid, 1993.8254,-2379.7437,14.4658, 1);
- SendClientMessage(playerid,-1,"Kopilot Chris kaze: Uputi se na oznaceno podrucje kako bi smo se pripremili za polijetanje.");
- }
- case 1: {
- if(GetVehicleModel(GetPlayerVehicleID(playerid)) != CARGO_PLANE)
- return SendMessage(playerid, MESSAGE_TYPE_ERROR,"Ne nalazite se u avionu za Transport robe.");
- PilotCargoJob[playerid] = (1);
- PilotJobType[playerid] = TYPE_CARGO;
- PilotVW[playerid] = random(100)+100;
- SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
- SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), PilotVW[playerid]);
- SetNewPilotCP(playerid, 1989.6998,-2313.1260,13.5469, 1);
- SendClientMessage(playerid,-1,"Kopilot Tom kaze: Idi malo naprijed kako bi smo utovarili robu.");
- }
- case 2: {
- if(GetVehicleModel(GetPlayerVehicleID(playerid)) != CARGO_PLANE)
- return SendMessage(playerid, MESSAGE_TYPE_ERROR,"Ne nalazite se u avionu za Transport robe.");
- PilotCargoJob[playerid] = (2);
- PilotJobType[playerid] = TYPE_CARGO;
- PilotVW[playerid] = random(100)+100;
- SetPlayerVirtualWorld(playerid, PilotVW[playerid]);
- SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), PilotVW[playerid]);
- SetNewPilotCP(playerid, 1991.5836,-2382.6089,14.4687, 1);
- SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Idi malo naprijed kako bi smo utovarili robu.");
- }
- }
- }
- }
- }
- return (true);
- }
- hook OnPlayerEnterCheckpoint(playerid) {
- if(PilotJobType[playerid] == TYPE_PASSENGER) {
- if(PilotPassengersJob[playerid] == 1) {
- if(PilotJobCP[playerid] == 1) {
- SetNewPilotCP(playerid, 1821.3727,-2493.5276,14.4823, 2);
- TogglePlayerControllable(playerid, false);
- GameTextForPlayer(playerid,"~w~U tijeku je utovar putnika",17000,0);
- PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000, (false), "i", playerid);
- SendClientMessage(playerid,-1," ");
- 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?");
- SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, pozitivno, dobili ste zeleno svijetlo za uzlijetanje.");
- SendClientMessage(playerid,-1,"Kopilot Chris kaze: Nakon utovara, uputi se prema sljedecoj oznacenoj lokaciji na radaru, a to je sredina piste.");
- 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");
- return (true);
- }
- if(PilotJobCP[playerid] == 2) {
- SetNewPilotCP(playerid, -1204.6528,-197.7682,15.0674, 3);
- SendClientMessage(playerid,-1," ");
- SendClientMessage(playerid,-1,"Kopilot Chris kaze: Kad se priblizis aerodromu u San Fierru, sputi na najnizu razinu.");
- SendClientMessage(playerid,-1,"Kopilot Chris kaze: Samo prati marker na navigaciji, slusaj mene i nece biti problema.");
- SendClientMessage(playerid,-1,"Kopilot Chris kaze: Malo prije San Fierro Aerodroma, uspori kako bi se mogao spustiti bez problema.");
- return (true);
- }
- if(PilotJobCP[playerid] == 3) {
- SetNewPilotCP(playerid, -1327.4601,-27.4226,15.0702, 4);
- GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
- return (true);
- }
- if(PilotJobCP[playerid] == 4) {
- SetNewPilotCP(playerid, 1569.2314,-2494.3040,14.4786, 5);
- TogglePlayerControllable(playerid, false);
- SendClientMessage(playerid,-1," ");
- SendClientMessage(playerid,-1,"Kopilot kaze[radio]: Avion B189 za kontrolni toranj, uspjesno smo sletjeli, istovariti cemo putnike i vratiti se.");
- SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, primljeno, javit cemo vasem kontrolnom tornju u Los Santosu.");
- SendClientMessage(playerid,-1,"Kopilot Chris kaze: Odlicno, uspjeli smo sletjeti. Sada se okreni ulijevo za 180 stupnjeva i idemo istovariti putnike.");
- return (true);
- }
- if(PilotJobCP[playerid] == 5) {
- SetNewPilotCP(playerid, 1973.8142,-2494.0815,14.4613, 6);
- GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
- return (true);
- }
- if(PilotJobCP[playerid] == 7) {
- ResetPilotVars(playerid);
- SendClientMessage(playerid,-1," ");
- SendClientMessage(playerid,-1,"Kopilot Chris kaze: Odlicno, uspjeo si sletjeti nazad. Bilo mi je drago putovati s tobom.");
- GivePlayerMoney(playerid,1000);
- return (true);
- }
- }
- }
- if(PilotJobType[playerid] == TYPE_CARGO) {
- if(PilotCargoJob[playerid] == 1) {
- if(PilotJobCP[playerid] == 1) {
- SetNewPilotCP(playerid, 1989.6998,-2313.1260,13.5469, 2);
- TogglePlayerControllable(playerid, false);
- GameTextForPlayer(playerid,"~w~Vrsi se utovar robe",27000,0);
- PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_CUNLOADING*1000,false,"i", playerid);
- SendClientMessage(playerid,-1," ");
- 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.");
- SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za BDD897, primljeno.");
- SendClientMessage(playerid,-1,"Kopilot Tom kaze: Cilj nam je odvesti robu do Las Payasadasa, na stari aerodrom.");
- SendClientMessage(playerid,-1,"Kopilot Tom kaze: Kad se roba utovari, idi do sredine piste i cekaj nove upute.");
- SendClientMessage(playerid,-1,"Kopilot Tom kaze: Samo prati oznake((checkpoint)) i nece biti problema.");
- return (true);
- }
- if(PilotJobCP[playerid] == 2) {
- SetNewPilotCP(playerid, 1785.6935,-2493.5881,14.4886, 3);
- return (true);
- }
- if(PilotJobCP[playerid] == 3) {
- SetNewPilotCP(playerid, 965.8230,2472.4363,144.7341, 4);
- SendClientMessage(playerid,-1," ");
- 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.");
- SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B189, pozitivno, dobili ste zeleno svijetlo za uzlijetanje, sretno.");
- return (true);
- }
- if(PilotJobCP[playerid] == 4) {
- SetNewPilotCP(playerid, 287.8836,2498.8228,17.4443, 5);
- SendClientMessage(playerid,-1," ");
- GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
- return (true);
- }
- if(PilotJobCP[playerid] == 5) {
- SetNewPilotCP(playerid, 1991.5836,-2382.6089,14.4687, 6);
- TogglePlayerControllable(playerid, false);
- GameTextForPlayer(playerid,"~w~Vrsi se istovar robe",17000,0);
- PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000,false,"i", playerid);
- SendClientMessage(playerid,-1," ");
- SendClientMessage(playerid,-1,"Kopilot Tom kaze[radio]: Avion BDD897 za kontrolni toranj, roba se istovara, imamo li dozvolu za polijetanje?");
- SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za BDD897, pozitivno, dobili ste zeleno svijetlo za uzlijetanje.");
- SendClientMessage(playerid,-1,"Kopilot Tom kaze: Dobri smo s gorivom, nemamo nikakvih gresaka na motoru, spremni smo za uzlijetanje kada se istovari.");
- return (true);
- }
- if(PilotJobCP[playerid] == 6){
- SetNewPilotCP(playerid, 1785.6935,-2493.5881,14.4886, 7);
- SendClientMessage(playerid,-1," ");
- GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
- return (true);
- }
- if(PilotJobCP[playerid] == 7) {
- ResetPilotVars(playerid);
- SendClientMessage(playerid,-1," ");
- SendClientMessage(playerid,-1,"Kopilot Tom kaze: Odlicno, uspjeo si sletjeti. Bilo mi je drago putovati s tobom.");
- GivePlayerMoney(playerid,5000);
- return (true);
- }
- }
- if(PilotCargoJob[playerid] == 2) {
- if(PilotJobCP[playerid] == 1) {
- SetNewPilotCP(playerid, 1989.6998,-2313.1260,13.5469, 2);
- TogglePlayerControllable(playerid, false);
- GameTextForPlayer(playerid,"~w~Vrsi se utovar robe",27000,0);
- PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_CUNLOADING*1000,false,"i", playerid);
- SendClientMessage(playerid,-1," ");
- 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.");
- SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, primljeno.");
- SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Cilj nam je odvesti robu do Las Venturasa, glavni aerodrom.");
- SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Kad se roba utovari, idi do sredine piste Sve što trebaš raditi jest pratiti moje isntrukcije\n\
- i putovati u smjeru oznake na navigaciji((checkpointa)).");
- return (true);
- }
- if(PilotJobCP[playerid] == 2) {
- SetNewPilotCP(playerid, 1785.6935,-2493.5881,14.4886, 3);
- return (true);
- }
- if(PilotJobCP[playerid] == 3) {
- SetNewPilotCP(playerid, 1484.5450,1365.4445,25.7466, 4);
- SendClientMessage(playerid,-1," ");
- SendClientMessage(playerid,-1,"Kopilot Treshuan kaze[radio]: Avion B228 za kontrolni toranj, roba je spremna, možemo li uzlijetjeti?");
- SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, zeleno svijetlo, sretno.");
- SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Samo vozi prema checkpointu i sve ce biti u redu.");
- SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Prije aerodroma sleti.");
- return (true);
- }
- if(PilotJobCP[playerid] == 4) {
- SetNewPilotCP(playerid, 1571.4429,1548.5474,11.5475, 5);
- SendClientMessage(playerid,-1," ");
- GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
- return (true);
- }
- if(PilotJobCP[playerid] == 5) {
- SetNewPilotCP(playerid, 1991.5836,-2382.6089,14.4687, 6);
- TogglePlayerControllable(playerid, false);
- GameTextForPlayer(playerid,"~w~Vrsi se istovar robe",17000,0);
- PilotTimer[playerid] = SetTimerEx("_UnfreezeJob", PILOT_TIMER_PUNLOADING*1000,false,"i", playerid);
- SendClientMessage(playerid,-1," ");
- SendClientMessage(playerid,-1,"Kopilot Treshuan kaze[radio]: Avion B228 za kontrolni toranj, roba pri kraju s istovarom, je li pista čista za polijetanje?");
- SendClientMessage(playerid,-1,"Kontrolni toranj[radio]: Kontrolni toranj za B228, biti ćete u mogućnosti krenuti s polijetanjem za 20ak sekundi.");
- SendClientMessage(playerid,-1,"Kopilot Treshuan kaze: Taman da se još ovaj zadnji paket istovari i možemo krenuti.");
- return (true);
- }
- if(PilotJobCP[playerid] == 6){
- SetNewPilotCP(playerid, 1785.6935,-2493.5881,14.4886, 7);
- SendClientMessage(playerid,-1," ");
- GameTextForPlayer(playerid,"~w~Usporite i izvucite kotace, pa se lagano spustite na pistu.",2000,0);
- return (true);
- }
- if(PilotJobCP[playerid] == 7) {
- ResetPilotVars(playerid);
- SendClientMessage(playerid,-1," ");
- 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.");
- GivePlayerMoney(playerid,5000);
- return (true);
- }
- }
- }
- return (true);
- }
- /* KOMANDE */
- CMD:pilot(playerid, params[]) {
- new action[20];
- if(PlayerInfo[playerid][pJob] != PILOT_JOB)
- return SendMessage(playerid, MESSAGE_TYPE_ERROR, "Morate biti zaposlen kao pilot da bi ste mogli koristiti ovu komandu.");
- if(sscanf(params, "s[20] ", action)) {
- SendClientMessage(playerid, COLOR_WHITE, "(COMMAND): /pilot [option].");
- SendClientMessage(playerid, 0xAFAFAFAA, "(options): start, stop, help");
- return (true);
- }
- if(strcmp(action,"start", (true)) == 0) {
- ShowPlayerDialog(playerid, DIALOG_PILOTJOB, DIALOG_STYLE_LIST, "Tip transporta",
- "Transport putnika - B189 - San Fierro - Kopilot Chris\n\
- Transport cargoa - BDD897 - Las Venturas - Kopilot Tom\n\
- Transport cargoa - B228 - Las Venturas - Kopilot Treshuan", "Select", "Close"
- );
- }
- if(strcmp(action,"stop", (true)) == 0) {
- PilotPassengersJob[playerid] = (0);
- PilotCargoJob[playerid] = (0);
- SetPlayerVirtualWorld(playerid, 0);
- ResetPilotVars(playerid);
- SetPlayerPosEx(playerid, 1993.8254,-2379.7437,14.4658, 0, 0, true);
- SendClientMessage(playerid, 0xAFAFAFAA, "[INFO]: Prekinuli ste s voznjom rute, vraceni ste kod posla.");
- }
- if(strcmp(action,"help", (true)) == 0) {
- ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"POSAO PILOT","Ovaj posao se odradjuje na aerodromu u Los Santosu. Tamo uvijek pocinjete i zavrsavate.\n\
- Glavni zadatak ovog posla jest transport, tako da se nudi mogucnost transporta putnika i cargoa na vise odredista.\n\
- 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\
- Kod utovara i istovara, igrica se zamrzne na 20-30 sekundi(sve zavisi je li cargo ili putnicki)\n\
- Kolicina novca za ovaj posao ovisi o brzini o zavrsenom poslu, kao i o vasem skillu za ovaj posao.\n\
- Za prekidanje posla, koristite komandu /pilot stop. Kod prijevremenog zavrestka, necete dobiti nikakav novac.","Okej",""
- );
- }
- return (true);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement