The shorty saving throw bonuses are not automatically updated in-game, so you will have to account for them.
They only update when you level up (despite having nothing to do with level).
@Raduziel is correct about APR = 1. Only monsters with more natural attacks need a higher APR on their CRE file (or to have it on their weapons).
How do I make an item be exclusive for a NPC? And how do I make it display a message when someone tries to remove it (like happens with Edwin's Amulet)?
ITEMRES = Item resref
NPC_SCRIPTNAME = Scriptname/Death Variable of NPC the item belongs to
STRING_REF = String Reference displayed when you attempt something not allowed (determined by FLAG)
FLAG = determines limitations (not 100% certain of them):
Item cannot be removed once equipped by it's owner, does not prevent others from equipping it prior.
Item cannot be equipped by others.
Item cannot be removed or picked up.
Once equipped, item can only be exchanged for another item.
USERNAME - String Reference of NPC's name (For Item usability List)
@subtledoctor Nothing I saw while building the Dreadful Witch. The Shaman Dance is basically a bard song with two nasty opcodes: one that interrupts the action if you move and other that calls a spell that makes you somehow useless during the dance.
---
How do I change a line at the Fate Spirit's dialogue. I could check for this string with NI, but I'm afraid it will change in an EET game.
How do I make Weidu locate and replace a string? I have it's full text (basically I want to make it call Mazzy a fighter/cleric instead of just a fighter).
The Shamanic Dance shouldn't be too different from a regular bard song. It's basically a spell with a duration of (about) one round and consists of several parts (for vanilla shamans): the base spell (SPSH004.SPL), a subspell that handles the restrictions (SPSH003.SPL) and the spirit script that handles unsummoning and special conditions (BDSHUNSU.BCS).
Hello fellow modders, I need some help to fix EEUITweaks on IWDEE.
I did not write the original UI patching code and I have a very limited knowledge of weidu so it's hard to have an idea of what is broken.
Basically, if I understand correctly, the code reads the UI.menu file in a buffer and then extracts different parts (comments, lua code, menu, ...). Components can then patch things. And at the end, the parts are put back together and the UI.menu file is written.
It seems that there is a problem with some escaped characters, if there is an "\\" in the original file, it is replaced with an "\" at the end (which is invalid and breaks the UI.menu file).
I remove the patching steps to only do read/extract and then insert/write and it's also broken (if I only do read and write it works). So there is something wrong in the extract or insert process.
Here is for example one of the extract step:
/*******************************************************************************
* uimenuextractluablocks
*
* Removes all blocks of Lua code (delimited by ` pairs) from uibuffer and
* replaces them with tags which are used as the key in an associative array
* entry whose value is the original code block. Eliminates false parsing of
* Lua code as UI definitions.
******************************************************************************/
DEFINE_ACTION_MACRO uimenuextractluablocks
BEGIN
LOCAL_SET extractcount = $uimenulibglobal("luacount")
LOCAL_SPRINT tempstr ~~
COPY - ~$uimenulibglobal("uibuffer")~ ~$uimenulibglobal("uibuffer")~
REPLACE_EVALUATE ~\(%MLUA%\)~
BEGIN
SPRINT tempstr ~%INLUABASE%%extractcount%~
DEFINE_ASSOCIATIVE_ARRAY uimenulibglobal
BEGIN
~luablocks~,~%tempstr%~ => ~%MATCH1%~
END
SET extractcount += 1
END
~%tempstr%%LE%~
OUTER_SET $uimenulibglobal("luacount") = extractcount
END
And one of the insert step:
/*******************************************************************************
* uimenuinsertluablocks
*
* Complementary macro to uimenuextractluablocks - puts the previously extracted
* Lua code blocks back into uibuffer.
******************************************************************************/
DEFINE_ACTION_MACRO uimenuinsertluablocks
BEGIN
LOCAL_SPRINT tempstr ~~
COPY - ~$uimenulibglobal("uibuffer")~ ~$uimenulibglobal("uibuffer")~
REPLACE_EVALUATE ~\(%MLUAMARK%\)%LE%~
BEGIN
SPRINT tempstr $uimenulibglobal(~luablocks_%MATCH1%~)
END
~%tempstr%~
END
I'm not sure if it will be clear enough for anyone to be able to help, but again I'm not familiar with the code so I don't really know what's going on.
How do I identify an actor index to remove it by using the fj_are_estructure function?
Thanks.
Edit: Here's how fellow modder from the future who found this thread through Google:
ACTION_FOR_EACH area IN [area list] BEGIN
COPY_EXISTING ~%area%.are~ override
SET act_size = 0x110
READ_LONG 0x54 act_off //Offset to Actors
READ_SHORT 0x58 act_num // Count of Actors
FOR (i = 0; i < act_num; ++i) BEGIN
READ_ASCII (act_off + i * act_size + 0x80) act_file //CRE File
PATCH_IF (~%act_file%~ STRING_EQUAL_CASE ~CREFILERESREF~) BEGIN //The file I want to check
SET index = i
SET i = act_num
END
END
LPF fj_are_structure INT_VAR fj_delete_mode = %index% STR_VAR fj_structure_type = ~actor~ fj_cre_resref = ~BDPFAUG~ END
BUT_ONLY IF_EXISTS
END
Part of the code was built by me but @kjeron was the one who actually made it work as it should.
But it depends on the animation type you are using. The easiest to handle with is IWD, but the best are BG2 SPLIT and UNSPLIT (Infinity Animations naming) which provide 16 directions while IWD only provides 8.
Have a look here to read the next animation slots reference chart (WIP) provided by the incoming Infnity Animations version (EE compatible).
The labels are arbitrary: _FIREBALL because they are all tied to entries from FIREBALL.IDS (projectile explosions). Never got around to identifying the BAM for all of them.
If you wish, I could send you the install process coding I used to install missing Infinity Animations in EE games. It grants compatibility with other mods.
That's why I spoke about compatibility: Argent77's code does not check for slots which don't provide an ini file. For example 0x268 CHIMERA. In theory, you can add 0x268 MY_ANIMATION slot that will conflict any mod restoring the CHIMERA animation (like Infinity Animations).
That's why I spoke about compatibility: Argent77's code does not check for slots which don't provide an ini file. For example 0x268 CHIMERA. In theory, you can add 0x268 MY_ANIMATION slot that will conflict any mod restoring the CHIMERA animation (like Infinity Animations).
Only if ANIMATE.IDS doesn't have "0x268 CHIMERA" listed, which BGEE BG2EE and IWDEE all do.
LAF FIND_FREE_ANIM_SLOT INT_VAR slotMin = 0xe000 slotMax = 0xefff RET slot END
LAF TO_HEX_NUMBER INT_VAR value = slot minDigits = 4 RET hexNumber END
APPEND ~animate.ids~ ~0x%hexNumber% RA_PFAUG_ENLARGE~ UNLESS ~RA_PFAUG_ENLARGE~
CLEAR_IDS_MAP
COPY ~Pfaug_Raduziel/Spl/Pfaug.ini~ ~override/%hexNumber%.ini~
I'm writing some dialogues with globals being set and items being taken and given. They come back to some of the topics repeatedly, but changes of globals and has-item conditions don't get registered. I remember from long ago that it took dialogues two transitions to notice a change, but now nothing seems to happen no matter how much time I spend talking. Only after the end all of those actions become completed, items given and globals set. Why is that and how to change it?
Also I have a talking item with an EXTERN action, leading to the dialogue file of a nearby NPC (who notices the player is trying to unseal his letter and barks). The conversation triggers alright, but no name of the NPC displays - the line doesn't "belong" to anybody. How can I fix that?
Comments
They only update when you level up (despite having nothing to do with level).
@Raduziel is correct about APR = 1. Only monsters with more natural attacks need a higher APR on their CRE file (or to have it on their weapons).
Thanks!
ITEMRES = Item resref
NPC_SCRIPTNAME = Scriptname/Death Variable of NPC the item belongs to
STRING_REF = String Reference displayed when you attempt something not allowed (determined by FLAG)
FLAG = determines limitations (not 100% certain of them):
- Item cannot be removed once equipped by it's owner, does not prevent others from equipping it prior.
- Item cannot be equipped by others.
- Item cannot be removed or picked up.
- Once equipped, item can only be exchanged for another item.
USERNAME - String Reference of NPC's name (For Item usability List)I have a mod installed that removed it.
For anyone needing its here :
---
How do I change a line at the Fate Spirit's dialogue. I could check for this string with NI, but I'm afraid it will change in an EET game.
How do I make Weidu locate and replace a string? I have it's full text (basically I want to make it call Mazzy a fighter/cleric instead of just a fighter).
Thanks!
I did not write the original UI patching code and I have a very limited knowledge of weidu so it's hard to have an idea of what is broken.
Basically, if I understand correctly, the code reads the UI.menu file in a buffer and then extracts different parts (comments, lua code, menu, ...). Components can then patch things. And at the end, the parts are put back together and the UI.menu file is written.
It seems that there is a problem with some escaped characters, if there is an "\\" in the original file, it is replaced with an "\" at the end (which is invalid and breaks the UI.menu file).
IE, this: is replaced by this:
I remove the patching steps to only do read/extract and then insert/write and it's also broken (if I only do read and write it works). So there is something wrong in the extract or insert process.
Here is for example one of the extract step:
And one of the insert step:
I'm not sure if it will be clear enough for anyone to be able to help, but again I'm not familiar with the code so I don't really know what's going on.
Thanks.
Edit: Here's how fellow modder from the future who found this thread through Google:
Part of the code was built by me but @kjeron was the one who actually made it work as it should.
@jastey For future references
IF...
THEN...
Do
... - > SetGlobal()
Continue()
END
IF
Global(1)
THEN
Do...
- Doesn't work. Right?
But it depends on the animation type you are using. The easiest to handle with is IWD, but the best are BG2 SPLIT and UNSPLIT (Infinity Animations naming) which provide 16 directions while IWD only provides 8.
Have a look here to read the next animation slots reference chart (WIP) provided by the incoming Infnity Animations version (EE compatible).
I'm creating the Enlarge spell in IE (well, actually it is a Joint Venture between me, @kjeron and @Grammarsalad ) so I'll use a lot of slots.
Thanks!
Here some hardcoded entries you can add: The labels are arbitrary: _FIREBALL because they are all tied to entries from FIREBALL.IDS (projectile explosions). Never got around to identifying the BAM for all of them.
Thanks, I already noted some of them used by projectile files but did not integrate them to the chart because IA does not handle them.
However, I agree, they indeed should be mentioned. I will update the chart this evening.
If you wish, I could send you the install process coding I used to install missing Infinity Animations in EE games. It grants compatibility with other mods.
So, you should use this array instead:
@Gwendolyne I'm editing the file right now. I've edited the code.
Here is some coding (by @argent77 ) I have in a file called Macros.tpa
And here is what I have in the .tp2
Where the code given by you would enter?
I believe it is in the right place now.
Thanks!
Also I have a talking item with an EXTERN action, leading to the dialogue file of a nearby NPC (who notices the player is trying to unseal his letter and barks). The conversation triggers alright, but no name of the NPC displays - the line doesn't "belong" to anybody. How can I fix that?
I know the kit's internal name, but I don't know in which column it is (as this position varies from install to install).
How can I do it?
Thanks.
PS: This alter will happen if another mod is installed, so I can't just set this at the WEAPPROF entry in the kit's code.
I don't get it. Kitlist.2da has a Proficiency column, but with values that (for me) goes from 29 to 54. How can this be helpful?
Thanks