Hello, dear friends! Today, we have a development build for you. We appreciate your assistance in testing it, and reporting any issues you find. The module compatibility has once again been bumped - to version 1.85 - due to the new script commands that allow tile/area actions in the radial menu, and a bit more GUI modification. [h1]Fixes[/h1] [list] [*] Renderer: Disabled soft particles on world-aligned emitters; fixes faded/missing effects such as spell mantle. [*] Renderer: TSB are now generated correctly for animated/danglies. [*] Renderer: Removed creature preloading code; it was doing nothing useful on desktop platforms. [*] Renderer: Drawbucket implementation for caching transform lists; also fixes additive blending render issues (such as water making visual effects wavy; water showing geometry from own model). [*] Renderer: Fixed highlight gobs ("tab glow") not correctly scaling along visual transforms. [*] Renderer: Fixed static placeables incorrectly disabling/breaking animations of non-static placeables with the same model. [*] Game: Fixed a memleak in pathfinding. [*] Game: Fixed placeables not bumping creatures out of the way when being spawned into an area. #349 [*] Game/VM: Fixed Get*DurationRemaining returning the wrong value due to time overflow. [*] Game: Fixed a rare crash when exiting the game while a NWSync download is in progress. [*] Startgame UI: Fixed URL escaping for URLs with long paths. [*] Startgame UI: Removed superfluous text warnings about "Clicking link opens browser". [*] Startgame UI: Improvements to the promotion panels for custom repositories. [*] Startgame UI: Images loaded in the new content browser are now correctly served from cache if no internet connection is available. [*] UI: Put most hardcoded strings in StartGame, NWSync and Config panels into the tlk (not translated yet). [*] Config: On Windows, codepage is now auto-detected from the system locale. [/list] [h1]Tile/Radial actions, surfacemat.2da[/h1] [list] [*] You can now assign custom radial actions on tiles (There is a new module event you can access via SetEventScript). [*] surfacemat now support 64 materials, up from 32. [*] surfacemat.2da is re/loaded as part of custom content. [/list] [code]// Gets the ID (1..8) of the last tile action performed in OnPlayerTileAction int GetLastTileActionId(); // Gets the target position in the module OnPlayerTileAction event. vector GetLastTileActionPosition(); // Gets the player object that triggered the OnPlayerTileAction event. object GetLastPlayerToDoTileAction(); [/code] [h1]New Script Commands[/h1] You can now pop up or restrict GUI panels. We added a event that triggers clientside interaction with some panels (There is a new module event you can access via SetEventScript). [code]int GUI_PANEL_PLAYER_DEATH = 0; int GUI_PANEL_MINIMAP = 2; int GUI_PANEL_COMPASS = 3; int GUI_PANEL_INVENTORY = 4; int GUI_PANEL_PLAYERLIST = 5; int GUI_PANEL_JOURNAL = 6; int GUI_PANEL_SPELLBOOK = 7; int GUI_PANEL_CHARACTERSHEET = 8; int GUIEVENT_CHATBAR_FOCUS = 1; int GUIEVENT_CHATBAR_UNFOCUS = 2; int GUIEVENT_CHARACTERSHEET_SKILL_CLICK = 3; int GUIEVENT_CHARACTERSHEET_FEAT_CLICK = 4; int GUIEVENT_EFFECTICON_CLICK = 5; int GUIEVENT_DEATHPANEL_WAITFORHELP_CLICK = 6; int GUIEVENT_MINIMAP_MAPPIN_CLICK = 7; int GUIEVENT_MINIMAP_OPEN = 8; int GUIEVENT_MINIMAP_CLOSE = 9; int GUIEVENT_JOURNAL_OPEN = 10; int GUIEVENT_JOURNAL_CLOSE = 11; int GUIEVENT_PLAYERLIST_PLAYER_CLICK = 12; int GUIEVENT_PARTYBAR_PORTRAIT_CLICK = 13; int GUIEVENT_DISABLED_PANEL_ATTEMPT_OPEN = 14; // Gets the player that last triggered the module OnPlayerGuiEvent event. object GetLastGuiEventPlayer(); // Gets the last triggered GUIEVENT_* in the module OnPlayerGuiEvent event. int GetLastGuiEventType(); // Gets an optional integer of specific gui events in the module OnPlayerGuiEvent event. // * GUIEVENT_CHATBAR_*: The selected chat channel. Does not indicate the actual used channel. // 0 = Shout, 1 = Whisper, 2 = Talk, 3 = Party, 4 = DM // * GUIEVENT_CHARACTERSHEET_SKILL_SELECT: The skill ID. // * GUIEVENT_CHARACTERSHEET_FEAT_SELECT: The feat ID. // * GUIEVENT_EFFECTICON_CLICK: The effect icon ID (EFFECT_ICON_*) // * GUIEVENT_DISABLED_PANEL_ATTEMPT_OPEN: The GUI_PANEL_* the player attempted to open. int GetLastGuiEventInteger(); // Gets an optional object of specific gui events in the module OnPlayerGuiEvent event. // * GUIEVENT_MINIMAP_MAPPIN_CLICK: The waypoint the map note is attached to. // * GUIEVENT_CHARACTERSHEET_*_SELECT: The owner of the character sheet. // * GUIEVENT_PLAYERLIST_PLAYER_CLICK: The player clicked on. // * GUIEVENT_PARTYBAR_PORTRAIT_CLICK: The creature clicked on. // * GUIEVENT_DISABLED_PANEL_ATTEMPT_OPEN: For GUI_PANEL_CHARACTERSHEET, the owner of the character sheet. object GetLastGuiEventObject(); // Disable a gui panel for the client that controls oPlayer. // Notes: Will close the gui panel if currently open. // Does not persist through relogging or in savegames. // Will fire a GUIEVENT_DISABLED_PANEL_ATTEMPT_OPEN OnPlayerGuiEvent for some gui panels if a player attempts to open them. // You can still force show a panel with PopUpGUIPanel(). // * nGuiPanel: A GUI_PANEL_* constant, except GUI_PANEL_PLAYER_DEATH. void SetGuiPanelDisabled(object oPlayer, int nGuiPanel, int bDisabled);[/code] [h1]Tyrants of the Moonsea[/h1] [list] [*] one dialog branch in Hlesson's conversation breaks his quest [*] fixed a rare situation in the Marel fight where the exit door wouldn't open [*] removed Sharalyn's Cloud of Bewilderment spell because it caused in-party hostility [*] the Kur-Tharsu areas are now "No PVP" to reduce in-party hostility [/list] [h1]Darkness over Daggerford[/h1] [list] [*] a cutscene in smuggler's cave sometimes did not trigger [*] a cutscene in smuggler's cave sometimes was aborted early [/list] [h1]Known Issues[/h1] [list] [*] The toolset tilefade setting "Always" doesn't work correctly. [/list]