Jump to content

XCOM Modding: Need of a centralized source of information?


anUser

Recommended Posts

  • Replies 121
  • Created
  • Last Reply

Top Posters In This Topic

:O Bloody hellfire that's long.

 

My usual process is:

 

Stare at the numbers until they make sense

 

change the number I want

 

Profit

 

That works until I find a bug or want to change something else, and come back a few days (or weeks) later. Then I scratch my head a lot and wonder what the heck I was thinking.

 

and ... I did warn you it was long ... you should see my journal for the damage reduction ... it's MUCH longer :blink:

Link to comment
Share on other sites

that's awesome! you named it, it's a journal! But there's a lot of interesting stuff, I think now I have material enough to start familiarizing myself with this chryptic hex language... until I forget where that post was :p

 

One of the reasons I'd love some sort of linked entries is because all of this enums, and calls to functions from different packages, etc. sometimes it gets hard to trace them... it always makes me wonder if it's me that cannot find the function, or maybe it's inherited from somewhere else and I'm not looking at the right place...

 

edit: typo

Edited by anUser
Link to comment
Share on other sites

I guess I'm just fortunate (in this case) that I had the archaic and cryptic experience of having programmed in x86 assembly language, so this is pretty straightforward for me.

 

Reverse compiling enumerated value is very difficult, if not nearly impossible, because there are many possible enumerated list that a particular constant COULD trace back to ... the actual assignment is very dependent on context.

 

I know I've gotten tripped up because the SHOTSTUN eAbility is 9, but the STUN eAbility_Property is 33. I saw a reference to 9, and thought the conditional was checking for stunning, but eAbility_Property 9 is called Deadeye, which is a cheatmode / dev console ability that always gives 100% to-hit. Fun, fun times !

Link to comment
Share on other sites

Going with my Staring at numbers thing for XCOMStrategyGame.upk XGTechTree

 

 

function BuildFoundryTechs()

{

m_arrFoundryTechs.Add(19);

BuildFoundryTech(1, 7, 5, 70, 0);

BuildFoundryTech(2, 7, 10, 75, 11, 9);

BuildFoundryTech(8, 14, 10, 175, 33, 1);

BuildFoundryTech(9, 14, 10, 175, 53, 2);

BuildFoundryTech(3, 14, 5, 125, 45, 3);

BuildFoundryTech(4, 14, 10, 100, 20, 12, 4);

BuildFoundryTech(10, 14, 5, 150, 35, 46, 5);

BuildFoundryTech(6, 14, 5, 125, 35, 21, 6);

BuildFoundryTech(7, 14, 10, 250, 25, 50, 25, 7);

BuildFoundryTech(11, 14, 15, 325, 50, 50, 18, 8 );

BuildFoundryTech(12, 14, 15, 375, 30, 50, 54, 10);

BuildFoundryTech(5, 14, 15, 175, 30, 40, 51, 11);

BuildFoundryTech(13, 7, 5, 75, 0, 0, 12);

BuildFoundryTech(14, 7, 5, 150, 0, 20, 19, 13);

BuildFoundryTech(15, 14, 10, 250, 30, 40, 22, 14);

BuildFoundryTech(16, 14, 5, 75, 0, 0, 15);

BuildFoundryTech(17, 7, 5, 150, 31, 16);

BuildFoundryTech(18, 7, 10, 75, 9, 17);

BalanceFoundry();

}

 

 

 

1, SHIV,

2, AlienGrenades,

8, SHIV_Heal,

9, CaptureDrone,

3, MedikitII,

4, ArcThrowerII,

10, AmmoConservation,

6, AutomatedLasers,

7, AutomatedPlasma,

11, AdvancedFlight,

12, AdvancedConstruction,

5, VehicleRepair,

13, PistolI,

14, PistolII,

15, PistolIII,

16, SHIVSuppression,

17, StealthSatellites,

18, Scope,

 

 

XGItemtree . BuildItems

 

 

 

function BuildItems()

 

 

{

m_iCurrentCategory = 1;

//Starting Gear

//Pistol(??)

BuildItem(2, -1, -1, -1, 37);

//Rifle(??)

BuildItem(3, -1, -1, -1, 16);

//Shotgun(??)

BuildItem(4, -1, -1, -1, 54);

//LMG(??)

BuildItem(5, -1, -1, -1, 31);

//Sniper Rifle(??)

BuildItem(6, -1, -1, -1, 57);

//Rocket Launcher(??)

BuildItem(7, -1, -1, -1, 45);

//Smoke Grenade(??)

BuildItem(85, -1, -1, -1, 23);

//Battle Scanner(??)

BuildItem(86, -1, -1, -1, 56);

//Medkit

BuildItem(76, 25, 7, 5, 32);

//Alien Grenade

BuildItem(88, -1, -1, -1, 2, 6);

//Arc-Thrower

BuildItem(80, 10, 7, 5, 2, 8 );

//Frag Grenade(???)

BuildItem(99, -1, -1, -1, 17);

//SCOPE

BuildItem(81, 20, 7, 5, 9, 48);

//Nano-Fiber Vest

BuildItem(82, 20, 7, 5, 10, 36);

//Chitin Plating

BuildItem(79, 85, 7, 10, 47, 18);

//Combat-Stims

BuildItem(77, 50, 7, 10, 50, 151, 19);

//Mind Shield

BuildItem(78, 150, 10, 25, 55, 34);

//Skeleton Key

BuildItem(192, 25, 20, 20, 7, 15, 3, 55);

//Laser Pistol

BuildItem(8, 10, 10, 7, 10, 19, 27);

//Laser Rifle

BuildItem(9, 25, 15, 7, 12, 19, 28);

//Scatter laser

BuildItem(10, 30, 25, 7, 12, 20, 29);

//Laser Sniper

BuildItem(12, 35, 25, 7, 12, 20, 30);

//Heavy Laser

BuildItem(11, 30, 25, 7, 12, 21, 26);

//Plasma Pistol

BuildItem(13, 100, 10, 20, 10, 20, 22, 40);

//Light Plasma Rifle

BuildItem(14, 125, 15, 20, 10, 20, 23, 42);

//Plasma Rifle

BuildItem(15, 200, 20, 30, 10, 20, 24, 41);

//Alloy Cannon

BuildItem(16, 200, 20, 50, 12, 25, 27, 43);

//Heavy Plasma

BuildItem(17, 250, 30, 30, 10, 25, 25, 39);

//Plasma Sniper

BuildItem(18, 250, 25, 30, 15, 25, 26, 44);

//Blaster Launcher

BuildItem(19, 275, 35, 40, 15, 40, 30, 38);

 

 

m_iCurrentCategory = 2;

//Kevlar Armor(???)

BuildItem(57, -1, -1, -1, 12);

//Carapace Armor

BuildItem(58, 25, 15, 10, 10, 14, 10);

//Skeleton Suit

BuildItem(59, 30, 10, 10, 15, 15, 14);

//Titan Armor

BuildItem(60, 150, 10, 35, 10, 25, 16, 15);

//Archangel Armor

BuildItem(61, 200, 16, 30, 14, 35, 18, 9);

//Ghost Armor

BuildItem(62, 250, 20, 25, 14, 40, 17, 11);

//Psi Armor

BuildItem(63, 400, 40, 20, 10, 30, 13, 13);

 

 

m_iCurrentCategory = 3;

//SHIV

BuildItem(102, 50, 14, 5, 1, 49);

//Alloy SHIV

BuildItem(103, 100, 25, 14, 10, 14, 1, 50);

//Hover SHIV

BuildItem(104, 200, 30, 30, 14, 20, 5, 1, 51);

//Interceptor(???)

BuildItem(105, 40, -1, -1, 25);

//Firestorm

BuildItem(106, 275, 40, 60, 21, 20, 5, 21);

//Skyranger(???)

BuildItem(107, -1, -1, -1, 66);

//Satellite

BuildItem(108, 100, 20, 5, 46);

//Small Scout

BuildItem(113, -1, -1, -1, 1, 52);

//Large Scout

BuildItem(115, -1, -1, -1, 53);

//Abductor

BuildItem(116, -1, -1, -1, 65);

//Supply Barge

BuildItem(117, -1, -1, -1, 1, 49);

//Battleship

BuildItem(118, -1, -1, -1, 50);

//Overseer

BuildItem(119, -1, -1, -1, 51);

//Pheonix Cannon

BuildItem(123, 25, 7, 5, 11, 2);

//Avalanche Missiles

BuildItem(124, -1, -1, -1, 4);

//Laser Cannon

BuildItem(125, 35, 25, 7, 10, 21, 3);

//Plasma Cannon

BuildItem(126, 100, 20, 20, 10, 20, 28, 5);

//EMP Cannon

BuildItem(127, 200, 20, 30, 10, 30, 33, 0);

//Fusion Lance

BuildItem(128, 150, 20, 30, 10, 35, 29, 1);

//Aim Uplink

BuildItem(135, 10, 0, 0, 0, 5, 43, 47);

//Dodge Module

BuildItem(133, 50, 0, 0, 0, 5, 44, 20);

//Track Boost

BuildItem(134, 20, 0, 0, 0, 10, 49, 58);

 

 

m_iCurrentCategory = 5;

//Elerium

BuildItem(171, 3, 1, -1, -1, 14);

//Alloy

BuildItem(172, 2, 1, -1, -1, 36);

//Fragments

BuildItem(173, 1, -1, -1, 0);

//Outsider Shard

BuildItem(191, -1, -1, -1, 40);

//Power Source

BuildItem(179, 75, -1, -1, 44);

//Nav Computer

BuildItem(177, 40, -1, -1, 43);

//Alien Misc Items

BuildItem(175, 10, -1, -1, 46);

BuildItem(174, 17, -1, -1, 47);

BuildItem(176, 10, -1, -1, 48);

BuildItem(178, 25, -1, -1, 49);

//Fusion Core

BuildItem(188, 125, -1, -1, 45);

//Hyperwave Beacon

BuildItem(180, -1, -1, -1, 193);

//Etheral Device

BuildItem(189, -1, -1, -1, 51);

//Alien Damaged Items

BuildItem(186, 30, -1, -1, 163);

BuildItem(184, 20, -1, -1, 199);

BuildItem(182, 5, -1, -1, 199);

BuildItem(181, 5, -1, -1, 199);

BuildItem(183, 5, -1, -1, 199);

BuildItem(185, 10, -1, -1, 186);

BuildItem(187, 45, -1, -1, 193);

m_iCurrentCategory = 6;

//Corpses

BuildItem(144, 5, -1, -1, 52);

BuildItem(146, 5, -1, -1, 53);

BuildItem(148, 5, -1, -1, 55);

BuildItem(149, 5, -1, -1, 54);

BuildItem(154, 5, -1, -1, 56);

BuildItem(152, 7, -1, -1, 59);

BuildItem(156, 10, -1, -1, 61);

BuildItem(157, 2, -1, -1, 60);

BuildItem(153, 15, -1, -1, 58);

BuildItem(145, 10, -1, -1, 65);

BuildItem(151, 5, -1, -1, 62);

BuildItem(150, 8, -1, -1, 63);

BuildItem(147, 6, -1, -1, 64);

//Captives

BuildItem(160, -1, -1, -1, 52);

BuildItem(162, -1, -1, -1, 53);

BuildItem(164, -1, -1, -1, 55);

BuildItem(165, -1, -1, -1, 54);

BuildItem(168, -1, -1, -1, 58);

BuildItem(161, -1, -1, -1, 65);

BuildItem(167, -1, -1, -1, 62);

BuildItem(166, -1, -1, -1, 63);

BuildItem(163, -1, -1, -1, 64);

BalanceItems();

}

 

Edited by Yzaxtol
Link to comment
Share on other sites

RE: using the wiki, I just replied to a PM in regards to this issue. Here's the blurb:

 

 

You can actually open up "sections" yourself by tagging your articles with the same category using the category tags shown in this article: http://wiki.tesnexus.com/index.php/Posting_guidelines_and_template

 

If you were to tag all articles with [[Category:XCOM]], for example, then an XCOM category would be born and you'd be able to view all articles using this link: http://wiki.tesnexus.com/index.php/Category:XCOM

 

All that I'd need to do is provide a link to it in the left hand navigation and the front page.

 

Hope this explains things.

Link to comment
Share on other sites

So much appreciated!

 

then it's about time I start learning how this wiki works. And meanwhile I'll try to put out a couple of sample templates for what I expexct it would be a common entry, like some function from XComGame.upk. Hopefuly having some base document to work on will draw the interest of more modders. I suggested a few posts above some common elements imo each entry should/could have, but I'd like to read the opinion of others, specially either those who think they may eventually collaborate and those who think they could profit of such wiki for their personal use and enjoyment.

Link to comment
Share on other sites

I'd recommend a couple of things.

 

First, three how-to articles on the three levels of modding:

1) Making and implementing DefaultGameCore.ini changes

2) Changing single values in upk files and getting them ingame

3) Rescripting within upk files (with a focus on virtual size, jumps, etc)

 

For upk information,

Maybe two organizational structures are in order

1) By file, then class, then function

2) By "subject area" -- that is, decide what major modding goals are, and then links to articles about relevant functions, e.g. "Modding UFO capabilities" with links to BuildShipWeapons and BuildShips

 

Just a rough thought, use or disregard as necessary

Link to comment
Share on other sites

Yep, I like your thoughts. I could make some use myself of that third article if it existed.

 

As for relating subjects it seems to me the category system in the wiki should do it, maybe in addition to single functions and classes entries there could be an article per category telling a little bit about the interaction of the files listed under that category. What bothers me the most is not knowing for sure that everything we research will stay unchanged after a next update or patch, maybe some sort of versioning is in order too.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...