mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-07 21:59:49 -05:00
Die Rise: add Mystery Box at Blue Highrise area and Orange Highrise area
This commit is contained in:
parent
592a793763
commit
da2dc175fc
@ -945,7 +945,9 @@
|
|||||||
### Die Rise
|
### Die Rise
|
||||||
* Added M27 to the Mystery Box
|
* Added M27 to the Mystery Box
|
||||||
* Added Fire Sale powerup
|
* Added Fire Sale powerup
|
||||||
* Moved Mystery Box in Green Rooftop Behind Restaurant zone to Green Rooftop Restaurant zone
|
* Added Mystery Box at Blue Highrise area
|
||||||
|
* Added Mystery Box at Orange Highrise area
|
||||||
|
* Moved Mystery Box at Green Rooftop area from Green Rooftop Behind Restaurant zone to Green Rooftop Restaurant zone
|
||||||
* Removed key
|
* Removed key
|
||||||
* Elevators and escape pod can be called without key
|
* Elevators and escape pod can be called without key
|
||||||
* Added purchase cost to call elevators and escape pod
|
* Added purchase cost to call elevators and escape pod
|
||||||
|
@ -25475,6 +25475,78 @@
|
|||||||
"guid" "E50C8A7B"
|
"guid" "E50C8A7B"
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
"origin" "2406 -210 1309"
|
||||||
|
"angles" "0 150 0"
|
||||||
|
"targetname" "treasure_chest_use"
|
||||||
|
"zombie_cost" "950"
|
||||||
|
"classname" "script_struct"
|
||||||
|
"script_noteworthy" "blue_level4_chest"
|
||||||
|
"guid" "871F4145"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"origin" "2406 -210 1309"
|
||||||
|
"script_noteworthy" "blue_level4_chest_zbarrier"
|
||||||
|
"type" "zmcore_MagicBox"
|
||||||
|
"angles" "0 150 0"
|
||||||
|
"barrieranimtime" "0"
|
||||||
|
"showalternatemodel" "0"
|
||||||
|
"showupgradedmodel" "0"
|
||||||
|
"zbarriernumboards" "5"
|
||||||
|
"zbarrierboardmodel1" "p6_anim_zm_magic_box_fake"
|
||||||
|
"zbarriertearanim1" "o_zombie_magic_box_fake_idle_twitch_b"
|
||||||
|
"zbarrierboardanim1" "o_zombie_magic_box_fake_idle_twitch_a"
|
||||||
|
"zbarrierboardmodel2" "p6_anim_zm_magic_box"
|
||||||
|
"zbarriertearanim2" "o_zombie_magic_box_arrive"
|
||||||
|
"zbarrierboardanim2" "o_zombie_magic_box_leave"
|
||||||
|
"zbarrierboardmodel3" "p6_anim_zm_magic_box"
|
||||||
|
"zbarriertearanim3" "o_zombie_magic_box_open"
|
||||||
|
"zbarrierboardanim3" "o_zombie_magic_box_close"
|
||||||
|
"zbarrierboardmodel4" "tag_origin"
|
||||||
|
"zbarriertearanim4" "o_zombie_magic_box_weapon_rise"
|
||||||
|
"zbarrierboardanim4" "o_zombie_magic_box_teddy_rise"
|
||||||
|
"zbarrierboardmodel5" "tag_origin"
|
||||||
|
"zbarriertearanim5" "o_zombie_magic_box_weapon_dual_rise"
|
||||||
|
"zbarrierboardanim5" "o_zombie_magic_box_teddy_rise"
|
||||||
|
"classname" "zbarrier_zmcore_MagicBox"
|
||||||
|
"guid" "879DA4D5"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"origin" "2793 1867 1413"
|
||||||
|
"angles" "-12 0 180"
|
||||||
|
"targetname" "treasure_chest_use"
|
||||||
|
"zombie_cost" "950"
|
||||||
|
"classname" "script_struct"
|
||||||
|
"script_noteworthy" "orange_level3_chest"
|
||||||
|
"guid" "871F4146"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"origin" "2793 1867 1542"
|
||||||
|
"script_noteworthy" "orange_level3_chest_zbarrier"
|
||||||
|
"type" "zmcore_MagicBox"
|
||||||
|
"angles" "-12 0 180"
|
||||||
|
"barrieranimtime" "0"
|
||||||
|
"showalternatemodel" "0"
|
||||||
|
"showupgradedmodel" "0"
|
||||||
|
"zbarriernumboards" "5"
|
||||||
|
"zbarrierboardmodel1" "p6_anim_zm_magic_box_fake"
|
||||||
|
"zbarriertearanim1" "o_zombie_magic_box_fake_idle_twitch_b"
|
||||||
|
"zbarrierboardanim1" "o_zombie_magic_box_fake_idle_twitch_a"
|
||||||
|
"zbarrierboardmodel2" "p6_anim_zm_magic_box"
|
||||||
|
"zbarriertearanim2" "o_zombie_magic_box_arrive"
|
||||||
|
"zbarrierboardanim2" "o_zombie_magic_box_leave"
|
||||||
|
"zbarrierboardmodel3" "p6_anim_zm_magic_box"
|
||||||
|
"zbarriertearanim3" "o_zombie_magic_box_open"
|
||||||
|
"zbarrierboardanim3" "o_zombie_magic_box_close"
|
||||||
|
"zbarrierboardmodel4" "tag_origin"
|
||||||
|
"zbarriertearanim4" "o_zombie_magic_box_weapon_rise"
|
||||||
|
"zbarrierboardanim4" "o_zombie_magic_box_teddy_rise"
|
||||||
|
"zbarrierboardmodel5" "tag_origin"
|
||||||
|
"zbarriertearanim5" "o_zombie_magic_box_weapon_dual_rise"
|
||||||
|
"zbarrierboardanim5" "o_zombie_magic_box_teddy_rise"
|
||||||
|
"classname" "zbarrier_zmcore_MagicBox"
|
||||||
|
"guid" "879DA4D6"
|
||||||
|
}
|
||||||
|
{
|
||||||
"fxanim_wait" ".25"
|
"fxanim_wait" ".25"
|
||||||
"fxanim_scene_1" "wirespark_med_lrg"
|
"fxanim_scene_1" "wirespark_med_lrg"
|
||||||
"classname" "script_model"
|
"classname" "script_model"
|
||||||
|
@ -222,6 +222,14 @@ spawn_mystery_box_blocks_and_collision()
|
|||||||
{
|
{
|
||||||
chests_to_spawn_ents[chests_to_spawn_ents.size] = chest;
|
chests_to_spawn_ents[chests_to_spawn_ents.size] = chest;
|
||||||
}
|
}
|
||||||
|
else if (chest.script_noteworthy == "blue_level4_chest")
|
||||||
|
{
|
||||||
|
chests_to_spawn_ents[chests_to_spawn_ents.size] = chest;
|
||||||
|
}
|
||||||
|
else if (chest.script_noteworthy == "orange_level3_chest")
|
||||||
|
{
|
||||||
|
chests_to_spawn_ents[chests_to_spawn_ents.size] = chest;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -237,20 +245,26 @@ spawn_mystery_box_blocks_and_collision()
|
|||||||
// spawn cinder blocks
|
// spawn cinder blocks
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
block = spawn("script_model", chest.origin);
|
block = spawn("script_model", chest.zbarrier.origin);
|
||||||
block.angles = chest.angles + (0, 90, 0);
|
block.angles = chest.zbarrier.angles + (0, 90, 0);
|
||||||
|
|
||||||
block.origin += anglesToRight(chest.angles) * -5;
|
// fix upside down box angles
|
||||||
block.origin += anglesToForward(chest.angles) * (37.5 + (i % 4 * -25));
|
if (abs(chest.zbarrier.angles[2]) >= 90)
|
||||||
|
{
|
||||||
|
block.angles = (0, block.angles[1], block.angles[2] + block.angles[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
block.origin += anglesToRight(chest.zbarrier.angles) * -5;
|
||||||
|
block.origin += anglesToForward(chest.zbarrier.angles) * (37.5 + (i % 4 * -25));
|
||||||
|
|
||||||
if (i >= 4)
|
if (i >= 4)
|
||||||
{
|
{
|
||||||
|
block.origin += anglesToUp(chest.zbarrier.angles) * -12;
|
||||||
block.angles += (0, 0, 90);
|
block.angles += (0, 0, 90);
|
||||||
block.origin += anglesToUp(chest.angles) * -12;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
block.origin += anglesToUp(chest.angles) * -4;
|
block.origin += anglesToUp(chest.zbarrier.angles) * -4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i % 4 == 0)
|
if (i % 4 == 0)
|
||||||
@ -270,17 +284,38 @@ spawn_mystery_box_blocks_and_collision()
|
|||||||
block.angles += (0, 22.5, 0);
|
block.angles += (0, 22.5, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fix upside down box angles
|
||||||
|
if (abs(chest.zbarrier.angles[2]) >= 90)
|
||||||
|
{
|
||||||
|
if (i % 4 == 0)
|
||||||
|
{
|
||||||
|
block.angles += (-8, 0, 4);
|
||||||
|
}
|
||||||
|
else if (i % 4 == 1)
|
||||||
|
{
|
||||||
|
block.angles += (5, 0, 1);
|
||||||
|
}
|
||||||
|
else if (i % 4 == 2)
|
||||||
|
{
|
||||||
|
block.angles += (-1, 0, 0);
|
||||||
|
}
|
||||||
|
else if (i % 4 == 3)
|
||||||
|
{
|
||||||
|
block.angles += (5, 0, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
block setModel("p_glo_cinder_block");
|
block setModel("p_glo_cinder_block");
|
||||||
}
|
}
|
||||||
|
|
||||||
// spawn collision
|
// spawn collision
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
collision = spawn("script_model", chest.origin, 1);
|
collision = spawn("script_model", chest.zbarrier.origin, 1);
|
||||||
collision.angles = chest.angles;
|
collision.angles = chest.zbarrier.angles;
|
||||||
|
|
||||||
collision.origin += anglesToForward(chest.angles) * (32 + (i * -32));
|
collision.origin += anglesToForward(chest.zbarrier.angles) * (32 + (i * -32));
|
||||||
collision.origin += anglesToUp(chest.angles) * 64;
|
collision.origin += anglesToUp(chest.zbarrier.angles) * 64;
|
||||||
|
|
||||||
collision setModel("collision_clip_32x32x128");
|
collision setModel("collision_clip_32x32x128");
|
||||||
collision disconnectPaths();
|
collision disconnectPaths();
|
||||||
|
@ -414,7 +414,7 @@ treasure_chest_weapon_spawn(chest, player, respin)
|
|||||||
|
|
||||||
start_origin = self.origin;
|
start_origin = self.origin;
|
||||||
end_origin = self.origin + v_float;
|
end_origin = self.origin + v_float;
|
||||||
angles = self.angles + (0, 180, 0);
|
angles = (self.angles + (0, 180, 0)) * (-1, 1, -1);
|
||||||
|
|
||||||
if (level.script == "zm_tomb")
|
if (level.script == "zm_tomb")
|
||||||
{
|
{
|
||||||
@ -423,12 +423,6 @@ treasure_chest_weapon_spawn(chest, player, respin)
|
|||||||
angles = self.angles;
|
angles = self.angles;
|
||||||
}
|
}
|
||||||
|
|
||||||
// angle is opposite of what it should be on upside down box
|
|
||||||
if (angles[2] < 0)
|
|
||||||
{
|
|
||||||
angles = (angles[0], angles[1], -360 - angles[2]);
|
|
||||||
}
|
|
||||||
|
|
||||||
dw_offset = (anglesToForward(angles) * -3) + (anglesToRight(angles) * -3) + (anglesToUp(angles) * -3);
|
dw_offset = (anglesToForward(angles) * -3) + (anglesToRight(angles) * -3) + (anglesToUp(angles) * -3);
|
||||||
|
|
||||||
self.weapon_model = spawn("script_model", start_origin);
|
self.weapon_model = spawn("script_model", start_origin);
|
||||||
@ -534,17 +528,18 @@ treasure_chest_weapon_spawn(chest, player, respin)
|
|||||||
{
|
{
|
||||||
self.weapon_string = undefined;
|
self.weapon_string = undefined;
|
||||||
|
|
||||||
|
joker_origin = self.weapon_model.origin;
|
||||||
joker_angles = angles - vectorscale((0, 1, 0), 90.0);
|
joker_angles = angles - vectorscale((0, 1, 0), 90.0);
|
||||||
|
|
||||||
if (angles[2] < 0)
|
if (abs(angles[2]) >= 90)
|
||||||
{
|
{
|
||||||
joker_angles = angles + vectorscale((0, 1, 0), 90.0);
|
joker_angles = angles + vectorscale((0, 1, 0), 90.0);
|
||||||
|
joker_angles = (joker_angles[2] + 180, joker_angles[1], joker_angles[0] + 180) * (-1, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// delete and respawn the joker model so that it faces the correct angle right away
|
// delete and respawn the joker model so that it faces the correct angle right away
|
||||||
origin = self.weapon_model.origin;
|
|
||||||
self.weapon_model delete();
|
self.weapon_model delete();
|
||||||
self.weapon_model = spawn("script_model", origin);
|
self.weapon_model = spawn("script_model", joker_origin);
|
||||||
self.weapon_model.angles = joker_angles;
|
self.weapon_model.angles = joker_angles;
|
||||||
self.weapon_model setmodel(level.chest_joker_model);
|
self.weapon_model setmodel(level.chest_joker_model);
|
||||||
self.weapon_model_dw hide();
|
self.weapon_model_dw hide();
|
||||||
|
@ -86,3 +86,19 @@ zclassic_preinit()
|
|||||||
deposit_spot thread maps\mp\zombies\_zm_banking::bank_deposit_unitrigger();
|
deposit_spot thread maps\mp\zombies\_zm_banking::bank_deposit_unitrigger();
|
||||||
withdraw_spot thread maps\mp\zombies\_zm_banking::bank_withdraw_unitrigger();
|
withdraw_spot thread maps\mp\zombies\_zm_banking::bank_withdraw_unitrigger();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
is_magic_box_in_inverted_building()
|
||||||
|
{
|
||||||
|
b_is_in_inverted_building = 0;
|
||||||
|
a_boxes_in_inverted_building = array("start_chest", "orange_level3_chest");
|
||||||
|
str_location = level.chests[level.chest_index].script_noteworthy;
|
||||||
|
assert(isdefined(str_location), "is_magic_box_in_inverted_building() can't find magic box location");
|
||||||
|
|
||||||
|
for (i = 0; i < a_boxes_in_inverted_building.size; i++)
|
||||||
|
{
|
||||||
|
if (a_boxes_in_inverted_building[i] == str_location)
|
||||||
|
b_is_in_inverted_building = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return b_is_in_inverted_building;
|
||||||
|
}
|
@ -5,6 +5,7 @@
|
|||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
replaceFunc(maps\mp\zm_highrise_sq::navcomputer_waitfor_navcard, scripts\zm\reimagined\_zm_sq::navcomputer_waitfor_navcard);
|
replaceFunc(maps\mp\zm_highrise_sq::navcomputer_waitfor_navcard, scripts\zm\reimagined\_zm_sq::navcomputer_waitfor_navcard);
|
||||||
|
replaceFunc(maps\mp\zm_highrise::is_magic_box_in_inverted_building, scripts\zm\replaced\zm_highrise::is_magic_box_in_inverted_building);
|
||||||
replaceFunc(maps\mp\zm_highrise_sq::init, scripts\zm\replaced\zm_highrise_sq::init);
|
replaceFunc(maps\mp\zm_highrise_sq::init, scripts\zm\replaced\zm_highrise_sq::init);
|
||||||
replaceFunc(maps\mp\zm_highrise_sq::sq_is_weapon_sniper, scripts\zm\replaced\zm_highrise_sq::sq_is_weapon_sniper);
|
replaceFunc(maps\mp\zm_highrise_sq::sq_is_weapon_sniper, scripts\zm\replaced\zm_highrise_sq::sq_is_weapon_sniper);
|
||||||
replaceFunc(maps\mp\zm_highrise_sq_atd::init, scripts\zm\replaced\zm_highrise_sq_atd::init);
|
replaceFunc(maps\mp\zm_highrise_sq_atd::init, scripts\zm\replaced\zm_highrise_sq_atd::init);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user