Fallout 2 mod FO2 Engine Tweaks (Sfall)

Hey!
Just some observation from my current game;
When i have the speed tweak on, the encounters on the world map get crazy, to the point i had about 30 "wild brahmin" encounters one after another in just 1 map square.
Turning the speed tweak off seems to fix the problem, the encounters are finnaly different and dont occur just 1 after another.

Is there anyway that the speed tweak can be turned off by default on the world map?
 
1) Encounter fix:

http://www.nma-fallout.com/forum/viewtopic.php?p=463164#463164

(Don't forget remove Horrigan fix from code - ForceEncounter4...)

2) Dialog fix (button "0" end the dialog - bug)

offset: 0x36C48 (+40fc00)
Old: 30
New: 31

3) M00518f78 -
if 0 - active left hand, if 1 - right
This is my Active Hand Mod for Fallout 2 Engine. You may add new opcode (new script function - "active_hand")

P.S. My real nick is Ray (TeamX forum).
 
Alray said:
2) Dialog fix (button "0" end the dialog - bug)

offset: 0x36C48 (+40fc00)
Old: 30
New: 31
I take it this removes the ability to press 0 and exit dialogue? Quite useful.

Alray said:
3) M00518f78 -
if 0 - active left hand, if 1 - right
This is my Active Hand Mod for Fallout 2 Engine. You may add new opcode (new script function - "active_hand")

P.S. My real nick is Ray (TeamX forum).
I take it this shows "active" with whatever hand is displaying on the screen? I know that there is already the ability to see if the person has something in their hands.
 
I take it this removes the ability to press 0 and exit dialogue?

Yes.

I take it this shows "active" with whatever hand is displaying on the screen? I know that there is already the ability to see if the person has something in their hands.

You can't determine which hand is active when one or both of them are empty. With this addon anybody can write damage for weapon.

Sorry for my bad English :)
 
@Timeslip

Is there anyway you could identify where the engine reads .pro file information?

What I am aiming for is changing the data the engine retrieves from the .pro before the engine uses it in any calculation, thus being able to affect change without modifying the .pro files. Why? Well there are complications with how the map files for the game store information, so this would workaround that difficulty.

The goal is to write a mod that will bring balance into the game with regards to damage. I cannot do this currently with what is exposed/understood in the memory offset block I used for my Ammo Damage Mod.

Also you have my never ending thanks for making it possible for me to achieve the little I was able to with my current mod.
 
There is one weapon effect / damage I would really like modified.

As far as I can tell the only weapons that can really knock people back is those based on the sledge hamer animation FRMs. I would like the ability to add the knock back effect to any other gun or attack.

From my my testing it seems that the engine checks to see if the weapon attacking uses either FF or FG attack suffixes on the FRMs ir so then the weapon will knock the critter back. If a script option could be added to allow knock backs to be scripted for other weapons it would be great.

For example we could then use the new perk feature to add the ability to 'throw' people in unarmed combat. Also grenades explosions could throw people around. I was at one stage making a pre war riot/crowd control gun that delt small amounts of damage but knocked everyone back (would be usefull for clearing out critters when swarmed).

Would be really nice :)
 
Alray said:
1) Encounter fix:
Is that still needed now that I've made the map travel speed independent of processor speed?

Alray said:
2) Dialog fix (button "0" end the dialog - bug)
I'll include it, but I'm not sure how advisable that one is given that 0 is occasionally the only was to escape if you get caught in a dialogue loop. I'll leave it turned off by default.

Alray said:
3) M00518f78 -
if 0 - active left hand, if 1 - right
This is my Active Hand Mod for Fallout 2 Engine. You may add new opcode (new script function - "active_hand")
Good one. I'll include get_active_hand and toggle_active_hand functions in 1.18. :)

@Wild_qwerty
I know where the knock back code is, but I'm not sure how much I can change it. I can probably make the players weapon always or never knock back, at least.

Edit: ok, I can change the knockback effect on any _critter_, (not individual weapons yet, but hopefully I'll get them working before 1.18,) The way knock back works is that the base damage (I think. It might be something else.) is divided by a certain amount to calculate the number of squares you move, and that amount is much less for the sledgehammer than most other weapons. (5 instead of 10.) I can either change that amount, or let you set a pre-set distance that everyone will get pushed back, regardless of damage.
 
Dunno if it fits in this tweaks tread, anyways
Sometimes a critical hit knocks a enemy down for several turns and if I remember correctly you can even turn off the combat mode,(If there are no other enemies around) Now comes the part I don't like much. When they awake they will continue the fight or run away in combat mode. I rather would see them beg for mercy, have no memories what happend etc. The same goes for blinding enemies.
 
Oracle said:
Dunno if it fits in this tweaks tread, anyways
Sometimes a critical hit knocks a enemy down for several turns and if I remember correctly you can even turn off the combat mode,(If there are no other enemies around) Now comes the part I don't like much. When they awake they will continue the fight or run away in combat mode. I rather would see them beg for mercy, have no memories what happend etc. The same goes for blinding enemies.
That's not really anything to do with the engine. How an npc behaves after combat is a part of its script.
 
And what about a FO Headshot is this possible when you shoot at head then a csript or timeslip's engine say to use a new death animation or im just dreaming?
 
Timeslip said:
Oracle said:
Dunno if it fits in this tweaks tread, anyways
Sometimes a critical hit knocks a enemy down for several turns and if I remember correctly you can even turn off the combat mode,(If there are no other enemies around) Now comes the part I don't like much. When they awake they will continue the fight or run away in combat mode. I rather would see them beg for mercy, have no memories what happend etc. The same goes for blinding enemies.
That's not really anything to do with the engine. How an npc behaves after combat is a part of its script.

aww man...and editing all NPC scrips is an no no, too bad.
Thanks for the reply, Timeslip. Your doing a great job!

Mr.Wolna said:
And what about a FO Headshot is this possible when you shoot at head then a csript or timeslip's engine say to use a new death animation or im just dreaming?

New animations is a pain in the arse. Read other treads about it any you will understand... And that has nothing to do with timeslip's tweaks as well
 
But timeslip can make new script option, is that rigt?
I think some kind of this

when hit head then begin anime(new one) , you know.

Sorry but i can't explain very well cause my english is terrible!
 
Mr.Wolna said:
But timeslip can make new script option, is that rigt?
I think some kind of this

when hit head then begin anime(new one) , you know.

Sorry but i can't explain very well cause my english is terrible!

Still don't think it has something to do with the tweaks. If you want new death animation (for example the head) you first need to make new animations. Your better off in the FO 2 grafics tread with these questions.
 
1.18 is up.

v1.18
>Added an option to remove the ability to escape dialogue by hitting 0. (From Ray, from www.teamx.ru)
>Added new script functions: get_active_hand, toggle_active_hand, set_weapon_knockback, set_target_knockback, set_attacker_knockback, remove_weapon_knockback, remove_target_knockback, remove_attacker_knockback

@ Wild_qwerty
A quick description of the knockback functions:
0x8195 - set_weapon_knockback(WeaponPtr, int type, float value)
0x8196 - set_target_knockback(CritterPtr, int type, float value)
0x8197 - set_attacker_knockback(CritterPtr, int type, float value)
0x8198 - remove_weapon_knockback(WeaponPtr)
0x8199 - remove_target_knockback(CritterPtr)
0x819a - remove_attacker_knockback(CritterPtr)

The 'type' value in the weapon knockback functions can be 0 or 1. If 0, the value becomes an absolute distance that targets will be knocked back. If 1, the value is multiplied by the distance they would normally have been knocked back. Weapon knockback modifiers are applied in the order weapon -> attacker -> target, so a x2 weapon weilded by an abs 6 attacker hitting a /2 target will knock the target back 3 squares. The knockback functions will not override the stonewall perk or knockdowns resulting from criticals. knockback values set on weapons or critters are not saved, and must be reset each time the player reloads.
Will that do for what you wanted? You can modify unarmed combat by using 0 instead of a weapon pointer, but be warned that you'll effect _all_ unarmed users. Probably best to check if the player is holding something and user set_attacker_knockback instead.
 
To make a an animation isnt a problem but make it worl Ingame.
Because its hardcorded in the EXE and Timeslip make hardcord thinks unhardcoded yo u know.

@Timeslip
Will this work with my idea?

0x8196 - set_target_knockback(CritterPtr, int type, float value)

???
 
Is that still needed now that I've made the map travel speed independent of processor speed?

I wrote encounter fix special for sfall 1.17
I downloded sfall 1.18, my results:

(clear fallout2.exe v.1.02d)
Athlon 2500+


WorldMapFPS = 20 (without encounter fix)
Normal speed. I made 7 tests - I try to pass 9 square's on worldmap. Each test I had 0-1 encounters. I think it's too small value.

With encounter fix (for 1.17) I had 1-3 encounter. Look at main.cpp and you understand what I made.

I ask (test) enc. fix on TeamX forum and Fallout.ru forum - they think that 1-3 enc. is a normal encounters rate...

With my fix encounters don't depend from CPU speed :)

but I'm not sure how advisable that one is given that 0 is occasionally the only was to escape if you get caught in a dialogue loop

Button 0 in dialogs is a cheat :) Look at dialog loop and you understand - 0 button is a bug (also look at debug.log).
 
So in order to script the knock back do I just attach the script to the weapon I want to knock people back?
 
Alray said:
WorldMapFPS = 20 (without encounter fix)
Normal speed. I made 7 tests - I try to pass 9 square's on worldmap. Each test I had 0-1 encounters. I think it's too small value.

With encounter fix (for 1.17) I had 1-3 encounter. Look at main.cpp and you understand what I made.

I ask (test) enc. fix on TeamX forum and Fallout.ru forum - they think that 1-3 enc. is a normal encounters rate...

With my fix encounters don't depend from CPU speed :)
From what you said in the other thread, there's a set probability each frame of an encounter occurring, as long as a set amount of real time has passed since the last encounter. If that's true, then as long as the speed of travel across the world map doesn't depend on CPU speed, then neither should the encounter rate... :?

1 encounter per 9 squares does seem low though...

Alray said:
Button 0 in dialogs is a cheat :) Look at dialog loop and you understand - 0 button is a bug (also look at debug.log).
It may be a bug, but it's still useful. :P If a dialogue bug traps you in a loop, that's the only way to escape. Without it you'd have to quit fallout and loose whatever progress you hadn't saved.

Wild_qwerty said:
So in order to script the knock back do I just attach the script to the weapon I want to knock people back?
If you want. Adding this to the weapons start procedure should give you a weapon with 3 times the knockback distance as a normal weapon:
Code:
if (game_loaded) then begin
	set_weapon_knockback(self_obj, 1, 3.0);
end

Using something like 'set_attacker_knockback(dude_obj, 1, 2);' in a global script works too.
 
Back
Top