FT Improver - a way to improve Fallout Tactics

After testing I found the problem as you said, it's true need energy ammo blade, but I changed the 'ammo useage' to 0, so I can't see cutin-half anymore.

Thanks a lot, now I go on working.
 
If you need a blade that does energy damages and doesn't use any ammo take a look at "punchVersion7.ent" entity.
 
Hey this is related to Sprite_Creator, how do I access the File, Image, Options , Palette, and Help links at the top via Hotkey?

I am running WINE and the rest of your UI i believe will be responsive if I can just have hotkeys to open or create a new project.

Another thing, can ZARS be opened directly using Sprite Creator?

Last thing:
I would like to request a feature that can export all layers for a selected image so that it gives me a complete sprite. For example the deathclaw.spr and dog.spr gives me pieces of their bodies.

And is there a help file that describes how to do a mass export of the frames in these sprite files? it is pain in the ass to select each frame for every direction, for every animation.
 
jarekfall said:
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.

That's great news!

BTW, I have managed to get firearms working with more than two attack modes by enabling the 'AttackOne', 'Two', 'Three'...etc. animations on all character sprites. I can't say it was an easy task so I will suggest a 'duplicate attack sequence' function for the next release of your sprite creator. Making new sequences can be time consuming and tedious, specially when you have so many new animations and sprites to work with.

I tried adding new attack sequences following from AttackFive, Six, etc. but found that while these worked, their corresponding sound would not, the same happens if you add a h2h or melee attack but with throw, the sound works fine. I have made a throw animation for rocket launchers which duplicates the fire animation and overlay. Works well to make disposable launchers.
 
I'm sorry you've had to wait for my reply. I was very busy with work on my next patch for FT.

Currently I work on a patch for "GOTO MISSION" action. You already know that this action is bugged.

I've almost fixed this bug. Currently I know the reason of this bug and how it can be fixed, I'm able to stop this bug. But I still have to find the place where the code writes incorrect value.

The reason of this bug is a field in trigger, (not in the GOTO MISSION action) that stores a value which tells the game whether all trigger conditions are true. By default when you create a trigger, it has this field set to 0, if you would set this field to 1, then condition checking is skipped and all actions from the trigger are executed.

The most important clue was that the bug is saved to a file with saved game state. When you use GOTO MISSION and save the game for the first time this field is set to 0 which is OK. When you use GOTO MISSION the second time to go to the same map the game forgets to zero this field and the trigger is executed without condition checking.

When I was working on this patch I also discovered that when you start the first campaign mission and leave it with "END MISSION WORLD MAP" or "GOTO MISSION" actions the game doesn't save any item put on the ground. But when you will return and put something on the ground and leave the map for the next time then is saves all items on the ground. Currently the only solution I have is to have empty starting map that instantly sends you to the next map.

QuantitizingQuibbleQuack said:
Hey this is related to Sprite_Creator, how do I access the File, Image, Options , Palette, and Help links at the top via Hotkey?
It's not possible. It's not implemented because of lack of time. To automate your work under Windows system you can use "AutoHotkey" utility which is available for free.

QuantitizingQuibbleQuack said:
I am running WINE and the rest of your UI i believe will be responsive if I can just have hotkeys to open or create a new project.
No, it certainly won't work. Only dialog windows let you to use TAB key and other keys because they derive behaviour from different window class.

QuantitizingQuibbleQuack said:
Another thing, can ZARS be opened directly using Sprite Creator?
It's a sprite editor, not ZAR file editor. As a source of images you can use only bitmaps.

QuantitizingQuibbleQuack said:
I would like to request a feature that can export all layers for a selected image so that it gives me a complete sprite. For example the deathclaw.spr and dog.spr gives me pieces of their bodies.
OK, added it to the list of requests.

QuantitizingQuibbleQuack said:
And is there a help file that describes how to do a mass export of the frames in these sprite files? it is pain in the ass to select each frame for every direction, for every animation.
Mass export is not implemented because of lack of time. Only mass import is implemented which is more important for creating new sprites by using 3D modelling tools. There was almost not interest of modders in creating new sprites so I started work on my second project: FT Improver. I was also very busy with life for about 2 years and thus haven't had a spare time.

Corpse said:
I can't say it was an easy task so I will suggest a 'duplicate attack sequence' function for the next release of your sprite creator. Making new sequences can be time consuming and tedious, specially when you have so many new animations and sprites to work with.
OK, added it to the list of requests.

Corpse said:
I tried adding new attack sequences following from AttackFive, Six, etc. but found that while these worked, their corresponding sound would not, the same happens if you add a h2h or melee attack.
If you are creating weapon entities that have specified weapon type parameter other than "None" then you can have both attack sounds and weapon sounds in any case, regardless of used animation name.

You should always create new weapon sound types. Existing weapon sound types have hardcoded meaning thus introduce additional limitation.

For example if you want to have new attack sounds for the new attack sequences for the knife weapon type change its weapon sound type from "knife" to a new type, for example "knife2". Notice that this also changes the convention of attack sound file names. Original "knife" sound type uses following sound files: knifestab1.wav, knifestab2.wav, knifestab3.wav when executing sequence with name: StandAttackKnifeSlash. As you see, animation names are not identical.

After weapon sound type change to "knife2" and attack sequence name change to "StanAttackKnifeANIMATIONNAME" convention of sound file names is different: knife2ANIMATIONNAME1.wav, knife2ANIMATIONNAME2.wav, knife2ANIMATIONNAME3.wav. For the "Slash" animation name sound file names are following: knife2Slash1.wav, knife2Slash2.wav, knife2Slash3.wav. This convention of names is identical for all firearms but it does not depend on weapon type, but weapon sound type.

FT has annoying limitation, my weapon always used sound file name ended with number 2 also in case of original, unmodified knife entity. Of course this can be easily patched.
Also avoid using hardcoded names for animation names and other purposes. You wrote that you used the following animation name: AttackFive. You should not use the "Attack" word because it is reserved for other purpose.
 
I apologize if this has previously been brought up in the Tactics thread – but will your patch remove the shitty random encounters that are a plight on this game. I see no harm in just hopping in the car and bang, you’re at your destination (I think that was the original intention, until Roshambo criticized the idea). :roll:
 
I'm not sure if I understand the intention. Would you like to permanently remove all random encounters from existing BOS campaign? This can be done without patching FT executable file. Simply, edit campaign data stored in campaign.txt file, clear "forces" section, open campaign editor and import "forces" section by using "Import Random" command. That's all. You don't have to start a new campaign, because this data is not stored in file with saved game state.

With help of GOTOMISSION action it will be possible to create virtual map made up of connected by the GOTOMISSION action submaps. This would give a player a lot of fun. You can even have 8 directions, with exit grids on the edges and corners of a map. So the virtual map would look like grids on a sheet of paper where player can travel in eight directions. Player would travel by a car or without a car, which would be more dangerous because of raider ambushes in the wastelands. The use of GOTOMISSION action can be mixed with the use of world map. For example when player has to travel very far outside of the virtual map created by GOTOMISSION jumps. This way each exit grid can also be used to move you to random maps by using triggers or I could create a patch that would generate random numbers at the end of a map file path. Also special encounters can be generated in this way.
 
...Simply, edit campaign data stored in campaign.txt file... You don't have to start a new campaign, because this data is not stored in file with saved game state.

I'm not quite sure about it. Amongst others there are "Reavers" encounters. After some event (completing "Newton" mission), you will not found "reaver" encounters anymore. Where this state is saved, if not in save game?

Btw, i see no reason in removing all RE in default FT campaign. I'd rather propose reducing enc-rate to something like 10-15% of normal. I hate those nasty scorpions, stopping me each time i drive through the Wastes on my APC...
Removing default RE can be good for custom campaings with small world map.

Currently the only solution I have is to have empty starting map that instantly sends you to the next map.

Well, another (not best) solution is non-combat starting mission, which is hidden on world map. You'll have no reason (and chance) to return here, so... On other side, it can be placed near first bunker, or you can send hero right to the bunker with mentioned trigger.
Pros: you can start with your only character and then choose mates in "bunker", if you don't like persons like Stitch in your team; this mission can be part of story-telling, if someone wants to make FT campaign somewhat better.
Cons: can be frustrating and boring for those, who eagerly wait to smash enemies heads right now. :wink:
 
jarekfall said:
When I was working on this patch I also discovered that when you start the first campaign mission and leave it with "END MISSION WORLD MAP" or "GOTO MISSION" actions the game doesn't save any item put on the ground. But when you will return and put something on the ground and leave the map for the next time then is saves all items on the ground. Currently the only solution I have is to have empty starting map that instantly sends you to the next map.
Is this using the default campaign bos file or with a new one? There's a bug where if you create a new campaign file from scratch then anything on the ground and any recruit (in the first mission) will be duplicated the first time you return to the starting map. This was got around by editing the default cam file and importing any new image, missions and encounters etc. Perhaps related?

TwoEyedYum said:
I'm not quite sure about it. Amongst others there are "Reavers" encounters. After some event (completing "Newton" mission), you will not found "reaver" encounters anymore. Where this state is saved, if not in save game?
Random encounters can be turned on or off via triggers just the special encounters would need to be removed from the cam file. I think the random encounter rate in the default cam file is probably corrupted, (something made worse when modders import new encounters over the default list) I remember changing the position of a location and then needing to change the position of the encounters around it which had the effect of reducing the encounter rate considerably.
 
TwoEyedYum said:
I'm not quite sure about it. Amongst others there are "Reavers" encounters. After some event (completing "Newton" mission), you will not found "reaver" encounters anymore. Where this state is saved, if not in save game?
Random encounter appearance is controlled via triggers. If a game trigger that enables random encounters won't find random encounter definition in the bos.cam file it simply won't do anything.

requiem_for_a_starfury said:
Is this using the default campaign bos file or with a new one?
Yes, I created a new campaign file. I've checked your information. I replaced original mission01.mis with my own mission file and started original campaign and my mission worked correctly. That's true, original campaign file stores additional information and when we use original campaign file this bug is not present.

I have discovered two very interesting fields in trigger data. Both fields store values as a floating-point numbers. This fields can be set for each trigger separately.

Absolute time:
This field stores an absolute time which elapsed since campaign start to the time when the trigger conditions have been checked or when the actions have been executed. Time is expressed in real seconds, milliseconds are stored after the decimal point. Timer counts in real milliseconds. Theoretical precision is 1ms but in fact it can be smaller 10ms to 100ms and depends on game performance.
Thanks to this field I have an access to game's absolute timer counting in real milliseconds. This is rather not the timer that controls virtual game time. I noticed this by leaving map and entering the word map and returning to the starting map and the saved game information shows that 15 minutes have passed while in real time it was just several seconds.

I noticed that the campaign starting mission bug also resets this field to 0 only once. This and that what I mentioned in my previous post indicate that the first mission state is lost only once when you leave the map because when you enter the map for the second time it doesn't load its previous state but again loads mission map from file with extension "map" instead of file with extension "sav".

Time interval:
This field specifies time interval for current trigger at which the trigger is executed. Time interval is expressed in real seconds, milliseconds are stored after the decimal point. By default, time interval is set to 1 second for all triggers by trigger editor.

Here are some new fantastic possibilities that this field gives:
1. Each trigger can be executed at different time intervals.
2. A trigger can be set to execute only once per campaign start by setting the value of this field to large value such 1314000.0 which is exactly a 1 year interval of real time. Later I could add a trigger which would reset the field storing the absolute time in specified trigger on each mission start, so time interval field could be used to execute a trigger only once per mission start.
 
Wow Jarek, this is great news the GOTOMISSION bug was always one of my biggest dissappointments. But now if your work is successful you will give us a great story telling tool to work with, I can think of endless possibilities for A properly functioning GOTOMISSION trigger. And the news about time trigger possibilites is also very exciting.

Random encounters can be turned on or off via triggers just the special encounters would need to be removed from the cam file. I think the random encounter rate in the default cam file is probably corrupted, (something made worse when modders import new encounters over the default list) I remember changing the position of a location and then needing to change the position of the encounters around it which had the effect of reducing the encounter rate considerably.

In my mod, I placed a switch which allows the player to cheat/turn off the Random encounters if he wants to. I placed the switch in an unaccessable place, but if the player want to use the cheat, he'll have use the editor and edit the Alpha Bunker and slide the switch entity into a place where it can be used. Also I scaled back the chance percentages of the various REs. that being said however I greatly upped the amount of enemies that will appear per encounter.



Well, another (not best) solution is non-combat starting mission, which is hidden on world map. You'll have no reason (and chance) to return here, so... On other side, it can be placed near first bunker, or you can send hero right to the bunker with mentioned trigger.

My mod also features exactly this.
 
Jarek I greatly appreciate all your work to make FOT a better game, we all know they coulda had a real hit here (selling 5Million copies) if they didn't just rush it out the door all half ass complete like they did. Basically they shoulda made FOT capable of doing everything that FO2 could plus all the new features that FOT brings to the table. Just think of how great this game coulda been if they woulda gave us functioning squaddie tagnames (that didn't get stripped). the ability for a squad member to turn hostile would be great for story telling, just think of how many Dawn of the dead or infected scenarios or even bitter inter squad rivalries that cause party members to turn hostile. woulda been awesome.

Jarek if I could ask for you to consider another thing to add to your list of things to consider (haha). How about the removal of the level cap. Level 50 characters are cool and all, but we all love unlimited levels way more.

anyways keep up the great work.
 
You are absolutely right. Fallout Tactics could be the expected Fallout 3 if they wouldn't rush to release Tactics. My only goal in this tough work on FT patching is to help you, the mod makers to create interesting, playable mods by adding new possibilities in FT. I hope to have a great fun playing new mods. I also greatly appreciate your work :clap: and encourage you to continue the work on your mod. I wish I had in my project team several programmers. I could focus on FT hacking while programmers could work on GUIs and they could make use of FT programming interface which I'm reconstructing.

I will try to fix this problem with tag names stripping and to remove 50 level limitation.
 
For the first time in a year or two I've been thinking about Tactics, so I wander back here, and see what looks like amazing stuff being done with the game. Good work Jarekfall!

Reading through this whole thread for the first time today, I'm really impressed by all the things the work and investigation have touched on. The item modding is very useful, but it seems like the trigger and tag name improvements, along with potentially adding dialogue trees, will be even more important.

I had a thought about one more area that might be useful, but I throw it out to the FoT modder grognards. For making a custom campaign, isn't there an obstacle to playtesting, due to the fact that a number of important decisions have to be made when the .cam file is compiled? So that to make a change, the campaign has to be started over from the beginning? Would altering things derived from the .cam file make a useful feature in an editor?

That might be a savegame editor, but it seems like the knowledge gained from Jarekfall's work could be useful in this regard. I'm not really a modder, more of a mod-forum lurker, so this could be a pretty useless idea.
 
There's only a couple of things set in stone in the campaign file that would need a new game. It shouldn't take a competant modder more than five minutes to add a box of goodies and a trigger to give experience, in the starting map. And then another trigger to skip to where they want to test things, further in the campaign.
 
jarekfall said:
Here are some new fantastic possibilities that this field gives:
1. Each trigger can be executed at different time intervals.
2. A trigger can be set to execute only once per campaign start by setting the value of this field to large value such 1314000.0 which is exactly a 1 year interval of real time. Later I could add a trigger which would reset the field storing the absolute time in specified trigger on each mission start, so time interval field could be used to execute a trigger only once per mission start.

This is awesome, so I guess this means we can make triggers that run schedules for certain NPCs in towns. :D

BTW, is there any way to fix the special encounter related world map crashes? Or alternatively, can they be disabled once they have all been visited?
 
Thank you for the recognition of my work.

Vault Maker said:
I had a thought about one more area that might be useful...
Campaign data, when it is saved in file with extension "sav" stores mainly global data common to all maps and related to campaign, such as the data of player's team (data of actor entities), probably current absolute virtual campaign time, but no map or trigger data. requiem_for_a_starfury gave you a good advice. I think that map data saved in file containing game state can be edited in level editor but I didn't test it and I think that level editor or trigger editor won't give you the access to all data stored in map data, for example to the data of trigger actions which are in "started" state.

Corpse said:
This is awesome, so I guess this means we can make triggers that run schedules for certain NPCs in towns.:D
Exactly.

Corpse said:
BTW, is there any way to fix the special encounter related world map crashes? Or alternatively, can they be disabled once they have all been visited?
If you would set one definition of special encounter in campaign data, that points to mission file which does not exist then the game does not crash but a window with a message shows up and the game moves you to the game's main menu so you won't be able to save the game state. I could use this information to create a patch and bypass the code that generates this bug.

It will be hard to find the real cause of this bug, the amount of work to fix this bug should be similar to the amount of work on GOTOMISSION patch, thus I don't plan currently to work on special encounter bug and thus it can be bypassed in the other way. I can suggest a solution to bypass this bug but the solution requires from modder to create at least 4*k-3 special encounters for each of k fields generating special encounters and the size of circles must be set to 20 (default size for special encounters).



I have for you another interesting news, I spent a lot of time to understand GOTOMISSION bug. I could patch the GOTOMISSION bug and forget about it, but I want to understand the cause of this bug. Triggers and conditions are quite simple to understand, but actions are more mysterious. I analyzed the ENDMISSION action after I had analyzed the GOTOMISSION action and here is what I learnt:

Each action can be in on of two states: started and finished. Conditions don't have any states.
By default starting state of all actions is finished, trigger editor creates actions only in this state. When ENDMISSION action is executed (for example when you are in world map) it is set to "started" state and all necessary parameters are stored in action's definition in trigger's data in "SAV" file and also the trigger has one field which stores general information about state of all actions. I've found the meaning of trigger's field which I suspected to cause the bug and which I described in my earlier post. This field is used to indicate that a trigger has at least one action which is not finished, so the trigger has the highest priority to be executed next time without waiting for time interval to elapse.
When you return to the map the trigger will be executed instantly and ENDMISSION action will be executed for the second time and this time it will be finished and reset to its default state which will also reset the field in trigger's data and of course you won't be moved to world map.
Almost all actions don't do anything when they are finished, among others GOTOMISSION and ENDMISSION, but there are several actions that must execute its second effect or release some resources, for example PLAYWAV action.

GOTOMISSION action, when it's executed and in "started" state saves mission state instantly, before action's fields will be updated by methods processing the trigger, so it saves to a file previous state ("finished" state) of GOTOMISSION action but it should save the action later and in "started" state, ENDMISSION does this correctly, it creates an event object which will occur after some period of time, this event saves the mission state. Because saving of mission state is delayed action's data are updated correctly and then saved in a file. GOTOMISSION bug misleads the trigger which has a different setting in its data. When the trigger is executed for the second time (time to finish the action) action is already finished which causes a bug, because it starts again from "finished" state to "started" state.

I think that GOTOMISSION is bugged because it is not compatible with current methods processing triggers and actions. If I remember right, the world map function has been added to the game later, so GOTOMISSION action could be the first action before ENDMISSION action. Programmers could not notice the bug because they used this action only to jump to the next map and because the bug is saved only in previous maps. I hope I haven't bored you.

I have several ways to fix the GOTOMISSION bug. I will try to use the hardest way, to rewrite the GOTOMISSION action so that it would work similar to ENDMISSION action.

Update: 2010.09.17
Currently I'm able to create time event objects and I'm able to add them to time event list which is processed by event manager. It means that I'm able to fix the GOTOMISSION action bug in the way I've planned, I can fix it so that it will work exactly as ENDMISSION action works. I could fix this bug in several other ways but I wanted to make use of time events as ENDMISSION does.
I've made a test and finished it successfully, so now I have to get back to work on FT Improver.

The meaning of the field that stores an absolute game time in trigger data is different. It stores the next and the earliest time at which trigger can be executed. Each time when all actions from the trigger will be executed and finished this field is increased by time interval specified for this trigger.
Also each action has the same field and also different and hardcoded time interval (3s, 1s, 0s). When an action is finished its field storing the next time at which the action can be executed is increased by time interval specified for this action. But this function is rather not used because when all actions from current trigger are in "finished" state this field is set to 0.



I have discovered quite serious bug in the newest campaign editor. It does not import random forces definitions correctly, thus if you worked with older campaign editor don't use newest campaign editor until I will fix this bug (it should be easy). If you have saved campaign file with the newest campaign editor you won't be able to load this campaign file in older campaign editor and you will have to wait until I will fix the bug. I'm surprised that nobody informed me about this bug.
 
I think I recall that Random Encounters had an odd behavior, or that some of the values in the table had debatable effects in the campaign. Maybe that's your bug. Can you describe it a bit more?

I don't know if this is helpful, but I tried to hex edit my way to enlightenment about the .cam file when I was working on Worldmap movement rates, and I remember there was something about the encounter table that I could not make sense of. I think that parts of it changed from the .txt file to the completed .cam in a way that made no sense. Since I was approaching the movement rate thing by subtractive method (picking through the whole .cam file until there was nothing but the .cam header and the bitmap), I decided to ignore encounters at some point.
 
Just got some more questions... Is there any way to manipulate game time to implement a time advance trigger?

How about game start date, any plans to add a patch that lets you change it?

And in regards to your suggestion to fix the special encounters; if you get the missing encounter before any others, would it skip to the next encounter or would it keep trying to execute?

Just thinking if the second is true this would stop your chance of getting any further encounters.
 
Back
Top