Warband Script Enhancer 2 (v1.1.2.1)

Users who are viewing this thread

I know this has been partially answered already, but do the performance warnings given when using native assets matter much? If so, has anyone shared a version of Native files with these already fixed?
Why are the map_flags giving me these warnings? Surely they aren't skinned anyway?
17:17:31 - PERFORMANCE WARNING: Mesh map_flag_f14 with material banners_f and shader tex_mul_color_mul_factor_alpha uses CPU skinning
mesh map_flag_f14 rigged
 
Hello, WSE2 seems to mess with the fixed point multiplier in certain circumstances, or it computes distances differently.
In TLD, I created a prop that fades out agents within a certain range: https://github.com/tldmod/tldmod/bl...stem/module_mission_templates_TLD_wb.py#L4447

Players reported agents fading out even outside the specified ranges, in conjunction with using WSE.

Here's a savegame of a siege. With WSE, it's reported that agents fade out when crossing the bridge. Without WSE, it works correctly (fadeout only underneath the bridge): https://drive.google.com/open?id=1g_h7VC-uOgvA7i7rat46lg9sgWjCO-Ef&usp=drive_fs
 
Hello. I don't think fixed point multiplier has anything to do with it.
It's a matter of different implementations of try_for_agents.
Warband directly iterates through all agents and compares distances - what you can do yourself with scripts.
WSE and WSE2 uses the mission grid for optimized iterate between agents already placed on the grid.
This is much better in terms of performance, but the problem is that the mission grid only have x and y coordinates, not z.
Therefore, in this case it works not only under the bridge, but also on it.
I will make the optimized behavior of try_for_agents optional, but for now, as a temporary solution, you can additionally compare distance using scripts, which will still be faster than searching through all the agents on the scene.
 
Hey K700, I was wondering if there is a possibility to allow limiting of module options. By that I mean not allowing the player to change the Combat AI, Combat Speed, Damage to Player and so on. I would like to set those to be values the player cant change in my mod (makes balancing the mod a lot more easy).
 
Hey K700, I was wondering if there is a possibility to allow limiting of module options. By that I mean not allowing the player to change the Combat AI, Combat Speed, Damage to Player and so on. I would like to set those to be values the player cant change in my mod (makes balancing the mod a lot more easy).
The best you can do is set the required options using scripts. Players can change any limiting settings through the config file.
 
Btw, are there any major changes to shader manipulation, I haven't delved into it before and am wondering if wse2 is any different from native concerning that
 
Hello. I don't think fixed point multiplier has anything to do with it.
It's a matter of different implementations of try_for_agents.
Warband directly iterates through all agents and compares distances - what you can do yourself with scripts.
WSE and WSE2 uses the mission grid for optimized iterate between agents already placed on the grid.
This is much better in terms of performance, but the problem is that the mission grid only have x and y coordinates, not z.
Therefore, in this case it works not only under the bridge, but also on it.
I will make the optimized behavior of try_for_agents optional, but for now, as a temporary solution, you can additionally compare distance using scripts, which will still be faster than searching through all the agents on the scene.
Thanks for the explanation. Yes, that's probably the reason.
Tbh, I don't know what to think of this. I can see the performance argument, but it might also break a bunch of mods that use try_for_agents in a similar way as we do, without them ever finding out the reason. (I got multiple reports about the bug, but only the last one mentioned they're using WSE...)
I guess I can adjust our code, but I recommend making it optional for modders, maybe via a module.ini entry.
 
I always got 'EXCEPTION_STACK_OVERFLOW (0xC00000FD, 0x00000000, 0x01206000)' when playing a mod, could you help me investigate this error?

This is script error. Used agent_deliver_damage_to_agent operation inside ti_on_agent_hit trigger, so this causes a loop and stack overflow error
Also pay attention to the warnings "Unmatched try_end"
 
This is script error. Used agent_deliver_damage_to_agent operation inside ti_on_agent_hit trigger, so this causes a loop and stack overflow error
Also pay attention to the warnings "Unmatched try_end"
Thanks. I do have many agent_deliver_damage_to_agent operations inside ti_on_agent_hit trigger because this is a fantasy mod and I used lots of such operations to simulate spells and enchantments. Shall I use a different operation, and which one do you suggest in this case?
 
The output of ti_on_agent_hit is damage so just modify the damage output in your trigger rather than setting a separate magic damage hit
 
I personally feel this problem is easier to solve if we can have a flag in wse2, and the flag determines whether agent_deliver_damage_to_agent shall trigger on_hit again.

In a fantasy mod this operation is critical because it is the best way to mimic enchanted weapon, just imagine an enemy is hit by a frost sword, and not only the vicitim of the weapon, but some foes nearby will also be damaged and frozen.

Is it possible to add such flag? This mod works fine in old WSE, so I guess this loop-trigger is a new feature in WSE2, and can be opt in and out?
 
I personally feel this problem is easier to solve if we can have a flag in wse2, and the flag determines whether agent_deliver_damage_to_agent shall trigger on_hit again.

In a fantasy mod this operation is critical because it is the best way to mimic enchanted weapon, just imagine an enemy is hit by a frost sword, and not only the vicitim of the weapon, but some foes nearby will also be damaged and frozen.

Is it possible to add such flag? This mod works fine in old WSE, so I guess this loop-trigger is a new feature in WSE2, and can be opt in and out?
It's a recursion, it should crash on every instance of the engine. Your loop that inflicts the damage checks for an item, then inflicts damage using that same item. So it's an endless loop.

Set up the effect damage to come from a secondary weapon, and have a flow control operation to prevent the effect damage.

Like, if we were to use a hammer that inflicts an earthquake AOE to nearby agents we could have a try block that looks for the hammer as the inflicting weapon, and have the damage loop inflict damage via a second effect damage item to prevent the recursive loop.
 
I removed all agent_deliver_damage_to_agent operations but my module now crashes with a different error
EXCEPTION_STACK_OVERFLOW (0xC00000FD, 0x00000000, 0x01406000)
What operation is wrong now? Thanks.
 
Back
Top Bottom