Raised This Month: $32 Target: $400
 8% 

TF2Items - Items with custom attributes.


Post New Thread Closed Thread   
 
Thread Tools Display Modes
ultimateh4xr
Junior Member
Join Date: Oct 2010
Old 10-24-2010 , 03:18   Re: TF2Items - Items with custom attributes.
#491

Quote:
Originally Posted by asherkin View Post
The resource files still have it down as the same colour as vintage is.
Where are you seeing it as green?
[IMG]http://img245.**************/img245/1076/25757635.png[/IMG]
when i put it on a gun the name is bright green and says "customized"
it may be an error i have no clue.

Quote:
Originally Posted by DarthNinja View Post
He also says "Valve Purple" is pink
unusual is purple, valve is brighter so it looks more pink than purple.
im just saying that this is how i see the colors, there is no need to be an asshole over it.
ultimateh4xr is offline
Leonardo
Veteran Member
Join Date: Feb 2010
Location: 90's
Old 10-24-2010 , 04:48   Re: TF2Items - Items with custom attributes.
#492

Color blindness is so color blindness ...
Show screenshot with customized item IRL (not by this plugin), so then will talk.
__________________
Leonardo is offline
asherkin
SourceMod Developer
Join Date: Aug 2009
Location: OnGameFrame()
Old 10-24-2010 , 05:18   Re: TF2Items - Items with custom attributes.
#493

I had a quick look to try and find where that is coming from.

The clientscheme resource defines
Code:
"QualityColorCustomized"	"71 98 145 255"
This is where the rest of the colours for the item qualities are defined, so it is what I used to create that image.

However, the binary uses
HTML Code:
dd offset aQualitycolor_3 ; "QualityColorSelfMadeCustomized"
for quality 10 items.

QualityColorSelfMadeCustomized has no corresponding entry in the resource files, nor does QualityColorCustomized have a corresponding usage in the binary.

Going by your image, the game is using a pure green ("0 255 0 255") for QualityColorSelfMadeCustomized, but I could not find the source of where this is coming from.
It's certainly not in any of the resource files.
__________________
asherkin is offline
ultimateh4xr
Junior Member
Join Date: Oct 2010
Old 10-24-2010 , 05:50   Re: TF2Items - Items with custom attributes.
#494

Quote:
Originally Posted by asherkin View Post
I had a quick look to try and find where that is coming from.

The clientscheme resource defines
Code:
"QualityColorCustomized"    "71 98 145 255"
This is where the rest of the colours for the item qualities are defined, so it is what I used to create that image.

However, the binary uses
HTML Code:
dd offset aQualitycolor_3 ; "QualityColorSelfMadeCustomized"
for quality 10 items.

QualityColorSelfMadeCustomized has no corresponding entry in the resource files, nor does QualityColorCustomized have a corresponding usage in the binary.

Going by your image, the game is using a pure green ("0 255 0 255") for QualityColorSelfMadeCustomized, but I could not find the source of where this is coming from.
It's certainly not in any of the resource files.
Alright thanks for the answer, I don't get why everyone is freaking out about it when all i asked was why the picture was blue and the plugin output in green.
ultimateh4xr is offline
athemil
Junior Member
Join Date: Oct 2010
Old 10-26-2010 , 14:25   Re: TF2Items - Items with custom attributes.
#495

is there any plugin to a golden wrench sudden death? .-.
athemil is offline
Leonardo
Veteran Member
Join Date: Feb 2010
Location: 90's
Old 10-27-2010 , 05:02   Re: TF2Items - Items with custom attributes.
#496

hellwhat?
__________________
Leonardo is offline
Regis
Member
Join Date: Sep 2009
Old 10-27-2010 , 12:36   Re: TF2Items - Items with custom attributes.
#497

Yeah, just code a quick plugin with a hook to post_inventory_event (or whatever it is) that equips players with golden wrenches, and either add it to sudden death melee or use it separately.

If you want the golden wrenches to actually show up you'll either need to code a workaround of valve's invisible item thing or just use addcond to cover everyone in jarate and then remove the jarate (for some reason this works for me).
Regis is offline
Thrawn2
Veteran Member
Join Date: Apr 2009
Old 10-30-2010 , 08:12   Re: TF2Items - Items with custom attributes.
#498

i've made a perl script making neat stocks from the items_game.txt
feel free to use them.

PHP Code:
stock bool:IsPrimaryWeapon(iItemDefinitionIndex) {
    switch(
iItemDefinitionIndex) {
        case 
9: return true;    //#TF_Weapon_Shotgun
        
case 13: return true;    //#TF_Weapon_Scattergun
        
case 14: return true;    //#TF_Weapon_SniperRifle
        
case 15: return true;    //#TF_Weapon_Minigun
        
case 17: return true;    //#TF_Weapon_SyringeGun
        
case 18: return true;    //#TF_Weapon_RocketLauncher
        
case 20: return true;    //#TF_Weapon_PipebombLauncher
        
case 21: return true;    //#TF_Weapon_FlameThrower
        
case 36: return true;    //#TF_Unique_Achievement_Syringegun1
        
case 40: return true;    //#TF_Unique_Achievement_Flamethrower
        
case 41: return true;    //#TF_Unique_Achievement_Minigun
        
case 45: return true;    //#TF_Unique_Achievement_Scattergun_Double
        
case 56: return true;    //#TF_Unique_Achievement_CompoundBow
        
case 127: return true;    //#TF_Unique_Achievement_RocketLauncher
        
case 130: return true;    //#TF_Unique_Achievement_StickyLauncher
        
case 131: return true;    //#TF_Unique_Achievement_Shield
        
case 141: return true;    //#TF_Unique_Sentry_Shotgun
        
case 199: return true;    //#TF_Weapon_Shotgun
        
case 200: return true;    //#TF_Weapon_Scattergun
        
case 201: return true;    //#TF_Weapon_SniperRifle
        
case 202: return true;    //#TF_Weapon_Minigun
        
case 204: return true;    //#TF_Weapon_SyringeGun
        
case 205: return true;    //#TF_Weapon_RocketLauncher
        
case 207: return true;    //#TF_Weapon_PipebombLauncher
        
case 208: return true;    //#TF_Weapon_FlameThrower
        
case 215: return true;    //#TF_TheDegreaser
        
case 220: return true;    //#TF_TheShortstop
        
case 228: return true;    //#TF_TheBlackBox
        
case 230: return true;    //#TF_SydneySleeper
        
case 237: return true;    //#TF_Weapon_RocketLauncher_Jump
        
case 265: return true;    //#TF_Weapon_StickyBomb_Jump
    
}

    return 
false;
}

stock bool:IsSecondaryWeapon(iItemDefinitionIndex) {
    switch(
iItemDefinitionIndex) {
        case 
10: return true;    //#TF_Weapon_Shotgun
        
case 11: return true;    //#TF_Weapon_Shotgun
        
case 12: return true;    //#TF_Weapon_Shotgun
        
case 16: return true;    //#TF_Weapon_SMG
        
case 19: return true;    //#TF_Weapon_GrenadeLauncher
        
case 22: return true;    //#TF_Weapon_Pistol
        
case 23: return true;    //#TF_Weapon_Pistol
        
case 24: return true;    //#TF_Weapon_Revolver
        
case 29: return true;    //#TF_Weapon_Medigun
        
case 35: return true;    //#TF_Unique_Achievement_Medigun1
        
case 39: return true;    //#TF_Unique_Achievement_Flaregun
        
case 42: return true;    //#TF_Unique_Achievement_LunchBox
        
case 46: return true;    //#TF_Unique_Achievement_EnergyDrink
        
case 57: return true;    //#TF_Unique_Backstab_Shield
        
case 58: return true;    //#TF_Unique_Achievement_Jar
        
case 61: return true;    //#TF_Unique_Achievement_Revolver
        
case 129: return true;    //#TF_Unique_Achievement_SoldierBuff
        
case 133: return true;    //#TF_Unique_Blast_Boots
        
case 140: return true;    //#TF_Unique_Achievement_Laser_Pointer
        
case 159: return true;    //#TF_Unique_Lunchbox_Chocolate
        
case 160: return true;    //#TF_TTG_MaxGun
        
case 161: return true;    //#TF_TTG_SamRevolver
        
case 163: return true;    //#TF_Unique_EnergyDrink_CritCola
        
case 203: return true;    //#TF_Weapon_SMG
        
case 206: return true;    //#TF_Weapon_GrenadeLauncher
        
case 209: return true;    //#TF_Weapon_Pistol
        
case 210: return true;    //#TF_Weapon_Revolver
        
case 211: return true;    //#TF_Weapon_Medigun
        
case 222: return true;    //#TF_MadMilk
        
case 224: return true;    //#TF_LEtranger
        
case 226: return true;    //#TF_TheBattalionsBackup
        
case 231: return true;    //#TF_DarwinsDangerShield
    
}

    return 
false;
}

stock bool:IsMeleeWeapon(iItemDefinitionIndex) {
    switch(
iItemDefinitionIndex) {
        case 
0: return true;    //#TF_Weapon_Bat
        
case 1: return true;    //#TF_Weapon_Bottle
        
case 2: return true;    //#TF_Weapon_FireAxe
        
case 3: return true;    //#TF_Weapon_Club
        
case 4: return true;    //#TF_Weapon_Knife
        
case 5: return true;    //#TF_Weapon_Fists
        
case 6: return true;    //#TF_Weapon_Shovel
        
case 7: return true;    //#TF_Weapon_Wrench
        
case 8: return true;    //#TF_Weapon_Bonesaw
        
case 37: return true;    //#TF_Unique_Achievement_Bonesaw1
        
case 38: return true;    //#TF_Unique_Achievement_FireAxe1
        
case 43: return true;    //#TF_Unique_Achievement_Fists
        
case 44: return true;    //#TF_Unique_Achievement_Bat
        
case 128: return true;    //#TF_Unique_Achievement_Pickaxe
        
case 132: return true;    //#TF_Unique_Achievement_Sword
        
case 142: return true;    //#TF_Unique_Robot_Arm
        
case 153: return true;    //#TF_Unique_SledgeHammer
        
case 154: return true;    //#TF_Unique_Makeshiftclub
        
case 155: return true;    //#TF_Unique_Combat_Wrench
        
case 169: return true;    //#TF_Unique_Golden_Wrench
        
case 171: return true;    //#TF_Unique_TribalmanKukri
        
case 172: return true;    //#TF_Unique_BattleAxe
        
case 173: return true;    //#TF_Unique_BattleSaw
        
case 190: return true;    //#TF_Weapon_Bat
        
case 191: return true;    //#TF_Weapon_Bottle
        
case 192: return true;    //#TF_Weapon_FireAxe
        
case 193: return true;    //#TF_Weapon_Club
        
case 194: return true;    //#TF_Weapon_Knife
        
case 195: return true;    //#TF_Weapon_Fists
        
case 196: return true;    //#TF_Weapon_Shovel
        
case 197: return true;    //#TF_Weapon_Wrench
        
case 198: return true;    //#TF_Weapon_Bonesaw
        
case 214: return true;    //#TF_ThePowerjack
        
case 221: return true;    //#TF_TheHolyMackerel
        
case 225: return true;    //#TF_EternalReward
        
case 232: return true;    //#TF_TheBushwacka
        
case 239: return true;    //#TF_Unique_Gloves_of_Running_Urgently
        
case 264: return true;    //#TF_Unique_FryingPan
        
case 266: return true;    //#TF_HalloweenBoss_Axe
    
}

    return 
false;
}

stock bool:IsCraftToken(iItemDefinitionIndex) {
    switch(
iItemDefinitionIndex) {
        case 
5003: return true;    //#CI_T_C_1
        
case 5004: return true;    //#CI_T_C_2
        
case 5005: return true;    //#CI_T_C_3
        
case 5006: return true;    //#CI_T_C_4
        
case 5007: return true;    //#CI_T_C_5
        
case 5008: return true;    //#CI_T_C_6
        
case 5009: return true;    //#CI_T_C_7
        
case 5010: return true;    //#CI_T_C_8
        
case 5011: return true;    //#CI_T_C_9
        
case 5012: return true;    //#CI_T_S_1
        
case 5013: return true;    //#CI_T_S_2
        
case 5014: return true;    //#CI_T_S_3
        
case 5018: return true;    //#CI_T_S_7
    
}

    return 
false;
}

stock bool:IsHat(iItemDefinitionIndex) {
    switch(
iItemDefinitionIndex) {
        case 
47: return true;    //#TF_Demo_Hat_1
        
case 48: return true;    //#TF_Engineer_Hat_1
        
case 49: return true;    //#TF_Heavy_Hat_1
        
case 50: return true;    //#TF_Medic_Hat_1
        
case 51: return true;    //#TF_Pyro_Hat_1
        
case 52: return true;    //#TF_Scout_Hat_1
        
case 53: return true;    //#TF_Sniper_Hat_1
        
case 54: return true;    //#TF_Soldier_Hat_1
        
case 55: return true;    //#TF_Spy_Hat_1
        
case 94: return true;    //#TF_Engineer_Cowboy_Hat
        
case 95: return true;    //#TF_Engineer_Train_Hat
        
case 96: return true;    //#TF_Heavy_Ushanka_Hat
        
case 97: return true;    //#TF_Heavy_Stocking_cap
        
case 98: return true;    //#TF_Soldier_Pot_Hat
        
case 99: return true;    //#TF_Soldier_Viking_Hat
        
case 100: return true;    //#TF_Demo_Scott_Hat
        
case 101: return true;    //#TF_Medic_Tyrolean_Hat
        
case 102: return true;    //#TF_Pyro_Chicken_Hat
        
case 104: return true;    //#TF_Medic_Mirror_Hat
        
case 105: return true;    //#TF_Pyro_Fireman_Helmet
        
case 106: return true;    //#TF_Scout_Bonk_Helmet
        
case 107: return true;    //#TF_Scout_Newsboy_Cap
        
case 108: return true;    //#TF_Spy_Derby_Hat
        
case 109: return true;    //#TF_Sniper_Straw_Hat
        
case 110: return true;    //#TF_Sniper_Jarate_Headband
        
case 111: return true;    //#TF_Hatless_Scout
        
case 115: return true;    //#TF_Halloween_Hat
        
case 116: return true;    //#TF_Domination_Hat
        
case 117: return true;    //#TF_Hatless_Sniper
        
case 118: return true;    //#TF_Hatless_Engineer
        
case 120: return true;    //#TF_Demo_Top_Hat
        
case 125: return true;    //#TF_HonestyHalo
        
case 126: return true;    //#TF_L4DHat
        
case 134: return true;    //#TF_PropagandaContest_FirstPlace
        
case 135: return true;    //#TF_ToweringPillar_Hat
        
case 136: return true;    //#TF_PropagandaContest_SecondPlace
        
case 137: return true;    //#TF_NobleAmassment_Hat
        
case 138: return true;    //#TF_PropagandaContest_ThirdPlace
        
case 139: return true;    //#TF_ModestPile_Hat
        
case 145: return true;    //#TF_HeavyHair
        
case 146: return true;    //#TF_DemomanHallmark
        
case 147: return true;    //#TF_SpyNobleHair
        
case 148: return true;    //#TF_EngineerWeldingMask
        
case 150: return true;    //#TF_ScoutBeanie
        
case 151: return true;    //#TF_PyroBrainSucker
        
case 152: return true;    //#TF_SoldierSamurai
        
case 158: return true;    //#TF_SniperPithHelmet
        
case 162: return true;    //#TF_TTG_MaxsHat
        
case 174: return true;    //#TF_ScoutWhoopee
        
case 177: return true;    //#TF_MedicGoggles
        
case 178: return true;    //#TF_EngineerEarmuffs
        
case 179: return true;    //#TF_DemomanTricorne
        
case 180: return true;    //#TF_SpyBeret
        
case 181: return true;    //#TF_SniperFishingHat
        
case 182: return true;    //#TF_PyroHelm
        
case 183: return true;    //#TF_SoldierDrillHat
        
case 184: return true;    //#TF_MedicGatsby
        
case 185: return true;    //#TF_HeavyDorag
        
case 189: return true;    //#TF_Parasite_Hat
        
case 213: return true;    //#TF_TheAttendant
        
case 216: return true;    //#TF_DemomanPirate
        
case 219: return true;    //#TF_TheMilkman
        
case 223: return true;    //#TF_TheFamiliarFez
        
case 227: return true;    //#TF_TheGrenadiersSoftcap
        
case 229: return true;    //#TF_OlSnaggletooth
        
case 240: return true;    //#TF_Worms_Gear
        
case 246: return true;    //#TF_HeavyPugilistProtector
        
case 247: return true;    //#TF_PyroFiestaSombrero
        
case 248: return true;    //#TF_PyroBeanie
        
case 249: return true;    //#TF_ScoutBombingRun
        
case 250: return true;    //#TF_SoldierChiefRocketeer
        
case 251: return true;    //#TF_SoldierShako
        
case 252: return true;    //#TF_Seuss
        
case 253: return true;    //#TF_PyroPlunger
        
case 254: return true;    //#TF_HeavyUmbrella
        
case 255: return true;    //#TF_DemoStuntHelmet
        
case 259: return true;    //#TF_DemoInquisitor
        
case 260: return true;    //#TF_WikiCap
        
case 261: return true;    //#TF_MannCoCap
        
case 263: return true;    //#TF_EllisHat
        
case 268: return true;    //#TF_Halloween_Mask_Scout
        
case 269: return true;    //#TF_Halloween_Mask_Sniper
        
case 270: return true;    //#TF_Halloween_Mask_Soldier
        
case 271: return true;    //#TF_Halloween_Mask_Demoman
        
case 272: return true;    //#TF_Halloween_Mask_Medic
        
case 273: return true;    //#TF_Halloween_Mask_Heavy
        
case 274: return true;    //#TF_Halloween_Mask_Spy
        
case 275: return true;    //#TF_Halloween_Mask_Engineer
        
case 276: return true;    //#TF_Halloween_Mask_Pyro
        
case 277: return true;    //#TF_Halloween_Mask_SaxtonHale
        
case 278: return true;    //#TF_Halloween_Head
        
case 279: return true;    //#TF_Domination_Hat_2010
        
case 287: return true;    //#TF_Halloween_Skullcap
        
case 289: return true;    //#TF_Halloween_Voodoo
        
case 290: return true;    //#TF_Cadavers_Cranium
        
case 291: return true;    //#TF_Horrific_Headsplitter
    
}

    return 
false;
}

stock bool:IsMisc(iItemDefinitionIndex) {
    switch(
iItemDefinitionIndex) {
        case 
121: return true;    //#TF_Soldier_Medal_Web_Sleuth
        
case 122: return true;    //#TF_CheatDetectedMinor
        
case 123: return true;    //#TF_CheatDetectedMajor
        
case 124: return true;    //#TF_HonestyReward
        
case 143: return true;    //#TF_OSXItem
        
case 164: return true;    //#TF_Employee_Badge_A
        
case 165: return true;    //#TF_Employee_Badge_B
        
case 166: return true;    //#TF_Employee_Badge_C
        
case 170: return true;    //#TF_Employee_Badge_Plat
        
case 242: return true;    //#TF_Duel_Medal_Bronze
        
case 243: return true;    //#TF_Duel_Medal_Silver
        
case 244: return true;    //#TF_Duel_Medal_Gold
        
case 245: return true;    //#TF_Duel_Medal_Plat
        
case 262: return true;    //#TF_Polycount_Pin
    
}

    return 
false;
}

stock bool:IsMiscHat(iItemDefinitionIndex) {
    switch(
iItemDefinitionIndex) {
        case 
103: return true;    //#TF_Spy_Camera_Beard
        
case 144: return true;    //#TF_MedicMask
        
case 175: return true;    //#TF_PyroMonocle
    
}

    return 
false;
}

stock bool:IsTool(iItemDefinitionIndex) {
    switch(
iItemDefinitionIndex) {
        case 
5020: return true;    //#TF_T_Nt
        
case 5021: return true;    //#TF_Tool_DecoderRing
        
case 5023: return true;    //#TF_Tool_PaintCan
        
case 5027: return true;    //#TF_Tool_PaintCan_1
        
case 5028: return true;    //#TF_Tool_PaintCan_2
        
case 5029: return true;    //#TF_Tool_PaintCan_3
        
case 5030: return true;    //#TF_Tool_PaintCan_4
        
case 5031: return true;    //#TF_Tool_PaintCan_5
        
case 5032: return true;    //#TF_Tool_PaintCan_6
        
case 5033: return true;    //#TF_Tool_PaintCan_7
        
case 5034: return true;    //#TF_Tool_PaintCan_8
        
case 5035: return true;    //#TF_Tool_PaintCan_9
        
case 5036: return true;    //#TF_Tool_PaintCan_10
        
case 5037: return true;    //#TF_Tool_PaintCan_11
        
case 5038: return true;    //#TF_Tool_PaintCan_12
        
case 5039: return true;    //#TF_Tool_PaintCan_13
        
case 5040: return true;    //#TF_Tool_PaintCan_14
        
case 5042: return true;    //#TF_Tool_GiftWrap
        
case 5043: return true;    //#TF_Tool_Gift
        
case 5044: return true;    //#TF_T_Dt
    
}

    return 
false;
}

stock bool:IsActionTool(iItemDefinitionIndex) {
    switch(
iItemDefinitionIndex) {
        case 
233: return true;    //#TF_Gift_RandomPerson
        
case 234: return true;    //#TF_Gift_EntireServer
        
case 241: return true;    //#TF_Usable_Duel
        
case 280: return true;    //#TF_NoiseMaker_BlackCat
        
case 281: return true;    //#TF_NoiseMaker_Gremlin
        
case 282: return true;    //#TF_NoiseMaker_Werewolf
        
case 283: return true;    //#TF_NoiseMaker_Witch
        
case 284: return true;    //#TF_NoiseMaker_Banshee
        
case 286: return true;    //#TF_NoiseMaker_CrazyLaugh
        
case 288: return true;    //#TF_NoiseMaker_Stabby
    
}

    return 
false;
}

stock bool:IsCraftItem(iItemDefinitionIndex) {
    switch(
iItemDefinitionIndex) {
        case 
267: return true;    //#TF_Haunted_Metal
        
case 5000: return true;    //#CI_Bar_A
        
case 5001: return true;    //#CI_Bar_B
        
case 5002: return true;    //#CI_Bar_C
    
}

    return 
false;
}

stock bool:IsUnique(iItemDefinitionIndex) {
    switch(
iItemDefinitionIndex) {
        case 
35: return true;    //#TF_Unique_Achievement_Medigun1
        
case 36: return true;    //#TF_Unique_Achievement_Syringegun1
        
case 37: return true;    //#TF_Unique_Achievement_Bonesaw1
        
case 38: return true;    //#TF_Unique_Achievement_FireAxe1
        
case 39: return true;    //#TF_Unique_Achievement_Flaregun
        
case 40: return true;    //#TF_Unique_Achievement_Flamethrower
        
case 41: return true;    //#TF_Unique_Achievement_Minigun
        
case 42: return true;    //#TF_Unique_Achievement_LunchBox
        
case 43: return true;    //#TF_Unique_Achievement_Fists
        
case 44: return true;    //#TF_Unique_Achievement_Bat
        
case 45: return true;    //#TF_Unique_Achievement_Scattergun_Double
        
case 46: return true;    //#TF_Unique_Achievement_EnergyDrink
        
case 47: return true;    //#TF_Demo_Hat_1
        
case 48: return true;    //#TF_Engineer_Hat_1
        
case 49: return true;    //#TF_Heavy_Hat_1
        
case 50: return true;    //#TF_Medic_Hat_1
        
case 51: return true;    //#TF_Pyro_Hat_1
        
case 52: return true;    //#TF_Scout_Hat_1
        
case 53: return true;    //#TF_Sniper_Hat_1
        
case 54: return true;    //#TF_Soldier_Hat_1
        
case 55: return true;    //#TF_Spy_Hat_1
        
case 56: return true;    //#TF_Unique_Achievement_CompoundBow
        
case 57: return true;    //#TF_Unique_Backstab_Shield
        
case 58: return true;    //#TF_Unique_Achievement_Jar
        
case 59: return true;    //#TF_Unique_Achievement_FeignWatch
        
case 60: return true;    //#TF_Unique_Achievement_CloakWatch
        
case 61: return true;    //#TF_Unique_Achievement_Revolver
        
case 94: return true;    //#TF_Engineer_Cowboy_Hat
        
case 95: return true;    //#TF_Engineer_Train_Hat
        
case 96: return true;    //#TF_Heavy_Ushanka_Hat
        
case 97: return true;    //#TF_Heavy_Stocking_cap
        
case 98: return true;    //#TF_Soldier_Pot_Hat
        
case 99: return true;    //#TF_Soldier_Viking_Hat
        
case 100: return true;    //#TF_Demo_Scott_Hat
        
case 101: return true;    //#TF_Medic_Tyrolean_Hat
        
case 102: return true;    //#TF_Pyro_Chicken_Hat
        
case 103: return true;    //#TF_Spy_Camera_Beard
        
case 104: return true;    //#TF_Medic_Mirror_Hat
        
case 105: return true;    //#TF_Pyro_Fireman_Helmet
        
case 106: return true;    //#TF_Scout_Bonk_Helmet
        
case 107: return true;    //#TF_Scout_Newsboy_Cap
        
case 108: return true;    //#TF_Spy_Derby_Hat
        
case 109: return true;    //#TF_Sniper_Straw_Hat
        
case 110: return true;    //#TF_Sniper_Jarate_Headband
        
case 111: return true;    //#TF_Hatless_Scout
        
case 115: return true;    //#TF_Halloween_Hat
        
case 116: return true;    //#TF_Domination_Hat
        
case 117: return true;    //#TF_Hatless_Sniper
        
case 118: return true;    //#TF_Hatless_Engineer
        
case 120: return true;    //#TF_Demo_Top_Hat
        
case 121: return true;    //#TF_Soldier_Medal_Web_Sleuth
        
case 122: return true;    //#TF_CheatDetectedMinor
        
case 123: return true;    //#TF_CheatDetectedMajor
        
case 124: return true;    //#TF_HonestyReward
        
case 125: return true;    //#TF_HonestyHalo
        
case 126: return true;    //#TF_L4DHat
        
case 127: return true;    //#TF_Unique_Achievement_RocketLauncher
        
case 128: return true;    //#TF_Unique_Achievement_Pickaxe
        
case 129: return true;    //#TF_Unique_Achievement_SoldierBuff
        
case 130: return true;    //#TF_Unique_Achievement_StickyLauncher
        
case 131: return true;    //#TF_Unique_Achievement_Shield
        
case 132: return true;    //#TF_Unique_Achievement_Sword
        
case 133: return true;    //#TF_Unique_Blast_Boots
        
case 134: return true;    //#TF_PropagandaContest_FirstPlace
        
case 135: return true;    //#TF_ToweringPillar_Hat
        
case 136: return true;    //#TF_PropagandaContest_SecondPlace
        
case 137: return true;    //#TF_NobleAmassment_Hat
        
case 138: return true;    //#TF_PropagandaContest_ThirdPlace
        
case 139: return true;    //#TF_ModestPile_Hat
        
case 140: return true;    //#TF_Unique_Achievement_Laser_Pointer
        
case 141: return true;    //#TF_Unique_Sentry_Shotgun
        
case 142: return true;    //#TF_Unique_Robot_Arm
        
case 143: return true;    //#TF_OSXItem
        
case 144: return true;    //#TF_MedicMask
        
case 145: return true;    //#TF_HeavyHair
        
case 146: return true;    //#TF_DemomanHallmark
        
case 147: return true;    //#TF_SpyNobleHair
        
case 148: return true;    //#TF_EngineerWeldingMask
        
case 150: return true;    //#TF_ScoutBeanie
        
case 151: return true;    //#TF_PyroBrainSucker
        
case 152: return true;    //#TF_SoldierSamurai
        
case 153: return true;    //#TF_Unique_SledgeHammer
        
case 154: return true;    //#TF_Unique_Makeshiftclub
        
case 155: return true;    //#TF_Unique_Combat_Wrench
        
case 158: return true;    //#TF_SniperPithHelmet
        
case 159: return true;    //#TF_Unique_Lunchbox_Chocolate
        
case 160: return true;    //#TF_TTG_MaxGun
        
case 161: return true;    //#TF_TTG_SamRevolver
        
case 162: return true;    //#TF_TTG_MaxsHat
        
case 163: return true;    //#TF_Unique_EnergyDrink_CritCola
        
case 164: return true;    //#TF_Employee_Badge_A
        
case 165: return true;    //#TF_Employee_Badge_B
        
case 166: return true;    //#TF_Employee_Badge_C
        
case 169: return true;    //#TF_Unique_Golden_Wrench
        
case 170: return true;    //#TF_Employee_Badge_Plat
        
case 171: return true;    //#TF_Unique_TribalmanKukri
        
case 172: return true;    //#TF_Unique_BattleAxe
        
case 173: return true;    //#TF_Unique_BattleSaw
        
case 174: return true;    //#TF_ScoutWhoopee
        
case 175: return true;    //#TF_PyroMonocle
        
case 177: return true;    //#TF_MedicGoggles
        
case 178: return true;    //#TF_EngineerEarmuffs
        
case 179: return true;    //#TF_DemomanTricorne
        
case 180: return true;    //#TF_SpyBeret
        
case 181: return true;    //#TF_SniperFishingHat
        
case 182: return true;    //#TF_PyroHelm
        
case 183: return true;    //#TF_SoldierDrillHat
        
case 184: return true;    //#TF_MedicGatsby
        
case 185: return true;    //#TF_HeavyDorag
        
case 189: return true;    //#TF_Parasite_Hat
        
case 190: return true;    //#TF_Weapon_Bat
        
case 191: return true;    //#TF_Weapon_Bottle
        
case 192: return true;    //#TF_Weapon_FireAxe
        
case 193: return true;    //#TF_Weapon_Club
        
case 194: return true;    //#TF_Weapon_Knife
        
case 195: return true;    //#TF_Weapon_Fists
        
case 196: return true;    //#TF_Weapon_Shovel
        
case 197: return true;    //#TF_Weapon_Wrench
        
case 198: return true;    //#TF_Weapon_Bonesaw
        
case 199: return true;    //#TF_Weapon_Shotgun
        
case 200: return true;    //#TF_Weapon_Scattergun
        
case 201: return true;    //#TF_Weapon_SniperRifle
        
case 202: return true;    //#TF_Weapon_Minigun
        
case 203: return true;    //#TF_Weapon_SMG
        
case 204: return true;    //#TF_Weapon_SyringeGun
        
case 205: return true;    //#TF_Weapon_RocketLauncher
        
case 206: return true;    //#TF_Weapon_GrenadeLauncher
        
case 207: return true;    //#TF_Weapon_PipebombLauncher
        
case 208: return true;    //#TF_Weapon_FlameThrower
        
case 209: return true;    //#TF_Weapon_Pistol
        
case 210: return true;    //#TF_Weapon_Revolver
        
case 211: return true;    //#TF_Weapon_Medigun
        
case 212: return true;    //#TF_Weapon_Watch
        
case 213: return true;    //#TF_TheAttendant
        
case 214: return true;    //#TF_ThePowerjack
        
case 215: return true;    //#TF_TheDegreaser
        
case 216: return true;    //#TF_DemomanPirate
        
case 219: return true;    //#TF_TheMilkman
        
case 220: return true;    //#TF_TheShortstop
        
case 221: return true;    //#TF_TheHolyMackerel
        
case 222: return true;    //#TF_MadMilk
        
case 223: return true;    //#TF_TheFamiliarFez
        
case 224: return true;    //#TF_LEtranger
        
case 225: return true;    //#TF_EternalReward
        
case 226: return true;    //#TF_TheBattalionsBackup
        
case 227: return true;    //#TF_TheGrenadiersSoftcap
        
case 228: return true;    //#TF_TheBlackBox
        
case 229: return true;    //#TF_OlSnaggletooth
        
case 230: return true;    //#TF_SydneySleeper
        
case 231: return true;    //#TF_DarwinsDangerShield
        
case 232: return true;    //#TF_TheBushwacka
        
case 233: return true;    //#TF_Gift_RandomPerson
        
case 234: return true;    //#TF_Gift_EntireServer
        
case 237: return true;    //#TF_Weapon_RocketLauncher_Jump
        
case 239: return true;    //#TF_Unique_Gloves_of_Running_Urgently
        
case 240: return true;    //#TF_Worms_Gear
        
case 241: return true;    //#TF_Usable_Duel
        
case 242: return true;    //#TF_Duel_Medal_Bronze
        
case 243: return true;    //#TF_Duel_Medal_Silver
        
case 244: return true;    //#TF_Duel_Medal_Gold
        
case 245: return true;    //#TF_Duel_Medal_Plat
        
case 246: return true;    //#TF_HeavyPugilistProtector
        
case 247: return true;    //#TF_PyroFiestaSombrero
        
case 248: return true;    //#TF_PyroBeanie
        
case 249: return true;    //#TF_ScoutBombingRun
        
case 250: return true;    //#TF_SoldierChiefRocketeer
        
case 251: return true;    //#TF_SoldierShako
        
case 252: return true;    //#TF_Seuss
        
case 253: return true;    //#TF_PyroPlunger
        
case 254: return true;    //#TF_HeavyUmbrella
        
case 255: return true;    //#TF_DemoStuntHelmet
        
case 259: return true;    //#TF_DemoInquisitor
        
case 260: return true;    //#TF_WikiCap
        
case 261: return true;    //#TF_MannCoCap
        
case 262: return true;    //#TF_Polycount_Pin
        
case 263: return true;    //#TF_EllisHat
        
case 264: return true;    //#TF_Unique_FryingPan
        
case 265: return true;    //#TF_Weapon_StickyBomb_Jump
        
case 268: return true;    //#TF_Halloween_Mask_Scout
        
case 269: return true;    //#TF_Halloween_Mask_Sniper
        
case 270: return true;    //#TF_Halloween_Mask_Soldier
        
case 271: return true;    //#TF_Halloween_Mask_Demoman
        
case 272: return true;    //#TF_Halloween_Mask_Medic
        
case 273: return true;    //#TF_Halloween_Mask_Heavy
        
case 274: return true;    //#TF_Halloween_Mask_Spy
        
case 275: return true;    //#TF_Halloween_Mask_Engineer
        
case 276: return true;    //#TF_Halloween_Mask_Pyro
        
case 277: return true;    //#TF_Halloween_Mask_SaxtonHale
        
case 278: return true;    //#TF_Halloween_Head
        
case 279: return true;    //#TF_Domination_Hat_2010
        
case 280: return true;    //#TF_NoiseMaker_BlackCat
        
case 281: return true;    //#TF_NoiseMaker_Gremlin
        
case 282: return true;    //#TF_NoiseMaker_Werewolf
        
case 283: return true;    //#TF_NoiseMaker_Witch
        
case 284: return true;    //#TF_NoiseMaker_Banshee
        
case 286: return true;    //#TF_NoiseMaker_CrazyLaugh
        
case 287: return true;    //#TF_Halloween_Skullcap
        
case 288: return true;    //#TF_NoiseMaker_Stabby
        
case 289: return true;    //#TF_Halloween_Voodoo
        
case 290: return true;    //#TF_Cadavers_Cranium
        
case 291: return true;    //#TF_Horrific_Headsplitter
        
case 2000: return true;    //#TF_Bundle_PolycountPyro
        
case 2001: return true;    //#TF_Bundle_PolycountSpy
        
case 2002: return true;    //#TF_Bundle_PolycountSoldier
        
case 2003: return true;    //#TF_Bundle_PolycountSniper
        
case 2004: return true;    //#TF_Bundle_PolycountScout
        
case 2005: return true;    //#TF_Bundle_Polycount
        
case 2006: return true;    //#TF_Bundle_HalloweenNoiseMaker
        
case 5000: return true;    //#CI_Bar_A
        
case 5001: return true;    //#CI_Bar_B
        
case 5002: return true;    //#CI_Bar_C
        
case 5003: return true;    //#CI_T_C_1
        
case 5004: return true;    //#CI_T_C_2
        
case 5005: return true;    //#CI_T_C_3
        
case 5006: return true;    //#CI_T_C_4
        
case 5007: return true;    //#CI_T_C_5
        
case 5008: return true;    //#CI_T_C_6
        
case 5009: return true;    //#CI_T_C_7
        
case 5010: return true;    //#CI_T_C_8
        
case 5011: return true;    //#CI_T_C_9
        
case 5012: return true;    //#CI_T_S_1
        
case 5013: return true;    //#CI_T_S_2
        
case 5014: return true;    //#CI_T_S_3
        
case 5018: return true;    //#CI_T_S_7
        
case 5020: return true;    //#TF_T_Nt
        
case 5021: return true;    //#TF_Tool_DecoderRing
        
case 5022: return true;    //#TF_SupplyCrate
        
case 5023: return true;    //#TF_Tool_PaintCan
        
case 5027: return true;    //#TF_Tool_PaintCan_1
        
case 5028: return true;    //#TF_Tool_PaintCan_2
        
case 5029: return true;    //#TF_Tool_PaintCan_3
        
case 5030: return true;    //#TF_Tool_PaintCan_4
        
case 5031: return true;    //#TF_Tool_PaintCan_5
        
case 5032: return true;    //#TF_Tool_PaintCan_6
        
case 5033: return true;    //#TF_Tool_PaintCan_7
        
case 5034: return true;    //#TF_Tool_PaintCan_8
        
case 5035: return true;    //#TF_Tool_PaintCan_9
        
case 5036: return true;    //#TF_Tool_PaintCan_10
        
case 5037: return true;    //#TF_Tool_PaintCan_11
        
case 5038: return true;    //#TF_Tool_PaintCan_12
        
case 5039: return true;    //#TF_Tool_PaintCan_13
        
case 5040: return true;    //#TF_Tool_PaintCan_14
        
case 5041: return true;    //#TF_SupplyCrate
        
case 5042: return true;    //#TF_Tool_GiftWrap
        
case 5043: return true;    //#TF_Tool_Gift
        
case 5044: return true;    //#TF_T_Dt
        
case 5045: return true;    //#TF_SupplyCrate
    
}

    return 
false;

__________________
einmal mit profis arbeiten. einmal.
Thrawn2 is offline
Sorrowfire
Member
Join Date: Jul 2010
Location: <Missing String>
Old 10-30-2010 , 15:33   Re: TF2Items - Items with custom attributes.
#499

Halloween update, means updated tf2items_giveitem.sp

Just doing my part to try and keep the giveitem plug-in updated. And its abit more organized then the last time i updated with the polycount weapons.
Ps: I have not, and will not change the plug-in version data or anything like that, ill leave that to the official creators.

Oh and just a heads up, the "customized" tag before a quality level 10 weapon is not a glitch. I have had the same thing happen to myself, so its really just something valve added. (Items_game.txt backs this up)

Code:
        }
        "customized"
        {
            "value"    "10"
        }
•And below is the updated plug-in information for the giveitem plug-in. And as a sub-note, any weapon that's shared between the demoman and soldier won't work. Unless you yourself are a soldier and or demoman.

•And as an extra treat, if you disguise when playing a spy, give yourself a weapon (that you cant usually use), and then un-disguise, everyone should be able to see you using the weapon.

Code:
#pragma semicolon 1 // Force strict semicolon mode.

#include <sourcemod>
#define REQUIRE_EXTENSIONS
#include <tf2items>
#include <sdktools>

#define PLUGIN_NAME        "[TF2Items] Give Weapon"
#define PLUGIN_AUTHOR        "Asherkin (updates by FlaminSarge)"
#define PLUGIN_VERSION        "1.4.1"
#define PLUGIN_CONTACT        "http://limetech.org/"

new g_hItems[MAXPLAYERS+1][6];
new Handle:g_hItemInfoTrie = INVALID_HANDLE;

public Plugin:myinfo = {
    name            = PLUGIN_NAME,
    author            = PLUGIN_AUTHOR,
    description    = PLUGIN_NAME,
    version        = PLUGIN_VERSION,
    url                = PLUGIN_CONTACT
};

public OnPluginStart()
{
    LoadTranslations("common.phrases");

    RegAdminCmd("sm_give", Command_Weapon, ADMFLAG_CHEATS, "sm_give <player> <itemindex>");
    RegAdminCmd("sm_give_ex", Command_WeaponEx, ADMFLAG_CHEATS, "sm_give_ex <player> <itemindex>");
    RegAdminCmd("sm_ludmila", Command_GiveLudmila, ADMFLAG_GENERIC, "Give Ludmila to yourself using sm_ludmila");
    RegAdminCmd("sm_gloves", Command_GiveGlovesofRunning, ADMFLAG_GENERIC, "Give the Gloves of Running Urgently to yourself using sm_gloves");
    RegAdminCmd("sm_spycrab", Command_GiveSpycrabPDA, ADMFLAG_CHEATS, "Give the Spycrab PDA to yourself with sm_spycrabpda");

    CreateItemInfoTrie();
}

public OnClientPutInServer(client) {
    for (new i = 0; i < 6; i++) {
        if (g_hItems[client][i] != -1) {
            g_hItems[client][i] = -1;
        }
    }
    return true;
}

public OnClientDisconnect_Post(client)
{
    for (new i = 0; i < 6; i++)
    {
        if (g_hItems[client][i] != -1)
        {
            g_hItems[client][i] = -1;
        }
    }
}

public Action:TF2Items_OnGiveNamedItem(client, String:strClassName[], iItemDefinitionIndex, &Handle:hItemOverride)
{
    new weaponSlot;
    new String:formatBuffer[32];
    Format(formatBuffer, 32, "%d_%s", iItemDefinitionIndex, "slot");
    GetTrieValue(g_hItemInfoTrie, formatBuffer, weaponSlot);
    
    if (g_hItems[client][weaponSlot] == -1)
    {
        //PrintToChat(client, "No weapon for slot %d.", weaponSlot);
        return Plugin_Continue;
    }
    
    //PrintToChat(client, "Weapon in-queue for slot %d.", weaponSlot);
    hItemOverride = PrepareItemHandle(g_hItems[client][weaponSlot]);
    g_hItems[client][weaponSlot] = -1;
    
    return Plugin_Changed;
}

public Action:Command_WeaponEx(client, args)
{
    new String:arg1[32];
    new String:arg2[32];
    new weaponLookupIndex = 0;
 
    if (args != 2)
    {
        ReplyToCommand(client, "[TF2Items] Usage: sm_giveweapon_ex <player> <itemindex>");
        return Plugin_Handled;
    }
    
    /* Get the arguments */
    GetCmdArg(1, arg1, sizeof(arg1));
    GetCmdArg(2, arg2, sizeof(arg2));
    weaponLookupIndex = StringToInt(arg2);
 
    /**
     * target_name - stores the noun identifying the target(s)
     * target_list - array to store clients
     * target_count - variable to store number of clients
     * tn_is_ml - stores whether the noun must be translated
     */
    new String:target_name[MAX_TARGET_LENGTH];
    new target_list[MAXPLAYERS], target_count;
    new bool:tn_is_ml;
 
    if ((target_count = ProcessTargetString(
            arg1,
            client,
            target_list,
            MAXPLAYERS,
            COMMAND_FILTER_ALIVE, /* Only allow alive players */
            target_name,
            sizeof(target_name),
            tn_is_ml)) <= 0)
    {
        /* This function replies to the admin with a failure message */
        ReplyToTargetError(client, target_count);
        return Plugin_Handled;
    }
 
    for (new i = 0; i < target_count; i++)
    {
        new weaponSlot;
        new String:formatBuffer[32];
        Format(formatBuffer, 32, "%d_%s", weaponLookupIndex, "slot");
        new bool:isValidItem = GetTrieValue(g_hItemInfoTrie, formatBuffer, weaponSlot);
        
        if (!isValidItem)
        {
            ReplyToCommand(client, "[TF2Items] Invalid Weapon Index");
            return Plugin_Handled;
        }
        
        PrintToChat(target_list[i], "[TF2Items] Respawn or touch a locker to recieve your new weapon.");
        g_hItems[target_list[i]][weaponSlot] = weaponLookupIndex;
        
        LogAction(client, target_list[i], "\"%L\" gave a weapon to \"%L\"", client, target_list[i]);
    }
 
    if (tn_is_ml) {
        ShowActivity2(client, "[TF2Items] ", "%t was given a weapon!", target_name);
    } else {
        ShowActivity2(client, "[TF2Items] ", "%s was given a weapon!", target_name);
    }
 
    return Plugin_Handled;
}

public Action:Command_Weapon(client, args)
{
    new String:arg1[32];
    new String:arg2[32];
    new weaponLookupIndex = 0;
 
    if (args != 2) {
        ReplyToCommand(client, "[TF2Items] Usage: sm_giveweapon <player> <itemindex>");
        return Plugin_Handled;
    }
    
    /* Get the arguments */
    GetCmdArg(1, arg1, sizeof(arg1));
    GetCmdArg(2, arg2, sizeof(arg2));
    weaponLookupIndex = StringToInt(arg2);
 
    /**
     * target_name - stores the noun identifying the target(s)
     * target_list - array to store clients
     * target_count - variable to store number of clients
     * tn_is_ml - stores whether the noun must be translated
     */
    new String:target_name[MAX_TARGET_LENGTH];
    new target_list[MAXPLAYERS], target_count;
    new bool:tn_is_ml;
 
    if ((target_count = ProcessTargetString(
            arg1,
            client,
            target_list,
            MAXPLAYERS,
            COMMAND_FILTER_ALIVE, /* Only allow alive players */
            target_name,
            sizeof(target_name),
            tn_is_ml)) <= 0)
    {
        /* This function replies to the admin with a failure message */
        ReplyToTargetError(client, target_count);
        return Plugin_Handled;
    }
 
    for (new i = 0; i < target_count; i++)
    {
        new weaponSlot;
        new String:formatBuffer[32];
        Format(formatBuffer, 32, "%d_%s", weaponLookupIndex, "slot");
        new bool:isValidItem = GetTrieValue(g_hItemInfoTrie, formatBuffer, weaponSlot);
        
        if (!isValidItem)
        {
            ReplyToCommand(client, "[TF2Items] Invalid Weapon Index");
            return Plugin_Handled;
        }
        
        new index = -1;
        while ((index = GetPlayerWeaponSlot(target_list[i], weaponSlot)) != -1)
        {
            RemovePlayerItem(target_list[i], index);
            RemoveEdict(index);
        }
        
        new Handle:hWeapon = PrepareItemHandle(weaponLookupIndex);
        
        new entity = TF2Items_GiveNamedItem(target_list[i], hWeapon);
        CloseHandle(hWeapon);
        
        if (IsValidEntity(entity))
        {
            EquipPlayerWeapon(target_list[i], entity);
        }
        else
        {
            PrintToChat(target_list[i], "[TF2Items] Respawn or touch a locker to recieve your new weapon.");
            g_hItems[target_list[i]][weaponSlot] = weaponLookupIndex;
        }
        
        LogAction(client, target_list[i], "\"%L\" gave a weapon to \"%L\"", client, target_list[i]);
    }
 
    if (tn_is_ml) {
        ShowActivity2(client, "[TF2Items] ", "%t was given a weapon!", target_name);
    } else {
        ShowActivity2(client, "[TF2Items] ", "%s was given a weapon!", target_name);
    }
 
    return Plugin_Handled;
}

public Action:Command_GiveLudmila(client, args)
{    
    if (args == 0)
    {
        if (client == 0)
        {
            ReplyToCommand(client, "[TF2Items] Cannot give Ludmila to console");
            return Plugin_Handled;
        }
        if(IsClientInGame(client) && IsPlayerAlive(client))
        {
            ServerCommand("sm_giveweapon #%d 2041", GetClientUserId(client));
            return Plugin_Handled;
        }
        else
        {
            ReplyToCommand(client, "[TF2Items] Cannot give Ludmila yet, wait to spawn");
            return Plugin_Handled;
        }
    }
    return Plugin_Continue;
}

public Action:Command_GiveGlovesofRunning(client, args)
{    
    if (args == 0)
    {
        if (client == 0)
        {
            ReplyToCommand(client, "[TF2Items] Cannot give Gloves of Running Urgently to console");
            return Plugin_Handled;
        }
        if(IsClientInGame(client) && IsPlayerAlive(client))
        {
            ServerCommand("sm_giveweapon #%d 239", GetClientUserId(client));
            return Plugin_Handled;
        }
        else
        {
            ReplyToCommand(client, "[TF2Items] Cannot give Gloves of Running Urgently yet, wait to spawn");
            return Plugin_Handled;
        }
    }
    return Plugin_Continue;
}

public Action:Command_GiveSpycrabPDA(client, args)
{    
    if (args == 0)
    {
        if (client == 0)
        {
            ReplyToCommand(client, "[TF2Items] Cannot give Spycrab PDA to console");
            return Plugin_Handled;
        }
        if(IsClientInGame(client) && IsPlayerAlive(client))
        {
            ServerCommand("sm_giveweapon #%d 9027", GetClientUserId(client));
            return Plugin_Handled;    
        }
        else
        {
            ReplyToCommand(client, "[TF2Items] Cannot give Spycrab PDA yet, wait to spawn");
            return Plugin_Handled;
        }
    }
    return Plugin_Continue;
}

Handle:PrepareItemHandle(weaponLookupIndex)
{
    new String:formatBuffer[32];    
    new String:weaponClassname[64];
    new weaponIndex;
    new weaponSlot;
    new weaponQuality;
    new weaponLevel;
    new String:weaponAttribs[256];
    
    Format(formatBuffer, 32, "%d_%s", weaponLookupIndex, "classname");
    GetTrieString(g_hItemInfoTrie, formatBuffer, weaponClassname, 64);
    
    Format(formatBuffer, 32, "%d_%s", weaponLookupIndex, "index");
    GetTrieValue(g_hItemInfoTrie, formatBuffer, weaponIndex);
    
    Format(formatBuffer, 32, "%d_%s", weaponLookupIndex, "slot");
    GetTrieValue(g_hItemInfoTrie, formatBuffer, weaponSlot);
    
    Format(formatBuffer, 32, "%d_%s", weaponLookupIndex, "quality");
    GetTrieValue(g_hItemInfoTrie, formatBuffer, weaponQuality);
    
    Format(formatBuffer, 32, "%d_%s", weaponLookupIndex, "level");
    GetTrieValue(g_hItemInfoTrie, formatBuffer, weaponLevel);
    
    Format(formatBuffer, 32, "%d_%s", weaponLookupIndex, "attribs");
    GetTrieString(g_hItemInfoTrie, formatBuffer, weaponAttribs, 256);
    
    new String:weaponAttribsArray[32][32];
    new attribCount = ExplodeString(weaponAttribs, " ; ", weaponAttribsArray, 32, 32);
    
    new Handle:hWeapon = TF2Items_CreateItem(OVERRIDE_CLASSNAME | OVERRIDE_ITEM_DEF | OVERRIDE_ITEM_LEVEL | OVERRIDE_ITEM_QUALITY | OVERRIDE_ATTRIBUTES);

    TF2Items_SetClassname(hWeapon, weaponClassname);
    TF2Items_SetItemIndex(hWeapon, weaponIndex);
    TF2Items_SetLevel(hWeapon, weaponLevel);
    TF2Items_SetQuality(hWeapon, weaponQuality);

    if (attribCount > 0) {
        TF2Items_SetNumAttributes(hWeapon, attribCount/2);
        new i2 = 0;
        for (new i = 0; i < attribCount; i+=2) {
            TF2Items_SetAttribute(hWeapon, i2, StringToInt(weaponAttribsArray[i]), StringToFloat(weaponAttribsArray[i+1]));
            i2++;
        }
    } else {
        TF2Items_SetNumAttributes(hWeapon, 0);
    }
    
    return hWeapon;
}

CreateItemInfoTrie()
{
    g_hItemInfoTrie = CreateTrie();

//bat
    SetTrieString(g_hItemInfoTrie, "0_classname", "tf_weapon_bat");
    SetTrieValue(g_hItemInfoTrie, "0_index", 0);
    SetTrieValue(g_hItemInfoTrie, "0_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "0_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "0_level", 1);
    SetTrieString(g_hItemInfoTrie, "0_attribs", "");

//bottle
    SetTrieString(g_hItemInfoTrie, "1_classname", "tf_weapon_bottle");
    SetTrieValue(g_hItemInfoTrie, "1_index", 1);
    SetTrieValue(g_hItemInfoTrie, "1_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "1_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "1_level", 1);
    SetTrieString(g_hItemInfoTrie, "1_attribs", "");

//fire axe
    SetTrieString(g_hItemInfoTrie, "2_classname", "tf_weapon_fireaxe");
    SetTrieValue(g_hItemInfoTrie, "2_index", 2);
    SetTrieValue(g_hItemInfoTrie, "2_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "2_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "2_level", 1);
    SetTrieString(g_hItemInfoTrie, "2_attribs", "");

//kukri
    SetTrieString(g_hItemInfoTrie, "3_classname", "tf_weapon_club");
    SetTrieValue(g_hItemInfoTrie, "3_index", 3);
    SetTrieValue(g_hItemInfoTrie, "3_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "3_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "3_level", 1);
    SetTrieString(g_hItemInfoTrie, "3_attribs", "");

//knife
    SetTrieString(g_hItemInfoTrie, "4_classname", "tf_weapon_knife");
    SetTrieValue(g_hItemInfoTrie, "4_index", 4);
    SetTrieValue(g_hItemInfoTrie, "4_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "4_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "4_level", 1);
    SetTrieString(g_hItemInfoTrie, "4_attribs", "");

//fists
    SetTrieString(g_hItemInfoTrie, "5_classname", "tf_weapon_fists");
    SetTrieValue(g_hItemInfoTrie, "5_index", 5);
    SetTrieValue(g_hItemInfoTrie, "5_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "5_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "5_level", 1);
    SetTrieString(g_hItemInfoTrie, "5_attribs", "");

//shovel
    SetTrieString(g_hItemInfoTrie, "6_classname", "tf_weapon_shovel");
    SetTrieValue(g_hItemInfoTrie, "6_index", 6);
    SetTrieValue(g_hItemInfoTrie, "6_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "6_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "6_level", 1);
    SetTrieString(g_hItemInfoTrie, "6_attribs", "");

//wrench
    SetTrieString(g_hItemInfoTrie, "7_classname", "tf_weapon_wrench");
    SetTrieValue(g_hItemInfoTrie, "7_index", 7);
    SetTrieValue(g_hItemInfoTrie, "7_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "7_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "7_level", 1);
    SetTrieString(g_hItemInfoTrie, "7_attribs", "");

//bonesaw
    SetTrieString(g_hItemInfoTrie, "8_classname", "tf_weapon_bonesaw");
    SetTrieValue(g_hItemInfoTrie, "8_index", 8);
    SetTrieValue(g_hItemInfoTrie, "8_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "8_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "8_level", 1);
    SetTrieString(g_hItemInfoTrie, "8_attribs", "");

//shotgun engineer
    SetTrieString(g_hItemInfoTrie, "9_classname", "tf_weapon_shotgun_primary");
    SetTrieValue(g_hItemInfoTrie, "9_index", 9);
    SetTrieValue(g_hItemInfoTrie, "9_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "9_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "9_level", 1);
    SetTrieString(g_hItemInfoTrie, "9_attribs", "");

//shotgun soldier
    SetTrieString(g_hItemInfoTrie, "10_classname", "tf_weapon_shotgun_soldier");
    SetTrieValue(g_hItemInfoTrie, "10_index", 10);
    SetTrieValue(g_hItemInfoTrie, "10_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "10_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "10_level", 1);
    SetTrieString(g_hItemInfoTrie, "10_attribs", "");

//shotgun heavy
    SetTrieString(g_hItemInfoTrie, "11_classname", "tf_weapon_shotgun_hwg");
    SetTrieValue(g_hItemInfoTrie, "11_index", 11);
    SetTrieValue(g_hItemInfoTrie, "11_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "11_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "11_level", 1);
    SetTrieString(g_hItemInfoTrie, "11_attribs", "");

//shotgun pyro
    SetTrieString(g_hItemInfoTrie, "12_classname", "tf_weapon_shotgun_pyro");
    SetTrieValue(g_hItemInfoTrie, "12_index", 12);
    SetTrieValue(g_hItemInfoTrie, "12_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "12_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "12_level", 1);
    SetTrieString(g_hItemInfoTrie, "12_attribs", "");

//scattergun
    SetTrieString(g_hItemInfoTrie, "13_classname", "tf_weapon_scattergun");
    SetTrieValue(g_hItemInfoTrie, "13_index", 13);
    SetTrieValue(g_hItemInfoTrie, "13_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "13_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "13_level", 1);
    SetTrieString(g_hItemInfoTrie, "13_attribs", "");

//sniper rifle
    SetTrieString(g_hItemInfoTrie, "14_classname", "tf_weapon_sniperrifle");
    SetTrieValue(g_hItemInfoTrie, "14_index", 14);
    SetTrieValue(g_hItemInfoTrie, "14_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "14_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "14_level", 1);
    SetTrieString(g_hItemInfoTrie, "14_attribs", "");

//minigun
    SetTrieString(g_hItemInfoTrie, "15_classname", "tf_weapon_minigun");
    SetTrieValue(g_hItemInfoTrie, "15_index", 15);
    SetTrieValue(g_hItemInfoTrie, "15_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "15_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "15_level", 1);
    SetTrieString(g_hItemInfoTrie, "15_attribs", "");

//smg
    SetTrieString(g_hItemInfoTrie, "16_classname", "tf_weapon_smg");
    SetTrieValue(g_hItemInfoTrie, "16_index", 16);
    SetTrieValue(g_hItemInfoTrie, "16_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "16_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "16_level", 1);
    SetTrieString(g_hItemInfoTrie, "16_attribs", "");

//syringe gun
    SetTrieString(g_hItemInfoTrie, "17_classname", "tf_weapon_syringegun_medic");
    SetTrieValue(g_hItemInfoTrie, "17_index", 17);
    SetTrieValue(g_hItemInfoTrie, "17_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "17_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "17_level", 1);
    SetTrieString(g_hItemInfoTrie, "17_attribs", "");

//rocket launcher
    SetTrieString(g_hItemInfoTrie, "18_classname", "tf_weapon_rocketlauncher");
    SetTrieValue(g_hItemInfoTrie, "18_index", 18);
    SetTrieValue(g_hItemInfoTrie, "18_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "18_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "18_level", 1);
    SetTrieString(g_hItemInfoTrie, "18_attribs", "");

//grenade launcher
    SetTrieString(g_hItemInfoTrie, "19_classname", "tf_weapon_grenadelauncher");
    SetTrieValue(g_hItemInfoTrie, "19_index", 19);
    SetTrieValue(g_hItemInfoTrie, "19_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "19_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "19_level", 1);
    SetTrieString(g_hItemInfoTrie, "19_attribs", "");

//sticky launcher
    SetTrieString(g_hItemInfoTrie, "20_classname", "tf_weapon_pipebomblauncher");
    SetTrieValue(g_hItemInfoTrie, "20_index", 20);
    SetTrieValue(g_hItemInfoTrie, "20_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "20_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "20_level", 1);
    SetTrieString(g_hItemInfoTrie, "20_attribs", "");

//flamethrower
    SetTrieString(g_hItemInfoTrie, "21_classname", "tf_weapon_flamethrower");
    SetTrieValue(g_hItemInfoTrie, "21_index", 21);
    SetTrieValue(g_hItemInfoTrie, "21_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "21_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "21_level", 1);
    SetTrieString(g_hItemInfoTrie, "21_attribs", "");

//pistol engineer
    SetTrieString(g_hItemInfoTrie, "22_classname", "tf_weapon_pistol");
    SetTrieValue(g_hItemInfoTrie, "22_index", 22);
    SetTrieValue(g_hItemInfoTrie, "22_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "22_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "22_level", 1);
    SetTrieString(g_hItemInfoTrie, "22_attribs", "");

//pistol scout
    SetTrieString(g_hItemInfoTrie, "23_classname", "tf_weapon_pistol_scout");
    SetTrieValue(g_hItemInfoTrie, "23_index", 23);
    SetTrieValue(g_hItemInfoTrie, "23_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "23_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "23_level", 1);
    SetTrieString(g_hItemInfoTrie, "23_attribs", "");

//revolver
    SetTrieString(g_hItemInfoTrie, "24_classname", "tf_weapon_revolver");
    SetTrieValue(g_hItemInfoTrie, "24_index", 24);
    SetTrieValue(g_hItemInfoTrie, "24_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "24_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "24_level", 1);
    SetTrieString(g_hItemInfoTrie, "24_attribs", "");

//build pda engineer
    SetTrieString(g_hItemInfoTrie, "25_classname", "tf_weapon_pda_engineer_build");
    SetTrieValue(g_hItemInfoTrie, "25_index", 25);
    SetTrieValue(g_hItemInfoTrie, "25_slot", 3);
    SetTrieValue(g_hItemInfoTrie, "25_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "25_level", 1);
    SetTrieString(g_hItemInfoTrie, "25_attribs", "");

//destroy pda engineer
    SetTrieString(g_hItemInfoTrie, "26_classname", "tf_weapon_pda_engineer_destroy");
    SetTrieValue(g_hItemInfoTrie, "26_index", 26);
    SetTrieValue(g_hItemInfoTrie, "26_slot", 4);
    SetTrieValue(g_hItemInfoTrie, "26_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "26_level", 1);
    SetTrieString(g_hItemInfoTrie, "26_attribs", "");

//disguise kit spy
    SetTrieString(g_hItemInfoTrie, "27_classname", "tf_weapon_pda_spy");
    SetTrieValue(g_hItemInfoTrie, "27_index", 27);
    SetTrieValue(g_hItemInfoTrie, "27_slot", 3);
    SetTrieValue(g_hItemInfoTrie, "27_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "27_level", 1);
    SetTrieString(g_hItemInfoTrie, "27_attribs", "");

//builder
    SetTrieString(g_hItemInfoTrie, "28_classname", "tf_weapon_builder");
    SetTrieValue(g_hItemInfoTrie, "28_index", 28);
    SetTrieValue(g_hItemInfoTrie, "28_slot", 5);
    SetTrieValue(g_hItemInfoTrie, "28_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "28_level", 1);
    SetTrieString(g_hItemInfoTrie, "28_attribs", "");

//medigun
    SetTrieString(g_hItemInfoTrie, "29_classname", "tf_weapon_medigun");
    SetTrieValue(g_hItemInfoTrie, "29_index", 29);
    SetTrieValue(g_hItemInfoTrie, "29_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "29_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "29_level", 1);
    SetTrieString(g_hItemInfoTrie, "29_attribs", "");

//invis watch
    SetTrieString(g_hItemInfoTrie, "30_classname", "tf_weapon_invis");
    SetTrieValue(g_hItemInfoTrie, "30_index", 30);
    SetTrieValue(g_hItemInfoTrie, "30_slot", 4);
    SetTrieValue(g_hItemInfoTrie, "30_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "30_level", 1);
    SetTrieString(g_hItemInfoTrie, "30_attribs", "");

//flaregun engineerpistol
    SetTrieString(g_hItemInfoTrie, "31_classname", "tf_weapon_flaregun");
    SetTrieValue(g_hItemInfoTrie, "31_index", 31);
    SetTrieValue(g_hItemInfoTrie, "31_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "31_quality", 0);
    SetTrieValue(g_hItemInfoTrie, "31_level", 1);
    SetTrieString(g_hItemInfoTrie, "31_attribs", "");

//kritzkrieg
    SetTrieString(g_hItemInfoTrie, "35_classname", "tf_weapon_medigun");
    SetTrieValue(g_hItemInfoTrie, "35_index", 35);
    SetTrieValue(g_hItemInfoTrie, "35_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "35_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "35_level", 8);
    SetTrieString(g_hItemInfoTrie, "35_attribs", "18 ; 1.0 ; 10 ; 1.25");

//blutsauger
    SetTrieString(g_hItemInfoTrie, "36_classname", "tf_weapon_syringegun_medic");
    SetTrieValue(g_hItemInfoTrie, "36_index", 36);
    SetTrieValue(g_hItemInfoTrie, "36_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "36_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "36_level", 5);
    SetTrieString(g_hItemInfoTrie, "36_attribs", "16 ; 3.0 ; 129 ; -2.0");

//ubersaw
    SetTrieString(g_hItemInfoTrie, "37_classname", "tf_weapon_bonesaw");
    SetTrieValue(g_hItemInfoTrie, "37_index", 37);
    SetTrieValue(g_hItemInfoTrie, "37_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "37_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "37_level", 10);
    SetTrieString(g_hItemInfoTrie, "37_attribs", "17 ; 0.25 ; 5 ; 1.2");

//axetinguisher
    SetTrieString(g_hItemInfoTrie, "38_classname", "tf_weapon_fireaxe");
    SetTrieValue(g_hItemInfoTrie, "38_index", 38);
    SetTrieValue(g_hItemInfoTrie, "38_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "38_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "38_level", 10);
    SetTrieString(g_hItemInfoTrie, "38_attribs", "20 ; 1.0 ; 21 ; 0.5 ; 22 ; 1.0");

//flaregun pyro
    SetTrieString(g_hItemInfoTrie, "39_classname", "tf_weapon_flaregun");
    SetTrieValue(g_hItemInfoTrie, "39_index", 39);
    SetTrieValue(g_hItemInfoTrie, "39_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "39_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "39_level", 10);
    SetTrieString(g_hItemInfoTrie, "39_attribs", "25 ; 0.5");

//backburner
    SetTrieString(g_hItemInfoTrie, "40_classname", "tf_weapon_flamethrower");
    SetTrieValue(g_hItemInfoTrie, "40_index", 40);
    SetTrieValue(g_hItemInfoTrie, "40_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "40_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "40_level", 10);
    SetTrieString(g_hItemInfoTrie, "40_attribs", "23 ; 1.0 ; 24 ; 1.0 ; 28 ; 0.0");

//natascha
    SetTrieString(g_hItemInfoTrie, "41_classname", "tf_weapon_minigun");
    SetTrieValue(g_hItemInfoTrie, "41_index", 41);
    SetTrieValue(g_hItemInfoTrie, "41_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "41_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "41_level", 5);
    SetTrieString(g_hItemInfoTrie, "41_attribs", "32 ; 1.0 ; 1 ; 0.75");

//sandvich
    SetTrieString(g_hItemInfoTrie, "42_classname", "tf_weapon_lunchbox");
    SetTrieValue(g_hItemInfoTrie, "42_index", 42);
    SetTrieValue(g_hItemInfoTrie, "42_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "42_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "42_level", 1);
    SetTrieString(g_hItemInfoTrie, "42_attribs", "");

//killing gloves of boxing
    SetTrieString(g_hItemInfoTrie, "43_classname", "tf_weapon_fists");
    SetTrieValue(g_hItemInfoTrie, "43_index", 43);
    SetTrieValue(g_hItemInfoTrie, "43_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "43_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "43_level", 7);
    SetTrieString(g_hItemInfoTrie, "43_attribs", "31 ; 5.0 ; 5 ; 1.2");

//sandman
    SetTrieString(g_hItemInfoTrie, "44_classname", "tf_weapon_bat_wood");
    SetTrieValue(g_hItemInfoTrie, "44_index", 44);
    SetTrieValue(g_hItemInfoTrie, "44_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "44_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "44_level", 15);
    SetTrieString(g_hItemInfoTrie, "44_attribs", "38 ; 1.0 ; 125 ; -15.0");

//force a nature
    SetTrieString(g_hItemInfoTrie, "45_classname", "tf_weapon_scattergun");
    SetTrieValue(g_hItemInfoTrie, "45_index", 45);
    SetTrieValue(g_hItemInfoTrie, "45_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "45_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "45_level", 10);
    SetTrieString(g_hItemInfoTrie, "45_attribs", "44 ; 1.0 ; 6 ; 0.5 ; 45 ; 1.2 ; 1 ; 0.9 ; 3 ; 0.4 ; 43 ; 1.0");

//bonk atomic punch
    SetTrieString(g_hItemInfoTrie, "46_classname", "tf_weapon_lunchbox_drink");
    SetTrieValue(g_hItemInfoTrie, "46_index", 46);
    SetTrieValue(g_hItemInfoTrie, "46_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "46_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "46_level", 5);
    SetTrieString(g_hItemInfoTrie, "46_attribs", "");

//hunstman
    SetTrieString(g_hItemInfoTrie, "56_classname", "tf_weapon_compound_bow");
    SetTrieValue(g_hItemInfoTrie, "56_index", 56);
    SetTrieValue(g_hItemInfoTrie, "56_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "56_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "56_level", 10);
    SetTrieString(g_hItemInfoTrie, "56_attribs", "37 ; 0.5");

//razorback (broken)
//    SetTrieString(g_hItemInfoTrie, "57_classname", "tf_wearable_item");
//    SetTrieValue(g_hItemInfoTrie, "57_index", 57);
//    SetTrieValue(g_hItemInfoTrie, "57_slot", 1);
//    SetTrieValue(g_hItemInfoTrie, "57_quality", 6);
//    SetTrieValue(g_hItemInfoTrie, "57_level", 10);
//    SetTrieString(g_hItemInfoTrie, "57_attribs", "52 ; 1");

//jarate
    SetTrieString(g_hItemInfoTrie, "58_classname", "tf_weapon_jar");
    SetTrieValue(g_hItemInfoTrie, "58_index", 58);
    SetTrieValue(g_hItemInfoTrie, "58_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "58_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "58_level", 5);
    SetTrieString(g_hItemInfoTrie, "58_attribs", "56 ; 1.0");

//dead ringer
    SetTrieString(g_hItemInfoTrie, "59_classname", "tf_weapon_invis");
    SetTrieValue(g_hItemInfoTrie, "59_index", 59);
    SetTrieValue(g_hItemInfoTrie, "59_slot", 4);
    SetTrieValue(g_hItemInfoTrie, "59_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "59_level", 5);
    SetTrieString(g_hItemInfoTrie, "59_attribs", "33 ; 1.0 ; 34 ; 1.6 ; 35 ; 1.8");

//cloak and dagger
    SetTrieString(g_hItemInfoTrie, "60_classname", "tf_weapon_invis");
    SetTrieValue(g_hItemInfoTrie, "60_index", 60);
    SetTrieValue(g_hItemInfoTrie, "60_slot", 4);
    SetTrieValue(g_hItemInfoTrie, "60_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "60_level", 5);
    SetTrieString(g_hItemInfoTrie, "60_attribs", "48 ; 2.0 ; 35 ; 2.0");

//ambassador
    SetTrieString(g_hItemInfoTrie, "61_classname", "tf_weapon_revolver");
    SetTrieValue(g_hItemInfoTrie, "61_index", 61);
    SetTrieValue(g_hItemInfoTrie, "61_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "61_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "61_level", 5);
    SetTrieString(g_hItemInfoTrie, "61_attribs", "51 ; 1.0 ; 1 ; 0.85 ; 5 ; 1.2");

//direct hit
    SetTrieString(g_hItemInfoTrie, "127_classname", "tf_weapon_rocketlauncher_directhit");
    SetTrieValue(g_hItemInfoTrie, "127_index", 127);
    SetTrieValue(g_hItemInfoTrie, "127_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "127_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "127_level", 1);
    SetTrieString(g_hItemInfoTrie, "127_attribs", "100 ; 0.3 ; 103 ; 1.8 ; 2 ; 1.25 ; 114 ; 1.0");

//equalizer
    SetTrieString(g_hItemInfoTrie, "128_classname", "tf_weapon_shovel");
    SetTrieValue(g_hItemInfoTrie, "128_index", 128);
    SetTrieValue(g_hItemInfoTrie, "128_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "128_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "128_level", 10);
    SetTrieString(g_hItemInfoTrie, "128_attribs", "115 ; 1.0");

//buff banner
    SetTrieString(g_hItemInfoTrie, "129_classname", "tf_weapon_buff_item");
    SetTrieValue(g_hItemInfoTrie, "129_index", 129);
    SetTrieValue(g_hItemInfoTrie, "129_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "129_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "129_level", 5);
    SetTrieString(g_hItemInfoTrie, "129_attribs", "");

//scottish resistance
    SetTrieString(g_hItemInfoTrie, "130_classname", "tf_weapon_pipebomblauncher");
    SetTrieValue(g_hItemInfoTrie, "130_index", 130);
    SetTrieValue(g_hItemInfoTrie, "130_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "130_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "130_level", 5);
    SetTrieString(g_hItemInfoTrie, "130_attribs", "119 ; 1.0 ; 121 ; 1.0 ; 78 ; 1.5 ; 88 ; 6.0 ; 120 ; 0.4");

//chargin targe (broken)
//    SetTrieString(g_hItemInfoTrie, "131_classname", "tf_wearable_item_demoshield");
//    SetTrieValue(g_hItemInfoTrie, "131_index", 131);
//    SetTrieValue(g_hItemInfoTrie, "131_slot", 0);
//    SetTrieValue(g_hItemInfoTrie, "131_quality", 6);
//    SetTrieValue(g_hItemInfoTrie, "131_level", 10);
//    SetTrieString(g_hItemInfoTrie, "131_attribs", "60 ; 0.5 ; 64 ; 0.6");

//eyelander
    SetTrieString(g_hItemInfoTrie, "132_classname", "tf_weapon_sword");
    SetTrieValue(g_hItemInfoTrie, "132_index", 132);
    SetTrieValue(g_hItemInfoTrie, "132_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "132_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "132_level", 5);
    SetTrieString(g_hItemInfoTrie, "132_attribs", "15 ; 0 ; 125 ; -25");

//gunboats (broken)
//    SetTrieString(g_hItemInfoTrie, "133_classname", "tf_wearable_item");
//    SetTrieValue(g_hItemInfoTrie, "133_index", 133);
//    SetTrieValue(g_hItemInfoTrie, "133_slot", 1);
//    SetTrieValue(g_hItemInfoTrie, "133_quality", 6);
//    SetTrieValue(g_hItemInfoTrie, "133_level", 10);
//    SetTrieString(g_hItemInfoTrie, "133_attribs", "135 ; 0.4");

//wrangler
    SetTrieString(g_hItemInfoTrie, "140_classname", "tf_weapon_laser_pointer");
    SetTrieValue(g_hItemInfoTrie, "140_index", 140);
    SetTrieValue(g_hItemInfoTrie, "140_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "140_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "140_level", 5);
    SetTrieString(g_hItemInfoTrie, "140_attribs", "");

//frontier justice
    SetTrieString(g_hItemInfoTrie, "141_classname", "tf_weapon_sentry_revenge");
    SetTrieValue(g_hItemInfoTrie, "141_index", 141);
    SetTrieValue(g_hItemInfoTrie, "141_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "141_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "141_level", 5);
    SetTrieString(g_hItemInfoTrie, "141_attribs", "136 ; 1 ; 15 ; 0 ; 3 ; 0.5");

//gunslinger
    SetTrieString(g_hItemInfoTrie, "142_classname", "tf_weapon_robot_arm");
    SetTrieValue(g_hItemInfoTrie, "142_index", 142);
    SetTrieValue(g_hItemInfoTrie, "142_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "142_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "142_level", 15);
    SetTrieString(g_hItemInfoTrie, "142_attribs", "124 ; 1 ; 26 ; 25.0 ; 15 ; 0");

//homewrecker
    SetTrieString(g_hItemInfoTrie, "153_classname", "tf_weapon_fireaxe");
    SetTrieValue(g_hItemInfoTrie, "153_index", 153);
    SetTrieValue(g_hItemInfoTrie, "153_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "153_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "153_level", 5);
    SetTrieString(g_hItemInfoTrie, "153_attribs", "137 ; 2.0 ; 138 ; 0.75 ; 146 ; 1");

//pain train
    SetTrieString(g_hItemInfoTrie, "154_classname", "tf_weapon_shovel");
    SetTrieValue(g_hItemInfoTrie, "154_index", 154);
    SetTrieValue(g_hItemInfoTrie, "154_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "154_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "154_level", 5);
    SetTrieString(g_hItemInfoTrie, "154_attribs", "68 ; 1 ; 67 ; 1.1");

//southern hospitality
    SetTrieString(g_hItemInfoTrie, "155_classname", "tf_weapon_wrench");
    SetTrieValue(g_hItemInfoTrie, "155_index", 155);
    SetTrieValue(g_hItemInfoTrie, "155_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "155_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "155_level", 20);
    SetTrieString(g_hItemInfoTrie, "155_attribs", "15 ; 0 ; 149 ; 5 ; 61 ; 1.20");

//dalokohs bar
    SetTrieString(g_hItemInfoTrie, "159_classname", "tf_weapon_lunchbox");
    SetTrieValue(g_hItemInfoTrie, "159_index", 159);
    SetTrieValue(g_hItemInfoTrie, "159_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "159_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "159_level", 1);
    SetTrieString(g_hItemInfoTrie, "159_attribs", "139 ; 1");

//crit a cola
    SetTrieString(g_hItemInfoTrie, "163_classname", "tf_weapon_lunchbox_drink");
    SetTrieValue(g_hItemInfoTrie, "163_index", 163);
    SetTrieValue(g_hItemInfoTrie, "163_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "163_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "163_level", 5);
    SetTrieString(g_hItemInfoTrie, "163_attribs", "139 ; 1");

//golden wrench
    SetTrieString(g_hItemInfoTrie, "169_classname", "tf_weapon_wrench");
    SetTrieValue(g_hItemInfoTrie, "169_index", 169);
    SetTrieValue(g_hItemInfoTrie, "169_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "169_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "169_level", 25);
    SetTrieString(g_hItemInfoTrie, "169_attribs", "150 ; 1");

//tribalmans shiv
    SetTrieString(g_hItemInfoTrie, "171_classname", "tf_weapon_club");
    SetTrieValue(g_hItemInfoTrie, "171_index", 171);
    SetTrieValue(g_hItemInfoTrie, "171_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "171_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "171_level", 5);
    SetTrieString(g_hItemInfoTrie, "171_attribs", "149 ; 6 ; 1 ; 0.5");

//scotsmans skullcutter
    SetTrieString(g_hItemInfoTrie, "172_classname", "tf_weapon_sword");
    SetTrieValue(g_hItemInfoTrie, "172_index", 172);
    SetTrieValue(g_hItemInfoTrie, "172_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "172_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "172_level", 5);
    SetTrieString(g_hItemInfoTrie, "172_attribs", "2 ; 1.2 ; 54 ; 0.85");

//The Vita-Saw
    SetTrieString(g_hItemInfoTrie, "173_classname", "tf_weapon_bonesaw");
    SetTrieValue(g_hItemInfoTrie, "173_index", 173);
    SetTrieValue(g_hItemInfoTrie, "173_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "173_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "173_level", 5);
    SetTrieString(g_hItemInfoTrie, "173_attribs", "188 ; 20 ; 125 ; -10");

//lugermorph
    SetTrieString(g_hItemInfoTrie, "160_classname", "tf_weapon_pistol");
    SetTrieValue(g_hItemInfoTrie, "160_index", 160);
    SetTrieValue(g_hItemInfoTrie, "160_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "160_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "160_level", 5);
    SetTrieString(g_hItemInfoTrie, "160_attribs", "");

//big kill
    SetTrieString(g_hItemInfoTrie, "161_classname", "tf_weapon_revolver");
    SetTrieValue(g_hItemInfoTrie, "161_index", 161);
    SetTrieValue(g_hItemInfoTrie, "161_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "161_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "161_level", 5);
    SetTrieString(g_hItemInfoTrie, "161_attribs", "");

//The Powerjack
    SetTrieString(g_hItemInfoTrie, "214_classname", "tf_weapon_fireaxe");
    SetTrieValue(g_hItemInfoTrie, "214_index", 214);
    SetTrieValue(g_hItemInfoTrie, "214_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "214_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "214_level", 5);
    SetTrieString(g_hItemInfoTrie, "214_attribs", "180 ; 75 ; 2 ; 1.20 ; 15 ; 0");

//The Degreaser
    SetTrieString(g_hItemInfoTrie, "215_classname", "tf_weapon_flamethrower");
    SetTrieValue(g_hItemInfoTrie, "215_index", 215);
    SetTrieValue(g_hItemInfoTrie, "215_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "215_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "215_level", 10);
    SetTrieString(g_hItemInfoTrie, "215_attribs", "178 ; 0.35 ; 72 ; 0.75");

//The Shortstop
    SetTrieString(g_hItemInfoTrie, "220_classname", "tf_weapon_handgun_scout_primary");
    SetTrieValue(g_hItemInfoTrie, "220_index", 220);
    SetTrieValue(g_hItemInfoTrie, "220_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "220_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "220_level", 1);
    SetTrieString(g_hItemInfoTrie, "220_attribs", "182 ; 0.5");

//The Holy Mackerel
    SetTrieString(g_hItemInfoTrie, "221_classname", "tf_weapon_bat_fish");
    SetTrieValue(g_hItemInfoTrie, "221_index", 221);
    SetTrieValue(g_hItemInfoTrie, "221_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "221_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "221_level", 42);
    SetTrieString(g_hItemInfoTrie, "221_attribs", "");

//Mad Milk
    SetTrieString(g_hItemInfoTrie, "222_classname", "tf_weapon_jar_milk");
    SetTrieValue(g_hItemInfoTrie, "222_index", 222);
    SetTrieValue(g_hItemInfoTrie, "222_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "222_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "222_level", 5);
    SetTrieString(g_hItemInfoTrie, "222_attribs", "");

//L'Etranger
    SetTrieString(g_hItemInfoTrie, "224_classname", "tf_weapon_revolver");
    SetTrieValue(g_hItemInfoTrie, "224_index", 224);
    SetTrieValue(g_hItemInfoTrie, "224_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "224_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "224_level", 5);
    SetTrieString(g_hItemInfoTrie, "224_attribs", "166 ; 15 ; 1 ; 0.8");

//Your Eternal Reward
    SetTrieString(g_hItemInfoTrie, "225_classname", "tf_weapon_knife");
    SetTrieValue(g_hItemInfoTrie, "225_index", 225);
    SetTrieValue(g_hItemInfoTrie, "225_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "225_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "225_level", 1);
    SetTrieString(g_hItemInfoTrie, "225_attribs", "154 ; 1 ; 156 ; 1 ; 155 ; 1");

//The Battalion's Backup
    SetTrieString(g_hItemInfoTrie, "226_classname", "tf_weapon_buff_item");
    SetTrieValue(g_hItemInfoTrie, "226_index", 226);
    SetTrieValue(g_hItemInfoTrie, "226_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "226_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "226_level", 10);
    SetTrieString(g_hItemInfoTrie, "226_attribs", "116 ; 2");

//The Black Box
    SetTrieString(g_hItemInfoTrie, "228_classname", "tf_weapon_rocketlauncher");
    SetTrieValue(g_hItemInfoTrie, "228_index", 228);
    SetTrieValue(g_hItemInfoTrie, "228_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "228_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "228_level", 5);
    SetTrieString(g_hItemInfoTrie, "228_attribs", "16 ; 15 ; 3 ; 0.75");

//The Sydney Sleeper
    SetTrieString(g_hItemInfoTrie, "230_classname", "tf_weapon_sniperrifle");
    SetTrieValue(g_hItemInfoTrie, "230_index", 230);
    SetTrieValue(g_hItemInfoTrie, "230_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "230_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "230_level", 1);
    SetTrieString(g_hItemInfoTrie, "230_attribs", "42 ; 1 ; 175 ; 8");

//Darwin's Danger Shield (Broken)
//    SetTrieString(g_hItemInfoTrie, "231_classname", "tf_wearable_item");
//    SetTrieValue(g_hItemInfoTrie, "231_index", 231);
//    SetTrieValue(g_hItemInfoTrie, "231_slot", 1);
//    SetTrieValue(g_hItemInfoTrie, "231_quality", 6);
//    SetTrieValue(g_hItemInfoTrie, "231_level", 10);
//    SetTrieString(g_hItemInfoTrie, "231_attribs", "26 ; 25");

//The Bushwacka
    SetTrieString(g_hItemInfoTrie, "232_classname", "tf_weapon_club");
    SetTrieValue(g_hItemInfoTrie, "232_index", 232);
    SetTrieValue(g_hItemInfoTrie, "232_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "232_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "232_level", 5);
    SetTrieString(g_hItemInfoTrie, "232_attribs", "179 ; 1 ; 61 ; 1.2");

//Rocket Jumper
    SetTrieString(g_hItemInfoTrie, "237_classname", "tf_weapon_rocketlauncher");
    SetTrieValue(g_hItemInfoTrie, "237_index", 237);
    SetTrieValue(g_hItemInfoTrie, "237_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "237_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "237_level", 1);
    SetTrieString(g_hItemInfoTrie, "237_attribs", "1 ; 0 ; 181 ; 1 ; 76 ; 3.0 ; 125 ; -100");

//gloves of running urgently 
    SetTrieString(g_hItemInfoTrie, "239_classname", "tf_weapon_fists");
    SetTrieValue(g_hItemInfoTrie, "239_index", 239);
    SetTrieValue(g_hItemInfoTrie, "239_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "239_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "239_level", 10);
    SetTrieString(g_hItemInfoTrie, "239_attribs", "107 ; 1.3 ; 1 ; 0.5 ; 128 ; 1 ; 129 ; -6.0");

//Frying Pan (Now if only it had augment slots)
    SetTrieString(g_hItemInfoTrie, "264_classname", "tf_weapon_shovel");
    SetTrieValue(g_hItemInfoTrie, "264_index", 264);
    SetTrieValue(g_hItemInfoTrie, "264_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "264_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "264_level", 5);
    SetTrieString(g_hItemInfoTrie, "264_attribs", "153 ; 1");

//Stickybomb Jumper
    SetTrieString(g_hItemInfoTrie, "265_classname", "tf_weapon_pipebomblauncher");
    SetTrieValue(g_hItemInfoTrie, "265_index", 265);
    SetTrieValue(g_hItemInfoTrie, "265_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "265_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "265_level", 1);
    SetTrieString(g_hItemInfoTrie, "265_attribs", "1 ; 0 ; 181 ; 1 ; 76 ; 3.0 ; 125 ; -75");

//Horseman's Head Splitter
    SetTrieString(g_hItemInfoTrie, "266_classname", "tf_weapon_sword");
    SetTrieValue(g_hItemInfoTrie, "266_index", 266);
    SetTrieValue(g_hItemInfoTrie, "266_slot", 2);
    SetTrieValue(g_hItemInfoTrie, "266_quality", 5);
    SetTrieValue(g_hItemInfoTrie, "266_level", 5);
    SetTrieString(g_hItemInfoTrie, "266_attribs", "15 ; 0 ; 125 ; -25");

//valve rocket launcher
    SetTrieString(g_hItemInfoTrie, "9018_classname", "tf_weapon_rocketlauncher");
    SetTrieValue(g_hItemInfoTrie, "9018_index", 18);
    SetTrieValue(g_hItemInfoTrie, "9018_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "9018_quality", 8);
    SetTrieValue(g_hItemInfoTrie, "9018_level", 100);
    SetTrieString(g_hItemInfoTrie, "9018_attribs", "2 ; 1.15 ; 4 ; 1.5 ; 6 ; 0.85 ; 110 ; 15.0 ; 20 ; 1.0 ; 26 ; 50.0 ; 31 ; 5.0 ; 32 ; 0.30 ; 53 ; 1.0 ; 60 ; 0.85 ; 123 ; 1.15 ; 134 ; 4.0");

//valve sticky launcher
    SetTrieString(g_hItemInfoTrie, "9020_classname", "tf_weapon_pipebomblauncher");
    SetTrieValue(g_hItemInfoTrie, "9020_index", 20);
    SetTrieValue(g_hItemInfoTrie, "9020_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "9020_quality", 8);
    SetTrieValue(g_hItemInfoTrie, "9020_level", 100);
    SetTrieString(g_hItemInfoTrie, "9020_attribs", "2 ; 1.15 ; 4 ; 1.5 ; 6 ; 0.85 ; 110 ; 15.0 ; 20 ; 1.0 ; 26 ; 50.0 ; 31 ; 5.0 ; 32 ; 0.30 ; 53 ; 1.0 ; 60 ; 0.85 ; 123 ; 1.15 ; 134 ; 4.0");

//valve sniper rifle
    SetTrieString(g_hItemInfoTrie, "9014_classname", "tf_weapon_sniperrifle");
    SetTrieValue(g_hItemInfoTrie, "9014_index", 14);
    SetTrieValue(g_hItemInfoTrie, "9014_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "9014_quality", 8);
    SetTrieValue(g_hItemInfoTrie, "9014_level", 100);
    SetTrieString(g_hItemInfoTrie, "9014_attribs", "2 ; 1.15 ; 4 ; 1.5 ; 6 ; 0.85 ; 110 ; 15.0 ; 20 ; 1.0 ; 26 ; 50.0 ; 31 ; 5.0 ; 32 ; 0.30 ; 53 ; 1.0 ; 60 ; 0.85 ; 123 ; 1.15 ; 134 ; 4.0");

//valve scattergun
    SetTrieString(g_hItemInfoTrie, "9013_classname", "tf_weapon_scattergun");
    SetTrieValue(g_hItemInfoTrie, "9013_index", 13);
    SetTrieValue(g_hItemInfoTrie, "9013_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "9013_quality", 8);
    SetTrieValue(g_hItemInfoTrie, "9013_level", 100);
    SetTrieString(g_hItemInfoTrie, "9013_attribs", "2 ; 1.15 ; 4 ; 1.5 ; 6 ; 0.85 ; 110 ; 15.0 ; 20 ; 1.0 ; 26 ; 50.0 ; 31 ; 5.0 ; 32 ; 0.30 ; 53 ; 1.0 ; 60 ; 0.85 ; 123 ; 1.15 ; 134 ; 4.0");

//valve flamethrower
    SetTrieString(g_hItemInfoTrie, "9021_classname", "tf_weapon_flamethrower");
    SetTrieValue(g_hItemInfoTrie, "9021_index", 21);
    SetTrieValue(g_hItemInfoTrie, "9021_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "9021_quality", 8);
    SetTrieValue(g_hItemInfoTrie, "9021_level", 100);
    SetTrieString(g_hItemInfoTrie, "9021_attribs", "2 ; 1.15 ; 4 ; 1.5 ; 6 ; 0.85 ; 110 ; 15.0 ; 20 ; 1.0 ; 26 ; 50.0 ; 31 ; 5.0 ; 32 ; 0.30 ; 53 ; 1.0 ; 60 ; 0.85 ; 123 ; 1.15 ; 134 ; 4.0");

//valve syringe gun
    SetTrieString(g_hItemInfoTrie, "9017_classname", "tf_weapon_syringegun_medic");
    SetTrieValue(g_hItemInfoTrie, "9017_index", 17);
    SetTrieValue(g_hItemInfoTrie, "9017_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "9017_quality", 8);
    SetTrieValue(g_hItemInfoTrie, "9017_level", 100);
    SetTrieString(g_hItemInfoTrie, "9017_attribs", "2 ; 1.15 ; 4 ; 1.5 ; 6 ; 0.85 ; 110 ; 15.0 ; 20 ; 1.0 ; 26 ; 50.0 ; 31 ; 5.0 ; 32 ; 0.30 ; 53 ; 1.0 ; 60 ; 0.85 ; 123 ; 1.15 ; 134 ; 4.0");

//valve minigun
    SetTrieString(g_hItemInfoTrie, "9015_classname", "tf_weapon_minigun");
    SetTrieValue(g_hItemInfoTrie, "9015_index", 15);
    SetTrieValue(g_hItemInfoTrie, "9015_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "9015_quality", 8);
    SetTrieValue(g_hItemInfoTrie, "9015_level", 100);
    SetTrieString(g_hItemInfoTrie, "9015_attribs", "2 ; 1.15 ; 4 ; 1.5 ; 6 ; 0.85 ; 110 ; 15.0 ; 20 ; 1.0 ; 26 ; 50.0 ; 31 ; 5.0 ; 32 ; 0.30 ; 53 ; 1.0 ; 60 ; 0.85 ; 123 ; 1.15 ; 134 ; 4.0");

//valve revolver
    SetTrieString(g_hItemInfoTrie, "9024_classname", "tf_weapon_revolver");
    SetTrieValue(g_hItemInfoTrie, "9024_index", 24);
    SetTrieValue(g_hItemInfoTrie, "9024_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "9024_quality", 8);
    SetTrieValue(g_hItemInfoTrie, "9024_level", 100);
    SetTrieString(g_hItemInfoTrie, "9024_attribs", "2 ; 1.15 ; 4 ; 1.5 ; 6 ; 0.85 ; 110 ; 15.0 ; 20 ; 1.0 ; 26 ; 50.0 ; 31 ; 5.0 ; 32 ; 0.30 ; 53 ; 1.0 ; 60 ; 0.85 ; 123 ; 1.15 ; 134 ; 4.0");

//valve shotgun engineer
    SetTrieString(g_hItemInfoTrie, "9009_classname", "tf_weapon_shotgun_primary");
    SetTrieValue(g_hItemInfoTrie, "9009_index", 9);
    SetTrieValue(g_hItemInfoTrie, "9009_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "9009_quality", 8);
    SetTrieValue(g_hItemInfoTrie, "9009_level", 100);
    SetTrieString(g_hItemInfoTrie, "9009_attribs", "2 ; 1.15 ; 4 ; 1.5 ; 6 ; 0.85 ; 110 ; 15.0 ; 20 ; 1.0 ; 26 ; 50.0 ; 31 ; 5.0 ; 32 ; 0.30 ; 53 ; 1.0 ; 60 ; 0.85 ; 123 ; 1.15 ; 134 ; 4.0");

//valve medigun
    SetTrieString(g_hItemInfoTrie, "9029_classname", "tf_weapon_medigun");
    SetTrieValue(g_hItemInfoTrie, "9029_index", 29);
    SetTrieValue(g_hItemInfoTrie, "9029_slot", 1);
    SetTrieValue(g_hItemInfoTrie, "9029_quality", 8);
    SetTrieValue(g_hItemInfoTrie, "9029_level", 100);
    SetTrieString(g_hItemInfoTrie, "9029_attribs", "8 ; 1.15 ; 10 ; 1.15 ; 14 ; 1.0 ; 26 ; 50.0 ; 53 ; 1.0 ; 60 ; 0.85 ; 123 ; 1.5 ; 134 ; 4.0");

//ludmila
    SetTrieString(g_hItemInfoTrie, "2041_classname", "tf_weapon_minigun");
    SetTrieValue(g_hItemInfoTrie, "2041_index", 41);
    SetTrieValue(g_hItemInfoTrie, "2041_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "2041_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "2041_level", 5);
    SetTrieString(g_hItemInfoTrie, "2041_attribs", "29 ; 1");

//spycrab pda
    SetTrieString(g_hItemInfoTrie, "9027_classname", "tf_weapon_pda_spy");
    SetTrieValue(g_hItemInfoTrie, "9027_index", 27);
    SetTrieValue(g_hItemInfoTrie, "9027_slot", 3);
    SetTrieValue(g_hItemInfoTrie, "9027_quality", 2);
    SetTrieValue(g_hItemInfoTrie, "9027_level", 100);
    SetTrieString(g_hItemInfoTrie, "9027_attribs", "128 ; 1.0 ; 60 ; 0.0 ; 62 ; 0.0 ; 64 ; 0.0 ; 66 ; 0.0 ; 70 ; 2.0 ; 53 ; 1.0 ; 68 ; -1.0 ; 134 ; 4.0");

//fire retardant suit (revolver does no damage)
    SetTrieString(g_hItemInfoTrie, "2061_classname", "tf_weapon_revolver");
    SetTrieValue(g_hItemInfoTrie, "2061_index", 61);
    SetTrieValue(g_hItemInfoTrie, "2061_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "2061_quality", 6);
    SetTrieValue(g_hItemInfoTrie, "2061_level", 5);
    SetTrieString(g_hItemInfoTrie, "2061_attribs", "53 ; 1.0 ; 60 ; 0.10 ; 1 ; 0.0");

//valve cheap rocket launcher
    SetTrieString(g_hItemInfoTrie, "8018_classname", "tf_weapon_rocketlauncher");
    SetTrieValue(g_hItemInfoTrie, "8018_index", 18);
    SetTrieValue(g_hItemInfoTrie, "8018_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "8018_quality", 8);
    SetTrieValue(g_hItemInfoTrie, "8018_level", 100);
    SetTrieString(g_hItemInfoTrie, "8018_attribs", "2 ; 100.0 ; 4 ; 91.0 ; 6 ; 0.25 ; 110 ; 500.0 ; 26 ; 250.0 ; 31 ; 10.0 ; 107 ; 3.0 ; 134 ; 4.0");

//PCG cheap Community rocket launcher
    SetTrieString(g_hItemInfoTrie, "7018_classname", "tf_weapon_rocketlauncher");
    SetTrieValue(g_hItemInfoTrie, "7018_index", 18);
    SetTrieValue(g_hItemInfoTrie, "7018_slot", 0);
    SetTrieValue(g_hItemInfoTrie, "7018_quality", 7);
    SetTrieValue(g_hItemInfoTrie, "7018_level", 100);
    SetTrieString(g_hItemInfoTrie, "7018_attribs", "26 ; 500.0 ; 110 ; 500.0 ; 6 ; 0.25 ; 4 ; 200.0 ; 2 ; 100.0 ; 134 ; 4.0");
}
Sorrowfire is offline
FlaminSarge
Veteran Member
Join Date: Jul 2010
Old 10-30-2010 , 21:59   Re: TF2Items - Items with custom attributes.
#500

Not to one-up you, Sorrowfire, but: https://forums.alliedmods.net/showth...99#post1337899
Posted
__________________
Bread EOTL GunMettle Invasion Jungle Inferno will break everything. Don't even ask.

All plugins: Randomizer/GiveWeapon, ModelManager, etc.
Post in plugin threads with questions.
Steam is for playing games.
You will be fed to javalia otherwise.
Psyduck likes replays.
FlaminSarge is offline
Closed Thread



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 17:47.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode