Jump to content

argent77

Modders
  • Posts

    1,581
  • Joined

Everything posted by argent77

  1. Could you please provide a minimal working example...? Using the script block I put above nothing happens ... I tested with this party script: IF HotKey(D) THEN RESPONSE #100 SetGlobalRandom("a7count","LOCALS",1,20) CreateItemGlobal("a7count","LOCALS","arow04") XEquipItem("arow04",Myself,SLOT_AMMO0,EQUIP) SetItemFlags("arow04",11,TRUE) // IDENTIFIED | NONSTEALABLE | NONDROPABLE END It did everything I would expect from the script. A random number of arrows are created and placed into the ammo slot where it is identified and made unremovable.
  2. I have run XG0046.WED, XG0066.WED and XG1220.WED through an old test project of mine that disassembles and reassembles WED files, which apparently fixed the unused bytes. But I didn't test it in-game. The errors of tile indices being out of range indicate either an update of the TIS files where some tiles were removed, or an incorrect tile mapping in the WED file. You could try to fix it by setting the out-of-range indices to the last valid tile index from the TIS file. But that should be thoroughly tested. The corrupted ITM file is more puzzling. The bogus data indices two unused effect entries (either for the ability section or the feature block), but the numbers don't quite fit. There are still 8 bytes remaining that can't be properly assigned. Depending on where you remove the 8 bytes of data (front or back) the unused effects either contain damage opcode (stunning) and a "cast spell" opcode (invisibility), or a damage opcode (stunning) and a corrupted AC bonus opcode definition. I'd suggest to delete all bytes and recreate possibly missing effects based on item description. fixed_weds.zip
  3. It looks like this action doesn't work if two or more instances of the same item exist in the inventory. I haven't noticed any issues with CreateItemGlobal() though.
  4. As of Near Infinity v2.4-20230729 you can check the game for invalid effect opcodes. This is the result after installing SCS IWD spell components on oBG2:
  5. Near Infinity v2.4-20230729 Near Infinity is a resource browser and editor for Infinity Engine games, such as Baldur's Gate or Icewind Dale. It is written in Java and available for Windows, macOS and Linux. This release introduces a new layer to visualize impeded door cells to the Area Viewer, adds a new check for invalid opcodes, provides a new "Save as..." button for resources, and comes with many more general improvements. Near Infinity is available as a platform-independent Java JAR file, Windows installer and macOS PKG installer, as well as a Flatpak application from Flathub for Linux. More information as well as a detailed Changelog can be found in the respective topics at Spellhold Studios, Beamdog Forums, and GitHub Discussions. Download: GitHub (Java JAR file, Windows and macOS installers) Flathub (Linux Flatpak archive)
  6. [IWD/TotLM] Wrong version of Hobart flagged as 'INNOCENT'? I don't know if this is a bug or an intentional decision: The halfling Hobart exists as two creature versions. The first version can be encountered in Lonelywood and is flagged as "THIEF". The second version exists in his hideout in Castle Maluradek where he is flagged as "INNOCENT". The way these creatures are flagged allows you kill him in the Lonelywood tavern in front of all guests without any repercussions (provided he can't call for help). But killing him in Castle Maluradek, in the middle of nowhere, will immediately drop your reputation by a substantial amount. Wouldn't it make more sense to swap these flags? Btw, this issue already exists in oIWD.
  7. Does anyone know which BAM resource is used for the visual AoE effects of "Teleport Field" or "Sphere of Chaos"? These spells use the projectile PFIELD.PRO which defines a hardcoded entry for the explosion effect.
  8. Another screenshot from the same area can be found here:
  9. Exploding chain reactions don't work in the original scripting and therefore shouldn't work in an effect-based version either. It was just a funny quirk that I enjoyed during testing.
  10. I agree. HitBy() can trigger a nice chain reaction though, if several Blast Skeletons are within range.
  11. Blast Skeletons can be encountered on the third level of Dragon's Eye and in the TotLM Watchknight Tomb. They are supposed to self-destruct when taking damage. However, the scripting can be easily disrupted by status changes like Hold Undead, or delayed by keeping the creature busy with physical attacks. Apparently the developers were aware of this shortcoming and gave them an illegal amount of 200 HP. While fixing the latter issue is probably outside the scope of the fixpack, I'd propose to change the scripted self-destruct sequence to an op232 effect (condition: either TookDamage or HitBy). That way the creature will self-destruct reliably on hit (or damage). The only way to avoid the damage would then be by using ranged attacks or destroying the creature via Turn Undead or spells with similar effects.
  12. I'd rather have an expiration sound for single target invisibility spells as well. But changes like this are probably outside the scope of a fixpack.
  13. I don't think that the expiration sound effect should be removed. Depending on your playing style you may have party members who don't want to reveal themselves under any circumstances (thieves, clerics, etc.). In those cases it is helpful to hear a sound effect when invisibility expires, so you can apply it anew. However, the current version of the spell stacks with itself. If you cast it repeatedly then you'll hear the expiration sound effect for each individual casting of the spell. I'd suggest to add a "Remove effects by resource" opcode to the spell to remove delayed sound effects whenever the spell is recast within the spell duration.
  14. I agree that they should be immune to petrification. It's probably a copy-paste error from the IWD Water Elementals, which aren't directly immune to petrification either. However, IWD spells contain checks for various creature types which also cover elementals. This is not the case in BG(2). I was able to petrify the water elementals with a high-level Chromatic Orb.
  15. You could try the following option: SPL: Special ability "Auto-Backstab once" (target "Caster/Self") - Add "Immunity to resource and message" (op324) - with creature type "If NOT Invisible or Improved Invisible" (entry 143 in BG2EE) - with resource set to this resource - Note: This will only check visibility state when the special ability is cast. - Add "backstab every hit" (op303) - Add "Melee hit effect" (op248) - set resource to EFF "Ability removal" - (optionally) Add "Ranged hit effect" (op249) - set resource to EFF "Ability removal" EFF: "Ability removal" (target "Self") - Set "Cast spell" (op146) - set resource to SPL "Ability removal" SPL: "Ability removal" (target "Caster/Self") - Add "Remove effects by resource" (op321) - set resource to SPL "Auto-Backstab once" ability The "hit effect" opcodes and "Ability removal" spells ensure that you can only auto-backstab the target once while the ability is active.
  16. Sounds even better if it catches all the remaining cases. These zombies use the "Die()" trigger. This trigger is valid only for a single script round and should therefore count correctly (provided there is no way to prevent the script from running.) Edit: Looks like I spoke too soon. Apparently they may (theoretically) count twice if they die a stoned/frozen death. But zombies are immune to cold damage and petrification, so in this case it should be fine.
  17. Based on the report in this thread I did a more thorough search in BGEE/SoD and found several more instances where specific death states can screw up the scripting. [BG1] OGRES.BCS (Sarhedra's mini-quest to kill two Ogres) Result: Sarhedra doesn't acknowledge that you defeated the ogres; quest cannot be completed (SARHED.DLG). [BG1] GNOLLDR.BCS (Help Drizzt to defeat a couple of Gnolls) Result: Drizzt does not respond when you try to talk to him after all gnolls have been defeated (DRIZZT.DLG). [BG1] NEGOBLIN.BCS (Neera's personal quest) Result: The ranger Magreb doesn't recogize that you've killed all the goblins (NEMAGREB.DLG). [BG1] DOPALD.BCS (Help Aldeth Sashenstar to kill all doppelgangers in the Merchants' League estate) Result: Aldeth thanks you prematurely for killing all doppelgangers (ALDETH.DLG). Other dialogs may be affected as well (e.g. Brandilar or Scar). [SoD] BDFFDOP1.BCS (Doppelganger found in the Iron Throne Basement after helping "him" out in the castle basement) Result: Continuously creates inventory items on the ground (lots of valuable stuff). [SoD] BDHELP.BCS (Underground River Entrance area: Animals summoned by druids help you to attack the Crusader Encampment) Result: An endless stream of new animals are continuously summoned if you petrify or freeze one of the animals. [SoD] BDWE1STR.BCS (Wizard trying to bind Water Elementals in the Underground River area) Result: Petrifying/freezing a water elemental summons the Nereid prematurely, and killing her, the wizard and the elementals doesn't trigger the "Completed Quest" journal entry. In all of these cases the culprit is "StateCheck(Myself,STATE_REALLY_DEAD)" where this trigger can be true while the script keeps running, e.g. for petrified or frozen deaths. The least intrusive way to fix it is probably by adding a guard variable to ensure that the block is executed only once. There are several instances in the game where this option is already implemented. Change this code: IF StateCheck(Myself,STATE_REALLY_DEAD) THEN RESPONSE #100 IncrementGlobal("xxx","GLOBAL",1) END to this: IF StateCheck(Myself,STATE_REALLY_DEAD) Global("dead","LOCALS",0) THEN RESPONSE #100 SetInterrupt(FALSE) SetGlobal("dead","LOCALS",1) IncrementGlobal("xxx","GLOBAL",1) SetInterrupt(TRUE) END
  18. WeiDU provides several commands for manipulating tables. This code example searches for the "SHADOWDANCER" line and changes the last column to another value. COPY_EXISTING ~clswpbon.2da~ ~override~ // Reads whole table into memory to speed up operation READ_2DA_ENTRIES_NOW clswpbon 1 // Actual data starts at row 3 FOR (row = 3; row < clswpbon; ++row) BEGIN // Reads class/kit label from column 0 for each row READ_2DA_ENTRY_FORMER clswpbon row 0 label // Match found? PATCH_IF (~%label%~ STR_EQ ~SHADOWDANCER~) BEGIN // Sets column 3 ("ZERO_SKILL_THAC0") to value 3 // Note: It's important to put updated values into a different variable! SET_2DA_ENTRY_LATER clswpbon_out row 3 3 // No need to continue the FOR-loop SET row = clswpbon END END // Write changes back to file SET_2DA_ENTRIES_NOW clswpbon_out 1 BUT_ONLY
  19. The script that is responsible for counting the Ogre deaths can be easily disrupted, e.g. by turning them to stone or causing freezing death, which causes the variable that counts their deaths to go up indefinitely. There are probably more conditions that can screw up their scripting. Moreover, Sarhedra's dialog conditions are very specific and won't work anymore if the counting goes wrong. Both parts would have to be updated to make the quest more foolproof.
  20. Near Infinity v2.4-20230714 Near Infinity is a resource browser and editor for Infinity Engine games, such as Baldur's Gate or Icewind Dale. It is written in Java and available for Windows, macOS and Linux. This release provides many visual improvements, such as icon preview for items and spells, portrait thumbnails in saved games, new visual elements in the area viewer, and more. Near Infinity is available as a platform-independent Java JAR file, Windows installer and macOS PKG installer, as well as a Flatpak application from Flathub for Linux. More information as well as a detailed Changelog can be found in the respective topics at Spellhold Studios, Beamdog Forums, and GitHub Discussions. Download: GitHub (Java JAR file, Windows and macOS installers) Flathub (Linux Flatpak archive)
  21. Anyone looking for mods hosted on Spellhold Studios could try their luck with the Wayback Machine: https://web.archive.org/ with the following Download URLs: (Source: Big World Setup archive) A good portion of the listed mods should be available that way.
  22. Try this link: https://web.archive.org/web/20170929002350/http://www.shsforums.net/files/download/984-haerdalis-romance/
  23. I have fixed some issues in NI's BAM Converter that adversely affected the conversion quality for graphics with alpha blending. You can download this version from the Nightly Releases section.
×
×
  • Create New...