Jump to content
主视角中国

s-22


Recommended Posts

Posted

俺有一个问题是M511已搞定,TEST也成功,俺记得那关

应是下雨的,俺看了半天不知是那个程序保留可下雨,

这是M511.SCR原单人图程序,请帮俺看一下,俺一一试太麻烦了...

//-----------------------------------------------------------------------------------

main: // Mackey crossed this path as well

exec global/exploder.scr

exec global/ai.scr

exec global/loadout.scr maps/m5l1a.scr

$leftgate notsolid

$rightgate notsolid

for (local.i=1;local.i

$m5_crew[local.i] notsolid

level waittill prespawn

exec global/cabinet.scr

local.count = 0

while ($ending_spawn)

{

local.count++

level.ending_spawn[local.count] = waitthread global/spawner.scr::spawner_create $ending_spawn[1]

}

// println ("local count is " + local.count)

// println (" size is " + level.ending_spawn.size)

waitthread setupcrew

exec global/ambient.scr m5l1a

// level.frienddebug = 2

// exec global/weather.scr 3500 (0.333 0.333 0.359)

level.farplane = 3500

level.farplanecolor = (0.333 0.333 0.359)

exec global/weather.scr

exec global/shutter.scr

exec global/door_locked.scr

// setcvar "g_syncronousClients" "0"

// setcvar "cg_rain_density" "0.0"

// setcvar "ui_crosshair" "1"

// setcvar "r_light_emphasize" "0"

setcvar cg_playermodel 0

// soundtrack music/m5l1a.mus

exec global/bomber.scr

exec global/friendly.scr

// waitthread global/friendly.scr::debug // Add's helpful messages

level.gammacap = 0.4

level.flags[gotbazooka] = 0

level.flags[initialchat] = 0

level.flags[bazooka] = 0

level.flags[reunion] = 0

level.flags[reunion2] = 0

level.flags[thunder] = 0

level.flags[door] = 0

level.flags[obj3] = 0

cache weapons/colt45.tik

cache weapons/springfield.tik

cache weapons/m2frag_grenade_sp.tik

cache weapons/thompsonsmg.tik

level waittill spawn

$player stufftext "tmstartloop sound/music/mus_SniperTown_01a.mp3"

$fire loopsound fire_med

for (local.i=1;local.i

$autosave_health[local.i] thread health_save

$bazookahit thread bazookahit

$leftgate solid

$leftgate disconnect_paths

$rightgate solid

$rightgate disconnect_paths

$triggerA1 thread triggerA1prep

// $triggerA2 thread triggerA2prep

// $triggerB2 thread triggerB2prep

// $triggerB3 thread triggerB3prep

local.count = 0

if (getcvar(alive) == "1")

{

level.friendly1 nodamage

level.friendly2 nodamage

level.friendly3 nodamage

level.friendly4 nodamage

level.friendly5 nodamage

}

if (game.skill == "hard")

local.kill_snipers = 1

else

local.kill_snipers = 4

while (local.count

{

local.i = randomint ($enemy.size) + 1

if ($enemy[local.i].sniper != NIL)

{

// $enemy[local.i] delete

$enemy[local.i] damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0

$enemy[local.i].origin = $enemy[local.i].origin + (0 0 -1000)

local.count++

}

}

level.deadsnipers = 0

for (local.i=1;local.i

if ($enemy[local.i].sniper != NIL)

{

if (game.skill == "hard")

$enemy[local.i].noticescale = 40

else

$enemy[local.i].noticescale = 60

$enemy[local.i].silent = 1

$enemy[local.i] thread maps/m5l1b.scr::sniperdeath 850

}

else

$enemy[local.i].silent = 1

if (getcvar(dead) == "1")

while ($enemy[1])

$enemy[1] delete

// $enemy[local.i] thread global/ai.scr::sniperthink

// $player threatbias 25

thread initmap

// $enemygenerator thread enemygenerator

thread objectives

level.friendly1 exec global/disable_ai.scr

level.friendly2 exec global/disable_ai.scr

level.friendly3 exec global/disable_ai.scr

$enemy1 exec global/disable_ai.scr

end

tempe:

println level.farplane

println level.farplanecolor

wait 1

goto tempe

health_save:

local.set = self.set

while (self)

wait 1

exec global/autosave.scr local.set

end

objectives:

waitthread global/objectives.scr::add_objectives 1 2 "Locate the bazooka team." $ending_point

waitthread global/objectives.scr::add_objectives 2 2 "Get past the gate into the rest of the town." $leftgate

waitthread global/objectives.scr::add_objectives 3 2 "Proceed to the south edge of town." $ending_point

waitthread global/objectives.scr::current_objectives 1

clear_objective_pos

// set_objective_pos local.ent

// Rendezvous with the tank crew" $endarea.origin

end

initmap:

level.friendly4 exec global/disable_ai.scr

level.friendly5 exec global/disable_ai.scr

level.friendly4 exec global/crouch.scr

level.friendly5 exec global/crouch.scr

level.friendly4 turnto $ac9

level.friendly5 turnto $t1380

level.friendly4.avoidplayer = 0

level.friendly5.avoidplayer = 0

level.friendly4 threatbias ignoreme

level.friendly5 threatbias ignoreme

if (getcvar(alive) == "1")

{

level.friendly1 nodamage

level.friendly2 nodamage

level.friendly3 nodamage

level.friendly4 nodamage

level.friendly5 nodamage

}

level.friendly1.health = 1000

level.friendly2.health = 1000

level.friendly3.health = 1000

level.friendly4.health = 1000

level.friendly5.health = 1000

level.friendly1 accuracy 0

level.friendly2 accuracy 0

level.friendly3 accuracy 0

level.friendly4 accuracy 1

level.friendly5 accuracy 1

// self waittill trigger

while (isalive $enemy1)

wait 1

level.friendly1 thread friendlyinit

level.friendly2 thread friendlyinit

level.friendly3 thread friendlyinit

level.friendly1 accuracy 1

level.friendly2 accuracy 1

level.friendly3 accuracy 1

level.friendly1.fnum = 1

level.friendly2.fnum = 2

level.friendly3.fnum = 3

level.friendly4.fnum = 4

level.friendly5.fnum = 5

/*

level.friendly1.voicetype = "c"

level.friendly2.vonicetype = "g"

level.friendly3.voicetype = "a"

level.friendly4.voicetype = "f"

level.friendly5.voicetype = "h"

*/

//level.friendly1.hearing = 0

//level.friendly2.hearing = 0

//level.friendly3.hearing = 0

//level.friendly4.hearing = 0

//level.friendly5.hearing = 0

level.friendly1 type_attack "turret" // was turret

level.friendly2 type_attack "turret" // was turret

level.friendly3 type_attack "turret" // was turret

level.friendly4 type_attack "turret" // was turret

level.friendly5 type_attack "turret" // was turret

// waitthread enemygen

level.flagsA = 0 // Start the first scene

level.flags1 = 0 // Friendlies move to objective 1

level.flags2 = 0 // Friendlies move to objective 2

level.flags3 = 0 // Friendlies move to objective 3

level.flags4 = 0 // Friendlies move to objective 4

level.flags5 = 0 // Friendlies move to objective 5

level.flags6 = 0 // Friendlies move to objective 6

end

endlevel:

thread global/bomber.scr::bomb 2015

thread global/bomber.scr::bomb 78

$ending_point playsound m5l1a_plane

if (level.flags[obj3] == 0)

{

waitthread global/objectives.scr::add_objectives 3 3 "Proceed to the south edge of town."

$ending_point

level.flags[obj3] = 1

}

wait 3.1

thread global/exploder.scr::explode 51

wait 0.5

if ($player istouching $killplayer)

{

$player damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0

end

}

if (isalive level.friendly1)

if (level.friendly1 istouching $killplayer)

level.friendly1 damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0

if (isalive level.friendly2)

if (level.friendly2 istouching $killplayer)

level.friendly2 damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0

if (isalive level.friendly3)

if (level.friendly3 istouching $killplayer)

level.friendly3 damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0

if (isalive level.friendly4)

if (level.friendly4 istouching $killplayer)

level.friendly4 damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0

if (isalive level.friendly5)

if (level.friendly5 istouching $killplayer)

level.friendly5 damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0

radiusdamage ( -152 -1104 -8) 700 700

wait 1

println "mission complete"

if ((isalive level.friendly1) && (level.friendly1 istouching $friendride))

{

// game.friendly1health = level.friendly1.health

game.friendly1origin = level.friendly1.origin

game.friendly1model = level.friendly1.model

game.friendly1angles = level.friendly1.angles

game.friendly1headmodel = level.friendly1.headmodel

game.friendly1headskin = level.friendly1.headskin

println ("KKK model 1 is " + game.friendly1model)

}

else

game.friendly1health = -1

if ((isalive level.friendly2) && (level.friendly2 istouching $friendride))

{

game.friendly2origin = level.friendly2.origin

game.friendly2model = level.friendly2.model

game.friendly2angles = level.friendly2.angles

game.friendly2headmodel = level.friendly2.headmodel

game.friendly2headskin = level.friendly2.headskin

println ("KKK model 2 is " + game.friendly2model)

}

else

game.friendly2health = -1

if ((isalive level.friendly3) && (level.friendly3 istouching $friendride))

{

game.friendly3origin = level.friendly3.origin

game.friendly3model = level.friendly3.model

game.friendly3angles = level.friendly3.angles

game.friendly3headmodel = level.friendly3.headmodel

game.friendly3headskin = level.friendly3.headskin

println ("KKK model 3 is " + game.friendly3model)

}

else

game.friendly3health = -1

if ((isalive level.friendly4) && (level.friendly4 istouching $friendride))

{

game.friendly4origin = level.friendly4.origin

game.friendly4model = level.friendly4.model

game.friendly4angles = level.friendly4.angles

game.friendly4headmodel = level.friendly4.headmodel

game.friendly4headskin = level.friendly4.headskin

println ("KKK model 4 is " + game.friendly4model)

}

else

game.friendly4health = -1

if ((isalive level.friendly5) && (level.friendly5 istouching $friendride))

{

game.friendly5origin = level.friendly5.origin

game.friendly5model = level.friendly5.model

game.friendly5angles = level.friendly5.angles

game.friendly5headmodel = level.friendly5.headmodel

game.friendly5headskin = level.friendly5.headskin

println ("KKK model 5 is " + game.friendly5model)

}

else

game.friendly5health = -1

game.playerorigin = $player.origin

game.playerangles = $player.viewangles

game.windtime = level.windtime

game.shuttertime = level.shuttertime

game.raindensity = level.raindensity

game.rainvolume = level.rainvolume

game.thundertime = level.thundertime

exec global/missioncomplete.scr m5l1b 1

end

triggerB2prep:

self waittill trigger

centerprint "Stay back, there's a sniper up there!"

end

secondwavethread:

while ((isalive level.friendly4) && (level.friendly4.thinkstate != "idle"))

wait 1

if (level.flags[reunion2] == 1)

end

if (isalive level.friendly4)

{

level.friendly4 turnto $player

level.friendly4 lookat $player

}

wait 0.25

while ((isalive level.friendly5) && (level.friendly5.thinkstate != "idle"))

wait 1

if (level.flags[reunion2] == 1)

end

if (isalive level.friendly5)

{

level.friendly5 turnto $player

level.friendly5 lookat $player

}

while ((isalive level.friendly4) && (level.friendly4.thinkstate != "idle"))

wait 1

if (level.flags[reunion2] == 1)

end

if (isalive level.friendly4)

{

level.friendly4 say dfr_m5l3_548

level.friendly4 waittill saydone

}

wait 2

while ((isalive level.friendly5) && (level.friendly5.thinkstate != "idle"))

wait 1

if (level.flags[reunion2] == 1)

end

if (isalive level.friendly5)

{

level.friendly5 say dfr_m5l3_550

level.friendly5 waittill saydone

}

if (level.flags[reunion2] == 1)

end

if ((isalive level.friendly4) && (isalive level.friendly5))

{

level.friendly4 lookat level.friendly5

level.friendly5 lookat level.friendly4

wait 2

}

if (level.flags[reunion2] == 1)

end

if (isalive level.friendly4)

{

level.friendly4 turnto $ac9

level.friendly4 lookat $ac9

}

if (level.flags[reunion2] == 1)

end

if (isalive level.friendly5)

{

level.friendly5 turnto $t1380

level.friendly5 lookat $t1380

}

end

secondwave:

// level.flags[thunder] = 1

if (level.flags[reunion] == 0)

{

level.friendly4 exec global/enable_ai.scr

level.friendly5 exec global/enable_ai.scr

level.friendly4 threatbias 0

level.friendly5 threatbias 0

level.friendly4.health = 120

level.friendly5.health = 120

level.friendly4 hearing 2000

level.friendly4 sight 2000

level.friendly4 maxdist 1500

level.friendly4 mindist 0

level.friendly4 leash 0

level.friendly5 hearing 2000

level.friendly5 sight 2000

level.friendly5 maxdist 1500

level.friendly5 mindist 0

level.friendly5 leash 0

// level.flags[reunion] = 1

}

end

friendlyinit:

self.mins = -40

self.maxs = -10

self leash 0

self mindist 1100

self maxdist 1500

self hearing 2000

self sight 2000

self.friendtype = 0

// self exec global/disable_ai.scr

self exec global/friendly.scr::friendlythink

self.health = 120

end

triggerA1prep:

/*

level.friendly1 accuracy 100

level.friendly2 accuracy 100

level.friendly3 accuracy 100

level.friendly1.mins = 30

level.friendly1.maxs = 50

level.friendly2.mins = 15

level.friendly2.maxs = 60

level.friendly3.mins = 40

level.friendly3.maxs = 80

*/

/*

println ("+head " + level.friendly1.headmodel)

println ("+head " + level.friendly1.headskin)

level.friendly1.mindist = 100

level.friendly1.maxdist = 700

level.friendly2.mindist = 400

level.friendly2.maxdist = 700

level.friendly3.mindist = 100

level.friendly3.maxdist = 300

level.friendly4.mindist = 100

level.friendly4.maxdist = 1700

level.friendly5.mindist = 500

level.friendly5.maxdist = 600

for (local.i=1;local.i

{

level.friendly[local.i].leash = 5000

level.friendly[local.i].hearing = 5000

level.friendly[local.i].sight = 5000

}

level.friendly1 thread global/friendly.scr::friendlythink

level.friendly2 thread global/friendly.scr::friendlythink

level.friendly3 thread global/friendly.scr::friendlythink

*/

self waittill trigger

println "a1 trigger"

level.friendly1 exec global/enable_ai.scr

level.friendly2 exec global/enable_ai.scr

level.friendly3 exec global/enable_ai.scr

$enemy1 exec global/enable_ai.scr

thread global/bomber.scr::bomb 500

thread global/bomber.scr::bomb 501

wait 1.5

// $plane2sound playsound "sound/vehicle/plane1.wav" 0 1.5 1024

wait 2

thread global/shutter.scr::shuttrig 1

// $plane1sound playsound "sound/vehicle/plane2.wav" 0 1.5 1024

end

/*

Voices:

voicetype

*/

triggerA2prep:

self waittill trigger

level.friendly2.mins = -15

level.friendly2.maxs = 30

level.friendly1.friendtype = 1

level.friendly1.distance = 150

level.friendly1.destination = $player

level.friendly3.mins = -25

level.friendly3.maxs = 15

/*

level.friendly1.destination = $player

level.friendly1.friendtype = 1

level.friendly1.distance = 320

level.friendly2.destination = $player

level.friendly2.friendtype = 1

level.friendly2.distance = 320

level.friendly3.destination = $player

level.friendly3.friendtype = 1

level.friendly3.distance = 320

level.friendly4.destination = $player

level.friendly4.friendtype = 1

level.friendly4.distance = 320

level.friendly5.destination = $player

level.friendly5.friendtype = 1

level.friendly5.distance = 320

t:

println ">>>>>>>>>>>>>"

for (local.i=1;local.i

{

// if (level.friendly[local.i].destination.targetname == "friendly")

// println ("friendly" + level.friendly[local.i].fnum + " goes to " + level.friendly[local.i].destination

+ "/" + level.friendly[local.i].destination.fnum)

// else

// println ("friendly" + level.friendly[local.i].fnum + " goes to player")

if (level.friendly[local.i].destination.fnum == NIL)

println ("friendly" + level.friendly[local.i].fnum + " : Type " + level.friendly[local.i].friendtype + " : Area "

+ level.friendly[local.i].area + " : AreaPast " + level.friendly[local.i].areapast + " : Destination Node " +

level.friendly[local.i].destination.set)

else

println ("friendly" + level.friendly[local.i].fnum + " : Type " + level.friendly[local.i].friendtype + " : Area "

+ level.friendly[local.i].area + " : AreaPast " + level.friendly[local.i].areapast + " : Destination Entity " +

level.friendly[local.i].destination.fnum)

}

println "

wait 4

goto t

*/

end

scene1:

//while (level.flagsA == 0)

// wait 0.5

//level.enemy1_1 ai_on

wait 2

while (1==1)

{

if ($player istouching $door1)

{

local.distance = 500

local.arrived = 0

if (!(isalive level.friendly1) || (vector_length (level.friendly1.origin - $door1explode.origin)

local.distance))

local.arrived++

if (!(isalive level.friendly2) || (vector_length (level.friendly2.origin - $door1explode.origin)

local.distance))

local.arrived++

if (!(isalive level.friendly3) || (vector_length (level.friendly3.origin - $door1explode.origin)

local.distance))

local.arrived++

if (!(isalive level.friendly4) || (vector_length (level.friendly4.origin - $door1explode.origin)

local.distance))

local.arrived++

if (!(isalive level.friendly5) || (vector_length (level.friendly5.origin - $door1explode.origin)

local.distance))

local.arrived++

println local.arrived

if (local.arrived > 4)

{

thread global/exploder.scr::explode 100

}

}

wait 0.5

}

end

enemy1_1prep:

level.enemy1_1 = self

self ai_off

end

showorgg:

println self.origin

wait 0.5

thread showorgg

end

dialogue1:

if (isalive $enemy1)

level.friendly1 say "streamed_dfr_scripted_M5L3_01c" // "We're pinned down here! Help us out!"

level.friendly1 lookat $player

level.friendly2 lookat $player

level.friendly3 lookat $player

thread initialchat level.friendly1

thread initialchat level.friendly2

thread initialchat level.friendly3

end

friendtypething:

while (isalive self)

{

level waittill postthink

println wtf

print3d (self.origin + (0 0 90)) 2 (self.friendtype + " / " + self.destination)

waitframe

}

end

initialchat local.friend:

if !(isalive local.friend)

end

// local.friend thread friendtypething

while (((isalive $enemy1) || (local.friend.thinkstate != "idle")) && (isalive local.friend))

wait 1

if !(isalive local.friend)

end

local.friend.distance = 200

local.friend.friendtype = 1

wait 1

while ((isalive local.friend ) && (local.friend.thinkstate != "idle") && (vector_length (local.friend.origin -

$player.origin) > 500))

wait 1

wait 2

while ((isalive local.friend ) && (local.friend.thinkstate != "idle") && (vector_length (local.friend.origin -

$player.origin) > 500))

wait 1

if !(isalive local.friend)

end

local.friend lookat $player

local.friend turnto $player

if (level.flags[initialchat] == 0)

{

level.flags[initialchat]++

println ("chat is " + level.flags[initialchat])

local.friend say "dfr_M5L3_536c" // "Thanks. We got cut off from the rest of our squad. They're up

ahead somewhere."

local.friend waittill saydone

level.flags[initialchat]++

wait 1

local.friend turnto NULL

while ((isalive local.friend ) && (local.friend.thinkstate != "idle") && (vector_length (local.friend.origin -

$player.origin) > 500))

wait 1

if !(isalive local.friend)

end

local.friend turnto $player

local.friend say "dfr_M5L3_537c2" // "About an hour ago a regiment of Germans pushed us back

through half the town. Heavy rifle action and some armor. Our squad was blown to wind, we don't know where anyone is

now."

local.friend waittill saydone

wait 1

if (isalive local.friend)

local.friend turnto NULL

else

end

local.friend.friendtype = 0

for (local.i=1;local.i

{

if (level.friendlyused[local.i] == 0)

{

local.friend.destination = level.friendlynode[local.i]

level.friendlyused[local.i] = 1

local.i = level.friendlynodes + 5

}

}

end

}

else

{

if !(isalive local.friend)

end

local.friend.friendtype = 0

local.friend turnto NULL

for (local.i=1;local.i

{

if (level.friendlyused[local.i] == 0)

{

local.friend.destination = level.friendlynode[local.i]

level.friendlyused[local.i] = 1

local.i = level.friendlynodes + 5

}

}

}

end

while (level.flags[initialchat]

wait 1

while ((isalive local.friend ) && (local.friend.thinkstate != "idle") && (vector_length (local.friend.origin -

$player.origin) > 500))

wait 1

wait 1

while ((isalive local.friend ) && (local.friend.thinkstate != "idle") && (vector_length (local.friend.origin -

$player.origin) > 500))

wait 1

if !(isalive local.friend)

end

if (level.flags[initialchat] == 2)

{

level.flags[initialchat]++

local.friend say "dfr_M5L3_537c" // "About an hour ago a regiment of Germans pushed us back

through half the town. Heavy rifle action and some armor. Our squad was blown to wind, we don't know where anyone is

now."

local.friend waittill saydone

wait 1

}

else

{

if !(isalive local.friend)

end

local.friend.friendtype = 0

local.friend turnto NULL

for (local.i=1;local.i

{

if (level.friendlyused[local.i] == 0)

{

local.friend.destination = level.friendlynode[local.i]

level.friendlyused[local.i] = 1

local.i = level.friendlynodes + 5

}

}

}

while ((isalive local.friend) && (local.friend.thinkstate == "attack"))

wait 1

if !(isalive local.friend)

end

local.friend say "dfr_M5L3_537c2" // "About an hour ago a regiment of Germans pushed us back through half

the town. Heavy rifle action and some armor. Our squad was blown to wind, we don't know where anyone is now."

local.friend waittill saydone

if !(isalive local.friend)

end

local.friend.friendtype = 0

local.friend turnto NULL

for (local.i=1;local.i

{

if (level.friendlyused[local.i] == 0)

{

local.friend.destination = level.friendlynode[local.i]

level.friendlyused[local.i] = 1

local.i = level.friendlynodes + 5

}

}

end

get_to_friends local.ent:

if !(isalive local.ent)

end

local.ent.friendtype = -1

local.ent tether local.ent.target

local.ent leash 0

local.ent runto local.ent.target

local.ent waittill movedone

while ((local.ent.thinkstate != "idle") && (isalive local.ent))

wait 1

if (isalive local.ent)

{

local.ent.ready = 1

local.ent exec global/disable_ai.scr

}

end

go_time local.ent:

if !(isalive local.ent)

end

local.ent.friendtype = 0

local.ent tether $player

local.ent leash 512

local.ent exec global/enable_ai.scr

end

thunder:

if (parm.other.targetname != "friendly")

end

self delete

// while !(level.friendly4 cansee level.friendly1)

// wait 0.5

local.friendly = parm.other

if (isalive level.friendly4)

{

level.friendly4 lookat level.friendly1

level.friendly4 say "dfr_scripted_M5L3_07f" // "THUNDER!"

}

wait 0.2

if ((isalive level.friendly4) && (local.friendly))

{

local.friendly lookat level.friendly4

level.friendly4 waittill saydone

}

wait 1.4

if (isalive local.friendly)

{

local.friendly say dfr_scripted_M5L3_08c // "FLASH!"

local.friendly waittill saydone

}

thread get_to_friends level.friendly1

thread get_to_friends level.friendly2

thread get_to_friends level.friendly3

while (((isalive level.friendly1) && (level.friendly1.ready == NIL)) || ((isalive level.friendly2) &&

(level.friendly2.ready == NIL)) || ((isalive level.friendly3) && (level.friendly3.ready == NIL)))

wait 1

level.flags[reunion2] = 1

if (isalive level.friendly4)

level.friendly4 thread friendlyinit

if (isalive level.friendly5)

level.friendly5 thread friendlyinit

thread go_time level.friendly1

thread go_time level.friendly2

thread go_time level.friendly3

if (isalive level.friendly1)

{

if (isalive level.friendly4)

{

level.friendly4 lookat level.friendly1

wait 0.25

level.friendly4 say dfr_scripted_M5L3_09f // "Hey Hill, look it's Parish." maps "m dm"

level.friendly4 waittill saydone

if (isalive level.friendly1)

{

level.friendly1 say dfr_scripted_M5L3_10c // "I figured you guys were dead"

level.friendly1 waittill saydone

}

wait 2

if (isalive level.friendly5)

{

level.friendly5 say dfr_scripted_M5L3_11h // "Not yet"

level.friendly5 waittill saydone

}

}

}

end

// while (

if (isalive level.friendly4)

{

wait 0.25

level.friendly4 lookat local.friendly

wait 0.25

level.friendly4 say dfr_scripted_M5L3_09f // "Hey Hill, look it's Parish." maps "m dm"

}

if (level.flags[reunion] == 0)

{

level.friendly4 thread friendlyinit

level.friendly5 thread friendlyinit

}

level.flags[reunion] = 2

while ((level.friendly1.thinkstate != "idle") || (level.friendly2.thinkstate != "idle") || (level.friendly3.thinkstate !=

"idle") || (level.friendly4.thinkstate != "idle") || (level.friendly5.thinkstate != "idle"))

wait 0.5

println "diag 05"

while (thread idlelifecheck != 0)

wait 1

wait 5

println "diag 06"

while (thread idlelifecheck != 0)

wait 0.5

println "diag 07"

level.friendly1 lookat level.friendly5

level.friendly4 lookat level.friendly3

level.friendly2 lookat level.friendly4

level.friendly1 say dfr_scripted_M5L3_10c // "I figured you guys were dead"

level.friendly1 waittill saydone

while (thread idlelifecheck != 0)

wait 0.5

println "diag 08"

wait 0.25

level.friendly5 say dfr_scripted_M5L3_11h // "Not yet"

level.friendly5 waittill saydone

while (thread idlelifecheck != 0)

wait 0.5

println "diag 09"

wait 0.25

/*

level.friendly5 say dfr_scripted_M5L3_11h // "Not yet"

level.friendly5 waittill saydone

while (thread idlelifecheck != 0)

wait 0.5

wait 0.25

*/

println "diag 10"

level.friendly1 lookat $player

level.friendly1 say dfr_scripted_M5L3_12c // "This is loot powell"

level.friendly1 waittill saydone

while (thread idlelifecheck != 0)

wait 0.5

println "diag 11"

wait 0.25

level.friendly4 lookat $player

level.friendly4 say dfr_scripted_M5L3_13f // "Loot"

level.friendly4 waittill saydone

// "I figured you guys were dead."

// dfr_scripted_M5L3_09f

end

locked_gate:

if (self.timer == NIL)

{

self.timer = level.time - 5

self.count = 0

}

if (level.time > self.timer)

{

self.timer = level.time + 2

local.self playsound door_metal_locked

if (level.flags[gotbazooka] == 0)

{

// self.count++

if (self.count == 0)

iprintlnbold "Locate the missing Bazooka team"

else

if (self.count == 1)

iprintlnbold "Locate the missing Bazooka team"

else

if (self.count == 2)

iprintlnbold "Locate the missing Bazooka team"

else

if (self.count == 3)

iprintlnbold "Scour the area for the missing Bazooka team"

else

if (self.count == 4)

iprintlnbold "The Bazooka team is missing, they must be found"

else

if (self.count == 5)

iprintlnbold "Find the Bazooka team, spare no expense!"

else

if (self.count == 6)

iprintlnbold "You must find them, before it's too late!"

else

if (self.count == 7)

iprintlnbold "You know, Bazooka team. Probably carrying a long, tubular looking

thing."

else

if (self.count == 8)

iprintlnbold "Why are you banging away at this gate when you have yet to FIND

THE BAZOOKA TEAM?!"

else

if (self.count == 9)

iprintlnbold "STOP POKING ME"

}

else

if (level.flags[door] == 0)

iprintlnbold "Find a way through the gate"

}

end

enemygenerator:

if (level.totalbaddies == NIL)

level.totalbaddies = 0

local.maxspawn = level.totalbaddies + 4

while (1)

{

while !($player istouching $enemygenerator)

wait 1

if (level.totalbaddies

exec global/ai.scr::spawn (50 + randomint(3))

wait (randomint (4) + 3)

}

end

idlelifecheck:

if !(isalive level.friendly1)

end -2

if !(isalive level.friendly2)

end -2

if !(isalive level.friendly3)

end -2

if !(isalive level.friendly4)

end -2

if !(isalive level.friendly5)

end -2

if (level.friendly1.thinkstate != "idle")

end -1

if (level.friendly2.thinkstate != "idle")

end -1

if (level.friendly3.thinkstate != "idle")

end -1

if (level.friendly4.thinkstate != "idle")

end -1

if (level.friendly5.thinkstate != "idle")

end -1

end 0

sneak:

self playsound wood_creak

end

if (self.triggered == NIL)

{

self.triggered = 1

self playsound wood_creak

$sneak walkto $sneakdestination

wait 5

self damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0

}

end

setupcrew:

if ($m5_crew == NULL)

level.m5_crews = 0

else

level.m5_crews = $m5_crew.size

if (level.m5_crews > 0)

{

level.m5_crew = exec global/makearray.scr $m5_crew

for (local.i=1;local.i

{

if (level.m5_crew[local.i].set == NIL)

{

println ("Warning, m5_crew at " + level.m5_crew[local.i].origin + " has no #set,

setting to 1")

level.m5_crew[local.i].set = 1

}

else

println ("Spawned an m5_crew with set " + level.m5_crew[local.i].set)

level.m5_crew[local.i] thread m5crew

}

}

if ($m5_ammo == NULL)

level.m5_ammos = 0

else

level.m5_ammos = $m5_ammo.size

if (level.m5_ammos > 0)

{

level.m5_ammo = exec global/makearray.scr $m5_ammo

for (local.i=1;local.i

{

if (level.m5_ammo[local.i].set == NIL)

{

println ("Warning, m5_ammo at " + level.m5_ammo[local.i].origin + " has no #set,

setting to 1")

level.m5_ammo[local.i].set = 1

}

level.m5_ammo[local.i] thread m5ammo local.i

}

}

level.totalcrews = 0

level.searchedcrews = 0

if ($m5_trigger == NULL)

level.m5_triggers = 0

else

level.m5_triggers = $m5_trigger.size

if (level.m5_triggers > 0)

{

level.m5_trigger = exec global/makearray.scr $m5_trigger

for (local.i=1;local.i

{

level.totalcrews++

if (level.m5_trigger[local.i].set == NIL)

{

println ("Warning, m5_trigger at " + level.m5_trigger[local.i].origin + " has no #set,

setting to 1")

level.m5_trigger[local.i].set = 1

}

level.crewused [level.m5_trigger[local.i].set] = 0

level.m5_trigger[local.i] thread m5trigger

}

}

end

m5trigger:

self waittill trigger

level.searchedcrews++

if (level.searchedcrews == level.totalcrews)

{

for (local.i=1;local.i

{

if (level.crewused[level.m5_trigger[local.i].set] == 0)

{

local.set = level.m5_trigger[local.i].set

level.flags[bazooka] = 1

for (local.p=1;local.p

{

if (level.m5_ammo[local.p].set == local.set)

{

local.ent = spawn level.m5_ammo[local.p].mdl

local.ent.origin = level.m5_ammo[local.p].origin

local.ent.angles = level.m5_ammo[local.p].angles

if (level.m5_ammo[local.p].target)

{

// if (level.m5_trigger[local.i] ==

level.m5_ammo[local.p].target)

// {

set_objective_pos local.ent

level.m5_ammo[local.p].target.parent =

local.ent

println

level.m5_ammo[local.p].target.origin

println local.ent.origin

println "spawned target thing"

// }

// else

// println "wasnt the same target"

}

else

println "had no target"

// level.m5_ammo[local.p] show

// level.m5_ammo[local.p] solid

}

}

for (local.p=1;local.p

if (level.m5_crew[local.p])

if (level.m5_crew[local.p].set == local.set)

level.m5_crew[local.p] show

// local.i = level.m5_triggers + 5

}

}

for (local.p=1;local.p

if (level.m5_ammo[local.p].set != local.set)

{

if (level.m5_ammo[local.p].target)

level.m5_ammo[local.p].target delete

level.m5_ammo[local.p] delete

}

}

else

{

level.crewused[self.set] = 1

}

end

m5crew:

/*

self.no_idle = 1

self exec global/disable_ai.scr

if (randomint(100) > 50)

self anim dead_pose2 // death_crotch

else

self anim dead_pose1 // death_prone

self threatbias ignoreme

*/

self notsolid

self hide

end

m5ammo local.i:

/*

self hide

self notsolid

// if (self.target)

// self.target notsolid

end

*/

local.ent = spawn script_origin

local.ent.mdl = self.model

local.ent.origin = self.origin

local.ent.angles = self.angles

local.ent.set = self.set

if (self.target)

{

local.ent.target = self.target

self.target.parent = local.ent

self.target.parent = self

}

println ("ammo of type " + local.ent.mdl + " at " + local.ent.origin + " and angles " + local.ent.angles + " with set "

+ local.ent.set)

// if (self.target)

// local.ent.target = self.target

level.m5_ammo[local.i] = local.ent

level.m5_ammo[local.i].target = self.target

self delete

end

bazookathread:

// println "bazookathread!!"

if (level.flags[bazooka] != 1)

end

if (self.parent)

{

println "didnt get bazooka"

end

}

else

println "there was no self parent"

self delete

// exec global/autosave.scr 1

level.flags[gotbazooka] = 1

waitthread global/objectives.scr::add_objectives 1 3 "Locate the bazooka team." $ending_point

waitthread global/objectives.scr::add_objectives 2 2 "Get past the gate into the rest of the town." $leftgate

waitthread global/objectives.scr::add_objectives 3 2 "Proceed to the south edge of town." $ending_point

waitthread global/objectives.scr::current_objectives 2

wait 60

println "z 01"

if (level.flags[door] == 1)

end

println "z 02"

while (level.flags[door] == 0)

{

for (local.i=1;local.i

{

if !(isalive level.ending_spawned[local.i])

{

println "z 03"

level.ending_spawned[local.i] = waitthread global/spawner.scr::spawner_activate

level.ending_spawn[local.i]

level.ending_spawned[local.i] thread ending_spawn_think

}

}

wait 1

}

end

escape local.ent local.num:

if (isalive local.ent)

{

local.ent.friendtype = -1

local.ent exec global/enable_ai.scr

local.ent threatbias -100

while (isalive local.ent)

{

local.ent runto $("friendly" + local.num + "destination")

local.ent waittill movedone

waitframe

}

}

end

ending_spawn_think:

self exec global/disable_ai.scr

while ((level.flags[door] == 0) && (isalive self))

{

println "z 04"

self runto self.target

self waittill movedone

if (vector_length (self.origin - self.target.origin)

{

if (level.flags[door] == 0)

{

$leftgate time 1

$rightgate time 1.2

$leftgate thread rotatedown 85

$rightgate thread rotateup 85

level.flags[door] = 1

thread escape level.friendly1 1

thread escape level.friendly2 2

thread escape level.friendly3 3

thread escape level.friendly4 4

thread escape level.friendly5 5

}

}

waitframe

}

if (isalive self)

self exec global/enable_ai.scr

while (isalive self)

{

self runto $player

self waittill movedone

waitframe

}

end

bazookahit:

self.health = 1000

local.health = self.health

while (level.flags[door] == 0)

{

self waittill damage

if ((local.health - self.health) == 110)

{

self delete

if (level.flags[door] == 0)

{

$leftgate time 1

$rightgate time 1.2

$leftgate thread rotateup 85

$rightgate thread rotatedown 85

level.flags[door] = 1

thread escape level.friendly1 1

thread escape level.friendly2 2

thread escape level.friendly3 3

thread escape level.friendly4 4

thread escape level.friendly5 5

}

}

self.health = 1000

local.health = self.health

}

println ("parm other is " + parm.other)

end

throughgate:

/*

local.ent = spawn script_origin

if ($ending_point == NULL)

local.ent.origin = ( -352 -1056 136)

else

{

local.ent.origin = $ending_point.origin

println "ENDING POINT"

}

*/

// waitthread global/objectives.scr::add_objectives 1 3 "Locate the bazooka team." $ending_point

waitthread global/objectives.scr::add_objectives 2 3 "Get past the gate into the rest of the town." $leftgate

waitthread global/objectives.scr::add_objectives 3 2 "Proceed to the south edge of town." $ending_point

waitthread global/objectives.scr::current_objectives 3

wait 1

while (vector_length ($player.origin - $ending_point.origin) > 50)

wait 0.5

if (level.flags[obj3] == 0)

{

waitthread global/objectives.scr::add_objectives 3 3 "Proceed to the south edge of town."

$ending_point

level.flags[obj3] = 1

}

// local.ent delete

end

burn:

if (parm.other == $player)

parm.other damage $world 1 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0

end

bombers10-11:

thread global/bomber.scr::bomb 510

wait 0.5

thread global/bomber.scr::bomb 511

end

bombers14-15:

thread global/bomber.scr::bomb 515

wait 0.5

thread global/bomber.scr::bomb 514

end

rotatedown local.amount:

self rotateydown local.amount

self waitmove

self connect_paths

end

rotateup local.amount:

self rotateyup local.amount

self waitmove

self connect_paths

end

// #set 500 planes fly by

/*

Set 50 enemy generator

*/

谢谢!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

登录

Already have an account? Sign in here.

现在登录
×
×
  • 创建新的...