Jump to content


Photo

Increasing existing affects in characters


  • Please log in to reply
143 replies to this topic

#41 i30817

i30817
  • Member
  • 611 posts

Posted 02 November 2011 - 06:42 PM

REALLY?

God damn. So all of those years, putting 150 points in pickpocket... all useless??

#42 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 02 November 2011 - 09:25 PM

I could be wrong... I could be thinking about BG1 or some mod added bug that caused an issue

who knows for sure anymore....

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


#43 i30817

i30817
  • Member
  • 611 posts

Posted 03 November 2011 - 11:51 AM

A question about your code to unlock and disarm traps.

What happens if i have a single, minimized section repeated instead of 4. Like this:

IF
     ActionListEmpty()
     AreaCheck("%area%")
     Range("%trigger%",3)
THEN
     RESPONSE #100
     RemoveTraps("%trigger%")
     PickLock("%trigger%")
     ActionOverride(Myself,ChangeAIScript(gt#thief,GENERAL))
END

The checks for hotkey and LOCKPICK > 1 OR TRAPS > 1 are in the script "parentscript" before the redirect, to keep normal performance at the maximum.

I removed the "disarmed" check so it triggers on a normal lock still, but as it is a hotkey it is not constantly and as it has a visual feedback, it should make no difference. Apparently, IESDP says that "unlocked" is broken anyway so off it goes.

The only uncertainty is what happens when i try to "open locks" on what is only a trap, or "pick lock" on a trap. Would it just say the usual "roll failed" thing.

If the engine does the sane thing (ignore it) then things should work ok no?
Then, not taking in consideration if you can disarm it or not in the scripts (I confess that the Weidu code is giving me trouble, most of these numeric constants and ranges i have no clue why they are being checked)
    PATCH_IF ( (("trapped" & 0x01) = 0x01)
          OR ((%flag% BAND 0b001) = 0b001)) THEN BEGIN //trapped or locked
    FOR ("i2" = 0x00; "i2" < 0x20; "i2" += 0x01) BEGIN
     READ_BYTE ("co" + "i1" + "i2") "char"
     READ_ASCII ("co" + "i1" + "i2") "char2" (1)
     PATCH_IF (~%char%~ = 32) AND (~%char2%~ STRING_COMPARE_REGEXP ~ ~ =0) BEGIN
      SPRINT ~char2~ ~_~
     END
     PATCH_IF (%char% != 0) BEGIN
      SPRINT ~co_name~ ~%co_name%%char2%~
     END
     PATCH_IF (("char" = 0x00) AND ("i2" = 0x00)) THEN BEGIN
      SET "i2" = 0x20
     END
     ELSE
     PATCH_IF (("char" = 0x00) AND ("i2" > 0x00)) THEN BEGIN
      READ_ASCII ("co" + "i1" + 0x00) ~trigger~ ("i2")
      SPRINT ~cont_var~ ~ab_%area%_%co_name%~
      INNER_ACTION BEGIN
       EXTEND_BOTTOM ~abparty.bs~ ~inlined/thief_hk_lock&trap.baf~
        EVALUATE_BUFFER
      END
      SET "i2" = 0x20
     END
    END
   END


If there is a annoying message (or just for performance) - because of trap disarmed or lockpick fail, i'd use your trick to multiplex the block into 3, trap, lock and a additional block to shortcircuit the rest if those two triggered.

Like so:

IF //emitted if found trap while going through the areas
     ActionListEmpty()
     AreaCheck("%area%")
     !Disarmed("%traptrigger%")
     Range("%traptrigger%",3)
THEN
     RESPONSE #100
     SetGlobal("triggerpresent", "LOCALS", 1)
     RemoveTraps("%traptrigger%")
     Continue()
END


IF  //emitted found lock while going through the areas
     ActionListEmpty()
     AreaCheck("%area%")
     Range("%locktrigger%",3)     
THEN
     RESPONSE #100
     SetGlobal("triggerpresent", "LOCALS", 1)
     PickLock("%locktrigger%")
     Continue()
END

IF  //emitted if found any of both above while going through the areas
     Global("triggerpresent","LOCALS", 1)
THEN
     RESPONSE #100
     SetGlobal("triggerpresent", "LOCALS", 0)
     ActionOverride(Myself,ChangeAIScript(gt#thief,GENERAL))
END

They'd have to be appended consecutively - is this possible?.

And append the unconditional return to the normal script at the end of course.


The Weidu hieroglyphs are not being kind.

Edited by i30817, 03 November 2011 - 12:25 PM.


#44 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 03 November 2011 - 02:59 PM

i think my weidu code is causing some confusion

if you want to remove traps and pick locks you need FOUR blocks of code because there are four distinct combinations

1) trapped only
2) locked only
3) trapped & locked
4) locked & trap can't be disarmed

I've since thought of something that should be included so that your thief doesn't bother with traps or locks it can't handle...

The checks for hotkey and LOCKPICK > 1 OR TRAPS > 1 are in the script "parentscript" before the redirect, to keep normal performance at the maximum.

ok.. that is fine for the basics my new idea tho needs the stat checks here
1) trapped only
Spoiler


2) locked only
Spoiler


3) trapped & locked
Spoiler


4) locked & trap can't be disarmed (you can point to the locked only script block instead, but the weidu patching code has to look for these separately)
Spoiler

Each script block can be inside the tp2 file via the inline method or as external .baf files


the area patching code which is used to read the necessary data and apply the necessary script block as needed. You'll need to check into how to make it BGT, EasyTutu & BG2 friendly. I know how to do EasyTutu but not BGT
Spoiler
oh also added in additional coding to find doors that are locked only and separated the trapped doors between locked and not locked

also when G3 is not down due to spammers get a copy of the IESDP, it'll help you in regards to offsets being read or written in weidu code.

Also I removed any references to using a global variable since you aren't going that route. Part of the code you were being confused on was set to build the global variable name character by character and replace any spaces with an underscore. since you aren't using that you won't need it.....

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


#45 i30817

i30817
  • Member
  • 611 posts

Posted 03 November 2011 - 03:22 PM

if you want to remove traps and pick locks you need FOUR blocks of code because there are four distinct combinations

1) trapped only
2) locked only
3) trapped & locked
4) locked & trap can't be disarmed



Yea... that would be more efficient. I'm going to edit what i have now for that.
(copied liberally from both your code and ce#knock)

Quick questions; in the code following, i'm compiling baf, and i think weidu will ouput bcs.

Is a bcs file acceptable input for
ActionOverride(Myself,ChangeAIScript(gt#act,GENERAL))

Or do they have to have the extension bs? (and how to get weidu to output that?)

Also, what happens when i do this at the end of the script file:

IF
     True()
THEN
     RESPONSE #100
ActionOverride(Myself,ChangeAIScript(gt#thief,GENERAL))
     Continue() //doesn't matter, might as well run the AI
END
I changed the script back to normal (ok), and continued (it's the end of the file remember).

What i want is not to "lose" the round, so normal DEFAULT AI can do what it wants. Does it work?

Spoiler

Edited by i30817, 03 November 2011 - 04:18 PM.


#46 i30817

i30817
  • Member
  • 611 posts

Posted 03 November 2011 - 03:45 PM

I've read your previous message.

Is !Exists([ENEMY]) a original limitation of disarm traps and lockpick?

I mean, you can't use them when enemies are around with the GUI in the game? Because i can think of a few reasons to use this ability while a enemy you somehow do not want to kill is around.

There are also locks that can't be opened in addition to traps that can't be disarmed?
(yes, i remember them, but they probably can be ignored and let the use lockpick - they have a 4th wall shattering message).

Edited by i30817, 03 November 2011 - 04:20 PM.


#47 i30817

i30817
  • Member
  • 611 posts

Posted 03 November 2011 - 05:05 PM

There is something in doors called "0x002c 2 (word) Trap detection difficulty".

Can this be 100 (0x64) as the trap removal difficulty and lockpick difficulty and be undetectable? (to remove those from the list too).

Edited by i30817, 03 November 2011 - 05:05 PM.


#48 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 03 November 2011 - 05:14 PM

Is a bcs file acceptable input for
ActionOverride(Myself,ChangeAIScript(gt#act,GENERAL))

Or do they have to have the extension bs? (and how to get weidu to output that?)

bs = bcs in functionality
bs is only used for those scripts you want to show in the party script selection and are placed in the scripts directory rather than in override

Also, what happens when i do this at the end of the script file:

IF
     True()
THEN
     RESPONSE #100
ActionOverride(Myself,ChangeAIScript(gt#thief,GENERAL))
     Continue() //doesn't matter, might as well run the AI
END

I changed the script back to normal (ok), and continued (it's the end of the file remember).

What i want is not to "lose" the round, so normal DEFAULT AI can do what it wants. Does it work?

what exactly are you wanting? are you wanting the script to change every time it is parsed when nothing else above it was valid? If nothing in the script is valid, it would automatically go down to whatever script is in the default slot and parse that for possible actions before restarting at the top of the script chain. Putting that block in would actually prevent any default script ai from processing unless the gt#thief script does not have a similar block and in the latter case it would have to wait till all the above scripts were processed... I think best NOT to have that block. Tho I see now that you are just building one massive script with support for all traps and locks in all areas. yeah I guess you do want to swap it out if there isn't anything else valid to perform.

One question tho: How is it all getting kicked off? by item? by another script? by dialog? I think that if it is an equipped item then you may want to use the Race slot for the script with the hotkey and build in the ability to swap the script in and out of general by using the hotkey. I understand there are a couple of items that switch the race slot too, are you trying to allow for those items to be used as well? If so, then I guess you gotta stick with the general slot only.




As far as your long list of code....
//bg1 compatibility
OUTER_SPRINT ie_file ~ar~
ACTION_IF (FILE_EXISTS_IN_GAME ~FW2600.are~) THEN BEGIN
 OUTER_SPRINT ie_file ~fw~
END
this is default BG2 with compatibility for Tutu/EasyTutu not compatibility for BG1

//don't know why this would matter but better safe...
    INNER_PATCH_SAVE trigger ~%name%~ BEGIN REPLACE_TEXTUALLY ~ ~ ~~ END
This wasn't available years ago when I put my code together, hence the byte by byte read I had to do. I noticed you are using some global variable checks for to presumably keep the thief from trying to do the same trap or lock even when already done. Some of the objects have spaces in the name (example "Container 1") the spaces need to be replaced. else the global variable won't work (can't have spaces) Not sure if ~ ~ replaced with ~~ would make much difference. I'd switch it to INNER_PATCH_SAVE trigger ~%name%~ BEGIN REPLACE_TEXTUALLY ~ ~ ~_~ END but then don't use the same variable for the global check & the object name so it would need to become INNER_PATCH_SAVE gvtrigger ~%name%~ BEGIN REPLACE_TEXTUALLY ~ ~ ~_~ END and then in all your global checks adjust it to be gt#%gvtrigger% or leave it at trigger and just change all your object name spots to %name%

It looks like you don't want shared blocks for those objects that are both locked and trapped. I suppose it is easier to just look for trapped and then just locked. I guess I'm harder on myself with code to make a more realistic in game action. Why would I remove the trap, do something else and then come back to pick the lock? I'd just do it all at once, but that's me....

EXTEND_BOTTOM ~gt#act.baf~ ~gt#trp~
all of these are a problem
EXTEND_BOTTOM will append baf or bcs data to the bottom of an existing bcs or bs script NOT to a baf file. Also, since variables change with each object and area file you have to compile the data into bcs format while the variables are valid for the current block you built. And since Extend bottom will also create a script that doesn't exist.
All you need to do is
1) adjust EXTEND_BOTTOM ~gt#act.baf~ ~gt#trp~ to the following
EXTEND_BOTTOM ~gt#act.bcs~ ~gt#trp~
 EVALUATE_BUFFER // you need this to get the current variables translated into the correct data
2) and then this line COMPILE ~general_thieving\gt#act.baf~ becomes moot and can be deleted


---------------------------

Is !Exists([ENEMY]) a original limitation of disarm traps and lockpick?

I mean, you can't use them when enemies are around with the GUI in the game? Because i can think of a few reasons to use this ability while a enemy you somehow do not want to kill is around.

It's what I chose to do. I personally didn't want to be doing such actions via script when there were enemies around. Manual control was preferable in such situations.


Oh back to that code for a minute. right now it is unrunable since it isn't set up properly. After the VERSION tag you'll need to add more stuff before you can get to the actual code. You should have something about language (at least to allow for compatibility to other languages if other people would like to translate it for you). Also you have to have the BEGIN ~component name~ before you can do any of the stuff you currently have after the VERSION line

-------------------------------

There is something in doors called "0x002c 2 (word) Trap detection difficulty".

Can this be 100 (0x64) as the trap removal difficulty and lockpick difficulty and be undetectable? (to remove those from the list too).

It could be worth looking into...

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


#49 i30817

i30817
  • Member
  • 611 posts

Posted 03 November 2011 - 05:43 PM

I'm planning to kick it out by dialog with a item (you could tell it to go away by the same means).


Annnnnd i'm confused about door detection. Your code has this comment for this line (doors):

READ_LONG ("do" + "i1" + 0x28) "flag" //flag bit 1 'on' = locked bit 3 'on' = trap detectable

This old version of IESDP says that bit is unknown (ok) and has this line for a later line (for doors both). Not ok:

0x0028 4 (dword) Bit 3 : unknown

0x006c 2 (word) Trap detection difficulty

http://iesdp.com/IesdpOld/

Either trap detection diff does nothing or does nothing to doors, or this old version of IESDP was wrong.


Why would I remove the trap, do something else and then come back to pick the lock? I'd just do it all at once, but that's me....


Yeah, i'm doing that now.

EXTEND_BOTTOM will append baf or bcs data to the bottom of an existing bcs or bs script NOT to a baf file.


I think this might be wrong or outdated. The description (of EXTEND_TOP, but still)
"Loads existingFile (which may be BAF or BCS), prepends all of newBCS to the top of it, applies all of the patches, and then copies it to the override folder. User variables in the filenames existingFile and newFile are replaced by their values. Use EVALUATE_BUFFER if you want to evaluate variables inside the body of newFile before parsing it."

Of course existingfile is not on the prototype:
"EXTEND_TOP existingBCS newFile patch list"

But what else can it be?

But still, now that i read it with more attention, i see that it actually compiles the file...

Going to use APPEND_FILE_EVALUATE instead, bound to be slightly faster.
Is current file.


Modulo that, i've got this for now.

Spoiler

Edited by i30817, 03 November 2011 - 07:09 PM.


#50 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 03 November 2011 - 09:01 PM

egad that copy of IESDP is old

I'm dead serious when G3 gets up and running again download the copy there. The one I got from there before I left the modding scene some 2+ years ago is dated 2007 and I know that there have been a few things noted and adjusted since then...

Might be a bit hard to read but here is the ARE data from the IESDP version I have locally...
Spoiler
Else grab the 2010 version which Cmorgan has made available as a backup for when G3 is down


On to your code...
READ_ASCII 0x0 area (4) NULL massive fail. all this is on every area file is 'AREA' it's used in conjunction with the next four bytes to determine what version of area file it is. If you use this it will make every single one of the area checks return false.
The use of the 'area' variable requires that you need the actual filename of the area. Ergo you need to replace that line with SPRINT ~area~ ~%SOURCE_RES% this assigns the resource reference sans extension to the designated variable

I think that is the only thing that I've seen noticeably wrong. anything else is gonna be found by trial and error when installing or if you change things up again based on seeing the newer IESDP

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


#51 i30817

i30817
  • Member
  • 611 posts

Posted 04 November 2011 - 03:31 AM

Can i do this:
OUTER_SET locked = ((flags & 0x1) = 0x1)

to later use it like this:
PATCH_IF ((~%locked%~ = 1) ....) BEGIN

?

Edited by i30817, 04 November 2011 - 03:45 AM.


#52 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 04 November 2011 - 04:14 AM

Can i do this:
OUTER_SET locked = ((flags & 0x1) = 0x1)

to later use it like this:
PATCH_IF ((~%locked%~ = 1) ....) BEGIN

?

not if you are setting it prior to getting the value for the 'flags' variable

you could set it inside the patch after each read of the 'flags' variable but that would only be for "coding convenience" and not really necessary....

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


#53 i30817

i30817
  • Member
  • 611 posts

Posted 04 November 2011 - 05:39 AM

Convenience is a beautiful thing. Does it work like booleans in most languages?
ie; can i write:
PATCH_IF (~%locked%~ ....)
instead of
PATCH_IF ((~%locked%~ = 1) ....)
?

In c for instance, most data can be used in a if

Where do you think i should ask for clarification about these engine questions:

1) Does trap detection difficulty work like the other difficulties (100% impossible)?
2) If 1) why do regions have a "detectable" (sic) flag.
3) Is the "detectable" from 2) for the region and not "trap detection", so are marking different things from "trap detection difficulty", that it has too?
4) IF 3) why do doors have a flag with "bit 3: Trap detectable" (notice that unlike regions, it specifies "trap"), AND also have a "Trap detection difficulty"?

Edited by i30817, 04 November 2011 - 07:02 AM.


#54 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 04 November 2011 - 10:13 AM

Convenience is a beautiful thing. Does it work like booleans in most languages?
ie; can i write:
PATCH_IF (~%locked%~ ....)
instead of
PATCH_IF ((~%locked%~ = 1) ....)
?

would have to see the specific argument that is required to be true for the patch block to be executed

i have never seen a variable used alone to signal a patch block to fire. it needs to be compared to something in order to return true or false. if the variable has no bearing on what you are wanting to do, then there is no need to read it or include it in the patch if statement.

Where do you think i should ask for clarification about these engine questions:

the iesdp section at G3 if it ever comes back up, otherwise i have no idea.

1) Does trap detection difficulty work like the other difficulties (100% impossible)?
2) If 1) why do regions have a "detectable" (sic) flag.
3) Is the "detectable" from 2) for the region and not "trap detection", so are marking different things from "trap detection difficulty", that it has too?
4) IF 3) why do doors have a flag with "bit 3: Trap detectable" (notice that unlike regions, it specifies "trap"), AND also have a "Trap detection difficulty"?


1. as far as i know.... yes

2. region triggers are used for more things than just traps, if all of them were detectable well lets just say the game would be a mess. I could go into detail but not with a sleeping almost 2yr old occupying one arm :P

3. yes and no. if it is detectable most likely it is a trap. if it is not detectable, then it performs another function (tho some can be just as bad as traps)

4. because your basic door is either trapped or not trapped. there is a separate spot that handles whether the door is secret and isn't shown till the PC finds it.

the trap detection difficulty is what is used to determine what stat value in remove traps a thief needs to always successfully remove the trap. whereas the detectable flag bit determines whether find traps and the like can make it visible....

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


#55 i30817

i30817
  • Member
  • 611 posts

Posted 04 November 2011 - 01:39 PM

Another small point of confusion:

CheckStatGT(Myself,1,TRAPS)

TRAPS is the stat the affects the rate of success of both FindTraps() and RemoveTrap(..) ... or FindTraps uses DETECTILLUSION?

I can't tell from IESDP. It's not logical that it is used in both places, so i've think i've got a bug. Which one can i use to find the skills, i'm not sure now.

Edit: nvm checked the game and it is. How strange.


I'd also like to make a optional component to remove some of the sounds that will get annoying with the mod. The hideinshadows mods that NPC with voices that are thieves have is very annoying if you are "scouting" (hideinshadows and findtraps at the same time trick - even though i have a only stealth mode).

DISABLE_FROM_KEY would be the best way to clean up that right? How can i find those references?

Edited by i30817, 04 November 2011 - 01:52 PM.


#56 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 04 November 2011 - 01:58 PM

I'd also like to make a optional component to remove some of the sounds that will get annoying with the mod. The hideinshadows mods that NPC with voices that are thieves have is very annoying if you are "scouting" (hideinshadows and findtraps at the same time trick - even though i have a only stealth mode).

I'm not sure what you are saying. Are you saying that there are some mods that come equipped with sound files that are triggered under certain thief conditions? If that is the case, you probably need to look at their code and see how they put the sounds in so that you can develop an option to remove them... else and for all honesty tis a better route ask the other mod author to add in the option to not have those sounds. or to assist you in developing such a component if they are okay with your mod removing them as an option.... Otherwise idk what you are asking...

DISABLE_FROM_KEY would be the best way to clean up that right? How can i find those references?

this is a new weidu feature for me. idk what it does.

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


#57 i30817

i30817
  • Member
  • 611 posts

Posted 04 November 2011 - 02:12 PM

No, even the official voices. Problem with a mixed hideinshadows and findtraps mode (besides that you can't use it combat generally), is that every 16 seconds or so the timer changes modes. And chars that are thieves say their "hide in shadows" cute voice clip. I have a pure hide in shadows mode, that doesn't have this problem though.

The main script code right now:
Spoiler

EDIT;
I think i'm going to ignore that "problem", maybe add a only findtraps mode...

Edited by i30817, 04 November 2011 - 04:27 PM.


#58 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 04 November 2011 - 05:28 PM

I'm used to BG1 where there is just an annoying sound (but no voice) when trying to go into stealth mode. Guess BG2 is different.
hmm one way to find out is to play the game with strref =1 set in the baldur.ini file that will display the strref for all the text in the game and so any sounds played associated with text or associated with no text but called up and played as if it were a text string would also be shown. You could jot those strrefs down and then in your optional component 'update' the game text by replacing those strrefs without the associated sound file.

but then again it could turn out to be some hardcoded thing that you might have to ask about over in the ToBex

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


#59 i30817

i30817
  • Member
  • 611 posts

Posted 04 November 2011 - 06:19 PM

Well well well, there is actually a pattern.

http://www.shsforums...post__p__473156

"XXXXXXX5.wav : Successfully Hid In shadows"

Edit: tried to find the "now you see me, now you don't" sound that Imoen uses, it didn't follow the naming scheme (IMOEN47). So that should only be for the protagonist.

Eeeh.

Edited by i30817, 04 November 2011 - 06:31 PM.


#60 Sasha Al'Therin

Sasha Al'Therin
  • Modder
  • 615 posts

Posted 04 November 2011 - 07:41 PM

oh so it is on the cre file in BG2 that makes it easier in your option component to remove those sounds. just null that entry and nothing will play

EDIT: unless you want the text to show, but no sound... then you gotta look up every npc that you want to remove the sound on and replace the string with sound with a soundless string. off the top of my head it sounds like a manual task, but there might be a way to do it on the fly with weidu....

Edited by Sasha Al'Therin, 04 November 2011 - 07:44 PM.

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