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

Plutonium

B4N3undefined

B4N3

@B4N3
VIP
About
Posts
40
Topics
7
Shares
0
Groups
2
Followers
27
Following
22

Posts

Recent Best Controversial

  • A Plutonium Suggestion (Looking for Feedback)
    B4N3undefined B4N3

    @KillerRose83

    The stats for the game would have to communicate with plutonium's master server(s) and they keep a database for every single server that is hosted, which data would grow with time, not sure by what rate.. idk, perhaps it would be insignificant. If they were to do that, Eldor might be saying in order to pull it off successfully and securely (the xp / database) plutonium would be required to be the only ones to host the ranked servers. The setup and maintaining that database sounds like more work than they want to tackle right now. having 'official' ranked servers hosted by plutonium then brings with it other problems, like when there are hackers, they would be complaining to them about it.

    There was some hype around sm2 where I believe they were going to have a full ranking system. That would have been nice.

    General Discussion bo1 bo2 plutonium staff

  • A Plutonium Suggestion (Looking for Feedback)
    B4N3undefined B4N3

    I like the idea you are suggesting in part but also agree with not splitting the player base. That said, if there was interest, I think both are possible to do @KillerRose83 re; having separate servers. I don't agree with a separate client, but in the same browser window that lists the servers, one could be named for example: unlocked weapons & perks (or something similar)

    Sure I like to grind for things, maybe some would like to start over, but personally I wouldnt want to go through all the prestiges again and just play the game. I just finished going through 15 prestiges (again) in official because of the rank reset bug. What would be nice is if somehow your suggestion was ever accepted and implemented, perhaps there could be a way to see the progress / rank / level in official steam account / game. That way those people could play in either server (locked or unlocked), without losing their progress already earned. I believe the Northstar client for Titanfall 2 has a way to see rank / level on official and transfer that over.

    General Discussion bo1 bo2 plutonium staff

  • Bo2 server list is empty.
    B4N3undefined B4N3

    Aoverles

    This has happened to a few ppl I know.

    I can not verify the validity of how they fixed it, as it did not happen to me, but I will list some of the solutions or explanations they gave.

    • "Australia players have a issue viewing the server list" = do not know the reasons why this would be, but it might be a region issue... try playing with a vpn in place and see if that helps you see the server list. If it works, you have some kind of firewall on pc, router or ISP that is blocking / preventing communication with plutonium servers to see the list.
    • If you have too many antivirus or anti malware programs on your computer - it could be interfering with plutonium working properly or downloading all the files it needs to run. Windows Firewall and Anti-virus program is sufficient for most people these days. If you need to run extra. I would recommend running them then uninstalling them when you are finished cleaning your pc. Examples of these extra programs would be AVG antivirus, McAfee, MalwareBytes, CCleaner etc.
    • Make exception in your windows antivirus for C:\Users<username>\AppData\Local\Plutonium and....where ever the game is installed

    Good luck, hope that helps

    BO2 Client Support

  • Server Crashes Daily
    B4N3undefined B4N3

    It happens more than 2-3x a day somedays

    MW3 Server Hosting Support

  • Server Crashes Daily
    B4N3undefined B4N3

    FragsAreUs

    We have no custom or added scripts to our server. It is a default setup.

    MW3 Server Hosting Support

  • Server Crashes Daily
    B4N3undefined B4N3

    Is there a explanation as to what causes this error?
    Is there a way to prevent it?

    Our Rust 24/7 Map crashes at least once a day. This error window is there when we go to restart it.

    fail.png

    MW3 Server Hosting Support

  • Plutonium Launcher just crashes loading mw3?
    B4N3undefined B4N3

    RetroDaddy said in Plutonium Launcher just crashes loading mw3?:

    the game just now runs lol. thankyou for the support though

    Just curious, did you have a windows update recently, while all this was going on? RetroDaddy

    Anyway, glad it fixed itself, whatever the cause... if you ever figure out what the conflict was, please let us know

    MW3 Client Support

  • Plutonium Launcher just crashes loading mw3?
    B4N3undefined B4N3

    after common questions is common issues / errors
    https://forum.plutonium.pw/topic/558/faq-common-issues-and-frequently-asked-questions-iw5

    MW3 Client Support

  • Bug report [Bo2]
    B4N3undefined B4N3

    This might already be known but figured I would post just in case it provides more information than previously acquired.

    in T6 current status, we know that the servers sometimes crash or disconnect ppl when maps rotate and server restarts.

    In the process of trying to help admins of the server be able to change the map / game mode with rcon or iw4madmin !commands, I was able to replicate a bug that happens almost every time.

    I wondered why our server (nuketown) would seem to get these disconnect more than other ppl reported it in their own servers. It is because it seems like the bug happens specifically with nuketown.

    testing was as follows:
    !rcon set_gametype dom (or any other game mode)
    !m nuketown

    results:
    server crashes and restarts.

    any time I do the same commands but with a differ map or any other game mode, the server does not crash... It always crashes when manually trying to switch the map to nuketown. For whatever reason it does not like manually switching to nuketown.

    Hope this info helps in some way for future plans to fix.

    BO2 Server Hosting Support

  • Removing MMS & Target Finder Attachments [Bo2]
    B4N3undefined B4N3

    Kalitos said in Removing MMS & Target Finder Attachments [Bo2]:

    @Vexbane I was finally able to get it to work in a TDM mode, I tried it a bit, doing what you mentioned.

    /*
    *	 Black Ops 2 - GSC Studio by iMCSx
    *
    *	 Creator : Kalitos
    *	 Project : Restriccion de armas
    *    Mode : Multiplayer
    *	 Date : 2020/04/05 - 13:35:30	
    *
    */	
    
    #include maps\mp\_utility;
    #include common_scripts\utility;
    #include maps\mp\gametypes\_hud_util;
    #include maps\mp\gametypes\_hud_message;
    
    
    init()
    {
    
    	level.loadoutkillstreaksenabled = false;
    	level.AttachmentRestrict="+rangefinder,+mms";
        level.WeaponRestrict= "mp7_mp";  
        game["strings"]["change_class"] = undefined;
        level thread onPlayerConnect();  
    	 
    }
    
    onPlayerConnect()
    {	
        for(;;)
        {
            level waittill("connected", player);        
            player thread onPlayerSpawned();
            player thread doChangeClass();
         }
    }
    
    onPlayerSpawned()
    {
        self endon("disconnect");
    	level endon("game_ended");
        for(;;)
        {
        	self waittill("spawned_player");    	
        	if(!isDefined(self.isFirstSpawn))
    		{
    		self iprintln("^5Black Ops 2 - Script ^7| ^5Weapons ^7and ^5attachments ^7restriction ^5| ^7By: ^2Kalitos"); 
    		self.isFirstSpawn=true;
           	
    		}        
    	}
    }
    
    doChangeClass()
    {
       	self endon("disconnect");
       	level endon("game_ended");
       	self.OldPrimaryWeapon="";
       	self.OldSecondaryWeapon="";
    	for(;;)
    	{
    		self waittill_any("changed_class", "spawned_player");				
    		//if ( level.inGracePeriod && !self.hasDoneCombat ) // used weapons check?
    		//{
    			//self iprintln("Se ha iniciado el monitor de cambio de clase");
    			//player.checkChangeClass = true;
    			changeWeaponsOnClass();
    			self notify ("change_class_complete");
    		//}
    		//self iprintln("Periodo de gracia : " + level.inGracePeriod + ", Ha hecho combate: " + self.hasDoneCombat);
    	}
    }
    
    
    getNumClass(class)
    {
    	if ( issubstr( class, "CLASS_CUSTOM" ) )
    			{				
    				switch ( class )
    				{
    					case "CLASS_CUSTOM1": 
    						class_num1=0;
    						 break;    
    					case "CLASS_CUSTOM2": 
    						class_num1=1;
    						 break;    
    					case "CLASS_CUSTOM3": 
    						class_num1=2;
    						 break;    
    					case "CLASS_CUSTOM4": 
    						class_num1=3;
    						 break;    
    					case "CLASS_CUSTOM5": 
    						class_num1=4;
    						 break;    
    					case "CLASS_CUSTOM6": 
    						class_num1=5;
    						 break;    
    					case "CLASS_CUSTOM7": 
    						class_num1=6;
    						 break;    
    					case "CLASS_CUSTOM8": 
    						class_num1=7;
    						 break;    
    					case "CLASS_CUSTOM9": 
    						class_num1=8;
    						 break;    
    					case "CLASS_CUSTOM10": 
    						class_num1=9;
    						 break;    						
    					default : 						
    						 break;    
    				}				
    				return class_num1;
    			}
    			else
    			{
    				return level.classtoclassnum[class ];
    			}
    }
    
    changeWeaponsOnClass()
    {
    	//self endon("disconnect");
    	//level endon("game_ended");
    	//self endon("round_ended");
    	self endon("change_class_complete");
    	
    		class_num1 = getNumClass(self.class);
    		weaponP = self getloadoutweapon( class_num1, "primary" );
    		weaponS = self getloadoutweapon( class_num1, "secondary" );
    		//self iprintln(weaponP + " :: " + weaponS);
    		//self getloadoutitem( class_num, "primarygrenadecount" );	
    		if(self.OldPrimaryWeapon!=""){
    		self takeWeapon(self.OldPrimaryWeapon);
    		}
    		if(self.OldSecondaryWeapon!=""){
    		self takeWeapon(self.OldSecondaryWeapon);
    		}
    		NWeaponP= getClearWeaponAttachment(weaponP,"P"); // Remove all attachment restrict
    		NweaponS= getClearWeaponAttachment(weaponS,"S"); // Remove all attachment restrict	
    		//self iprintln("Arma primaria: "+ self.OldPrimaryWeapon + ", Arma secundaria: " + self.OldSecondaryWeapon);
    		//if(NWeaponP!=weaponP)
    		//{
    			
    			self takeWeapon(weaponP);
    			self giveWeapon(NWeaponP);
    			self switchToWeapon(NWeaponP);			
    		//}
    		//if(NWeaponS!=weaponS)
    		//{
    		wait 0.50;
    			
    			self takeWeapon(weaponS);
    			self giveWeapon(NWeaponS);
    		//}else
    		//{  
    			restriccionAt = strTok(level.AttachmentRestrict,",");
    			arrayWeapon = strTok(Weapon,"+");
    			if(isInArray(arrayWeapon,"+dw")) // If pistol has +dw
    			{
    				if (getWeaponClassOfArray(weaponS) == "weapon_pistol" && getSizeArrayWeaponSrTok(weaponS)==1)
    				{					
    					self takeWeapon(weaponS);
    					self giveWeapon("beretta93r_mp");
    				}		
    			}
    			
    								
    		//}
    }
    
    getSizeArrayWeaponSrTok(array)
    {
    	arrayWeapon = strTok(array,"+");
    	return arrayWeapon.size;
    }
    
    getWeaponClassOfArray(Weapon)
    {
    	arrayWeapon = strTok(Weapon,"+");
    	return getWeaponClass(arrayWeapon[0]);
    }
    
    getClearWeaponAttachment(Weapon,PorS)
    {
    	restriccionAt = strTok(level.AttachmentRestrict,",");
    	arrayWeapon = strTok(Weapon,"+");
    	NewWeapon = "";
    	
    	if (checkWeaponNotAllowed(Weapon)==1) // If is a weapon restrict
    		{
    			arrayWeapon[0]= getWeaponAllowed(Weapon); // Replace weapon with aleatory weapon allowed ( Same Type that weapon restrict )			
    		}	
    	
    	for (j=0;j<	arrayWeapon.size; j++)
    	{
    		if(j==0) // Is the weapon
    		{
    			temp=arrayWeapon[j];
    		}else
    		{
    			temp="+"+arrayWeapon[j];
    		}
    		if(!isInArray(restriccionAt, temp))
    		{
    			NewWeapon=NewWeapon+temp;
    		}
    	}
    	
    	if(PorS=="P"){
    		self.OldPrimaryWeapon=NewWeapon;
    	}else{
    		self.OldSecondaryWeapon=NewWeapon;
    	}
    	
    	return NewWeapon;
    }
    
    
    checkWeaponNotAllowed(Weapon)
    {
    	if(level.WeaponRestrict==""){
    		return 0;
    	}
    	restriccionWeapon = strTok(level.WeaponRestrict,",");
    	arrayWeapon = strTok(Weapon,"+");
    	if(isInArray(restriccionWeapon, arrayWeapon[0]))
    		{			
    			return 1;
    		}
    
     	return 0;
    }
    
    getWeaponAllowed(Weapon)
    {
    	restriccionWeapon = strTok(level.WeaponRestrict,",");
    	arrayWeapon = strTok(Weapon,"+");
    	arrayWeaponAllowed=WeaponsArray(getWeaponClass(arrayWeapon[0]));
    	randomWeapon= "";
    	while(true)
    	{
    		randomWeaponIndex = randomInt(arrayWeaponAllowed.size);
    		randomWeapon = arrayWeaponAllowed[randomWeaponIndex];
    		if(!isInArray(restriccionWeapon,randomWeapon))
    		{
    		 break;
    		}
    	}
    	
    	return randomWeapon;
    }
    
    WeaponsArray(category)
    {
    level.WeaponArray["All"][0] = "tar21_mp";
    level.WeaponArray["All"][1] = "type95_mp";
    level.WeaponArray["All"][2] = "sig556_mp";
    level.WeaponArray["All"][3] = "sa58_mp";
    level.WeaponArray["All"][4] = "hk416_mp";
    level.WeaponArray["All"][5] = "scar_mp";
    level.WeaponArray["All"][6] = "saritch_mp";
    level.WeaponArray["All"][7] = "xm8_mp";
    level.WeaponArray["All"][8] = "an94_mp";
    level.WeaponArray["All"][9] = "peacekeeper_mp";
    level.WeaponArray["All"][10] = "870mcs_mp";
    level.WeaponArray["All"][11] = "saiga12_mp";
    level.WeaponArray["All"][12] = "ksg_mp";
    level.WeaponArray["All"][13] = "srm1216_mp";
    level.WeaponArray["All"][14] = "mk48_mp";
    level.WeaponArray["All"][15] = "qbb95_mp";
    level.WeaponArray["All"][16] = "lsat_mp";
    level.WeaponArray["All"][17] = "hamr_mp";
    level.WeaponArray["All"][18] = "mp7_mp";
    level.WeaponArray["All"][19] = "pdw57_mp";
    level.WeaponArray["All"][20] = "vector_mp";
    level.WeaponArray["All"][21] = "insas_mp";
    level.WeaponArray["All"][22] = "qcw05_mp";
    level.WeaponArray["All"][23] = "evoskorpion_mp";
    level.WeaponArray["All"][24] = "svu_mp";
    level.WeaponArray["All"][25] = "dsr50_mp";
    level.WeaponArray["All"][26] = "ballista_mp";
    level.WeaponArray["All"][27] = "as50_mp";
    level.WeaponArray["All"][28] = "fiveseven_mp";
    level.WeaponArray["All"][29] = "fnp45_mp";
    level.WeaponArray["All"][30] = "beretta93r_mp";
    level.WeaponArray["All"][31] = "judge_mp";
    level.WeaponArray["All"][32] = "kard_mp";
    level.WeaponArray["All"][33] = "smaw_mp";
    level.WeaponArray["All"][34] = "usrpg_mp";
    level.WeaponArray["All"][35] = "fhj18_mp";
    level.WeaponArray["All"][36] = "crossbow_mp";
    level.WeaponArray["All"][37] = "knife_ballistic_mp";
    level.WeaponArray["All"][38] = "knife_held_mp";
    level.WeaponArray["All"][39] = "frag_grenade_mp";
    level.WeaponArray["All"][40] = "hatchet_mp";
    level.WeaponArray["All"][41] = "sticky_grenade_mp";
    level.WeaponArray["All"][42] = "satchel_charge_mp";
    level.WeaponArray["All"][43] = "bouncingbetty_mp";
    level.WeaponArray["All"][44] = "claymore_mp";
    level.WeaponArray["All"][45] = "flash_grenade_mp";
    level.WeaponArray["All"][46] = "smoke_center_mp";
    level.WeaponArray["All"][47] = "concussion_grenade_mp";
    level.WeaponArray["All"][48] = "emp_grenade_mp";
    level.WeaponArray["All"][49] = "sensor_grenade_mp";
    level.WeaponArray["All"][50] = "pda_hack_mp";
    level.WeaponArray["All"][51] = "tactical_insertion_mp";
    level.WeaponArray["All"][52] = "proximity_grenade_mp";
    level.WeaponArray["Assault"][0] = "tar21_mp";
    level.WeaponArray["Assault"][1] = "type95_mp";
    level.WeaponArray["Assault"][2] = "sig556_mp";
    level.WeaponArray["Assault"][3] = "sa58_mp";
    level.WeaponArray["Assault"][4] = "hk416_mp";
    level.WeaponArray["Assault"][5] = "scar_mp";
    level.WeaponArray["Assault"][6] = "saritch_mp";
    level.WeaponArray["Assault"][7] = "xm8_mp";
    level.WeaponArray["Assault"][8] = "an94_mp";
    level.WeaponArray["Assault"][9] = "peacekeeper_mp";
    level.WeaponArray["Shotgun"][0] = "870mcs_mp";
    level.WeaponArray["Shotgun"][1] = "saiga12_mp";
    level.WeaponArray["Shotgun"][2] = "ksg_mp";
    level.WeaponArray["Shotgun"][3] = "srm1216_mp";
    level.WeaponArray["LMG"][0] = "mk48_mp";
    level.WeaponArray["LMG"][1] = "qbb95_mp";
    level.WeaponArray["LMG"][2] = "lsat_mp";
    level.WeaponArray["LMG"][3] = "hamr_mp";
    level.WeaponArray["SMG"][0] = "mp7_mp";
    level.WeaponArray["SMG"][1] = "pdw57_mp";
    level.WeaponArray["SMG"][2] = "vector_mp";
    level.WeaponArray["SMG"][3] = "insas_mp";
    level.WeaponArray["SMG"][4] = "qcw05_mp";
    level.WeaponArray["SMG"][5] = "evoskorpion_mp";
    level.WeaponArray["Sniper"][0] = "svu_mp";
    level.WeaponArray["Sniper"][1] = "dsr50_mp";
    level.WeaponArray["Sniper"][2] = "ballista_mp";
    level.WeaponArray["Sniper"][3] = "as50_mp";
    level.WeaponArray["Pistol"][0] = "fiveseven_mp";
    level.WeaponArray["Pistol"][1] = "fnp45_mp";
    level.WeaponArray["Pistol"][2] = "beretta93r_mp";
    level.WeaponArray["Pistol"][3] = "judge_mp";
    level.WeaponArray["Pistol"][4] = "kard_mp";
    level.WeaponArray["Launcher"][0] = "smaw_mp";
    level.WeaponArray["Launcher"][1] = "usrpg_mp";
    level.WeaponArray["Launcher"][2] = "fhj18_mp";
    level.WeaponArray["Special"][0] = "crossbow_mp";
    level.WeaponArray["Special"][1] = "knife_ballistic_mp";
    level.WeaponArray["Special"][2] = "knife_held_mp";
    level.WeaponArray["Lethal"][0] = "frag_grenade_mp";
    level.WeaponArray["Lethal"][1] = "hatchet_mp";
    level.WeaponArray["Lethal"][2] = "sticky_grenade_mp";
    level.WeaponArray["Lethal"][3] = "satchel_charge_mp";
    level.WeaponArray["Lethal"][4] = "bouncingbetty_mp";
    level.WeaponArray["Lethal"][5] = "claymore_mp";
    level.WeaponArray["Tactical"][0] = "flash_grenade_mp";
    level.WeaponArray["Tactical"][1] = "smoke_center_mp";
    level.WeaponArray["Tactical"][2] = "concussion_grenade_mp";
    level.WeaponArray["Tactical"][3] = "emp_grenade_mp";
    level.WeaponArray["Tactical"][4] = "sensor_grenade_mp";
    level.WeaponArray["Tactical"][5] = "pda_hack_mp";
    level.WeaponArray["Tactical"][6] = "tactical_insertion_mp";
    level.WeaponArray["Tactical"][7] = "proximity_grenade_mp";
    
    if (category == "All")
    return level.WeaponArray["All"];
    else if(category == "weapon_assault")
    return level.WeaponArray["Assault"];
    else if(category == "weapon_shotgun")
    return level.WeaponArray["Shotgun"];
    else if(category == "weapon_lmg")
    return level.WeaponArray["Assault"]; //Replace with assault if you block all LMG
    else if(category == "weapon_smg")
    return level.WeaponArray["SMG"];
    else if(category == "weapon_sniper")
    return level.WeaponArray["Sniper"];
    else if(category == "weapon_pistol")
    return level.WeaponArray["Pistol"];
    else if(category == "weapon_launcher")
    return level.WeaponArray["Pistol"]; // Replace with pistol if you block all launchers
    else if(category == "weapon_special")
    return level.WeaponArray["Special"];
    else if(category == "weapon_grenade")
    return level.WeaponArray["Lethal"];
    else if(category == "Tactical")
    return level.WeaponArray["Tactical"];
    }
    
    
    
    

    Try it, and tell me.

    Thank you, I will tomorrow, cheers

    BO2 Server Hosting Support

  • Removing MMS & Target Finder Attachments [Bo2]
    B4N3undefined B4N3

    Kalitos said in Removing MMS & Target Finder Attachments [Bo2]:

    @Vexbane I tried it in SYD mode, it works correctly, the detail is in TDM mode, the respawned way doesn't work the same as in SYD mode, so it doesn't work.
    This line is the problem

    if (level.inGracePeriod &&! self.hasDoneCombat) // used weapons check?
    

    When you die and reappear, inGracePeriod has no time, and hasDoneCombat is not reset.

    What in SYD mode, in each round it is as if the player reconnected and those variables are reset.

    I am assuming SYD means search and destroy ( a game mode I never really played because of the timer ) so that actually makes a little more sense. which code are you referencing though, is that the one you made on other thread or the new shorter one? I guess i'll try to Ctrl + F on each to find it.

    BO2 Server Hosting Support

  • Removing MMS & Target Finder Attachments [Bo2]
    B4N3undefined B4N3

    Kalitos

    your "long" script is not working. The mms and target finder do not get removed. This is what happens with your long script:

    1. I start the server
    2. When I first enter the server, it works when I first spawn. There is no mms attachment., only iron sight.
    3. After I die, I spawn with the MMS.
    4. No matter how many times I die, it does not work after
    5. I close out the game, I restart,
    6. When I start playing, I spawn in with the MMS.
    7. I restart server.
    8. I spawn in with no MMS. only iron sight.
    9. The target finder I always spawn with. From start to finish, the script does not work for target finder at all in this version of the script.

    the first "shorter script" worked but was crashing the server somehow.

    BO2 Server Hosting Support

  • Removing MMS & Target Finder Attachments [Bo2]
    B4N3undefined B4N3
    /*
    *	 Black Ops 2 - GSC Studio by iMCSx
    *
    *	 Creator : Kalitos
    *	 Project : Restriccion de armas
    *    Mode : Multiplayer
    *	 Date : 2020/04/05 - 13:35:30	
    *
    */	
    
    #include maps\mp\_utility;
    #include common_scripts\utility;
    #include maps\mp\gametypes\_hud_util;
    #include maps\mp\gametypes\_hud_message;
    
    
    init()
    {
    
    	level.loadoutkillstreaksenabled = false;
    	level.AttachmentRestrict="+rangefinder,+mms,";
        level.WeaponRestrict= "";  
        level thread onPlayerConnect();  
    	 
    }
    
    onPlayerConnect()
    {	
        for(;;)
        {
            level waittill("connected", player);        
            player thread onPlayerSpawned();
            player thread doChangeClass();
         }
    }
    
    onPlayerSpawned()
    {
        self endon("disconnect");
    	level endon("game_ended");
        for(;;)
        {
        	self waittill("spawned_player");    	
        	if(!isDefined(self.isFirstSpawn))
    		{
    		self iprintln("^5Black Ops 2 - Script ^7| ^5Weapons ^7and ^5attachments ^7restriction ^5| ^7By: ^2Kalitos"); 
           	
    		}        
    	}
    }
    
    doChangeClass()
    {
       	self endon("disconnect");
       	level endon("game_ended");
    	for(;;)
    	{
    		self waittill_any("changed_class", "spawned_player");				
    		if ( level.inGracePeriod && !self.hasDoneCombat ) // used weapons check?
    		{
    			//player.checkChangeClass = true;
    			changeWeaponsOnClass();
    			self notify ("change_class_complete");
    		}
    	}
    }
    
    
    getNumClass(class)
    {
    	if ( issubstr( class, "CLASS_CUSTOM" ) )
    			{				
    				switch ( class )
    				{
    					case "CLASS_CUSTOM1": 
    						class_num1=0;
    						 break;    
    					case "CLASS_CUSTOM2": 
    						class_num1=1;
    						 break;    
    					case "CLASS_CUSTOM3": 
    						class_num1=2;
    						 break;    
    					case "CLASS_CUSTOM4": 
    						class_num1=3;
    						 break;    
    					case "CLASS_CUSTOM5": 
    						class_num1=4;
    						 break;    
    					case "CLASS_CUSTOM6": 
    						class_num1=5;
    						 break;    
    					case "CLASS_CUSTOM7": 
    						class_num1=6;
    						 break;    
    					case "CLASS_CUSTOM8": 
    						class_num1=7;
    						 break;    
    					case "CLASS_CUSTOM9": 
    						class_num1=8;
    						 break;    
    					case "CLASS_CUSTOM10": 
    						class_num1=9;
    						 break;    						
    					default : 						
    						 break;    
    				}				
    				return class_num1;
    			}
    			else
    			{
    				return level.classtoclassnum[class ];
    			}
    }
    
    changeWeaponsOnClass()
    {
    	//self endon("disconnect");
    	//level endon("game_ended");
    	//self endon("round_ended");
    	self endon("change_class_complete");
    	
    		class_num1 = getNumClass(self.class);
    		weaponP = self getloadoutweapon( class_num1, "primary" );
    		weaponS = self getloadoutweapon( class_num1, "secondary" );
    		//self iprintln(weaponP + " :: " + weaponS);
    		//self getloadoutitem( class_num, "primarygrenadecount" );					
    		NWeaponP= getClearWeaponAttachment(weaponP); // Remove all attachment restrict
    		NweaponS= getClearWeaponAttachment(weaponS); // Remove all attachment restrict	
    		if(NWeaponP!=weaponP)
    		{
    			self takeWeapon(weaponP);
    			self giveWeapon(NWeaponP);
    			self switchToWeapon(NWeaponP);			
    		}
    		if(NWeaponS!=weaponS)
    		{
    			self takeWeapon(weaponS);
    			self giveWeapon(NWeaponS);
    		}else
    		{  
    			restriccionAt = strTok(level.AttachmentRestrict,",");
    			arrayWeapon = strTok(Weapon,"+");
    			if(isInArray(arrayWeapon,"+dw")) // If pistol has +dw
    			{
    				if (getWeaponClassOfArray(weaponS) == "weapon_pistol" && getSizeArrayWeaponSrTok(weaponS)==1)
    				{
    					self takeWeapon(weaponS);
    					self giveWeapon("beretta93r_mp");
    				}		
    			}
    			
    								
    		}
    }
    
    getSizeArrayWeaponSrTok(array)
    {
    	arrayWeapon = strTok(array,"+");
    	return arrayWeapon.size;
    }
    
    getWeaponClassOfArray(Weapon)
    {
    	arrayWeapon = strTok(Weapon,"+");
    	return getWeaponClass(arrayWeapon[0]);
    }
    
    getClearWeaponAttachment(Weapon)
    {
    	restriccionAt = strTok(level.AttachmentRestrict,",");
    	arrayWeapon = strTok(Weapon,"+");
    	NewWeapon = "";
    	
    	if (checkWeaponNotAllowed(Weapon)==1) // If is a weapon restrict
    		{
    			arrayWeapon[0]= getWeaponAllowed(Weapon); // Replace weapon with aleatory weapon allowed ( Same Type that weapon restrict )			
    		}
    	
    	for (j=0;j<	arrayWeapon.size; j++)
    	{
    		if(j==0) // Is the weapon
    		{
    			temp=arrayWeapon[j];
    		}else
    		{
    			temp="+"+arrayWeapon[j];
    		}
    		if(!isInArray(restriccionAt, temp))
    		{
    			NewWeapon=NewWeapon+temp;
    		}
    	}
    	
    	return NewWeapon;
    }
    
    
    checkWeaponNotAllowed(Weapon)
    {
    	restriccionWeapon = strTok(level.WeaponRestrict,",");
    	arrayWeapon = strTok(Weapon,"+");
    	if(isInArray(restriccionWeapon, arrayWeapon[0]))
    		{			
    			return 1;
    		}
    
     	return 0;
    }
    
    getWeaponAllowed(Weapon)
    {
    	restriccionWeapon = strTok(level.WeaponRestrict,",");
    	arrayWeapon = strTok(Weapon,"+");
    	arrayWeaponAllowed=WeaponsArray(getWeaponClass(arrayWeapon[0]));
    	randomWeapon= "";
    	while(true)
    	{
    		randomWeaponIndex = randomInt(arrayWeaponAllowed.size);
    		randomWeapon = arrayWeaponAllowed[randomWeaponIndex];
    		if(!isInArray(restriccionWeapon,randomWeapon))
    		{
    		 break;
    		}
    	}
    	
    	return randomWeapon;
    }
    
    WeaponsArray(category)
    {
    level.WeaponArray["All"][0] = "tar21_mp";
    level.WeaponArray["All"][1] = "type95_mp";
    level.WeaponArray["All"][2] = "sig556_mp";
    level.WeaponArray["All"][3] = "sa58_mp";
    level.WeaponArray["All"][4] = "hk416_mp";
    level.WeaponArray["All"][5] = "scar_mp";
    level.WeaponArray["All"][6] = "saritch_mp";
    level.WeaponArray["All"][7] = "xm8_mp";
    level.WeaponArray["All"][8] = "an94_mp";
    level.WeaponArray["All"][9] = "peacekeeper_mp";
    level.WeaponArray["All"][10] = "870mcs_mp";
    level.WeaponArray["All"][11] = "saiga12_mp";
    level.WeaponArray["All"][12] = "ksg_mp";
    level.WeaponArray["All"][13] = "srm1216_mp";
    level.WeaponArray["All"][14] = "mk48_mp";
    level.WeaponArray["All"][15] = "qbb95_mp";
    level.WeaponArray["All"][16] = "lsat_mp";
    level.WeaponArray["All"][17] = "hamr_mp";
    level.WeaponArray["All"][18] = "mp7_mp";
    level.WeaponArray["All"][19] = "pdw57_mp";
    level.WeaponArray["All"][20] = "vector_mp";
    level.WeaponArray["All"][21] = "insas_mp";
    level.WeaponArray["All"][22] = "qcw05_mp";
    level.WeaponArray["All"][23] = "evoskorpion_mp";
    level.WeaponArray["All"][24] = "svu_mp";
    level.WeaponArray["All"][25] = "dsr50_mp";
    level.WeaponArray["All"][26] = "ballista_mp";
    level.WeaponArray["All"][27] = "as50_mp";
    level.WeaponArray["All"][28] = "fiveseven_mp";
    level.WeaponArray["All"][29] = "fnp45_mp";
    level.WeaponArray["All"][30] = "beretta93r_mp";
    level.WeaponArray["All"][31] = "judge_mp";
    level.WeaponArray["All"][32] = "kard_mp";
    level.WeaponArray["All"][33] = "smaw_mp";
    level.WeaponArray["All"][34] = "usrpg_mp";
    level.WeaponArray["All"][35] = "fhj18_mp";
    level.WeaponArray["All"][36] = "crossbow_mp";
    level.WeaponArray["All"][37] = "knife_ballistic_mp";
    level.WeaponArray["All"][38] = "knife_held_mp";
    level.WeaponArray["All"][39] = "frag_grenade_mp";
    level.WeaponArray["All"][40] = "hatchet_mp";
    level.WeaponArray["All"][41] = "sticky_grenade_mp";
    level.WeaponArray["All"][42] = "satchel_charge_mp";
    level.WeaponArray["All"][43] = "bouncingbetty_mp";
    level.WeaponArray["All"][44] = "claymore_mp";
    level.WeaponArray["All"][45] = "flash_grenade_mp";
    level.WeaponArray["All"][46] = "smoke_center_mp";
    level.WeaponArray["All"][47] = "concussion_grenade_mp";
    level.WeaponArray["All"][48] = "emp_grenade_mp";
    level.WeaponArray["All"][49] = "sensor_grenade_mp";
    level.WeaponArray["All"][50] = "pda_hack_mp";
    level.WeaponArray["All"][51] = "tactical_insertion_mp";
    level.WeaponArray["All"][52] = "proximity_grenade_mp";
    level.WeaponArray["Assault"][0] = "tar21_mp";
    level.WeaponArray["Assault"][1] = "type95_mp";
    level.WeaponArray["Assault"][2] = "sig556_mp";
    level.WeaponArray["Assault"][3] = "sa58_mp";
    level.WeaponArray["Assault"][4] = "hk416_mp";
    level.WeaponArray["Assault"][5] = "scar_mp";
    level.WeaponArray["Assault"][6] = "saritch_mp";
    level.WeaponArray["Assault"][7] = "xm8_mp";
    level.WeaponArray["Assault"][8] = "an94_mp";
    level.WeaponArray["Assault"][9] = "peacekeeper_mp";
    level.WeaponArray["Shotgun"][0] = "870mcs_mp";
    level.WeaponArray["Shotgun"][1] = "saiga12_mp";
    level.WeaponArray["Shotgun"][2] = "ksg_mp";
    level.WeaponArray["Shotgun"][3] = "srm1216_mp";
    level.WeaponArray["LMG"][0] = "mk48_mp";
    level.WeaponArray["LMG"][1] = "qbb95_mp";
    level.WeaponArray["LMG"][2] = "lsat_mp";
    level.WeaponArray["LMG"][3] = "hamr_mp";
    level.WeaponArray["SMG"][0] = "mp7_mp";
    level.WeaponArray["SMG"][1] = "pdw57_mp";
    level.WeaponArray["SMG"][2] = "vector_mp";
    level.WeaponArray["SMG"][3] = "insas_mp";
    level.WeaponArray["SMG"][4] = "qcw05_mp";
    level.WeaponArray["SMG"][5] = "evoskorpion_mp";
    level.WeaponArray["Sniper"][0] = "svu_mp";
    level.WeaponArray["Sniper"][1] = "dsr50_mp";
    level.WeaponArray["Sniper"][2] = "ballista_mp";
    level.WeaponArray["Sniper"][3] = "as50_mp";
    level.WeaponArray["Pistol"][0] = "fiveseven_mp";
    level.WeaponArray["Pistol"][1] = "fnp45_mp";
    level.WeaponArray["Pistol"][2] = "beretta93r_mp";
    level.WeaponArray["Pistol"][3] = "judge_mp";
    level.WeaponArray["Pistol"][4] = "kard_mp";
    level.WeaponArray["Launcher"][0] = "smaw_mp";
    level.WeaponArray["Launcher"][1] = "usrpg_mp";
    level.WeaponArray["Launcher"][2] = "fhj18_mp";
    level.WeaponArray["Special"][0] = "crossbow_mp";
    level.WeaponArray["Special"][1] = "knife_ballistic_mp";
    level.WeaponArray["Special"][2] = "knife_held_mp";
    level.WeaponArray["Lethal"][0] = "frag_grenade_mp";
    level.WeaponArray["Lethal"][1] = "hatchet_mp";
    level.WeaponArray["Lethal"][2] = "sticky_grenade_mp";
    level.WeaponArray["Lethal"][3] = "satchel_charge_mp";
    level.WeaponArray["Lethal"][4] = "bouncingbetty_mp";
    level.WeaponArray["Lethal"][5] = "claymore_mp";
    level.WeaponArray["Tactical"][0] = "flash_grenade_mp";
    level.WeaponArray["Tactical"][1] = "smoke_center_mp";
    level.WeaponArray["Tactical"][2] = "concussion_grenade_mp";
    level.WeaponArray["Tactical"][3] = "emp_grenade_mp";
    level.WeaponArray["Tactical"][4] = "sensor_grenade_mp";
    level.WeaponArray["Tactical"][5] = "pda_hack_mp";
    level.WeaponArray["Tactical"][6] = "tactical_insertion_mp";
    level.WeaponArray["Tactical"][7] = "proximity_grenade_mp";
    
    if (category == "All")
    return level.WeaponArray["All"];
    else if(category == "weapon_assault")
    return level.WeaponArray["Assault"];
    else if(category == "weapon_shotgun")
    return level.WeaponArray["Shotgun"];
    else if(category == "weapon_lmg")
    return level.WeaponArray["Assault"]; //Replace with assault if you block all LMG
    else if(category == "weapon_smg")
    return level.WeaponArray["SMG"];
    else if(category == "weapon_sniper")
    return level.WeaponArray["Sniper"];
    else if(category == "weapon_pistol")
    return level.WeaponArray["Pistol"];
    else if(category == "weapon_launcher")
    return level.WeaponArray["Pistol"]; // Replace with pistol if you block all launchers
    else if(category == "weapon_special")
    return level.WeaponArray["Special"];
    else if(category == "weapon_grenade")
    return level.WeaponArray["Lethal"];
    else if(category == "Tactical")
    return level.WeaponArray["Tactical"];
    }
    
    BO2 Server Hosting Support

  • Removing MMS & Target Finder Attachments [Bo2]
    B4N3undefined B4N3

    Kalitos said in Removing MMS & Target Finder Attachments [Bo2]:

    @Vexbane Can work. but the code does not take into account the events when the player reappears or changes class. I suggest you try the code that I put in my topic. try it and see if it's what you need.

    It was working... and still is working. but the server keeps crashing and restarting itself every 10-15 mins or so. not sure why

    I did try your script, but it didnt work. I can try it again and see if I copied it wrong

    could it be a hacker that is coming in that is conflicting some how with the script that would make server crash?

    BO2 Server Hosting Support

  • Removing MMS & Target Finder Attachments [Bo2]
    B4N3undefined B4N3

    Cahz TheHiddenHour Kalitos Xerxes

    Kalitos It works now! It did not work for some reason the first time... Maybe I copied and pasted something wrong.

    Thank you guys for your time and effort helping me to figure this out.

    BO2 Server Hosting Support

  • Removing MMS & Target Finder Attachments [Bo2]
    B4N3undefined B4N3

    Xerxes said in Removing MMS & Target Finder Attachments [Bo2]:

    @Vexbane A third option (which is the one I suggested you to use) is to use the built in restriction system of the game:

    https://github.com/xerxes-at/T6ServerConfigs/blob/b601b1ebffb5f1356070150d046167ea35e351b0/dedicated.cfg#L185

    I have already tried that. That was the first thing I tried, but it does not work. removing // does nothing

    BO2 Server Hosting Support

  • Removing MMS & Target Finder Attachments [Bo2]
    B4N3undefined B4N3

    Kalitos said in Removing MMS & Target Finder Attachments [Bo2]:

    @Vexbane What you mean by this: Put level.givecustomloadout = :: livecustomloadout; in your init () function. It is the following taking your code so you can understand it better:

    Your code:

    init ()
    {
    level thread onPlayerConnect ();
    level.givecustomloadout = :: givecustomloadout; // This is where you should put it.
    }
    

    where u said "paste this function somewhere in ur script:", it refers to the following:

    /*
    
    Black Ops 2 - GSC Studio by iMCSx
    Creator : V3X
    Project : no mms, no target finder
    Mode : Multiplayer
    Date : 2020/04/24 - 10:03:00
    */
    
    #include maps\mp_utility;
    #include common_scripts\utility;
    #include maps\mp\gametypes_hud_util;
    #include maps\mp\gametypes_hud_message;
    
    init()
    {
    level thread onPlayerConnect();
    level.givecustomloadout = :: givecustomloadout; // This is where you should put it.
    }
    
    onPlayerConnect()
    {
    for(;;)
    {
    level waittill("connected", player);
    player thread onPlayerSpawned();
    }
    }
    
    onPlayerSpawned()
    {
    self endon("disconnect");
    level endon("game_ended");
    for(;;)
    {
    self waittill("spawned_player");
    
    	// Will appear each time when the player spawn, that's just an exemple.
    	self iprintln("Black Ops 2 - GSC Studio | Project : ^2no mms, no target finder"); 
    }
    }
    // An easier way to put it would be at the end of all your code, since this is a function, which you call inside the ini (), with the line you put first.
    
    givecustomloadout () {
    weap = self getCurrentWeapon (); // Get the player's current weapon
    if (weaponHasAttachment (weap, "mms") || weaponHasAttachment (weap, "rangefinder")) {// Weapon has mms or target finder
    repl_weap = ""; // Ready a replacement weapon string
    tokens = strTok (weap, "+"); // Tokenize the current weapon string
    for (i = 0; i <tokens.size; i ++) {// Iterate over every token
    token = tokens [i];
    
    if (i == 0) {// The first token should always be the weapon name
    repl_weap + = token; // Add weapon name to replacement string
    }
    else {// Current token is not the weapon name
    if (token! = "mms" && token! = "rangefinder") {// Token is not the mms or rangefinder attachment
    repl_weap + = "+" + token; // Add attachment to replacement string
    }
    }
    }
    
    self takeWeapon (weap); // Take weapon with restricted attachment
    self giveWeapon (repl_weap); // Give replacement weapon
    if (weap == self.primaryLoadoutWeapon) {// If the weapon taken was the player's primary
    self switchToWeapon (repl_weap); // Switch to the replacement weapon
    }
    }
    }
    
    

    If everything is ok, you should be able to compile it using "Black Ops II - GSC Studio" and rename it as "_clientids.gsc" and the following you should already know what to do.

    Kalitos
    when compiling, got a error "Bad syntax around the line 52 in main.gsc"
    if (i == 0) {// The first token should always be the weapon name

    I saw where u edited the script, ty for that. is all the info that in brown meant only to give info or am I supposed to do something with some of them? Or is the script actually ready to compile? Some of the terminology in the script I don't understand, like "token" and If i google any of this info, it just brings back so much other stuff its hard to get a specific answer.. just dictionary definitions. Here is example if I am actually suppose to do something: " repl_weap = ""; // Ready a replacement weapon string "

    I dont want to start guessing what I should be doing or what sections I have to add info bc some of the // brown info - is just info

    also is compiling it in bo2 gsc studio differ than using the compiler.exe in tutorial forum link I posted above your last comment?

    BO2 Server Hosting Support

  • [Resource] Weapons and attachments restriction !Code
    B4N3undefined B4N3

    Kalitos

    finally getting time to try to test this stuff out.

    I had created that thread I linked above ( https://forum.plutonium.pw/topic/1121/removing-mms-target-finder-attachments-bo2/2?_=1587664126629 ) - before I found your thread and replied to it. since then TheHiddenHour posted there.

    Trying not to double ask the same questions on both threads to keep things more simple. If you wouldnt mind / have time if to post on there, I would be grateful.

    Thank you!

    BO2 Modding Support & Discussion

  • Removing MMS & Target Finder Attachments [Bo2]
    B4N3undefined B4N3

    TheHiddenHour said in Removing MMS & Target Finder Attachments [Bo2]:

    @Vexbane
    Put level.givecustomloadout = ::givecustomloadout; in your init() function.

    Then paste this function somewhere in your script:

    givecustomloadout() {
    	weap = self getCurrentWeapon(); // Get the player's current weapon 
    	if(weaponHasAttachment(weap, "mms") || weaponHasAttachment(weap, "rangefinder")) { // Weapon has mms or target finder 
    		repl_weap = ""; // Ready a replacement weapon string 
    		tokens = strTok(weap, "+"); // Tokenize the current weapon string 
    		for(i = 0; i < tokens.size; i++) { // Iterate over every token 
    			token = tokens[i];
    
    			if(i == 0) { // The first token should always be the weapon name 
    				repl_weap += token; // Add weapon name to replacement string 
    			}
    			else { // Current token is not the weapon name 
    				if(token != "mms" && token != "rangefinder") { // Token is not the mms or rangefinder attachment 
    					repl_weap += "+" + token; // Add attachment to replacement string 
    				}
    			}
    		}
    
    		self takeWeapon(weap); // Take weapon with restricted attachment 
    		self giveWeapon(repl_weap); // Give replacement weapon 
    		if(weap == self.primaryLoadoutWeapon) { // If the weapon taken was the player's primary 
    			self switchToWeapon(repl_weap); // Switch to the replacement weapon 
    		}
    	}
    }
    

    I tested it very quickly and it seemed to work well. Let me know if you have any issues with it.

    ok.. I think i figured out the this tutorial: https://forum.plutonium.pw/topic/10/tutorial-loading-custom-gsc-scripts?_=1587647081531

    I actually didnt think when it said "drag and drop your file onto compiler.exe it really meant to drop it on top of it. I had never seen anything like that b4 and thought I was just meant to double click on it.

    so after following another suggestion to get "black ops 2 - gsc studio" I started a new project in "offline mode" and it auto created this below,

    1. where you said "Put level.givecustomloadout = ::givecustomloadout; in your init() function." am i supposed to add that on the next line below what is already there or replace what is there?
    2. where u said "paste this function somewhere in ur script:" - am i supposed to put it anywhere or in a specific place? Does it matter if it is at the very end of this script that was auto created?
    3. do I need all that info that was auto created or is just the standard code that is required to function / make anything happen then we add what we want to do somewhere in it?

    trying to make the code / script or whatever the simplest possible. literally all i want to do is remove (or replace them with something) the mms and target finder

    thx for the help

    /*

    • Black Ops 2 - GSC Studio by iMCSx
    • Creator : V3X
    • Project : no mms, no target finder
    • Mode : Multiplayer
    • Date : 2020/04/24 - 10:03:00

    */

    #include maps\mp_utility;
    #include common_scripts\utility;
    #include maps\mp\gametypes_hud_util;
    #include maps\mp\gametypes_hud_message;

    init()
    {
    level thread onPlayerConnect();
    }

    onPlayerConnect()
    {
    for(;;)
    {
    level waittill("connected", player);
    player thread onPlayerSpawned();
    }
    }

    onPlayerSpawned()
    {
    self endon("disconnect");
    level endon("game_ended");
    for(;;)
    {
    self waittill("spawned_player");

    	// Will appear each time when the player spawn, that's just an exemple.
    	self iprintln("Black Ops 2 - GSC Studio | Project : ^2no mms, no target finder"); 
    }
    

    }

    BO2 Server Hosting Support
  • 1
  • 2
  • 1 / 2
  • Login

  • Don't have an account? Register

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