diff --git a/README.md b/README.md index a76e7878..7ceb0ddc 100644 --- a/README.md +++ b/README.md @@ -181,6 +181,7 @@ * No longer automatically switched to weapon when picked up * No longer disassembles when overheated * Weapon is taken when overheated +* Buildable table model no longer shows when player has weapon ### Sliquifier * Added upgraded version diff --git a/scripts/zm/replaced/_zm_buildables.gsc b/scripts/zm/replaced/_zm_buildables.gsc index 378db231..eb00fa03 100644 --- a/scripts/zm/replaced/_zm_buildables.gsc +++ b/scripts/zm/replaced/_zm_buildables.gsc @@ -208,6 +208,19 @@ buildable_place_think() self.stub.model show(); } + if ( !isDefined( self.stub.stand_model ) && maps\mp\zombies\_zm_equipment::is_limited_equipment( self.stub.weaponname ) ) + { + self.stub.stand_model = spawn( "script_model", self.stub.model.origin ); + self.stub.stand_model.angles = self.stub.model.angles; + + if ( self.stub.weaponname == "jetgun_zm" ) + { + self.stub.stand_model setModel( "p6_zm_buildable_sq_electric_box" ); + self.stub.stand_model.origin += (0, 0, -23); + self.stub.stand_model.angles += (0, 90, 90); + } + } + while ( self.stub.persistent == 1 ) { self waittill( "trigger", player ); @@ -254,6 +267,14 @@ buildable_place_think() player giveweapon( self.stub.weaponname ); player setweaponammoclip( self.stub.weaponname, 1 ); + if ( maps\mp\zombies\_zm_equipment::is_limited_equipment( self.stub.weaponname ) ) + { + if ( isDefined( self.stub.model ) ) + { + self.stub.model thread model_go_away(self.stub.weaponname); + } + } + if ( isDefined( level.zombie_include_buildables[ self.stub.equipname ].onbuyweapon ) ) { self [[ level.zombie_include_buildables[ self.stub.equipname ].onbuyweapon ]]( player ); @@ -286,6 +307,18 @@ buildable_place_think() } } +model_go_away(weaponname) +{ + self hide(); + + while (maps\mp\zombies\_zm_equipment::limited_equipment_in_use(weaponname)) + { + wait 0.05; + } + + self show(); +} + model_fly_away(weaponname) { origin = self.origin; @@ -307,10 +340,10 @@ model_fly_away(weaponname) self hide(); playfx( level._effect["poltergeist"], self.origin ); - self thread model_think(weaponname); + self thread model_fly_away_think(weaponname); } -model_think(weaponname) +model_fly_away_think(weaponname) { joker_model = spawn( "script_model", self.origin - (0, 0, 14) ); joker_model.angles = self.angles + (0, 90, 0); diff --git a/scripts/zm/zm_tomb/zm_tomb_reimagined.gsc b/scripts/zm/zm_tomb/zm_tomb_reimagined.gsc index 12047aee..f766509b 100644 --- a/scripts/zm/zm_tomb/zm_tomb_reimagined.gsc +++ b/scripts/zm/zm_tomb/zm_tomb_reimagined.gsc @@ -551,12 +551,7 @@ craftablestub_update_prompt( player, unitrigger ) if ( self.equipname == "equip_dieseldrone_zm" ) { - if ( player hasWeapon( self.equipname ) || ( isDefined( level.maxis_quadrotor ) && isDefined( level.maxis_quadrotor.player_owner ) && level.maxis_quadrotor.player_owner == player ) ) - { - self.hint_string = &"ZOMBIE_BUILD_PIECE_HAVE_ONE"; - return false; - } - else if (level.quadrotor_status.picked_up) + if (level.quadrotor_status.picked_up) { self.hint_string = &"ZOMBIE_BUILD_PIECE_ONLY_ONE"; return false;