mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 23:27:57 -05:00
Meat powerup: fix not working after fast_restart
Meat powerup: optimize Meat weapon init code
This commit is contained in:
@ -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");
|
||||
|
Reference in New Issue
Block a user