• Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse

Plutonium

[Support] Get weapon category from weapon array

Scheduled Pinned Locked Moved BO2 Modding Support & Discussion
6 Posts 2 Posters 109 Views
    • 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
  • TheHiddenHourundefined Offline
    TheHiddenHourundefined Offline
    TheHiddenHour Contributor
    replied to Kalitos on last edited by
    #2

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

    Kalitosundefined 1 Reply Last reply
    0
  • Kalitosundefined Offline
    Kalitosundefined Offline
    Kalitos
    replied to TheHiddenHour on last edited by
    #3

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

    TheHiddenHourundefined 1 Reply Last reply
    0
  • TheHiddenHourundefined Offline
    TheHiddenHourundefined Offline
    TheHiddenHour Contributor
    replied to Kalitos 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
  • Kalitosundefined Offline
    Kalitosundefined Offline
    Kalitos
    replied to TheHiddenHour 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
  • TheHiddenHourundefined Offline
    TheHiddenHourundefined Offline
    TheHiddenHour Contributor
    replied to Kalitos 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

  • Login

  • Don't have an account? Register

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

  • Don't have an account? Register

  • Login or register to search.