Fallout Tactics utility Fallout Tactics Scripting Engine (0.52a)

Discussion in 'Fallout Tactics Modding' started by Melindil, Jul 3, 2018.

  1. nadeauhugo

    nadeauhugo Author of FOT mod THE SUM Modder

    607
    Mar 9, 2014
    It also allows the manipulation of the text log at the bottom left corner, and the addition of any overhead texts. You can also detect any entity by its name or tagname, and modify most of these entities attributes, excluding hitpoints, poison points and rad points. You can force an item to stay equiped, or unequip any item. You can change the time and date, but I think this only applies at game launch. I hightly doupt you can modify or call the time variables or functions other than at the game launch. If you find a way while exploring FTSE, please let us know, it could be useful to trigger a rest, for example, or to add a delay after completing an action, like for example the NPC in Fallout 1 who prepare poison antidote, triggering some passing of time.
     
  2. nadeauhugo

    nadeauhugo Author of FOT mod THE SUM Modder

    607
    Mar 9, 2014
    While coding with FTSE, I realized that GetEffectMaximum() for a consumable item is not working at all. It results in the code not being compiled, so the following code is uselss. GetEffectMinimum() does work, however.
     
  3. Reinar

    Reinar First time out of the vault

    81
    Oct 23, 2011
    Good news! With some story...
    A few days back, I returned to my idea of making Firefly: Tactics. I once again started trying new, unorthodox stuff. Yesterday I was trying to simulate environment without oxygen, which would need you to wear a proper environmental armour (space suit). That would open missions in space - salvage operations on destroyed ships, secret base on asteroid and the like. At first, I used radiation. It was looking really promising, but then I realized that radiation in FT can't kill you, even in insane amounts. It just lowers stats and that's it. So I moved on and fiddled more with FTSE. After a while, I decided to look at the source code of FTSE, thinking maybe I could take the flag after melindil. Realizing it's in C++ made me hesitate, so I don't promise anything. But I looked at the code and found out that there are two undocumented functions on the Actor class: GetField(name) and SetField(name, value). They can be used to read/modify these properties:

    { "hp", {0x281, Actor::FieldType::INTEGER}},
    { "bandaged", {0x285, Actor::FieldType::INTEGER}},
    { "ap", { 0x289, Actor::FieldType::FLOAT}},
    { "radpoints", { 0x28d, Actor::FieldType::INTEGER}},
    { "radlevel", { 0x0291, Actor::FieldType::INTEGER}},
    { "poisonpoints", { 0x295, Actor::FieldType::INTEGER}},
    { "poisonlevel", {0x299, Actor::FieldType::INTEGER}},
    { "overdosepoints", {0x29d, Actor::FieldType::INTEGER}},
    { "goneuplevel", {0x02a1, Actor::FieldType::BOOLEAN}},
    { "stance", {0x1fe, Actor::FieldType::INTEGER}},
    { "posture", {0xf8a, Actor::FieldType::WCHAR_STRING}},
    { "injured", {0xfb2, Actor::FieldType::BOOLEAN}},
    { "injuredtorso",{ 0xfb3, Actor::FieldType::BOOLEAN } },
    { "injuredhead",{ 0xfb4, Actor::FieldType::BOOLEAN } },
    { "injuredeyes",{ 0xfb5, Actor::FieldType::BOOLEAN } },
    { "injuredrightarm",{ 0xfb6, Actor::FieldType::BOOLEAN } },
    { "injuredleftarm",{ 0xfb7, Actor::FieldType::BOOLEAN } },
    { "injuredgroin",{ 0xfb8, Actor::FieldType::BOOLEAN } },
    { "injuredleftleg",{ 0xfb9, Actor::FieldType::BOOLEAN } },
    { "injuredrightleg",{ 0xfba, Actor::FieldType::BOOLEAN } },
    { "unconscious",{ 0xfbb, Actor::FieldType::BOOLEAN } },
    { "unconscioustime",{ 0xfbc, Actor::FieldType::INTEGER } },
    { "reputation",{ 0xfed, Actor::FieldType::INTEGER } },
    { "isgeneral", {0x1053, Actor::FieldType::BOOLEAN} },
    { "isrecruitmaster",{ 0x1054, Actor::FieldType::BOOLEAN } },
    { "isquartermaster",{ 0x1055, Actor::FieldType::BOOLEAN } }
    { "playerindex", {0x163, Actor::FieldType::INTEGER}}

    I successfully tested changing current HP and AP. It's possible to heal/harm actors through code now. Setting HP to 0 will not play death animation though, so the actors remain in their previous idle animation. But you can loot them. Also no XP for you, obviously.
    Thanks to this, I was able to finish another two really cool perks. I wish something playable will ever come from this :D
     
  4. nadeauhugo

    nadeauhugo Author of FOT mod THE SUM Modder

    607
    Mar 9, 2014
    OMFG! You are my hero! Fantastic work here! :D This will be of great use to me too, highly appreciate that. This will also really come in handy to program some form of Doctor character in the future. You set a variable to true in Tactics scripts and then bang, your chars are healed, thanks to your new findings :D Thanks again...

    Hugo
     
  5. nadeauhugo

    nadeauhugo Author of FOT mod THE SUM Modder

    607
    Mar 9, 2014
    I noticed when having a character in let's say the prone position and adding it to the team, the position is permanent, meaning that each time you enter a new map, the said character will always revert to that preset position. This means that maybe using LUA code to set a new default position, like "Stand" will permit the use of prone or crouch characters to make them join the team.

    As for now I did not test this list yet, but I intend on using those fields to program a medic for a future version of my mod. I will post the code here. It will make use of the overhead texts, and probably will cure all your squad when a variable is set to true, so right after a conversation with the said medic.