Jump to content

argent77

Modders
  • Posts

    1,597
  • Joined

Everything posted by argent77

  1. Spellhold Studios Reveal Hidden Gameplay Options This is a mod for all Enhanced Edition games that adds a great number of useful options directly to the game's options menu. These options include the (in)famous debug console, various convenience and graphics options and many more. Version 3.0 adds more Gameplay options. Moreover, it allows you to recreate the key binding sections for mage and priest spells with vanilla game spells as well as custom spells added by mods. You can grab the latest release from the download links below. Links: Forums: SHS, Beamdog Download: SHS, GitHub Readme
  2. Unfortunately the 256 kits limit is still present in the EE games. It doesn't apply to all kinds of kits though. True multiclass kits (which are, afaik, only supported by the EE engine) are not affected by this limitation. However, from a practical standpoint this doesn't make much difference because you have only little control over the kit installation order, and most kits are still single class kits. I tried to overcome this restriction some time ago for the A7-add_kit_ex library. However, that would have required considerable changes in WeiDU's ADD_KIT functionality which are not backwards compatible. Since it's unlikely to exceed the kit limit (unless you install pretty much every kit mod in existence) I dismissed the idea in the end.
  3. Yes, that should work. These script slots exist only in memory. They are not saved with the game, so after a reload (and possibly an area transition) the script is cleared automatically. I'm not sure I understand this sentence, but if I trigger the area script change via baldur.bcs is shouldn't make any difference, right? Yes, it's badly worded. I mean master scripts are still executed in linked non-master areas. For example, after entering an interior map the script of the exterior map (e.g. city map) will still be executed. My example from above is probably not fail-safe enough. It's probably better to reset the variable to 0 directly in the block where the new area script is assigned. Otherwise the variable may not reset at all if the player saves and reloads or changes the area.
  4. In that case the mechanism used by breakable cutscenes might help you to save some work. It sets a script to a temporary area script slot with the SetAreaScript(S:Script*,I:ScriptSlot*ASCRLEV) action. The same action can also be used to clear the script slot after the script is done. Breakable cutscenes use the OVERRIDE slot, but any other slot type should work as well. For example, add this to an area script: IF Global("should_update","GLOBAL",1) THEN RESPONSE #100 SetGlobal("should_update","GLOBAL",2) SetAreaScript("myscript",OVERRIDE) // or use slots DEFAULT, GENERAL, RACE, CLASS Continue() END And add this block to the bottom of your custom script ("myscript.bcs" in this example): IF True() THEN RESPONSE #100 SetGlobal("should_update","GLOBAL",0) SetAreaScript("",OVERRIDE) // or use slots DEFAULT, GENERAL, RACE, CLASS END The master/non-master relation of area scripts should also work for these scripts since they are technically still area scripts.
  5. It depends. If these blocks are added only to a few selected area scripts then it might be a better option. For NPC override scripts you would also have the option to assign these scripts temporarily on demand.
  6. 250 is quite a number. But I don't think this is enough to slow down script processing in the EE engine. However, loading time of areas might increase (if only slightly). Is there no way to reduce the number of blocks?
  7. NPC Generator This mod allows you to install any number of pregenerated or exported characters as regular NPCs. It is available for original BG2, BGT, Tutu, BG:EE (with or without SoD), BG2:EE, EET and IWD:EE. Version 1.5 comes with several bugfixes and improvements. Moreover, it allows you to define custom epilogues for the NPCs that are shown at the end of the Throne of Bhaal expansion of original BG2, BGT, BG2:EE and EET. Download: GitHub Discussion: G3, Beamdog Readme
  8. Update: NPC Generator 1.5 This version adds biography text to the installed NPC if available and fixes an issue with NPCs turning hostile when hit by friendly fire in follower mode. Moreover, it is now possible to define custom epilogues for the NPCs in BG2/BG2EE by providing a text file (or two) with the text that should be displayed. More details can be found in the readme. Changelog: - Added support for custom epilogues at the end of BG2:ToB for installed NPCs - Custom biography text is assigned to installed NPCs if available - Show explanatory message if NPCs are not available for installation - Fixed NPCs turning hostile when hit by friendly fire in follower mode
  9. I hope you don't mind if I expand the bug report a little. I haven't tested it in-game yet (BGEE+SoD), but I suspect this script portion of PLAYER1D.BCS has been incorrectly generated by the mod: IF GlobalGT("cd_lore_monster_total","GLOBAL",71524) // ??? Global("cd_lore_monster_bonus","GLOBAL",0) THEN RESPONSE #100 SetGlobal("cd_lore_monster_bonus","GLOBAL",1) ApplySpellRES("cdlore1",Myself) DisplayString(Myself,71525) // Defeating many types of monsters has earned you a lore bonus. END IF GlobalGT("cd_lore_monster_total","GLOBAL",71526) // ??? Global("cd_lore_monster_bonus","GLOBAL",1) THEN RESPONSE #100 SetGlobal("cd_lore_monster_bonus","GLOBAL",2) ApplySpellRES("cdlore1",Myself) DisplayString(Myself,71527) // Defeating even more varieties of monsters has earned you a lore bonus. END IF GlobalGT("cd_lore_monster_total","GLOBAL",71528) // ??? Global("cd_lore_monster_bonus","GLOBAL",2) THEN RESPONSE #100 SetGlobal("cd_lore_monster_bonus","GLOBAL",3) ApplySpellRES("cdlore1",Myself) DisplayString(Myself,71529) // You have earned another lore bonus for defeating so many monsters. END It looks like the numbers used by the GlobalGT() triggers are strrefs and refer to the strings "monster_bonus_1", "monster_bonus_2" and "monster_bonus_3" respectively. Maybe a case of undefined variables during installation? Edit: Another potential issue: The following script block was added identically over 80 times to the DPLAYER3.BCS script: IF Global("cd_lore_monster_100","GLOBAL",0) See([0.0.100]) StateCheck(LastSeenBy(Myself),STATE_REALLY_DEAD) THEN RESPONSE #100 SetGlobal("cd_lore_monster_100","GLOBAL",1) IncrementGlobal("cd_lore_monster_total","GLOBAL",1) END
  10. 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.
  11. 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.
  12. 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.
  13. 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
  14. "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).
  15. 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
  16. 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
  17. 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.
  18. 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.
  19. 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...
  20. 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.
  21. 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.
  22. 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
  23. 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.
×
×
  • Create New...