[Release][ZM] Any Player Easter Egg Mods
-
makes sense so are the portal spawns rng or are you guaranteed another lamp if you put your first next to a lamp? Sorry for all the stupid questions lol.
-
makes sense so are the portal spawns rng or are you guaranteed another lamp if you put your first next to a lamp? Sorry for all the stupid questions lol.
knuckledragger using a teleporter from a lamp will take you to a different lamp.
-
knuckledragger using a teleporter from a lamp will take you to a different lamp.
Hadi77KSA Perfect, thanks again for everything!
-
I was doing the Maxis Die Rise EE and for some reason on my ground symbols (second set) only one would light up and then when I stepped on the other nothing would happen (meaning the first wouldn't go out/the second would light up). After going all around the map none of the three other symbols had any effect on the first. Do you have any idea why this might be?
-
I was doing the Maxis Die Rise EE and for some reason on my ground symbols (second set) only one would light up and then when I stepped on the other nothing would happen (meaning the first wouldn't go out/the second would light up). After going all around the map none of the three other symbols had any effect on the first. Do you have any idea why this might be?
knuckledragger if this was on solo, it’s intended behaviour of the mod. Read the Features section.
-
knuckledragger if this was on solo, it’s intended behaviour of the mod. Read the Features section.
Hadi77KSA Yep my bad, thank you!
-
I was doing the Die Rise EE and found a lock that prevents you from completing the EE, I think it's a vanilla game bug, it's the step where you choose either:
Richtofen: having the balls sliquified.
Maxis: Picking up the balls.The bug is that if you sliquified a ball, if you pick the other ball up you no longer can sliquifie it, and the sliquified ball can't be picked up, thus locking yourself out of the EE.
I have did this fix and it works, by changing the
self endon( "sliquified" )to alevel endon, same for the notify, to make it that if you sliquified a ball the other can't be picked up and locking you into Richtofen path, and you already get locked into maxis path if you picked up a ball.#include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\zm_highrise_sq_atd; #include maps\mp\zm_highrise_sq_pts; #include maps\mp\zombies\_zm_equipment; #include maps\mp\zombies\_zm_utility; main() { replaceFunc( maps\mp\zm_highrise_sq_slb::lion_ball_enable_pickup, ::lion_ball_enable_pickup ); replaceFunc( maps\mp\zm_highrise_sq_ssp::watch_model_sliquification, ::watch_model_sliquification ); } lion_ball_enable_pickup() { level endon( "sq_sliquified" );//changed from self endon while ( true ) { self.can_pickup = 1; self.t_pickup = sq_slb_create_use_trigger( self.origin, 32, 70, &"ZM_HIGHRISE_SQ_PICKUP_BALL" ); while ( self.can_pickup ) { self.t_pickup waittill( "trigger", player ); if ( !isdefined( player.zm_sq_has_ball ) ) { player.zm_sq_has_ball = 1; player.which_ball = self; self.can_pickup = 0; self.player = player; flag_set( "sq_ball_picked_up" ); level thread maps\mp\zm_highrise_sq_pts::pts_should_player_create_trigs( player ); level notify( "zm_ball_picked_up", player ); } } self.t_pickup delete(); self hide(); self setcandamage( 0 ); wait 1; self.t_putdown = sq_slb_create_use_trigger( self.origin, 16, 70, &"ZM_HIGHRISE_SQ_PUTDOWN_BALL" ); self.player clientclaimtrigger( self.t_putdown ); self.player.t_putdown_ball = self.t_putdown; self ball_pickup_waittill_change(); play_spark = 0; if ( !isdefined( self.t_putdown ) ) { self waittill( "sq_pickup_reset" ); play_spark = 1; } else self.t_putdown delete(); self.player notify( "zm_sq_ball_putdown" ); if ( play_spark ) { self.sq_pickup_reset = undefined; playfx( level._effect["sidequest_flash"], self.origin ); } self show(); self setcandamage( 1 ); self.player.zm_sq_has_ball = undefined; self.player = undefined; wait 1; } } watch_model_sliquification( n_end_limit, str_complete_flag ) { n_count = 0; self setcandamage( 1 ); while ( !flag( str_complete_flag ) ) { self waittill( "damage", amount, attacker, direction, point, mod, tagname, modelname, partname, weaponname ); if ( issubstr( weaponname, "slipgun" ) && !flag( "sq_ball_picked_up" ) ) { n_count++; if ( n_count >= n_end_limit ) { /# iprintlnbold( "MODEL COMPLETE: " + str_complete_flag ); #/ level notify( "sq_sliquified" );// changed from self notify if ( isdefined( self.t_pickup ) ) self.t_pickup delete(); flag_set( str_complete_flag ); } else if ( n_count == 1 ) level notify( "ssp1_ball_first_sliquified" ); else if ( n_count == 10 ) level notify( "ssp1_ball_sliquified_2" ); } } }``` -
I was doing the Die Rise EE and found a lock that prevents you from completing the EE, I think it's a vanilla game bug, it's the step where you choose either:
Richtofen: having the balls sliquified.
Maxis: Picking up the balls.The bug is that if you sliquified a ball, if you pick the other ball up you no longer can sliquifie it, and the sliquified ball can't be picked up, thus locking yourself out of the EE.
I have did this fix and it works, by changing the
self endon( "sliquified" )to alevel endon, same for the notify, to make it that if you sliquified a ball the other can't be picked up and locking you into Richtofen path, and you already get locked into maxis path if you picked up a ball.#include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\zm_highrise_sq_atd; #include maps\mp\zm_highrise_sq_pts; #include maps\mp\zombies\_zm_equipment; #include maps\mp\zombies\_zm_utility; main() { replaceFunc( maps\mp\zm_highrise_sq_slb::lion_ball_enable_pickup, ::lion_ball_enable_pickup ); replaceFunc( maps\mp\zm_highrise_sq_ssp::watch_model_sliquification, ::watch_model_sliquification ); } lion_ball_enable_pickup() { level endon( "sq_sliquified" );//changed from self endon while ( true ) { self.can_pickup = 1; self.t_pickup = sq_slb_create_use_trigger( self.origin, 32, 70, &"ZM_HIGHRISE_SQ_PICKUP_BALL" ); while ( self.can_pickup ) { self.t_pickup waittill( "trigger", player ); if ( !isdefined( player.zm_sq_has_ball ) ) { player.zm_sq_has_ball = 1; player.which_ball = self; self.can_pickup = 0; self.player = player; flag_set( "sq_ball_picked_up" ); level thread maps\mp\zm_highrise_sq_pts::pts_should_player_create_trigs( player ); level notify( "zm_ball_picked_up", player ); } } self.t_pickup delete(); self hide(); self setcandamage( 0 ); wait 1; self.t_putdown = sq_slb_create_use_trigger( self.origin, 16, 70, &"ZM_HIGHRISE_SQ_PUTDOWN_BALL" ); self.player clientclaimtrigger( self.t_putdown ); self.player.t_putdown_ball = self.t_putdown; self ball_pickup_waittill_change(); play_spark = 0; if ( !isdefined( self.t_putdown ) ) { self waittill( "sq_pickup_reset" ); play_spark = 1; } else self.t_putdown delete(); self.player notify( "zm_sq_ball_putdown" ); if ( play_spark ) { self.sq_pickup_reset = undefined; playfx( level._effect["sidequest_flash"], self.origin ); } self show(); self setcandamage( 1 ); self.player.zm_sq_has_ball = undefined; self.player = undefined; wait 1; } } watch_model_sliquification( n_end_limit, str_complete_flag ) { n_count = 0; self setcandamage( 1 ); while ( !flag( str_complete_flag ) ) { self waittill( "damage", amount, attacker, direction, point, mod, tagname, modelname, partname, weaponname ); if ( issubstr( weaponname, "slipgun" ) && !flag( "sq_ball_picked_up" ) ) { n_count++; if ( n_count >= n_end_limit ) { /# iprintlnbold( "MODEL COMPLETE: " + str_complete_flag ); #/ level notify( "sq_sliquified" );// changed from self notify if ( isdefined( self.t_pickup ) ) self.t_pickup delete(); flag_set( str_complete_flag ); } else if ( n_count == 1 ) level notify( "ssp1_ball_first_sliquified" ); else if ( n_count == 10 ) level notify( "ssp1_ball_sliquified_2" ); } } }```Ivobardolf good find. It is indeed a vanilla game bug. Unfortunately, the scope of my mod isn’t to fix vanilla bugs. The scope is to make the Easter Eggs be possible with any number of players. On that note, I won’t implement the fix. Although, your fix might be of use to server hosts.
One thing I’d note about your fix is that when one ball gets sliquified, the pick up prompt for the opposite ball would still show up although it would have no effect due to the modification you’ve made. This could potentially lead to confusion even if letting it be functional would softlock the Easter Egg. You could alternatively do this:
preventDieRiseBallsSoftlock() { level endon( "sq_ball_picked_up" ); common_scripts\utility::flag_wait_any( "sq_ball_picked_up", "ssp1_ball0_complete", "ssp1_ball1_complete" ); a_balls = getentarray( "sq_sliquify_ball", "targetname" ); for ( i = 0; i < a_balls.size; i++ ) { if ( isdefined( a_balls[i].t_pickup ) ) { a_balls[i].t_pickup delete(); } } } -
Hadi77KSA where should I put this function at? it doesn't work for me as it still shows the balls having the pickup trigger with and without the fix
-
Hadi77KSA where should I put this function at? it doesn't work for me as it still shows the balls having the pickup trigger with and without the fix
Ivobardolf apparently array_wait_any doesn’t work for whatever reason. Use the code from the edited message.