diff options
-rw-r--r-- | Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut | 370 | ||||
-rw-r--r-- | Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_forwardbase_kodai_fd.nut | 8 |
2 files changed, 217 insertions, 161 deletions
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut index 5e5692e0..75d89a2d 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut +++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut @@ -181,23 +181,29 @@ void function OnNpcDeath( entity victim, entity attacker, var damageInfo ) if ( findIndex != -1 ) { file.spawnedNPCs.remove( findIndex ) - SetGlobalNetInt( "FD_AICount_Current", file.spawnedNPCs.len() ) - string name = victim.GetTargetName() - int aitype = FD_GetAITypeID_ByString(name) - try + switch(FD_GetAITypeID_ByString(victim.GetTargetName())) //FD_GetAINetIndex_byAITypeID does not support all titan ids { - if (GetGlobalNetInt(FD_GetAINetIndex_byAITypeID( aitype )) > -1) - SetGlobalNetInt(FD_GetAINetIndex_byAITypeID( aitype ), GetGlobalNetInt(FD_GetAINetIndex_byAITypeID( aitype )) - 1) // lower scoreboard number by 1 - } - catch (exception) - { - print (exception) - } + case(eFD_AITypeIDs.TITAN): + case(eFD_AITypeIDs.RONIN): + case(eFD_AITypeIDs.NORTHSTAR): + case(eFD_AITypeIDs.SCORCH): + case(eFD_AITypeIDs.TONE): + case(eFD_AITypeIDs.ION): + case(eFD_AITypeIDs.MONARCH): + case(eFD_AITypeIDs.LEGION): + case(eFD_AITypeIDs.TITAN_SNIPER): + SetGlobalNetInt("FD_AICount_Titan",GetGlobalNetInt("FD_AICount_Titan")-1) + break + default: + string netIndex = FD_GetAINetIndex_byAITypeID(FD_GetAITypeID_ByString(victim.GetTargetName())) + if(netIndex != "") + SetGlobalNetInt(netIndex,GetGlobalNetInt(netIndex)-1) + } } if ( victim.GetOwner() == attacker || !attacker.IsPlayer() || attacker == victim ) return - + int playerScore = 0 int money = 0 if ( victim.IsNPC() ) @@ -242,6 +248,8 @@ void function OnNpcDeath( entity victim, entity attacker, var damageInfo ) attackerInfo.attacker.AddToPlayerGameStat( PGS_DEFENSE_SCORE, playerScore ) // i assume this is how support score gets added } } + + } void function RateSpawnpoints_FD(int _0, array<entity> _1, int _2, entity _3){} @@ -317,7 +325,7 @@ array<entity> function getRoute(string routeName) return ret } -array<int> function getEnemyTypesForWave(int wave) +array<int> function getHighestEnemyAmountsForWave(int waveIndex) { table<int,int> npcs npcs[eFD_AITypeIDs.TITAN]<-0 @@ -342,7 +350,7 @@ array<int> function getEnemyTypesForWave(int wave) // npcs[eFD_AITypeIDs.TITAN_SNIPER]<-0 - foreach(WaveEvent e in waveEvents[wave]) + foreach(WaveEvent e in waveEvents[waveIndex]) { if(e.spawnEvent.spawnAmount==0) continue @@ -364,9 +372,8 @@ array<int> function getEnemyTypesForWave(int wave) } } array<int> ret = [-1,-1,-1,-1,-1,-1,-1,-1,-1] - foreach(int key,int value in npcs){ - printt("Key",key,"has value",value) - SetGlobalNetInt(FD_GetAINetIndex_byAITypeID(key),value) + foreach(int key,int value in npcs) + { if(value==0) continue int lowestArrayIndex = 0 @@ -391,6 +398,72 @@ array<int> function getEnemyTypesForWave(int wave) return ret } +void function SetEnemyAmountNetVars(int waveIndex) +{ + int total = 0 + table<int,int> npcs + npcs[eFD_AITypeIDs.TITAN]<-0 + npcs[eFD_AITypeIDs.TITAN_NUKE]<-0 + npcs[eFD_AITypeIDs.TITAN_ARC]<-0 + npcs[eFD_AITypeIDs.TITAN_MORTAR]<-0 + npcs[eFD_AITypeIDs.GRUNT]<-0 + npcs[eFD_AITypeIDs.SPECTRE]<-0 + npcs[eFD_AITypeIDs.SPECTRE_MORTAR]<-0 + npcs[eFD_AITypeIDs.STALKER]<-0 + npcs[eFD_AITypeIDs.REAPER]<-0 + npcs[eFD_AITypeIDs.TICK]<-0 + npcs[eFD_AITypeIDs.DRONE]<-0 + npcs[eFD_AITypeIDs.DRONE_CLOAK]<-0 + // npcs[eFD_AITypeIDs.RONIN]<-0 + // npcs[eFD_AITypeIDs.NORTHSTAR]<-0 + // npcs[eFD_AITypeIDs.SCORCH]<-0 + // npcs[eFD_AITypeIDs.LEGION]<-0 + // npcs[eFD_AITypeIDs.TONE]<-0 + // npcs[eFD_AITypeIDs.ION]<-0 + // npcs[eFD_AITypeIDs.MONARCH]<-0 + // npcs[eFD_AITypeIDs.TITAN_SNIPER]<-0 + + + foreach(WaveEvent e in waveEvents[waveIndex]) + { + if(e.spawnEvent.spawnAmount==0) + continue + switch(e.spawnEvent.spawnType) + { + case(eFD_AITypeIDs.TITAN): + case(eFD_AITypeIDs.RONIN): + case(eFD_AITypeIDs.NORTHSTAR): + case(eFD_AITypeIDs.SCORCH): + case(eFD_AITypeIDs.TONE): + case(eFD_AITypeIDs.ION): + case(eFD_AITypeIDs.MONARCH): + case(eFD_AITypeIDs.LEGION): + case(eFD_AITypeIDs.TITAN_SNIPER): + npcs[eFD_AITypeIDs.TITAN]+=e.spawnEvent.spawnAmount + break + default: + npcs[e.spawnEvent.spawnType]+=e.spawnEvent.spawnAmount + + } + total+= e.spawnEvent.spawnAmount + } + SetGlobalNetInt("FD_AICount_Titan",npcs[eFD_AITypeIDs.TITAN]) + SetGlobalNetInt("FD_AICount_Titan_Nuke",npcs[eFD_AITypeIDs.TITAN_NUKE]) + SetGlobalNetInt("FD_AICount_Titan_Mortar",npcs[eFD_AITypeIDs.TITAN_MORTAR]) + SetGlobalNetInt("FD_AICount_Titan_Arc",npcs[eFD_AITypeIDs.TITAN_ARC]) + SetGlobalNetInt("FD_AICount_Grunt",npcs[eFD_AITypeIDs.GRUNT]) + SetGlobalNetInt("FD_AICount_Spectre",npcs[eFD_AITypeIDs.SPECTRE]) + SetGlobalNetInt("FD_AICount_Spectre_Mortar",npcs[eFD_AITypeIDs.SPECTRE_MORTAR]) + SetGlobalNetInt("FD_AICount_Stalker",npcs[eFD_AITypeIDs.STALKER]) + SetGlobalNetInt("FD_AICount_Reaper",npcs[eFD_AITypeIDs.REAPER]) + SetGlobalNetInt("FD_AICount_Ticks",npcs[eFD_AITypeIDs.TICK]) + SetGlobalNetInt("FD_AICount_Drone",npcs[eFD_AITypeIDs.DRONE]) + SetGlobalNetInt("FD_AICount_Drone_Cloak",npcs[eFD_AITypeIDs.DRONE_CLOAK]) + SetGlobalNetInt("FD_AICount_Current",total) + SetGlobalNetInt("FD_AICount_Total",total) + +} + bool function runWave(int waveIndex,bool shouldDoBuyTime) @@ -399,6 +472,7 @@ bool function runWave(int waveIndex,bool shouldDoBuyTime) SetGlobalNetInt("FD_currentWave",waveIndex) file.havesterWasDamaged = false file.harvesterShieldDown = false + SetEnemyAmountNetVars(waveIndex) for(int i = 0; i<20;i++)//Number of npc type ids { file.harvesterDamageSource.append(0.0) @@ -408,14 +482,15 @@ bool function runWave(int waveIndex,bool shouldDoBuyTime) player.diedThisRound = false player.scoreThisRound = 0 } - array<int> enemys = getEnemyTypesForWave(waveIndex) + array<int> enemys = getHighestEnemyAmountsForWave(waveIndex) + foreach(entity player in GetPlayerArray()) { Remote_CallFunction_NonReplay(player,"ServerCallback_FD_AnnouncePreParty",enemys[0],enemys[1],enemys[2],enemys[3],enemys[4],enemys[5],enemys[6],enemys[7],enemys[8]) } if(shouldDoBuyTime) { - + SetGlobalNetInt("FD_waveState",WAVE_STATE_BREAK) OpenBoostStores() foreach(entity player in GetPlayerArray()) Remote_CallFunction_NonReplay(player,"ServerCallback_FD_NotifyStoreOpen") @@ -429,10 +504,10 @@ bool function runWave(int waveIndex,bool shouldDoBuyTime) CloseBoostStores() MessageToTeam(TEAM_MILITIA,eEventNotifications.FD_StoreClosing) } - + //SetGlobalNetTime("FD_nextWaveStartTime",Time()+10) wait 10 - + SetGlobalNetInt("FD_waveState",WAVE_STATE_INCOMING) foreach(entity player in GetPlayerArray()) { Remote_CallFunction_NonReplay(player,"ServerCallback_FD_ClearPreParty") @@ -440,12 +515,13 @@ bool function runWave(int waveIndex,bool shouldDoBuyTime) } SetGlobalNetBool("FD_waveActive",true) MessageToTeam(TEAM_MILITIA,eEventNotifications.FD_AnnounceWaveStart) - - + SetGlobalNetInt("FD_waveState",WAVE_STATE_BREAK) + //main wave loop - + thread SetWaveStateReady() foreach(WaveEvent event in waveEvents[waveIndex]) { + if(event.shouldThread) thread event.eventFunction(event.smokeEvent,event.spawnEvent,event.waitEvent,event.soundEvent) else @@ -455,7 +531,7 @@ bool function runWave(int waveIndex,bool shouldDoBuyTime) } waitUntilLessThanAmountAlive_expensive(0) - + SetGlobalNetInt("FD_waveState",WAVE_STATE_COMPLETE) if(!IsAlive(fd_harvester.harvester)) { float totalDamage = 0.0 @@ -632,6 +708,12 @@ bool function runWave(int waveIndex,bool shouldDoBuyTime) } +void function SetWaveStateReady(){ + wait 5 + SetGlobalNetInt("FD_waveState",WAVE_STATE_IN_PROGRESS) +} + + void function OnHarvesterDamaged(entity harvester, var damageInfo) { if ( !IsValid( harvester ) ) @@ -795,7 +877,7 @@ void function HarvesterThink() PlayFactionDialogueToTeam( "fd_baseShieldRecharging", TEAM_MILITIA ) else PlayFactionDialogueToTeam( "fd_baseShieldRechargingShort", TEAM_MILITIA ) - isRegening = true + isRegening = true } float newShieldHealth = ( harvester.GetShieldHealthMax() / GENERATOR_SHIELD_REGEN_TIME * deltaTime ) + harvester.GetShieldHealth() @@ -1082,23 +1164,21 @@ void function singleNav_thread(entity npc, string routeName,int nodesToScip= 0,f void function SquadNav_Thread( array<entity> npcs ,string routeName,int nodesToScip = 0,float nextDistance = 200.0) { - //TODO this function wont stop when noone alive anymore + //TODO this function wont stop when noone alive anymore also it only works half of the time array<entity> routeArray = getRoute(routeName) WaitFrame()//so other code setting up what happens on signals is run before this if(routeArray.len()==0) return - int scippedNodes = 0 + int nodeIndex = 0 foreach(entity node in routeArray) { if(!IsAlive(fd_harvester.harvester)) return - if(scippedNodes < nodesToScip) - { - scippedNodes++ + if(nodeIndex++ < nodesToScip) continue - } + SquadAssaultOrigin(npcs,node.GetOrigin(),nextDistance) } @@ -1498,25 +1578,98 @@ void function spawnSuperSpectre(SmokeEvent smokeEvent,SpawnEvent spawnEvent,Wait thread ReaperMinionLauncherThink(npc) SetTargetName( npc, GetTargetNameForID(spawnEvent.spawnType)) - thread spawnSuperSpectre_threaded(npc) + } void function spawnDroppodGrunts(SmokeEvent smokeEvent,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent) { PingMinimap(spawnEvent.origin.x, spawnEvent.origin.y, 4, 600, 150, 0) - thread CreateTrackedDroppodSoldier(spawnEvent.origin,TEAM_IMC, spawnEvent.route) + entity pod = CreateDropPod( spawnEvent.origin, <0,0,0> ) + SetTeam( pod, TEAM_IMC ) + InitFireteamDropPod( pod ) + waitthread LaunchAnimDropPod( pod, "pod_testpath", spawnEvent.origin, <0,0,0> ) + + string squadName = MakeSquadName( TEAM_IMC, UniqueString( "ZiplineTable" ) ) + array<entity> guys + bool adychecked = false + + for ( int i = 0; i < spawnEvent.spawnAmount; i++ ) + { + entity guy = CreateSoldier( TEAM_IMC, spawnEvent.origin,<0,0,0> ) + + SetTeam( guy, TEAM_IMC ) + guy.EnableNPCFlag( NPC_ALLOW_INVESTIGATE | NPC_ALLOW_HAND_SIGNALS | NPC_ALLOW_FLEE ) + guy.DisableNPCFlag( NPC_ALLOW_PATROL) + DispatchSpawn( guy ) + + guy.SetParent( pod, "ATTACH", true ) + SetSquad( guy, squadName ) + + SetTargetName( guy, GetTargetNameForID(eFD_AITypeIDs.GRUNT)) + AddMinimapForHumans(guy) + file.spawnedNPCs.append(guy) + guys.append( guy ) + } + + ActivateFireteamDropPod( pod, guys ) + SquadNav_Thread(guys,spawnEvent.route) } void function spawnDroppodStalker(SmokeEvent smokeEvent,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent) { PingMinimap(spawnEvent.origin.x, spawnEvent.origin.y, 4, 600, 150, 0) - thread CreateTrackedDroppodStalker(spawnEvent.origin,TEAM_IMC) + entity pod = CreateDropPod( spawnEvent.origin, <0,0,0> ) + SetTeam( pod, TEAM_IMC ) + InitFireteamDropPod( pod ) + waitthread LaunchAnimDropPod( pod, "pod_testpath", spawnEvent.origin, <0,0,0> ) + + string squadName = MakeSquadName( TEAM_IMC, UniqueString( "ZiplineTable" ) ) + array<entity> guys + + for ( int i = 0; i < spawnEvent.spawnAmount; i++ ) + { + entity guy = CreateStalker( TEAM_IMC, spawnEvent.origin,<0,0,0> ) + + SetTeam( guy, TEAM_IMC ) + guy.EnableNPCFlag( NPC_ALLOW_INVESTIGATE | NPC_ALLOW_HAND_SIGNALS | NPC_ALLOW_FLEE ) + guy.DisableNPCFlag( NPC_ALLOW_PATROL) + DispatchSpawn( guy ) + + SetSquad( guy, squadName ) + AddMinimapForHumans(guy) + SetTargetName( guy, GetTargetNameForID(eFD_AITypeIDs.STALKER)) + guys.append( guy ) + } + + ActivateFireteamDropPod( pod, guys ) + SquadNav_Thread(guys,spawnEvent.route) } void function spawnDroppodSpectreMortar(SmokeEvent smokeEvent,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent) { PingMinimap(spawnEvent.origin.x, spawnEvent.origin.y, 4, 600, 150, 0) - thread CreateTrackedDroppodSpectreMortar(spawnEvent.origin,TEAM_IMC) + entity pod = CreateDropPod( spawnEvent.origin, <0,0,0> ) + SetTeam( pod, TEAM_IMC ) + InitFireteamDropPod( pod ) + waitthread LaunchAnimDropPod( pod, "pod_testpath", spawnEvent.origin, <0,0,0> ) + + string squadName = MakeSquadName( TEAM_IMC, UniqueString( "ZiplineTable" ) ) + array<entity> guys + + for ( int i = 0; i < 4; i++ ) + { + entity guy = CreateSpectre( TEAM_IMC, spawnEvent.origin,<0,0,0> ) + + SetTeam( guy, TEAM_IMC ) + DispatchSpawn( guy ) + + SetSquad( guy, squadName ) + SetTargetName( guy, GetTargetNameForID(eFD_AITypeIDs.SPECTRE_MORTAR)) + AddMinimapForHumans(guy) + guys.append( guy ) + } + + ActivateFireteamDropPod( pod, guys ) } void function spawnGenericNPC(SmokeEvent smokeEvent,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent) @@ -1618,134 +1771,21 @@ void function fd_spawnCloakDrone(SmokeEvent smokeEffect,SpawnEvent spawnEvent,Wa void function SpawnTick(SmokeEvent smokeEffect,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent) { PingMinimap(spawnEvent.origin.x, spawnEvent.origin.y, 4, 600, 150, 0) - for (int i = 0; i < floor(spawnEvent.spawnAmount / 4); i++) - { - thread CreateTrackedDroppodTick(spawnEvent.origin, TEAM_IMC, spawnEvent.route) - wait 0.5 - } -} - -/****************************************************************************************\ -####### # # ####### # # ####### # # ####### # ###### ####### ###### -# # # # ## # # # # # # # # # # # -# # # # # # # # # # # # # # # # # -##### # # ##### # # # # ####### ##### # ###### ##### ###### -# # # # # # # # # # # # # # # # -# # # # # ## # # # # # # # # # -####### # ####### # # # # # ####### ####### # ####### # # -\****************************************************************************************/ -void function spawnSuperSpectre_threaded(entity npc) -{ - -} - -void function CreateTrackedDroppodSoldier( vector origin, int team, string route = "") -{ - - - entity pod = CreateDropPod( origin, <0,0,0> ) - SetTeam( pod, team ) - InitFireteamDropPod( pod ) - waitthread LaunchAnimDropPod( pod, "pod_testpath", origin, <0,0,0> ) - - string squadName = MakeSquadName( team, UniqueString( "ZiplineTable" ) ) - array<entity> guys - bool adychecked = false - - for ( int i = 0; i < 4; i++ ) - { - entity guy = CreateSoldier( team, origin,<0,0,0> ) - - SetTeam( guy, team ) - guy.EnableNPCFlag( NPC_ALLOW_PATROL | NPC_ALLOW_INVESTIGATE | NPC_ALLOW_HAND_SIGNALS | NPC_ALLOW_FLEE ) - DispatchSpawn( guy ) - - guy.SetParent( pod, "ATTACH", true ) - SetSquad( guy, squadName ) - - SetTargetName( guy, GetTargetNameForID(eFD_AITypeIDs.GRUNT)) - AddMinimapForHumans(guy) - file.spawnedNPCs.append(guy) - guys.append( guy ) - } - - ActivateFireteamDropPod( pod, guys ) -} - -void function CreateTrackedDroppodSpectreMortar( vector origin, int team) -{ - - - entity pod = CreateDropPod( origin, <0,0,0> ) - SetTeam( pod, team ) - InitFireteamDropPod( pod ) - waitthread LaunchAnimDropPod( pod, "pod_testpath", origin, <0,0,0> ) - - string squadName = MakeSquadName( team, UniqueString( "ZiplineTable" ) ) - array<entity> guys - - for ( int i = 0; i < 4; i++ ) - { - entity guy = CreateSpectre( team, origin,<0,0,0> ) - - SetTeam( guy, team ) - guy.EnableNPCFlag( NPC_ALLOW_PATROL | NPC_ALLOW_INVESTIGATE | NPC_ALLOW_HAND_SIGNALS | NPC_ALLOW_FLEE ) - DispatchSpawn( guy ) - - SetSquad( guy, squadName ) - SetTargetName( guy, GetTargetNameForID(eFD_AITypeIDs.SPECTRE_MORTAR)) - AddMinimapForHumans(guy) - guys.append( guy ) - } - - ActivateFireteamDropPod( pod, guys ) -} -void function CreateTrackedDroppodStalker( vector origin, int team) -{ - - - entity pod = CreateDropPod( origin, <0,0,0> ) - SetTeam( pod, team ) - InitFireteamDropPod( pod ) - waitthread LaunchAnimDropPod( pod, "pod_testpath", origin, <0,0,0> ) - - string squadName = MakeSquadName( team, UniqueString( "ZiplineTable" ) ) - array<entity> guys - - for ( int i = 0; i < 4; i++ ) - { - entity guy = CreateStalker( team, origin,<0,0,0> ) - - SetTeam( guy, team ) - guy.EnableNPCFlag( NPC_ALLOW_PATROL | NPC_ALLOW_INVESTIGATE | NPC_ALLOW_HAND_SIGNALS | NPC_ALLOW_FLEE ) - DispatchSpawn( guy ) - - SetSquad( guy, squadName ) - AddMinimapForHumans(guy) - SetTargetName( guy, GetTargetNameForID(eFD_AITypeIDs.STALKER)) - guys.append( guy ) - } - - ActivateFireteamDropPod( pod, guys ) -} - -void function CreateTrackedDroppodTick( vector origin, int team, string route = "" ) -{ - entity pod = CreateDropPod( origin, <0,0,0> ) - SetTeam( pod, team ) + entity pod = CreateDropPod( spawnEvent.origin, <0,0,0> ) + SetTeam( pod, TEAM_IMC ) InitFireteamDropPod( pod ) - waitthread LaunchAnimDropPod( pod, "pod_testpath", origin, <0,0,0> ) + waitthread LaunchAnimDropPod( pod, "pod_testpath", spawnEvent.origin, <0,0,0> ) - string squadName = MakeSquadName( team, UniqueString( "ZiplineTable" ) ) + string squadName = MakeSquadName( TEAM_IMC, UniqueString( "ZiplineTable" ) ) array<entity> guys - for ( int i = 0; i < 4; i++ ) + for ( int i = 0; i < spawnEvent.spawnAmount; i++ ) { - entity guy = CreateFragDrone( team, origin, <0,0,0> ) + entity guy = CreateFragDrone( TEAM_IMC, spawnEvent.origin, <0,0,0> ) SetSpawnOption_AISettings(guy, "npc_frag_drone_fd") - SetTeam( guy, team ) - guy.EnableNPCFlag( NPC_ALLOW_PATROL | NPC_ALLOW_INVESTIGATE ) + SetTeam( guy, TEAM_IMC ) + guy.EnableNPCFlag( NPC_ALLOW_INVESTIGATE ) guy.EnableNPCMoveFlag(NPCMF_WALK_ALWAYS | NPCMF_PREFER_SPRINT) DispatchSpawn( guy ) AddMinimapForHumans(guy) @@ -1756,8 +1796,24 @@ void function CreateTrackedDroppodTick( vector origin, int team, string route = } ActivateFireteamDropPod( pod, guys ) + SquadNav_Thread(guys,spawnEvent.route) } +/****************************************************************************************\ +####### # # ####### # # ####### # # ####### # ###### ####### ###### +# # # # ## # # # # # # # # # # # +# # # # # # # # # # # # # # # # # +##### # # ##### # # # # ####### ##### # ###### ##### ###### +# # # # # # # # # # # # # # # # +# # # # # ## # # # # # # # # # +####### # ####### # # # # # ####### ####### # ####### # # +\****************************************************************************************/ + + + + + + void function PingMinimap(float x, float y, float duration, float spreadRadius, float ringRadius, int colorIndex) { foreach(entity player in GetPlayerArray()) diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_forwardbase_kodai_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_forwardbase_kodai_fd.nut index 341cfc21..19f7c0e6 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_forwardbase_kodai_fd.nut +++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_forwardbase_kodai_fd.nut @@ -27,8 +27,8 @@ void function initFrontierDefenseData() wave0.append(createDroppodGruntEvent( < 1309, 2122, 1324>, "hillRouteClose")) wave0.append(createDroppodGruntEvent( < 985, -110, 1369>, "hillRouteClose")) wave0.append(createDroppodGruntEvent( < 264, 2840, 968>, "hillRouteClose")) - wave0.append(createDroppodGruntEvent( < 2193, 434, 955>, "hillRouteClose")) - wave0.append(createDroppodGruntEvent( < 909, 3094, 968>, "hillRouteClose")) + wave0.append(createDroppodStalkerEvent( < 2193, 434, 955>, "hillRouteClose")) + wave0.append(createDroppodStalkerEvent( < 909, 3094, 968>, "hillRouteClose")) wave0.append(createWaitForTimeEvent(7)) wave0.append(createWaitUntilAliveEvent(1)) @@ -45,8 +45,8 @@ void function initFrontierDefenseData() wave0.append(createDroppodGruntEvent( < 1309, 2122, 1324>, "hillRouteClose")) wave0.append(createDroppodGruntEvent( < 985, -110, 1369>, "hillRouteClose")) wave0.append(createDroppodGruntEvent( < 264, 2840, 968>, "hillRouteClose")) - wave0.append(createDroppodGruntEvent( < 2193, 434, 955>, "hillRouteClose")) - wave0.append(createDroppodGruntEvent( < 909, 3094, 968>, "hillRouteClose")) + wave0.append(createDroppodStalkerEvent( < 2193, 434, 955>, "hillRouteClose")) + wave0.append(createDroppodStalkerEvent( < 909, 3094, 968>, "hillRouteClose")) wave0.append(createWaitForTimeEvent(7)) wave0.append(createWaitUntilAliveEvent(1)) |