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

Plutonium

  1. Home
  2. BO2 Modding Support & Discussion
  3. [ZM-BO2 script help] Why doesn't my script work?

[ZM-BO2 script help] Why doesn't my script work?

Scheduled Pinned Locked Moved BO2 Modding Support & Discussion
4 Posts 2 Posters 94 Views 2 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.
  • AndreTOQU3undefined Offline
    AndreTOQU3undefined Offline
    AndreTOQU3
    wrote last edited by
    #1
    #include common_scripts/utility;
    #include maps/mp/_utility;
    #include maps/mp/zombies/_zm_utility;
    #include maps/mp/zombies/_zm_pers_upgrades_system;
    #include maps/mp/zombies/_zm_pers_upgrades;
    #include maps/mp/zombies/_zm_stats;
    #include maps/mp/zombies/_zm_powerups;
    #include maps/mp/zombies/_zm_perks;
    #include maps/mp/zombies/_zm_pers_upgrades_functions;
    
    init()
    {
        level.clientid = 0;
        level thread onplayerconnect();
    }
    
    onplayerconnect()
    {
        level endon("game_ended");
    
        for(;;)
        {
            level waittill( "connecting", player );
            player.clientid = level.clientid;
            level.clientid++;
    
            player thread onplayerspawned();
        }
    }
    
    onplayerspawned()
    {
        level endon("game_ended");
        self endon("disconnect");
    
        for(;;)
        {
            self waittill("spawned_player");
            applyTombstonePerk(self);
        }
    }
    
    applyTombstonePerk(player)
    {
        player endon("disconnect");
        level endon("game_ended");
    
        if (player HasPerk("specialty_scavenger"))
        {
            self.pers_upgrades_awarded["perk_lose"] = 1;
        }
    }
    
    main()
    {
        replacefunc( ::main_start, ::modified_main_start );
        replacefunc( ::is_pers_system_active, ::always_pers_system_active );
        replacefunc( ::is_pers_system_disabled, ::never_pers_system_disabled );
    }
    
    modified_main_start()
    {
            level.pers_upgrade_boards = 1;
    		level.pers_upgrade_revive = 1;
    		level.pers_upgrade_multi_kill_headshots = 1;
    		level.pers_upgrade_cash_back = 1;
    		level.pers_upgrade_insta_kill = 1;
    		level.pers_upgrade_jugg = 1;
    		level.pers_upgrade_carpenter = 1;
    		level.pers_upgrade_flopper = 1;
    		level.divetonuke_precache_override_func = ::divetonuke_precache_override_func;
    		level.pers_flopper_divetonuke_func = ::pers_flopper_explode;
    		level.pers_flopper_network_optimized = 1;
    		level.pers_upgrade_sniper = 1;
    		level.pers_upgrade_pistol_points = 1;
    		level.pers_upgrade_perk_lose = 1;
    		level.pers_upgrade_double_points = 1;
    		level.pers_upgrade_box_weapon = 1;
    		level.pers_magic_box_firesale = 1;
    		level.pers_upgrade_nube = 1;
    }
    
    always_pers_system_active() { return 1; }
    never_pers_system_disabled() { return 0; }
    
    
    Hadi77KSAundefined 1 Reply Last reply
    0
    • AndreTOQU3undefined AndreTOQU3
      #include common_scripts/utility;
      #include maps/mp/_utility;
      #include maps/mp/zombies/_zm_utility;
      #include maps/mp/zombies/_zm_pers_upgrades_system;
      #include maps/mp/zombies/_zm_pers_upgrades;
      #include maps/mp/zombies/_zm_stats;
      #include maps/mp/zombies/_zm_powerups;
      #include maps/mp/zombies/_zm_perks;
      #include maps/mp/zombies/_zm_pers_upgrades_functions;
      
      init()
      {
          level.clientid = 0;
          level thread onplayerconnect();
      }
      
      onplayerconnect()
      {
          level endon("game_ended");
      
          for(;;)
          {
              level waittill( "connecting", player );
              player.clientid = level.clientid;
              level.clientid++;
      
              player thread onplayerspawned();
          }
      }
      
      onplayerspawned()
      {
          level endon("game_ended");
          self endon("disconnect");
      
          for(;;)
          {
              self waittill("spawned_player");
              applyTombstonePerk(self);
          }
      }
      
      applyTombstonePerk(player)
      {
          player endon("disconnect");
          level endon("game_ended");
      
          if (player HasPerk("specialty_scavenger"))
          {
              self.pers_upgrades_awarded["perk_lose"] = 1;
          }
      }
      
      main()
      {
          replacefunc( ::main_start, ::modified_main_start );
          replacefunc( ::is_pers_system_active, ::always_pers_system_active );
          replacefunc( ::is_pers_system_disabled, ::never_pers_system_disabled );
      }
      
      modified_main_start()
      {
              level.pers_upgrade_boards = 1;
      		level.pers_upgrade_revive = 1;
      		level.pers_upgrade_multi_kill_headshots = 1;
      		level.pers_upgrade_cash_back = 1;
      		level.pers_upgrade_insta_kill = 1;
      		level.pers_upgrade_jugg = 1;
      		level.pers_upgrade_carpenter = 1;
      		level.pers_upgrade_flopper = 1;
      		level.divetonuke_precache_override_func = ::divetonuke_precache_override_func;
      		level.pers_flopper_divetonuke_func = ::pers_flopper_explode;
      		level.pers_flopper_network_optimized = 1;
      		level.pers_upgrade_sniper = 1;
      		level.pers_upgrade_pistol_points = 1;
      		level.pers_upgrade_perk_lose = 1;
      		level.pers_upgrade_double_points = 1;
      		level.pers_upgrade_box_weapon = 1;
      		level.pers_magic_box_firesale = 1;
      		level.pers_upgrade_nube = 1;
      }
      
      always_pers_system_active() { return 1; }
      never_pers_system_disabled() { return 0; }
      
      
      Hadi77KSAundefined Online
      Hadi77KSAundefined Online
      Hadi77KSA
      Contributor
      wrote last edited by
      #2

      You're trying to award the Tombstone persistent upgrade but you have the script first check if the player at the time of spawning has the Tombstone perk to determine if they should be awarded with the persistent upgrade. Players don’t spawn in with the Tombstone perk and without mods the perk only exists on TranZit co-op.

      I suggested to you on Discord to look up how the persistent upgrade is earned as persistent upgrades work on Plutonium. https://callofduty.fandom.com/wiki/Persistent_Upgrades

      Alternatively, you have the option of setting the required stats through the console to unlock the persistent upgrade. https://forum.plutonium.pw/topic/34450/bo2-victios-easter-egs-cheat/2

      AndreTOQU3undefined 1 Reply Last reply
      1
      • Hadi77KSAundefined Hadi77KSA

        You're trying to award the Tombstone persistent upgrade but you have the script first check if the player at the time of spawning has the Tombstone perk to determine if they should be awarded with the persistent upgrade. Players don’t spawn in with the Tombstone perk and without mods the perk only exists on TranZit co-op.

        I suggested to you on Discord to look up how the persistent upgrade is earned as persistent upgrades work on Plutonium. https://callofduty.fandom.com/wiki/Persistent_Upgrades

        Alternatively, you have the option of setting the required stats through the console to unlock the persistent upgrade. https://forum.plutonium.pw/topic/34450/bo2-victios-easter-egs-cheat/2

        AndreTOQU3undefined Offline
        AndreTOQU3undefined Offline
        AndreTOQU3
        wrote last edited by
        #3

        Hadi77KSA Thanks!! i made it:

        #include common_scripts/utility;
        #include maps/mp/_utility;
        #include maps/mp/zombies/_zm_utility;
        #include maps/mp/zombies/_zm_pers_upgrades_system;
        #include maps/mp/zombies/_zm_pers_upgrades;
        #include maps/mp/zombies/_zm_stats;
        #include maps/mp/zombies/_zm_powerups;
        #include maps/mp/zombies/_zm_perks;
        #include maps/mp/zombies/_zm_pers_upgrades_functions;
        
        init()
        {
            level.clientid = 0;
            level thread onPlayerConnect();
        }
        
        onPlayerConnect()
        {
            level endon("game_ended");
        
            for (;;)
            {
                level waittill("connecting", player);
                player.clientid = level.clientid;
                level.clientid++;
        
                if (!isdefined(player.pers_upgrades_awarded))
                    player.pers_upgrades_awarded = [];
        
                player.revived_flag = 0;
        
                player thread monitorTombstone();
                player thread monitorReviveFlag();
            }
        }
        
        onPlayerSpawned()
        {
            level endon("game_ended");
            self endon("disconnect");
        
            for (;;)
            {
                self waittill("spawned_player");
            }
        }
        
        monitorTombstone()
        {
            self endon("disconnect");
            level endon("game_ended");
        
            for (;;)
            {
                wait 0.5;
        
                
                if (self HasPerk("specialty_scavenger") && !isdefined(self.pers_upgrades_awarded["perk_lose"]))
                {
                    self.pers_upgrades_awarded["perk_lose"] = 1;
                }
        
                if (isdefined(self.pers_upgrades_awarded["perk_lose"]) && self.revived_flag == 1)
                {
                    self.pers_upgrades_awarded["perk_lose"] = undefined;
                    self.revived_flag = 0;
                }
            }
        }
        monitorReviveFlag()
        {
            self endon("disconnect");
            level endon("game_ended");
        
            for (;;)
            {
                self waittill_any("player_revived", "revive_complete");
                self.revived_flag = 1;
            }
        }
        main()
        {
            replacefunc(::is_pers_system_active, ::always_pers_system_active);
            replacefunc(::is_pers_system_disabled, ::never_pers_system_disabled);
        }
        always_pers_system_active() { return 1; }
        never_pers_system_disabled() { return 0; }
        
        

        But now the problem is that I get infinite tombstone and I don't know how to create a code that removes the tombstone and the permaperk after being revived. 😢 could you help me with this?

        Hadi77KSAundefined 1 Reply Last reply
        0
        • AndreTOQU3undefined AndreTOQU3

          Hadi77KSA Thanks!! i made it:

          #include common_scripts/utility;
          #include maps/mp/_utility;
          #include maps/mp/zombies/_zm_utility;
          #include maps/mp/zombies/_zm_pers_upgrades_system;
          #include maps/mp/zombies/_zm_pers_upgrades;
          #include maps/mp/zombies/_zm_stats;
          #include maps/mp/zombies/_zm_powerups;
          #include maps/mp/zombies/_zm_perks;
          #include maps/mp/zombies/_zm_pers_upgrades_functions;
          
          init()
          {
              level.clientid = 0;
              level thread onPlayerConnect();
          }
          
          onPlayerConnect()
          {
              level endon("game_ended");
          
              for (;;)
              {
                  level waittill("connecting", player);
                  player.clientid = level.clientid;
                  level.clientid++;
          
                  if (!isdefined(player.pers_upgrades_awarded))
                      player.pers_upgrades_awarded = [];
          
                  player.revived_flag = 0;
          
                  player thread monitorTombstone();
                  player thread monitorReviveFlag();
              }
          }
          
          onPlayerSpawned()
          {
              level endon("game_ended");
              self endon("disconnect");
          
              for (;;)
              {
                  self waittill("spawned_player");
              }
          }
          
          monitorTombstone()
          {
              self endon("disconnect");
              level endon("game_ended");
          
              for (;;)
              {
                  wait 0.5;
          
                  
                  if (self HasPerk("specialty_scavenger") && !isdefined(self.pers_upgrades_awarded["perk_lose"]))
                  {
                      self.pers_upgrades_awarded["perk_lose"] = 1;
                  }
          
                  if (isdefined(self.pers_upgrades_awarded["perk_lose"]) && self.revived_flag == 1)
                  {
                      self.pers_upgrades_awarded["perk_lose"] = undefined;
                      self.revived_flag = 0;
                  }
              }
          }
          monitorReviveFlag()
          {
              self endon("disconnect");
              level endon("game_ended");
          
              for (;;)
              {
                  self waittill_any("player_revived", "revive_complete");
                  self.revived_flag = 1;
              }
          }
          main()
          {
              replacefunc(::is_pers_system_active, ::always_pers_system_active);
              replacefunc(::is_pers_system_disabled, ::never_pers_system_disabled);
          }
          always_pers_system_active() { return 1; }
          never_pers_system_disabled() { return 0; }
          
          

          But now the problem is that I get infinite tombstone and I don't know how to create a code that removes the tombstone and the permaperk after being revived. 😢 could you help me with this?

          Hadi77KSAundefined Online
          Hadi77KSAundefined Online
          Hadi77KSA
          Contributor
          wrote last edited by
          #4

          AndreTOQU3 the logic of the perk_lose persistent upgrade is handled by the vanilla game where it will remove either Quick Revive or the latest obtained perk if QR is not in the perk list. Additionally, the perk_lose persistent upgrade is almost impossible to lose in vanilla gameplay. Sorry, but I won't help further with this. You're trying to modify existing behaviour to one that is significantly different than the one players are used to and I don't see the point of such modification.

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


          • Login

          • Don't have an account? Register

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