Jump to content

kjeron

Members
  • Posts

    485
  • Joined

  • Last visited

Everything posted by kjeron

  1. $SOURCE(RES) is just the array construct form, it holds the same value as SOURCE_RES. Most arguments that accept the array construct as a value will automatically evaluate it one step (without auto_eval). I use it where I can to avoid using EVAL. Just a shame the array construct can't be used everywhere.
  2. Only the weapon to which it is attached. Parameter3 controls which weapons the opcode affects: 0 : Current Weapon (When attached directly to an item, otherwise no restrictions) 1 : Main-hand only (Includes Ammo and Fists) 2 : Off-hand only 3 : No restrictions Since global effects cannot set 'Parameter3', they will always use the default (0) value.
  3. 2) My vote is for "ADDSPELL.2DA". I think it would be better to store them ids => res instead of res => ids, so you can do the following COPY_EXISTING: ACTION_PHP_EACH wiz_spells AS ids => res BEGIN // ACTION END COPY_EXISTING ~%wiz_spells_WIZARD_ARMOR%.SPL~ override // PATCH BUT_ONLY IF_EXSITS Scanning filenames, then finding it's IDS, would be better than scanning IDS, and finding it's resref. SPWI101 will be offered to a wizard or sorcerer (barring specialist exclusions), no matter what label 2101 has in SPELL.IDS. COPY_EXISTING_REGEXP ~^SPWI[1-9]\([0-4][0-9]\|50\)\.spl$~ override PATCH_IF NOT FILE_CONTAINS_EVALUATED (~HIDESPL.2DA~ ~^%SOURCE_RES%[ %TAB%]+1~) BEGIN LPF NAME_NUM_OF_SPELL_RES STR_VAR spell_res = $SOURCE(RES) RET spell_name END SPRINT $wiz_spells($spell(name)) $SOURCE(RES) END BUT_ONLY COPY_EXISTING ~ADDSPELL.2DA~ override READ_2DA_ENTRIES_NOW READ 2 FOR (i = 1; i < READ; ++i) BEGIN SPRINT $wiz_spells($READ(~%i%~ 1)) $READ(~%i%~ 0) END BUT_ONLY IF_EXISTS
  4. It's really not. HIDESPL.2da serves no good purpose - all it does is further enable wasting the limited priest/wizard spell namespace. It would better to be abolished, and all Shaman spells and HLA's it currently contains given a resref out of the reserved priest/wizard namespace.
  5. Use ".2DA", an IDS extension may cause confusion, especially if someone tries to run IDS_OF_SYMBOL on it. Even if you don't hook into Olyven's system with his function, with a common ResRef->LABEL list, it would be easy to run your own parallel to it without either interfering. You can rewrite RES_NUM_OF_SPELL_NAME (macro/function/action/patch) in your ALWAYS block to include an alternate spell table without breaking it's current usage.
  6. @Austin Use ALLCAPS when appending VARIMPRT.2DA. ACTION_IF (GAME_IS ~bg2ee eet~) BEGIN APPEND ~VARIMPRT.2da~ ~5 BD_SAFANA_ROMANCEACTIVE~ END It doesn't matter what capitalization you use elsewhere - it just has to be ALLCAPS in this file.
  7. It's a bear, but the EE icon is poor quality. It's more clear if you look at it in original BG1. Likely leftover from designs to give Druid shapeshifting a dedicated button.
  8. @Austin The file you want is VARIMPRT.2DA, it looks like this: 2DA V1.0 NONE VARIABLENAME 1 NEERA_ROMANCE 2 DORN_ROMANCE_2 3 RASAAD_ROMANCE 4 BD_HAVE_SOD Just append you romance variable and it will be imported from saved games.
  9. It's EFF_E02.WAV, and it still plays if you remove the effect with other opcodes as well (321, etc...). op183 can suppress the sound when it terminates, but then it doesn't decrement skins when hit.
  10. Disable BIT13 and BIT14 in the PRO field at 0x240. (Blend area/ring animation and Glow area/ring animation)
  11. Does that include disabling BIT13 and BIT14 in the PRO field at 0x240. (Blend area/ring animation and Glow area/ring animation) Also, are you running the game at least v2.5 or higher.
  12. No particular reason it shouldn't work. It takes the game as-is, the only predefined aspects are descriptions for the traps that don't mimic any standard spells.
  13. Are you installing weidu in the correct language? Open Weidu.conf in the game folder, it will list the language (en_US, de_DE, etc...). If not, delete Weidu.conf and run Weidu again.
  14. ALTER_ITEM_EFFECT and ALTER_SPELL_EFFECT require setting check_globals and/or check_headers, they default to 0 (ignore). ALTER_EFFECT defaults both of them to 1 (check). This: LAUNCH_PATCH_FUNCTION ~DELETE_ITEM_EFFECT~ SET opcode_to_delete = 135 END should be: LAUNCH_PATCH_FUNCTION ~DELETE_ITEM_EFFECT~ INT_VAR opcode_to_delete = 135 END
  15. They both use the same stat, and usally the same portrait icon, and are both removed by op162, but they are used by different abilities. Effects using op175 (Hold): Hold Person, Hold Animal, Hold Monster, Bigby's, Tanari Death Gaze. Effects using op109 (Paralyze): Webs, Sphere of Chaos, Mimic Glue, Basilisks, Ghouls, Carrion Crawlers, Ghasts, Vamp. Wolves. There's no reason for Web to have either effect - op157 (web) already does everything either opcode does, and Bigby's would be better served using op185 or a mix of other opcodes. "Hold" is a mental effect - no different from a "Command" or "Charm" spell, just not broken by hostile action. "Paralysis" is a physical effect, usually chemical, disrupting the nervous system to prevent the body from receiving signals from the brain.
  16. It worked because WEREWODR is already 8 characters, which is the field size. Were it fewer, part or all of the extension would be included as the resource, and it would not work (and likely crash).
  17. The opcode works the same in both EE games. What I meant was that the items/spells that use it are setup differently. In BGEE, the Spell uses op135 with a duration. In BG2EE, the Item uses op135 while equipped. Both still require the item as a weapon for the new form.
  18. resource = ~BRBRP2.ITM~ // cut out the extension when specify these resources, just ~BRBRP2~ LAUNCH_PATCH_FUNCTION ~ADD_ITEM_EQEFFECT~ // You're running this in duplicate, on the item, and the spell (SPCL645.SPL). One or the other, but it should not be as a global effect on the spell, nor should you use timing mode 2 in a spell. When you use it for op135, you are not specifying a resource (creature) to polymorph into. LAUNCH_PATCH_FUNCTION ~ALTER_ITEM_EFFECT~ // You're running this on the items for opcode 135 - BGEE polymorph items don't use op135, their spells do - the two games (BGEE/BG2EE) do not handle polymorphs in the same manner.. You're also running it elsewhere calling 'parameter3' and 'parameter4' - those fields don't exist in item effects.
  19. Yes, they have to be triggered, like traps, that's the only thing that keeps them in the area when you save&reload. Not sure what you mean by cycle. You might want to look at "bd5000.are", bdstink.bcs", "bdstink.spl", "bdstink1.spl", and "bdstink.pro". It's has several area traps (regions) that fire a spell with a continuous projectile over their location whenever the area loads to provide the visual. Then uses a separate spell to apply the effects.
  20. Near Infinity is not setup to add/remove effects to/from Area Projectiles. They don't store spells, just effects. The first projectile field (by ResRef) controls the actual projectile used, while the second projectile field (by index) is used by op273 to clear area projectiles. The projectile does have to be area-effect. They aim at whoever triggers them.
  21. This is because Multiplayer doesn't pause the game as it should while you are selecting spells in the sequencer menu. The following casting activating any previously un-activated one is the current work-around. @subtledoctor If that work-around isn't viable, there is another possible fix: Locate the EFF file (%resref%X.EFF) that uses op257 (Create Sequencer). Create a spell with the same resource name (%resref%X.SPL). Add 2 global/casting effects: op256, Activate Sequencer (target=self, resource = ~%resref%X~) op172, Remove Spell (target=self, resource = ~%resref%X~) Add 1 ability header: Location(Ability), Icon(Any), Target(7), no effects. (The reason for using global/casting effects is because otherwise you get the "you cannot cast two of the same contingency spells" block, while an ability header is still needed for it to show up on the action bar). Locate the SPL that normally activates the sequencer (%resref%D.SPL), add that same op172 effect to it's (only) ability. In single-player, nothing should change, the extra ability will be removed immediately as the sequencer normally activates. In multi-player, a manual activation ability will be granted to use after exiting the sequencer menu.
  22. It can be as simple as applying 0-duration op72 just above op236, though you run the occasional risk it becoming permanent on the target as well (as op72 sometimes bugs out). Applying the op72 effect to the clone after it's created only changes it's EA value, it doesn't make it controllable, for that you would also need to use op5 or op241, using the "Neutral Charm/ Neutral Dire Charm" option, for at least 1 second. You can do this by applying in order: op272, once/sec, timing mode 9, then op236, then op321 to remove the op272 before it triggers on the target. op272 would trigger on the clone, casting a spell with op72: EA:ALLY, timing mode 1, and op241: Neutral Charm no text, duration =1.
  23. (Extended Header Target is '3|Dead actor') - It can target living and dead actors. It really just ignores any range requirement, including being in the same area. GENERAL=DEAD and STATE_DEAD are similar checks, either should do. Don't know why it uses two subspells.
  24. Cutscene Script (CUT59A.BCS) applies CLERIC_RESURRECTION to entire party (excluding CHARNAME/Player1, since it's expected that they cannot die), so same problem as below: The problem is that they shouldn't affect the living. Fixes for these should already be in v2.6, though I can't say for certain how it was implemented. Easiest way to fix is to move all of those op172 effects into another spell, which they will all share, and apply it through op326 checking if STATE_DEAD as the first effect in each spell. They still need to remove those abilities if the creature was actually dead, because the death itself will have already removed the sequencer effect (as well as the polymorph termination effect). The Rod of Resurrection lacks these removal effects, and needs to apply them in a similar manner for the same reason. Not likely. It applies op17, param1=200, param2 = (BIT16 + BIT17), which will remove STATE_DEAD, increase HP by 200, and remove any effect without timing modes (2 or 9). Sequencer creation always applies it's effect with timing mode 1, regardless of the timing mode used for creation.
×
×
  • Create New...