mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-07 21:59:49 -05:00
Meat powerup: fix not working after fast_restart
Meat powerup: optimize Meat weapon init code
This commit is contained in:
parent
3fffb47e34
commit
e59883db37
@ -21,10 +21,50 @@ init_item_meat(gametype)
|
||||
set_gamemode_var_once("item_meat_model", "t6_wpn_zmb_meat_world");
|
||||
}
|
||||
|
||||
level._effect["meat_impact"] = loadfx( "maps/zombie/fx_zmb_meat_impact" );
|
||||
level._effect["spawn_cloud"] = loadfx( "maps/zombie/fx_zmb_race_zombie_spawn_cloud" );
|
||||
level._effect["meat_stink_camera"] = loadfx( "maps/zombie/fx_zmb_meat_stink_camera" );
|
||||
level._effect["meat_stink_torso"] = loadfx( "maps/zombie/fx_zmb_meat_stink_torso" );
|
||||
include_powerup( "meat_stink" );
|
||||
maps\mp\zombies\_zm_powerups::add_zombie_powerup( "meat_stink", get_gamemode_var("item_meat_model"), &"ZOMBIE_POWERUP_MAX_AMMO", ::func_should_drop_meat, 1, 0, 0 );
|
||||
|
||||
precacheitem(get_gamemode_var("item_meat_name"));
|
||||
set_gamemode_var_once("start_item_meat_name", get_gamemode_var("item_meat_name"));
|
||||
level.meat_weaponidx = getweaponindexfromname(get_gamemode_var("item_meat_name"));
|
||||
level.meat_pickupsound = getweaponpickupsound(level.meat_weaponidx);
|
||||
level.meat_pickupsoundplayer = getweaponpickupsoundplayer(level.meat_weaponidx);
|
||||
level.item_meat_name = get_gamemode_var("item_meat_name");
|
||||
}
|
||||
|
||||
func_should_drop_meat()
|
||||
{
|
||||
if (level.scr_zm_ui_gametype_obj == "zmeat")
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
foreach (powerup in level.active_powerups)
|
||||
{
|
||||
if (powerup.powerup_name == "meat_stink")
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
players = get_players();
|
||||
|
||||
foreach (player in players)
|
||||
{
|
||||
if (player hasWeapon(level.item_meat_name))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (isDefined(level.item_meat) || is_true(level.meat_on_ground) || isDefined(level.meat_player))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
@ -2,6 +2,26 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\zombies\_zm_utility;
|
||||
|
||||
postinit_func()
|
||||
{
|
||||
level.min_humans = 1;
|
||||
level.zombie_ai_limit = 24;
|
||||
level.prevent_player_damage = ::player_prevent_damage;
|
||||
level.lock_player_on_team_score = 1;
|
||||
level._zombiemode_powerup_grab = ::meat_stink_powerup_grab;
|
||||
level.meat_bounce_override = ::meat_bounce_override;
|
||||
level._zombie_spawning = 0;
|
||||
level._get_game_module_players = undefined;
|
||||
level.powerup_drop_count = 0;
|
||||
level.is_zombie_level = 1;
|
||||
|
||||
setmatchtalkflag( "DeadChatWithDead", 1 );
|
||||
setmatchtalkflag( "DeadChatWithTeam", 1 );
|
||||
setmatchtalkflag( "DeadHearTeamLiving", 1 );
|
||||
setmatchtalkflag( "DeadHearAllLiving", 1 );
|
||||
setmatchtalkflag( "EveryoneHearsEveryone", 1 );
|
||||
}
|
||||
|
||||
game_mode_spawn_player_logic()
|
||||
{
|
||||
if (isDefined(level.should_respawn_func) && [[level.should_respawn_func]]())
|
||||
|
@ -4,6 +4,20 @@
|
||||
#include maps\mp\zombies\_zm_utility;
|
||||
#include maps\mp\zombies\_zm_game_module_meat_utility;
|
||||
|
||||
create_item_meat_watcher()
|
||||
{
|
||||
watcher = self maps\mp\gametypes_zm\_weaponobjects::createuseweaponobjectwatcher( "item_meat", get_gamemode_var( "item_meat_name" ), self.team );
|
||||
watcher.pickup = ::item_meat_on_pickup;
|
||||
watcher.onspawn = ::item_meat_spawned;
|
||||
watcher.onspawnretrievetriggers = ::play_item_meat_on_spawn_retrieve_trigger;
|
||||
watcher.headicon = 0;
|
||||
}
|
||||
|
||||
play_item_meat_on_spawn_retrieve_trigger( watcher, player )
|
||||
{
|
||||
self item_meat_on_spawn_retrieve_trigger( watcher, player, get_gamemode_var( "item_meat_name" ) );
|
||||
}
|
||||
|
||||
item_meat_on_spawn_retrieve_trigger(watcher, player, weaponname)
|
||||
{
|
||||
self endon("death");
|
||||
|
@ -18,8 +18,9 @@ main()
|
||||
replaceFunc(maps\mp\gametypes_zm\_zm_gametype::onspawnplayer, scripts\zm\replaced\_zm_gametype::onspawnplayer);
|
||||
replaceFunc(maps\mp\gametypes_zm\_zm_gametype::onplayerspawned, scripts\zm\replaced\_zm_gametype::onplayerspawned);
|
||||
replaceFunc(maps\mp\gametypes_zm\_zm_gametype::menu_onmenuresponse, scripts\zm\replaced\_zm_gametype::menu_onmenuresponse);
|
||||
replaceFunc(maps\mp\gametypes_zm\zgrief::postinit_func, scripts\zm\replaced\zgrief::postinit_func);
|
||||
replaceFunc(maps\mp\gametypes_zm\zgrief::meat_stink, scripts\zm\replaced\zgrief::meat_stink);
|
||||
replaceFunc(maps\mp\gametypes_zm\zmeat::item_meat_on_spawn_retrieve_trigger, scripts\zm\replaced\zmeat::item_meat_on_spawn_retrieve_trigger);
|
||||
replaceFunc(maps\mp\gametypes_zm\zmeat::create_item_meat_watcher, scripts\zm\replaced\zmeat::create_item_meat_watcher);
|
||||
}
|
||||
|
||||
init()
|
||||
@ -340,8 +341,6 @@ set_grief_vars()
|
||||
|
||||
level.noroundnumber = 1;
|
||||
level.snr_round_number = 1;
|
||||
level.zombie_powerups["meat_stink"].solo = 1;
|
||||
level.zombie_powerups["meat_stink"].func_should_drop_with_regular_powerups = ::func_should_drop_meat;
|
||||
level.custom_end_screen = ::custom_end_screen;
|
||||
level.game_module_onplayerconnect = ::grief_onplayerconnect;
|
||||
level.game_mode_custom_onplayerdisconnect = ::grief_onplayerdisconnect;
|
||||
@ -2373,39 +2372,6 @@ player_suicide()
|
||||
self.playersuicided = undefined;
|
||||
}
|
||||
|
||||
func_should_drop_meat()
|
||||
{
|
||||
if (level.scr_zm_ui_gametype_obj == "zmeat")
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
foreach (powerup in level.active_powerups)
|
||||
{
|
||||
if (powerup.powerup_name == "meat_stink")
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
players = get_players();
|
||||
|
||||
foreach (player in players)
|
||||
{
|
||||
if (player hasWeapon(level.item_meat_name))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (isDefined(level.item_meat) || is_true(level.meat_on_ground) || isDefined(level.meat_player))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
remove_round_number()
|
||||
{
|
||||
level endon("end_game");
|
||||
|
@ -66,7 +66,6 @@ main()
|
||||
|
||||
init()
|
||||
{
|
||||
precacheModel("t6_wpn_zmb_severedhead_world");
|
||||
precacheModel("collision_clip_32x32x32");
|
||||
|
||||
level.zombie_init_done = ::zombie_init_done;
|
||||
@ -75,7 +74,6 @@ init()
|
||||
level.custom_laststand_func = scripts\zm\replaced\_zm_perk_electric_cherry::electric_cherry_laststand;
|
||||
|
||||
level.zombie_vars["below_world_check"] = -15000;
|
||||
level.zombie_powerups["meat_stink"].model_name = "t6_wpn_zmb_severedhead_world";
|
||||
|
||||
maps\mp\zombies\_zm::spawn_life_brush((94, 6063, 240), 256, 256);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user