-
Posts
38 -
Joined
-
Last visited
Content Type
Forums
Events
Downloads
Gallery
Mods
News
Store
Posts posted by Reddbane
-
-
@subtledoctor
As a followup to Jan's recommendation, are there any of specific class or kits among your major mods you would recommend I look at if I want to examine this pseudo summon scripting? Moreover, have any of your mods ever used a kit changes script?
-
Could someone point to some mods or other examples that use this kind of scripting? That way I can study them and try to get a grasp upon the mechanics.
-
I have another question, though this one requires something of a preface. A kit can be applied to a character at any time using utilities like EEkeeper; in fact a character can even retain a kit for a class different than their own, for example, a Fighter could have the Assassin Kit applied to him, and, even though it will not effect his fighter levels in any way, the game will remember that said character has that kit. Then if that fighter chooses to dual classes into a thief, rather than becoming a True-Class thief, he will start his second class as an Assassin, with all of it's unique class features and restrictions intact, and then will continue the game as a Fighter x / Assassin x dual. It is an interesting engine feature that I'm surprised has never been utilized in the main game.
With that said, my question is how is the most direct way to apply a kit to a character, preferably via an opcode? I know there are opcodes to change alignment, sex, level, etc.
-
In regards to certain spells that vary in effectiveness depending on the level of the target (ie death spells, certain HLAs, etc., I think maybe Tenser's T) is there any difference if a target is a Level 15 Mage or a Level 2 Fighter/ Level 15 Mage? To put it another way, would that 2 Fighter Levels have any effect the character (besides the obvious fighter skills), vs the same character that is a pure mage?
Does anyone know about this?
-
In regards to certain spells that vary in effectiveness depending on the level of the target (ie death spells, certain HLAs, etc., I think maybe Tenser's T) is there any difference if a target is a Level 15 Mage or a Level 2 Fighter/ Level 15 Mage? To put it another way, would that 2 Fighter Levels have any effect the character (besides the obvious fighter skills), vs the same character that is a pure mage?
In regards to the summons, I wanted specifically to know how to make a summon that follows the party from map to map. And, moreover, can one make a summon that follows from room to room but still has a limited summon duration?
-
Within the item files there are options to delineate the Item properties: Silver, Cold-Iron, and Adamantine. Does anyone have an in-depth guide/list to what these actually do in IE engine when applied to an item? And, in regards to overcoming defenses, how do they compare to the “Magical” property? Are they any way similar to how these materials work in 3e, in regards to Devils, Demons, Fey, and damage reduction?
Next I want to ask some questions about dual-classed characters, specifically in regards to how their level is recognized by the game. I know caster level is determined by each respective class, but in regards to spells and attacks that detect “Hit Dice”, I’ve heard a dual classed character’s HD is determined by the average between the two classes, that is First Class Level + Second Class Level, divided by two. Is that true? The next thing I want to ask is, with a Dual-Classed character, how does the game “read” said character’s level in regards to scaling New NPCs as well as level-scaled enemies/challenges: does the game simply use the higher of the Dual-Classed character’s two levels, or does it actually add the two together?
Next I want to ask how a summoning spell determines the status of the summoned creature, in regards to whether it is friendly, hostile, neutral, controlled, etc; but more importantly how it is determined whether a creature can follow the party from map to map (like a familiar) or is stuck in the map it is summoned (like a normal summon)? Is that determined in the spell file or the creature file, and what are the different options?
-
I changed behavior to increment, (+2) which sets the wearer to 4, which works for my purposes.
So now the item effect works.
-
One last note before moving on: the kit clab thing can be done in any number of ways, not all of which require the two-step process of creating an array and then doing actions based on the contents of that array. With INNER_ACTION you can do the work from right inside the kitlist COPY operation:
COPY_EXISTING ~kitlist.2da~ ~override~ COUNT_2DA_COLS cols READ_2DA_ENTRIES_NOW ~r2en_kitlist~ cols FOR (row = 2; row < r2en_kitlist; row += 1) BEGIN READ_2DA_ENTRY_FORMER ~r2en_kitlist~ row 5 class_ab READ_2DA_ENTRY_FORMER ~r2en_kitlist~ row 8 class_num PATCH_IF (class_num == 12) OR (class_num == 18) BEGIN // rangers INNER_ACTION BEGIN APPEND ~%class_ab%.2da~ ~ABILITYXT AP_XTRNGOF~ UNLESS ~ABILITYXT~ END END END BUT_ONLY
(I think you also had too any ENDs in your earlier code, which might have been screwing it up.) So you ask, why deal with those arrays? The answer is simply that I figured out how to do it, and implemented those arrays, before I knew about INNER_ACTION. And now I'm operating according to the principle of "if it ain't broke, don't fix it."
As for opcode 233: I use it with 'while equipped' timing extensively, including using it to increment proficiencies unrelated to the one used by the weapon with the equipping effect. So the opcode definitely works.
This might sounds weird, but how do you know it doesn't work? Are you testing it in some way? Maybe apply a 326 effect that requires 4 stars in dual-wielding, and seeing if it fires? Or are you just looking at the character record screen? If the latter, it could just be a proficiency-display quirk. The game only expects you to have 3 stars, so it might not bother displaying anything higher than that. Meaning, the effect may be working perfectly well.
I know it is not working because I made "Two weapon Style" 1-3 pips have a -2 damage penalty to the offhand, while 4 pips has none. If I add the 4 pips manually (via eekeeper) it works, that is the offhand damage penalty disappears. For some reason, however, If I try to apply the 4 pips via opcode 233 (via an item) it does not work. The item effect code seems to properly function, however, if I change the "Proficiency:" line to a weapon (like clubs) the item applies the pips.
-
You are trying to apply the above to EE game ? Asking cause the weapon styles won't be editablein the non-EE game. And have you tried to use a different timing mode, cause ... the while equipped might not work on opcode 233.
Yes it is EE and the code does work when equipped, sometimes. The code itself is based off of one of Weimar's clubs that changes club proficiency to 5. Interestingly when it is set to Clubs, it works.
-
A new problem arose, unrelated to weidu, involving using the opcode 233 (Modify proficiencies) on an item as a effect.
I tried adding this item effect to Montolio's Cloak:Type: Modify proficiencies (233)Target: Self (1)Power: 0# stars: Active class: 4, Original class: 0Proficiency: PROFICIENCY2WEAPON - 114Behavior: Set if higher (0)Timing mode: Instant/While equipped - 2Dispel/Resistance: Natural/Nonmagical (0)Duration: 0Probability 1: 100Probability 2: 0Unused: 00 00 00 00 00 00 00 00 h# dice thrown/maximum level: 0Dice size/minimum level: 0Save type: ( No save )Save bonus: 0Special: 0What it should do is raise "Two weapon Style" to 4 pips (for reference, I added a functional 4th level to 2 Weapon style), while the item is equipped. But for some reason this does not seem to work. The code itself is based on some of Wiemar's items which increase proficiency values with weapons.Does anyone know why this is not working?To clear out some obvious answers, the 4th level of "Two weapon Style" works properly if given to a character via EEkeeper, and opcode (233) does apparently work with "Two weapon Style", as applying it as an effect in EEkeeper to a character does produce the desired effect (4 pips in Two Weapon style).Anyone? -
[?] should just be another variable, which stores the .2da clab filename of each kit. So, you could call it "2da_name" or something. Then,
DEFINE_ASSOCIATIVE_ARRAY rangers_array BEGIN "%2da_name%" => 1 END
Now you have an array containing the clab table of every ranger kit, except CLABRN01. (All arrays have associated vslues, but in this case you don't need it, sonyou can set it to 1 and ignore it.) Then:
ACTION_PHP_EACH ranger_kit AS clab => blah BEGIN ACTION_IF FILE_EXISTS_IN_GAME ~%clab%.2da~ BEGIN APPEND ~%clab%.2da~ ~stuff~ END END
Also you don't need the ACTION_FOR_EACH for CLABRN01 since there's only one.I can't get anything following this:
COPY_EXISTING ~kitlist.2da~ ~override~COUNT_2DA_COLS colsREAD_2DA_ENTRIES_NOW ~r2en_kitlist~ colsFOR (row = 2; row < r2en_kitlist; row += 1) BEGINREAD_2DA_ENTRY_FORMER ~r2en_kitlist~ row 5 class_abREAD_2DA_ENTRY_FORMER ~r2en_kitlist~ row 8 class_numPATCH_IF (class_num == 12) OR (class_num == 18) BEGIN // rangersDEFINE_ASSOCIATIVE_ARRAY d5_rangers_array BEGIN "%class_ab%" => "%class_num%" ENDENDENDBUT_ONLY. . .to work. Perhaps I'm mistaken about "blah".I used this following it:ACTION_PHP_EACH ranger_kit AS clab => %class_num% BEGINACTION_IF FILE_EXISTS_IN_GAME ~%clab%.2da~ BEGINAPPEND ~%clab%.2da~ ~ABILITYXT AP_XTRNGOF~ UNLESS ~ABILITYXT~ENDENDBut nothing was patched. -
The last thing I need to do at the moment is finish coding a function that will append an ability to all Ranger Clab files, and do so for any kits added.
At the moment I use this to account for the base class
ACTION_FOR_EACH ~file~ IN~clabrn01~BEGINACTION_IF FILE_EXISTS_IN_GAME ~%file%.2da~ BEGINAPPEND ~%file%.2da~ ~ABILITYXT AP_XTRNGOF~ UNLESS ~ABILITYXT~ENDENDBut I can't manage to figure out how to put together the code that will read the ranger kitlist and then "Append" to all the relevant Clab files.Examining a few other mods, I imagine part of it (the read part) could function like:COPY_EXISTING ~kitlist.2da~ ~override~COUNT_2DA_COLS colsREAD_2DA_ENTRIES_NOW ~r2en_kitlist~ colsFOR (row = 2; row < r2en_kitlist; row += 1) BEGINREAD_2DA_ENTRY_FORMER ~r2en_kitlist~ row 5 [?]READ_2DA_ENTRY_FORMER ~r2en_kitlist~ row 8 class_numPATCH_IF (class_num == 12) OR (class_num == 18) BEGIN // rangersDEFINE_ASSOCIATIVE_ARRAY d5_rangers_array BEGIN "%[?]%" => "%class_num%" ENDENDENDENDBUT_ONLYBut the [?] parts I'm unsure about, nor do I know how to make the proper "connections" between the read function and the Append code. -
-
So looking over the list: it appears that "XT" is available, but at the moment it seems that registering (or any communication) with BWL is impossible, so could someone register it for me? I've published several mods already, [ 3.5 Edition/ Pathfinder style Tweaks Collection (thac0, Constitution, hit dice) ], but now I'm approaching the point in my work where I'm going to start adding new files to the game, rather than just patching existing files.
-
1)
I assume you're talking about this tutorial. This code should work for setting the flag to toggle critical hit aversion.
COPY_EXISTING_REGEXP GLOB ~^.+\.itm$~ ~override~ // copy all item files PATCH_IF (SOURCE_SIZE > 0x71) BEGIN READ_BYTE 0x31 proficiency // read the byte containing weapon proficiency type PATCH_IF (proficiency == 102) BEGIN // quarterstaff WRITE_BYTE 0x1b (THIS BOR 0b00000010) // set flag for toggle critical hit aversion END END BUT_ONLY_IF_IT_CHANGES
However, as far as I'm aware, that flag doesn't have anything to do with backstabs. It has to do with changing whether helmets and other items prevent critical hits or not. You can probably achieve what you want by adding an effect to the items (opcode #263) that sets the wielder's backstab multiplier to x1.
Thanks, greatly. Although this opens a new can of worms. How do I add that Item Effect (I know how how to create the proper opcode and effect, manually) via weidu patching? I assume a good deal of the code would be the same:
COPY_EXISTING_REGEXP "^.+\.itm" override
PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
READ_SHORT 0x31 weaprof
PATCH_IF (weaprof = 102) BEGIN
[]
END
END
BUT_ONLY_IF_IT_CHANGES
But what would the code in [] be to blanket patch something that isn't a binary toggle?
-
Is there some kind of list of what and what not characters (not the specific combinations, but the characters themselves) can be properly recognized by the BG or EE engine, and thus are available for prefixes? as we seem to be running out of the conventional ones. I noticed the use of the "section sign" ( § ) and that began me thinking that perhaps the use of some other unconventional characters might free up some possibilities. The "dagger signs" ( † ‡ ) come to mind, deos anyone at least know if they work?
-
While working on a recent mod attempt I’ve come to some impasses due to my rather poor skills at using weidu; in fact, that would be a rather kind appraisal, as I find myself near illiterate when it comes to weidu, doing most of my work by repurposing others’ code for what I need to accomplish, otherwise the actual coding process is rather opaque to me.
Let me get to what I’m stuck upon: firstly, I’m trying to create a code that will patch all quarterstaves to remove the backstab feature by toggling the “EE/Ex: Toggle critical hits (25)” feature in the itm files. So far based on previous reference, I’ve managed to bang out this code:
COPY_EXISTING_REGEXP "^.+\.itm" override
PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
READ_SHORT 0x31 weaprof
PATCH_IF (weaprof = 102) BEGIN
WRITE_[bor or Byte?] 0x1b (THIS [bor or Byte?] 0b[?])
END
END
BUT_ONLY_IF_IT_CHANGES
But in reading the Bor/Byte tutorial I’ve found myself over my head. I can’t seem to figure out whether the [bracketed] parts should be a Bor or Byte (I think it’s Bor), and I know I need a binary to accomplish the task, but I can’t seem to grasp how I translate what I want into the proper 1s and 0s. Could anyone help me with the missing pieces?
The second problem is a bit more vague. What I need to accomplish is to create a weidu code that patches the WEAPPROF file so that all 3’s within the “2Weapon” row are turned into 2’s. This is what, with some help, I’ve put together:
COPY_EXISTING ~WEAPPROF.2DA~ override
COUNT_2DA_COLS cols
FOR (col = 3; col < cols; ++col) BEGIN
READ_2DA_ENTRY 34 cols col val
PATCH_IF %val% = 3 BEGIN
SET_2DA_ENTRY 34 cols col 2
END
END
For obvious reasons (though not to me) this code does not work, and, being a poor hand at weidu, I imagine I’ve made a bunch of syntactical errors in this code that prevent it from working. Could correct the code or tell me what I did wrong?
I’m immensely thankful for any help I can receive, in advance, and I hope you can be patience with me, given I lack a great deal of the Programmer’s savvy.
A Series of Questions about aspects of the IE engine
in Modding Q&A
Posted
@subtledoctor
I'm actually studying your Kensai revision, since it does use a script to apply a kit, after using a script to initiate a dialogue choice. I've been able to locate the relevant files (Spl, script, cre) files that initiate dialogue that begins the choice, but I wonder if you could help point me to the relevant script and creature files that apply the respective (weapon) kit change once the dialogue decision had been taken? That is what names shoud be looking for .BCS and .CRE, since all I could disover, so far, was D5_KENF.CRE and D5D5_KENF.BCS, which I assume is used to "create" the dialogue choice?