16.10.2010, 20:12
well, house system using not race cp's, normal cp, but funcs are from streamer plugin..
//#define USE_RACE_CHECKPOINT // Un comment this line to enable Race Checkoints!
Ok, thanks. Its working pretty good, but im founded some bugs:
1. When you use /work, its didnt set mission randomly, its set first mission ( in enum ) 2. When you die, checkpoint didnt deleted 3. When you come to checkpoint, its nothing.. I mean: Come at CP, and nothing does.. 4. You can use /work anywhere, not at StartX, Y, Z. |
#include <a_samp> #include <TruckingMissions> enum TruckingMissionInfo { MissionName[200], bool:UseTrailerCheck, MissionPay, Float:loadx, Float:loady, Float:loadz, Float:unloadx, Float:unloady, Float:unloadz } new TruckingMissionRandom[][TruckingMissionInfo] = { // {"Mission Text", UseTrailerCheck, MissionPay, loadx, loady, loadz, unloadx, unloady, unloadz} /* KEY: ** "Mission Text" = The text the player will see when he/she is doing the mission! ** UseTrailerCheck = Weather or not the mission requires you use a vehile that has a trailer. Ex: Roadtrain with an Artict1 trailer! ** MissionPay = The amount the player will recive for doing there mission! ** loadx, loady, and loadz = The loading coordinates of the loading checkpoint! ** unloadx, unloadx, unloadx = The un-loading coordinates of the unloading checkpoint! */ {"Deliver Holy Water from LVA Freight Depot to LVA Church", true, 10000, 1701.9475,940.5465,10.8203, 1496.2524,772.1427,10.8203}, {"Deliver Junk Car Parts from LVA Freight Depot to Shody Ottos", true, 10000, 1701.9475,940.5465,10.8203, 1727.6351,1812.1750,10.8203} }; new IsPlayerInMission[MAX_PLAYERS] = 0; // We are going to use this to detect when a player is in a mission! main() { print("\n----------------------------------"); print(" [TGG] Trucking Mission Example Script!"); print("----------------------------------\n"); } public OnGameModeInit() { // Don't use these lines if it's a filterscript SetGameModeText("Blank Script"); AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); return 1; } public OnGameModeExit() { return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); return 1; } public OnPlayerConnect(playerid) { M_OnPlayerConnect(playerid); IsPlayerInMission[playerid] = 0;// reset return 1; } public OnPlayerDisconnect(playerid, reason) { M_OnPlayerDisconnect(playerid); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if(!strcmp("/work", cmdtext, true)) { new pvehiclemodel = GetVehicleModel(GetPlayerVehicleID(playerid)); if (pvehiclemodel == 403 || pvehiclemodel == 514 || pvehiclemodel == 515) { if (IsPlayerInMission[playerid] == 1) return SendClientMessage(playerid, 0xFF0000AA, ">> You are currently in a mission use \"/cancelmission\" to cancel your current mission!"); // prevents them from starting another mission new string[200]; new rand = random(sizeof(TruckingMissionRandom)); IsPlayerInMission[playerid] = 1; // asign it to 1 becuase there in a mission CreatePlayerMission(playerid, TruckingMissionRandom[rand][UseTrailerCheck], TruckingMissionRandom[rand][MissionPay], TruckingMissionRandom[rand][loadx],TruckingMissionRandom[rand][loady], TruckingMissionRandom[rand][loadz], TruckingMissionRandom[rand][unloadx],TruckingMissionRandom[rand][unloady], TruckingMissionRandom[rand][unloadz]); format(string, sizeof(string), "You are doing mission: %s", TruckingMissionRandom[rand][MissionName]); SendClientMessage(playerid, 0x00FF00FF, string); } else { SendClientMessage(playerid, 0xFF0000AA, "Im sorry but this mission requires that you use a vehicle that can pull a semi trailer Ex: Roadtrain with an Artict1!"); } return 1; } if(!strcmp("/cancelmission", cmdtext, true)) { if (IsPlayerInMission[playerid] == 0) return SendClientMessage(playerid, 0xFF0000AA, "you are not in a mission use \"/work\" to start one!"); // prevents them if there currently not in a mission IsPlayerInMission[playerid] = 0; // resets it so they can start another mission CancelPlayersCurrentMission(playerid); return 1; } return 0; } public OnPlayerDeath(playerid, killerid, reason) { if (IsPlayerInMission[playerid] == 1)// checks to see if a player was in a mission on player death { CancelPlayersCurrentMission(playerid);// cancels player mission IsPlayerInMission[playerid] = 0; // resets the variable so they can start a new mission! } return 1; } public OnPlayerEnterCheckpoint(playerid) { M_OnPlayerEnterCheckpoint(playerid); return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { M_OnPlayerEnterRaceCheckpoint(playerid); return 1; } public OnPlayerFinishMission(playerid) { SendClientMessage(playerid, 0x00FF00FF, "You have completed your mission!"); return 1; }
CallLocalFunction("OnPlayerFinishMission", "d", playerid);