top of page
FE Helicopter Script

Fe Helicopter Script • Limited Time

function OnTimer(timerID) if timerID == "FuelExpire" then SetPlayerVar("HELI_FUEL_TICK", "0") Notice("Your helicopter fuel has run out. Land safely.") end end Add this to your resource/mount.lua or similar mount definition file.

-- NPC ID: 80001 (Helicopter Pilot) -- Location: Flarine, near hangar function OnTalk( npc ) local dialog = " [Helicopter Pilot]\n Welcome, pilot! I manage your personal helicopter.\n What would you like to do?\n --- 1. Teleport to saved location\n 2. Save current location\n 3. Buy Fuel Barrel (10 min flight)\n 4. Repair helicopter (remove cooldown)\n 5. Exit\n " local choice = Ask( dialog, 5 )

function SaveLocation() local x, y, z = GetPlayerPos() local map = GetMapName() local locData = string.format("%s,%d,%d,%d", map, x, y, z)

if HasFuel() then UseFuel() WarpPlayer(map, x, y, z) Say("Lifting off! Teleporting now.") else Say("No fuel! Buy a Fuel Barrel from me first.") end end FE Helicopter Script

function TeleportMenu() local loc1 = GetPlayerVar("HELI_SAVE_1") local loc2 = GetPlayerVar("HELI_SAVE_2") local loc3 = GetPlayerVar("HELI_SAVE_3")

function BuyFuel() if CountItem(750002) < 1 then if GetPlayerGold() >= 50000 then TakeGold(50000) GiveItem(750002, 1) Say("Here's a Fuel Barrel. Lasts 10 flight minutes.") else Say("Need 50,000 penya.") end else Say("You already have fuel.") end end

if choice == 1 then TeleportMenu() elseif choice == 2 then SaveLocation() elseif choice == 3 then BuyFuel() elseif choice == 4 then RepairHeli() else Say("Fly safe, pilot!") end end I manage your personal helicopter

local slot = Ask("Save to slot (1,2,3):", 3) if slot == 1 then SetPlayerVar("HELI_SAVE_1", locData) SetPlayerVar("HELI_NAME_1", map) elseif slot == 2 then SetPlayerVar("HELI_SAVE_2", locData) SetPlayerVar("HELI_NAME_2", map) elseif slot == 3 then SetPlayerVar("HELI_SAVE_3", locData) SetPlayerVar("HELI_NAME_3", map) end Say("Location saved to slot "..slot) end

if choice == 1 and loc1 then TeleportTo(loc1) elseif choice == 2 and loc2 then TeleportTo(loc2) elseif choice == 3 and loc3 then TeleportTo(loc3) else Say("No location saved there!") end end

local menu = string.format("Saved locations:\n1. %s\n2. %s\n3. %s\n\nEnter number:", loc1 or "Empty", loc2 or "Empty", loc3 or "Empty") local choice = Ask(menu, 3) Buy Fuel Barrel (10 min flight)\n 4

function TeleportTo(locData) local parts = Split(locData, ",") local map = parts[1] local x = tonumber(parts[2]) local y = tonumber(parts[3]) local z = tonumber(parts[4])

| File | Path | |------|------| | Helicopter model | model/vehicle/helicopter.o3d | | Texture | model/vehicle/heli_texture.dds | | Icon | icon/item/heli_icon.bmp | | Sound | sound/heli_rotor.wav | | Effect | effect/heli_fly_smoke.efx |

INSERT INTO `item_proto` (`id`, `name`, `type`, `typeid`, `icon`, `desc`, `price_sell`, `price_buy`, `sex`, `job`, `level`, `attack`, `defence`, `range`, `slot`, `max_stack`, `apply`, `value`, `duration`) VALUES (750001, 'Helicopter License', 16, 1, 'heli_icon.bmp', 'Allows you to summon a personal helicopter. Right-click to ride.', 100000, 500000, 2, 0, 20, 0, 0, 0, 0, 1, 0, 0, 0); Adjust id to an unused value in your server. typeid 1 = mount. 2. Lua Script – NPC “Helicopter Pilot” (for teleport & fuel) Save as script_helicopter.lua in your scripts/npc/ folder.

function UseFuel() local fuel = CountItem(750002) if fuel > 0 then RemoveItem(750002, 1) SetPlayerVar("HELI_FUEL_TICK", "1") SetTimer("FuelExpire", 600000) -- 10 min in ms end end

AddMount(750001, name = "Attack Helicopter", model = "model/helicopter.o3d", -- you need to create or rename a model speed = 50, -- base walk speed ~12, so 50 = very fast fly = true, canattack = false, -- no attacking while mounted cooldown = 300, -- seconds before remount effects = effect = "fly_smoke", attach = "engine" , effect = "rotor_blur", attach = "rotor" , sound = "heli_rotor.wav", fuelItem = 750002, -- optional fuel consumption check fuelInterval = 600, -- seconds per fuel unit onFuelEmpty = function(player) Dismount(player) Message(player, "Out of fuel! Helicopter lands.") end ) You need these client assets (or substitute existing ones):

bottom of page