Jump to content

argent77

Modders
  • Posts

    1,587
  • Joined

Everything posted by argent77

  1. It can have consequences for spells which use probability ranges to apply certain effects. I have recently described such a consequence in this comment for a spell provided by one of my kit mods.
  2. I still can't reproduce this issue in my BG2:EE 2.6 installation. Is there anything else involved? Edit: I could repro after removing my current baldur.lua and having it recreated from scratch by the game. It looks like this issue depends on specific game options.
  3. I can't reproduce this behavior. Polymorphing between shapes with different personal space sizes didn't hinder movement in my test. The Enhanced Editions provide some nice diagnostic features that might help. Add these lines to the baldur.lua: SetPrivateProfileString('Game Options','Render Search Map','1') SetPrivateProfileString('Game Options','Render Dynamic Search Map','1') The first line enables rendering of the static search map while pressing the SHIFT key. The second line enables rendering dynamic map tiles such as personal space of creatures, even that of invisible creatures, while pressing the CTRL key.
  4. Improved Shamanic Dance This mod improves the main feature of the Shaman class - the Shamanic Dance. It allows you move at reduced speed while dancing to improve tactical options and provides additional features such as more useful spirits at higher levels, a new shamanic spell as well as several shaman-specific artifacts. Version 4.2 fixes compatibility issues with EE patch 2.6, improves combat behavior of summoned spirits and makes shaman-specific items available to BG2:EE and EET. The full changelog can be found in the Readme. You can grab the latest release from the download link below. Links: Forums: Beamdog, SHS Downloads: GitHub Readme
  5. "No such index" indicates that the strref doesn't exist in the dialog.tlk. The most likely cause is that the language set in NI is not the same as the game language used for installing the mod. The file "weidu.conf" (found in the game installation folder) contains the language code used for mod installation. The same language should be set in NI (via menu Options > TLK Language).
  6. The way how to proceed to the Bandit Camp has been changed in the EE 2.6 patch. This change is not correctly imported by EET which results in the area not being automatically revealed on the world map. In previous patch versions it was triggered from area scripts of AR3351 and AR3352 (Feldepost's Inn) after defeating Tranzig. Now it's triggered from the BALDUR.BCS script. You can fix it manually by adding this script portion to the BALDUR.BCS in your EET game with Near Infinity: IF Global("bd_tranzig_dead","GLOBAL",0) Dead("tranzig") THEN RESPONSE #100 SetGlobal("bd_tranzig_dead","GLOBAL",1) AddJournalEntry(227490,QUEST_DONE) EraseJournalEntry(227489) EraseJournalEntry(227405) EraseJournalEntry(227491) EraseJournalEntry(231447) EraseJournalEntry(231448) AddJournalEntry(231449,QUEST) END IF Global("RevealBandits","GLOBAL",0) OR(2) Global("bd_tranzig_let_go","global",1) Dead("tranzig") THEN RESPONSE #100 SetGlobal("RevealBandits","GLOBAL",1) RevealAreaOnMap("BG1900") END
  7. Near Infinity v2.2-20210501 In May 2021 Near Infinity celebrates its 20th anniversary. For this occasion, a new version v2.2-20210501 is released which introduces a full-featured creature animation decoder and viewer. It comes in three different applications: a quick viewer, a powerful creature animation browser and creature animation support for the area viewer. In addition to the new feature the release also provides a great number of bugfixes, updates and improvements. More information as well as a detailed Changelog can be found in the respective topics at Spellhold Studios and Beamdog Forums. Download: GitHub
  8. The code above was just a simplified example, but mechanism itself works well enough for me. I need to determine the right PlayerX target in any case to make shamanic dance persistent across save and reload operations, since LastSummonerOf() target is cleared whenever you load a saved game. I tested the shouting technique as well. With the right implementation the delay is barely noticeable, so it would have been a good fallback option.
  9. The name is a bit misleading. It's true that creature will always run scripts even if off-screen (at least in the EE games). However, creatures without this opcode attached will run scripts at a considerably slower rate (about 1/3rd or 1/4th rate). Moreover, it looks like off-screen creatures move only at halved speed (which might be true for other actions as well). With this opcode creatures seem to move and act at the same speed as on-screen.
  10. Yeah, that's basically how I wanted to implement it. However, in my case I need to tell the overridden creature a more specific target to use for distance calculation. Shout seems to be a complicated but achievable way. But now after I've given it some more thought, I think it's possible to circumvent the whole shout mechanism since Creature A from the sketch can only be one of the Player[1-6] targets. In that case I just need six identical TriggerOverride blocks each focusing on another PlayerX target. IF InPartySlot(LastSummonerOf(Myself),0) // Player1? TriggerOverride(LastSeenBy(Myself),Range(Player1,28)) THEN RESPONSE #100 AttackOneRound(LastSeenBy(Myself)) END IF InPartySlot(LastSummonerOf(Myself),1) // Player2? TriggerOverride(LastSeenBy(Myself),Range(Player2,28)) THEN RESPONSE #100 AttackOneRound(LastSeenBy(Myself)) END // and so on...
  11. Using shouts is an interesting idea, I'll have to do some tests to see how effective it is. Since shouts come with a small delay I guess the observers may appear like stuck for a few moments whenever a shout is initiated. The situation described in my previous post can happen frequently for multiple "observers" at the same time. It's intended as a way to prevent spirits summoned by the shamanic dance from moving out of the shaman's sight. Otherwise it would cause them to be unsummoned since EE patch 2.6.
  12. I'm struggling to find a solution for the following problem: An observer has to determine the distance between two other creatures within its visual range. Both creatures are already marked as target by the observer. How can I determine the distance between these two creatures from the observer's point of view? It would suffice to check whether both creatures are within visual range of each other. I've drawn a sketch to visualize the problem.
  13. I couldn't find any changelogs for SoD either, so I did one myself (but only for the more relevant resource types). I ran a quick mass compare for SoD-specific scripts, dialogs and creatures between patch v2.5.17 and v2.6. From what I can see there were no changes made to dialog structures, only one creature change (BDFARRL.CRE) and a number of script changes. Most of them belong to combat scripts. But there were also changes made to a couple of area scripts, trigger scripts and character scripts. I have attached a patch file with the script changes. I have also checked the dialog.tlk for text changes and attached a diff file for that as well. Edit: I have cleaned up the script diffs by removing the auto-comments. sod_tlk_diffs.zip sod_script_diffs.zip
  14. This component is probably mostly a matter of taste. However, there is one event in BG2 which might break the game: the Bhaal chase in the Spellhold dream. It prevents the Bhaal apparition from entering Candlekeep interior, so you're stuck in the dream unless it's fixed with a savegame editor.
  15. WeiDU v247 has several compatibility issues. Afaik, only a small number of mods is affected by it. However, replacing all WeiDU installers by earlier versions doesn't work either because some mods make use of features introduced by the latest WeiDU version.
  16. That error appears to be triggered only if you use WeiDU v247 to install the mod. Try installing the mod with WeiDU v246 (the version included in the mod archive).
  17. Strrefs are more than just the strings. They also include associated sounds and flags that describe how these strings are displayed. Moreover, some languages contain separate female strings. Using string references is the most accurate way to reproduce the content of a dialog structure. To adjust BG1 dialogs for EET you simply have to add 200000 to their strref values (provided all string references are available in vanilla BG1 or SoD).
  18. It's mentioned in the IESDP (if you know what you're looking for).
  19. SetGlobal() and SG() are different script actions. Only actions listed in INSTANT.IDS are executed within dialog states by the engine. Everything else is added to the action queue and executed only when the dialog ends. SetGlobal() is listed, SG() is not.
  20. It's certainly possible with the WeiDU commands GET_DIRECTORY_ARRAY and GET_FILE_ARRAY. Arrays can be expanded dynamically simply by assigning new values to the array. Example: // Retrieve list of subfolders GET_DIRECTORY_ARRAY ~paths~ ~%MOD_FOLDER%/mypath~ ~.+~ // Collect file entries OUTER_SET index = 0 ACTION_PHP_EACH paths AS _ => current_path BEGIN // Skip special folder names "." and ".." ACTION_IF (~%current_path%~ STRING_MATCHES_REGEXP ~.*/\.\.?~ != 0) BEGIN GET_FILE_ARRAY ~files~ ~%current_path%~ ~.+~ ACTION_PHP_EACH files AS _ => file_name BEGIN OUTER_TEXT_SPRINT $my_array(~%index%~) ~%file_name%~ OUTER_SET index += 1 END ACTION_CLEAR_ARRAY ~files~ // prevents false positives when array is reused in the next pass END END // Output: OUTER_FOR (i = 0; i < index; ++i) BEGIN OUTER_TEXT_SPRINT file $my_array(~%i%~) PRINT ~File %i%: %file%~ END
  21. Judging from the answer on this page it's most likely a raw OCaml error message which isn't really helpful for the modder since it references an internal implementation detail.
  22. If you simply want to use an existing weapon animation without making any changes then it's much simpler to change the weapon item's equipped appearance to that weapon animation code.
  23. A bit of technical information and why so few modders have tried to add more weapon animations in the past. Weapon animations (as well as shield and helmet animations) are separate sprites that are drawn on top of the avatar sprite. These overlays correspond with the individual animation sequences of the avatar sprites. For example, the character animation uses three different animation sequences for one-handed weapons (slash, backslash and thrust). The same is true for two-handed weapons which use a different set of three animation sequences. Since spears are two-handed weapons in the game, there are only the two-handed weapon animations available. That's why you don't see a weapon animation if you transform spears into one-handed weapons. You could simply rename the weapon animations to match the one-handed animation names, but then weapon movement and avatar movement are out of sync. You have no choice but to create a new set of animations from scratch or change a similar-looking one-handed weapon animation to match your desired style. However, both options would result in an enormous amount of work. You would have to create individual animations for 9 different directions for each of the three attack types. Moreover, you have to bear in mind that there are creature animations in different sizes. There are halflings/gnomes/dwarves with small-scale animations, elves with medium-scale animations and humans with large-scale animations. All in all you would have to create or modify thousand or more individual animation frames. On top of that, if you want to allow the weapon to be wielded in the left hand you would also have to create the same set of animations for the left hand.
  24. It's a spelling error (Saphire -> Sapphire). I was able to reproduce the looping issue with the full script. After a bit of testing I could determine the culprit. The action DestroyItem() appears to block further script execution. I remember that lynx (or Avenger?) mentioned some time ago that only script actions listed in INSTANT.IDS are safe to be used in dialogs. Most other script actions block further script execution.
×
×
  • Create New...