mirror of
https://github.com/iTracerFacer/DCS_MissionDev.git
synced 2025-12-03 04:14:46 +00:00
126 lines
3.9 KiB
Lua
126 lines
3.9 KiB
Lua
-- Simple AFAC Test Script
|
|
-- This is a minimal version to test if scripts load at all
|
|
|
|
-- Test if script loads
|
|
trigger.action.outText("TEST SCRIPT: Loading AFAC test...", 15)
|
|
env.info("AFAC TEST: Script is loading")
|
|
|
|
-- Basic data structure
|
|
AFAC = {
|
|
pilots = {},
|
|
debug = true
|
|
}
|
|
|
|
-- Simple logging
|
|
function AFAC.log(message)
|
|
env.info("AFAC TEST: " .. tostring(message))
|
|
trigger.action.outText("AFAC: " .. tostring(message), 5)
|
|
end
|
|
|
|
AFAC.log("Test script initialized")
|
|
|
|
-- Simple aircraft check
|
|
AFAC.afacTypes = {
|
|
"UH-1H"
|
|
}
|
|
|
|
function AFAC.isAFAC(unit)
|
|
if not unit then return false end
|
|
local unitType = unit:getTypeName()
|
|
AFAC.log("Checking aircraft type: " .. unitType)
|
|
|
|
for _, afacType in ipairs(AFAC.afacTypes) do
|
|
if unitType == afacType then
|
|
AFAC.log("MATCH FOUND: " .. unitType .. " is AFAC!")
|
|
return true
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
|
|
function AFAC.addPilot(unit)
|
|
local unitName = unit:getName()
|
|
AFAC.log("Adding AFAC pilot: " .. unitName)
|
|
|
|
local groupId = unit:getGroup():getID()
|
|
trigger.action.outTextForGroup(groupId, "AFAC ACTIVE: " .. unit:getTypeName(), 20)
|
|
|
|
-- Add simple F10 menu
|
|
local mainMenu = missionCommands.addSubMenuForGroup(groupId, "AFAC TEST")
|
|
missionCommands.addCommandForGroup(groupId, "Test Command", mainMenu, function()
|
|
trigger.action.outTextForGroup(groupId, "AFAC Test Menu Works!", 10)
|
|
end)
|
|
|
|
AFAC.pilots[unitName] = unit
|
|
end
|
|
|
|
-- Event handler
|
|
AFAC.EventHandler = {}
|
|
|
|
function AFAC.EventHandler:onEvent(event)
|
|
AFAC.log("Event received: " .. tostring(event.id))
|
|
|
|
if event.id == world.event.S_EVENT_PLAYER_ENTER_UNIT then
|
|
AFAC.log("Player entered unit event")
|
|
local unit = event.initiator
|
|
|
|
if unit then
|
|
AFAC.log("Unit type: " .. unit:getTypeName())
|
|
if AFAC.isAFAC(unit) then
|
|
AFAC.log("AFAC detected, adding pilot")
|
|
AFAC.addPilot(unit)
|
|
end
|
|
end
|
|
end
|
|
|
|
if event.id == world.event.S_EVENT_BIRTH then
|
|
AFAC.log("Birth event")
|
|
local unit = event.initiator
|
|
|
|
if unit and Object.getCategory(unit) == Object.Category.UNIT then
|
|
local objDesc = unit:getDesc()
|
|
if objDesc.category == Unit.Category.AIRPLANE or objDesc.category == Unit.Category.HELICOPTER then
|
|
AFAC.log("Aircraft born: " .. unit:getTypeName())
|
|
if AFAC.isAFAC(unit) then
|
|
timer.scheduleFunction(function(args)
|
|
if args[1]:isActive() then
|
|
AFAC.addPilot(args[1])
|
|
end
|
|
end, {unit}, timer.getTime() + 2)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Add event handler
|
|
world.addEventHandler(AFAC.EventHandler)
|
|
AFAC.log("Event handler added")
|
|
|
|
-- Check existing units
|
|
timer.scheduleFunction(function()
|
|
AFAC.log("Checking existing units...")
|
|
|
|
for coalitionId = 1, 2 do
|
|
local heliGroups = coalition.getGroups(coalitionId, Group.Category.HELICOPTER)
|
|
AFAC.log("Found " .. #heliGroups .. " helicopter groups for coalition " .. coalitionId)
|
|
|
|
for _, group in ipairs(heliGroups) do
|
|
local units = group:getUnits()
|
|
if units then
|
|
for _, unit in ipairs(units) do
|
|
if unit and unit:isActive() then
|
|
AFAC.log("Found helicopter: " .. unit:getTypeName())
|
|
if AFAC.isAFAC(unit) and unit:getPlayerName() then
|
|
AFAC.log("Found player AFAC: " .. unit:getName())
|
|
AFAC.addPilot(unit)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end, nil, timer.getTime() + 3)
|
|
|
|
AFAC.log("AFAC Test Script loaded successfully!")
|
|
trigger.action.outText("AFAC Test Script loaded!", 10) |