Skip to content

Releases: Bubb13/EEex

EEex v0.7.1-alpha

01 Dec 04:12
Compare
Choose a tag to compare
EEex v0.7.1-alpha Pre-release
Pre-release

Fixes:

  • Opcode #403 (ScreenEffects) should not mess with spell protections

EEex v0.7.0-alpha

23 Nov 21:34
Compare
Choose a tag to compare
EEex v0.7.0-alpha Pre-release
Pre-release

Changelog pending

EEex v0.6.0-alpha

22 Jun 09:30
Compare
Choose a tag to compare
EEex v0.6.0-alpha Pre-release
Pre-release
Changelog:

New Opcodes =>

  • Opcode #403 (ScreenEffects):

    Whenever an effect is being added to the target creature a Lua function specified by the resource key is called. Maximum function name length is 8, and function names must be completely upper-case. The Lua function's signature can be seen in the following header:

    function B3BLOCKD(originatingEffectData, effectData, creatureData)

    A return value of true blocks the effect from applying. Note: the immunity function "sees" effects after they have passed their probability roll, but before any saving throws have been made against said effect / other immunity mechanisms have taken place. The originating effect is passed via the immunity function's first Lua param.

  • Opcode #404 (OverrideButtonType):

    Alters a specific actionbar button on the target creature:
    Param1 = Type to override
    Param2 = Override with type

    Known values for both parameters match what is defined by EEex_ACTIONBAR_TYPE in M__EEex.lua:

    2 BARD_SONG
    3 CAST_SPELL
    4 FIND_TRAPS
    5 TALK
    7 GUARD
    8 ATTACK
    10 SPECIAL_ABILITIES
    11 STEALTH
    12 THIEVING
    13 TURN_UNDEAD
    14 USE_ITEM
    15 STOP
    21 QUICK_ITEM_1
    22 QUICK_ITEM_2
    23 QUICK_ITEM_3
    24 QUICK_SPELL_1
    25 QUICK_SPELL_2
    26 QUICK_SPELL_3
    27 QUICK_WEAPON_1
    28 QUICK_WEAPON_2
    29 QUICK_WEAPON_3
    30 QUICK_WEAPON_4
    100 NONE
    
  • Opcode #405 (OverrideButtonIndex):

    Alters a specific actionbar button on the target creature:
    Param1 = Actionbar index to override
    Param2 = Override with type
    Special = Actionbar config to match (-1 to match any class home)

    See Opcode #404 for known values of Param2.

Opcode Changes =>

  • Opcode #42 and Opcode #62:

    Special field of 1 ignores slot requirement.

  • Opcode #319:

    Implemented SPLPROT Modes.

    New Mode (Power) values:
    2 = like mode 1 but parameters use splprot.2da
    3 = like mode 0 but parameters use splprot.2da

    If 'Mode' is set to 2 or 3, then the creature type specified by the 'Stat Type' field will be affected by this opcode. See opcode #324 for more information.

Script Action Changes =>

  • EEex_Lua():

    Now runs Lua chunks, (Lua code embedded in the string arg), instead of calling a function.

    The actorID of the executing actor is passed to the chunk via the global EEex_LuaActorID.

Script Trigger Changes =>

  • EEex_LuaTrigger():

    Now runs Lua chunks, (see above).

    The actorID of the executing actor is passed to the chunk via the global EEex_LuaTriggerActorID.

    The return value of the trigger is passed back to the engine by setting the global EEex_LuaTrigger before returning from the chunk.

New Modules =>

  • B3_CuBar.lua:

    Allows actionbar to be customized in-game. Enable in EEex_INI.lua, and hold shift key while on world screen to use.

  • B3_Portr.lua:

    Disables action overlay on party portraits.

Module Changes =>

  • B3Hotke.lua:

    Can now cast spells that use an actionbar submenu by using B3Hotkey_CastTwoStep().

Function Changes =>

  • C:Eval():

    Can now accept an actorID as the 2nd param.

  • EEex_StoreTemplateInstance():

    Takes an additional first param (string) to target a specific menu.


  • Memorization retrieval functions now populate name and description data.

Fixes =>

  • Most bits utility functions have been reworked / fixed.

  • Opcode #42 and Opcode #62 should not ignore slot requirement by default, (see change above).

New Functions =>

  • EEex_AddPostResetListener(listener):

    Given listener function is called after an F5 UI reload is executed.

  • EEex_AlterActorEffect(actorID, match_table, set_table, multi_match):

    Like the WeiDU ALTER_EFFECT function, except that it alters effects in the middle of the game.

    EEex_AlterActorEffect(actorID, {{"opcode",232},{"parameter2",0},{"resource","SPWI304"}}, {{"resource","SPWI502"}}, 2)

    equals

    LPF ALTER_EFFECT INT_VAR multi_match=2 match_opcode=232 match_parameter2=0 STR_VAR match_resource=~SPWI304~ resource=~SPWI502~ END
    

    Valid field names:

    opcode
    target
    power
    parameter1
    parameter2
    timing
    duration
    probability1
    probability2
    resource
    dicenumber
    dicesize
    savingthrow
    savebonus
    special
    school
    lowestafflevel
    highestafflevel
    resist_dispel
    parameter3
    parameter4
    time_applied
    vvcresource
    resource2
    casterx
    source_x
    castery
    source_y
    targetx
    target_x
    targety
    target_y
    restype
    effsource
    parent_resource
    resource_flags
    impact_projectile
    sourceslot
    effvar
    casterlvl
    internal_flags
    sectype
    source_id
    
  • EEex_ApplyEffectToActor(actorID, args):

    Directly applies an effect to an actor based on the args table. Valid arg keys:

    opcode
    target
    power
    parameter1
    parameter2
    timing
    resist_dispel
    duration
    probability1
    probability2
    resource
    dicenumber
    dicesize
    savingthrow
    savebonus
    special
    source_target
    target_x
    target_y
    source_id
    source_x
    source_y
    vvcresource
    resource2
    parent_resource
    resource_flags
    impact_projectile
    source_slot
    casterlvl
    internal_flags
    sectype
    
  • EEex_CyclicBound(num, lowerBound, upperBound):

    Sanity function to help work with number ranges that are cyclic, (like actor direction).

    Example:
    EEex_CyclicBound(num, 0, 15)
    defines a range of 0 to 15. num = 16 rolls over to 0, as does num = 32. num = -1 wraps around to 15, as does num = -17.

  • EEex_DestroyInjectedTemplate(menuName, templateName, instanceId):

    Destroys an instance injected into a menu via EEex_InjectTemplate().

  • EEex_EvalObjectAsActor(object, actorID):

    Evaluates an object pointer, (returned by EEex_ParseObjectString()), as if it was evaluated by the given actor.

  • EEex_EvalObjectStringAsActor(string, actorID):

    Evaluates an object string in standard BAF syntax as if it was evaluated by the given actor.

  • EEex_GetActionbarButtonFrame(buttonIndex):

    Returns the current frame of the actionbar button at buttonIndex, taking into account the click status.

  • EEex_GetActorAnimation(actorID):

    Returns the actor's animation, (as defined in ANIMATE.IDS; stored at offset 0x28 of the .CRE, or optionally overridden by the actor structure at offset 0x30).

  • EEex_GetActorAreaRes(actorID):

    Returns the actor's current area resref as a string.

  • EEex_GetActorBaseCharisma(actorID):

    Returns the actor's base charisma, (defined at offset 0x23E of the .CRE).

  • EEex_GetActorBaseConstitution(actorID):

    Returns the actor's base constitution, (defined at offset 0x23D of the .CRE).

  • EEex_GetActorBaseDexterity(actorID):

    Returns the actor's base dexterity, (defined at offset 0x23C of the .CRE).

  • EEex_GetActorBaseIntelligence(actorID):

    Returns the actor's base intelligence, (defined at offset 0x23A of the .CRE).

  • EEex_GetActorBaseStrength(actorID):

    Returns the actor's base strength, (defined at offset 0x238 of the .CRE).

  • EEex_GetActorBaseWisdom(actorID):

    Returns the actor's base wisdom, (defined at offset 0x23B of the .CRE).

  • EEex_GetActorClassScript(actorID):

    Returns the actor's class script, (defined at offset 0x250 of the .CRE, or optionally overridden by the actor structure at offset 0x60).

  • EEex_GetActorCurrentAction(actorID):

    Returns the ID of the action the actor is currently doing, based on ACTION.IDS.

    For example, if the actor is currently moving to a point, it will return 23 because MoveToPoint() is action 23 in ACTION.IDS.

    If the actor isn't doing anything, it will return 0.

  • EEex_GetActorCurrentHP(actorID):

    Returns the actor's current HP, (defined at offset 0x24 of the .CRE).

  • EEex_GetActorDefaultScript(actorID):

    Returns the actor's default script resref as a string, (defined at offset 0x268 of the .CRE, or optionally overridden by the actor structure at offset 0x70).

  • EEex_GetActorDialogue(actorID):

    Returns the actor's dialogue resref as a string, (defined at offset 0x2CC of the .CRE, or optionally overridden by the actor structure at offset 0x48).

  • EEex_GetActorDirection(actorID):

    Returns the actor's direction, (as defined in DIR.IDS; stored at offset 0x34 of the actor structure).

  • EEex_GetActorGeneralScript(actorID):

    Returns the actor's general script resref as a string, (defined at offset 0x260 of the .CRE, or optionally overridden by the actor structure at offset 0x58).

  • EEex_GetActorIDShare(share):

    Returns the actorID for the given share / creatureData.

  • EEex_GetActorModalState(actorID):

    Returns the actor's current modal state, (as defined in MODAL.IDS; stored at offset 0x28 of the global-creature structure).

  • EEex_GetActorMovementRate(actorID, adjustForHaste):

    Returns the actor's movement rate. For example, if the actor has an effect (opcode 126 or 176) that sets their movement rate to 180, it will return 180.

    If the actor does not have a movement-modifying effect, it will return the "move_scale" number in the creature's animation INI file.

    If adjustForHaste is true, the movement rate number will be doubled if the actor is hasted, and it ...

Read more

EEex v0.5.3-alpha

27 Mar 22:30
Compare
Choose a tag to compare
EEex v0.5.3-alpha Pre-release
Pre-release

Fixes:

  • Splprot stat lookup shouldn't be completely broken
  • Opcode #324 should only override strref if Special is non-zero

EEex v0.5.2-alpha

18 Mar 01:07
Compare
Choose a tag to compare
EEex v0.5.2-alpha Pre-release
Pre-release

New Opcode Features:

  • (New) Opcode 402: InvokeLua. Calls a Lua function that matches the effect's Resref/Resource field. Maximum function name length is 8, and function names must be completely upper-case.

  • Opcode 280: If Special parameter is non-zero, all hardcoded graphical effects are suppressed. NOTE: This mechanism uses (new) stat 301; this stat should not be set manually and should not be used by modders.

EEex v0.5.1-alpha

16 Mar 22:31
Compare
Choose a tag to compare
EEex v0.5.1-alpha Pre-release
Pre-release
  • Fixed crash that occurs when creatures attempt to polymorph

EEex v0.5.0-alpha

09 Mar 04:49
Compare
Choose a tag to compare
EEex v0.5.0-alpha Pre-release
Pre-release

New Opcode Features:

  • Opcode 280 will use Param1 as the surge roll if it is non-zero. NOTE: This mechanism uses (new) stat 300; this stat should not be set manually and should not be used by modders.

New Lua Functions:

  • EEex_GetGlobal() - Fetches a variable from the GLOBAL scope
  • EEex_GetActorLocal() - Fetches a variable from an actor's LOCALS scope
  • EEex_GetAreaGlobal() - Fetches a variable from an area's scope

  • EEex_2DALoad() - Reads a 2DA file's data into memory
  • EEex_2DAGetAtStrings() - Reads a value at an x-y key pair from the given 2DA data

Changes:

Fixes:

  • B3_Invis.lua should not forbid the engine from rendering invisibility effects

EEex v0.4.1-alpha

22 Feb 07:27
Compare
Choose a tag to compare
EEex v0.4.1-alpha Pre-release
Pre-release
  • Fixed incorrect macro byte which was breaking EEex_HookActionbar()

EEex v0.4.0-alpha

21 Feb 04:38
Compare
Choose a tag to compare
EEex v0.4.0-alpha Pre-release
Pre-release

EEex v0.3.0-alpha

31 Jan 02:25
Compare
Choose a tag to compare
EEex v0.3.0-alpha Pre-release
Pre-release

Some opcode related changes:

  • (Change) Opcode #218: Fire subspell when all layers are lost

  • (New) Opcode #400: Set Temporary AI Script