-- ***************************************************************************** -- ** FoxZone Training ** -- ********************************************************* FoxRangesArray = {} compteur = 0 for index, foxzoneconfig in ipairs(FoxRangesConfig) do if foxzoneconfig.enable == true then compteur = compteur + 1 jtff_log.info('creation Fox Zone : '.. foxzoneconfig.name..'...',"FOX_ZONE") local objFoxZone = FOX:New() objFoxZone:SetExplosionPower(0.01) :SetExplosionDistance(foxzoneconfig.distance_small_missile or 100) :SetExplosionDistanceBigMissiles(foxzoneconfig.distance_big_missile or 150) :SetDefaultMissileDestruction(foxzoneconfig.missileDestruction) :SetDefaultLaunchAlerts(foxzoneconfig.missileLaunchMessages) :SetDefaultLaunchMarks(false) if foxzoneconfig.launchZoneGroupName then objFoxZone.objLaunchZone = ZONE_POLYGON:New( 'FOX_LAUNCH_ZONE_'..foxzoneconfig.name, GROUP:FindByName(foxzoneconfig.launchZoneGroupName)) objFoxZone:AddLaunchZone(objFoxZone.objLaunchZone) else if foxzoneconfig.launchZoneName then objFoxZone.objLaunchZone = ZONE:New(foxzoneconfig.launchZoneName) objFoxZone:AddLaunchZone(objFoxZone.objLaunchZone) end end jtff_log.info('Launch zone Polygon created : '.. objFoxZone.objLaunchZone:GetName() ..'...',"FOX_ZONE") if ((foxzoneconfig.drawzone == true) or false) then objFoxZone.objLaunchZone:DrawZone( -1, {1,0,0}, 1, {1,0,0}, 0.10, 4, true, nil ) objFoxZone.objLaunchZone:GetCoordinate():TextToAll( "Missile trainer " .. foxzoneconfig.name, -1, {1,0,0}, 1, {1,0,0}, 0, 20, true ) end if foxzoneconfig.safeZoneGroupName then objFoxZone.objSafeZone = ZONE_POLYGON:New( 'FOX_SAFE_ZONE_'..foxzoneconfig.name, GROUP:FindByName(foxzoneconfig.safeZoneGroupName)) objFoxZone:AddSafeZone(objFoxZone.objSafeZone) jtff_log.info('Safe zone Polygon created : '.. objFoxZone.objSafeZone:GetName() ..'...',"FOX_ZONE") else if foxzoneconfig.safeZoneName then objFoxZone.objSafeZone = ZONE:New(foxzoneconfig.safeZoneName) objFoxZone:AddSafeZone(objFoxZone.objSafeZone) end end if foxzoneconfig.debug then objFoxZone:SetDebugOn() end objFoxZone.menudisabled = foxzoneconfig.f10Menu == false objFoxZone:SetDisableF10Menu(objFoxZone.menudisabled) objFoxZone.customconfig = foxzoneconfig -- **** Message to client ***** function objFoxZone:OnAfterEnterSafeZone(From, Event, To, player) local message = '[' .. player.name .. '] You\'re entering in the missile trainer area ' .. foxzoneconfig.name MESSAGE:NewType(message, MESSAGE.Type.Overview):ToClient(player.client) end function objFoxZone:OnAfterExitSafeZone(From, Event, To, player) local message = '[' .. player.name .. '] You\'re leaving the missile trainer area ' .. foxzoneconfig.name MESSAGE:NewType(message, MESSAGE.Type.Overview):ToClient(player.client) end function objFoxZone:OnAfterMissileDestroyed(From, Event, To, missile) local unitTargeted = missile.targetUnit -- #Wrapper.Unit#UNIT local playerTargeted = missile.targetPlayer -- #FOX.PlayerData local unitShooter = missile.shooterUnit -- #Wrapper.Unit#UNIT local missileType = missile.missileType -- string local missileName = missile.missileName -- string local playerNameTargeted = playerTargeted.name -- string local clientShooter = CLIENT:Find(unitShooter:GetDCSObject(), '', false) local message = '' if (clientShooter) then local playerNameShooter = clientShooter:GetPlayerName() message = playerNameTargeted .. ' HAS BEEN SHOT DOWN BY ' .. playerNameShooter else message = playerNameTargeted .. ' HAS BEEN SHOT DOWN BY ' .. unitShooter:GetName() end jtff_log.info(message,"FOX_ZONE") Set_CLIENT:ForEachClientInZone(objFoxZone.objSafeZone, function(clientInZone) if clientInZone:IsAlive() then MESSAGE:NewType(message, MESSAGE.Type.Update):ToClient(clientInZone) end end) end -- ***************************** FoxRangesArray[compteur] = objFoxZone FoxRangesArray[compteur]:Start() end end