Jump to content


Photo

TobEx Wish list


  • Please log in to reply
821 replies to this topic

#461 i30817

i30817
  • Member
  • 611 posts

Posted 25 November 2011 - 06:54 PM

I see... action.ids functions are already a simplified form of the single function the engine calls underneath.

Edited by i30817, 25 November 2011 - 09:37 PM.


#462 phordicus

phordicus
  • Member
  • 212 posts

Posted 26 November 2011 - 04:35 AM

Can't you just tag extra effects onto the stoneskin spell?

Yes but they will be tied to the spell's "duration" rather than "the skins are still there", so if the spell's duration is 3600 and you set anything like a protection from spell it will stay regardless of whether the stoneskin itself gets taken down.
Druid Kit Enhancements 1.0 (requires Dispel Magic fix, whether ToBEx's or Taimon's)

#463 Galactygon

Galactygon

    Modding since 2002

  • Member
  • 938 posts

Posted 26 November 2011 - 08:22 AM


Can't you just tag extra effects onto the stoneskin spell?

Yes but they will be tied to the spell's "duration" rather than "the skins are still there", so if the spell's duration is 3600 and you set anything like a protection from spell it will stay regardless of whether the stoneskin itself gets taken down.


You don't have control over when stoneskin expires due to hits. It's the same story as with decrement spell deflection/turning/trap opcodes.

-Galactygon
Posted Image

#464 phordicus

phordicus
  • Member
  • 212 posts

Posted 26 November 2011 - 06:03 PM

Exactly. My goal is to turn extra weapon effects (like 1 pt acid damage) into spells that Stoneskin would protect against. As it is, extra effects on weapons, whether it's damage or stun or whatever, go right through. It's not as critical a change as it once was, however, because of concentration/damage checks now available (and the non-damage stuff like stun is easier to LARPly justify).

[Edit] No, not really. It's horribly immersion breaking and tactically retarded to have something like poison from a spider go through when the attack damage itself is nullified.

If this can't be fixed via tobex, is there some opcode workaround via EFF that I could attach to... every freaking attack item that has extra damage effects to make it do nothing against a STAT_STONE_SKIN 1 target?

Edited by phordicus, 29 November 2011 - 05:45 AM.

Druid Kit Enhancements 1.0 (requires Dispel Magic fix, whether ToBEx's or Taimon's)

#465 i30817

i30817
  • Member
  • 611 posts

Posted 27 November 2011 - 02:25 AM

Another request that i maybe be wrongheaded about and there is a simpler way to do what i want:

I want to cast party wide buffs without repetition. I was thinking of this:

IF
 /*some party member not under the spell effect check...*/
 OR(6)
  TriggerOverride(Player1, HaveSpell(CLERIC_BLESS))
  TriggerOverride(Player2, HaveSpell(CLERIC_BLESS))
  TriggerOverride(Player3, HaveSpell(CLERIC_BLESS))
  TriggerOverride(Player4, HaveSpell(CLERIC_BLESS))
  TriggerOverride(Player5, HaveSpell(CLERIC_BLESS))
  TriggerOverride(Player6, HaveSpell(CLERIC_BLESS))
 //I AM THE CHOSEN ONE!
 Range(Trigger/*last trigger override that matched*/,0)
THEN
 //cast spell  
END
So they all would execute the same code, and yet only one would "win" and only one would start casting.


Thing is i don't think i can get the last matched trigger override.
See and LastSeenBy is very useful, but i don't think it can be used to efficiently match on general conditions...

This also would probably not work too well if they were separated...

Edit: just realized lasttrigger almost does what i want, except the hasspell (and probably others) triggers aren't listed as affecting it in
http://iesdp.gibberl...g2/svtriobj.htm

Probably because HasSpell doesn't take a npc Object argument, so they thought it was useless to save "Myself"...

I'm unsure what would be better: make a overload of trigger override that saves in a new object, make trigger override save it in a new object (these two more general), or disable the checks against saving the LastTrigger in the functions that don't do it (probably a nightmare, but if the functions just call the same underlying function, maybe not).

Edited by i30817, 27 November 2011 - 05:09 PM.


#466 i30817

i30817
  • Member
  • 611 posts

Posted 27 November 2011 - 06:58 PM

Would it be possible to add a NumInPartySelected trigger?

To prevent doing a action if more than one member is selected (not "to prevent more than one party member doing a action" that is possible with globals).

To emulate this it appears to be necessary wasting a round and some LOCALS/GLOBALS hackery.

Edited by i30817, 27 November 2011 - 07:55 PM.


#467 Ascension64

Ascension64
  • Modder
  • 5983 posts

Posted 28 November 2011 - 01:39 AM

Would it be possible to add a NumInPartySelected trigger?

Should be.

--------------
Retired Modder
Note: I do not respond to profile comments/personal messages in regards to troubleshooting my modifications. Please post on the public forums instead.

Baldur's Gate Trilogy-WeiDU and Mods
Throne of Bhaal Extender (TobEx)

Contributions: (NWN2) A Deathstalker (voice acting) - (IWD2) IWD2 NPC Project (soundset editing) - (Misc) SHS PC Soundsets (voice acting)
Legacy: (BG/Tutu/BGT) Beregost Crash Fixer 1.9 (18 Jul 10) - (BG2) Enable conversations with charmed/dominated creatures (18 Jul 10) - (BG2) Experience Corrections (18 Jul 10) - (Misc) Platform Conversion Utility RC2 (13 Feb 10)


#468 i30817

i30817
  • Member
  • 611 posts

Posted 28 November 2011 - 12:42 PM

Ok, last harebrained idea of the day:

A AND(I:number) trigger that can be put in a OR()

Motivation: efficiency, expressiveness.

For instance instead of this:
(actually there's bugs in the code below, but you get the idea)
Spoiler


We'd have this, short-circuiting checks beyond the first true AND:
Spoiler

Edited by i30817, 28 November 2011 - 01:24 PM.


#469 Ascension64

Ascension64
  • Modder
  • 5983 posts

Posted 29 November 2011 - 03:47 AM

I'm not likely to implement the above over other things you simply cannot achieve currently through script.
Just expand the expression over 6 blocks.

--------------
Retired Modder
Note: I do not respond to profile comments/personal messages in regards to troubleshooting my modifications. Please post on the public forums instead.

Baldur's Gate Trilogy-WeiDU and Mods
Throne of Bhaal Extender (TobEx)

Contributions: (NWN2) A Deathstalker (voice acting) - (IWD2) IWD2 NPC Project (soundset editing) - (Misc) SHS PC Soundsets (voice acting)
Legacy: (BG/Tutu/BGT) Beregost Crash Fixer 1.9 (18 Jul 10) - (BG2) Enable conversations with charmed/dominated creatures (18 Jul 10) - (BG2) Experience Corrections (18 Jul 10) - (Misc) Platform Conversion Utility RC2 (13 Feb 10)


#470 i30817

i30817
  • Member
  • 611 posts

Posted 29 November 2011 - 07:10 AM

Ok. I found a solution with or's in a single block anyway (if variable substitution for objects eventually happens).

I thought i had it working anyway, but didn't take into account how limited LastTrigger really is.

But what about extending the Object identifiers?

[EA.FACTION.TEAM.GENERAL.RACE.CLASS.SPECIFIC.GENDER.ALIGN.STATE]

State would be, of course, a check with StateCheck.
This would simplify priority targeting.

Spoiler


Of course this is another situation where OR blocks help, but i'm just listing possibilities

Edited by i30817, 29 November 2011 - 12:27 PM.


#471 i30817

i30817
  • Member
  • 611 posts

Posted 29 November 2011 - 12:02 PM

BTW, is STATE_DISEASE fixed?

I found some old references saying it is busted:
http://www.shsforums...e-check-broken/
http://www.sorcerers...ivineSpells.htm (search for cure disease there)

Or am i missing something ?

And as i asked before what do you say to extend your "disable/enable button" opcode to the levelup screen too? Not possible now?

Edited by i30817, 29 November 2011 - 12:47 PM.


#472 Ascension64

Ascension64
  • Modder
  • 5983 posts

Posted 29 November 2011 - 02:04 PM

But what about extending the Object identifiers?

Unlikely, the object identifiers fit into a discrete Object class with no room to move.

BTW, is STATE_DISEASE fixed?

I don't fix it. I need someone else to tell me why its broken though.

And as i asked before what do you say to extend your "disable/enable button" opcode to the levelup screen too? Not possible now?

I think it is possible. Take note that I put all requests into my to-do list and try implement when I get around to it. It takes forever just to implement one hack, so you'll need to be patient.

Edited by Ascension64, 29 November 2011 - 02:09 PM.

--------------
Retired Modder
Note: I do not respond to profile comments/personal messages in regards to troubleshooting my modifications. Please post on the public forums instead.

Baldur's Gate Trilogy-WeiDU and Mods
Throne of Bhaal Extender (TobEx)

Contributions: (NWN2) A Deathstalker (voice acting) - (IWD2) IWD2 NPC Project (soundset editing) - (Misc) SHS PC Soundsets (voice acting)
Legacy: (BG/Tutu/BGT) Beregost Crash Fixer 1.9 (18 Jul 10) - (BG2) Enable conversations with charmed/dominated creatures (18 Jul 10) - (BG2) Experience Corrections (18 Jul 10) - (Misc) Platform Conversion Utility RC2 (13 Feb 10)


#473 i30817

i30817
  • Member
  • 611 posts

Posted 29 November 2011 - 10:57 PM

I thought of something now. I know you have a option to have pickpocket not go out of stealth immediately. There is a similar problem with opening containers (which makes a thief stealing things much harder than it should imo, especially considering that sanctuary apparently bypasses that).

#474 i30817

i30817
  • Member
  • 611 posts

Posted 30 November 2011 - 08:13 PM

I just had what i think could be a great idea.

You know how Stats are sometimes overloaded? (ie: the scriptingstates in detectable stats?)

The problem with this is that you lose information because of when you are affected by more than one stat - you only know the last one, because the stats are overwritten.

This is wasting the potential of using bytemasks. Ie: slap WIZARD_SHIELD_MASK in a ids file somemwhere,

(CheckStatGT(Myself, WIZARD_SHIELD_MASK-1, SCRIPTINGSTATE6) and CheckStat(Myself, WIZARD_SHIELD_MASK, SCRIPTINGSTATE6) would not work as guards).

You'd need a new function:
CheckStatMask(Myself, WIZARD_SHIELD_MASK, SCRIPTINGSTATE6)
And maybe
CheckStatMaskGTE(Myself, WIZARD_SHIELD_MASK, SCRIPTINGSTATE6)
notice the E for "equal"
(zero the bits lower than WIZARD_SHIELD_MASK, check against >= WIZARD_SHIELD_MASK)
CheckStatMaskLTE(Myself, WIZARD_SHIELD_MASK, SCRIPTINGSTATE6)
(zero the bits higher than WIZARD_SHIELD_MASK, check against <= WIZARD_SHIELD_MASK)


And the set opcode would need a option to set a mask, not just assign blindly.

This would make all of those overloaded values checkable... If it works with normal stats even, DS could be reorganized to occupy much less of the slots it does now too.

Edited by i30817, 30 November 2011 - 09:43 PM.


#475 Ascension64

Ascension64
  • Modder
  • 5983 posts

Posted 30 November 2011 - 08:42 PM

I thought of something now. I know you have a option to have pickpocket not go out of stealth immediately. There is a similar problem with opening containers (which makes a thief stealing things much harder than it should imo, especially considering that sanctuary apparently bypasses that).

I see, will pop on to-do list.


CheckStatMask

I can implement. However, I don't think anyone is going to update Detectable Stats since so many mods already depend on it.

--------------
Retired Modder
Note: I do not respond to profile comments/personal messages in regards to troubleshooting my modifications. Please post on the public forums instead.

Baldur's Gate Trilogy-WeiDU and Mods
Throne of Bhaal Extender (TobEx)

Contributions: (NWN2) A Deathstalker (voice acting) - (IWD2) IWD2 NPC Project (soundset editing) - (Misc) SHS PC Soundsets (voice acting)
Legacy: (BG/Tutu/BGT) Beregost Crash Fixer 1.9 (18 Jul 10) - (BG2) Enable conversations with charmed/dominated creatures (18 Jul 10) - (BG2) Experience Corrections (18 Jul 10) - (Misc) Platform Conversion Utility RC2 (13 Feb 10)


#476 i30817

i30817
  • Member
  • 611 posts

Posted 30 November 2011 - 09:39 PM

Edit2: removed incredibly stupid statement. CheckStatLT and CheckStatGT still work fine with masks.

Edited by i30817, 01 December 2011 - 08:15 AM.


#477 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 30 November 2011 - 09:45 PM

Umm... would this come under ToBEx's purview? :P

"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#478 i30817

i30817
  • Member
  • 611 posts

Posted 30 November 2011 - 10:38 PM

CheckStatMask

I can implement. However, I don't think anyone is going to update Detectable Stats since so many mods already depend on it.

Are there really so many? Detectable stats has a way to check for version? If it has, a new one could be made and fix the names/reorganize while we're at it and we could gradually update the mods and mark them "incompatible" with the old version if it detects it.

1) Repeat until the ugly mods are all obsolete
2) make it a part of BG2Fixpack
3) ??? (possibly change the original stats too)
4) profit (massive oversimplication)

It could probably be done automatically by preprocessing the scripts with a tool too. Then you'd just have to release a "new" version of the mods that use DS all at once.

To advocate the other argument a little, although 32 slots in the mask is bigger than anything DS is using now, it might not be big enough for such categories as "Necromancy" or things like that (is the datasize 32 or 64?). And your expandable stats hack serves as a alternative too, so this is just not as important.

Edited by i30817, 30 November 2011 - 10:59 PM.


#479 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 30 November 2011 - 11:22 PM

BTW, is STATE_DISEASE fixed?

I don't fix it. I need someone else to tell me why its broken though.

I think he means STATE_POISONED which does not work at all in a simple script like (Note: tested on BG:ToTSC needs confirmed for BG2)
IF
StateCheck(Myself,STATE_POISONDISEASE)
HasItem("potn20",Myself)
THEN
RESPONSE #100
UseItem("potn20",Myself)
END
oh i applied this
APPEND ~state.ids~ ~0x00084000 STATE_POISONDISEASE~   UNLESS ~0x00084000 STATE_POISONDISEASE~
prior to running that script, thought I'd combine both just in case one of 'em would catch


Umm... would this come under ToBEx's purview?

Only where Tutu & BGT are concerned... Now if A64 wants to tackle a ToTSCex I'd consider that then :P

My working mods:
an AI Party Script for BG2 game engine DOWNLOAD LINK ONLY!
Interactive Tweaks for BG series with some IWD support. DOWNLOAD LINK ONLY!
Rest For 8 Hours an IWD mod
-------------------------------------------
My contributions: BG1Fixpack, BG1Tweaks
On Hold: Solestia an NPC for SOA
-------------------------------------------
My website: http://sasha-altheri...s.com/index.htm


#480 i30817

i30817
  • Member
  • 611 posts

Posted 01 December 2011 - 03:02 AM

BTW, is STATE_DISEASE fixed?

I don't fix it. I need someone else to tell me why its broken though.

I think he means STATE_POISONED which does not work at all in a simple script like (Note: tested on BG:ToTSC needs confirmed for BG2)


I haven't tested it yet, but i'm pretty sure i meant STATE_DISEASE in bg 2
This post by Kevin Dorner explains it.