Daimond007 Posted November 2, 2012 Share Posted November 2, 2012 (edited) I have found a few interesting things in the files latly, here is one that seems to indicate Infinate items. was hoping to make smoke infinate, but since theres no refernce to what items numbers are indicating had to find. This may mean nothing though :(So maybe some of us can figer out if this stuff accualy does something or lest in relation to others. SComStrategyDame.XGStorage Intit.Funtionfunction Init() { m_arrItems.Add(195); m_arrItemArchives.Add(195); m_arrClaims.Add(195); m_arrInfiniteItems.AddItem(57); m_arrInfiniteItems.AddItem(3); m_arrInfiniteItems.AddItem(4); m_arrInfiniteItems.AddItem(2); m_arrInfiniteItems.AddItem(85); m_arrInfiniteItems.AddItem(6); m_arrInfiniteItems.AddItem(5); m_arrInfiniteItems.AddItem(7); m_arrInfiniteItems.AddItem(57); m_arrInfiniteItems.AddItem(124); } 24 39 16 55 01 49 40 00 00 03 00 - indicates the " m_arrInfiniteItems.AddItem();" changing the value 39 is whats in the brakets 4C 40 00 00 9F 1F 00 00 00 00 00 00 4C 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 17 00 00 00 9B 02 00 00 C0 00 00 00 8C 00 00 00 54 01 4C 40 00 00 2C C3 16 54 01 4B 40 00 00 2C C3 16 54 01 4A 40 00 00 2C C3 16 55 01 49 40 00 00 03 00 24 09 16 55 01 49 40 00 00 03 00 24 03 16 55 01 49 40 00 00 03 00 24 04 16 55 01 49 40 00 00 03 00 24 02 16 55 01 49 40 00 00 03 00 24 55 16 55 01 49 40 00 00 03 00 24 06 16 55 01 49 40 00 00 03 00 24 05 16 55 01 49 40 00 00 03 00 24 07 16 55 01 49 40 00 00 03 00 24 39 16 55 01 49 40 00 00 03 00 24 7C 16 04 0B 53 00 00 00 02 00 02 00 F3 12 00 00 00 00 00 00 Heres a list of items that some one already posted I think. XComStrategyGameXGItemTreeAlso if you see at the bottom of most things listed in this file you see a Ballance somthing like "BalanceItems(); BalanceFacilities(); " witch seems to relate to the ballance settings in the .exe file but there also seems to be sometimes more listed here in this file then in the exe. so if we have a list of items related to thes numbers we maky beable to have more ballancing stuff. Edit : iCurrentCategory = 1 ; Weapons and secondary items 1-29 is Weapons, But only 2-19 on list 75-100 Items ( guess Backpack ), but only 76-82, 85,86, 88, 99 listed iCurrentCategory = 2 ; Armors 56-74 is Armor, but only 57-63 on list iCurrentCategory = 6 ; Alien bodies and captives 159-169 Captives, and are Eitems not iItems this time. and only 160-168 listed Updated List Not 100% on all, but appears to fit. Most items seam to not count the 0 listed in some things. function BuildItems() { m_iCurrentCategory = 1; BuildItem(2, -1, -1, -1, 37); eItem_Pistol BuildItem(3, -1, -1, -1, 16); eItem_AssaultRifle BuildItem(4, -1, -1, -1, 54); eItem_Shotgun BuildItem(5, -1, -1, -1, 31); eItem_LMG BuildItem(6, -1, -1, -1, 57); eItem_SniperRifle BuildItem(7, -1, -1, -1, 45); eItem_RocketLauncher BuildItem(85, -1, -1, -1, 23); eItem_FragGrenade BuildItem(86, -1, -1, -1, 56); eItem_SmokeGrenade BuildItem(76, 25, 7, 5, 32); eItem_Medikit, iCash=25, iElerium=0, iAlloys=0, iTime=7, iEng=5 BuildItem(88, -1, -1, -1, 2, 6); eItem_AlienGrenade BuildItem(80, 10, 7, 5, 2, 8); eItem_ArcThrower, iCash=35, iElerium=0, iAlloys=0, iTime=7, iEng=5 BuildItem(99, -1, -1, -1, 17); eItem_BattleScanner BuildItem(81, 20, 7, 5, 9, 48); eItem_TargetingModule, iCash=20, iElerium=0, iAlloys=0, iTime=7, iEng=5 BuildItem(82, 20, 7, 5, 10, 36); eItem_ReinforcedArmor, iCash=20, iElerium=0, iAlloys=0, iTime=7, iEng=5 BuildItem(79, 85, 7, 10, 47, 18); eItem_ChitinPlating, iCash=85, iElerium=0, iAlloys=10, iTime=7, iEng=15 BuildItem(77, 50, 7, 10, 50, 151, 19); eItem_CombatStims, iCash=50, iElerium=0, iAlloys=5, iTime=7, iEng=15 BuildItem(78, 150, 10, 25, 55, 34); eItem_MindShield, iCash=150,iElerium=30,iAlloys=10, iTime=10, iEng=35 BuildItem(192, 25, 20, 20, 7, 15, 3, 55); eItem_Skeleton_Key, iCash=25, iElerium=10,iAlloys=10, iTime=7, iEng=15 BuildItem(8, 10, 10, 7, 10, 19, 27); eItem_LaserPistol, iCash=10, iElerium=0, iAlloys=10, iTime=7, iEng=10 BuildItem(9, 25, 15, 7, 12, 19, 28); eItem_LaserAssaultRifle, iCash=25, iElerium=0, iAlloys=15, iTime=7, iEng=12 BuildItem(10, 30, 25, 7, 12, 20, 29); eItem_LaserAssaultGun, iCash=30, iElerium=0, iAlloys=25, iTime=7, iEng=12 BuildItem(12, 35, 25, 7, 12, 20, 30); eItem_LaserSniperRifle, iCash=35, iElerium=0, iAlloys=25, iTime=7, iEng=12 BuildItem(11, 30, 25, 7, 12, 21, 26); eItem_HeavyLaser, iCash=30, iElerium=0, iAlloys=25, iTime=7, iEng=12 BuildItem(13, 100, 10, 20, 10, 20, 22, 40); eItem_PlasmaPistol, iCash=100,iElerium=10,iAlloys=20, iTime=10, iEng=20 BuildItem(14, 125, 15, 20, 10, 20, 23, 42); eItem_PlasmaLightRifle, iCash=125,iElerium=15,iAlloys=20, iTime=10, iEng=20 BuildItem(15, 200, 20, 30, 10, 20, 24, 41); eItem_PlasmaAssaultRifle, iCash=200,iElerium=20,iAlloys=30, iTime=10, iEng=20 BuildItem(16, 200, 20, 50, 12, 25, 27, 43); eItem_AlloyCannon, iCash=200,iElerium=20,iAlloys=50, iTime=12, iEng=25 BuildItem(17, 250, 30, 30, 10, 25, 25, 39); eItem_HeavyPlasma, iCash=250,iElerium=30,iAlloys=30, iTime=10, iEng=25 BuildItem(18, 250, 25, 30, 15, 25, 26, 44); eItem_PlasmaSniperRifle, iCash=250,iElerium=25,iAlloys=30, iTime=15, iEng=25 BuildItem(19, 275, 35, 40, 15, 40, 30, 38); eItem_BlasterLauncher, iCash=275,iElerium=65,iAlloys=50, iTime=15, iEng=35 ; 20 eItem_FlameThrower ; 21 eItem_PlaceholderWeapon0 ; 22 eItem_PlaceholderWeapon1 ; 23 eItem_PlaceholderWeapon2 ; 24 eItem_PlaceholderWeapon3 ; 25 eItem_PlaceholderWeapon4 ; 26 eItem_PlaceholderWeapon5 ; 27 eItem_PlaceholderWeapon6 ; 28 eItem_PlaceholderWeapon7 ; 89 eItem_PlaceholderGrenade0 ; 90 eItem_PlaceholderGrenade1 ; 91 eItem_BEGIN_ALIEN_GRENADES ; 92 eItem_SectoidGrenade ; 93 eItem_FloaterGrenade ; 94 eItem_MutonGrenade ; 95 eItem_CyberdiscGrenade ; 96 eItem_ThinManGrenade ; 97 eItem_END_ALIEN_GRENADES ; 98 eItem_PsiGrenade m_iCurrentCategory = 2; BuildItem(57, -1, -1, -1, 12); eItem_ArmorKevlar BuildItem(58, 25, 15, 10, 10, 14, 10); eItem_ArmorCarapace, iCash=25, iElerium=0, iAlloys=15, iTime=10, iEng=10 BuildItem(59, 30, 10, 10, 15, 15, 14); eItem_ArmorSkeleton, iCash=30, iElerium=0, iAlloys=10, iTime=10, iEng=15 BuildItem(60, 150, 10, 35, 10, 25, 16, 15); eItem_ArmorTitan, iCash=150,iElerium=10,iAlloys=35, iTime=10, iEng=25 BuildItem(61, 200, 16, 30, 14, 35, 18, 9); eItem_ArmorArchAngel, iCash=200,iElerium=35,iAlloys=50, iTime=14, iEng=35 BuildItem(62, 250, 20, 25, 14, 40, 17, 11); eItem_ArmorGhost, iCash=250,iElerium=50,iAlloys=40, iTime=14, iEng=40 BuildItem(63, 400, 40, 20, 10, 30, 13, 13); eItem_ArmorPsi, iCash=400,iElerium=40,iAlloys=20, iTime=10, iEng=30 ; 64 eItem_DLCArmor0 ; 65 eItem_DLCArmor1 ; 66 eItem_DLCArmor2 ; 67 eItem_DLCArmor3 ; 68 eItem_DLCArmor4 ; 69 eItem_DLCArmor5 ; 70 eItem_DLCArmor6 ; 71 eItem_DLCArmor7 ; 72 eItem_PlaceholderArmor0 ; 73 eItem_PlaceholderArmor1 m_iCurrentCategory = 3; BuildItem(102, 50, 14, 5, 1, 49); eItem_SHIV BuildItem(103, 100, 25, 14, 10, 14, 1, 50); eItem_SHIV_Alloy BuildItem(104, 200, 30, 30, 14, 20, 5, 1, 51); eItem_SHIV_Hover BuildItem(105, 40, -1, -1, 25); eItem_Interceptor, iCash=40, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(106, 275, 40, 60, 21, 20, 5, 21); eItem_Firestorm, iCash=200,iElerium=20,iAlloys=40, iTime=14, iEng=20 BuildItem(107, -1, -1, -1, 66); eItem_Skyranger BuildItem(108, 100, 20, 5, 46); eItem_Satellite, iCash=100,iElerium=0, iAlloys=0, iTime=20, iEng=5 ; 109 eItem_PlaceholderVehicle0 ; 110 eItem_PlaceholderVehicle1 BuildItem(113, -1, -1, -1, 1, 52); eItem_ShivMinigun ; 114 eItem_ShivSentry BuildItem(115, -1, -1, -1, 53); eItem_ShivLaser BuildItem(116, -1, -1, -1, 65); eItem_ShivPlasma BuildItem(117, -1, -1, -1, 1, 49); eItem_SHIVDeck_I BuildItem(118, -1, -1, -1, 50); eItem_SHIVDeck_II BuildItem(119, -1, -1, -1, 51); eItem_SHIVDeck_III ; 120 eItem_PlaceholderShivUpgrade0 ; 121 eItem_PlaceholderShivUpgrade1 BuildItem(123, 25, 7, 5, 11, 2); eItem_IntWeap_I, iCash=35, iElerium=0, iAlloys=0, iTime=7, iEng=5 BuildItem(124, -1, -1, -1, 4); eItem_IntWeap_II {Avaluanch missles i Guess as only Item left in " m_arrInfiniteItems.AddItem(124) " that has no ammo costs and fits catagory} BuildItem(125, 35, 25, 7, 10, 21, 3); eItem_IntWeap_III, iCash=35, iElerium=0, iAlloys=25, iTime=7, iEng=10 BuildItem(126, 100, 20, 20, 10, 20, 28, 5); eItem_IntWeap_IV, iCash=100,iElerium=20,iAlloys=20, iTime=10, iEng=20 BuildItem(127, 200, 20, 30, 10, 30, 33, 0); eItem_IntWeap_V, iCash=200,iElerium=20,iAlloys=30, iTime=10, iEng=30 BuildItem(128, 150, 20, 30, 10, 35, 29, 1); eItem_IntWeap_VI, iCash=150,iElerium=20,iAlloys=30, iTime=10, iEng=35 ; 129 eItem_PlaceholderIntWeapon0 ; 130 eItem_PlaceholderIntWeapon1 BuildItem(135, 10, 0, 0, 0, 5, 43, 47); eItem_IntConsumable_Hit, iCash=10, iElerium=0, iAlloys=0, iTime=0, iEng=5 BuildItem(133, 50, 0, 0, 0, 5, 44, 20); eItem_IntConsumable_Dodge, iCash=50, iElerium=0, iAlloys=0, iTime=0, iEng=10 BuildItem(134, 20, 0, 0, 0, 10, 49, 58); eItem_IntConsumable_Boost, iCash=20, iElerium=0, iAlloys=0, iTime=0, iEng=10 ; 136 eItem_PlaceholderIntConsumable0 ; 137 eItem_PlaceholderIntConsumable1 m_iCurrentCategory = 4; posably ; 39 eItem_SectoidPlasmaPistol, ; 40 eItem_PlasmaLightRifle_ThinMan, ; 41 eItem_PlasmaLightRifle_Floater, ; 42 eItem_PlasmaLightRifle_Muton, ; 43 eItem_PlasmaAssaultRifle_Muton, ; 44 eItem_HeavyPlasma_Floater, ; 45 eItem_HeavyPlasma_Muton, ; 47 eItem_ZombieFist, ; 48 eItem_ElderWeapon, ; 49 eItem_MutonBlade, ; 50 eItem_OutsiderWeapon, ; 51 eItem_SoldierNoWeapon, ; 52 eItem_Plague, ; 53 eItem_SectopodClusterBomb, ; 193 eItem_SectopodChestCannon m_iCurrentCategory = 5; BuildItem(171, 3, 1, -1, -1, 14); eItem_Elerium115, iCash=3, iElerium=1, iAlloys=0, iTime=-1, iEng=-1 BuildItem(172, 2, 1, -1, -1, 36); eItem_AlienAlloys, iCash=2, iElerium=0, iAlloys=1, iTime=-1, iEng=-1 BuildItem(173, 1, -1, -1, 0); eItem_WeaponFragment, iCash=1, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(191, -1, -1, -1, 40); eItem_Base_Shard BuildItem(179, 75, -1, -1, 44); eItem_UFOPowerSource, iCash=75, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(177, 40, -1, -1, 43); eItem_UFONavigation, iCash=40, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(175, 10, -1, -1, 46); eItem_AlienFood, iCash=10, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(174, 17, -1, -1, 47); eItem_AlienEntertainment, iCash=17, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(176, 10, -1, -1, 48); eItem_AlienStasisTank, iCash=10, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(178, 25, -1, -1, 49); eItem_AlienSurgery, iCash=25, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(188, 125, -1, -1, 45); eItem_UFOFusionLauncher, iCash=125,iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(180, -1, -1, -1, 193); eItem_HyperwaveBeacon BuildItem(189, -1, -1, -1, 51); eItem_PsiLink BuildItem(186, 30, -1, -1, 163); eItem_DamagedUFOPowerSource, iCash=30, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(184, 20, -1, -1, 199); eItem_DamagedUFONavigation, iCash=20, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(182, 5, -1, -1, 199); eItem_DamagedAlienFood, iCash=5, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(181, 5, -1, -1, 199); eItem_DamagedAlienEntertainment,iCash=5, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(183, 5, -1, -1, 199); eItem_DamagedAlienStasisTank, iCash=5, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(185, 10, -1, -1, 186); eItem_DamagedAlienSurgery, iCash=10, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(187, 45, -1, -1, 193); eItem_DamagedHyperwaveBeacon, iCash=45, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 m_iCurrentCategory = 6; ; 141 eItem_CivilianCorpse ; 142 eItem_TankCorpse ; 143 eItem_SoldierCorpse BuildItem(144, 5, -1, -1, 52); eItem_SectoidCorpse, iCash=5, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(146, 5, -1, -1, 53); eItem_FloaterCorpse, iCash=5, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(148, 5, -1, -1, 55); eItem_ThinManCorpse, iCash=5, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(149, 5, -1, -1, 54); eItem_MutonCorpse, iCash=5, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(154, 5, -1, -1, 56); eItem_CryssalidCorpse, iCash=5, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(152, 7, -1, -1, 59); eItem_CyberdiscCorpse, iCash=7, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(156, 10, -1, -1, 61); eItem_SectopodCorpse, iCash=10, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(157, 2, -1, -1, 60); eItem_DroneCorpse, iCash=2, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(153, 15, -1, -1, 58); eItem_EtherealCorpse, iCash=15, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(145, 10, -1, -1, 65); eItem_SectoidCommanderCorpse, iCash=10, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(151, 5, -1, -1, 62); eItem_BerserkerCorpse, iCash=5, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(150, 8, -1, -1, 63); eItem_MutonEliteCorpse, iCash=8, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 BuildItem(147, 6, -1, -1, 64); eItem_FloaterHeavyCorpse, iCash=6, iElerium=0, iAlloys=0, iTime=-1, iEng=-1 ; 155 eItem_ZombieCorpse BuildItem(160, -1, -1, -1, 52); eTech_InterrogateSectoid BuildItem(162, -1, -1, -1, 53); eTech_InterrogateFloater BuildItem(164, -1, -1, -1, 55); eTech_InterrogateMuton BuildItem(165, -1, -1, -1, 54); eTech_InterrogateThinMan BuildItem(168, -1, -1, -1, 58); eTech_InterrogateEthereal BuildItem(161, -1, -1, -1, 65); eTech_InterrogateBerserker BuildItem(167, -1, -1, -1, 62); eTech_InterrogateMutonElite BuildItem(166, -1, -1, -1, 63); eTech_InterrogateHeavyFloater BuildItem(163, -1, -1, -1, 64); eTech_InterrogateSectoidCommander BalanceItems(); } function BuildFacilities() { BuildFacility(1, -1, 0, 0, -1, 0, -1, -5, 2, 67); eFacility_Barracks BuildFacility(4, -1, 0, 0, -1, 0, -1, -5, 1); eFacility_Hangar BuildFacility(2, -1, 0, 0, -1, 0, -1, -3, 2); eFacility_Research BuildFacility(5, -1, 0, 0, -1, 0, -1, -4, 1); eFacility_MissionControl BuildFacility(3, -1, 0, 0, -1, 0, -1, -2, 1); eFacility_Research BuildFacility(6, 50, 0, 0, 10, 1, 7, -2, 1, 101); eFacility_AccessLift, iCash=50, iElerium=0, iAlloys=0, iMaintenance=10, iTime=5, iPower=-2 BuildFacility(7, 125, 0, 0, 24, 1, 12, -3, 1, 110); eFacility_ScienceLab, iCash=125, iElerium=0, iAlloys=0, iMaintenance=24, iTime=10, iPower=-3 BuildFacility(8, 130, 0, 0, 26, 1, 12, -3, 1, 104); eFacility_Workshop, iCash=130, iElerium=0, iAlloys=0, iMaintenance=26, iTime=10, iPower=-3 BuildFacility(9, 150, 0, 0, 15, 1, 21, -5, 1, 107); eFacility_SmallRadar, iCash=150, iElerium=0, iAlloys=0, iMaintenance=15, iTime=14, iPower=-5 BuildFacility(10, 60, 0, 0, 11, 1, 9, class'XGTacticalGameCore'.default.POWER_NORMAL, 1, 106); eFacility_Power BuildFacility(11, 115, 0, 0, 20, 1, 10, -3, 1, 11, 105); eFacility_Foundry, iCash=75, iElerium=0, iAlloys=0, iMaintenance=20, iTime=10,iPower=-3 BuildFacility(12, 125, 0, 0, 25, 1, 8, -2, 1, 113); eFacility_OTS, iCash=125, iElerium=0, iAlloys=0, iMaintenance=25, iTime=8, iPower=-3 BuildFacility(13, 85, 0, 0, 18, 1, 10, -5, 1, 1, 102); eFacility_AlienContain, iCash=85, iElerium=0, iAlloys=0, iMaintenance=18, iTime=7, iPower=-5 BuildFacility(14, 300, 0, 15, 26, 2, 28, -8, 1, 31, 111); eFacility_LargeRadar, iCash=300, iElerium=0, iAlloys=25, iMaintenance=26, iTime=21,iPower=-8 BuildFacility(15, 225, 0, 0, 23, 3, 21, class'XGTacticalGameCore'.default.POWER_THERMAL, 1, 112); eFacility_ThermalPower BuildFacility(16, 275, 20, 30, 29, 5, 21, class'XGTacticalGameCore'.default.POWER_ELERIUM, 1, 32, 103); eFacility_EleriumGenerator BuildFacility(17, 325, 10, 10, 50, 5, 21, -3, 1, 4, 109); eFacility_PsiLabs, iCash=200, iElerium=20,iAlloys=20, iMaintenance=30, iTime=14, iPower=-3 BuildFacility(18, 250, 25, 25, 50, 5, 21, -10, 1, 7, 180, 94); eFacility_HyperwaveRadar, iCash=175, iElerium=0, iAlloys=10, iMaintenance=30, iTime=14, iPower=-4 BuildFacility(19, 400, 15, 10, 100, 7, 14, -3, 1, 8, 189, 116); eFacility_DeusEx, iCash=200, iElerium=10,iAlloys=10, iMaintenance=100,iTime=14, iPower=-5 ; 20 eFacility_GreyMarket ; 21 eFacility_SitRoom BalanceFacilities(); } a lot of lists seem to refer to lists in " XComGame.XGGameData " start #1 at first thing on list and will line up. This also sugests that all things we looking at that refer to a Number May look up in other lists in same manner, So keep your eyes open :) theoredicaly we can now add or delete items from grey market or into game by changing the second value form -1 remove to a positive above 0.Getting late so will test tomorrow unless some one beats me to it :) Edited November 3, 2012 by Daimond007 Link to comment Share on other sites More sharing options...
PepprmintButler Posted November 2, 2012 Share Posted November 2, 2012 (edited) First off, many of the constants in XComGame.XGTacticalGameCoreNativeBase are known to be related to nothing, most notably BASE_NUM_ROCKETS = 1. It's probably sloppy coding on the part of the devs. The item list in BuildItems might be somewhere as m_arrBuildItem, along with a description of the BuildItem() function itself, but I did not find it. I suspect it's native therefore hardcoded into the exe. Still it is possible to guess what's what from the argument values. Here is my guess for categories :Category 1 = weaponsCategory 2 = armorsCategory 3 = secondary itemsCategory 4 = UFO itemsCategory 5 = alien bodiesThe arguments of BuildItem are probably BuildItem(ItemNumber, CosttobuildinCredits, CostsinElerium/Fragments/Alloys? (3), SomeOtherArgument). Note that some lines have 5 arguments and some 6. That final argument looks interesting but I have no clear idea of what it is yet. Looks like a reference into some other array.The first few lines have -1s on the supposed cost arguments, pointing to them being the ballistic weapons, which are free. They're also unlimited, which is consistent with InfiniteItems listing 2 3 4 5 and 6 ! (4 primary weapon types + pistol)Item 57, the first in the supposed armor category, is free and Infinite. I'd bet money on it being the Kevlar. (btw it's twice is the InfiniteItems list. It's sloppy, but it allows us to replace one of those with some other item without breaking anything else so it's a good thing for modding !)Item 85, also infinite, is most likely the grenade.I'm less sure about 124 (a backpack item ?) and 195 (not in the list!?).For the others, which may be useful to recognize it you want to add something to the infinite list, the credit cost to build is of course the biggest clue (2nd number). The armors in particular are easy to recognize, this should give you the exact composition of the BuildItem arguments (I didn't take the time to do it).Also, if you want to give costs to ballistic weapons (maybe in a mod where they are more powerful or whatever), you can replace their number in the InfiniteItem range with another or some number corresponding to nothing in particular and then give them costs in their BuildItem arguments. Edited November 2, 2012 by PepprmintButler Link to comment Share on other sites More sharing options...
bokauk Posted November 2, 2012 Share Posted November 2, 2012 (edited) Here is my guess for categories :Category 1 = weaponsCategory 2 = armorsCategory 3 = secondary itemsCategory 4 = UFO itemsCategory 5 = alien bodiesThese were my findings which I posted in another thread a few days ago:Category 1: WeaponsCategory 2: ArmourCategory 3: Vehicles (SHIV, inteceptor, vehicle weapons/upgrades, satellite)Category 4: Doesn't existCategory 5: Alien artefacts/collectables (Allien alloys, weapon fragments, alien food, etc.)Category 6: Alien corpses/captives :) Edited November 2, 2012 by bokauk Link to comment Share on other sites More sharing options...
PepprmintButler Posted November 2, 2012 Share Posted November 2, 2012 Oh, right, good one.Vehicles/aircraft stuff for cat 3 makes much more sense. Item 124 is avalanche missiles then. Backpack items (medkit, etc) are actually category 1 if I get this right.Also yeah, there's no 4, didn't even notice. Link to comment Share on other sites More sharing options...
zordard Posted November 2, 2012 Share Posted November 2, 2012 I have found a few interesting things in the files latly, here is one that seems to indicate Infinate items. was hoping to make smoke infinate, but since theres no refernce to what items numbers are indicating had to find. This may mean nothing though :(So maybe some of us can figer out if this stuff accualy does something or lest in relation to others. SComStrategyDame.XGStorage Intit.Funtionfunction Init() { m_arrItems.Add(195); m_arrItemArchives.Add(195); m_arrClaims.Add(195); m_arrInfiniteItems.AddItem(57); m_arrInfiniteItems.AddItem(3); m_arrInfiniteItems.AddItem(4); m_arrInfiniteItems.AddItem(2); m_arrInfiniteItems.AddItem(85); m_arrInfiniteItems.AddItem(6); m_arrInfiniteItems.AddItem(5); m_arrInfiniteItems.AddItem(7); m_arrInfiniteItems.AddItem(57); m_arrInfiniteItems.AddItem(124); }I guess these are just array indexes. They are required for linking structures, but actual items are added through functions anyway, i.e. battlescanners are added by function UpdateItemCharges() in XGUnit.uc, as well as rockets. The problem is that default battlescanners are going in 2 pieces (IntConstByte 2Cxx) and thereby easy to change and rockets/smoke grenades are both IntOne (000026) that is hard to change via hex editor. Link to comment Share on other sites More sharing options...
tbkiah Posted November 2, 2012 Share Posted November 2, 2012 The infinite items works.. if you change all those numbers to 0 you will receive only 100 of each starting weapon and grenade. Link to comment Share on other sites More sharing options...
Daimond007 Posted November 3, 2012 Author Share Posted November 3, 2012 First off, many of the constants in XComGame.XGTacticalGameCoreNativeBase are known to be related to nothing, most notably BASE_NUM_ROCKETS = 1. It's probably sloppy coding on the part of the devs. The item list in BuildItems might be somewhere as m_arrBuildItem, along with a description of the BuildItem() function itself, but I did not find it. I suspect it's native therefore hardcoded into the exe. Still it is possible to guess what's what from the argument values. Here is my guess for categories :Category 1 = weaponsCategory 2 = armorsCategory 3 = secondary itemsCategory 4 = UFO itemsCategory 5 = alien bodiesThe arguments of BuildItem are probably BuildItem(ItemNumber, CosttobuildinCredits, CostsinElerium/Fragments/Alloys? (3), SomeOtherArgument). Note that some lines have 5 arguments and some 6. That final argument looks interesting but I have no clear idea of what it is yet. Looks like a reference into some other array.The first few lines have -1s on the supposed cost arguments, pointing to them being the ballistic weapons, which are free. They're also unlimited, which is consistent with InfiniteItems listing 2 3 4 5 and 6 ! (4 primary weapon types + pistol)Item 57, the first in the supposed armor category, is free and Infinite. I'd bet money on it being the Kevlar. (btw it's twice is the InfiniteItems list. It's sloppy, but it allows us to replace one of those with some other item without breaking anything else so it's a good thing for modding !)Item 85, also infinite, is most likely the grenade.I'm less sure about 124 (a backpack item ?) and 195 (not in the list!?).For the others, which may be useful to recognize it you want to add something to the infinite list, the credit cost to build is of course the biggest clue (2nd number). The armors in particular are easy to recognize, this should give you the exact composition of the BuildItem arguments (I didn't take the time to do it).Also, if you want to give costs to ballistic weapons (maybe in a mod where they are more powerful or whatever), you can replace their number in the InfiniteItem range with another or some number corresponding to nothing in particular and then give them costs in their BuildItem arguments. Ya this is what I was thinking as well, but as was trying to get it all posted before running out door for work limmited what I was posting :) I had found that changing some of these values did nothing from what I could tell. But I had also not tested these with a restart of game.As for Item 57, that was what I was thinking as well and changed the first one, but as I did not know what I was changing it to was not sure what I was looking for or if I had resuched it yet :) Have not tested with restart yet as well. I was thinking 195 as Base key posably. The infinite items works.. if you change all those numbers to 0 you will receive only 100 of each starting weapon and grenade I did this too but didnt post resualts as wanted to see if some one els would try and get same resualts with out any imput or direstion. So lest now I know it was not just me :) So posable to change all items if wanted as we dont realy need more then 100 rifles and other guns anyway :) that we know of yet lol. Lets post and keep a record of what thoughs build items numbers relate to, may help in other locations not just this later on.A few other things I have tryied and at one time worked for a bit. - Got smoke nades as a buildable items with proper Icon ( Can not get to show in barraks though to load on troops though ) - Got battlescanners to work as buildable items with Icon, and able to load on troops. When entering battle it would give propper Icon with 2 scanners loaded. ( stopped working few days later for some reason, can still equip but does not rejester in battle to use. ) - can not make alien Nades buildable though, although it should work. - AS I stated some time ago just after release in the WSG forums I had found a way to get Eyefinity to render right side up in game so you can see proper in 5760x1080, problem is that it zooms the screen it to thoughs outer edges. So you lose a lot of top and bottom, but I head Haden got the FOV to work in his FlawlessWide screen program, but ran into same problems I had, and that was the cursor does not go where you want it to go, so makes it really really hard to play. That is one of the things that got me into pooking around in the UPKs in the first place. Link to comment Share on other sites More sharing options...
Daimond007 Posted November 3, 2012 Author Share Posted November 3, 2012 (edited) Found something lower in the list of XGItemsTreeIt appears that acording to this below # 105 and 106 are realated to ship items most likly Friendly as it looks up " AIRANDSPACE_BONUS" and " kItem.iCash = GetItemSalePrice(byte(iItem)) " noexport function TItem GetItem(int iItem, optional int iTransactionType) { local TItem kItem; iTransactionType = 1; kItem = m_arrItems[iItem]; // End:0xa3 Loop:False if(iTransactionType == 2) { kItem.iCash = GetItemSalePrice(byte(iItem)); kItem.iElerium = 0; kItem.iAlloy = 0; } // End:0x21a else { // End:0x1d3 Loop:False if(HQ().HasBonus(2) && (iItem == 105 || (iItem == 106) || (IsShipWeapon(iItem)))) { kItem.iCash *= float(class'XGTacticalGameCore'.default.CB_AIRANDSPACE_BONUS) / 100.00; kItem.iAlloy *= float(class'XGTacticalGameCore'.default.CB_AIRANDSPACE_BONUS) / 100.00; kItem.iElerium *= float(class'XGTacticalGameCore'.default.CB_AIRANDSPACE_BONUS) / 100.00; } // End:0x207 Loop:False if(iItem == 108 && (IsOptionEnabled(10))) { CalcEscalatingSatelliteCost(kItem); } ScaleCost(kItem); } kItem.strBriefSummary = GetSummary(iItem); return kItem; } But also looking at this list most of it near the bottom indicates that iCurrentCategory = 1 ; Weapons and secondary items 1-29 is Weapons, But only 2-19 on list 75-100 Items ( guess Backpack ), but only 76-82, 85,86, 88, 99 listed iCurrentCategory = 2 ; Armors 56-74 is Armor, but only 57-63 on list iCurrentCategory = 6 ; Alien bodies and captives 159-169 Captives, and are Eitems not iItems this time. and only 160-168 listed function bool IsShipWeapon(int iItemType) { return iItemType > 122 && (iItemType < 131); } function bool IsArmor(int iItem) { return iItem > 56 && (iItem < 74); } function bool IsWeapon(int iItem) { return iItem > 1 && (iItem < 29); } function bool IsItem(int iItem) { return iItem > 75 && (iItem < 100); } function bool IsCaptive(XComGame.XGGameData.EItemType eItem) { return eItem > 159 && (eItem < 169); } Edited November 3, 2012 by Daimond007 Link to comment Share on other sites More sharing options...
Daimond007 Posted November 3, 2012 Author Share Posted November 3, 2012 (edited) Keeping main post up to date with new info I find or Test Found relavent list to relate to main list. every thing lines up and seems to line up on anot of other lists that just staite #XComGame.XGGameData eItem_BEGIN_WEAPONS, eItem_Pistol, eItem_AssaultRifle, eItem_Shotgun, eItem_LMG, eItem_SniperRifle, eItem_RocketLauncher, eItem_LaserPistol, eItem_LaserAssaultRifle, eItem_LaserAssaultGun, eItem_HeavyLaser, eItem_LaserSniperRifle, eItem_PlasmaPistol, eItem_PlasmaLightRifle, eItem_PlasmaAssaultRifle, eItem_AlloyCannon, eItem_HeavyPlasma, eItem_PlasmaSniperRifle, eItem_BlasterLauncher, eItem_FlameThrower, eItem_PlaceholderWeapon0, eItem_PlaceholderWeapon1, eItem_PlaceholderWeapon2, eItem_PlaceholderWeapon3, eItem_PlaceholderWeapon4, eItem_PlaceholderWeapon5, eItem_PlaceholderWeapon6, eItem_PlaceholderWeapon7, eItem_BEGIN_SPECIAL_WEAPONS, eItem_SectopodArm, eItem_SectopodCannon, eItem_SectopodHeatRay, eItem_ChryssalidClaw, eItem_DroneBeam, eItem_PsiAmp, eItem_Grapple, eItem_CyberdiscWeapon, eItem_BEGIN_ALIEN_SHARED_WEAPONS, eItem_SectoidPlasmaPistol, eItem_PlasmaLightRifle_ThinMan, eItem_PlasmaLightRifle_Floater, eItem_PlasmaLightRifle_Muton, eItem_PlasmaAssaultRifle_Muton, eItem_HeavyPlasma_Floater, eItem_HeavyPlasma_Muton, eItem_END_ALIEN_SHARED_WEAPONS, eItem_ZombieFist, eItem_ElderWeapon, eItem_MutonBlade, eItem_OutsiderWeapon, eItem_SoldierNoWeapon, eItem_Plague, eItem_SectopodClusterBomb, eItem_END_SPECIAL_WEAPONS, eItem_END_WEAPONS, eItem_BEGIN_ARMOR, eItem_ArmorKevlar, eItem_ArmorCarapace, eItem_ArmorSkeleton, eItem_ArmorTitan, eItem_ArmorArchangel, eItem_ArmorGhost, eItem_ArmorPsi, eItem_DLCArmor0, eItem_DLCArmor1, eItem_DLCArmor2, eItem_DLCArmor3, eItem_DLCArmor4, eItem_DLCArmor5, eItem_DLCArmor6, eItem_DLCArmor7, eItem_PlaceholderArmor0, eItem_PlaceholderArmor1, eItem_END_ARMOR, eItem_BEGIN_ITEMS, eItem_Medikit, eItem_CombatStims, eItem_MindShield, eItem_ChitinPlating, eItem_ArcThrower, eItem_TargetingModule, eItem_ReinforcedArmor, eItem_END_ITEMS, eItem_BEGIN_GRENADES, eItem_FragGrenade, eItem_SmokeGrenade, eItem_FlashBang, eItem_AlienGrenade, eItem_PlaceholderGrenade0, eItem_PlaceholderGrenade1, eItem_BEGIN_ALIEN_GRENADES, eItem_SectoidGrenade, eItem_FloaterGrenade, eItem_MutonGrenade, eItem_CyberdiscGrenade, eItem_ThinManGrenade, eItem_END_ALIEN_GRENADES, eItem_PsiGrenade, eItem_BattleScanner, eItem_END_GRENADES, eItem_BEGIN_VEHICLES, eItem_SHIV, eItem_SHIV_Alloy, eItem_SHIV_Hover, eItem_Interceptor, eItem_Firestorm, eItem_Skyranger, eItem_Satellite, eItem_PlaceholderVehicle0, eItem_PlaceholderVehicle1, eItem_END_VEHICLES, eItem_BEGIN_VEHICLE_UPGRADES, eItem_ShivMinigun, eItem_ShivSentry, eItem_ShivLaser, eItem_ShivPlasma, eItem_SHIVDeck_I, eItem_SHIVDeck_II, eItem_SHIVDeck_III, eItem_PlaceholderShivUpgrade0, eItem_PlaceholderShivUpgrade1, eItem_BEGIN_SHIP_WEAPONS, eItem_IntWeap_I, eItem_IntWeap_II, eItem_IntWeap_III, eItem_IntWeap_IV, eItem_IntWeap_V, eItem_IntWeap_VI, eItem_PlaceholderIntWeapon0, eItem_PlaceholderIntWeapon1, eItem_END_SHIP_WEAPONS, eItem_BEGIN_INTERCEPTOR_CONSUMABLES, eItem_IntConsumable_Dodge, eItem_IntConsumable_Boost, eItem_IntConsumable_Hit, eItem_PlaceholderIntConsumable0, eItem_PlaceholderIntConsumable1, eItem_END_INTERCEPTOR_CONSUMABLES, eItem_END_VEHICLE_UPGRADES, eItem_BEGIN_CORPSES, eItem_CivilianCorpse, eItem_TankCorpse, eItem_SoldierCorpse, eItem_SectoidCorpse, eItem_SectoidCommanderCorpse, eItem_FloaterCorpse, eItem_FloaterHeavyCorpse, eItem_ThinManCorpse, eItem_MutonCorpse, eItem_MutonEliteCorpse, eItem_BerserkerCorpse, eItem_CyberdiscCorpse, eItem_EtherealCorpse, eItem_CryssalidCorpse, eItem_ZombieCorpse, eItem_SectopodCorpse, eItem_DroneCorpse, eItem_END_CORPSES, eItem_BEGIN_CAPTIVES, eItem_SectoidCaptive, eItem_SectoidCommanderCaptive, eItem_FloaterCaptive, eItem_FloaterHeavyCaptive, eItem_ThinManCaptive, eItem_MutonCaptive, eItem_MutonEliteCaptive, eItem_BerserkerCaptive, eItem_EtherealCaptive, eItem_END_CAPTIVES, eItem_BEGIN_COLLECTIBLES, eItem_Elerium115, eItem_AlienAlloys, eItem_WeaponFragment, eItem_AlienEntertainment, eItem_AlienFood, eItem_AlienStasisTank, eItem_UFONavigation, eItem_AlienSurgery, eItem_UFOPowerSource, eItem_HyperwaveBeacon, eItem_DamagedAlienEntertainment, eItem_DamagedAlienFood, eItem_DamagedAlienStasisTank, eItem_DamagedUFONavigation, eItem_DamagedAlienSurgery, eItem_DamagedUFOPowerSource, eItem_DamagedHyperwaveBeacon, eItem_UFOFusionLauncher, eItem_PsiLink, eItem_END_COLLECTIBLES, eItem_Base_Shard, eItem_Skeleton_Key, eItem_SectopodChestCannon, eItem_NullPrereq, eItem_MAX Edited November 3, 2012 by Daimond007 Link to comment Share on other sites More sharing options...
PepprmintButler Posted November 3, 2012 Share Posted November 3, 2012 Nice find daimond007, that saves us a good bit of work ! Did anyone find where the 100 value for starting items that are not infinite is located ? I'm thinking this could complement nicely the "all items are sellable" mod tjat was workef on earlier, but I'd rather turn that 100 down to 10 or something. Link to comment Share on other sites More sharing options...
Recommended Posts