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

Plutonium

  1. Home
  2. BO2 Modding Support & Discussion
  3. [Support] More than one custom GSC script?

[Support] More than one custom GSC script?

Scheduled Pinned Locked Moved BO2 Modding Support & Discussion
11 Posts 6 Posters 2.9k Views 1 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.
  • JezuzLizard Offline
    JezuzLizard Offline
    JezuzLizard
    Plutonium Staff
    wrote on last edited by
    #2

    If zombies use _zm_bot.gsc place it in maps/mp/zombies. If you don't have a copy of it the contents are very limited anyway:

    #include maps/mp/zombies/_zm_utility;
    #include maps/mp/_utility;
    #include common_scripts/utility;
    
    init()
    {
    /#
    	println( "ZM >> Zombiemode Server Scripts Init (_zm_bot.gsc)" );
    #/
    }
    

    For multiplayer I would use _shellshock.gsc since its fairly small and its contents look like this:

    #include common_scripts/utility;
    #include maps/mp/_utility;
    
    init()
    {
    	precacheshellshock( "frag_grenade_mp" );
    	precacheshellshock( "damage_mp" );
    	precacherumble( "artillery_rumble" );
    	precacherumble( "grenade_rumble" );
    }
    
    shellshockondamage( cause, damage )
    {
    	if ( self maps/mp/_utility::isflashbanged() )
    	{
    		return;
    	}
    	if ( cause != "MOD_EXPLOSIVE" && cause != "MOD_GRENADE" && cause != "MOD_GRENADE_SPLASH" || cause == "MOD_PROJECTILE" && cause == "MOD_PROJECTILE_SPLASH" )
    	{
    		time = 0;
    		if ( damage >= 90 )
    		{
    			time = 4;
    		}
    		else if ( damage >= 50 )
    		{
    			time = 3;
    		}
    		else if ( damage >= 25 )
    		{
    			time = 2;
    		}
    		else
    		{
    			if ( damage > 10 )
    			{
    				time = 2;
    			}
    		}
    		if ( time )
    		{
    			if ( self mayapplyscreeneffect() )
    			{
    				self shellshock( "frag_grenade_mp", 0.5 );
    			}
    		}
    	}
    }
    
    endondeath()
    {
    	self waittill( "death" );
    	waittillframeend;
    	self notify( "end_explode" );
    }
    
    endontimer( timer )
    {
    	self endon( "disconnect" );
    	wait timer;
    	self notify( "end_on_timer" );
    }
    
    rcbomb_earthquake( position )
    {
    	playrumbleonposition( "grenade_rumble", position );
    	earthquake( 0.5, 0.5, self.origin, 512 );
    }
    

    Alternatively, if you have access to the source of the scripts you can attempt to merge them into one mod.

    Trizz 1 Reply Last reply
    0
    • Trizz Trizz

      I already have the unlimited perks gsc but I have been trying to figure out how to add a second one (using gsc studio) I can't add another file called _clientids.gsc to the folder because obviously it will overwrite and if i try to add the script beneath the original it doesn't work I've also tried adding a new script file next to the main but that doesn't work either. any help would be much appreciated

      Cahz Offline
      Cahz Offline
      Cahz
      VIP
      wrote on last edited by
      #3

      Trizz if you are adding a new script, make sure you call the new script under OnPlayerSpawned.

      self waittill("spawned_player");
      self thread <scriptname>;
      

      Note that this works for MOST scripts and not all. I would highly recommend researching gsc. There are tons of resources out there. Even with only basic knowledge of gsc , you should be able to handle these things on your own.

      really good gsc tutorial: https://www.nextgenupdate.com/forums/black-ops-2-gsc-mods-scripts/764127-tutorial-basic-gsc-scripting.html

      1 Reply Last reply
      1
      • JezuzLizard JezuzLizard

        If zombies use _zm_bot.gsc place it in maps/mp/zombies. If you don't have a copy of it the contents are very limited anyway:

        #include maps/mp/zombies/_zm_utility;
        #include maps/mp/_utility;
        #include common_scripts/utility;
        
        init()
        {
        /#
        	println( "ZM >> Zombiemode Server Scripts Init (_zm_bot.gsc)" );
        #/
        }
        

        For multiplayer I would use _shellshock.gsc since its fairly small and its contents look like this:

        #include common_scripts/utility;
        #include maps/mp/_utility;
        
        init()
        {
        	precacheshellshock( "frag_grenade_mp" );
        	precacheshellshock( "damage_mp" );
        	precacherumble( "artillery_rumble" );
        	precacherumble( "grenade_rumble" );
        }
        
        shellshockondamage( cause, damage )
        {
        	if ( self maps/mp/_utility::isflashbanged() )
        	{
        		return;
        	}
        	if ( cause != "MOD_EXPLOSIVE" && cause != "MOD_GRENADE" && cause != "MOD_GRENADE_SPLASH" || cause == "MOD_PROJECTILE" && cause == "MOD_PROJECTILE_SPLASH" )
        	{
        		time = 0;
        		if ( damage >= 90 )
        		{
        			time = 4;
        		}
        		else if ( damage >= 50 )
        		{
        			time = 3;
        		}
        		else if ( damage >= 25 )
        		{
        			time = 2;
        		}
        		else
        		{
        			if ( damage > 10 )
        			{
        				time = 2;
        			}
        		}
        		if ( time )
        		{
        			if ( self mayapplyscreeneffect() )
        			{
        				self shellshock( "frag_grenade_mp", 0.5 );
        			}
        		}
        	}
        }
        
        endondeath()
        {
        	self waittill( "death" );
        	waittillframeend;
        	self notify( "end_explode" );
        }
        
        endontimer( timer )
        {
        	self endon( "disconnect" );
        	wait timer;
        	self notify( "end_on_timer" );
        }
        
        rcbomb_earthquake( position )
        {
        	playrumbleonposition( "grenade_rumble", position );
        	earthquake( 0.5, 0.5, self.origin, 512 );
        }
        

        Alternatively, if you have access to the source of the scripts you can attempt to merge them into one mod.

        Trizz Offline
        Trizz Offline
        Trizz
        wrote on last edited by
        #4

        Cahz I'm trying to add a script to this would it go at the bottom and if so how would i put it? I'm not trying to be spoonfed I'm just sort of struggling tbh 70577d43-afec-46bb-b75e-7bbdee0bbc76-image.png

        1 Reply Last reply
        0
        • ted Offline
          ted Offline
          ted
          wrote on last edited by
          #5

          Can you explain what you are trying to add so we can better assist? Are you trying to spawn with perks/a gun, etc?

          Trizz 1 Reply Last reply
          0
          • Ox_ Offline
            Ox_ Offline
            Ox_
            wrote on last edited by
            #6

            In that perk limit script, there is only one significant line, the rest don't mean anything.
            So maybe just transfer that one significant line (level.perk_purchase_limit = 9;) into that other script you're trying to use.

            1 Reply Last reply
            0
            • Ducxy Offline
              Ducxy Offline
              Ducxy
              wrote on last edited by
              #7

              why are you trying to add multiple GSC files? you can put basically an infinity amount of code into a single GSC file. you dont need multiple just to add a new script

              1 Reply Last reply
              0
              • Trizz Offline
                Trizz Offline
                Trizz
                wrote on last edited by
                #8

                Ducxy how would i start the second script though? like just start on the line after or something. ted I'm trying to add jugg at round one just for the example for myself so i can see how it's done. then after that works i'm gonna see if there is anything i can do about adding a max ammo refills clip script.

                1 Reply Last reply
                0
                • ted ted

                  Can you explain what you are trying to add so we can better assist? Are you trying to spawn with perks/a gun, etc?

                  Trizz Offline
                  Trizz Offline
                  Trizz
                  wrote on last edited by Trizz
                  #9

                  ted The top works but the bottom don't basically dddddd.PNG

                  ted 1 Reply Last reply
                  0
                  • Trizz Trizz

                    ted The top works but the bottom don't basically dddddd.PNG

                    ted Offline
                    ted Offline
                    ted
                    wrote on last edited by
                    #10

                    Trizz It's not going to work because you've just copy and paste'd both into one file. You're calling functions with the same name but to do different things.
                    f245c207-136b-4abb-ac2d-b1b18572f427-image.png

                    I don't know how to explain it without confusing you more so just use this instead:

                    #include maps\mp\_utility;
                    #include common_scripts\utility;
                    #include maps\mp\zombies\_zm;
                    #include maps\mp\zombies\_zm_utility;
                    
                    init()
                    {
                    	level.clientid = 0;
                    	level.perk_purchase_limit = 9;
                    	level thread onplayerconnect();
                    }
                    
                    onplayerconnect()
                    {
                    	for ( ;; )
                    	{
                    		level waittill( "connecting", player );
                    		player.clientid = level.clientid;
                    		player thread onplayerspawned();
                    		level.clientid++;
                    	}
                    }
                    
                    onplayerspawned()
                    {
                    	level endon( "game_ended" );
                            self endon( "disconnect" );
                    	
                    	for(;;)
                    	{
                    		self welcome();
                    	}
                    }
                    
                    welcome()
                    {
                        self waittill( "spawned_player" );
                        self maps/mp/zombies/_zm_perks::give_perk( "specialty_armorvest" );
                        wait 7;
                        self iprintln("^2" +self.name + "^7 , your perk limit has been removed");
                    }
                    
                    Trizz 1 Reply Last reply
                    0
                    • ted ted

                      Trizz It's not going to work because you've just copy and paste'd both into one file. You're calling functions with the same name but to do different things.
                      f245c207-136b-4abb-ac2d-b1b18572f427-image.png

                      I don't know how to explain it without confusing you more so just use this instead:

                      #include maps\mp\_utility;
                      #include common_scripts\utility;
                      #include maps\mp\zombies\_zm;
                      #include maps\mp\zombies\_zm_utility;
                      
                      init()
                      {
                      	level.clientid = 0;
                      	level.perk_purchase_limit = 9;
                      	level thread onplayerconnect();
                      }
                      
                      onplayerconnect()
                      {
                      	for ( ;; )
                      	{
                      		level waittill( "connecting", player );
                      		player.clientid = level.clientid;
                      		player thread onplayerspawned();
                      		level.clientid++;
                      	}
                      }
                      
                      onplayerspawned()
                      {
                      	level endon( "game_ended" );
                              self endon( "disconnect" );
                      	
                      	for(;;)
                      	{
                      		self welcome();
                      	}
                      }
                      
                      welcome()
                      {
                          self waittill( "spawned_player" );
                          self maps/mp/zombies/_zm_perks::give_perk( "specialty_armorvest" );
                          wait 7;
                          self iprintln("^2" +self.name + "^7 , your perk limit has been removed");
                      }
                      
                      Trizz Offline
                      Trizz Offline
                      Trizz
                      wrote on last edited by
                      #11

                      ted said in More than one custom GSC script?:

                      #include maps\mp_utility;
                      #include common_scripts\utility;
                      #include maps\mp\zombies_zm;
                      #include maps\mp\zombies_zm_utility;

                      init()
                      {
                      level.clientid = 0;
                      level.perk_purchase_limit = 9;
                      level thread onplayerconnect();
                      }

                      onplayerconnect()
                      {
                      for ( ;; )
                      {
                      level waittill( "connecting", player );
                      player.clientid = level.clientid;
                      player thread onplayerspawned();
                      level.clientid++;
                      }
                      }

                      onplayerspawned()
                      {
                      level endon( "game_ended" );
                      self endon( "disconnect" );

                      for(;;)
                      {
                      self welcome();
                      }
                      }

                      welcome()
                      {
                      self waittill( "spawned_player" );
                      self maps/mp/zombies/_zm_perks::give_perk( "specialty_armorvest" );
                      wait 7;
                      self iprintln("^2" +self.name + "^7 , your perk limit has been removed");
                      }

                      Thanks for the script. I will try to practice some more, i appreciate it

                      1 Reply Last reply
                      0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      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
                      • Unread 0
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Donate