Skip to content
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Donate
Collapse

Plutonium

  1. Home
  2. BO2 Modding Releases & Resources
  3. [Release][ZM] Any Player Easter Egg Mods

[Release][ZM] Any Player Easter Egg Mods

Scheduled Pinned Locked Moved BO2 Modding Releases & Resources
easter eggssolocooptranzitdie riseburiedoriginsmotdmob of the dead
222 Posts 59 Posters 104.6k Views 16 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Hadi77KSAundefined Hadi77KSA

    knuckledragger if this was on solo, it’s intended behaviour of the mod. Read the Features section.

    knuckledraggerundefined Offline
    knuckledraggerundefined Offline
    knuckledragger
    wrote on last edited by
    #211

    Hadi77KSA Yep my bad, thank you!

    1 Reply Last reply
    0
    • Ivobardolfundefined Offline
      Ivobardolfundefined Offline
      Ivobardolf
      wrote on last edited by
      #212

      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 a level 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" );
              }
          }
      }```
      Hadi77KSAundefined 1 Reply Last reply
      0
      • Ivobardolfundefined Ivobardolf

        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 a level 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" );
                }
            }
        }```
        Hadi77KSAundefined Offline
        Hadi77KSAundefined Offline
        Hadi77KSA
        Contributor
        wrote on last edited by Hadi77KSA
        #213

        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();
                }
            }
        }
        1 Reply Last reply
        1
        • Ivobardolfundefined Offline
          Ivobardolfundefined Offline
          Ivobardolf
          wrote on last edited by Ivobardolf
          #214

          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

          Hadi77KSAundefined 1 Reply Last reply
          0
          • Ivobardolfundefined Ivobardolf

            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

            Hadi77KSAundefined Offline
            Hadi77KSAundefined Offline
            Hadi77KSA
            Contributor
            wrote on last edited by
            #215

            Ivobardolf apparently array_wait_any doesn’t work for whatever reason. Use the code from the edited message.

            1 Reply Last reply
            1
            • fluxationundefined Offline
              fluxationundefined Offline
              fluxation
              wrote last edited by
              #216

              Should the scripts comes with the latest release download or are they downloaded separately?

              Hadi77KSAundefined 1 Reply Last reply
              0
              • fluxationundefined fluxation

                Should the scripts comes with the latest release download or are they downloaded separately?

                Hadi77KSAundefined Offline
                Hadi77KSAundefined Offline
                Hadi77KSA
                Contributor
                wrote last edited by
                #217

                fluxation the main installation and complete scripts folder alternative installation will make the following scripts load automatically:

                • tranzit_maxis_any_player_ee.gsc
                • die_rise_any_player_ee.gsc
                • buried_any_player_ee.gsc
                • super_any_player_ee.gsc
                • origins_any_player_ee.gsc

                For any other script (patches/extras/Mob of the Dead), you'd have to follow additional steps, which those would be exactly or close to the individual files alternative installation instructions.

                1 Reply Last reply
                0
                • fluxationundefined Offline
                  fluxationundefined Offline
                  fluxation
                  wrote last edited by
                  #218

                  Thanks for clarifying 🙂

                  1 Reply Last reply
                  0
                  • Juanlaverga1234undefined Offline
                    Juanlaverga1234undefined Offline
                    Juanlaverga1234
                    wrote last edited by
                    #219

                    Tranzit and Die Rise have worked for me, but in Buried I always get stuck on the last step of the EE. Can someone help me?

                    Hadi77KSAundefined 1 Reply Last reply
                    0
                    • Juanlaverga1234undefined Juanlaverga1234

                      Tranzit and Die Rise have worked for me, but in Buried I always get stuck on the last step of the EE. Can someone help me?

                      Hadi77KSAundefined Offline
                      Hadi77KSAundefined Offline
                      Hadi77KSA
                      Contributor
                      wrote last edited by
                      #220

                      Juanlaverga1234 if you’re able to start the sharpshooter, then make sure to hit the required number of targets. Otherwise, you haven’t completed the previous step.

                      1 Reply Last reply
                      0
                      • Hadi77KSAundefined Hadi77KSA referenced this topic
                      • Hadi77KSAundefined Hadi77KSA

                        [KI]Val09 yes, that means the motd_solo script is loaded, and that you’ll be able to do the Easter Egg for Mob of the Dead in solo.

                        Robert2532Mundefined Offline
                        Robert2532Mundefined Offline
                        Robert2532M
                        wrote last edited by
                        #221

                        Hadi77KSA I get the same result, and in the end it says "raw," , and the bot doesn't appear. What can I do?

                        Hadi77KSAundefined 1 Reply Last reply
                        0
                        • Robert2532Mundefined Robert2532M

                          Hadi77KSA I get the same result, and in the end it says "raw," , and the bot doesn't appear. What can I do?

                          Hadi77KSAundefined Offline
                          Hadi77KSAundefined Offline
                          Hadi77KSA
                          Contributor
                          wrote last edited by
                          #222

                          Robert2532M the bot spawns in after entering the prisoner numbers.

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • 1
                          • 2
                          • 8
                          • 9
                          • 10
                          • 11
                          • 12
                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Recent
                          • Tags
                          • Popular
                          • Users
                          • Groups
                          • Donate