added mission nod4a

Polish nod04a a bit
This commit is contained in:
Alexander Boll
2015-02-09 20:00:38 +01:00
parent 1b31001661
commit 0f0c400657
6 changed files with 1013 additions and 0 deletions

View File

@@ -36,6 +36,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tiberian Dawn Lua scripts",
mods\cnc\maps\nod02b\nod02b.lua = mods\cnc\maps\nod02b\nod02b.lua
mods\cnc\maps\nod03a\nod03a.lua = mods\cnc\maps\nod03a\nod03a.lua
mods\cnc\maps\nod03b\nod03b.lua = mods\cnc\maps\nod03b\nod03b.lua
mods\cnc\maps\nod04a\nod04a.lua = mods\cnc\maps\nod04a\nod04a.lua
mods\cnc\maps\shellmap\shellmap.lua = mods\cnc\maps\shellmap\shellmap.lua
EndProjectSection
EndProject

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

@@ -0,0 +1,704 @@
MapFormat: 7
RequiresMod: cnc
Title: Mao Civil War (a)
Description: A small village friendly to our cause has been increasingly harassed by GDI, and the Brotherhood, wishes you to assist them in their efforts. \n\nSeek out the enemy village and destroy it. The event will be disguised as a GDI attack.
Author: Westwood Studios
Tileset: DESERT
MapSize: 64,64
Bounds: 11,6,46,34
Visibility: MissionSelector
Type: Campaign
Videos:
Briefing: nod4b.vqa
GameLost: deskill.vqa
GameStart: retro.vqa
Options:
Crates: False
Creeps: False
Fog: True
Shroud: True
AllyBuildRadius: False
FragileAlliances: False
StartingCash: 0
ConfigurableStartingUnits: False
ShortGame: False
Players:
PlayerReference@Neutral:
Name: Neutral
OwnsWorld: True
NonCombatant: True
Race: gdi
Allies: Nod
Enemies: GDI
PlayerReference@NodSupporter:
Name: NodSupporter
NonCombatant: True
Race: nod
PlayerReference@GDI:
Name: GDI
Race: gdi
ColorRamp: 31,222,183
Enemies: Nod
PlayerReference@Nod:
Name: Nod
Playable: True
AllowBots: False
Required: True
LockRace: True
Race: nod
LockColor: True
ColorRamp: 3,255,127
LockSpawn: True
LockTeam: True
Enemies: GDI
Actors:
Actor0: t08
Location: 34,20
Owner: Neutral
Actor1: t18
Location: 33,18
Owner: Neutral
Actor2: t18
Location: 33,9
Owner: Neutral
Actor3: t08
Location: 41,5
Owner: Neutral
Actor4: t18
Location: 42,15
Owner: Neutral
Actor5: t08
Location: 45,26
Owner: Neutral
Actor6: t08
Location: 56,29
Owner: Neutral
Actor7: t08
Location: 55,29
Owner: Neutral
Actor8: t08
Location: 51,26
Owner: Neutral
Actor9: t08
Location: 56,18
Owner: Neutral
Actor10: t08
Location: 52,16
Owner: Neutral
Actor11: t08
Location: 45,21
Owner: Neutral
Actor12: t08
Location: 38,19
Owner: Neutral
Actor13: t08
Location: 23,16
Owner: Neutral
Actor14: t08
Location: 14,22
Owner: Neutral
Actor15: t08
Location: 26,22
Owner: Neutral
Actor16: t08
Location: 21,26
Owner: Neutral
Actor17: t08
Location: 48,6
Owner: Neutral
Actor18: t08
Location: 15,19
Owner: Neutral
Actor19: t08
Location: 31,15
Owner: Neutral
Actor20: t18
Location: 49,34
Owner: Neutral
Actor21: t18
Location: 48,38
Owner: Neutral
Actor22: t18
Location: 42,35
Owner: Neutral
Actor23: t18
Location: 54,37
Owner: Neutral
Actor24: t08
Location: 51,35
Owner: Neutral
Actor25: t08
Location: 45,37
Owner: Neutral
Actor26: t08
Location: 47,33
Owner: Neutral
Actor27: t18
Location: 13,10
Owner: Neutral
Actor28: t18
Location: 20,7
Owner: Neutral
Actor30: t08
Location: 12,8
Owner: Neutral
Actor31: t08
Location: 23,9
Owner: Neutral
Actor32: v35
Location: 48,38
Owner: NodSupporter
Actor33: v34
Location: 46,33
Owner: NodSupporter
Actor35: v32
Location: 54,35
Owner: NodSupporter
Actor36: v30
Location: 48,32
Owner: NodSupporter
Actor37: v30
Location: 52,34
Owner: NodSupporter
Actor38: v31
Location: 52,35
Owner: NodSupporter
Actor39: v32
Location: 46,37
Owner: NodSupporter
Health: 0.7265625
Actor41: v34
Location: 49,38
Owner: NodSupporter
Actor42: v35
Location: 46,32
Owner: NodSupporter
Actor43: v36
Location: 48,37
Owner: NodSupporter
Actor44: v32
Location: 49,33
Owner: NodSupporter
Actor45: v34
Location: 50,34
Owner: NodSupporter
Actor46: v20
Location: 15,10
Owner: GDI
Actor47: v21
Location: 12,10
Owner: GDI
Actor48: v22
Location: 21,11
Owner: GDI
Actor49: v23
Location: 22,8
Owner: GDI
Actor50: v24
Location: 18,8
Owner: GDI
Actor51: v25
Location: 13,7
Owner: GDI
Actor52: v26
Location: 20,9
Owner: GDI
Actor53: v27
Location: 15,9
Owner: GDI
Actor54: v27
Location: 14,9
Owner: GDI
Actor55: v27
Location: 13,9
Owner: GDI
Actor56: v28
Location: 21,7
Owner: GDI
Actor57: v29
Location: 22,7
Owner: GDI
Actor58: v30
Location: 21,10
Owner: GDI
Actor59: v30
Location: 23,8
Owner: GDI
Actor61: jeep
Location: 15,23
Owner: GDI
Facing: 160
Actor62: jeep
Location: 36,6
Owner: GDI
Facing: 96
Actor65: mtnk
Location: 29,10
Owner: GDI
Facing: 64
Actor71: jeep
Location: 24,26
Owner: GDI
Facing: 96
Actor72: jeep
Location: 37,19
Owner: GDI
Facing: 32
Actor73: jeep
Location: 27,33
Owner: GDI
Facing: 96
Actor86: e1
Location: 43,15
Owner: GDI
Health: 0.8789063
Facing: 32
SubCell: 3
Actor99: e1
Location: 45,15
Owner: GDI
SubCell: 3
Actor100: e1
Location: 43,15
Owner: GDI
Health: 0.9375
Facing: 32
SubCell: 4
Actor105: e1
Location: 46,14
Owner: GDI
SubCell: 2
Actor106: e1
Location: 18,29
Owner: GDI
Facing: 96
SubCell: 4
Actor107: e1
Location: 12,20
Owner: GDI
SubCell: 1
Actor108: e1
Location: 39,23
Owner: GDI
SubCell: 1
Actor119: e2
Location: 18,8
Owner: GDI
Facing: 128
SubCell: 3
Actor120: e2
Location: 16,10
Owner: GDI
Facing: 96
SubCell: 2
Actor121: e2
Location: 27,19
Owner: GDI
Facing: 128
SubCell: 1
Actor122: e2
Location: 25,34
Owner: GDI
SubCell: 4
Actor123: e1
Location: 13,13
Owner: GDI
Facing: 128
SubCell: 1
Actor124: e1
Location: 13,13
Owner: GDI
Facing: 128
SubCell: 2
Actor125: e2
Location: 13,13
Owner: GDI
Facing: 128
SubCell: 4
Actor126: e2
Location: 13,13
Owner: GDI
Facing: 128
SubCell: 3
Actor127: e2
Location: 29,18
Owner: GDI
Facing: 64
SubCell: 3
Actor128: e2
Location: 27,22
Owner: GDI
Facing: 64
SubCell: 1
Actor129: e2
Location: 36,10
Owner: GDI
Health: 0.3789063
Facing: 64
SubCell: 0
Actor131: e1
Location: 21,12
Owner: GDI
Facing: 128
SubCell: 4
Actor132: e1
Location: 22,12
Owner: GDI
Facing: 128
SubCell: 3
Actor29: t18
Location: 14,7
Owner: Neutral
waypoint27: waypoint
Location: 35,25
Owner: Neutral
waypoint26: waypoint
Location: 44,6
Owner: Neutral
waypoint9: waypoint
Location: 26,19
Owner: Neutral
waypoint8: waypoint
Location: 53,37
Owner: Neutral
waypoint7: waypoint
Location: 47,35
Owner: Neutral
waypoint6: waypoint
Location: 45,11
Owner: Neutral
waypoint5: waypoint
Location: 40,17
Owner: Neutral
waypoint4: waypoint
Location: 39,34
Owner: Neutral
waypoint3: waypoint
Location: 21,38
Owner: Neutral
waypoint2: waypoint
Location: 20,28
Owner: Neutral
waypoint1: waypoint
Location: 13,26
Owner: Neutral
waypoint0: waypoint
Location: 13,14
Owner: Neutral
Civilian1: v33
Location: 48,34
Owner: Neutral
Health: 0.625
Civilian2: v33
Location: 54,37
Owner: Neutral
Soldier1: e2
Location: 22,15
Owner: GDI
Facing: 96
SubCell: 2
Soldier2: e1
Location: 17,14
Owner: GDI
Facing: 96
SubCell: 4
Soldier3: e2
Location: 13,16
Owner: GDI
Facing: 96
SubCell: 1
GDICiv1: c9
Location: 20,12
Owner: GDI
SubCell: 3
GDICiv2: c4
Location: 18,7
Owner: GDI
SubCell: 0
GDICiv3: c9
Location: 19,12
Owner: GDI
SubCell: 1
GDICiv4: c8
Location: 16,8
Owner: GDI
SubCell: 3
GDICiv5: c7
Location: 17,9
Owner: GDI
SubCell: 1
GDICiv6: c6
Location: 24,13
Owner: GDI
SubCell: 2
GDICiv7: c5
Location: 20,7
Owner: GDI
SubCell: 4
GDICiv8: c4
Location: 14,12
Owner: GDI
SubCell: 1
GDICiv9: c3
Location: 15,10
Owner: GDI
SubCell: 2
GDICiv10: c2
Location: 14,10
Owner: GDI
SubCell: 1
GDICiv11: c1
Location: 17,7
Owner: GDI
SubCell: 2
GDICiv12: c1
Location: 20,10
Owner: GDI
SubCell: 1
GDICiv13: c1
Location: 20,11
Owner: GDI
SubCell: 3
UnitsEntryBuggy: waypoint
Location: 52,6
Owner: Neutral
UnitsRallyBuggy: waypoint
Location: 52,10
Owner: Neutral
UnitsEntryBikes: waypoint
Location: 50,6
Owner: Neutral
UnitsRallyBikes: waypoint
Location: 50,10
Owner: Neutral
UnitsEntryGunner: waypoint
Location: 54,6
Owner: Neutral
UnitsRallyGunner: waypoint
Location: 54,10
Owner: Neutral
UnitsEntryRocket: waypoint
Location: 56,12
Owner: Neutral
UnitsRallyRocket: waypoint
Location: 54,12
Owner: Neutral
NodCiv1: c8
Location: 46,36
Owner: NodSupporter
Facing: 128
SubCell: 2
NodCiv2: e3
Location: 48,36
Owner: NodSupporter
Facing: 192
SubCell: 4
NodCiv3: c4
Location: 52,38
Owner: NodSupporter
Facing: 192
SubCell: 1
NodCiv4: c3
Location: 45,35
Owner: NodSupporter
Facing: 32
SubCell: 4
NodCiv5: c1
Location: 51,36
Owner: NodSupporter
Facing: 224
SubCell: 2
NodCiv6: c2
Location: 45,34
Owner: NodSupporter
Facing: 0
SubCell: 1
NodCiv7: c4
Location: 54,36
Owner: NodSupporter
Facing: 160
SubCell: 0
NodCiv8: c5
Location: 50,37
Owner: NodSupporter
Facing: 96
SubCell: 2
NodCiv9: c9
Location: 47,34
Owner: NodSupporter
Facing: 192
SubCell: 2
Gciv1: e1
Location: 38,9
Owner: GDI
Facing: 128
SubCell: 0
Gciv2: e1
Location: 18,10
Owner: GDI
Facing: 160
SubCell: 2
Smudges:
sc6 37,24 0:
sc6 36,18 0:
Rules:
Player:
-ConquestVictoryConditions:
MissionObjectives:
EarlyGameOver: true
EnemyWatcher:
World:
-CrateSpawner:
-SpawnMPUnits:
-MPStartLocations:
LuaScript:
Scripts: nod04a.lua
ObjectivesPanel:
PanelName: MISSION_OBJECTIVES
^Vehicle:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Tank:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Helicopter:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Infantry:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
AnnounceOnSeen:
^Plane:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Ship:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Building:
Tooltip:
GenericVisibility: Enemy
ShowOwnerRow: false
^Wall:
Tooltip:
ShowOwnerRow: false
^CivBuilding:
Tooltip:
ShowOwnerRow: false
AnnounceOnSeen:
^CivBuildingHusk:
Tooltip:
ShowOwnerRow: false
AnnounceOnSeen:
^Husk:
Tooltip:
GenericVisibility: Enemy, Ally, Neutral
GenericStancePrefix: false
ShowOwnerRow: false
NUK2:
Buildable:
Prerequisites: ~disabled
GUN:
Buildable:
Prerequisites: ~disabled
CYCL:
Buildable:
Prerequisites: ~disabled
FIX:
Buildable:
Prerequisites: ~disabled
HPAD:
Buildable:
Prerequisites: ~disabled
OBLI:
Buildable:
Prerequisites: ~disabled
BRIK:
Buildable:
Prerequisites: ~disabled
TMPL:
Buildable:
Prerequisites: ~disabled
FTNK:
Buildable:
Prerequisites: ~disabled
STNK:
Buildable:
Prerequisites: ~disabled
ARTY:
Buildable:
Prerequisites: ~disabled
E5:
Buildable:
Prerequisites: ~disabled
RMBO:
Buildable:
Prerequisites: ~disabled
MLRS:
Buildable:
Prerequisites: ~disabled
MCV:
Buildable:
Prerequisites: ~disabled
LST:
Buildable:
Prerequisites: ~disabled
C17:
Buildable:
Prerequisites: ~disabled
SAM:
Buildable:
Prerequisites: ~disabled
AFLD:
Buildable:
Prerequisites: ~disabled
E4:
Buildable:
Prerequisites: ~disabled
SBAG:
Buildable:
Prerequisites: ~disabled
GTWR:
Buildable:
Prerequisites: ~disabled
WEAP:
Buildable:
Prerequisites: ~disabled
EYE:
Buildable:
Prerequisites: ~disabled
ATWR:
Buildable:
Prerequisites: ~disabled
Sequences:
VoxelSequences:
Weapons:
Voices:
Notifications:
Translations:

View File

@@ -0,0 +1,307 @@
NodUnitsBuggy = { 'bggy', 'bggy', 'bggy', 'bggy', 'bggy' }
NodUnitsBikes = { 'bike', 'bike', 'bike' }
NodUnitsGunner = { 'e1', 'e1', 'e1', 'e1', 'e1', 'e1' }
NodUnitsRocket = { 'e3', 'e3', 'e3', 'e3', 'e3', 'e3' }
Atk6Units = { 'c1', 'c2', 'c3' }
Atk5Units = { 'e1', 'e1', 'e2', 'e2' }
Atk1Units = { 'e1', 'e1' }
XxxxUnits = { 'jeep' }
YyyyUnits = { 'e1', 'e1', 'e2' }
ZzzzUnits = { 'e1', 'e1', 'e2', 'e2' }
Spawnpoint = { waypoint0.Location }
Atk6WaypointsPart1 = { waypoint1.Location, waypoint2.Location, waypoint3.Location, waypoint4.Location }
Atk6WaypointsPart2 = { waypoint7.Location, waypoint8.Location, waypoint7.Location }
Atk5Waypoints = { waypoint0.Location, waypoint9.Location}
Atk3Waypoints = { waypoint0 }
Atk2Waypoints = { waypoint6 }
GcivWaypoints = { waypoint0, waypoint1, waypoint2, waypoint3, waypoint4 }
Atk1Waypoints = { waypoint0, waypoint1, waypoint2, waypoint3, waypoint4, waypoint5, waypoint6 }
Atk4Waypoints = { waypoint0, waypoint9 }
Atk6ActorTriggerActivator = { Civilian1, Civilian2 }
Atk5ActorTriggerActivator = { Soldier1, Soldier2, Soldier3, Actor105 }
WinActorTriggerActivator = { GDICiv1, GDICiv2, GDICiv3, GDICiv4, GDICiv5, GDICiv6, GDICiv7, GDICiv8, GDICiv9, GDICiv11, GDICiv12, GDICiv13 }
GcivActors = { Gcvi1, Gciv2, GDICiv2, GDICiv9, GDICiv10, GDICiv11 }
Atk2CellTriggerActivator = { CPos.New(41,22), CPos.New(40,22), CPos.New(39,22), CPos.New(41,21), CPos.New(40,21), CPos.New(39,21) }
Atk3CellTriggerActivator = { CPos.New(18,18), CPos.New(17,18), CPos.New(16,18), CPos.New(15,18), CPos.New(14,18), CPos.New(13,18), CPos.New(12,18), CPos.New(11,18), CPos.New(24,17), CPos.New(23,17), CPos.New(22,17), CPos.New(21,17), CPos.New(20,17), CPos.New(19,17), CPos.New(17,17), CPos.New(16,17), CPos.New(15,17), CPos.New(14,17), CPos.New(13,17), CPos.New(12,17), CPos.New(11,17) }
Atk4CellTriggerActivator = { CPos.New(29,28), CPos.New(28,28), CPos.New(29,27), CPos.New(28,27), CPos.New(29,26), CPos.New(28,26), CPos.New(29,25), CPos.New(28,25), CPos.New(29,24), CPos.New(28,24), CPos.New(29,23), CPos.New(28,23), CPos.New(29,22), CPos.New(28,22) }
GcivCellTriggerActivator = { CPos.New(51,17), CPos.New(50,17), CPos.New(49,17), CPos.New(48,17), CPos.New(47,17), CPos.New(46,17), CPos.New(45,17), CPos.New(44,17), CPos.New(43,17), CPos.New(42,17), CPos.New(41,17), CPos.New(40,17), CPos.New(39,17), CPos.New(38,17), CPos.New(37,17), CPos.New(36,17), CPos.New(35,17), CPos.New(52,16), CPos.New(51,16), CPos.New(50,16), CPos.New(49,16), CPos.New(48,16), CPos.New(47,16), CPos.New(46,16), CPos.New(45,16), CPos.New(44,16), CPos.New(43,16), CPos.New(42,16), CPos.New(41,16), CPos.New(40,16), CPos.New(39,16), CPos.New(38,16), CPos.New(37,16), CPos.New(36,16), CPos.New(35,16) }
DelxCellTriggerActivator = { CPos.New(42,20), CPos.New(41,20), CPos.New(40,20), CPos.New(39,20), CPos.New(38,20) }
DelyCellTriggerActivator = { CPos.New(31,28), CPos.New(30,28), CPos.New(31,27), CPos.New(30,27), CPos.New(31,26), CPos.New(30,26), CPos.New(31,25), CPos.New(30,25), CPos.New(31,24), CPos.New(30,24) }
DelzCellTriggerActivator = { CPos.New(18,20), CPos.New(17,20), CPos.New(16,20), CPos.New(15,20), CPos.New(14,20), CPos.New(13,20), CPos.New(12,20), CPos.New(11,20), CPos.New(25,19), CPos.New(24,19), CPos.New(23,19), CPos.New(22,19), CPos.New(21,19), CPos.New(20,19), CPos.New(19,19), CPos.New(18,19), CPos.New(17,19), CPos.New(16,19), CPos.New(15,19), CPos.New(14,19), CPos.New(13,19), CPos.New(12,19), CPos.New(11,19), CPos.New(25,18), CPos.New(24,18), CPos.New(23,18), CPos.New(22,18), CPos.New(21,18), CPos.New(20,18), CPos.New(19,18) }
Atk3TriggerCounter = 2
Atk1TriggerFunctionTime = DateTime.Seconds(20)
XxxxTriggerFunctionTime = DateTime.Seconds(50)
YyyyTriggerFunctionTime = DateTime.Minutes(1) + DateTime.Seconds(40)
ZzzzTriggerFunctionTime = DateTime.Minutes(2) + DateTime.Seconds(30)
NodCiviliansActors = { NodCiv1, NodCiv2, NodCiv3, NodCiv4, NodCiv5, NodCiv6, NodCiv7, NodCiv8, NodCiv9 }
Atk6TriggerFunction = function()
Reinforcements.ReinforceWithTransport(GDI, 'apc', Atk6Units, Atk6WaypointsPart1, Atk6WaypointsPart2,
function(transport, cargo)
Utils.Do(cargo, function(actor)
IdleHunt(actor)
end)
end,
function(unit)
IdleHunt(unit)
end)
end
Atk5TriggerFunction = function ()
if not Atk5TriggerSwitch then
Atk5TriggerSwitch = true
Reinforcements.ReinforceWithTransport(GDI, 'apc', Atk5Units, Atk5Waypoints, nil,
function(transport, cargo)
transport.UnloadPassengers()
Utils.Do(cargo, function(actor)
IdleHunt(actor)
end)
end,
function(unit)
IdleHunt(unit)
end)
end
end
Atk1TriggerFunction = function()
Reinforcements.Reinforce(GDI, Atk1Units, Spawnpoint, 15,
function(actor)
Atk1Movement(actor)
end)
end
XxxxTriggerFunction = function()
if not XxxxTriggerSwitch then
Reinforcements.Reinforce(GDI, XxxxUnits, Spawnpoint, 15,
function(actor)
Atk2Movement(actor)
end)
end
end
YyyyTriggerFunction = function()
if not YyyyTriggerSwitch then
Reinforcements.Reinforce(GDI, YyyyUnits, Spawnpoint, 15,
function(actor)
Atk4Movement(actor)
end)
end
end
ZzzzTriggerFunction = function()
if not ZzzzTriggerSwitch then
Reinforcements.ReinforceWithTransport(GDI, 'apc', ZzzzUnits, Atk5Waypoints, nil,
function(transport, cargo)
transport.UnloadPassengers()
Utils.Do(cargo, function(actor)
IdleHunt(actor)
end)
end,
function(unit)
IdleHunt(unit)
end)
end
end
Atk3Movement = function(unit)
Utils.Do(Atk3Waypoints, function(waypoint)
unit.AttackMove(waypoint.Location)
end)
IdleHunt(unit)
end
Atk2Movement = function(unit)
Utils.Do(Atk2Waypoints, function(waypoint)
unit.AttackMove(waypoint.Location)
end)
IdleHunt(unit)
end
Atk1Movement = function(unit)
Utils.Do(Atk1Waypoints, function(waypoint)
unit.AttackMove(waypoint.Location)
end)
IdleHunt(unit)
end
GcivMovement = function(unit)
Utils.Do(GcivWaypoints, function(waypoint)
unit.AttackMove(waypoint.Location)
end)
end
Atk4Movement = function(unit)
Utils.Do(Atk4Waypoints, function(waypoint)
unit.AttackMove(waypoint.Location)
end)
IdleHunt(unit)
end
InsertNodUnits = function()
Reinforcements.Reinforce(Nod, NodUnitsBuggy, { UnitsEntryBuggy.Location, UnitsRallyBuggy.Location }, 11)
Reinforcements.Reinforce(Nod, NodUnitsBikes, { UnitsEntryBikes.Location, UnitsRallyBikes.Location }, 15)
Reinforcements.Reinforce(Nod, NodUnitsGunner, { UnitsEntryGunner.Location, UnitsRallyGunner.Location }, 15)
Reinforcements.Reinforce(Nod, NodUnitsRocket, { UnitsEntryRocket.Location, UnitsRallyRocket.Location }, 15)
end
CreateCivilians = function(actor, discoverer)
Utils.Do(NodCiviliansActors, function(actor)
actor.Owner = Nod
end)
NodObjective2 = Nod.AddPrimaryObjective("Protect the civilians that support Nod.")
Trigger.OnAllKilled(NodCiviliansActors, function()
Nod.MarkFailedObjective(NodObjective2)
end)
Utils.Do(GcivActors, function(actor)
if not actor.IsDead then
actor.AttackMove(waypoint7.Location)
actor.AttackMove(waypoint8.Location)
IdleHunt(actor)
end
end)
end
WorldLoaded = function()
NodSupporter = Player.GetPlayer("NodSupporter")
Nod = Player.GetPlayer("Nod")
GDI = Player.GetPlayer("GDI")
Trigger.OnObjectiveAdded(Nod, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective")
end)
Trigger.OnObjectiveCompleted(Nod, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed")
end)
Trigger.OnObjectiveFailed(Nod, function(p, id)
Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed")
end)
Trigger.OnPlayerWon(Nod, function()
Media.PlaySpeechNotification(Nod, "Win")
end)
Trigger.OnPlayerLost(Nod, function()
Media.PlaySpeechNotification(Nod, "Lose")
end)
Trigger.OnAnyKilled(Atk6ActorTriggerActivator, Atk6TriggerFunction)
OnAnyDamaged(Atk5ActorTriggerActivator, Atk5TriggerFunction)
Trigger.OnEnteredFootprint(Atk3CellTriggerActivator, function(a, id)
if a.Owner == Nod then
for type, count in pairs({ ['e1'] = 3, ['e2'] = 2, ['mtnk'] = 1 }) do
local myActors = Utils.Take(count, GDI.GetActorsByType(type))
Utils.Do(myActors, function(actor)
Atk3Movement(actor)
end)
end
Atk3TriggerCounter = Atk3TriggerCounter - 1
if Atk3TriggerCounter < 0 then
Trigger.RemoveFootprintTrigger(id)
end
end
end)
Trigger.OnEnteredFootprint(Atk2CellTriggerActivator, function(a, id)
if a.Owner == Nod then
MyActors = Utils.Take(1, GDI.GetActorsByType('jeep'))
Utils.Do(MyActors, function(actor)
Atk2Movement(actor)
end)
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnEnteredFootprint(GcivCellTriggerActivator, function(a, id)
if a.Owner == Nod then
Utils.Do(GcivActors, function(actor)
GcivMovement(actor)
end)
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.AfterDelay(Atk1TriggerFunctionTime, Atk1TriggerFunction)
Trigger.OnEnteredFootprint(Atk4CellTriggerActivator, function(a, id)
if a.Owner == Nod then
for type, count in pairs({ ['e1'] = 2,['e2'] = 1 }) do
local myActors = Utils.Take(count, GDI.GetActorsByType(type))
Utils.Do(myActors, function(actor)
Atk4Movement(actor)
end)
end
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.AfterDelay(XxxxTriggerFunctionTime, XxxxTriggerFunction)
Trigger.AfterDelay(YyyyTriggerFunctionTime, YyyyTriggerFunction)
Trigger.AfterDelay(ZzzzTriggerFunctionTime, ZzzzTriggerFunction)
Trigger.OnEnteredFootprint(DelxCellTriggerActivator, function(a, id)
if a.Owner == Nod then
XxxxTriggerSwitch = true
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnEnteredFootprint(DelyCellTriggerActivator, function(a, id)
if a.Owner == Nod then
YyyyTriggerSwitch = true
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnEnteredFootprint(DelzCellTriggerActivator, function(a, id)
if a.Owner == Nod then
ZzzzTriggerSwitch = true
Trigger.RemoveFootprintTrigger(id)
end
end)
Trigger.OnPlayerDiscovered(NodSupporter, CreateCivilians)
Trigger.OnAllKilled(WinActorTriggerActivator, function()
Nod.MarkCompletedObjective(NodObjective1)
if NodObjective2 then
Nod.MarkCompletedObjective(NodObjective2)
end
end)
GDIObjective = GDI.AddPrimaryObjective("Eliminate all Nod forces in the area.")
NodObjective1 = Nod.AddPrimaryObjective("Kill all civilian which support the GDI.")
InsertNodUnits()
end
Tick = function()
if Nod.HasNoRequiredUnits() then
if DateTime.GameTime > 2 then
GDI.MarkCompletedObjective(GDIObjective)
end
end
end
OnAnyDamaged = function(actors, func)
Utils.Do(actors, function(actor)
Trigger.OnDamaged(actor, func)
end)
end
IdleHunt = function(unit)
if not unit.IsDead then
Trigger.OnIdle(unit, unit.Hunt)
end
end

View File

@@ -14,3 +14,4 @@ Nod Campaign:
./mods/cnc/maps/nod02b
./mods/cnc/maps/nod03a
./mods/cnc/maps/nod03b
./mods/cnc/maps/nod04a