31.05.2010, 00:27
can someone edit this and take out the start engine function and take out the menu and make it so like when i go to gas station i type /refuel and vehicle gets refilled
Код:
/* .:: Vehicle Functions ::. .:: Coded by HomerJay ::. .:: Version: V3 ::. .:: © Copyrights X-Tras.Net ::. */ #include <a_samp> #define YELLOW 0xFFFF00AA #define WHITE 0xFFFFFFAA #define MAX_GAS 100 // Change as u wanna #define GAS_PRICE 20 // Per liter new VehicleGas[MAX_VEHICLES]; new VehicleStarted[MAX_VEHICLES]; new Filling[MAX_PLAYERS]; new Menu:Gas; new FuelTimer; new RefillTimer; new VehicleTittle[][] = { "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer 1", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer 2", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic", "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune", "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer 3", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "LSPD Car", "SFPD Car", "LVPD Car", "Police Ranger", "Picador", "S.W.A.T Tank", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage Trailer 1", "Luggage Trailer 2", "Stairs Trailer", "Boxville", "Utility Trailer 1", "Utility Trailer 2" }; forward FuelUpdate(); forward SpeedUpdate(); forward IsAtGasStation(playerid); forward ReFill(playerid); forward Start(playerid); public OnFilterScriptInit() { FuelTimer = SetTimer("FuelUpdate",11000,1); for(new c;c<MAX_VEHICLES;c++) { VehicleGas[c] = 100; } Gas = CreateMenu("~r~G~w~as Station",1,50,220,200,200); AddMenuItem(Gas,0,"Natural 95"); AddMenuItem(Gas,0,"Normal 98"); AddMenuItem(Gas,0,"Diesel"); AddMenuItem(Gas,0,"Exit"); return 1; } public OnFilterScriptExit() { DestroyMenu(Gas); KillTimer(FuelTimer); return 1; } public OnPlayerConnect(playerid) { Filling[playerid] = 0; return 1; } public OnVehicleSpawn(vehicleid) { VehicleGas[vehicleid] = 100; return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { new VID = GetPlayerVehicleID(playerid); new MOD = GetVehicleModel(playerid); if(strcmp(cmdtext, "/gas", true) == 0) { if(IsPlayerConnected(playerid)) { if(!IsPlayerInAnyVehicle(playerid) || MOD == 510 || MOD == 509 || MOD == 481) { SendClientMessage(playerid,WHITE,"* You are not in a Vehicle / You can't fill that Vehicle!"); return 1; } if(!IsAtGasStation(playerid)) { SendClientMessage(playerid,WHITE,"* You are not at the Gas Station!"); return 1; } if(VehicleGas[VID] < MAX_GAS) { ShowMenuForPlayer(Gas,playerid); TogglePlayerControllable(playerid,0); } else { SendClientMessage(playerid,WHITE,"* The Tank is full!"); } } return 1; } if(strcmp(cmdtext, "/exit", true) == 0) { if(IsPlayerConnected(playerid)) { if(IsPlayerInAnyVehicle(playerid)) { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid,YELLOW,"* You left the vehicle."); TogglePlayerControllable(playerid,1); } else { SendClientMessage(playerid,WHITE,"* You are not in a Vehicle!"); } } return 1; } return 0; } public OnPlayerStateChange(playerid, newstate, oldstate) { new VID = GetPlayerVehicleID(playerid); new MOD = GetVehicleModel(playerid); new string[128]; if(newstate == PLAYER_STATE_DRIVER) { format(string, sizeof(string), "~g~%s",VehicleTittle[GetVehicleModel(VID)-400]); GameTextForPlayer(playerid,string,3500,1); if(VehicleStarted[VID] == 0 && MOD != 510 && MOD != 509 && MOD != 481) { TogglePlayerControllable(playerid,0); SendClientMessage(playerid,WHITE,"* This Vehicle is not Started yet. You can start it with key: 'TAB'"); } else { SendClientMessage(playerid,YELLOW,"* This Vehicle is already started!"); } if(VehicleGas[VID] < 1) { SendClientMessage(playerid,WHITE,"* No fuel in Vehicle!"); } } return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(newkeys == KEY_ACTION) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { if(IsPlayerConnected(playerid)) { new VID = GetPlayerVehicleID(playerid); if(VehicleStarted[VID] == 0) { SendClientMessage(playerid,YELLOW,"* Starting Vehicle ..."); SetTimerEx("Start",3500,0,"i",playerid); } } } } return 1; } public OnPlayerSelectedMenuRow(playerid, row) { new Menu:Current = GetPlayerMenu(playerid); if(Current == Gas) { switch(row) { case 0: { GameTextForPlayer(playerid,"~b~Natural 95 ~n~ ~w~Refueling vehicle ~n~~g~Please wait..",4000,3); RefillTimer = SetTimerEx("ReFill",2000,1,"i",playerid); Filling[playerid] = 1; TogglePlayerControllable(playerid,0); } case 1: { GameTextForPlayer(playerid,"~b~Natural 98 ~n~ ~w~Refueling vehicle ~n~~g~Please wait..",4000,3); RefillTimer = SetTimerEx("ReFill",2000,1,"i",playerid); Filling[playerid] = 1; TogglePlayerControllable(playerid,0); } case 2: { GameTextForPlayer(playerid,"~b~Super Diesel ~n~ ~w~Refueling vehicle ~n~~g~Please wait..",4000,3); RefillTimer = SetTimerEx("ReFill",2000,1,"i",playerid); Filling[playerid] = 1; TogglePlayerControllable(playerid,0); } case 3: { HideMenuForPlayer(Gas,playerid); TogglePlayerControllable(playerid,1); } } } return 1; } public OnPlayerExitedMenu(playerid) { TogglePlayerControllable(playerid,1); return 1; } public FuelUpdate() { new string[256]; for(new i=0;i<MAX_PLAYERS;i++) { new VID = GetPlayerVehicleID(i); new MOD = GetVehicleModel(i); if(GetPlayerState(i) == PLAYER_STATE_DRIVER) { if(IsPlayerConnected(i)) { if(Filling[i] == 0 && VehicleStarted[VID] == 1 && MOD != 510 && MOD != 509 && MOD != 481) { if(VehicleGas[VID] >= 1) { VehicleGas[VID] -= 1; format(string, sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~|~b~FUEL: ~w~%d%|",VehicleGas[VID]); GameTextForPlayer(i,string,11500,3); } else { TogglePlayerControllable(i,0); GameTextForPlayer(i,"~n~~n~~n~~n~~b~Your car is without fuel!",2500,3); SendClientMessage(i,WHITE,"* Your Vehicle is without an Gas! Use '/exit' to get out."); } } } } } return 1; } public ReFill(playerid) { new VID = GetPlayerVehicleID(playerid); new string[128]; if(IsPlayerConnected(playerid)) { if(IsPlayerInAnyVehicle(playerid)) { if(VehicleGas[VID] < 100) { if(GetPlayerMoney(playerid) >= 200) { VehicleGas[VID] += 5; format(string, sizeof(string),"~n~~n~~n~~y~FUEL: ~w~%d%",VehicleGas[VID]); GameTextForPlayer(playerid,string,2000,3); GivePlayerMoney(playerid,-200); } else { format(string, sizeof(string),"* You don't have $%d to pay!",GAS_PRICE); SendClientMessage(playerid,WHITE,string); TogglePlayerControllable(playerid,1); Filling[playerid] = 0; KillTimer(RefillTimer); } } else { SendClientMessage(playerid,YELLOW,"* Your Vehicle has been successfully Filled Up!"); VehicleGas[VID] = 100; Filling[playerid] = 0; KillTimer(RefillTimer); TogglePlayerControllable(playerid,1); } } } return 1; } public Start(playerid) { new VID = GetPlayerVehicleID(playerid); new RandStart = random(2); if(IsPlayerConnected(playerid)) { if(IsPlayerInAnyVehicle(playerid)) { switch(RandStart) { case 0: { VehicleStarted[VID] = 1; TogglePlayerControllable(playerid,1); SendClientMessage(playerid,YELLOW,"* Vehicle successfully Started!"); } case 1: { SendClientMessage(playerid,WHITE,"* Starting Vehicle Failed!"); } } } } return 1; } public IsAtGasStation(playerid) { if(IsPlayerConnected(playerid)) { if(PlayerToPoint(playerid,1595.5406, 2198.0520, 10.3863,10)) { return 1; } else if(PlayerToPoint(playerid,2202.0649, 2472.6697, 10.5677,10)) { return 1; } else if(PlayerToPoint(playerid,2115.1929, 919.9908, 10.5266,10)) { return 1; } else if(PlayerToPoint(playerid,2640.7209, 1105.9565, 10.5274,10)) { return 1; } else if(PlayerToPoint(playerid,608.5971, 1699.6238, 6.9922,10)) { return 1; } else if(PlayerToPoint(playerid,618.4878, 1684.5792, 6.9922,10)) { return 1; } else if(PlayerToPoint(playerid,2146.3467, 2748.2893, 10.5245,10)) { return 1; } else if(PlayerToPoint(playerid,-1679.4595, 412.5129, 6.9973,10)) { return 1; } else if(PlayerToPoint(playerid,-1327.5607, 2677.4316, 49.8093,10)) { return 1; } else if(PlayerToPoint(playerid,-1470.0050, 1863.2375, 32.3521,10)) { return 1; } else if(PlayerToPoint(playerid,-2409.2200, 976.2798, 45.2969,10)) { return 1; } else if(PlayerToPoint(playerid,-2244.1396, -2560.5833, 31.9219,10)) { return 1; } else if(PlayerToPoint(playerid,-1606.0544, -2714.3083, 48.5335,10)) { return 1; } else if(PlayerToPoint(playerid,1937.4293, -1773.1865, 13.3828,10)) { return 1; } else if(PlayerToPoint(playerid,-91.3854, -1169.9175, 2.4213,10)) { return 1; } else if(PlayerToPoint(playerid,1383.4221, 462.5385, 20.1506,10)) { return 1; } else if(PlayerToPoint(playerid,660.4590, -565.0394, 16.3359,10)) { return 1; } else if(PlayerToPoint(playerid,1381.7206, 459.1907, 20.3452,10)) { return 1; } else if(PlayerToPoint(playerid,-1605.7156, -2714.4573, 48.5335,10)) { return 1; } } return 0; } PlayerToPoint(playerid,Float:x,Float:y,Float:z,radius) //Not my script { if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius) { return 1; } return 0; } GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z) { new Float:x1,Float:y1,Float:z1; new Float:tmpdis; GetPlayerPos(playerid,x1,y1,z1); tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z1)),2)); return floatround(tmpdis); }