Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

New Premium Module: Tyrants of the Moonsea! Read More
Attention, new and old users! Please read the new rules of conduct for the forums, and we hope you enjoy your stay!

SPLSTATE.ids and OpCode 326 help?

13»

Comments

  • Avenger_teambgAvenger_teambg Member, Developer Posts: 5,862
    edited May 2018
    Doesn't 13*128 protect against freezing death, in 7eyes?

    Direct script triggers for specific bits of stats, yeah, there is no way to do this at the moment.
    You might want to do an applyspell (which is not a blocking action). This spell has 324/318/326 (something with splprot). This spell then can set a variable which you can access from scripting.

    JuliusBorisov
  • subtledoctorsubtledoctor Member Posts: 11,460
    Wait so this change doesn't only affect opcode 335? This affects scripts too?

    So basically you guys decided to completely invalidate everything established here?

    So that means two of my mods will be rendered non-functional by the 2.5 update, and it will be utterly impossible to fix them. Wonderful.

    Did you guys think of maybe adding some kind of function or facility to do this kind of thing, to replace the functionality you are removing? There have been feature requests logged in redmine relating to this stuff for two years now.

    Or if the Android platform is so flaky that is can't handle reading information that other platforms have no problem with, what about just applying this restriction to the Android version of the game?

    God damn it.

  • kjeronkjeron Member Posts: 2,131
    edited May 2018

    Doesn't 13*128 protect against freezing death, in 7eyes?

    Your right, wrong issue.
    It was Gore-OFF and "Disable Permanent Death" that interfered. Using spellstates 272/273 could bypass some of the issues (as they were only ever active while the creature was a statue), but still not all of them. So it was never ideal.

  • Avenger_teambgAvenger_teambg Member, Developer Posts: 5,862

    Wait so this change doesn't only affect opcode 335? This affects scripts too?

    So basically you guys decided to completely invalidate everything established here?

    So that means two of my mods will be rendered non-functional by the 2.5 update, and it will be utterly impossible to fix them. Wonderful.

    Did you guys think of maybe adding some kind of function or facility to do this kind of thing, to replace the functionality you are removing? There have been feature requests logged in redmine relating to this stuff for two years now.

    Or if the Android platform is so flaky that is can't handle reading information that other platforms have no problem with, what about just applying this restriction to the Android version of the game?

    God damn it.

    What was established there was never official. I wrote in several notes earlier, that it isn't safe. Reading into random fields by index overflow is never a 'functionality', it is a bug. It was working only because in release mode assertions are disabled and i (of course) tested this only in debug mode. This is the same as using negative scripting states in vanilla IE (which was also removed a few years ago). Anytime we add a new field into the creature, you would have to recalculate those offsets, so it was never compatible with anything either. "Utterly impossible" is a big statement, though.

    JuliusBorisov
  • subtledoctorsubtledoctor Member Posts: 11,460
    edited May 2018
    I don't understand this stuff at a programming level, I just know that a bunch of states seemed to be set automatically in connection with proficiencies by opcode 233 effects. Or maybe the states are a reflection of those proficiencies in some way. But there never seemed to be any problem with the way this worked: proficiencies seem to work fine in v2.3. Reading the boolean values of the associated states seemed to be a fairly harmless extension of how to interact with something already there.

    The issue of opcode 335 not working with these states is a shame, because you can do some neat things with it. But not the end of the world, and I've already gotten around it. The bigger issues are:

    1) Generally, the lack of states and stats available to modders. We have all of 256 spellstates to use, half of which are already claimed. That leaves an extremely finite resource. Being able to add stats into the mix for that purpose makes for some really nice breathing room. In general, reducing or removing what is already a scarce resource for modders just seems... I don't know, bad. Bad for modding, anyway.

    2) My specific concern is a mod already in existence, which uses dialogue to arbitrarily extend the flexibility of how and when characters can gain proficiencies. This has been in the wild for several months:


    CheckStat doesn't cut it here, because any mod that uses proficiencies in any other way will totally ruin this one. And, proficiencies being some of those scarce resources I mentioned, people should be using them in other ways. If there was a CheckStatBit trigger the associated spellstates wouldn't be necessary.

    While I'm at it, why is there a spell effect opcode to write local variables, but not to read them (and of course, conditionally act on them)? Then all this mucking about with states would be totally unnecessary.

    Dammit, now I think there may actually be a way to make the proficiency dialogue work. Maybe. But who knows if or when I'll have the time to try it...

    Post edited by subtledoctor on
  • kjeronkjeron Member Posts: 2,131
    edited May 2018

    2) My specific concern is a mod already in existence, which uses dialogue to arbitrarily extend the flexibility of how and when characters can gain proficiencies. This has been in the wild for several months:

    CheckStat doesn't cut it here, because any mod that uses proficiencies in any other way will totally ruin this one. And, proficiencies being some of those scarce resources I mentioned, people should be using them in other ways. If there was a CheckStatBit trigger the associated spellstates wouldn't be necessary.

    They did add 3 new script triggers to check effective Proficiency level, which you should be able to substitute here. It appears to correctly detect only the active proficiency value (first 3 bits), ignoring the inactive/original class bits(dualclass) and the upper bytes.

  • subtledoctorsubtledoctor Member Posts: 11,460
    Well, like I say, if they introduce something that can function like what was taken away, I got no beef with that.

    I've never used the 'Set Local Variable' opcode but theoretically that combined with several hundred opcode 326 checks and associated subspells could get it done as well. Theoretically...

  • subtledoctorsubtledoctor Member Posts: 11,460
    @Avenger_teambg so is there any place where these kinds of changes are listed or described? Someone just reported that another one of my mods is broken by the new patch as well. I have no idea what was changed, so I have no idea what part of the mod is broken...

  • Avenger_teambgAvenger_teambg Member, Developer Posts: 5,862
    There is a game specific list here: http://blog.beamdog.com/2018/05/icewind-dale-enhanced-edition-25-patch.html
    and there: http://blog.beamdog.com/2018/05/baldurs-gate-ii-enhanced-edition-25.html

    But i guess, yours is more like a core engine change, if anything.
    I don't know of any change that might affect you, unless it is the spell state fix.
    Gimme a hint about what opcode/action you suspect to be different.

Sign In or Register to comment.