Jump to content

Future tweak ideas - post 'em here


Recommended Posts

I've lost the code long ago, though it's possible to remake.

Sorry to hear that.

 

Inspired by your post, i had coded my own version. It works for me but it is a very basic/stupid implementation with many quirks. It is not fit for general use but in case anyone is interested, it is the following:

 

 

 

EXTEND_TOP_REGEXP ~\(c\|g\)tar.*\.bcs~ ~baf/traps.baf~
EXTEND_TOP_REGEXP ~\(c\|g\)t\(as\|ck\|cl\|con\).*\.bcs~ ~baf/traps.baf~
EXTEND_TOP_REGEXP ~\(c\|g\)t\(corb\|dc\|fb\|fr\).*\.bcs~ ~baf/traps.baf~
EXTEND_TOP_REGEXP ~\(c\|g\)t\(fs\|hp\|lb\|mm\).*\.bcs~ ~baf/traps.baf~
EXTEND_TOP_REGEXP ~\(c\|g\)t\(ms\|pm\|sc\|si\).*\.bcs~ ~baf/traps.baf~
EXTEND_TOP_REGEXP ~\(c\|g\)t\(werewo\|gw\|mis\).*\.bcs~ ~baf/traps.baf~
EXTEND_TOP_REGEXP ~\(c\|g\)t\(spid\|spike\|st\).*\.bcs~ ~baf/traps.baf~
EXTEND_TOP_REGEXP ~\(c\|g\)t\(ts\|web\).*\.bcs~ ~baf/traps.baf~
EXTEND_TOP_REGEXP ~gt[0-9].*\.bcs~ ~baf/traps.baf~
EXTEND_TOP ~gdarts.bcs~ ~baf/traps.baf~
EXTEND_TOP ~gslime.bcs~ ~baf/traps.baf~
EXTEND_TOP ~gspear.bcs~ ~baf/traps.baf~
EXTEND_TOP ~gvent.bcs~ ~baf/traps.baf~
It modifies all the trap scripts to include the following code.

 

IF OnCreation()
THEN
  RESPONSE #100
    StartTimer (101, 1)
    Continue()
END

IF
  LOS([GOODCUTOFF],15)
  TimerExpired(101)
THEN
  RESPONSE #100
    DisplayString(Myself,16488)
    StartTimer (101, 18)
    Continue()
END
It uses a timer to print the message trap found every 18 seconds. It doesn't mention what kind of trap it is like Ardanis's implementation and it keeps printing the message even after the trap is disarmed.

 

Initially i had a "better" implementation but i couldn't make it work. It was something like the following:

IF
      Disarmed([ANYONE])
    THEN
      RESPONSE #100
        SetGlobal("vt#disarmed", "LOCALS", 1)
        Continue()
    END
IF
      LOS([GOODCUTOFF],15)
      !Global("vt#disarmed", "LOCALS", 1)
      !GlobalTimerNotExpired("vt#traptimer", "LOCALS")
    THEN
      RESPONSE #100
         DisplayString(Myself,16488)
         SetGlobalTimer("vt#traptimer", "LOCALS", 12)
         Continue()
    END
I tried many variations but either the message would only be displayed once or it would be constantly printed all the time. I think i read somewhere that the problem was that "LOCAL" variables only work on character scripts and not trap scripts or something like that. So, i changed it to use simple timers and left it at that. Since i was the only user, i could live with the sub-par implementation that prints the message even after disarming.

 

 

Link to comment

My version was like:

 

 

Preliminary:

- Scan all official areas for triggers, doors and containers that are trapped & detectable & have difficulty !=100.

- Manually review all the scripts on the obtained list and write appropriate "trap type is X" new string for each script. A few will need to be excluded, because even while they're set up as traps and detected as such by the check routine, they still aren't a trap.

- Now you have a list of trap scripts and a list of detected type strings, match them up via associative array or something.

 

Prepare the script extension (top):

IF Range([PC],15) !GlobalTimerNotExpired("%script_name%","myarea") Global("%script_name%_detected","myarea",0) Global("%script_name%_disarmed","myarea",0) THEN RESPONSE #100 SetGlobalTimer("%script_name%","myarea",6) DisplayStringHead(Myself,~Trap Detected~) END

IF Range([PC],15) !GlobalTimerNotExpired("%script_name%","myarea") Global("%script_name%_detected","myarea",1) Global("%script_name%_disarmed","myarea",0) THEN RESPONSE #100 SetGlobalTimer("%script_name%","myarea",6) DisplayStringHead(Myself,~trap_type_string_that_matches_the_scriptname~) END

IF Detected() Global("%script_name%_detected","myarea",0) Global("%script_name%_disarmed","myarea",0) THEN RESPONSE #100 SetGlobal("%script_name%_detected","myarea",1) SetGlobalTimer("%script_name%","myarea",6) DisplayStringHead(Myself,~trap_type_string_that_matches_the_scriptname~) END

IF Disarmed() Global("%script_name%_disarmed","myarea",0) THEN RESPONSE #100 SetGlobal("%script_name%_disarmed","myarea",1) END

IF OR() Entered() Opened() AndProbablyThereWasAnotherTrigger() THEN RESPONSE #100 SetGlobal("%script_name%_disarmed","myarea",1) Continue() END

IF Reset() THEN RESPONSE #100 SetGlobal("%script_name%_disarmed","myarea",0) Continue() END
I think it was kinda like that... Forgot if Continue()'s are correct, better test it.

 

Area patching:

- Scan all areas for the scripts on the list. There will be multiple instances of the same script used in different trigger regions. For each duplicate copy the original script under unique new name, extend it and eval (those %script_name% vars), and write new script entry into the trigger.

- Keep a track of each trap type's max number of duplicates in a single area (I used arrays), so that if you run into another area with duplicates of that type then you can just use existing copies of the trap script created for previously processed areas.

 

 

Edited by Ardanis
Link to comment

I think that this is the right place to request this. Even if so, I'm fairly certain that this request isn't even possible, but I'll ask anyway:

 

IWD2: fix the improved initiative feat.

 

I tried that for the Fixpack a few years ago lmfao. Not possible to do. Feats are hardcoded. :(

 

e: I mean technically you can by drilling in external .dlls in the .exe but that's, like, level 5 coding, requires other programs running, and not an easy elegant solution.

Edited by Almateria
Link to comment

Apologies if this is already implemented, but a feature of Level1NPC is easing weapon restrictions for some classes - for instance allowing your Archer/Cleric (courtesy of Tweak Anthology) to use bows. Could be made an optional component of the Loosen Item Restrictions component already in the anthology.

Link to comment

Thanks for the suggestions everyone, keep 'em coming. Quick comment for...

Apologies if this is already implemented, but a feature of Level1NPC is easing weapon restrictions for some classes - for instance allowing your Archer/Cleric (courtesy of Tweak Anthology) to use bows. Could be made an optional component of the Loosen Item Restrictions component already in the anthology.

I think this should be covered already by the loosen equipment restrictions for cleric multis. Despite the name of the component a fighter-cleric via dual or multiclass uses the same bits for usability, so the changes here also apply to dual-classes. It's a pretty simple formula--if an item is usable by fighters, it's made available to fighter-clerics and fighter-mage-clerics; items for thieves to cleric-thieves; items for mages for cleric-mages and fighter-mage-clerics; and items for rangers for cleric-rangers. The weapon proficiency table is also updated to allow pips in the same categories, e.g. mage-clerics can place a pip in daggers.

 

edit: Oh, I don't think I read completely--you mean beyond just the cleric stuff.

Edited by CamDawg
Link to comment

Thanks for the suggestions everyone, keep 'em coming. Quick comment for...

 

Apologies if this is already implemented, but a feature of Level1NPC is easing weapon restrictions for some classes - for instance allowing your Archer/Cleric (courtesy of Tweak Anthology) to use bows. Could be made an optional component of the Loosen Item Restrictions component already in the anthology.

I think this should be covered already by the loosen equipment restrictions for cleric multis. Despite the name of the component a fighter-cleric via dual or multiclass uses the same bits for usability, so the changes here also apply to dual-classes. It's a pretty simple formula--if an item is usable by fighters, it's made available to fighter-clerics and fighter-mage-clerics; items for thieves to cleric-thieves; items for mages for cleric-mages and fighter-mage-clerics; and items for rangers for cleric-rangers. The weapon proficiency table is also updated to allow pips in the same categories, e.g. mage-clerics can place a pip in daggers.

 

edit: Oh, I don't think I read completely--you mean beyond just the cleric stuff.

As Level1NPC mentioned, is it possible to include the whole mod(the NPC adjustment part) into tweaks?

Link to comment

Expand container "Items purchased" list. Below are some suggestions from my EET game:

  • Bag of Holding can store all items (except Containers (36), and perhaps Familiars (38)). [Example being MISC61.ITM (Bandit Scalp) in my game which has a category of Tattoos (39) which can't be stored in a bag of holding.]
  • Ammo Belt can store (throwing) Daggers (16)
  • Ammo Belt can store (throwing) Axes (25)
  • Scroll Case can store Notes (50)
  • Potion Case can store Bottles (56)
Link to comment

Thanks for the suggestions everyone, keep 'em coming. Quick comment for...

 

Apologies if this is already implemented, but a feature of Level1NPC is easing weapon restrictions for some classes - for instance allowing your Archer/Cleric (courtesy of Tweak Anthology) to use bows. Could be made an optional component of the Loosen Item Restrictions component already in the anthology.

I think this should be covered already by the loosen equipment restrictions for cleric multis. Despite the name of the component a fighter-cleric via dual or multiclass uses the same bits for usability, so the changes here also apply to dual-classes. It's a pretty simple formula--if an item is usable by fighters, it's made available to fighter-clerics and fighter-mage-clerics; items for thieves to cleric-thieves; items for mages for cleric-mages and fighter-mage-clerics; and items for rangers for cleric-rangers. The weapon proficiency table is also updated to allow pips in the same categories, e.g. mage-clerics can place a pip in daggers.

 

edit: Oh, I don't think I read completely--you mean beyond just the cleric stuff.

 

Exactly! Sorry for the lack of clarity :)

 

 

Thanks for the suggestions everyone, keep 'em coming. Quick comment for...

 

Apologies if this is already implemented, but a feature of Level1NPC is easing weapon restrictions for some classes - for instance allowing your Archer/Cleric (courtesy of Tweak Anthology) to use bows. Could be made an optional component of the Loosen Item Restrictions component already in the anthology.

I think this should be covered already by the loosen equipment restrictions for cleric multis. Despite the name of the component a fighter-cleric via dual or multiclass uses the same bits for usability, so the changes here also apply to dual-classes. It's a pretty simple formula--if an item is usable by fighters, it's made available to fighter-clerics and fighter-mage-clerics; items for thieves to cleric-thieves; items for mages for cleric-mages and fighter-mage-clerics; and items for rangers for cleric-rangers. The weapon proficiency table is also updated to allow pips in the same categories, e.g. mage-clerics can place a pip in daggers.

 

edit: Oh, I don't think I read completely--you mean beyond just the cleric stuff.

As Level1NPC mentioned, is it possible to include the whole mod(the NPC adjustment part) into tweaks?

 

 

 

This would be awesome! but since the Level1NPC mod itself isn't even EET + SoD compatible yet, it's not as easy as it may sound and may not even be appropriate at all for the Tweak pack considering its massive scope. CrevsDaak recently updated the mod to have basic EE compatability, but as I understand it, the extended functionality of Level One NPC (and the reason it is so impressive feature-wise compared to all other mods that have similarities) is that it actually edits each NPC individually instead of going at them with a general approach. So to make it EET compatible you wouldn't just have to update a core package but would actually do coding for all SoD NPCs etc.? At least that's what I gathered from the thread in the L1NPC forums.

 

So until someone updates the mod itself or decides to do the work needed for the tweak pack here, it's unlikely to occur. No question that I would give major kudos to anyone doing that though, it's just about my favourite mod! That just doesn't mean it's appropriate for this context.

Edited by Grunker
Link to comment

And there's the other factors like having to insert 10 to 1200 other inserts during install, which is not practical for a tweaks mods that generally uses component numbers to do most choices.

One could try to incorporate the NPC Kit tweaks into the CD_Tweaks, but NOT Level 1 NPCs, as the former is the laters very "light version". Now of course the CD_Tweaks can also adopt the other non NPC specific components from Level 1 NPC mod, as they also come with their own components, unlike the NPC specific where the choices don't have component numbers.

Edited by Jarno Mikkola
Link to comment

What's the point of taking a whole mod and shoving into another mod?

 

(I mean there might be s finecreaaon to do that in some cases, but there should be a reason in each case. Not to mention, Tweaks and Level1NPCs have very different places in the install order, so combining them makes little sense...)

Link to comment

FTR, I agree, that's why I wrote

 

may not even be appropriate at all for the Tweak pack considering its massive scope

 

I think L1NPC-style edits might be appropriate for the Anthology if they were less involved, but considering the scope of the coding and the many choices you have to make in the WeiDU interface as a user to truly edit NPCs from the bottom up in L1NPC it doesn't seem like it would be appropriate for tweaks.

Edited by Grunker
Link to comment

What's the point of taking a whole mod and shoving into another mod?

Well, there's plenty of reasons, as the mod can be seen a combination of multiple mods, and for multiple games... You know, the "Ease of Use" mod, the Bigg Tweaks, pro5's tweaks, the PST tweaks, BG1 Tweaks, AoE ? Why have multiple when you could use one... and thus have a clear choice of options, and have them all with same like rules for all the sets of rules. Aka if the level limit is 50, then the kit tables don't stop(default to -1) at level 41. ...

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...