1450 lines
56 KiB
Text
1450 lines
56 KiB
Text
|
/*-----------------------------------------------------
|
|||
|
Animation loadout for Okinawa 2
|
|||
|
-----------------------------------------------------*/
|
|||
|
#include maps\_utility;
|
|||
|
#include common_scripts\utility;
|
|||
|
#include maps\_anim;
|
|||
|
#include maps\oki3_util;
|
|||
|
#include maps\_music;
|
|||
|
#using_animtree ("generic_human");
|
|||
|
|
|||
|
main()
|
|||
|
{
|
|||
|
|
|||
|
precache_anims();
|
|||
|
setup_supply_drop_anims();
|
|||
|
init_spiderhole_lid_anims();
|
|||
|
init_spiderhole_anims();
|
|||
|
init_outro_anim();
|
|||
|
|
|||
|
event1_mg_tarp();
|
|||
|
event2_mortarhut_explode();
|
|||
|
event4_castle_fall();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
precache_anims()
|
|||
|
{
|
|||
|
//makes it a bit easier to set it up
|
|||
|
prefix = "Oki3_IGD_";
|
|||
|
r = "_ROEB";
|
|||
|
p = "_POLO";
|
|||
|
|
|||
|
//most of the dialogue for the level
|
|||
|
level.scr_sound["mortarpit_building_explo"] = "mortarpit_building_explo";
|
|||
|
level.scr_sound["sarge"]["supplies"] = prefix + "000A" + r;
|
|||
|
level.scr_sound["sarge"]["doubletime"] = prefix + "002A" + r;
|
|||
|
level.scr_sound["polonsky"]["thereitis"] = prefix + "001A" + p;
|
|||
|
level.scr_sound["sarge"]["this_is_it"] = prefix + "003A" + r;
|
|||
|
|
|||
|
|
|||
|
level.scr_sound["polonsky"]["snipers"] = prefix + "004A" + p;
|
|||
|
level.scr_sound["polonsky"]["where_are"] = prefix + "005A" + p;
|
|||
|
level.scr_sound["polonsky"]["in_weeds"] = "Oki3_IGD_206A_POLO";
|
|||
|
level.scr_sound["polonsky"]["shoot"] = "pel2_IGD_107A_USR6";
|
|||
|
|
|||
|
level.scr_sound["sarge"]["in_trees"] = prefix + "006A" + r;
|
|||
|
level.scr_sound["sarge"]["take_down"] = prefix + "007A" + r;
|
|||
|
level.scr_sound["sarge"]["mg"] = prefix + "026A" + r;
|
|||
|
level.scr_sound["sarge"]["mg_nag"] = prefix + "028A" + r;
|
|||
|
level.scr_sound["sarge"]["incoming"] = prefix + "010A" + r;
|
|||
|
level.scr_sound["sarge"]["find_cover"] = prefix + "011A" + r;
|
|||
|
level.scr_sound["polonsky"]["incoming"] = prefix + "012A" + p;
|
|||
|
|
|||
|
//finds tunnel
|
|||
|
level.scr_sound["sarge"]["spotters"] = prefix + "013A" + r;
|
|||
|
level.scr_sound["sarge"]["take_out"] = prefix + "014A" + r;
|
|||
|
level.scr_sound["sarge"]["volunteers"] = prefix + "015A" + r;
|
|||
|
level.scr_sound["sarge"]["clear_out"] = prefix + "017A" + r;
|
|||
|
level.scr_sound["polonsky"]["miller"] = prefix + "016A" + p;
|
|||
|
|
|||
|
|
|||
|
//spiderholes/ambush
|
|||
|
level.scr_sound["sarge"]["follow_me"] = "Oki3_OrderMoveForward";
|
|||
|
level.scr_sound["sarge"]["spiderholes"] = prefix + "022A" + r;
|
|||
|
level.scr_sound["sarge"]["eyes_wide"] = prefix + "024A" + r;
|
|||
|
level.scr_sound["polonsky"]["sobs"] = prefix + "023A" + p;
|
|||
|
level.scr_sound["sarge"]["watch_more"] = prefix + "025A" + r;
|
|||
|
|
|||
|
//push forward after ambush
|
|||
|
level.scr_sound["sarge"]["push"] = prefix + "029A" + r;
|
|||
|
level.scr_sound["sarge"]["multiple"] = prefix + "030A" + r;
|
|||
|
level.scr_sound["sarge"]["each_side"] = prefix + "031A" + r;
|
|||
|
|
|||
|
level.scr_sound["sarge"]["up_stairs"] = prefix + "032A" + r;
|
|||
|
|
|||
|
|
|||
|
//mortar pits
|
|||
|
level.scr_sound["polonsky"]["first"] = prefix + "033A" + p;
|
|||
|
level.scr_sound["sarge"]["clear_em"] = prefix + "034A" + r;
|
|||
|
level.scr_sound["sarge"]["use_against"] = prefix + "035A" + r;
|
|||
|
level.scr_sound["sarge"]["one_down"] = prefix + "036A" + r;
|
|||
|
level.scr_sound["polonsky"]["second"] = prefix + "037A" + p;
|
|||
|
level.scr_sound["polonsky"]["two_more"] = prefix + "040A" + p;
|
|||
|
level.scr_sound["polonsky"]["more"] = prefix + "038A" + p;
|
|||
|
level.scr_sound["sarge"]["take_last"] = prefix + "042A" + r;
|
|||
|
level.scr_sound["sarge"]["do_it0"] = prefix + "041A" + r;
|
|||
|
level.scr_sound["sarge"]["pits_clear"] = prefix + "043A" + r;
|
|||
|
level.scr_sound["sarge"]["gatehouse"] = prefix + "039A" + r;
|
|||
|
|
|||
|
// "Get to it, Miller - Take out that Mortar pit!"
|
|||
|
level.scr_sound["sarge"]["do_it1"] = "Oki3_IGD_100A_ROEB";
|
|||
|
// "Hurry, Miller! clear that mortar pit!"
|
|||
|
level.scr_sound["sarge"]["do_it2"] = "Oki3_IGD_101A_ROEB";
|
|||
|
// "Take down that mortar pit!!!"
|
|||
|
level.scr_sound["polonsky"]["do_it0"] = "Oki3_IGD_104A_POLO";
|
|||
|
// "C'mon, Miller - destroy that mortar pit!!"
|
|||
|
level.scr_sound["polonsky"]["do_it1"] = "Oki3_IGD_105A_POLO";
|
|||
|
// "Miller - Take out the Mortar pit!"
|
|||
|
level.scr_sound["polonsky"]["do_it2"] = "Oki3_IGD_103A_POLO";
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
level.scr_sound["polonsky"]["deeper"] = prefix + "020A" + p;
|
|||
|
|
|||
|
//Over Black
|
|||
|
// "Word is - the main force pulled back to the north ridge.."
|
|||
|
level.scr_sound["sarge"]["ob1"] = "Oki3_IGD_200A_ROEB";
|
|||
|
// "...But I want everyone ready to fight."
|
|||
|
level.scr_sound["sarge"]["ob2"] = "Oki3_IGD_201A_ROEB";
|
|||
|
// "Watch the grass... Watch the trees... Watch any Goddamn place tojo could be waiting."
|
|||
|
level.scr_sound["sarge"]["ob3"] = "Oki3_IGD_202A_ROEB";
|
|||
|
|
|||
|
//to supply drop
|
|||
|
// "Our planes bombed the shit outta the place<63>"
|
|||
|
level.scr_sound["polonsky"]["planes_bombed"] = "Oki3_IGD_203A_POLO";
|
|||
|
// "They'll be back - Soon as they're refuelled and rearmed."
|
|||
|
level.scr_sound["sarge"]["be_back"] = "Oki3_IGD_204A_ROEB";
|
|||
|
// "For now - it's just us."
|
|||
|
level.scr_sound["sarge"]["for_now"] = "Oki3_IGD_205A_ROEB";
|
|||
|
|
|||
|
//ambush
|
|||
|
// "They're comin' over the sandbags!"
|
|||
|
level.scr_sound["polonsky"]["sandbags"] = "Oki3_IGD_207A_POLO";
|
|||
|
|
|||
|
//underground
|
|||
|
// "Good luck - we'll regroup on the other side!"
|
|||
|
level.scr_sound["sarge"]["good_luck"] = "Oki3_IGD_018A_ROEB";
|
|||
|
|
|||
|
//push up the hill
|
|||
|
// "Focus on the hill!"
|
|||
|
level.scr_sound["sarge"]["focus_hill"] = "Oki3_IGD_208A_ROEB";
|
|||
|
// "Get up there!"
|
|||
|
level.scr_sound["sarge"]["get_up_there"] = "Oki3_IGD_209A_ROEB";
|
|||
|
// "Spread out
|
|||
|
level.scr_sound["sarge"]["spread_out"] = "Oki3_IGD_210A_ROEB";
|
|||
|
// "Through the gate!"
|
|||
|
level.scr_sound["sarge"]["thru_gate"] = "Oki3_IGD_212A_ROEB";
|
|||
|
|
|||
|
|
|||
|
//after taking the hill
|
|||
|
// "I'm low on ammo!"
|
|||
|
level.scr_sound["polonsky"]["low_ammo"] = "Oki3_IGD_216A_POLO";
|
|||
|
// "Scavenge what you can!"
|
|||
|
level.scr_sound["sarge"]["scavenge"] = "Oki3_IGD_217A_ROEB";
|
|||
|
// "Use the enemy's weapons if you have to!"
|
|||
|
level.scr_sound["sarge"]["enemy_weapons"] = "Oki3_IGD_218A_ROEB";
|
|||
|
// "There! In the high window!"
|
|||
|
level.scr_sound["sarge"]["high_window"] = "Oki3_IGD_213A_ROEB";
|
|||
|
// "On the roof!"
|
|||
|
level.scr_sound["sarge"]["on_roof"] = "Oki3_IGD_214A_ROEB";
|
|||
|
// "More of them - on the roof!"
|
|||
|
level.scr_sound["polonsky"]["more_on_roof"] = "Oki3_IGD_215A_POLO";
|
|||
|
// "Into the west building!"
|
|||
|
level.scr_sound["sarge"]["west_bld"] = "Oki3_IGD_219A_ROEB";
|
|||
|
// "Up the stairs!"
|
|||
|
level.scr_sound["polonsky"]["stairs"] = "Oki3_IGD_220A_POLO";
|
|||
|
|
|||
|
|
|||
|
//mortar pit area
|
|||
|
|
|||
|
// "Push forward! -We've got to take out those mortars!"
|
|||
|
level.scr_sound["sarge"]["push_forward"] = "Oki3_IGD_029A_ROEB";
|
|||
|
|
|||
|
|
|||
|
// "Flank round!"
|
|||
|
level.scr_sound["sarge"]["flank_round"] = "Oki3_IGD_221A_ROEB";
|
|||
|
|
|||
|
// "Grab a mortar shell and throw it!"
|
|||
|
level.scr_sound["sarge"]["mortar_nag0"] = "Oki3_IGD_222A_ROEB";
|
|||
|
// "Pick up those mortar shells!"
|
|||
|
level.scr_sound["sarge"]["mortar_nag1"] = "Oki3_IGD_500A_ROEB";
|
|||
|
|
|||
|
|
|||
|
// "Clear the area before we move up!"
|
|||
|
level.scr_sound["sarge"]["clear_area"] = "Oki3_IGD_223A_ROEB";
|
|||
|
// "Grab more mortar shells!"
|
|||
|
level.scr_sound["sarge"]["grab_more"] = "Oki3_IGD_225A_ROEB";
|
|||
|
// "We got another MG on our left flank!"
|
|||
|
level.scr_sound["sarge"]["another_mg"] = "Oki3_IGD_226A_ROEB";
|
|||
|
// "On that balcony!"
|
|||
|
level.scr_sound["sarge"]["on_balcony"] = "Oki3_IGD_224A_ROEB";
|
|||
|
// "Good work with those mortars, Miller!"
|
|||
|
level.scr_sound["sarge"]["good_work"] = "Oki3_IGD_227A_ROEB";
|
|||
|
// "Get over to that east building!"
|
|||
|
level.scr_sound["sarge"]["east_bld"] = "Oki3_IGD_228A_ROEB";
|
|||
|
// "Pits clear - Move up!"
|
|||
|
level.scr_sound["sarge"]["pits_clear"] = "Oki3_IGD_043A_ROEB";
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//planters/garden area
|
|||
|
// "Okay... We're nearly there."
|
|||
|
level.scr_sound["sarge"]["nearly_there"] = "Oki3_IGD_229A_ROEB";
|
|||
|
// "Planes should be en route to assist."
|
|||
|
level.scr_sound["sarge"]["planes_enroute"] = "Oki3_IGD_230A_ROEB";
|
|||
|
// "Good... They can blow this place to kingdom come."
|
|||
|
level.scr_sound["polonsky"]["they_can_blow"] = "Oki3_IGD_231A_POLO";
|
|||
|
// "Stay alert."
|
|||
|
level.scr_sound["sarge"]["stay_alert"] = "Oki3_IGD_234A_ROEB";
|
|||
|
// "Clear every corner of this courtyard."
|
|||
|
level.scr_sound["sarge"]["both_sides"] = "Oki3_IGD_235A_ROEB";
|
|||
|
// "Flank round both sides!"
|
|||
|
level.scr_sound["sarge"]["every_corner"] = "Oki3_IGD_236A_ROEB";
|
|||
|
// "Split up and hunt 'em down!"
|
|||
|
level.scr_sound["sarge"]["hunt_down"] = "Oki3_IGD_237A_ROEB";
|
|||
|
|
|||
|
|
|||
|
//enter main castle sieden
|
|||
|
// "This way."
|
|||
|
level.scr_sound["sarge"]["this_way"] = "Oki3_IGD_238A_ROEB";
|
|||
|
// "Shhh..."
|
|||
|
level.scr_sound["sarge"]["shhh"] = "Oki3_IGD_240A_ROEB";
|
|||
|
// "Sarge - shadows<77>"
|
|||
|
level.scr_sound["polonsky"]["shadows"] = "Oki3_IGD_242A_POLO";
|
|||
|
|
|||
|
// "Take aim<69>"
|
|||
|
level.scr_sound["sarge"]["take_aim"] = "Oki3_IGD_243A_ROEB";
|
|||
|
// "Open fire!"
|
|||
|
level.scr_sound["sarge"]["open_fire"] = "Oki3_IGD_244A_ROEB";
|
|||
|
// "Clear the area!"
|
|||
|
level.scr_sound["sarge"]["clear_area2"] = "Oki3_IGD_245A_ROEB";
|
|||
|
// "Miller - man that MG!"
|
|||
|
level.scr_sound["sarge"]["man_mg"] = "Oki3_IGD_246A_ROEB";
|
|||
|
|
|||
|
|
|||
|
//downstairs
|
|||
|
// "Downstairs! Into the tunnels!"
|
|||
|
level.scr_sound["sarge"]["downstairs"] = "Oki3_IGD_247A_ROEB";
|
|||
|
// "Shoot those barrels!!!"
|
|||
|
level.scr_sound["sarge"]["shoot_barrels"] = "Oki3_IGD_248A_ROEB";
|
|||
|
// "Up above!"
|
|||
|
level.scr_sound["sarge"]["up_above"] = "Oki3_IGD_250A_ROEB";
|
|||
|
// "They're up above us!"
|
|||
|
level.scr_sound["sarge"]["above_us"] = "Oki3_IGD_251A_ROEB";
|
|||
|
// "On the stairs!"
|
|||
|
level.scr_sound["polonsky"]["on_stairs"] = "Oki3_IGD_252A_POLO";
|
|||
|
// "Upstairs... this way."
|
|||
|
level.scr_sound["sarge"]["upstairs"] = "Oki3_IGD_254A_ROEB";
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//fake surrender
|
|||
|
|
|||
|
// "Sarge! - We got movement."
|
|||
|
level.scr_sound["polonsky"]["movement"] = "Oki3_IGD_045A_POLO";
|
|||
|
|
|||
|
|
|||
|
// "Search him<69>"
|
|||
|
level.scr_sound["sarge"]["search_him"] = "Oki3_IGD_256A_ROEB";
|
|||
|
// "Keep those hands high<67>"
|
|||
|
level.scr_sound["sarge"]["hands_high"] = "Oki3_IGD_257A_ROEB";
|
|||
|
// "On the ground... NOW!"
|
|||
|
level.scr_sound["polonsky"]["on_ground"] = "Oki3_IGD_258A_POLO";
|
|||
|
// "I said - On the ground!"
|
|||
|
level.scr_sound["polonsky"]["i_said"] = "Oki3_IGD_259A_POLO";
|
|||
|
// "Get down... "
|
|||
|
level.scr_sound["sarge"]["get_down"] = "Oki3_IGD_260A_ROEB";
|
|||
|
|
|||
|
|
|||
|
//polonsky lives
|
|||
|
// "ROEBUCK!!!"
|
|||
|
level.scr_sound["polonsky"]["sarge"] = "Oki3_IGD_300A_POLO";
|
|||
|
// "Miller! They killed the sarge!"
|
|||
|
level.scr_sound["polonsky"]["killed_sarge"] = "Oki3_IGD_301A_POLO";
|
|||
|
// "The bastards killed him!"
|
|||
|
level.scr_sound["polonsky"]["bastards_killed"] = "Oki3_IGD_302A_POLO";
|
|||
|
// "You sons of bitches!"
|
|||
|
level.scr_sound["polonsky"]["sonsabitches"] = "Oki3_IGD_303A_POLO";
|
|||
|
// "You Goddamn sons of bitches!!!"
|
|||
|
level.scr_sound["polonsky"]["gd_sonsabitches"] = "Oki3_IGD_304A_POLO";
|
|||
|
// "You're all going to hell - y'hear me???"
|
|||
|
level.scr_sound["polonsky"]["yhear_me"] = "Oki3_IGD_305A_POLO";
|
|||
|
// "You're all going straight to Hell!!!"
|
|||
|
level.scr_sound["polonsky"]["straight_2_hell"] = "Oki3_IGD_306A_POLO";
|
|||
|
// "They're everywhere!"
|
|||
|
level.scr_sound["polonsky"]["all_around"] = "Oki3_IGD_307A_POLO";
|
|||
|
// "They're using smoke!"
|
|||
|
level.scr_sound["polonsky"]["using_smoke"] = "Oki3_IGD_308A_POLO";
|
|||
|
// "Keep firing!"
|
|||
|
level.scr_sound["polonsky"]["keep_firing"] = "Oki3_IGD_309A_POLO";
|
|||
|
// "They're comin' right at us!"
|
|||
|
level.scr_sound["polonsky"]["running_at_us"] = "Oki3_IGD_310A_POLO";
|
|||
|
// "Another fuckin' Banzaii charge!"
|
|||
|
level.scr_sound["polonsky"]["another_charge"] = "Oki3_IGD_311A_POLO";
|
|||
|
// "Hold the line!"
|
|||
|
level.scr_sound["polonsky"]["hold_line"] = "Oki3_IGD_312A_POLO";
|
|||
|
// "Let 'em have it!!!!"
|
|||
|
level.scr_sound["polonsky"]["let_em_haveit"] = "Oki3_IGD_313A_POLO";
|
|||
|
// "You guy ain't learnt your lesson?"
|
|||
|
level.scr_sound["polonsky"]["lesson"] = "Oki3_IGD_314A_POLO";
|
|||
|
// "They're pouring out of that building!!!"
|
|||
|
level.scr_sound["polonsky"]["out_of_building"] = "Oki3_IGD_315A_POLO";
|
|||
|
// "You hear that?... Call in those fucking planes!"
|
|||
|
level.scr_sound["polonsky"]["call_in_planes"] = "Oki3_IGD_316A_POLO";
|
|||
|
// "Blow the bastards to kingdom come!"
|
|||
|
level.scr_sound["polonsky"]["kingdom_come"] = "Oki3_IGD_317A_POLO";
|
|||
|
// "Miller! Call an airstrike - NOW!"
|
|||
|
level.scr_sound["polonsky"]["airstrike_now"] = "Oki3_IGD_318A_POLO";
|
|||
|
// "Do it, Miller - call in those planes!"
|
|||
|
level.scr_sound["polonsky"]["do_it_planes"] = "Oki3_IGD_319A_POLO";
|
|||
|
// "There's more of them!!!"
|
|||
|
level.scr_sound["polonsky"]["theres_more"] = "Oki3_IGD_320A_POLO";
|
|||
|
// "We need that airstrike!!!"
|
|||
|
level.scr_sound["polonsky"]["need_airstrike"] = "Oki3_IGD_321A_POLO";
|
|||
|
|
|||
|
|
|||
|
//to the east
|
|||
|
level.scr_sound["polonsky"]["to_east"] = "US_pol_direction_relative_east_00";
|
|||
|
//east of here
|
|||
|
level.scr_sound["polonsky"]["east_ofhere"] = "US_pol_direction_relative_east_01";
|
|||
|
|
|||
|
//to the north
|
|||
|
level.scr_sound["polonsky"]["to_north"] = "US_pol_direction_relative_north_00";
|
|||
|
//north of here
|
|||
|
level.scr_sound["polonsky"]["north_ofhere"] = "US_pol_direction_relative_north_01";
|
|||
|
|
|||
|
|
|||
|
// "Damn..."
|
|||
|
level.scr_sound["polonsky"]["dam"] = "Oki3_IGD_322A_POLO";
|
|||
|
// "We did it... it's over..."
|
|||
|
level.scr_sound["polonsky"]["its_over"] = "Oki3_IGD_323A_POLO";
|
|||
|
// "We made it..."
|
|||
|
level.scr_sound["polonsky"]["we_did_it"] = "Oki3_IGD_324A_POLO";
|
|||
|
|
|||
|
level.scr_sound["polonsky"]["generic_fight0"] = "Oki3_IGD_312A_POLO";//hold the line
|
|||
|
level.scr_sound["polonsky"]["generic_fight1"] = "Oki3_IGD_313A_POLO";//let em have it
|
|||
|
level.scr_sound["polonsky"]["generic_fight2"] = "Oki3_IGD_309A_POLO";//keep firing
|
|||
|
|
|||
|
//sarge lives
|
|||
|
// "Polonsky!!!"
|
|||
|
level.scr_sound["sarge"]["no_polonsky"] = "Oki3_IGD_325A_ROEB";
|
|||
|
// "Miller! Polonsky's down!"
|
|||
|
level.scr_sound["sarge"]["polonsky_down"] = "Oki3_IGD_326A_ROEB";
|
|||
|
// "Those animals killed him!"
|
|||
|
level.scr_sound["sarge"]["those_animals"] = "Oki3_IGD_327A_ROEB";
|
|||
|
// "ANIMALS!!!"
|
|||
|
level.scr_sound["sarge"]["animals"] = "Oki3_IGD_328A_ROEB";
|
|||
|
// "You Goddamn animals!!!"
|
|||
|
level.scr_sound["sarge"]["damn_animals"] = "Oki3_IGD_329A_ROEB";
|
|||
|
// "This ain't over - y'hear me???"
|
|||
|
level.scr_sound["sarge"]["aint_overa"] = "Oki3_IGD_330A_ROEB";
|
|||
|
// "This ain't OVER!!!"
|
|||
|
level.scr_sound["sarge"]["aint_overb"] = "Oki3_IGD_331A_ROEB";
|
|||
|
// "They're all around!"
|
|||
|
level.scr_sound["sarge"]["all_around"] = "Oki3_IGD_332A_ROEB";
|
|||
|
// "They're using smoke!"
|
|||
|
level.scr_sound["sarge"]["using_smoke"] = "Oki3_IGD_333A_ROEB";
|
|||
|
// "Keep suppressing firing!"
|
|||
|
level.scr_sound["sarge"]["keep_firing"] = "Oki3_IGD_334A_ROEB";
|
|||
|
// "They're running right at us!"
|
|||
|
level.scr_sound["sarge"]["running_at_us"] = "Oki3_IGD_335A_ROEB";
|
|||
|
// "Another Goddamn Banzaii charge!"
|
|||
|
level.scr_sound["sarge"]["another_charge"] = "Oki3_IGD_336A_ROEB";
|
|||
|
// "Hold the line!"
|
|||
|
level.scr_sound["sarge"]["hold_line"] = "Oki3_IGD_337A_ROEB";
|
|||
|
// "Put 'em down!!!"
|
|||
|
level.scr_sound["sarge"]["put_em_down"] = "Oki3_IGD_338A_ROEB";
|
|||
|
// "Kill 'em all!!!"
|
|||
|
level.scr_sound["sarge"]["kill_em_all"] = "Oki3_IGD_339A_ROEB";
|
|||
|
// "They're coming out of that building!!!"
|
|||
|
level.scr_sound["sarge"]["out_of_building"] = "Oki3_IGD_340A_ROEB";
|
|||
|
// "You hear that?... Call in the planes!"
|
|||
|
level.scr_sound["sarge"]["call_in_planes"] = "Oki3_IGD_341A_ROEB";
|
|||
|
// "Blow them all to Hell!"
|
|||
|
level.scr_sound["sarge"]["kingdom_come"] = "Oki3_IGD_342A_ROEB";
|
|||
|
// "Now, Miller! Call an airstrike!"
|
|||
|
level.scr_sound["sarge"]["airstrike_now"] = "Oki3_IGD_343A_ROEB";
|
|||
|
// "Call in those planes, Miller!"
|
|||
|
level.scr_sound["sarge"]["call_planes_miller"] = "Oki3_IGD_344A_ROEB";
|
|||
|
// "More of them!!!"
|
|||
|
level.scr_sound["sarge"]["more_ofem"] = "Oki3_IGD_345A_ROEB";
|
|||
|
// "We need that airstrike!!!"
|
|||
|
level.scr_sound["sarge"]["need_airstrike"] = "Oki3_IGD_346A_ROEB";
|
|||
|
|
|||
|
//to the east
|
|||
|
level.scr_sound["sarge"]["to_east"] = "US_roe_direction_relative_east_00";
|
|||
|
//east of here
|
|||
|
level.scr_sound["sarge"]["east_ofhere"] = "US_roe_direction_relative_east_01";
|
|||
|
|
|||
|
//to the north
|
|||
|
level.scr_sound["sarge"]["to_north"] = "US_roe_direction_relative_north_00";
|
|||
|
//north of here
|
|||
|
level.scr_sound["sarge"]["north_ofhere"] = "US_roe_direction_relative_north_01";
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// "Damn..."
|
|||
|
level.scr_sound["sarge"]["dam"] = "Oki3_IGD_347A_ROEB";
|
|||
|
// "It's over... It's finally over..."
|
|||
|
level.scr_sound["sarge"]["its_over"] = "Oki3_IGD_348A_ROEB";
|
|||
|
// "We did it..."
|
|||
|
level.scr_sound["sarge"]["we_did_it"] = "Oki3_IGD_349A_ROEB";
|
|||
|
|
|||
|
level.scr_sound["sarge"]["generic_fight0"] = "Oki3_IGD_337A_ROEB";//hold the line
|
|||
|
level.scr_sound["sarge"]["generic_fight1"] = "Oki3_IGD_338A_ROEB";//put em down
|
|||
|
level.scr_sound["sarge"]["generic_fight2"] = "Oki3_IGD_339A_ROEB";//kill em all
|
|||
|
level.scr_sound["sarge"]["generic_fight3"] = "Oki3_IGD_334A_ROEB";//keep firing
|
|||
|
|
|||
|
|
|||
|
//radio chatter - sarge
|
|||
|
// "Airstrike available."
|
|||
|
level.scr_sound["sarge"]["available0"] = "Pel1_IGD_835A_RADO";
|
|||
|
// "Airstrike at the ready. "
|
|||
|
level.scr_sound["sarge"]["available1"] = "Pel1_IGD_836A_RADO";
|
|||
|
// "Airstrike primed and ready to fire."
|
|||
|
level.scr_sound["sarge"]["available2"] = "Pel1_IGD_837A_RADO";
|
|||
|
// "Awaiting target co-ordinates."
|
|||
|
level.scr_sound["sarge"]["available3"] = "Pel1_IGD_838A_RADO";
|
|||
|
|
|||
|
// "Confirmed."
|
|||
|
level.scr_sound["sarge"]["confirmed0"] = "Pel1_IGD_845A_RADO";
|
|||
|
// "Co-ordinates received."
|
|||
|
level.scr_sound["sarge"]["confirmed1"] = "Pel1_IGD_841A_RADO";
|
|||
|
|
|||
|
// "30 seconds."
|
|||
|
level.scr_sound["sarge"]["45_sec"] = "Pel1_IGD_820A_RADO";
|
|||
|
level.scr_sound["sarge"]["30_sec"] = "Pel1_IGD_823A_RADO";
|
|||
|
level.scr_sound["sarge"]["20_sec"] = "Pel1_IGD_825A_RADO";
|
|||
|
level.scr_sound["sarge"]["10_sec"] = "Pel1_IGD_827A_RADO";
|
|||
|
level.scr_sound["sarge"]["5_sec"] = "Pel1_IGD_828A_RADO";
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// "Support unavailable."
|
|||
|
level.scr_sound["sarge"]["unavailable"] = "Pel1_IGD_843A_RADO";
|
|||
|
// "Negative on those co-ordinates - Check your status."
|
|||
|
level.scr_sound["sarge"]["negative"] = "Pel1_IGD_844A_RADO";
|
|||
|
|
|||
|
//target hit
|
|||
|
level.scr_sound["sarge"]["hit"] = "Pel1_IGD_810A_RADO";
|
|||
|
//target miss
|
|||
|
level.scr_sound["sarge"]["miss"] = "Pel1_IGD_804A_RADO";
|
|||
|
|
|||
|
|
|||
|
//radio chatter - polonsky
|
|||
|
// "Airstrike available."
|
|||
|
level.scr_sound["polonsky"]["available0"] = "Pel1_IGD_835A_RADO";
|
|||
|
// "Airstrike at the ready. "
|
|||
|
level.scr_sound["polonsky"]["available1"] = "Pel1_IGD_836A_RADO";
|
|||
|
// "Airstrike primed and ready to fire."
|
|||
|
level.scr_sound["polonsky"]["available2"] = "Pel1_IGD_837A_RADO";
|
|||
|
// "Awaiting target co-ordinates."
|
|||
|
level.scr_sound["polonsky"]["available3"] = "Pel1_IGD_838A_RADO";
|
|||
|
|
|||
|
// "Confirmed."
|
|||
|
level.scr_sound["polonsky"]["confirmed0"] = "Pel1_IGD_845A_RADO";
|
|||
|
// "Co-ordinates received."
|
|||
|
level.scr_sound["polonsky"]["confirmed1"] = "Pel1_IGD_841A_RADO";
|
|||
|
|
|||
|
// "20 seconds."
|
|||
|
level.scr_sound["polonsky"]["45_sec"] = "Pel1_IGD_820A_RADO";
|
|||
|
level.scr_sound["polonsky"]["30_sec"] = "Pel1_IGD_823A_RADO";
|
|||
|
level.scr_sound["polonsky"]["20_sec"] = "Pel1_IGD_825A_RADO";
|
|||
|
level.scr_sound["polonsky"]["10_sec"] = "Pel1_IGD_827A_RADO";
|
|||
|
level.scr_sound["polonsky"]["5_sec"] = "Pel1_IGD_828A_RADO";
|
|||
|
|
|||
|
// "Support unavailable."
|
|||
|
level.scr_sound["polonsky"]["unavailable"] = "Pel1_IGD_843A_RADO";
|
|||
|
// "Negative on those co-ordinates - Check your status."
|
|||
|
level.scr_sound["polonsky"]["negative"] = "Pel1_IGD_844A_RADO";
|
|||
|
|
|||
|
//target hit
|
|||
|
level.scr_sound["polonsky"]["hit"] = "Pel1_IGD_810A_RADO";
|
|||
|
|
|||
|
//target miss
|
|||
|
level.scr_sound["polonsky"]["miss"] = "Pel1_IGD_804A_RADO";
|
|||
|
|
|||
|
//death sounds
|
|||
|
level.scr_sound["polonsky"]["polonsky_death"] = "US_pol_death_large";
|
|||
|
level.scr_sound["sarge"]["sarge_death"] = "US_roe_death_small";
|
|||
|
|
|||
|
//random redshirt stuff
|
|||
|
level.scr_sound["redshirt"]["plugged_ya"] = prefix + "019A" + p;
|
|||
|
|
|||
|
//ANIMS//
|
|||
|
|
|||
|
//generic stair running anim
|
|||
|
level.scr_anim["polonsky"][ "stairs_up" ] = %ai_staircase_run_up_v1;
|
|||
|
level.scr_anim["polonsky"][ "stairs_down" ] = %ai_staircase_run_down_v1;
|
|||
|
level.scr_anim["sarge"][ "stairs_up" ] = %ai_staircase_run_up_v1;
|
|||
|
level.scr_anim["sarge"][ "stairs_down" ] = %ai_staircase_run_down_v1;
|
|||
|
level.scr_anim["generic"][ "stairs_up" ] = %ai_staircase_run_up_v1;
|
|||
|
level.scr_anim["generic"][ "stairs_down" ] = %ai_staircase_run_down_v1;
|
|||
|
|
|||
|
level.scr_sound["redshirt"]["cmon"] = "Oki3_SatchelSoldier_00";
|
|||
|
level.scr_sound["redshirt"]["hurry"] = "Oki3_SatchelSoldier_01";
|
|||
|
|
|||
|
//guys run to the supply drop
|
|||
|
level.scr_anim["sarge"]["supply_in"] = %ch_oki3_snipershot_guy1_in;
|
|||
|
level.scr_anim["sarge"]["supply_loop"][0] = %ch_oki3_snipershot_guy1_loop;
|
|||
|
level.scr_anim["sarge"]["supply_out"] = %ch_oki3_snipershot_guy1_out;
|
|||
|
|
|||
|
level.scr_anim["pawn"]["supply_in"] = %ch_oki3_snipershot_guy2_in;
|
|||
|
level.scr_anim["pawn"]["supply_loop"][0] = %ch_oki3_snipershot_guy2_loop;
|
|||
|
level.scr_anim["pawn"]["supply_out"] = %ch_oki3_snipershot_guy2_out;
|
|||
|
|
|||
|
level.scr_anim["polonsky"]["supply_in"] = %ch_oki3_snipershot_guy3_in;
|
|||
|
level.scr_anim["polonsky"]["supply_loop"][0] = %ch_oki3_snipershot_guy3_loop;
|
|||
|
level.scr_anim["polonsky"]["supply_out"] = %ch_oki3_snipershot_guy3_out;
|
|||
|
|
|||
|
//
|
|||
|
// level.scr_sound["sarge"]["here_come"] = "print:Get to that bunker now!";
|
|||
|
// level.scr_sound["sarge"]["ambush"] = "print:Ambush! They're charging us! Stand your ground Marines!";
|
|||
|
// level.scr_sound["sarge"]["get_moving"] = "print:Get moving!";
|
|||
|
// level.scr_sound["sarge"]["supplies_secured"] = "print:Good job!";
|
|||
|
// level.scr_sound["sarge"]["take_ammo"] = "print:Take some ammo from the supply drop";
|
|||
|
// level.scr_sound["sarge"]["use_airstrike"] = "print:Use the air support to destroy the buildings";
|
|||
|
//
|
|||
|
|
|||
|
//level.scr_sound["sarge"]["meet_squad"] = "print:Listen up, there's another squad up ahead waiting for us, lets move!";
|
|||
|
//level.scr_sound["polonsky"]["sarge_killed"] = "print:They got Sarge! Those bastards! Nooooooooooooooooooooo!";
|
|||
|
//
|
|||
|
//level.scr_sound["redshirt"]["getting_killed0"] = "print:Damnit we're getting murdered out here!";
|
|||
|
//level.scr_sound["redshirt"]["getting_killed1"] = "print:They're killin' us!";
|
|||
|
//level.scr_sound["redshirt"]["getting_killed2"] = "print:I don't think we can hold em much longer!";
|
|||
|
//level.scr_sound["sarge"]["meet_by_wall"] = "print:Ok guys, lets secure those supply drops. Polanski, players, come with me. The rest of you split up and secure the other drops.";
|
|||
|
//level.scr_anim["sarge"]["meet_by_wall"] = %Ch_oki3_regroup_sarge_order;
|
|||
|
//level.scr_sound["sarge"]["charge_castle"] = "print:Go!";
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//level.scr_sound["sarge"]["get_radio"] = "print:Cover me! I see a radio on that guy, I'm going to go get it, maybe we can use it";
|
|||
|
|
|||
|
//level.scr_sound["sarge"]["radio_found"] = "print:Ok, I've got the radio, i'm coming back now";
|
|||
|
//level.scr_anim["sarge"]["radio_found"]= %ch_supplydrop_guy1_pickup;
|
|||
|
|
|||
|
//level.scr_sound["polonsky"]["coming_from_north"] = "print:They're coming from the north buildings!";
|
|||
|
//level.scr_sound["polonsky"]["coming_from_south"] = "print:Damnit, now they're coming from the south!";
|
|||
|
|
|||
|
//level.scr_sound["polonsky"]["use_airsupport"] = "print:Use air support to target the north buildings!";
|
|||
|
//level.scr_sound["polonsky"]["support_used"] = "print:Great job, they won't be coming out of there any longer";
|
|||
|
//level.scr_sound["polonsky"]["target_castle"] = "print:Get some air support on the main castle soldier!";
|
|||
|
//level.scr_sound["polonsky"]["target_castle_1"] = "print:Shit, we need more firepower! Call another airstrike on the castle!";
|
|||
|
//level.scr_sound["polonsky"]["target_castle_nag"] = "print:Call another airstrike on the castle!";
|
|||
|
//level.scr_sound["polonsky"]["target_castle_2"] = "print:Damnit! One more airstrike ought to do it!";
|
|||
|
|
|||
|
//polonsky finds the tunnel entrance
|
|||
|
//level.scr_sound["polonsky"]["tunnel"] = "print:Hey Guys! Check this out, looks like another damn tunnel. Get down there and make sure it's all clear.";
|
|||
|
level.scr_anim["polonsky"]["tunnel"] = %ch_oki3_tunnel_discover;
|
|||
|
|
|||
|
level.scr_anim["redshirt"]["get_into_bunker"][0] = %ch_oki3_waving;
|
|||
|
level.scr_anim["redshirt"]["bunker_death"] = %ch_oki3_waving_death;
|
|||
|
|
|||
|
|
|||
|
//japanese are faking their surrender
|
|||
|
level.scr_anim["surrender_1"]["surrender_loop"][0] = %ch_oki3_outro_japanese1_loop;
|
|||
|
level.scr_anim["surrender_2"]["surrender_loop"][0] = %ch_oki3_outro_japanese2_loop;
|
|||
|
level.scr_anim["surrender_3"]["surrender_loop"][0] = %ch_oki3_outro_japanese3_loop;
|
|||
|
level.scr_anim["surrender_1"]["fake_surrender"] = %ch_oki3_outro_japanese1;
|
|||
|
level.scr_anim["surrender_2"]["fake_surrender"] = %ch_oki3_outro_japanese2;
|
|||
|
level.scr_anim["surrender_3"]["fake_surrender"] = %ch_oki3_outro_japanese3;
|
|||
|
level.scr_anim["surrender_1"]["fake_surrender_death"] = %ch_oki3_outro_japanese1_dead;
|
|||
|
level.scr_anim["surrender_2"]["fake_surrender_death"] = %ch_oki3_outro_japanese2_dead;
|
|||
|
level.scr_anim["surrender_3"]["fake_surrender_death"] = %ch_oki3_outro_japanese3_dead;
|
|||
|
level.scr_anim["sarge"]["fake_surrender"] = %ch_oki3_outro_roeabuck;
|
|||
|
level.scr_anim["sarge"]["fake_surrender_death"] = %ch_oki3_outro_roeabuck_dead;
|
|||
|
level.scr_anim["sarge"]["fake_surrender_trans"] = %ch_oki3_outro_roeabuck_saved;
|
|||
|
level.scr_anim["polonsky"]["fake_surrender"] = %ch_oki3_outro_polanski;
|
|||
|
level.scr_anim["polonsky"]["fake_surrender_trans"] = %ch_oki3_outro_polanski_saved; //Glocke: New animation for transitioning polanski to Roebuck's corpse
|
|||
|
level.scr_anim["polonsky"]["fake_surrender_death"] = %ch_oki3_outro_polanski_dead;
|
|||
|
addNotetrack_customFunction("sarge","explosion",maps\oki3_courtyard::surrender_death,"fake_surrender");
|
|||
|
addNotetrack_customFunction("surrender_1","weapons_ready",maps\oki3_courtyard::handle_fake_surrender,"fake_surrender");
|
|||
|
addNotetrack_customFunction("polonsky","detach_gun",::detach_gun,"fake_surrender");
|
|||
|
addNotetrack_customFunction("polonsky","attach_gun",::attach_gun,"fake_surrender");
|
|||
|
addNotetrack_customFunction("surrender_1","i_am_dead",::kill_japanese1_guy,"fake_surrender");
|
|||
|
|
|||
|
|
|||
|
|
|||
|
addNotetrack_dialogue("sarge","dialog","fake_surrender","Oki3_IGD_047A_ROEB");
|
|||
|
addNotetrack_dialogue("sarge","dialog","fake_surrender","Oki3_IGD_256A_ROEB");
|
|||
|
addNotetrack_dialogue("sarge","dialog","fake_surrender","Oki3_IGD_257A_ROEB");
|
|||
|
addNotetrack_dialogue("sarge","dialog","fake_surrender","Oki3_IGD_049A_ROEB");
|
|||
|
|
|||
|
addNotetrack_dialogue("polonsky","dialog","fake_surrender","Oki3_IGD_258A_POLO");
|
|||
|
addNotetrack_dialogue("polonsky","dialog","fake_surrender","Oki3_IGD_262A_POLO");
|
|||
|
addNotetrack_dialogue("polonsky","dialog","fake_surrender","Oki3_IGD_263A_POLO");
|
|||
|
|
|||
|
addNotetrack_dialogue("polonsky","dialog","fake_surrender","Oki3_IGD_300A_POLO");
|
|||
|
addNotetrack_dialogue("polonsky","dialog","fake_surrender","Oki3_IGD_301A_POLO");
|
|||
|
|
|||
|
|
|||
|
//grass guys
|
|||
|
level.scr_anim["bunkers"]["prone_anim_fast"] = %ch_grass_prone2run_fast;
|
|||
|
level.scr_anim["bunkers"]["prone_anim_fast_b"] = %ch_grass_prone2run_fast_b;
|
|||
|
|
|||
|
//japanese in underground tunnel event 1
|
|||
|
level.scr_anim["table_guy1"]["arguing"][0] = %ch_oki3_tableguys_guy1_loop;//%ch_makinraid_map_b_guy2;
|
|||
|
level.scr_anim["table_guy2"]["arguing"][0] = %ch_oki3_tableguys_guy2_loop;//%ch_makinraid_map_b_guy3;
|
|||
|
level.scr_anim["table_guy3"]["arguing"][0] = %ch_oki3_tableguys_guy3_loop;//%ch_makinraid_map_b_guy4;
|
|||
|
level.scr_anim["table_guy4"]["arguing"][0] = %ch_oki3_tableguys_guy4_loop;//%ch_makinraid_map_b_guy4;
|
|||
|
level.scr_anim["tunnel_guy5"]["telescope"][0] = %Ch_oki3_telescope_loop;
|
|||
|
|
|||
|
level.scr_anim["table_guy1"]["react"] = %ch_oki3_tableguys_guy1;
|
|||
|
level.scr_anim["table_guy2"]["react"] = %ch_oki3_tableguys_guy2;
|
|||
|
level.scr_anim["table_guy3"]["react"] = %ch_oki3_tableguys_guy3;
|
|||
|
level.scr_anim["table_guy4"]["react"] = %ch_oki3_tableguys_guy4;
|
|||
|
level.scr_anim["tunnel_guy5"]["react"] = %Ch_oki3_telescope;
|
|||
|
addNotetrack_customFunction("table_guy1", "explosion", ::tunnel_shake, "arguing");
|
|||
|
|
|||
|
|
|||
|
// bonzai run cycles
|
|||
|
level.scr_anim["banzai"]["sprint_a"] = %ai_bonzai_sprint_a;
|
|||
|
level.scr_anim["banzai"]["sprint_b"] = %ai_bonzai_sprint_b;
|
|||
|
level.scr_anim["banzai"]["sprint_c"] = %ai_bonzai_sprint_c;
|
|||
|
|
|||
|
level.scr_anim["banzai2"]["sprint_a"] = %ai_bonzai_sprint_a;
|
|||
|
level.scr_anim["banzai2"]["sprint_b"] = %ai_bonzai_sprint_b;
|
|||
|
level.scr_anim["banzai2"]["sprint_c"] = %ai_bonzai_sprint_c;
|
|||
|
|
|||
|
|
|||
|
//guys on the hill getting supplies
|
|||
|
level.scr_anim["redshirt"]["gather_supplies"][0] = %ch_supplydrop_guy1_pickup;
|
|||
|
|
|||
|
|
|||
|
level.scr_anim["sarge"]["door_kick3"] = %door_kick_in;
|
|||
|
addNotetrack_sound("sarge", "kick", "door_kick3", "wood_door_kick");
|
|||
|
addNotetrack_customFunction("sarge", "kick", maps\oki3::kick_mortar_boards, "door_kick3");
|
|||
|
|
|||
|
level.scr_anim["sarge"]["door_kick5"] = %ch_berlin3b_door_bash;//%door_kick_in;
|
|||
|
addNotetrack_sound("sarge", "bash", "door_kick5", "wood_door_kick");
|
|||
|
addNotetrack_customFunction("sarge", "bash", maps\oki3::shoulder_mortar_boards, "door_kick5");
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//set up sarge kicking the door in the planters area
|
|||
|
level.scr_anim["sarge"]["door_kick4"] = %ch_berlin3b_door_bash;//%door_kick_in;
|
|||
|
addNotetrack_sound("sarge", "bash", "door_kick4", "wood_door_kick");
|
|||
|
addNotetrack_customFunction("sarge", "bash", maps\oki3::shoulder_mortar_door, "door_kick4");
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//set up sarge kicking the door in the planters area
|
|||
|
level.scr_anim["sarge"]["door_kick"] = %ch_berlin3b_door_bash;//%door_kick_in;
|
|||
|
addNotetrack_sound("sarge", "bash", "door_kick", "wood_door_kick");
|
|||
|
addNotetrack_customFunction("sarge", "bash", maps\oki3::open_planter_door, "door_kick");
|
|||
|
|
|||
|
//set up sarge kicking the door in the planters area
|
|||
|
level.scr_anim["sarge"]["door_kick2"] = %ch_berlin3b_door_bash_short;//door_kick_in;
|
|||
|
addNotetrack_sound("sarge", "door_hit", "door_kick2", "wood_door_kick");
|
|||
|
addNotetrack_customFunction("sarge", "door_hit", maps\oki3_courtyard::open_courtyard_door, "door_kick2");
|
|||
|
|
|||
|
//spiderhole guy gets owned
|
|||
|
level.scr_anim["bayonet_guy1"]["flipover"] = %ch_bayonet_flipover_guy1;
|
|||
|
level.scr_anim["bayonet_guy2"]["flipover"] = %ch_bayonet_flipover_guy2;
|
|||
|
|
|||
|
//marine gets the stabbins
|
|||
|
level.scr_anim["jumpin_guy1"]["jumpin"] = %ch_bayonet_jumpin_guy1;
|
|||
|
level.scr_anim["jumpin_guy2"]["jumpin"] = %ch_bayonet_jumpin_guy2;
|
|||
|
|
|||
|
level.scr_anim["ambush_staber"]["ambush_stab"] = %ch_oki3_first_spider_guy2;
|
|||
|
level.scr_anim["ambush_stabee"]["ambush_stab"] = %ch_oki3_first_spider_guy1;
|
|||
|
level.scr_anim["ambush_stabee"]["ambush_loop"][0] = %ch_oki3_first_spider_guy1_loop;
|
|||
|
addNotetrack_customfunction("ambush_staber","now_killable",::staber_canbe_killed,"ambush_stab");
|
|||
|
addNotetrack_customfunction("ambush_staber","not_killable",::staber_cantbe_killed,"ambush_stab");
|
|||
|
|
|||
|
|
|||
|
//melee battle
|
|||
|
level.scr_anim["jpn"]["fight"] = %ch_berlin1_E3vignette3_german; // German dies
|
|||
|
level.scr_anim["us"]["fight"] = %ch_berlin1_E3vignette3_russian;
|
|||
|
level.scr_anim["jpn"]["fight_death"] = %ch_berlin1_E3vignette3_german_death;
|
|||
|
addNotetrack_customFunction("jpn", "kill_german", ::kill_vig_guy, "fight");
|
|||
|
|
|||
|
|
|||
|
//patrol stuffs
|
|||
|
level.scr_anim[ "generic" ][ "patrol_walk" ] = %patrol_bored_patrolwalk;
|
|||
|
level.scr_anim[ "generic" ][ "patrol_walk_twitch" ] = %patrol_bored_patrolwalk_twitch;
|
|||
|
level.scr_anim[ "generic" ][ "patrol_stop" ] = %patrol_bored_walk_2_bored;
|
|||
|
level.scr_anim[ "generic" ][ "patrol_start" ] = %patrol_bored_2_walk;
|
|||
|
level.scr_anim[ "generic" ][ "patrol_turn180" ] = %patrol_bored_2_walk_180turn;
|
|||
|
|
|||
|
level.scr_anim[ "generic" ][ "patrol_idle_1" ] = %patrol_bored_idle;
|
|||
|
level.scr_anim[ "generic" ][ "patrol_idle_2" ] = %patrol_bored_idle_smoke;
|
|||
|
level.scr_anim[ "generic" ][ "patrol_idle_3" ] = %patrol_bored_idle_cellphone;
|
|||
|
level.scr_anim[ "generic" ][ "patrol_idle_4" ] = %patrol_bored_twitch_bug;
|
|||
|
level.scr_anim[ "generic" ][ "patrol_idle_5" ] = %patrol_bored_twitch_checkphone;
|
|||
|
level.scr_anim[ "generic" ][ "patrol_idle_6" ] = %patrol_bored_twitch_stretch;
|
|||
|
|
|||
|
level.scr_anim[ "generic" ][ "patrol_idle_smoke" ] = %patrol_bored_idle_smoke;
|
|||
|
level.scr_anim[ "generic" ][ "patrol_idle_checkphone" ] = %patrol_bored_twitch_checkphone;
|
|||
|
level.scr_anim[ "generic" ][ "patrol_idle_stretch" ] = %patrol_bored_twitch_stretch;
|
|||
|
level.scr_anim[ "generic" ][ "patrol_idle_phone" ] = %patrol_bored_idle_cellphone;
|
|||
|
|
|||
|
|
|||
|
//satchel thrower guy
|
|||
|
level.scr_anim["redshirt"]["satchel_wait"][0] = %ch_oki3_satchel_waiting;
|
|||
|
|
|||
|
level.scr_anim["redshirt"]["satchel_throw"] = %ch_oki3_satchel_throw;
|
|||
|
//level.scr_sound["redshirt"]["satchel_throw"] = "print:Stand back , i'm gonna make sure those bastards can't use that tunnel again";
|
|||
|
addnotetrack_customfunction("redshirt","attach_bag",::attach_satchel,"satchel_wait");
|
|||
|
addnotetrack_customfunction("redshirt","detach_bag",::detach_satchel,"satchel_throw");
|
|||
|
|
|||
|
|
|||
|
//feigning death dudes
|
|||
|
level.scr_anim["feign_guy1"]["feign"][0] = %ch_makinraid_feigning_death_jap01_dead;
|
|||
|
level.scr_anim["feign_guy1"]["death"] = %ch_makinraid_feigning_death_jap01_die;
|
|||
|
level.scr_anim["feign_guy1"]["getup"] = %ch_makinraid_feigning_death_jap01_getup;
|
|||
|
|
|||
|
level.scr_anim["feign_guy2"]["feign"][0] = %ch_makinraid_feigning_death_jap04_dead;
|
|||
|
level.scr_anim["feign_guy2"]["death"] = %ch_makinraid_feigning_death_jap04_die;
|
|||
|
level.scr_anim["feign_guy2"]["getup"] = %ch_makinraid_feigning_death_jap04_getup;
|
|||
|
|
|||
|
level.scr_anim["feign_guy3"]["feign"][0] = %ch_makinraid_feigning_death_jap01_dead;
|
|||
|
level.scr_anim["feign_guy3"]["death"] = %ch_makinraid_feigning_death_jap01_die;
|
|||
|
level.scr_anim["feign_guy3"]["getup"] = %ch_makinraid_feigning_death_jap01_getup;
|
|||
|
|
|||
|
level.scr_anim["feign_guy4"]["feign"][0] = %ch_makinraid_feigning_death_jap04_dead;
|
|||
|
level.scr_anim["feign_guy4"]["death"] = %ch_makinraid_feigning_death_jap04_die;
|
|||
|
level.scr_anim["feign_guy4"]["getup"] = %ch_makinraid_feigning_death_jap04_getup;
|
|||
|
|
|||
|
level.scr_anim["feign_guy5"]["feign"][0] = %ch_makinraid_feigning_death_jap01_dead;
|
|||
|
level.scr_anim["feign_guy5"]["death"] = %ch_makinraid_feigning_death_jap01_die;
|
|||
|
level.scr_anim["feign_guy5"]["getup"] = %ch_makinraid_feigning_death_jap01_getup;
|
|||
|
|
|||
|
level.scr_anim["feign_guy6"]["feign"][0] = %ch_makinraid_feigning_death_jap04_dead;
|
|||
|
level.scr_anim["feign_guy6"]["death"] = %ch_makinraid_feigning_death_jap04_die;
|
|||
|
level.scr_anim["feign_guy6"]["getup"] = %ch_makinraid_feigning_death_jap04_getup;
|
|||
|
|
|||
|
|
|||
|
level.scr_anim["polonsky"]["outro2"] = %ch_oki3_outro2_polanski;
|
|||
|
level.scr_anim["redshirt1"]["outro2"] = %ch_oki3_outro2_redshirt1;
|
|||
|
level.scr_anim["redshirt2"]["outro2"] = %ch_oki3_outro2_redshirt2;
|
|||
|
level.scr_anim["sarge"]["outro2"] = %ch_oki3_outro2_roeabuck;
|
|||
|
addNotetrack_customfunction("polonsky","attach_tag",::attach_dogtag,"outro2");
|
|||
|
addNotetrack_customFunction("polonsky","fade_out",::fade_outro,"outro2");
|
|||
|
|
|||
|
addNotetrack_dialogue("polonsky","dialog","outro2","us_loadingmovie_oki3_00b");
|
|||
|
addNotetrack_dialogue("polonsky","dialog","outro2","us_loadingmovie_oki3_01b");
|
|||
|
addNotetrack_dialogue("polonsky","dialog","outro2","us_loadingmovie_oki3_02b");
|
|||
|
addNotetrack_dialogue("polonsky","dialog","outro2","us_loadingmovie_oki3_04b");
|
|||
|
addNotetrack_dialogue("polonsky","dialog","outro2","us_loadingmovie_oki3_05b");
|
|||
|
|
|||
|
|
|||
|
//polonsky opens the tunnel entrance
|
|||
|
level.scr_anim["polonsky"]["find_tunnel"] = %ch_oki3_polonski_trap_in;
|
|||
|
level.scr_anim["polonsky"]["open_tunnel"][0] =%ch_oki3_polonski_trap_loop;
|
|||
|
level.scr_anim["polonsky"]["close_tunnel"] =%ch_oki3_polonski_trap_out;
|
|||
|
addNotetrack_customFunction("polonsky", "attach_door", ::attach_tunnel_lid, "find_tunnel");
|
|||
|
addNotetrack_customFunction("polonsky", "detach_door", ::detach_tunnel_lid, "find_tunnel");
|
|||
|
|
|||
|
level.scr_anim["sarge"]["shoulder1"] = %ch_berlin3b_door_bash_short;
|
|||
|
level.scr_anim["sarge"]["shoulder2"] = %ch_berlin3b_door_bash;
|
|||
|
|
|||
|
// Waiting for Scripter Oki3_IGD_600A_JAS2 Oki3_IGD_600A_JAS2 JAS2 (Japanese Soldier 2) "Please don't shoot, we will surrender!" IN JAPANESE yes yes // ""Please don't shoot, we will surrender!""\level.scr_sound["jas2 (japanese soldier 2)"]["REFERENCE"] = "Oki3_IGD_600A_JAS2";
|
|||
|
// Waiting for Scripter Oki3_IGD_601A_JAS2 Oki3_IGD_601A_JAS2 JAS2 (Japanese Soldier 2) "Please!" IN JAPANESE yes yes // ""Please!""\level.scr_sound["jas2 (japanese soldier 2)"]["REFERENCE"] = "Oki3_IGD_601A_JAS2";
|
|||
|
// Waiting for Scripter Oki3_IGD_602A_JAS2 Oki3_IGD_602A_JAS2 JAS2 (Japanese Soldier 2) "Please!" IN JAPANESE yes yes // ""Please!""\level.scr_sound["jas2 (japanese soldier 2)"]["REFERENCE"] = "Oki3_IGD_602A_JAS2";
|
|||
|
// Waiting for Scripter Oki3_IGD_603A_JAS2 Oki3_IGD_603A_JAS2 JAS2 (Japanese Soldier 2) "Don't fire!' IN JAPANESE yes yes // ""Don't fire!'"\level.scr_sound["jas2 (japanese soldier 2)"]["REFERENCE"] = "Oki3_IGD_603A_JAS2";
|
|||
|
// Waiting for Scripter Oki3_IGD_604A_JAS2 Oki3_IGD_604A_JAS2 JAS2 (Japanese Soldier 2) "Don't fire!' IN JAPANESE yes yes // ""Don't fire!'"\level.scr_sound["jas2 (japanese soldier 2)"]["REFERENCE"] = "Oki3_IGD_604A_JAS2";
|
|||
|
// Waiting for Scripter Oki3_IGD_605A_JAS2 Oki3_IGD_605A_JAS2 JAS2 (Japanese Soldier 2) "Don't fire!' IN JAPANESE yes yes // ""Don't fire!'"\level.scr_sound["jas2 (japanese soldier 2)"]["REFERENCE"] = "Oki3_IGD_605A_JAS2";
|
|||
|
// Waiting for Scripter Oki3_IGD_606A_JAS2 Oki3_IGD_606A_JAS2 JAS2 (Japanese Soldier 2) "Don't fire!' IN JAPANESE yes yes // ""Don't fire!'"\level.scr_sound["jas2 (japanese soldier 2)"]["REFERENCE"] = "Oki3_IGD_606A_JAS2";
|
|||
|
// Waiting for Scripter Oki3_IGD_607A_JAS2 Oki3_IGD_607A_JAS2 JAS2 (Japanese Soldier 2) "We'll surrender!" IN JAPANESE yes yes // ""We'll surrender!""\level.scr_sound["jas2 (japanese soldier 2)"]["REFERENCE"] = "Oki3_IGD_607A_JAS2";
|
|||
|
// Waiting for Scripter Oki3_IGD_608A_JAS2 Oki3_IGD_608A_JAS2 JAS2 (Japanese Soldier 2) "We'll surrender!" IN JAPANESE yes yes // ""We'll surrender!""\level.scr_sound["jas2 (japanese soldier 2)"]["REFERENCE"] = "Oki3_IGD_608A_JAS2";
|
|||
|
// Waiting for Scripter Oki3_IGD_609A_JAS2 Oki3_IGD_609A_JAS2 JAS2 (Japanese Soldier 2) "We'll surrender!" IN JAPANESE yes yes // ""We'll surrender!""\level.scr_sound["jas2 (japanese soldier 2)"]["REFERENCE"] = "Oki3_IGD_609A_JAS2";
|
|||
|
// Waiting for Scripter Oki3_IGD_610A_JAS2 Oki3_IGD_610A_JAS2 JAS2 (Japanese Soldier 2) "We'll surrender!" IN JAPANESE yes yes // ""We'll surrender!""\level.scr_sound["jas2 (japanese soldier 2)"]["REFERENCE"] = "Oki3_IGD_610A_JAS2";
|
|||
|
|
|||
|
// ""Please don't shoot, we will surrender!""
|
|||
|
level.scr_sound["surrender_2"]["dont_shoot0"] = "Oki3_IGD_600A_JAS2";
|
|||
|
level.scr_sound["surrender_2"]["dont_shoot1"] = "Oki3_IGD_601A_JAS2";
|
|||
|
level.scr_sound["surrender_2"]["dont_shoot2"] = "Oki3_IGD_602A_JAS2";
|
|||
|
level.scr_sound["surrender_2"]["dont_shoot3"] = "Oki3_IGD_603A_JAS2";
|
|||
|
level.scr_sound["surrender_2"]["dont_shoot4"] = "Oki3_IGD_604A_JAS2";
|
|||
|
level.scr_sound["surrender_2"]["dont_shoot5"] = "Oki3_IGD_605A_JAS2";
|
|||
|
level.scr_sound["surrender_2"]["dont_shoot6"] = "Oki3_IGD_606A_JAS2";
|
|||
|
level.scr_sound["surrender_2"]["dont_shoot7"] = "Oki3_IGD_607A_JAS2";
|
|||
|
level.scr_sound["surrender_2"]["dont_shoot8"] = "Oki3_IGD_608A_JAS2";
|
|||
|
level.scr_sound["surrender_2"]["dont_shoot9"] = "Oki3_IGD_609A_JAS2";
|
|||
|
level.scr_sound["surrender_2"]["dont_shoot9"] = "Oki3_IGD_610A_JAS2";
|
|||
|
|
|||
|
//japanese guys in tunnel
|
|||
|
// "contact confirmed,"
|
|||
|
level.scr_sound["table_guy2"]["contact"] = "Oki3_IGD_900A_JAS2";
|
|||
|
// "??????????????????????"
|
|||
|
level.scr_sound["table_guy1"]["good"] = "Oki3_IGD_901A_JAS1";
|
|||
|
// "hay"
|
|||
|
level.scr_sound["table_guy1"]["hay"] = "Oki3_IGD_902A_JAS2";
|
|||
|
|
|||
|
//<2F>3rd battery to observation post six. Requesting damage report and new firing coordinates.<2E>
|
|||
|
level.scr_sound["table_guy3"]["3rdbattery"] = "Oki3_IGD_903A_JAS3";
|
|||
|
// "???"
|
|||
|
level.scr_sound["table_guy3"]["kurma"] = "Oki3_IGD_905A_JAS3";
|
|||
|
// "????????????????????????????????????"
|
|||
|
level.scr_sound["table_guy3"]["continue"] = "Oki3_IGD_906A_JAS3";
|
|||
|
|
|||
|
|
|||
|
//anim on corpse by the collectible
|
|||
|
level.scr_anim["collectible_corpse"]["death_loop"] = %ch_oki3_collectible;
|
|||
|
|
|||
|
//oon noooooes! someone died
|
|||
|
level.scr_anim["sarge"]["who_died"] = %ch_oki3_guardian_angel;
|
|||
|
level.scr_anim["polonsky"]["who_died"] = %ch_oki3_guardian_angel;
|
|||
|
|
|||
|
addNotetrack_dialogue("sarge","dialog","who_died","Oki3_IGD_325A_ROEB");
|
|||
|
addNotetrack_dialogue("sarge","dialog","who_died","Oki3_IGD_326A_ROEB");
|
|||
|
|
|||
|
addNotetrack_dialogue("polonsky","dialog","who_died","Oki3_IGD_300A_POLO");
|
|||
|
addNotetrack_dialogue("polonsky","dialog","who_died","Oki3_IGD_301A_POLO");
|
|||
|
|
|||
|
// "Hold your fire."
|
|||
|
level.scr_sound["sarge"]["hold_fire"] = "Oki3_IGD_046A_ROEB";
|
|||
|
// "Shit!"
|
|||
|
level.scr_sound["polonsky"]["shit"] = "Oki3_IGD_048A_POLO";
|
|||
|
|
|||
|
level.scr_sound["sarge"]["00b"] = "us_loadingmovie_oki3_00b";
|
|||
|
level.scr_sound["sarge"]["01b"] = "us_loadingmovie_oki3_01b";
|
|||
|
level.scr_sound["sarge"]["02b"] = "us_loadingmovie_oki3_02b";
|
|||
|
level.scr_sound["sarge"]["03c"] = "us_loadingmovie_oki3_03c";
|
|||
|
level.scr_sound["sarge"]["04b"] = "us_loadingmovie_oki3_04b";
|
|||
|
level.scr_sound["sarge"]["05b"] = "us_loadingmovie_oki3_05b";
|
|||
|
|
|||
|
|
|||
|
level.scr_sound["polonsky"]["00b"] = "us_loadingmovie_oki3_00b";
|
|||
|
level.scr_sound["polonsky"]["01b"] = "us_loadingmovie_oki3_01b";
|
|||
|
level.scr_sound["polonsky"]["02b"] = "us_loadingmovie_oki3_02b";
|
|||
|
level.scr_sound["polonsky"]["03c"] = "us_loadingmovie_oki3_03c";
|
|||
|
level.scr_sound["polonsky"]["04b"] = "us_loadingmovie_oki3_04b";
|
|||
|
level.scr_sound["polonsky"]["05b"] = "us_loadingmovie_oki3_05b";
|
|||
|
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
#using_animtree( "spiderhole_model" );
|
|||
|
init_spiderhole_lid_anims()
|
|||
|
{
|
|||
|
PrecacheModel( "tag_origin_animate" ); // Used to link the spiderhole lid
|
|||
|
level.scr_animtree["spiderhole_lid"] = #animtree;
|
|||
|
level.scr_anim["spiderhole_lid"]["jump_out"] = %o_spiderhole_jump_out_lid;
|
|||
|
level.scr_anim["spiderhole_lid"]["stumble_out"] = %o_spiderhole_stumble_out_lid;
|
|||
|
level.scr_anim["spiderhole_lid"]["grenade_toss"] = %o_spiderhole_grenade_toss_lid;
|
|||
|
level.scr_anim["spiderhole_lid"]["gun_spray"] = %o_spiderhole_gun_spray_lid;
|
|||
|
level.scr_anim["spiderhole_lid"]["idle"] = %o_spiderhole_idle_lid;
|
|||
|
level.scr_anim["spiderhole_lid"]["crouch2stand"] =%o_spiderhole_idle_lid;
|
|||
|
level.scr_anim["spiderhole_lid"]["jump_attack"] = %o_spiderhole_jump_attack_lid;
|
|||
|
}
|
|||
|
|
|||
|
#using_animtree( "generic_human" );
|
|||
|
init_spiderhole_anims()
|
|||
|
{
|
|||
|
level.scr_anim["spiderhole"]["sprint"][0] = %ai_bonzai_sprint_a;
|
|||
|
level.scr_anim["spiderhole"]["sprint"][1] = %ai_bonzai_sprint_b;
|
|||
|
level.scr_anim["spiderhole"]["sprint"][2] = %ai_bonzai_sprint_c;
|
|||
|
|
|||
|
level.scr_anim["spiderhole"]["jump_out"] = %ai_spiderhole_jump_out;
|
|||
|
level.scr_anim["spiderhole"]["stumble_out"] = %ai_spiderhole_stumble_out;
|
|||
|
level.scr_anim["spiderhole"]["grenade_toss"] = %ai_spiderhole_grenade_toss;
|
|||
|
level.scr_anim["spiderhole"]["gun_spray"] = %ai_spiderhole_gun_spray;
|
|||
|
level.scr_anim["spiderhole"]["crouch2stand"] = %crouch2stand;
|
|||
|
level.scr_anim["spiderhole"]["jump_attack"] = %ai_spiderhole_jump_attack;
|
|||
|
level.scr_anim["spiderhole"]["spiderhole_idle_crouch"][0] = %ai_spiderhole_idle;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#using_animtree ("supply_drop");
|
|||
|
setup_supply_drop_anims()
|
|||
|
{
|
|||
|
|
|||
|
//supply drop anims
|
|||
|
level.scr_anim["drop"]["drop"] = %o_supplydrop_loop;
|
|||
|
level.scr_anim["drop"]["landing"] = %o_supplydrop_landing;
|
|||
|
level.scr_anim["drop"]["landingb"] = %o_supplydrop_landingB;
|
|||
|
|
|||
|
level.scr_anim["drop1"]["drop"] = %o_supplydrop_loop;
|
|||
|
level.scr_anim["drop1"]["landing"] = %o_supplydrop_landing;
|
|||
|
level.scr_anim["drop1"]["landingb"] = %o_supplydrop_landingB;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
#using_animtree ("generic_human");
|
|||
|
banzai_run_anim_setup()
|
|||
|
{
|
|||
|
self endon("death");
|
|||
|
|
|||
|
banzai_runs = 3;
|
|||
|
num = randomint(banzai_runs);
|
|||
|
|
|||
|
anim_string = undefined;
|
|||
|
the_anim = undefined;
|
|||
|
|
|||
|
if (num == 0)
|
|||
|
{
|
|||
|
the_anim = %ai_bonzai_sprint_a;
|
|||
|
anim_string = "sprint_a";
|
|||
|
}
|
|||
|
else if (num == 1)
|
|||
|
{
|
|||
|
the_anim = %ai_bonzai_sprint_b;
|
|||
|
anim_string = "sprint_b";
|
|||
|
}
|
|||
|
else if (num == 2)
|
|||
|
{
|
|||
|
the_anim = %ai_bonzai_sprint_c;
|
|||
|
anim_string = "sprint_c";
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
the_anim = %ai_bonzai_sprint_a;
|
|||
|
anim_string = "sprint_a";
|
|||
|
}
|
|||
|
|
|||
|
//only set up banzai behavior on 85% of the guys
|
|||
|
if (isalive(self) )
|
|||
|
{
|
|||
|
//self.animname = "banzai";
|
|||
|
self.targetname = "banzai_guy";
|
|||
|
self.meleeRange = 1024;
|
|||
|
self.meleeRangeSq = 1024*1024;
|
|||
|
self.goalradius = 64;
|
|||
|
//self.a.combatrunanim = the_anim;
|
|||
|
//self.run_combatanim = the_anim;
|
|||
|
//self.preCombatRunEnabled = true;
|
|||
|
self.pathenemyFightdist = 128;
|
|||
|
self.pathenemyLookahead = 128;
|
|||
|
self setgoalentity( get_closest_player(self.origin) );
|
|||
|
self thread charge_at_players();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#using_animtree("generic_human");
|
|||
|
init_anims()
|
|||
|
{
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
// Kill the guy who dies in this vignette
|
|||
|
kill_vig_guy(guy)
|
|||
|
{
|
|||
|
if(isDefined(guy) && isAlive(guy))
|
|||
|
{
|
|||
|
guy.deathanim = level.scr_anim["jpn"]["fight_death"];
|
|||
|
if(isDefined( guy.magic_bullet_shield))
|
|||
|
{
|
|||
|
guy stop_magic_bullet_shield();
|
|||
|
}
|
|||
|
guy doDamage(guy.health + 25, (0,180,48));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//flappy curtain sweetness
|
|||
|
#using_animtree( "oki3_models" );
|
|||
|
event1_mg_tarp()
|
|||
|
{
|
|||
|
level.scr_animtree["event1_mg_curtains"] = #animtree;
|
|||
|
level.scr_anim["event1_mg_curtains"]["intro"] = %o_clothblinders_flap_intro;
|
|||
|
level.scr_anim["event1_mg_curtains"]["loop"] = %o_clothblinders_flap_loop;
|
|||
|
level.scr_anim["event1_mg_curtains"]["outro"] = %o_clothblinders_flap_outro;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#using_animtree("oki3_models");
|
|||
|
event4_castle_fall()
|
|||
|
{
|
|||
|
precachemodel("anim_okinawa_castlefront");
|
|||
|
level.scr_animtree["castle"] = #animtree;
|
|||
|
level.scr_anim["castle"]["front_fall"] = %o_oki3_castlefront;
|
|||
|
level.scr_sound["castle"]["front_fall"] = "courtyard_building_collapse";
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
event2_mortarhut_explode()
|
|||
|
{
|
|||
|
|
|||
|
PrecacheModel( "anim_okinawa_mortarpit_bunker" );
|
|||
|
|
|||
|
level.scr_animtree["mortarpit_bunker"] = #animtree;
|
|||
|
level.scr_model["mortarpit_bunker"] = "anim_okinawa_mortarpit_bunker";
|
|||
|
level.scr_anim["mortarpit_bunker"]["explode"] = %o_oki3_mortarpit_bunker;
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
tunnel_shake(guy)
|
|||
|
{
|
|||
|
earthquake(randomfloatrange(.45,.55),randomfloatrange(1.5,3),(3462.5, 2579.5, -822.3),1024);
|
|||
|
playsoundatposition("mortar_dirt",(3462.5, 2579.5, -822.3));
|
|||
|
level notify("explosion","fake");
|
|||
|
exploder(15);
|
|||
|
exploder(16);
|
|||
|
exploder(17);
|
|||
|
exploder(18);
|
|||
|
|
|||
|
lantern = getent("lantern","script_noteworthy");
|
|||
|
lantern physicslaunch ( lantern.origin, (randomintrange(-20,20),randomintrange(-20,20),randomintrange(-20,20)) );
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
#using_animtree( "player" );
|
|||
|
init_outro_anim()
|
|||
|
{
|
|||
|
level.scr_animtree["player_hands"] = #animtree;
|
|||
|
level.scr_model["player_hands"] = "viewmodel_usa_marine_player";
|
|||
|
level.scr_anim["player_hands"]["outro2"] = %int_oki3_outro2_player;
|
|||
|
}
|
|||
|
|
|||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// outro 2: sarge dies, Polonsky gets dog tag
|
|||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|||
|
// The AI animation for the intro
|
|||
|
oki3_outro_2()
|
|||
|
{
|
|||
|
|
|||
|
if(!isDefined(level.last_hero))
|
|||
|
{
|
|||
|
level.last_hero = level.polonsky;
|
|||
|
}
|
|||
|
|
|||
|
//define this so that nexmission can clean up the hudelems
|
|||
|
level.nextmission_cleanup = ::clean_up_fadeout_hud;
|
|||
|
level share_screen( get_host(), true );
|
|||
|
|
|||
|
battlechatter_off("allies");
|
|||
|
battlechatter_off("axis");
|
|||
|
level waittill("do_outro");
|
|||
|
|
|||
|
axis = getaiarray("axis");
|
|||
|
array_thread(axis,maps\oki3_util::bloody_death);
|
|||
|
|
|||
|
//make it so that nobody can be damaged during the cutscene
|
|||
|
allies = getaiarray("allies");
|
|||
|
for(i=0;i<allies.size;i++)
|
|||
|
{
|
|||
|
allies[i] setcandamage(false);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if(isAlive(level.sarge))
|
|||
|
{
|
|||
|
allies = array_remove(allies,level.sarge);
|
|||
|
|
|||
|
}
|
|||
|
if(isalive(level.polonsky))
|
|||
|
{
|
|||
|
allies = array_remove(allies,level.polonsky);
|
|||
|
}
|
|||
|
|
|||
|
//friendlies gather aroudn the supply bag
|
|||
|
level thread outro_friendlies_goto_bag(allies);
|
|||
|
|
|||
|
redshirt1 = spawn_outro_redshirt_1();//allies[randomint(allies.size)];
|
|||
|
|
|||
|
//wait a frame before spawning in the next dude;
|
|||
|
wait_network_frame();
|
|||
|
|
|||
|
redshirt2 = spawn_outro_redshirt_2();
|
|||
|
wait_network_frame();
|
|||
|
sarge = spawn_outro_corpse(level.last_hero);
|
|||
|
|
|||
|
guys = [];
|
|||
|
|
|||
|
guys[0] = sarge;
|
|||
|
guys[0].animname = "sarge";
|
|||
|
if(isAlive(level.polonsky))
|
|||
|
{
|
|||
|
guys[1] = level.polonsky;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
guys[1] = level.sarge;
|
|||
|
}
|
|||
|
guys[1].animname = "polonsky";
|
|||
|
guys[2] = redshirt1;
|
|||
|
|
|||
|
guys[3] = redshirt2;
|
|||
|
//guys[3].animname = "redshirt2";
|
|||
|
|
|||
|
anode = getnode("outro_anim", "targetname");
|
|||
|
|
|||
|
thread play_outro_on_all_players(anode);
|
|||
|
anode anim_single( guys, "outro2" );
|
|||
|
share_screen( get_host(), false );
|
|||
|
|
|||
|
setsaveddvar("miniscoreboardhide","1");
|
|||
|
players = get_players();
|
|||
|
for(i=0;i<players.size;i++)
|
|||
|
{
|
|||
|
players[i] setclientDvar("miniscoreboardhide","0");
|
|||
|
players[i] setclientDvar("compass","1");
|
|||
|
players[i] SetClientDvar( "hud_showStance", "1" );
|
|||
|
players[i] SetClientDvar( "ammoCounterHide", "0" );
|
|||
|
}
|
|||
|
|
|||
|
wait(3);
|
|||
|
nextmission();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
//play_outro_dialogue()
|
|||
|
//{
|
|||
|
//
|
|||
|
// if(!isDefined(level.last_hero))
|
|||
|
// {
|
|||
|
// level.last_hero = level.polonsky;
|
|||
|
// }
|
|||
|
// wait(1.65);
|
|||
|
// level.last_hero do_dialogue("00b");
|
|||
|
// wait(1);
|
|||
|
// level.last_hero do_dialogue("01b");
|
|||
|
// wait(1);
|
|||
|
// level.last_hero do_dialogue("02b");
|
|||
|
// //level.last_hero do_dialogue("03c");
|
|||
|
// wait(1.5);
|
|||
|
// level.last_hero do_dialogue("04b");
|
|||
|
// wait(1.25);
|
|||
|
// level.last_hero do_dialogue("05b");
|
|||
|
//}
|
|||
|
|
|||
|
/*------------------------------------
|
|||
|
friendlies goto the supply drop during the outro
|
|||
|
------------------------------------*/
|
|||
|
outro_friendlies_goto_bag(guys)
|
|||
|
{
|
|||
|
for(i=0;i<guys.size;i++)
|
|||
|
{
|
|||
|
//target = getnode("outro_patrol_" + ( i+1),"targetname");
|
|||
|
guys[i].animname = "generic";
|
|||
|
guys[i].target = "outro_patrol_" + ( i+1);
|
|||
|
guys[i] set_generic_run_anim( "patrol_walk", true );
|
|||
|
guys[i] setgoalpos( getnode(guys[i].target,"targetname").origin,getnode(guys[i].target,"targetname").angles);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
clean_up_fadeout_hud()
|
|||
|
{
|
|||
|
players = get_players();
|
|||
|
for(i=0;i<players.size;i++)
|
|||
|
{
|
|||
|
if(isDefined(players[i].warpblack))
|
|||
|
{
|
|||
|
players[i].warpblack Destroy();
|
|||
|
}
|
|||
|
players[i] setclientdvar("miniscoreboardhide","0");
|
|||
|
players[i] setclientdvar("compass","1");
|
|||
|
players[i] SetClientDvar( "hud_showStance", "1" );
|
|||
|
players[i] SetClientDvar( "ammoCounterHide", "0" );
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
play_outro_on_all_players(anode)
|
|||
|
{
|
|||
|
hide_all_player_models();
|
|||
|
|
|||
|
players = get_players();
|
|||
|
for( i = 0; i < players.size; i++ )
|
|||
|
{
|
|||
|
players[i] thread play_outro_on_player( "outro2", anode );
|
|||
|
}
|
|||
|
|
|||
|
level thread outro_smoke(players[0].origin);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
outro_smoke(org)
|
|||
|
{
|
|||
|
|
|||
|
while(1)
|
|||
|
{
|
|||
|
|
|||
|
playfx(level._effect["outro_smoke"], ( 7767, -5911, 67));
|
|||
|
wait(.5);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// Handles the spawning/lerping/playing animation of the viewhands
|
|||
|
// self is a player
|
|||
|
play_outro_on_player( anime, node )
|
|||
|
{
|
|||
|
self endon( "disconnect" );
|
|||
|
|
|||
|
self disableWeapons();
|
|||
|
|
|||
|
self allowprone(false);
|
|||
|
self allowcrouch(false);
|
|||
|
self allowstand(true);
|
|||
|
self setstance("stand");
|
|||
|
self setclientDvar("miniscoreboardhide","1");
|
|||
|
self setclientDvar("compass","0");
|
|||
|
self SetClientDvar( "hud_showStance", "0" );
|
|||
|
self SetClientDvar( "ammoCounterHide", "1" );
|
|||
|
|
|||
|
viewhands = spawn_anim_model( "player_hands" );
|
|||
|
//viewhands Hide();
|
|||
|
|
|||
|
self.viewhands = viewhands;
|
|||
|
|
|||
|
// Set the origin of the viewhands
|
|||
|
org = GetStartOrigin( node.origin, node.angles, level.scr_anim["player_hands"][anime] );
|
|||
|
angles = GetStartAngles( node.origin, node.angles, level.scr_anim["player_hands"][anime] );
|
|||
|
viewhands.origin = org;
|
|||
|
viewhands.angles = angles;
|
|||
|
guy = undefined;
|
|||
|
|
|||
|
if(isAlive(level.polonsky))
|
|||
|
{
|
|||
|
guy = level.polonsky;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
guy = level.sarge;
|
|||
|
}
|
|||
|
//guy LinkTo( viewhands, "tag_sync" );
|
|||
|
self PlayerLinkTo( viewhands, "tag_player", 1, 20, 20, 15, 0 );
|
|||
|
|
|||
|
node anim_single_solo( viewhands, anime );
|
|||
|
}
|
|||
|
|
|||
|
staber_canbe_killed(guy)
|
|||
|
{
|
|||
|
level endon("cant_kill");
|
|||
|
|
|||
|
guy.allowdeath = true;
|
|||
|
guy waittill("death");
|
|||
|
|
|||
|
level.stabee stopanimscripted();
|
|||
|
level.stabee.allowdeath = true;
|
|||
|
level.stabee.pacifist = false;
|
|||
|
level.stabee.ignoreall = false;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
staber_cantbe_killed(guy)
|
|||
|
{
|
|||
|
|
|||
|
level notify("cant_kill");
|
|||
|
guy.allowdeath = false;
|
|||
|
level.stabee dodamage(level.stabee.health + 100,level.stabee.origin);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
attach_tunnel_lid(guy)
|
|||
|
{
|
|||
|
lid = getent("tunnel_lid","targetname");
|
|||
|
//lid linkto(guy,"tag_inhand");
|
|||
|
//try tag_inhand
|
|||
|
lid linkto(guy,"tag_weapon_left");
|
|||
|
lid notsolid();
|
|||
|
level.polonsky.lid = lid;
|
|||
|
wait(1);
|
|||
|
getent("trap_door_clip","targetname") delete();
|
|||
|
level.sarge do_dialogue("clear_out");
|
|||
|
|
|||
|
tunnel = getent("tunnel_entered","targetname");
|
|||
|
objective_state(2,"done");
|
|||
|
objective_add(4,"current",&"OKI3_OBJ4_A",tunnel.origin);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
detach_tunnel_lid(guy)
|
|||
|
{
|
|||
|
lid = getent("tunnel_lid","targetname");
|
|||
|
lid unlink();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
attach_satchel(guy)
|
|||
|
{
|
|||
|
if(!isDefined(guy.satchel_attached))
|
|||
|
{
|
|||
|
guy.satchel = spawn("script_model",guy gettagorigin("tag_weapon_left"));
|
|||
|
guy.satchel setmodel("weapon_satchel_charge");
|
|||
|
guy.satchel linkto(guy,"tag_weapon_left");
|
|||
|
guy.satchel_attached = true;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
detach_satchel(guy)
|
|||
|
{
|
|||
|
guy.satchel unlink();
|
|||
|
guy.satchel delete();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
attach_dogtag(guy)
|
|||
|
{
|
|||
|
players = get_players();
|
|||
|
array_thread(players,::dogtag);
|
|||
|
}
|
|||
|
|
|||
|
dogtag()
|
|||
|
{
|
|||
|
self endon("disconnect");
|
|||
|
|
|||
|
tag = spawn("script_model",self.viewhands gettagorigin("tag_weapon"));
|
|||
|
tag.angles = self.viewhands gettagangles("tag_weapon");
|
|||
|
tag setmodel("okinawa_dogtag");
|
|||
|
self.viewhands attach("okinawa_dogtag","tag_weapon");
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
fade_outro(guy)
|
|||
|
{
|
|||
|
|
|||
|
players = get_players();
|
|||
|
for(i=0;i<players.size;i++)
|
|||
|
{
|
|||
|
players[i] thread hud_fade_to_black(.5);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/*------------------------------------
|
|||
|
detach the gun from polonsky when he
|
|||
|
beats on the guy
|
|||
|
------------------------------------*/
|
|||
|
detach_gun(guy)
|
|||
|
{
|
|||
|
position = guy.weaponInfo[ guy.weapon ].position;
|
|||
|
level.polonsky_gun = spawn("script_model", guy gettagorigin("tag_weapon_right"));
|
|||
|
level.polonsky_gun.angles = guy gettagangles("tag_weapon_right");
|
|||
|
level.polonsky_gun setmodel(getweaponmodel(guy.primaryweapon));
|
|||
|
guy animscripts\shared::placeWeaponOn( guy.primaryweapon, "none");
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/*------------------------------------
|
|||
|
reattach it when he picks it up
|
|||
|
------------------------------------*/
|
|||
|
attach_gun(guy)
|
|||
|
{
|
|||
|
guy animscripts\shared::placeWeaponOn( guy.primaryweapon, "right");
|
|||
|
level.polonsky_gun delete();
|
|||
|
}
|
|||
|
|
|||
|
/*------------------------------------
|
|||
|
kill the japanese attacker on polonsky's last punch
|
|||
|
------------------------------------*/
|
|||
|
kill_japanese1_guy(guy)
|
|||
|
{
|
|||
|
|
|||
|
guy.allowdeath = true;
|
|||
|
guy dodamage(guy.health + 5,guy.origin);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*------------------------------------
|
|||
|
either Polonsky's or Roebuck's dead body
|
|||
|
------------------------------------*/
|
|||
|
#using_animtree( "generic_human" );
|
|||
|
spawn_outro_corpse(guy)
|
|||
|
{
|
|||
|
|
|||
|
anode = getnode("outro_anim", "targetname");
|
|||
|
corpse = spawn( "script_model" , anode.origin );
|
|||
|
|
|||
|
if(isDefined(guy) && guy == level.polonsky)
|
|||
|
{
|
|||
|
corpse character\char_usa_marine_h_miller::main();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
corpse character\char_usa_marine_h_polonsky::main();
|
|||
|
}
|
|||
|
|
|||
|
corpse UseAnimTree(#animtree);
|
|||
|
corpse.animname = "sarge";
|
|||
|
return corpse;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/*------------------------------------
|
|||
|
super sad redshirt dude
|
|||
|
------------------------------------*/
|
|||
|
#using_animtree( "generic_human" );
|
|||
|
spawn_outro_redshirt_1()
|
|||
|
{
|
|||
|
|
|||
|
anode = getnode("outro_anim", "targetname");
|
|||
|
redshirt = spawn( "script_model" , anode.origin );
|
|||
|
redshirt character\char_usa_marine_r_special::main();
|
|||
|
redshirt UseAnimTree(#animtree);
|
|||
|
redshirt.animname = "redshirt1";
|
|||
|
redshirt.weapon = "m1garand";
|
|||
|
redshirt.secondaryweapon = "m1garand";
|
|||
|
redshirt.sidearm = "m1garand";
|
|||
|
redshirt anim_init_dude();
|
|||
|
|
|||
|
return redshirt;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/*------------------------------------
|
|||
|
redshirt guy
|
|||
|
------------------------------------*/
|
|||
|
#using_animtree( "generic_human" );
|
|||
|
spawn_outro_redshirt_2()
|
|||
|
{
|
|||
|
|
|||
|
anode = getnode("outro_anim", "targetname");
|
|||
|
redshirt = spawn( "script_model" , anode.origin );
|
|||
|
redshirt character\char_usa_marine_r_thompson::main();
|
|||
|
redshirt UseAnimTree(#animtree);
|
|||
|
redshirt.animname = "redshirt2";
|
|||
|
redshirt.weapon = "m1garand";
|
|||
|
redshirt.secondaryweapon = "m1garand";
|
|||
|
redshirt.sidearm = "m1garand";
|
|||
|
redshirt anim_init_dude();
|
|||
|
|
|||
|
return redshirt;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/*------------------------------------
|
|||
|
needed for the script_model dudes above
|
|||
|
so that they have weapons in their hands
|
|||
|
//stolen from the animscripts ;)
|
|||
|
------------------------------------*/
|
|||
|
anim_init_dude()
|
|||
|
{
|
|||
|
|
|||
|
self.a = spawnStruct();
|
|||
|
self.primaryweapon = self.weapon;
|
|||
|
|
|||
|
self animscripts\init::initWeapon( self.primaryweapon, "primary" );
|
|||
|
self animscripts\init::initWeapon( self.secondaryweapon, "secondary" );
|
|||
|
self animscripts\init::initWeapon( self.sidearm, "sidearm" );
|
|||
|
|
|||
|
self.a.weaponPos["left"] = "none";
|
|||
|
self.a.weaponPos["right"] = "none";
|
|||
|
self.a.weaponPos["chest"] = "none";
|
|||
|
self.a.weaponPos["back"] = "none";
|
|||
|
|
|||
|
self.lastWeapon = self.weapon;
|
|||
|
self.root_anim = %root;
|
|||
|
|
|||
|
self.isSniper = false;
|
|||
|
self.a.rockets = 3;
|
|||
|
self.a.rocketVisible = true;
|
|||
|
self.a.no_weapon_switch = false;
|
|||
|
self.a.nonstopFire = false;
|
|||
|
self.a.reacquireGuy = false;
|
|||
|
self.a.pose = "stand";
|
|||
|
self.a.movement = "stop";
|
|||
|
self.a.state = "stop";
|
|||
|
self.a.special = "none";
|
|||
|
self.a.gunHand = "none"; // Initialize so that PutGunInHand works properly.
|
|||
|
self.a.PrevPutGunInHandTime = -1;
|
|||
|
animscripts\shared::placeWeaponOn( self.primaryweapon, "right" );
|
|||
|
|
|||
|
}
|