argent77 Posted September 30, 2017 Share Posted September 30, 2017 (edited) IESDP does not yet provide descriptions for a number of script triggers. This topic is intended to present and discuss descriptions for new or existing script triggers, so that they can be added to IESDP eventually. The following BG(2)EE triggers are still lacking a meaningful description: 0x0006 ReceivedOrder(O:Object*,I:Order ID*) See post #7. 0x0007 Said(O:Object*,I:Dialog ID*) No description yet. 0x406D UnselectableVariable(I:Num*) See post #8. 0x406E UnselectableVariableGT(I:Num*) See post #8. 0x406F UnselectableVariableLT(I:Num*) See post #8. 0x40B5 RealGlobalTimerExact(S:Name*,S:Area*) No description yet. 0x40C6 G(S:ResRef*,I:Num*) See post #2. 0x40C7 GGT(S:ResRef*,I:Num*) See post #2. 0x40C8 GLT(S:ResRef*,I:Num*) See post #2. 0x40ED INI(S:Name*,I:Number*) No description yet. 0x40F1 ModalStateObject(O:Object*,I:ModalState*Modal) See post #4. 0x40F8 CanEquipRanged() See post #9. 0x40F9 ImmuneToSpellLevel(O:Object*,I:Level*) See post #9. 0x40FB IsForcedRandomEncounterActive(S:Area*) See post #9. 0x4103 CheckItemSlot(O:Object*,S:Item*,I:Slot*SLOTS) See post #9. 0x4104 CurrentAmmo(S:ResRef*,O:Object*) See post #9. The following PSTEE triggers are not listed on IESDP yet: 0x40ee Faction(O:Object*,I:Faction*Faction) No description yet. 0x40ef Team(O:Object*,I:Team*Team) No description yet. 0x40f0 IsLocked(O:Object*) No description yet. 0x40f7 BitCheck(S:Name*,S:Area*,I:Bit*Bits) No description yet. 0x40fc PartyScriptsActive() No description yet. 0x0101 WasInDialog() No description yet. 0x4105 TimerActive(I:ID*) No description yet. 0x0106 NamelessBitTheDust() No description yet. 0x4107 NearbyDialog(S:DialogFile*) No description yet. 0x4109 StuffGlobalRandom(S:Name*,S:Scope*,I:Range*) No description yet. 0x0108 FailedToOpen(O:Object*) No description yet. 0x410a Proficiency(O:Object*,I:Slot*WProf,I:Value*) No description yet. 0x410b ProficiencyGT(O:Object*,I:Slot*WProf,I:Value*) No description yet. 0x410c ProficiencyLT(O:Object*,I:Slot*WProf,I:Value*) No description yet. 0x010d NullDialog(O:Object*) No description yet. 0x410d ExtraProficiency(O:Object*,I:Value*) No description yet. 0x410e ExtraProficiencyGT(O:Object*,I:Value*) No description yet. 0x410f ExtraProficiencyLT(O:Object*,I:Value*) No description yet. 0x4110 LastPersonTalkedTo(O:Object*) No description yet. 0x4111 NearSavedLocationPST(I:Range*) No description yet. 0x0112 Vacant() No description yet. 0x0113 HarmlessOpened(O:Object*) No description yet. 0x0114 HarmlessClosed(O:Object*) No description yet. 0x0115 HarmlessEntered(O:Object*) No description yet. Edited September 30, 2017 by argent77 Quote Link to comment
Roxanne Posted September 30, 2017 Share Posted September 30, 2017 I used these on occasions in my mods: 0x40C6 G(S:ResRef*,I:Num*)Shorthand for Global0x40C7 GGT(S:ResRef*,I:Num*)Shorthand for GlobalGT0x40C8 GLT(S:ResRef*,I:Num*)Shorthand for GlobalLt I never saw this one used anywhere 0x40F1 ModalStateObject(O:Object*,I:ModalState*Modal)No description yet. Only ever used 0x40C9 ModalState(I:State*MODAL)Returns true only if the active CRE is in the state/mode specified. e.g. detecting traps. e.g. IF ActionListEmpty() AreaType(DUNGEON) CombatCounter(0) !See([ENEMY]) !ModalState(DETECTTRAPS) OR(2) !StateCheck(Myself,STATE_INVISIBLE) !StateCheck(Myself,STATE_IMPROVEDINVISIBILITY)THEN RESPONSE #100 FindTraps()END Quote Link to comment
argent77 Posted September 30, 2017 Author Share Posted September 30, 2017 I assume G/GGT/GLT are all using GLOBAL scope implicitly (same as the SG() action counterpart)? Quote Link to comment
argent77 Posted September 30, 2017 Author Share Posted September 30, 2017 Looks like ModalStateObject() does exactly what the name suggests:0x40F1 ModalStateObject(O:Object*,I:ModalState*Modal)Returns true only if the specified object is in the state/mode specified. e.g. detecting traps. Quote Link to comment
Roxanne Posted September 30, 2017 Share Posted September 30, 2017 I assume G/GGT/GLT are all using GLOBAL scope implicitly (same as the SG() action counterpart)? Yes. I found no equivalent for LOCALS or Area references. Quote Link to comment
Avenger Posted September 30, 2017 Share Posted September 30, 2017 Yeah, nothing uses modalstateobject. It was originally made for the shaman dance but now that feature uses an effect It remained in the engine because it might be useful later. Quote Link to comment
argent77 Posted September 30, 2017 Author Share Posted September 30, 2017 This info is based on the GiveOrder() action description and verified by a quick test in BG1EE:0x0006 ReceivedOrder(O:Object*,I:Order ID*)This trigger is used in conjunction with the GiveOrder action, and works in a similar way to the Heard trigger. Only one creature at a time responds to an order, and creatures do not detect their own orders. The creature must be in visual range for this trigger to work. Quote Link to comment
argent77 Posted September 30, 2017 Author Share Posted September 30, 2017 The following triggers appear to be related to the unselectable state from script action MakeUnselectable() or effect opcode 365:0x406D UnselectableVariable(I:Num*)Returns true only if the active creature is for exactly the specified number of ticks (1/15th seconds) left under the effect of the script action MakeUnselectable() or opcode 365.Note: By default in BG2EE creatures stop processing scripts while under effect of the script action MakeUnselectable().0x406E UnselectableVariableGT(I:Num*)Returns true only if the active creature is for more than the specified number of ticks (1/15th seconds) left under the effect of the script action MakeUnselectable() or opcode 365.Note: By default in BG2EE creatures stop processing scripts while under effect of the script action MakeUnselectable().0x406F UnselectableVariableLT(I:Num*)Returns true only if the active creature is for less than the specified number of ticks (1/15th seconds) left under the effect of the script action MakeUnselectable() or opcode 365.Note: By default in BG2EE creatures stop processing scripts while under effect of the script action MakeUnselectable(). Quote Link to comment
argent77 Posted September 30, 2017 Author Share Posted September 30, 2017 (edited) 0x40F8 CanEquipRanged() Returns true only if the active creature can switch to a ranged weapon that is ready for use (e.g. a throwing weapon, such as darts, or a launcher with corresponding ammo, such as bow and arrow). 0x40F9 ImmuneToSpellLevel(O:Object*,I:Level*) Returns true if the specified object is immune to spells of the level specified by the 2nd parameter. 0x40FB IsForcedRandomEncounterActive(S:Area*) Returns true only if a random encounter to the specified area has been initialized by a preceding call of ForceRandomEncounter() or ForceRandomEncounterEntry(). 0x4103 CheckItemSlot(O:Object*,S:Item*,I:Slot*SLOTS) Returns true only if the item specified in the 2nd parameter can be found in the inventory slot (taken from SLOTS.IDS) of the specified object. 0x4104 CurrentAmmo(S:ResRef*,O:Object*) Returns true only if the specified object has a ranged weapon with the ammo specified by ResRef equipped. Edited September 30, 2017 by argent77 Quote Link to comment
lynx Posted November 11, 2017 Share Posted November 11, 2017 Info up to this point has been merged into iesdp, thanks Argent! Quote Link to comment
Recommended Posts
Join the conversation
You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.