From 95553f1d6b20cd0a8488efbe472a41e7033f5eca Mon Sep 17 00:00:00 2001 From: Jbleezy Date: Wed, 8 Mar 2023 05:32:59 -0800 Subject: [PATCH] Sliquifier: add teddy bear to buildable table after weapon taken --- README.md | 3 ++ scripts/zm/replaced/_zm_buildables.gsc | 52 +++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c5783425..a76e7878 100644 --- a/README.md +++ b/README.md @@ -186,6 +186,9 @@ * Added upgraded version * Kills on any round (normally stops killing after round 100) * Removed additional goo created by chain kills +* Added teddy bear to buildable table after weapon is taken from it +* Teddy bear standing up means weapon is not available from Mystery Box +* Teddy bear lying down means weapon is available from Mystery Box ### Paralyzer * Kills on any round diff --git a/scripts/zm/replaced/_zm_buildables.gsc b/scripts/zm/replaced/_zm_buildables.gsc index a4b3bab5..378db231 100644 --- a/scripts/zm/replaced/_zm_buildables.gsc +++ b/scripts/zm/replaced/_zm_buildables.gsc @@ -170,7 +170,7 @@ buildable_place_think() if ( isDefined( self.stub.model ) ) { - self.stub.model thread maps\mp\zombies\_zm_buildables::model_fly_away(); + self.stub.model thread model_fly_away(self.stub.weaponname); } player maps\mp\zombies\_zm_weapons::weapon_give( self.stub.weaponname ); @@ -284,4 +284,54 @@ buildable_place_think() } } } +} + +model_fly_away(weaponname) +{ + origin = self.origin; + self moveto( self.origin + vectorscale( ( 0, 0, 1 ), 40.0 ), 3 ); + direction = self.origin; + direction = ( direction[1], direction[0], 0 ); + + if ( direction[1] < 0 || direction[0] > 0 && direction[1] > 0 ) + direction = ( direction[0], direction[1] * -1, 0 ); + else if ( direction[0] < 0 ) + direction = ( direction[0] * -1, direction[1], 0 ); + + self vibrate( direction, 10, 0.5, 3 ); + + self waittill( "movedone" ); + + self.origin = origin; + self.angles = (0, self.angles[1], 0); + self hide(); + playfx( level._effect["poltergeist"], self.origin ); + + self thread model_think(weaponname); +} + +model_think(weaponname) +{ + joker_model = spawn( "script_model", self.origin - (0, 0, 14) ); + joker_model.angles = self.angles + (0, 90, 0); + joker_model setModel(level.chest_joker_model); + + while (1) + { + while (!maps\mp\zombies\_zm_weapons::limited_weapon_below_quota( weaponname, undefined )) + { + wait 0.05; + } + + joker_model.angles += (90, 0, 0); + playfx( level._effect["poltergeist"], self.origin ); + + while (maps\mp\zombies\_zm_weapons::limited_weapon_below_quota( weaponname, undefined )) + { + wait 0.05; + } + + joker_model.angles -= (90, 0, 0); + playfx( level._effect["poltergeist"], self.origin ); + } } \ No newline at end of file