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

Plutonium

  1. Home
  2. BO2 Modding Support & Discussion
  3. [Support] Get weapon category from weapon array

[Support] Get weapon category from weapon array

Scheduled Pinned Locked Moved BO2 Modding Support & Discussion
6 Posts 2 Posters 287 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.
  • Kalitosundefined Offline
    Kalitosundefined Offline
    Kalitos
    wrote on last edited by Mr. Android
    #1

    I have the following matrix, where all the weapons are, in which I would like a function to which I give the weapon and it returns the category

    level.WeaponArray["Assault Rifle"][0] = "tar21_mp";
    level.WeaponArray["Assault Rifle"][1] = "type95_mp";
    level.WeaponArray["Assault Rifle"][2] = "sig556_mp";
    level.WeaponArray["Assault Rifle"][3] = "sa58_mp";
    level.WeaponArray["Assault Rifle"][4] = "hk416_mp";
    level.WeaponArray["Assault Rifle"][5] = "scar_mp";
    level.WeaponArray["Assault Rifle"][6] = "saritch_mp";
    level.WeaponArray["Assault Rifle"][7] = "xm8_mp";
    level.WeaponArray["Assault Rifle"][8] = "an94_mp";
    level.WeaponArray["Assault Rifle"][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";
    
    TheHiddenHourundefined 1 Reply Last reply
    0
    • Kalitosundefined Kalitos

      I have the following matrix, where all the weapons are, in which I would like a function to which I give the weapon and it returns the category

      level.WeaponArray["Assault Rifle"][0] = "tar21_mp";
      level.WeaponArray["Assault Rifle"][1] = "type95_mp";
      level.WeaponArray["Assault Rifle"][2] = "sig556_mp";
      level.WeaponArray["Assault Rifle"][3] = "sa58_mp";
      level.WeaponArray["Assault Rifle"][4] = "hk416_mp";
      level.WeaponArray["Assault Rifle"][5] = "scar_mp";
      level.WeaponArray["Assault Rifle"][6] = "saritch_mp";
      level.WeaponArray["Assault Rifle"][7] = "xm8_mp";
      level.WeaponArray["Assault Rifle"][8] = "an94_mp";
      level.WeaponArray["Assault Rifle"][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";
      
      TheHiddenHourundefined Offline
      TheHiddenHourundefined Offline
      TheHiddenHour
      Contributor
      wrote on last edited by
      #2

      Kalitos For example, getWeaponCategory("tar21_mp") would return "Assault Rifle"?

      Kalitosundefined 1 Reply Last reply
      0
      • TheHiddenHourundefined TheHiddenHour

        Kalitos For example, getWeaponCategory("tar21_mp") would return "Assault Rifle"?

        Kalitosundefined Offline
        Kalitosundefined Offline
        Kalitos
        wrote on last edited by
        #3

        TheHiddenHour You read my mind. 😊
        How would you do it?😧

        TheHiddenHourundefined 1 Reply Last reply
        0
        • Kalitosundefined Kalitos

          TheHiddenHour You read my mind. 😊
          How would you do it?😧

          TheHiddenHourundefined Offline
          TheHiddenHourundefined Offline
          TheHiddenHour
          Contributor
          wrote on last edited by
          #4

          Kalitos You could get the weapon name and check over each item in the array to see if it contains that weapon, but that's not very efficient lol. If I were to write a system where I needed to know what category a weapon was using strings like "Assault Rifle" or "Shotgun", I would do something like this:

          getWeaponClass(weapon) is a function that does what the name says, it gets the class of a weapon. It returns strings like "weapon_sniper", or "weapon_smg" iirc.

          Instead of writing out an array of weapons, I would just make a function like this:

          getWeaponCategory(weapon) {
          	weap_class = getWeaponClass(weapon);
          	switch(weap_class) {
          		case "weapon_sniper":
          			return "Sniper";
          		case "weapon_smg":
          			return "SMG";
          		case "weapon_rifle":
          			return "Assault Rifle";
          		// etc, etc, etc...
          	}
          }
          

          The other method I mentioned would allow you to have your own custom categories however, which is one of the downfalls of this approach.

          Just for shits and giggles, here's how I'd do the first method:

          getWeaponCategory(weapon) {
          	weapon_arrs = strTok("Assault Rifle;Shotgun;LMG;SMG;Sniper;Pistol;Launcher;Special;Lethal;Tactical", ";");
          	foreach(arr in weapon_arrs) {
          		if(isInArray(level.WeaponArray[arr], weapon)) {
          			return arr;
          		}
          	}
          	
          	return "unknown_category";
          }
          
          Kalitosundefined 1 Reply Last reply
          0
          • TheHiddenHourundefined TheHiddenHour

            Kalitos You could get the weapon name and check over each item in the array to see if it contains that weapon, but that's not very efficient lol. If I were to write a system where I needed to know what category a weapon was using strings like "Assault Rifle" or "Shotgun", I would do something like this:

            getWeaponClass(weapon) is a function that does what the name says, it gets the class of a weapon. It returns strings like "weapon_sniper", or "weapon_smg" iirc.

            Instead of writing out an array of weapons, I would just make a function like this:

            getWeaponCategory(weapon) {
            	weap_class = getWeaponClass(weapon);
            	switch(weap_class) {
            		case "weapon_sniper":
            			return "Sniper";
            		case "weapon_smg":
            			return "SMG";
            		case "weapon_rifle":
            			return "Assault Rifle";
            		// etc, etc, etc...
            	}
            }
            

            The other method I mentioned would allow you to have your own custom categories however, which is one of the downfalls of this approach.

            Just for shits and giggles, here's how I'd do the first method:

            getWeaponCategory(weapon) {
            	weapon_arrs = strTok("Assault Rifle;Shotgun;LMG;SMG;Sniper;Pistol;Launcher;Special;Lethal;Tactical", ";");
            	foreach(arr in weapon_arrs) {
            		if(isInArray(level.WeaponArray[arr], weapon)) {
            			return arr;
            		}
            	}
            	
            	return "unknown_category";
            }
            
            Kalitosundefined Offline
            Kalitosundefined Offline
            Kalitos
            wrote on last edited by
            #5

            TheHiddenHour Good answer. I agree with you.
            I will use the existing function
            And I will change the array names I showed to match this function:

            getWeaponCategory(weapon) {
            	weap_class = getWeaponClass(weapon);
            	switch(weap_class) {
            		case "weapon_sniper":
            			return "Sniper";
            		case "weapon_smg":
            			return "SMG";
            		case "weapon_rifle":
            			return "Assault Rifle";
            		// etc, etc, etc...
            	}
            }
            
            TheHiddenHourundefined 1 Reply Last reply
            0
            • Kalitosundefined Kalitos

              TheHiddenHour Good answer. I agree with you.
              I will use the existing function
              And I will change the array names I showed to match this function:

              getWeaponCategory(weapon) {
              	weap_class = getWeaponClass(weapon);
              	switch(weap_class) {
              		case "weapon_sniper":
              			return "Sniper";
              		case "weapon_smg":
              			return "SMG";
              		case "weapon_rifle":
              			return "Assault Rifle";
              		// etc, etc, etc...
              	}
              }
              
              TheHiddenHourundefined Offline
              TheHiddenHourundefined Offline
              TheHiddenHour
              Contributor
              wrote on last edited by
              #6

              Kalitos You might want to do some testing with getWeaponClass() though, I don't know the exact strings it returns. Do a test with an AR, an SMG, a shotgun, etc and see what it returns.

              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