![]() |
|
|||||||
![]() |
|
|
Thread Tools | Display Modes |
|
|
|
#1
|
|||
|
|||
|
I think onTickGame method should be used to repeat target pos checks every 60 seconds.
|
|
#2
|
|||
|
|||
|
Hi guys,
Would this code look ok for making the AI airgroups re-check their targets ever 34 seconds? Code:
/////////////////check ai air waypoints and set new task ever 34 sec.
AiAirGroup airGroup = actor as AiAirGroup;
if (Time.tickCounter ()% 34 == 0) / / 34 Ticks should be a second
if ((airGroup != null) || (1) || (2))
{
SetNewTask(airGroup);
AiAirGroup[] eGroups = GamePlay.gpAirGroups((airGroup.Army() == 1) ? 2 : 1);
if (eGroups != null)
foreach (AiAirGroup eGroup in eGroups)
{
if (eGroup != null)
{
if ((eGroup.hasCourseWeapon()) && ((airGroup.isAircraftType(AircraftType.Fighter)) || (airGroup.isAircraftType(AircraftType.HeavyFighter))))
{
AiWayPoint[] chkWP = eGroup.GetWay();
bool res = true;
foreach (AiWayPoint eWP in chkWP)
{
AiAirWayPoint aAWP = (eWP as AiAirWayPoint);
if ((aAWP.Action != AiAirWayPointType.HUNTING) || (aAWP.Action != AiAirWayPointType.NORMFLY) || ((aAWP.Action == AiAirWayPointType.AATTACK_BOMBERS) && (aAWP.Target != null) && (aAWP.Target.IsValid())) || ((aAWP.Action == AiAirWayPointType.AATTACK_BOMBERS) && (aAWP.Target != null) && (aAWP.Target.IsValid())))
{
res = false;
break;
}
}
if (res)
{
SetNewFighterTask(eGroup, airGroup);
}
}
}
}
}
__________________
__________________ Win7, 64bit Ultra Asus P8P67Pro MB Intel i7-2600K Coursair 16GB (4x 4GB), DDR3-1600MHz Gainward Nvidia 580GTX 3GB DDR5 850-Watt Modular Power Supply WIN7 and COD on Gskill SSD 240GB 40" Panasonic LCD TrackIR5 + Thrustmaster Warthog stick, throttle & pedals |
|
#3
|
|||
|
|||
|
Do you insert this into OnTickGame method?
Maybe you need to delete an old waypoint after the new one is created. Checking every second (30 ticks ~ 1 second) could be too much load on server if you have many airgroups. I know that bombers look for targets within 5 km radius automatically. Probably fighters do at least the same. Therefore you do not have to adjust waypoint every second. |
![]() |
|
|