Jump to content

Endurium

Members
  • Posts

    73
  • Joined

  • Last visited

Everything posted by Endurium

  1. Amended my post with an update, and posting this because edits don't update the forum's activity list.
  2. Yes, also Ninjatō. On topic: my main gripes are technical; I wish Beamdog had implemented IWD2's simplified spell duration, and hadn't overloaded version 1.0 structural resources, which have a history of different versions per game/engine version.
  3. Container flags, according to IESDP and NI anyway " bit 1: Disable if no owner " for EE. The name field is 32 bytes, same as scriptnames in other structures, so I doubt it will take dialog tokens like <GABBER> which are reserved for strings in the TLK file. I suppose I could fiddle with it again this weekend since my IWDEE game is set up for playing and I have a new character standing in the tavern. ... I did some additional testing in both IWD Complete (GoG) and IWDEE (GoG) with no discernible results. Owner name doesn't matter, owner's scriptname doesn't matter; container flags pertaining to owner have no effect. The "owner" who was standing nearby didn't react either. Sure, I could have used a script to cause him to do something after I took the gem from the container, but that's what all the other games do too; no owner name necessary. Even the other container in the inn with a name (for the dwarf who isn't in the Inn) uses a script to cause the dwarf to take action if a lockpick attempt failed. Again, the owner name is irrelevant. On the other hand, the owner name could have merely been a clue to the developer's world builders that the container belonged to someone, so add a script or something if action was deemed necessary..
  4. I have, by ensuring I had valid owner names, having said owner standing nearby, using flags. Otherwise I wouldn't have posted on the subject. Feel free to test it yourself.
  5. If you check the IESDP this flag is colored as an "unknown, but maybe it does this?" value. Looks like the devs were playing with it in IWD classic and it was ported into IWDEE; AR1008 has a container with Erevain's name on it but no flag. Another container there has an unused dwarf's name and a script to hide him if a lockpick attempt failed on the container. I've gone through looting containers and nobody reacted, and the containers didn't do anything special. *shrug*
  6. Is this in the EE? If so you could look at Yoshimo's sword and notice the Restrict Item effect; it is set to use the character's script name (kept in their CRE file) which effectively prevents the item from being equipped by anyone not having that script name.
  7. Ah, the price of progress. Have you seen The Gray Stone Mod for BG1EE? It's wonderful that the UI for the EE can be modified to suit one's tastes. As for the campaign changes, they are superficial and can be modded to be as they used to be, if someone feels strongly enough about them. I really enjoy the more advanced engine beneath the EE Infinity Engine games after many years of dealing with the limitations of the older games. Also, Argent77 has made a Convenient NPCs mod for those who prefer having a more classic experience in that regard.
  8. It seems that way. Generally, if the format is consistent, so is the behavior.
  9. Apparently the Quick Slots are a subset of the MISC0 through MISC19 inventory slots. Which end, I don't know. CRE Format (scroll down) The link shows the actual order of the slots but doesn't correlate it with the slots.ids values, so you'll have to experiment to find out which of the MISC slots are backpack and which are quick item.
  10. For the games you're concerned about all have 20 (IWD2 has 24) such MISC slots for backpack locations, and all have them declared in SLOTS.IDS. That includes classic as well as EE. Incoming 20-trigger OR! Except, BG1 classic doesn't have the OR trigger, so you'll have to resort to other means if you intend to support that game. Perhaps an AND block consisting of checking all non-MISC slots. That would almost work for the other non-PST games too, except IWD2 which has additional equipment slots.
  11. Try checking his script (KELDORN.BCS) and modify this block: IF InParty(Myself) GlobalTimerExpired("KeldornMetPlayer","GLOBAL") OR(2) ReputationGT(Player1,14) ReputationLT(Player1,9) See(Player1) !StateCheck(Player1,STATE_SLEEPING) CombatCounter(0) Global("KeldornJudgement","LOCALS",0) THEN RESPONSE #100 SetGlobal("KeldornJudgement","LOCALS",1) Interact(Player1) END The setting of the Judgement variable is what enables his hostile conversation. It checks if he's in the party, if his timer expired, your reputation, and if he's passed judgment on you yet. Then it sends you off into conversation. Note that conversations are usually triggered by scripts, so check scripts first when you're looking to change a companion's behavior toward you or another party member..
  12. I noticed the weird pattern too. GemRB list (in order) runs from Bits 0 to 7 of 4th Field, Bits 0 to 7 of the 3rd Field, then Bits 0 to 7 of the 2nd Field. It's like the devs started filling in the exclusion data from the final field back to the first.
  13. I double-checked with NI including Cera Sumat and it looks great, order included. Thanks for the update and for putting up with me. Modding is easy, documenting is hard.
  14. Good call, I corrected the offsets. Yes I meant 0x29 hex and downward.
  15. The only thing I referred to in the header is the missing Half-Orc racial flag. The kit exclusion flags, which I posted the offsets to, are separate, as in BG2. I looked at Cera Sumat and indeed it blocks classes in the header, but it also blocks all but the Paladin kits in the four kit usability fields further into the file (starting at offset 0x41) I posted this because IESDP and NI don't cover these fields for IWD2. I also tested all of this in-game.
  16. public static final String[] s_kituse201 = {"None", "", "", "", "", "", "", "", ""}; public static final String[] s_kituse202 = {"None", "Cleric of Lathander", "Cleric of Selune", "Cleric of Helm", "Cleric of Oghma", "Cleric of Tempus", "Cleric of Bane", "Cleric of Mask", "Cleric of Talos"}; public static final String[] s_kituse203 = {"None", "Mage Diviner", "Mage Enchanter", "Mage Illusionist", "Mage Evoker", "Mage Necromancer", "Mage Transmuter", "Mage Generalist", "Cleric of Ilmater"}; public static final String[] s_kituse204 = {"None", "Paladin of Ilmater", "Paladin of Helm", "Paladin of Mystra", "Monk Old Order", "Monk Broken Ones", "Monk Dark Moon", "Mage Abjurer", "Mage Conjurer"}; This is a paste from my local Near Infinity source (Java SE) for ITM 2.0 after I took the time today to test all of this. In case it's not clear, "Usability" byte 1 (0x29) is not used. "Usability" byte 2 (0x2B) is as s_kituse202 above: bit 0 = Cleric of Lathander ... bit 7 = Cleric of Talos "Usability" byte 3 (0x2D) is as s_kituse203 above: bit 0 = Mage Diviner ... bit 7 = Cleric of Ilmater "Usability" byte 4 (0x2F) is as s_kituse204 above: bit 0 = Paladin of Ilmater ... bit 7 = Mage Conjurer Feel free to do what you want with this. The labels I used were just for quick convenience while I was testing. As a side note, IWD2 kits don't have swapped dwords so if you look at them with NI as it is available now, they will show up wrong. I added a check for IWD2 in my local NI and the kits appear in the structure display perfectly. On a related note, I also looked at SPL 2.0 exclusion (0x1E) and so far was only able to confirm alignment is working. I took a cleric of Ilmater completely through all other bits and nothing was ever blocked, but he was blocked by alignment flags. None of the player-accessible Wizard spells use the exclusion flags. public static final String[] s_exclude_20 = {"None", "Chaotic*", "*Evil", "*Good", "*Neutral", "Lawful*", "Neutral*", "?", "?", "?", "?", "?", "?", "?", "?", "?", "", "?", "?", null, null, null, null, null, null, null, null, null, null, null, null, null, null}; So here's where I left off with my code after testing/confirming all 32 bits. Chaotic* includes Chaotic Good, Chaotic Neutral, Chaotic Evil, etc. *Good includes Lawful Good, Neutral Good, Chaotic Good, etc. The question marks are the unknown bits specified by a few priest spells. And, since I can't seem to focus anymore, here's another one I just remembered. The primary exclusion flags (ITM 2.0 offset 0x1E) left out Half-Orc at bit 29, right after Gnome. Actually, since the IESDP is lacking a few other bits as well (NI has them already) here's more code... public static final String[] s_usability20 = {"Normal", "Barbarian", "Bard", "Cleric", "Druid", "Fighter", "Monk", "Paladin", "Ranger", "Rogue", "Sorcerer", "Wizard", null, "Chaotic*", "*Evil", "*Good", "*Neutral", "Lawful*", "Neutral*", null, null, null, null, null, "Elf", "Dwarf", "Half-Elf", "Halfling", "Human", "Gnome", "Half-Orc", null, null}; with Barbarian at bit 0 and Half-Orc at bit 29.
  17. Ah yes, those. I also disable (via no-drop flag) mundane (non-magical) equipment from dropping from creatures so I don't end up with hundreds of short swords, leather armors, etc.
  18. NPC Schedules expanded to more ... NPCs! Would mostly apply to people in civilized areas and those having homes in the country; up at dawn, gone (presumably to bed) at sunset. For added realism, could have sleeping NPCs on beds, or floors if there aren't any beds, with opposing schedules so it appears our hard-working farmer has gone to sleep. Obviously not a good tweak for people who don't want to wait until morning to turn in a quest, but might be enjoyable to some role players in the community.
  19. On BGEE only, location 0x44 in the "Worldmap Entry" substructure contains an offset to where AR1000 (Ulgoth's Beard) is in the "Area Entry" list. Because it is not present in BG2EE though the SoA map has additional DLC areas, I suspect this was for marking where Tales Expansion areas appeared in the Area Entry list. For modding purposes it doesn't seem important since the area count at 0x0020 (Worldmap Entry) includes all additional Area Entries. The eight bytes between the "BGEE Flags" field and this offset are unknown. That leaves 112 unknown bytes at the end of the "Worldmap Entry".
  20. There are four gender checks in Neera.BCS; if you change all of them you should be good to go until SOD. I checked her dialogs in the main campaign and there aren't any gender checks there or in any other scripts pertaining to her (SOD not included; I don't have it installed to check). Edit: oops I missed that you're using EET but there still may be four gender checks in her main script, not just two.
  21. Looks like BGEE/SoD are finally updating to 2.5 on certain clients. I'm waiting on GoG to update my library there..
  22. Ah depreciation; I removed it on my end after finding an EE bug where if I tried to sell a stack of items to a store with depreciation, it would refuse the transaction because a code bug rendered the items valueless (wrong math apparently, the depreciation devaluing them to zero). Selling them one by one or in smaller stacks overcame this. So yeah a no-depreciation tweak would be helpful to everyone
  23. We could do 6d5 (split as 2x 3d5), but it's still not the same distribution. The more dice involved, the less likely you are to get an extreme value, high or low (visit anydice.com for the graphical curve), plus now it's bumped the minimum damage to 6 instead of 5. Like I said, it's suboptimal mathematically, but consistent with how it was done everywhere else. This is why we added the save-for-half flag to the damage opcode in the EEs. I see, and thanks for the link and the flag in EE; glad I moved on to EE modding (excepting IWD2 of course).
  24. Just theorizing here; would it be possible (i.e. would the engine allow it) if you swapped the values internally to a 6d5 and divided it 3d5 always plus 3d5 if save is failed (or in D&D terms 6d5, 3d5 if save successful)? That would provide a perfect division if it could be done. It seems like the die values might accept any numeric value and I have no idea if the engine only accepts classic die sizes.
  25. Are you using Argent77's NI fork? It's the most up to date version I'm aware of and presents EFF 2.0 as you say it should be. https://github.com/Argent77/NearInfinity/
×
×
  • Create New...