Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #define COLOR_ORANGE 0xFFA500FF
- #define COLOR_LIMEGREEN 0x32CD32FF
- #define COLOR_ROYALBLUE 0x4169E1FF
- #define COLOR_PINK 0xFA8072FF
- #define COLOR_GREY 0xAFAFAFAA
- #define COLOR_GREEN 0x33AA33AA
- #define COLOR_RED 0xFF0000C8
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_WHITE 0xFFFFFFAA
- #define COLOR_BLUE 0x0000BBAA
- #define COLOR_LIGHTBLUE 0x33CCFFAA
- #define COLOR_INDIGO 0x1E90FFAA
- enum {
- STAGE_IDLE,
- STAGE_LOAD,
- STAGE_UNLOAD
- }
- enum {
- STAGE_IDL,
- STAGE_LOA,
- STAGE_UNLOA
- }
- new MissionStge[MAX_PLAYERS];
- new Float: qPickupCPs[][] = {
- { 2520.4902,1299.3765,10.8125},//
- { 2078.8430,1618.3031,10.8203 },//
- { 1726.2607,1529.2054,10.8203 },//
- { 2079.0376,1009.1650,10.8203 },//
- { 1772.3185,-1859.1658,13.4141},//
- { 1455.9867,-1739.3135,13.5469},//
- { 1107.7612,-1718.7412,13.5469},//
- { -292.6930,-2168.5618,28.5569},//
- { -226.7563,-264.2542,1.4219},//
- { 72.6294,98.2194,2.2922}
- };
- new Float: qDeliverCPs[][] = {
- { 2121.8547,1431.1693,10.8203},//
- { 1844.1877,2264.9973,11.2288 },//
- { 1996.1808,824.2429,6.8624 },//
- { 1716.4343,1373.8458,10.6406 },//
- { 2158.5112,1871.4792,10.8203 },//
- { 1638.2766,-2323.8223,13.3828 },//
- { 1560.9440,-1808.5863,13.5469 },//
- { 826.4546,-1635.2385,13.5469 },//
- { 375.6268,-1908.5886,7.8359 },//
- { -378.5306,-1405.5066,25.1902 },//
- { -157.0472,-351.0927,1.4297 }
- };
- new MissionStage[MAX_PLAYERS];
- new Float: gPickupCPs[][] = {
- { 1708.1753,1447.5897,10.8183},//
- { 2020.1150,1281.8982,10.8203 },//
- { 1605.1226,1845.6368,10.8203 },//
- { 1624.7622,2591.9053,10.6719 },//
- { 2572.1851,1379.5211,10.8203},//
- { 1945.4916,168.0763,37.2813},//
- { -139.8199,214.4663,7.7478},//
- { -2172.1980,-90.0761,35.1719},//
- { -1412.2441,-304.1318,14.1411},//
- { 341.2981,-1803.4674,4.6585},
- { 774.9841,-1792.0835,13.0311},
- { 1663.0458,-2250.7988,13.3554},
- { 1934.3203,-1928.5203,13.3860},
- { 2607.8840,-1450.5083,32.9954}
- };
- new Float: gDeliverCPs[][] = {
- { 2715.4163,-1121.9978,69.5781},//
- { 2168.6951,-1629.7954,14.4724 },//
- { 1996.5559,-1713.5670,13.5469},//
- { 119.0267,-1560.5231,8.4564 },//
- { -2019.3076,164.8913,28.2674 },//
- { -1541.7216,495.1849,7.1797 },//
- { 1239.2821,350.3404,19.4063 },//
- { 2352.4280,154.6426,26.4692 },//
- { 2296.4382,665.6402,10.8203 },//
- { 1044.0485,1043.5970,10.1577 },//
- { 1863.2518,1097.7646,10.7056 }
- };
- public OnPlayerConnect(playerid) {
- MissionStage[playerid] = STAGE_IDLE;
- MissionStge[playerid] = STAGE_IDL;
- return true;
- }
- DeliveryMissionn(playerid) {
- if(MissionStage[playerid] == STAGE_IDLE) {
- if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 420) {
- new
- idx,
- Float: tmp,
- Float: dist = GetPlayerDistanceFromPoint(playerid, gPickupCPs[0][0], gPickupCPs[0][1], gPickupCPs[0][2])
- ;
- for(new i = 1; i < sizeof gPickupCPs; ++i) {
- tmp = GetPlayerDistanceFromPoint(playerid, gPickupCPs[i][0], gPickupCPs[i][1], gPickupCPs[i][2]);
- if(tmp < dist) {
- dist = tmp;
- idx = i;
- }
- }
- MissionStage[playerid] = STAGE_LOAD;
- return SetPlayerCheckpoint(playerid, gPickupCPs[idx][0], gPickupCPs[idx][1], gPickupCPs[idx][2], 20.0);
- }
- } else {
- MissionStage[playerid] = STAGE_IDLE;
- return DisablePlayerCheckpoint(playerid);
- }
- return false;
- }
- DeliveryMissio(playerid) {
- if(MissionStge[playerid] == STAGE_IDL) {
- if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 437) {
- new
- idx,
- Float: tmp,
- Float: dist = GetPlayerDistanceFromPoint(playerid, qPickupCPs[0][0], qPickupCPs[0][1], qPickupCPs[0][2])
- ;
- for(new i = 1; i < sizeof qPickupCPs; ++i) {
- tmp = GetPlayerDistanceFromPoint(playerid, qPickupCPs[i][0], qPickupCPs[i][1], qPickupCPs[i][2]);
- if(tmp < dist) {
- dist = tmp;
- idx = i;
- }
- }
- MissionStge[playerid] = STAGE_LOA;
- return SetPlayerCheckpoint(playerid, qPickupCPs[idx][0], qPickupCPs[idx][1], qPickupCPs[idx][2], 20.0);
- }
- } else {
- MissionStge[playerid] = STAGE_IDL;
- return DisablePlayerCheckpoint(playerid);
- }
- return false;
- }
- public OnPlayerCommandText(playerid, cmdtext[]) {
- if (strcmp("/Bus", cmdtext, true) == 0) {
- if(MissionStge[playerid] != STAGE_IDL) {
- return SendClientMessage(playerid, COLOR_RED, "You are already in a work!");
- }
- if(DeliveryMissio(playerid)) {
- return 1;
- }
- }
- if (strcmp("/Stopbus", cmdtext, true) == 0) {
- if(MissionStge[playerid] == STAGE_IDL) {
- return SendClientMessage(playerid, COLOR_RED, "You aren't doing any work!");
- }
- if(DeliveryMissio(playerid)) {
- GivePlayerMoney(playerid,-10000);
- return SendClientMessage(playerid, COLOR_RED, "You had Paid $10,000 for stopping your Work!");
- }
- if (strcmp("/Taxi", cmdtext, true) == 0) {
- if(MissionStage[playerid] != STAGE_IDLE) {
- return SendClientMessage(playerid, COLOR_RED, "You are already in a work!");
- }
- if(DeliveryMissionn(playerid)) {
- SendClientMessage(playerid, COLOR_INDIGO, "You have Started your Work !");
- return 1;
- }
- }
- if (strcmp("/StopTaxi", cmdtext, true) == 0) {
- if(MissionStage[playerid] == STAGE_IDLE) {
- return SendClientMessage(playerid, COLOR_RED, "You aren't doing any work!");
- }
- if(DeliveryMissionn(playerid)) {
- GivePlayerMoney(playerid,-10000);
- return SendClientMessage(playerid, COLOR_RED, "You had Paid $10,000 for stopping your Work!");
- }
- return 1;
- }
- }
- return 0;
- }
- public OnPlayerEnterCheckpoint(playerid) {
- switch(MissionStage[playerid]) {
- case STAGE_LOAD: {
- new
- rand = random(sizeof gDeliverCPs)
- ;
- DisablePlayerCheckpoint(playerid);
- GameTextForPlayer(playerid, "~g~Passengers Boarding !", 2000, 4);
- TogglePlayerControllable(playerid, false); // Freeze the player
- SetTimerEx("Unfreeze", 3000, false, "i", playerid); // Make a 3 second timer for that player to get unfroze
- SetPlayerCheckpoint(playerid, gDeliverCPs[rand][0], gDeliverCPs[rand][1], gDeliverCPs[rand][2], 10.0);
- MissionStage[playerid] = STAGE_UNLOAD;
- }
- case STAGE_UNLOAD: {
- DisablePlayerCheckpoint(playerid);
- GameTextForPlayer(playerid, "~g~Passengers UnLoading !", 2000, 4);
- TogglePlayerControllable(playerid, false); // Freeze the player
- SetTimerEx("Unfreeze", 3000, false, "i", playerid); // Make a 3 second timer for that player to get unfroze
- SetPlayerScore(playerid, GetPlayerScore(playerid) + 1);
- new cash = random(8000);
- GivePlayerMoney(playerid, cash);
- new
- string[64]
- ;
- GetPlayerName(playerid, string, MAX_PLAYER_NAME);
- strcat(string, " Completed a Taxi Mission!");
- SendClientMessageToAll(COLOR_ORANGE, string);
- MissionStage[playerid] = STAGE_IDLE;
- }
- }
- switch(MissionStge[playerid]) {
- case STAGE_LOA: {
- new
- rand = random(sizeof qDeliverCPs)
- ;
- DisablePlayerCheckpoint(playerid);
- GameTextForPlayer(playerid, "~g~Passengers Boarding !", 2000, 4);
- TogglePlayerControllable(playerid, false); // Freeze the player
- SetTimerEx("Unfreeze", 3000, false, "i", playerid); // Make a 3 second timer for that player to get unfroze
- SetPlayerCheckpoint(playerid, qDeliverCPs[rand][0], qDeliverCPs[rand][1], qDeliverCPs[rand][2], 10.0);
- MissionStge[playerid] = STAGE_UNLOA;
- }
- case STAGE_UNLOA: {
- DisablePlayerCheckpoint(playerid);
- GameTextForPlayer(playerid, "~g~Passengers UnLoading !", 2000, 4);
- TogglePlayerControllable(playerid, false); // Freeze the player
- SetTimerEx("Unfreeze", 3000, false, "i", playerid); // Make a 3 second timer for that player to get unfroze
- SetPlayerScore(playerid, GetPlayerScore(playerid) + 1);
- new cash = random(8000);
- GivePlayerMoney(playerid, cash);
- new
- string[64]
- ;
- GetPlayerName(playerid, string, MAX_PLAYER_NAME);
- strcat(string, " Completed a Bus Haul!");
- SendClientMessageToAll(COLOR_ORANGE, string);
- MissionStge[playerid] = STAGE_IDL;
- }
- }
- return false;
- }
- public OnPlayerDeath(playerid, killerid, reason){
- MissionStge[playerid] = STAGE_IDL;
- DisablePlayerCheckpoint(playerid);
- MissionStage[playerid] = STAGE_IDLE;
- DisablePlayerCheckpoint(playerid);
- return true;
- }
- forward Unfreeze(playerid);
- public Unfreeze(playerid)
- {
- TogglePlayerControllable(playerid, true); // Unfreeze the player after 5 seconds
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement