FT Improver - a way to improve Fallout Tactics

Discussion in 'Fallout Tactics Modding' started by jarekfall, Oct 8, 2009.

  1. TwoEyedYum

    TwoEyedYum Naked Moose

    Jan 21, 2010
    As shows modified Kanzas City mission (more mutants at West Gate, more powerful Minigun):

    imagine muties all over street between gate and two sniping towers (where lie muties with Rocket Launchers). Usually minigun have maximum of 35 range, but modified one - 55. My HWS can target one of the muties on tower and... ALL muties in the street and muty on second tower DIE instantly, but target is still alive and unharmed. I think, that burst bug hits all targets in posible burst range.

    Bug appears only with hit chance displayed as 0%. As long as it 1% or more (minimum setting for auto-fire), bug doesn't appear.

    Works vice-versa. If mutie with minigun or heavy machine gun becomes blind, he loses almost all his perception, but he doesn't "realize" that and continues to fire from great distance... Which finally makes all my guys (except targeted one) dead.

    Weapon settings in most cases:
    Spread Arc: burst
    Range Class: short

    There's something with math calculation. Looks like game sees -x% hit chance and resets it "back" to 100% (or 95, dunno)
  2. jarekfall

    jarekfall It Wandered In From the Wastes

    Dec 27, 2007
    Requiem_for_a_starfury and TwoEyedYum, thank you for the information.

    I couldn't reproduce the bug and I performed many tests in both modes: real-time and turn based.

    Target specification:
    NPCs standing next to each other, wearing power armours.

    Attacker specification:
    1. BOS race, level 0, no perks, big guns skill 10%
    2. BOS race, level 0, no perks, big guns skill 110%
    3. BOS race, level 0, no perks, big guns skill 160%
    Used weapon: Browning M2, default ammo

    Targets attacked by PC 1 at hit chance 0%:
    Far range. No target was hit.

    Targets attacked by PC 1 at hit chance 3%:
    Very close range. No target was hit. Once I hit one target, but no other targets were hit, the hit target took about 1/9 of maximum possible damages.

    Targets attacked by PC 2 at hit chance 0%:
    Very far range. I could not get the message about missing. Many targets were hit, all took similar damages, each about 1/9 of maximum possible damages.

    Targets attacked by PC 2 at hit chance 30%:
    Far range. I could not get the message about missing. Many targets were hit, all took similar damages, each about 1/3 or 1/9 of maximum possible damages. I noticed that damages depend on the number of hit targets, if I hit 3 targets then damages are about 1/3 of maximum possible damages.

    Targets attacked by PC 2 at hit chance 95%:
    Close range, so I hit only three targets, all took similar damages, each about 1/3 of maximum possible damages.

    Targets attacked by PC 3 at hit chance 0%:
    Very far range. The same as PC 2 at hit chance 0%, 30%, 95%.

    Targets attacked by PC 3 at hit chance 30%:
    Very far range. The same as PC 3 at hit chance 0%.

    Targets attacked by PC 3 at hit chance 95%:
    Far range. The same as PC 3 at hit chance 0%.

    The only one thing I don't like is that when you attack with skilled person at high hit chance, one target standing next to other objects. The damages are always divided by the number of hit objects. I think that only targeted object should be damaged and it should take maximum possible damages.

    TwoEyedYum, I think that blind Mutant can kill actors if he is using a minigun throwing about 40 bullets in the attack area, it proves what I noticed in my tests, that skilled person can hit all targets in the attack area even if hit chance is 0%.

    By the way I know the version of the JPEG library it's "6a 7-Feb-96", this version is not available for download, but I accidentally downloaded other library containing JPEG library in version 6a.

    Update 21.04.2010
    Indeed, when I shot from a far distance at any hit chance then the attack area is large, but the attack direction or cone direction is randomly generated and is constant. The attack cone is smaller than the possible attack area. All this is rather realistic.

    Update 01.05.2010
    All JPEG library functions have been identified in the BOS.exe file. The executable file does not contain functions from files: JIDCTFST.c, JIDCTFLT.c, JFDCTINT.c, JFDCTFST.c, JFDCTFLT.c, JDTRANS.c, JDATADST.c, JCTRANS.c, JCMAINCT.c.

    Update 03.05.2010
    I have a good news.

    The next version of FT Improver will be able to enable all disabled trigger conditions, such as condition "Weapon mode is".

    Previously I did not know that item which has been tagged in the entity editor loses its tag if it's put on the ground in the level editor.

    I again tested the "Weapon mode is" condition and found that:
    - it is TRUE if weapon's tag name is different than the tag name expected by the condition (if there is no item on a map with tag name expected by the condition);
    - it is FALSE if weapon's tag name is the same as the tag name expected by the condition and there is no meaning whether weapon's attack mode name is the same as the name expected by condition

    I'm analyzing the executable code and currently know that it really expects tagged weapons, however it even works somehow with PCs, the code returns then names "Single" and "H2H (Jab)" and "None" strings in case of tagged person (these are unarmed person attack mode parameters, I have to check whether a character with a gun in a hand will return weapon's attack mode parameters). In case of tagged weapons it returns among other parameters the name of active weapon attack mode.

    As I thought programmers made a mistake and compare animation names instead of attack mode names. I have access to all attack mode parameters of a tagged weapon so I can easily fix the bug. I've checked this and after the fix this trigger works correctly.

    In order to have more mode names in the trigger condition I don't have to create another patch because the game takes names from the animation names list and I've already created a patch for the animation names. Don't forget that animation names are used by game to connect weapon's attack mode with corresponding attack sequence in the actor sprite files, but the game creators wanted to have less work, so they also used the animation names list for the condition "WeaponModeIs". You don't have to worry, it won't cause any errors.
  3. TwoEyedYum

    TwoEyedYum Naked Moose

    Jan 21, 2010
    Good news! :clap:

    Btw, back to "burst bug", found another strange thing:
    First i thought that bug converts 0% chance to hit into 100% chance. But now i experinced something weird, when fought against Scurry Bots. You know, theu like to hide in sand, waiting for prey, and usual burst, targeted at clear ground, can't damage them or even provoke for unburrowing.

    I've played another mod (russian one :mrgreen: ), mission was Cheyenne Mountain. Mod author placed 4 scurry bots along with already present Rocket Launcher Robot in one tight place at most hign point of mountain. Scurry bots were invisible, but burst of 83 range machinegun (slightly improved M249) at 0% chance left main target (RL Robot) untouched, while ALL four scurry bots unborrowed and started to flee (through there was no way for it :mrgreen: ).

    This burst bug damages even burrowed Scurry Bots! I don't know why, but the game engine decides to deal AoE damage around missed target :| And yeah, it usually 1/3 or 1/9 of usual damage :eyebrow:
  4. jarekfall

    jarekfall It Wandered In From the Wastes

    Dec 27, 2007
    A week ago I created a map for testing attack modes (different spread types and other). The map is unfinished and there is still a lot of work to do. When I will finish it I will perform many tests and will publish the map and the results on this thread. I've placed on a map hundreds of "breakable" entities such as barricades, of course each barricade size is 1x1x1 pt and they form a solid wall. I've already spent some time on "burst" spread type testing and can explain the issue you mentioned. In my opinion this is a fault of used algorithm. I think that the algorithm does not simulate each projectile trajectory, but analyzes the position of all entities surrounding the target in weapon's possible attack area and there is no matter whether your hit chance is 0% or 95%. It randomly chooses entities from bottommost to topmost but not in greater range then the cone base diameter, so if there are objects under your main target they will always be damaged, if there will be enough amount of objects under your target then your target will never be hit until the number of living objects will decrease. The "burst" spread type really divides maximum possible damages by the number of hit objects if for all shot bullets one bullet hit only one target. Everything what I say will become clear when I will release screenshots of individual attack modes. By the way, "cone" spread type is a deadly machine, it does not divide damages, and from hundreds of objects only several survive first attack.
  5. TwoEyedYum

    TwoEyedYum Naked Moose

    Jan 21, 2010
    Well, i take 2 targets, close one to another. Vindicator releases something like 15 bullets per burst at 0% chance. I can't imagine, why main target still survives, if only 7-8 bullets hit second target... Dunno. But statistic for last year says next for "burst" spread:
    1) 15-bullets burst against 2 targets at 0% chance hits second target.
    2) 3-bullets burst against 3 targets + 3 burrowed bots hits everithing EXCEPT main target, but including burrowed bots.
    That's why i think, that "burst bug" deals AoE damage...

    Cone behaves as always even with 0% chance - still can wipe out whole bunch of enemies. But assault rifles with "burst" spread shouldn't behave almost same as "cone" weapons (shotguns).
  6. Dice

    Dice First time out of the vault

    May 3, 2010
    Interesting stuff going on here, installed the FT improver and I am working on a project of my own.

    Had trouble more generally because I am new to this, but the things I am trying to do will push the limit for sure.

    I'm trying to build a multiplayer free RP based on a Post Apocalyptic Cyberpunk scene in about 2038 based in San Diego (now known as New Carthage). Certain features I have to figure out how to implement are making it so I have a larger limit of players, creating one long continuing campaign. I'm going to start small, a corner section of town maybe where it originates base it 10yrs earlier in rougher times for betatesting and whatnot.

    I need to figure out how to tweak the save and respawn functions to respond to a script that would instead only save your character (limited to one save spot per character, would actually be on the server when finished), when you 'update' your clone. Thereafter you're respawn location would be that cloning facility where you updated your clone(saved your character). You have to pay money for each clone and update.

    The world would mostly be free RP based upon your character (build a character history to the theme/history) with a couple job systems to work out of. Bars, gunshops, etc etc. Security Cops, Gangs and many organizations. I have a huge theme to work off of, mostly a tribute to a game I havn't been playing anymore but it represents the work of tons of people on a text-based RP M**.

    There are also implants, which I picture replicating the armor slot with an invisible second section of armor slots for each of the general areas of the body.

    Each would simply represent stat raises by implants (replicate armor effects from power armor, change image, only installable/removable only by cyberdocs) but they must be invisible from regular inventory, only accessed by a certain archetype (Cyberdoc/Ripperdoc) with the right tools.

    The third and almost most important aspect is to change the speech/dialogue options to offer free-speech and free RP poses as well as generic @social emotes.

    Ex: You click on a player a dialogue box pops up between you (actually player characters, limit 1 per player, aside drones?), and you may just chat to each other freely. OR add a prefix which will allow you to RP freely such as...

    (Dice) type: say Wha' th'a hell!

    Dice says, "Wha' th'a hell!"

    or casual @social emotes
    (Dice) type: laugh

    Dice bursts out in laughter.

    (Dice) type: emote casually strolls through the entrance taking a deep sigh of relief as he wipes some sweat from his forehead while looking around the bar. He turns with a half-smile nodding in your direction, "Hey."

    Dialogue box shows:

    Dice casually strolls through the entrance taking a deep sigh of relief as he wipes some sweat from his forehead while looking
    around the bar. He turns with a half-smile in your direction, "Hey."

    Seems like a lot but I think it is possible to get some beta-testing going by the end of the summer/year? if I can get past the initial requirements for my ideal theme-world. There is tons more so its more of an non-stop upgrade/implementation effort by players for players. Admins could always 'puppet' NPCs for plots and whatnot to make interesting things happen from time to time.

    Basically it allows a continuous story line along the way before you go off to killing each other though it is largely conflict based, the storylines for each conflict are more in-depth and offer reasons to trade sides or stab your friends in the back, etc etc.

    Several other implementations I'd like to install, but those are the most important, i can make the map eventually and build individual areas/job systems/security patrol etc once I figure out the scripts.

    I'll post more on my own project in these modding forums soon.

    But if anyone on this forums has ideas how I can implement these things with the FT improver, I'd love the help. Thanks
  7. Corpse

    Corpse Mildly Dipped

    Apr 7, 2003
    Got to give credit to the designers for their amazing grasp of physics and common sense. :wink:
    I'm guessing it was some 'balance' issue in which they reasoned making bursts deal full damage times number of hits would make burst mode way too deadly or most likely were too lazy or ignorant to implement a proper system.
    The cone spread should divide damage accordingly:
    At very close range, where the shot is most concentrated damage should start at 100% and decrease the further it gets scattered following the cone pattern; if for example any target is hit at very close range, there's a good chance this target could get hit by the full load in which case should prevent further spread to other targets behind.
    Any way to fix this problem?
  8. jarekfall

    jarekfall It Wandered In From the Wastes

    Dec 27, 2007
    Your ideas are very interesting but currently rather not implementable. The possibility of scripting in Fallout Tactics is very limited in comparison to Fallout 2.

    The cloning system, may be a real problem, I have no experience with multiplayer mode so I'm not able to suggest anything. In single player mode this is not possible. I can try to make different variations of conditions or actions that will copy player's stats to invisible dummies and inversely, for example in 60 seconds interval, but at the moment I only guess that I will be able to realize this.

    The realization of implants may be possible, but will probably require reach a compromise. Invisible items can be created and the player would not be able to touch them, but if he will try to loot items from dead player or steal items from another player and he will use "Take all" button, then he can take all items even these invisible. I'm not sure but you could also try to use option "Not lootable" in implants. If this won't work I could try to disable "Take All" button. I think that you could also use scripts to hide and reveal implants in certain situations. When a player has required archetype a script should replace invisible items with their visible equivalent.

    As to the dialog system, I have in my plans a patch that will add a possibility to realize dialogs similar to these from FO, but for single player mode. Again I have no experience with multiplayer so I would have to perform many tests in multiplayer. I have planned my upcoming summer holidays and I will be busy with my another project Sprite Creator, so you would have to wait at least half of the year, of course I can perform tests with dialogs in multiplayer mode in the summer.

    As to the decker/hacker system I don't know what exactly this is, if you would like to see what your opponent does at the moment we could use invisible man actor sprite, the actor would be unmoving and could be added to player's team as a camera, and later removed. The opponent would not know that he is being tracked.

    As to the dialogs in the bar I don't know how exactly you imagine this.

    I don't want to discourage you. Please try first to create some maps and implement some of the game aspects. It will be much easier for me to suggest you correct solutions or implement a new possibility, especially if I will be able to analyze the scripts you will write. Also you may be forced sometimes reach a compromise.

    I'm very busy with life at the moment and probably for the next 6-8 months, so my help rather won't be very significant. Will I have free time later? I don't know.

    In my opinion if I attack single target and no other target is in area of attack then burst mode is OK, but in other cases it is unrealistic. Yes, I agree with your suggestion to cone spread type. Currently I'm not able to answer your question.

    I've released FT Improver v1.5 and this version is probably the last for the next several months, of course I may create several small patches in the meantime, but that's all. FT Improver v1.5 enables all disabled by game programmers trigger conditions and fixes bugged condition: "Weapon mode is". By the way, FT does not contain any other trigger actions.
  9. Dice

    Dice First time out of the vault

    May 3, 2010
    I completely understand and take full responsibility for this project of mine, I'm grateful for any input at this point. I wouldn't get my hopes up since this is a big 'IF' project since its very, complicated.

    I downloaded FT improver again from your website to get V1.5... but for some reason it still says 1.38 when I start the FT improver up, although the readme did say 1.51. Probably just me being stupid though. If I can't produce the results I want with your newest update I might just have to try a different engine *shrugs*

    My mouse scrolling seems sluggish when using FT improver, this normal?

    I think cloning will be easier than it seems, trigger a fee for entering a cloning facility which would then save your stats to a dummie which would be activated/spawned upon death.

    Implant idea seems good but it will become more complicated with certain implants that offer more than just stat boosts, but I'll let that slide until the important stuff is done.

    Decking is highly unnecessary at least until the future (building the matrix alone will be exceedingly complicated although it will just be a couple job systems and tracking via hacking satellites)

    There would have to be a drastic change in the leveling system so that experience would rather reflect a daily gain instead of any experience gains via just using your skills etc.

    Finally, the dialogue box is very important, basically my idea is being able to freely input whatever I want instead of choosing options. (pre-made @social poses can be added later)

    Character generation will be an issue as well, plus creating the administration... basically admins/moderators will have a Godmode like cheat/editor for things like using NPCs for plots, etc etc.

    Big issue will be making this whole world saved regularly every 10min on a server that would maintain characters and world itself\

    Being multiplayer this will be exceedingly complicated which is why I will be dubbing this the 'IF' project since there are many ifs involved that could easily scrape the project.

    Appreciate the help Jarekfall, if anyone would like in on the project, my email is Dyce77@live.com (also my MSN messenger), it will be a slow grueling process but it will be worth it![/quote]
  10. jarekfall

    jarekfall It Wandered In From the Wastes

    Dec 27, 2007
    Everything is OK. Version 1.5 is a version of the project. Version 1.38 is a version of the improved BOS.exe executable file.

    FT Improver does not decrease game's performance in any abnormal way. It however modifies in real time game's executable code in several cases but it is not more time consuming than calling a function or jumping to the different place in the code, in all these cases processor's cache memory must be refreshed. Also no other program is running in the background during gameplay, only your BOS process which is connected to dynamic link libraries such as Binkw32.dll, Mss32.dll, ddraw.dll, ... and among others FT Improver's library: Improver_shmem.dll. FT Improver process ends its own process after the process of program initialization. If you wish to learn more about FT Imprver program read the topic "How does FT Improver work?" from program's "Readme.htm" file.

    The game engine is not ideal thus on older PCs may occur a slow down in the game performance.

    I forgot to mention in the readme file in the most visible place, that users should first read the description of "BOS tools menu patch" and if they installed FT Improver program to a different directory than main Fallout Tactics directory then they must copy (not move) the "Improver_shmem.dll" library to their main FT directory or to system directory: System32.
  11. jarekfall

    jarekfall It Wandered In From the Wastes

    Dec 27, 2007
    FT Improver SDK

    I'm working now on FT Improver SDK. I will release it in hope I will encourage other programmers to Fallout Tactics modding. I'm trying to make the SDK friendly to the programmers as much as possible, in order to achieve this I'm completely rebuilding the FT Improver, so the amount of work needed to create a new patch will be reduced to the minimum. Thanks to this solution programmers can focus on work on their patches, without the need to create complicated application that will handle all processes related to patch data and code initialization and management. I will also create a tutorial that will help to use this SDK correctly.
  12. hadack

    hadack First time out of the vault

    Sep 6, 2006
    Hi jarekfall, two questions.
    Is it possible to make the changes permanent ie. patch the bos.exe and
    change the requirements of perks ?

  13. jarekfall

    jarekfall It Wandered In From the Wastes

    Dec 27, 2007
    Hi, hadack
    Yes, it is possible to change the requirements of perks and to rebuild the executable file, but rebuilding of executable file has several disadvantages in comparison to dynamic patching:
    - more work to create a patch,
    - lower possibilities, dynamic patching allows to do the things that would be never possible in static patching, for example, real-time executable code modification, which I use in one of my patches.
  14. ParmesanEagle

    ParmesanEagle First time out of the vault

    Aug 2, 2010
    I am busy with some of my own projects, but once you get that SDK out there, I will be sure to take a look at it.

    Recently I have familiarized myself with LUA. By recent I mean yesterday. :)

    Would LUA come in handy?
  15. jarekfall

    jarekfall It Wandered In From the Wastes

    Dec 27, 2007
    Certainly! :D You can use any C or C++ library for Windows system to create your patch, you can even force the game to use your libraries or you can use game's functions or methods in your patch. However to read the text files with data you should use my library, it will be very easy.
    As to the compiler, the use of MS Visual C++ 2008 is rather a must, you can use Express version or any other, because I provide SDK in statically linked libraries. I also linked my code statically to msvcrt9 library in the project because the library is present since Windows Vista. MS Visual C++ 2005 can be also used, but there is a risk, that incompatibility of msvcrt library can cause errors, I mean that for example, operator "new" from MSVC++2008 might not be compatible with operator "new" from MSVC++2005.
  16. gunner of shi

    gunner of shi It Wandered In From the Wastes

    Apr 29, 2008
    JKF,it's been long time to write to u,
    Now I can't see "cutin half Death" anymore, what's the problem do you think?
  17. jarekfall

    jarekfall It Wandered In From the Wastes

    Dec 27, 2007
    Hi, gunner!

    After many tests, I've discovered following requirements for the "DeathCutinhalf" sequence:
    1. Weapon must use ammo that does energy damages. Tested on "energy" and "electrical".
    2. Weapon must use "burst" spread arc. Tested on "burst" and "straight".
    3. Character must be hit by at least 4 bullets. The minimum quantity of used bullets per shot is 5. There is no chance to use 4 bullets and hit the target with all 4 bullets.

    Here is a list of things that doesn't matter:
    1. Amount of inflicted damages. Even if a target will have amount of hit points equal to 0.
    2. Animation name.
  18. gunner of shi

    gunner of shi It Wandered In From the Wastes

    Apr 29, 2008
    Hi , JKF, I mean I could see cutin half before with the blade weapon, but now in the game I cant cut anyone half, all deaths are "big hole".
  19. Corpse

    Corpse Mildly Dipped

    Apr 7, 2003
    I have only seen the cut-in-half animation happen with the ripper of all the blade weapons, and the power fist of unarmed class weapons. I can't remember if the cattle-prod triggered this animation but then again I changed cattle-prods to use a new ammo cell which does electric damage.

    It also happens on high level unarmed attacks, this is because the entities for the high level punches and kicks are set to do energy damage.

    Ideally you'd want lasers to default to the cut-in-half animation regardless of whether you use straight or burst spread, is there anyway to patch the game so a weapon can override the death animation set by the ammo?
  20. jarekfall

    jarekfall It Wandered In From the Wastes

    Dec 27, 2007
    Could you send me some weapon and ammo entities for testing?
    Does this problem concern ripper or power fist only or also a laser minigun?

    I know the location of the code that compares used by a weapon ammo type with expected ammo type and creates a name for a death sequence. However I need to find a way to get an access to weapon parameters, but as always it's only a matter of time.
    By the way when I was experimenting with this I've found the code that triggers the "FearTheReaper" perk that also cuts a character in half and executed it on a PC that doesn't have this perk. It think that its occurrence depends on time.