[INFO] Changelog for next version (post 0.99.5a)

Where we archive the version changelog threads
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

Edit: See next post.
-= Ho Eyo He Hum =-
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

26/08/2022 - Xuri (0.99.5b-7)
  • Fixed a missing definition for GetStartTime JS function which would cause an error in the help menu script
  • Tweaked some messages output to the UOX3 console during startup for improved clarity
Updated experimental builds:
Windows x64
Linux x64
Again, mac users, follow build instructions on GitHub and checkout the develop branch.
-= Ho Eyo He Hum =-
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

24/10/2022 - ldilley
  • Fixed cPlayerAction.cpp case in source/CMakeLists.txt (was cplayeraction.cpp).
  • Added FreeBSD build support for SpiderMonkey, zlib, and UOX3.
  • Updated README.md with FreeBSD build instructions.
  • Fixed a compile error due to NULL being defined as nullptr (non-int type) and not 0 (zero)
-= Ho Eyo He Hum =-
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

24/10/2022 - Xuri (0.99.6-RC1)
    Misc cleanup and standardization of style and naming conventions in code and scripts
    Added comments for all dictionary-based system messages in code for maintainability reasons
    Fixed an issue where line of sight checks for dynamic items would fail
    Fixed an issue where items being picked up by a player would not be added to the correct mapregion if bouncing back to its original location when dropped
    Fixed an issue where NPC spellcasters would damage/kill themselves by attempting to cast Mind Blast at their target. Now they'll only cast this if they're actually smarter than their target
    Fixed an issue where NPC spellcasters would damage and kill members of their own species/ai/race via AoE spells
    Fixed an issue where the max spellcast range defined in UOX.INI was off for NPCs by 1 tile
    Added spoken words of power for spells cast by human NPCs
    Fixed an exploit with the Dispel Field spell
    Admins and GMs are no longer dispellable...
    Fixed a bug where spell effects would get stuck on caster if they cast a spell with a moving effect at themselves
    Added two new NPC AI types that can be used for NPCs that are primarily casters:
        AI_CASTER (10)          // Same as AI_FIGHTER (5), but will try to stay at casting range
        AI_EVIL_CASTER (11)     // Same as AI_EVIL (2), but will try to stay at casting range
    Changed the NPCAI tags of some NPCs from 5 to 10 and from 2 to 11
    Added some visual flair to let NPCs play idle/fidget animations from time to time
    Added some visual flair to let NPCs play casting animations when using magic spells
    Added support for new tags in creatures.dfn to define some animation behaviour for non-player creatures in combat (ANTIBLINK tag no longer needed):
        ANIM_CASTAREA=#,frameCount      // Animation to use when casting area-targeted spells
        ANIM_CASTTARGET=#,frameCount    // Animation to use when casting target-based spells
        ANIM_ATTACK1=#,frameCount       // First attack animation
        ANIM_ATTACK2=#,frameCount       // (optional) Second attack animation
        ANIM_ATTACK3=#,frameCount       // (optional) Third attack animation
    Updated creatures.dfn with entries for all known creatures in the UO client, as well as icons, sounds and combat/casting animations for all of those.
    Fixed an issue with creature DFN setup for Elf ghosts which prevented paperdoll context menu from working
    Added new JS Events:
        onCarveCorpse( pUser, iCorpse )             // Triggers for iCorpse when being carved by pUser
        onFacetChange( mChar, oldFacet, newFacet )  // Triggers for character when moving between facets
        onDyeTarget( pUser, dyeTub, targItem )      // Triggers for dyeTub when player tries dying an item
    Added new JS Functions to create houses (from house.dfn) and base multis (using raw multi IDs):
        CreateHouse( houseID, x, y, z, worldNum, instanceID );
        CreateBaseMulti( multiID, x, y, z, worldNum, instanceID );
    Added new JS Character/Item Method:
        .HasScriptTrigger( scriptID )   // Returns true if script with scriptID is present on object
    Added new JS commands for GMs in js/commands/custom/misc-cmd.js
        'addhouse houseID   // Add house from house.dfn at target location
        'addmulti multiID   // Add base multi from client multi files at target location
    Added new INI settings:
        SHOWRACEWITHNAME=1              // If enabled, shows a character's race along with their name. Defaults to 1
        SHOWITEMRESISTSTATS=0/1         // If enabled, shows item resistance stats in item tooltip. Defaults to 0
        SHOWWEAPONDAMAGETYPES=1/0       // If enabled, shows weapon damage types in item tooltip. Defaults to 1
        CASTSPELLSWHILEMOVING=0/1       // If enabled, players can cast spells while moving, without having to stop
        SHOWREPUTATIONTITLEINTOOLTIP=1/0 // If enabled, shows player's reputation title in tooltip. Defaults to 1
        SHOWGUILDINFOINTOOLTIP=1/0      // If enabled, shows player's guild info in tooltip. Defaults to 1
        SHOWRACEINPAPERDOLL=1/0         // If enabled, shows a character's race in the paperdoll. Defaults to 1
        SHOWNPCTITLESINTOOLTIPS=1/0     // If enabled, shows NPC titles in tooltip. Defaults to 1
    Renamed 0xf1_connectUOServerPoll.js to 0xf1_freeshardServerPoll.js, and updated script to respond to the "standard" freeshard server poll request rather than the more specific (and now dead) ConnectUO one.
    Renamed INI setting CUOENABLED to FREESHARDSERVERPOLL
    Added new INI settings under [expansion settings] section to help shard admins customize some key behaviours of their shard, based on their preferred "era" of UO. Note that a value of "core" means the setting inherits the chosen era from the CORESHARDERA setting:
            CORESHARDERA=pub15
                Defines the "core" era of the shard. Defaults to pub15 (Publish 15).
                    any                 - determines which Item/NPC DFNs gets loaded, based on tags like GETT2A, GETPUB15
                    uor or later        - enables bonus hit chance for archery via ARCHERYHITBONUS setting
                    pub15 or earlier    - final combat damage value reduced by half
            ARMORCALCULATION=core
                Defines era to base armor calculations on
                    pub15 or earlier    - different armor pieces contribute different percentage of the total Armor Rating
                    aos or later        - each armor piece contribute to sum total of Physical Resistance, and other elemental resistance stats
            STRENGTHDAMAGEBONUS=core
                Defines era to base strength damage bonus on
                    uor or earlier      - 20% damage bonus based on strength, capped at 200 strength
                    td or later         - 35% damage bonus based on strength if 100 strength or more, otherwise 30% damage bonus
            TACTICSDAMAGEBONUS=core
                Defines era to base tactics damage bonus on
                    pub15 or earlier    - bonus = Tactics skill + 50
                    aos or later        - 68.75% damage bonus if GM Tactics, 62.5% bonus if below
            ANATOMYDAMAGEBONUS=core
                Defines era to base anatomy damage bonus on
                    uor or earlier      - bonus = Anatomy / 5 vs NPCs, Anatomy / 2.5 vs Players
                    td or later         - 30% damage bonus at GM anatomy, up to 20% below GM
                    ml or later         - 50% + 5 damage bonus at GM anatomy, up to 50% below GM
            LUMBERJACKDAMAGEBONUS=core
                Defines era to base lumberjacking damage bonus on
                    uor or earlier      - 35% damage bonus at GM skill, up to 25% below GM
                    td or later         - 30% damage bonus at GM skill, up to 20% below GM
                    hs or later         - 10% chance of 100% damage bonus
            RACIALDAMAGEBONUS=core
                Defines era to base racial damage bonus on
                    sa or later         - Gargoyles gain +15% damage bonus per each 20 HP lost
            DAMAGEBONUSCAP=core
                Defines era to base damage bonus cap on
                    pub15 or earlier    - No cap on damage bonus multiplier
                    aos or later        - Total damage bonus multiplier capped at 300% higher than base damage
            SHIELDPARRY=core
                Defines era to base shield parry calculations on
                    t2a                 - chance to block is parryskill / 2. shield absorbs damage equivalent of AR/2 for melee, or equivalent of AR for archery
                    uor to pub15        - higher AR equals lower block chance, but more damage absorbed.
                    aos or later        - chance to block dependent on parry skill vs bushido skill, with dex modifier
            WEAPONPARRY=core
                Defines era to base weapon parry calculations on
                    aos or later        - chance to parry with weapon based on parry skill and bushido skill, with a dex modifier, 16.6% chance weapon will take damage from parrying
                    ml or later         - chance to parry with weapon based on parry skill and bushido skill, with a dex modifier, 5% chance weapon will take damage from parrying, or 75% if opponent has mace
            WRESTLINGPARRY=core
                Defines era to base wrestling parry calculations on
                    tol or later        - From 12.5% chance (at GM wrestling, increases with higher skill) that an NPC will parry an attack
            COMBATHITCHANCE=core
                Defines era to base combat hit chance calculations on
                    t2a to pub15        - hit chance based on attacker's skill vs defender's skill. No minimum chance to hit
                    uor to pub15        - Additional bonus hit chance for archery
                    aos to tol          - hit chance based on attacker's skill (and hit chance increase) vs defender's skill (and defense chance increase). Minimum 2% chance to hit
        Supported era values:
            t2a, uor, td, lbr, pub15, aos, se, ml, sa, hs, tol and core (inherits era defined in CORESHARDERA)
    Added (optional) new Item/NPC DFN tags to help determine which variants of Items/NPCs to load from DFNs, based on chosen era in CORESHARDERA setting:
        GETT2A=<sectionID>      // Inherit DFN section if core shard era is The Second Age
        GETTD=<sectionID>       // Inherit DFN section if core shard era is Third Dawn
        GETUOR=<sectionID>      // Inherit DFN section if core shard era is UO Renaissance
        GETLBR=<sectionID>      // Inherit DFN section if core shard era is Lord Blackthorn's Revenge
        GETPUB15=<sectionID>    // Inherit DFN section if core shard era is Pub15
        GETAOS=<sectionID>      // Inherit DFN section if core shard era is Age of Shadows
        GETSE=<sectionID>       // Inherit DFN section if core shard era is Samurai Empire
        GETML=<sectionID>       // Inherit DFN section if core shard era is Mondain's Legacy
        GETSA=<sectionID>       // Inherit DFN section if core shard era is Stygian Abyss
        GETTOL=<sectionID>      // Inherit DFN section if core shard era is Time of Legends
    Added new Item/Character DFN tags that provide defensive bonuses on top of existing DEF/ELEMENTALRESIST values:
        DEFBONUS=minVal [maxVal]            // Def/Physical resistance bonus (maxVal optional)
        ERBONUS=heat cold energy poison     // Elemental resistance bonus
    Crafted armor made from coloured ingots now provide additional defensive bonuses based on color of ingots (for AoS/ToL variant of items)
    Fixed a bug where players not a member of a guild could still interact with the guildstone of said guild
    Guild masters can no longer dismiss themselves from their own guild; if they want to leave they'll have to resign
    Fixed a bug where cancelling text input for various guild functions could blank out the guild name, abbreviation, guildmaster title, charter or website
    Fixed a bug where guild abbreviations (and titles) would show when turned off, and would not show when turned on
    Added guild master ability to grant guild titles to targeted guild members
    Added system message feedback various guild interactions, including: inviting players to join, swearing fealty, declaring war, entering alliances, granting titles
    Added support for showing guild titles and guild names in character tooltips
    Guild titles, names and abbreviations are now hidden for players who are incognito
    Players invited to join a guild by the Guild Master directly will now automatically be accepted into the guild
    Fixed a potential null-reference exception related to moving Townstones
    Fixed a bug where adding or removing friends for a pet would not properly inform the involved players
    Traps in dungeons will now only trigger for player characters, and will ignore all NPCs
    Tweaked HTML templates for server status pages; shard name shown more prominently, names of GMs/Counselors hidden from regular player list, information on UOX3 build version hidden in player-facing pages, and a few other small adjustments
    Fixed an issue with archery butte script (js/item/archerybutte.js) where chance of hitting a bullseye was not calculated correctly
    UOX3 now responds correctly to logout requests from the client
    Fixed reagent requirements for inscribing Explosion spell (thanks, Azzerhoden Razeri)
    Removed redundant VALUE tags from JewlerShopping shoplist (thanks, Azzerhoden Razeri)
    Reduced combat hit message spam by increasing the lower damage threshold for when they can show up
    Added NPC definitions for savage shaman, savage warrior (male and female) and savage rider in dfndata/npc/savages.dfn.
    Added special AI scripts for savages and savage shamans, to handle their special abilities
    Added tribal paint consumable item (dfndata/items/misc/consumables.dfn)
    Added ability to cook tribal paint via flour and tribal berries (js/skill/cooking/flour.js)
    Added some helper scripts for magic:
        js/magic/helper/check_resist.js (6000)              // Test target's resist versus caster and spell circle
        js/magic/helper/calc_final_spell_damage.js (6001)   // Calculate spell damage from provided base damage
    Added a timer-related script that can be used to keep track of long-term timers (up to 49 days) on objects, and which will remove itself from the object when there are no more active timers left. Currently used to keep track of tribal paint applied to players:
        js/server/timer/long_term_timers.js (3)
    Fixed an issue where player backpacks did not have a max weight set, which could cause issues for scripts that relied on checking max weight of backpack to work
    Added new UOX.INI settings to let shard admins control the maximum weight that player backpacks and bankboxes can hold:
        MAXPLAYERPACKWEIGHT=40000   // 400.00 stones by default
        MAXPLAYERBANKWEIGHT=160000  // 1600.00 stones by default
    Fixed an issue where spells setup in JS did not correctly consume reagents when cast (thanks, Azzerhoden Razeri)
    Fixed a bug where casting spells would sometimes leave the player in a "frozen" state client-side
    Fixed a bug where RECALL=1 was missing from town of Vesper in regions.dfn
    Fixed an issue where runebooks did not keep correct count of runes added/dropped (thanks, Azzerhoden Razeri, Dragon Slayer
    Fixed an issue where the runebook script would crash because of a misspelled object variable (thanks, Azzerhoden Razeri)
    Added missing spell scrolls to the MageShopping shoplist
    Added new property for Items and NPCs loaded from DFNs (also available as a JS object property):
        sectionID   // Keeps track of the [sectionID] an item or NPC originated from
    Added support for getting/setting new sectionID property via 'get and 'set commands
    Exposed Character properties to JS engine:
        .fleeAt         // Percentage health threshold for NPC fleeing in combat
        .reAttackAt     // Percentage health threshold for NPC re-attacking in combat if fleeing
    Added new character timer (also available in JS engine) for time between each time a character plays an idle animation
    Added 'move as an alias command for 'telestuff (js/commands/targeting/tele.js)
    Fixed missing socket reference in bankcheck.js
    Added missing tribal paint (js/item/tribal_paint.js), spear (js/item/tribal_spear.js) and bola (js/npc/special/bola_ability.js) scripts
    Updated js/item/oilcloth.js to support wiping away tribal paint from the player
    Updated js/npc/ai/monster/orc.js AI script to make sure owners of pets attacking the orc will get their orcish kin masks destroyed
    Players can no longer use Polymorph spell while incognitoed, or while under effect of tribal paint
    Players can no longer use Incognito spell while polymorphed, or while under effect of tribal paint
    Facial hair is now removed from players who are under the effects of Incognito spell that changes their gender for female
    Expanded the amount of possible house entries in dfndata/house/house.dfn from 255 to 65535
-= Ho Eyo He Hum =-
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

27/10/2022 - Xuri
  • Fixed an issue with onDyeTarget event where the dyetub and target object parameters were not set properly
  • Fixed some incorrect casting animation-related variable assignments for AI_HEALER and AI_EVIL_HEALER
  • Fixed an issue with pets not going wild from lack of loyalty to their owners when at zero loyalty
  • Addressed issues with idle/fidget animation setup that could cause NPCs to blink out of existence
  • Removed stray semicolon behind control statement related to triggering of OnFacetChange JS event
  • Fixed an issue with Bless spell when cast from item
  • Some minor code cleanup
27/10/2022 - DragonSlayer
  • Added aliases in item definitions for containers
  • Consolidated all light item scripts into one, with options for auto-lights (lampposts) based on environment brightness level and more
  • Removed old light scripts (Xuri)
  • Updated consolidated lights.js script to handle custom dir values on lights, modified source of sound effects when turning lights on/off and made a few other minor adjustments (Xuri)
  • Revamped region spawn system
27/10/2022 - Xuri
  • Added some code to assist with preventing/debugging houses potentially decaying
  • Fixed an issue with freeshard server poll script, which attempted to fetch wrong ini setting
  • Fixed a server crash related to applying invalid prices for player vendor items
  • Neglecting to give item in player vendor pack a description now defaults to item name
  • Items in player vendor packs are now refreshed properly when players update price and name
  • Players can no longer issue pet control commands to player vendors via context menus
-= Ho Eyo He Hum =-
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

30/10/2022 - Xuri
  • Player vendors in existing houses no longer teleport to new houses placed by owner nearby
  • Fixed script issue with demolishing house with player vendors in them
  • Fixed an issue where setting prices for items on player vendors would permanently overwrite the buy-value of the item. Player vendor prices are now stored as a separate property (but saved as part of the VALUE tag), also accessible by the following JS Item property:
    .vendorPrice
  • Item description and vendor price are now cleared from items bought from player vendors
  • Tooltips for items with new descriptions or vendor prices in player vendor backpacks are now correctly updated
  • Only books, keyrings and unlocked containers can now be marked 'Not for Sale' in a player vendor's main/root backpack
  • Any items on player vendors can now be marked as 'Not for Sale' if placed within a container that has a price tag
  • Added additional feedback messages to players for various interactions with player vendors
  • Fixed a bug where player vendors would lose loyalty and 'go wild' like pets when not fed regularly
  • Split up some of the longer item lists in the 'add menu to prevent freezes on original 2D client
-= Ho Eyo He Hum =-
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

1/11/2022 - Xuri
  • Base multis created with CreateBaseMulti() JS function or BuildBaseMulti() C++ function no longer require valid 'house/boat' locations to spawn
  • Fixed an issue where no reagents were consumed when casting recall/gate spells via spell icons in runebooks (js/item/runebook.js)
  • Spawn Regions will now more accurately spawn objects near desired heights supplied via PREFZ tags. Using PREFZ=20 will attempt to spawn NPCs on the second floor of a building with ground level at Z 0, for instance.
  • Added a new DFN tag usable in Spawn Regions to define a definite Z level at which to attempt to spawn objects (skips some steps in the process and assumes the defined Z is a valid Z):
    DEFZ=# // Defines a definite Z level to attempt to spawn an object at
  • Updated banker AI script (js/npc/ai/banker.js) with some extra validation checks, system messages and to take max weight capacity of bankbox into account
  • The sectionID property of NPCs are now transferred to their corpses upon death, to make it easier to identify in scripts from which NPC a corpse really originated
1/11/2022 - Dragon Slayer
  • Updated spawn regions in Yew with NPCs for Empath Abbey
-= Ho Eyo He Hum =-
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

06/11/2022 - Dragon Slayer/Xuri
  • Implemented Taxidermy Kits for creating trophy house addons (Dragon Slayer)
  • Fixed an issue related to open doors in houses that would prevent the placement of house-addons because of an incorrect distance check (Xuri)
  • Fixed an issue with placement of house addons that would allow them to be placed in locations blocked either by other items or by parts of the multi itself (such as walls) (Xuri)
08/11/2022 - Dragon Slayer/ldilley
  • Added item definition (misc/consumables.dfn), JS script (item/hairdye.js) and dictionary entries for hair dye
  • Added hair dyes (and tribal paint) to new consumables menu in add-menu (Xuri)
  • Cleaned up hair dye script based on style guidelines, addressed a few issues (Xuri)
  • Removed hard-coded hairdye functionality (Xuri)
09/11/2022 - Dragon Slayer/ldilley
  • Added item definition (in misc/consumables.dfn), JS script (item/bearddye.js) and dictionary entries for hair dye
  • Combined hair and beard dye scripts into one, since they shared most code (Xuri)
  • Added dyes to alchemist shoplist (items/shoplist.dfn) (Xuri)
  • Removed old hair dye menu from legacy gump DFN (dfndata/misc/gumps.dfn) (Xuri)
  • Selling items to NPC shopkeepers now relies on sectionID of items instead of their ID/Type/Morex values (Xuri)
  • Tinkerers can now craft Fletching Tools (Dragon Slayer)
12/11/2022 - Dragon Slayer
  • Added hair-only and beard-only variants of hair dyes
  • Added hair stylist vendors that sell all types of dye
13/11/2022 - Xuri
  • When buying items from NPC shopkeepers where the total cost is higher than the buy threshold set in uox.ini, UOX3 will now check the player's bankbox for gold first, then their backpack second, instead of just failing outright if bank didn't have the required amount
  • Minor cleanup of some UO era-specific code for better maintainability
  • Adjusted default light-settings in UOX.INI:
    • DUNGEONLIGHTLEVEL changed from 3 to 15
    • WORLDDARKLEVEL changed from 5 to 12
15/11/2022 - Dragon Slayer
  • Added special hair dyes
  • Updated item menu in dfndata/items/ItemMenu.bulk.dfn with dyes (Xuri)
  • Added hairstylist NPC alias to dfndata/npc/vendors.dfn (Xuri)
27/11/2022 - Dragon Slayer, Xuri
  • Implemented potion kegs; these can be crafted by carpenters/tinkerers, and can be used to store potions at a fraction of their original weight (Dragon Slayer)
  • Only the owner (if locked down), the current holder (if in backpack) or someone who have previously taste identified a potion keg may add additional potions to it (Xuri)
  • Potions dropped from monsters and bought from stores are unidentified by default, but can be identified by players using the taste identification skill. (Xuri)
  • Potions crafted by players are identified by default for all to see (Xuri)
  • Releasing locked down items in houses now set the items as movable (1) instead of client default (0) (Xuri)
  • Added socket as another parameter to the onToolTip JS event
29/11/2022 - ldilley
  • Fixed many compile-time warnings (closes Fix compile warnings #131).
    • Clang and GCC builds were both successful and completely clean using -Wall, -Wextra, and -Werror. The following various problems were corrected:
    • Fix reasonable warnings reported by MSVC using /W4 /W3 /D_CRT_SECURE_NO_WARNINGS.
    • Returning final without virtual
    • Comparison of values with differing signedness
    • Assignment order
    • memset() expecting a multiple of a data type
    • A plethora of unused variables (commented or voided)
    • Comparisons always resulting in true
    • Failure to initialize missing members
    • Static methods (inlined)
    • Instances of case fallthrough (denoted)
    • Incompatible casts
    • Mismatching macros/methods requiring variable number of arguments
    • Bit shifting in bool contexts
    • Inappropriate pointer use
    • Potentially incorrect initialization of class/struct instances using memcpy()/memset()
  • Removed some instances of extraneous spaces/tabs.
29/11/2022 - Xuri
  • Added some validation checks for attacker object in onDamage JS event in several scripts
  • Enabled onSellToVendor, onSoldToVendor, onBuyFromVendor and onBoughtFromVendor JS events to also run if attached to NPCs
  • Disabled location check for 'addmulti command
-= Ho Eyo He Hum =-
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

03/12/2022 - ldilley
  • Comment line in jsconfig.mk that attempts to cat a non-existent Version file. This causes an error otherwise during the SpiderMonkey build.
  • Initialize totalPlayerGold in vendor.cpp.
  • Flag unused variable in gumps.cpp.
  • Update README.md to include references to FreeBSD and also alter the command (libtool instead of ar) used to generate the JavaScript library on macOS.
  • Improve automake.sh.
03/12/2022 - Dragon Slayer
  • GM and Counselors can now go though the wind teleporter
03/12/2022 - Xuri
  • Updated .ResourceCount() and .UseResource() JS Object Methods to include optional parameter for sectionId. New supported syntax:
    • int ResourceCount( realId, colour )
    • int ResourceCount( realId, colour, moreVal )
    • int ResourceCount( realId, colour, moreVal, sectionId )
    • int UseResource( amount, realItemId )
    • int UseResource( amount, realItemId, colour )
    • int UseResource( amount, realItemId, colour, moreVal )
    • int UseResource( amount, realItemId, colour, moreVal, sectionId )
  • Fixed an issue where the bit flag for the HirelingCombatTraining setting was not set properly
  • Fixed an issue in SpiderMonkey VS project that prevented compiling a x64 debug build (thanks, punt!)
  • Some minor cleanup
08/12/2022 - Dragon Slayer
  • Replaced orc Spawns with Savages in T2A orc fort. this would bring the spawns up to date with LBR.
11/12/2022 - Xuri
  • Added support for a SCRIPT tag in ore definitions in dfndata/skills/skills.dfn, which will be applied to any ore of that type that's mined
17/12/2022 - Xuri
  • When a player says "vendor buy" or "vendor sell", NPC shopkeepers (and related JS events) will now respond in priority of distance to the player
24/12/2022 - Xuri, punt, ldilley (0.99.6-RC2)
  • CMake is now default build system on Linux/FreeBSD, and an alternative for Windows/macOS-users instead of VS/XCode, though the old GCC/Make build process is still intact (for now)
  • Resource files (uox3.rc and uox3.ico) have been moved from UOX3/source to UOX3/assets
  • Build/project-related files have been moved to /make/[buildsystem] sub-directories, for both UOX3 and sub-projects:
    • UOX3/make/cmake
    • UOX3/make/VS2017
    • UOX3/make/VS2022
    • UOX3/make/XCode
    • spidermonkey/make/cmake
    • spidermonkey/make/VS2017
    • spidermonkey/make/VS2022
    • spidermonkey/make/XCode
    • zlib/make/cmake
    • zlib/make/VS2017
    • zlib/make/VS2022
    • zlib/make/XCode
  • CMake, VS2022 and XCode will compile sub-projects automatically when UOX3 is compiled, while VS2017 requires compiling sub-projects prior to UOX3
  • automake.sh script (still in root of repository) now uses CMake instead of GCC/Make, and supports optional arguments for creating debug/clean builds
  • Updated instructions on compiling UOX3 can be found on GitHub and/or in the UOX3 documentation
  • Some redundant files have been deleted from the repository (like DLL folder and file)
  • Code style guide added to UOX3/docs directory (styleguide.html)
  • Updated GitHub workflows to use cmake for Linux and to ignore changes to .txt/.html/.sln/.vcxproj files for both Linux & Windows workflows
31/12/2022 - Xuri
  • Extended GetSpawnRegion JS Function to fetch spawn region reference based on a set of coordinates. Supported syntax are now:
    • GetSpawnRegion( spawnRegionID )
    • GetSpawnRegion( x, y, worldNum, instanceID )
  • Added new DFN tags for Items and NPC:
    • SECTIONID // Override which [sectionID] is stored for an object
    • ORIGIN // Store reference to which expansion/era of UO an item/NPC originated in
  • Added new Item/Character JS property:
    • .origin // Get reference to expansion/era of UO an item/NPC originated in
  • Fixed an issue with IsInBuilding JS Function which could only handled a limited subset of instance ID values
  • Corrected name of tag used to attach scripts to ore types - from SCRIPTID to SCRIPT
-= Ho Eyo He Hum =-
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

04/03/2023 - Xuri (0.99.6-RC3)
  • Updated Item DFNs with ORIGIN and SECTIONID tags for relevant items
  • Added JS Function to make comparing eras (based on object origin or server settings) easier:
    • EraStringToNum( eraString ) // Takes an era string (uo, t2a, uor, td, lbr, aos, etc) and returns an int
  • Updated some JS scripts to use EraStringToNum() for era comparisons (potionkeg.js)
  • Default CORESHARDERA setting is now LBR
  • Removed PUB15 as a separate "era" - it's identical to late stage LBR anyway:
    • Removed support for GETPUB15 tag
  • Added support for GETUO tag for items/NPCs:
    • GETUO=<sectionID> // Inherit DFN section if core shard era is Ultima Online (original release, before T2A)
  • Rewrote portions of MsgBoardQuestEscortCreate() function in msgboard.cpp to ensure only escort regions within same world as NPC can be selected as destinations
  • Increased maximum number of possible escort regions that can exist from 255 to 65535
  • Added region definitions for all shrines in Britannia (Fel & Trammel), and marked them as valid destinations for NPC escorts (uox3/regions/regions.dfn)
  • Moved bankers from vendor to human DFN files, and made them inherit basehuman instead of basevendor - since they are not vendors
  • To address an issue with escorted NPCs not timing out and vanishing if they are left in a "dormant" area of the world with no player activity, the NPCs are marked as "always awake" the moment they arrive at their destination. Note that the uox.ini setting ALLOWAWAKENPCS needs to be enabled for this to work.
  • Fixed an issue where spawnsection of spawners did not show up correctly in tweak menu
  • Fixed an issue where the generic Orc AI script didn't have a return true at end of onDamage() event, which prevented all orcs from taking damage in combat (js/npc/ai/monster/orc.js)
  • Moved Anatomy skill-check in healing script (js/skill/healing.js) from onCallback1() function to onTimer() to prevent the skill-check from being spammable
  • Added mount ID for Frost Mite in creatures.dfn, allowing it to be used as mount
  • Exposed the following character properties to JS engine, which can be used to view/adjust the permanent hair/beard options for a character:
    • .hairStyle
    • .hairColour
    • .beardStyle
    • .beardColour
  • Updated 'kill hair, 'shavehair, 'shavebeard and 'remove commands to clear permanent hair/beard colour and style properties in addition to removing the item itself
  • Added a GM override to let GMs place as many houses as they want (js/server/house/houseDeed.js)
  • Fixed an issue where attempting to sell items to NPC shopkeepers could result in client crashing
  • Added a new JS Event:
    • onMultiLogout( iMulti, cPlayer ) // Handles players logging out while inside multis
  • Updated house script (js/server/house/house.js) with onMultiLogout event, which allows owners (always) and co-owners/friends/guests (if option enabled in uox.ini) to safely log out inside the house (without getting booted).
  • Added a "keyless" option for interacting with locked doors (js/item/doors.js) of player-owned houses, which lets owners/co-owners/friends/guests of a house use locked doors in the house without requiring a key in their backpack, if the options for that are enabled in UOX.INI. Enabled for owners/co-owners and friends by default (but not for guests)
    • Note that if option to safely log out is enabled, but keyless option is NOT enabled, then the server will check if the player has a key to the house in their backpack, and eject them from the house upon logging out if not. This is to make sure players don't get stuck inside a house they can't get out of because they lack the rights to open doors etc.
  • Added new UOX.INI options, under the [houses] section:
    • SAFECOOWNERLOGOUT=1 // Allow co-owners to safely and instantly log out inside house
    • SAFEFRIENDLOGOUT=1 // Allow friends to safely and instantly log out inside house
    • SAFEGUESTLOGOUT=1 // Allow guests to safely and instantly log out inside house
    • KEYLESSOWNERACCESS=1 // Allow owner of house to use locked doors in house without key in pack
    • KEYLESSCOOWNERACCESS=1 // Allow co-owners of house to use locked doors in house without key in pack
    • KEYLESSFRIENDACCESS=1 // Allow friends of house to use locked doors in house without key in pack
    • KEYLESSGUESTACCESS=0 // Allow guests of house to use locked doors in house without key in pack
  • Fixed NOHAIR tag from races.dfn not being loaded correctly
08/03/2023 - Xuri
  • Fixed an issue where houses could lose track of locked down items on server restart
  • Fixed an issue where items could be accidentally dropped through the floor of houses/boats
-= Ho Eyo He Hum =-
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

10/03/2023 - Xuri
  • Fixed an issue where EraStringToNum JS Function would return incorrect values and lead to unexpected behaviour
  • Added some safeguards against server crashes in onNameRequest() and onTooltip() JS Events
-= Ho Eyo He Hum =-
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

17/03/2023 - Xuri
  • Fixed an issue where casting Wall of Stone inside a multi would lead to the wall of stone never expiring, because it was not correctly marked as a field spell
  • Reduced combat message spam; attacking messages now only appear when attacking targets who are not already fighting the attacker
  • Added a new character state - "passive combat mode" - primarily used by players when they tab out of combat. Tabbing out of combat will prevent the character from retaliating in combat if they're already fighting someone
  • Fixed several issues with dropping items through floors, tables and generally not being placed correctly when dropped inside multis
  • Hard-defined the Z-level at which some jewellers in Britain spawn to deny them rooftop access (spawn_felucca_town_britain.dfn and spawn_trammel_town_britain.dfn)
  • Added system messages informing shard staff with elevated command privileges why they are getting 100% skill check success, and no spellcast delay
17/03/2023 - Dragon Slayer, Xuri
  • Created framework, gumps, initial system for Bulk Order Deeds (Dragon Slayer)
  • Expanded BOD system to include gold, fame and special item rewards (Xuri)
  • Added optional support for triggering BOD offers from shopkeepers via context menus (Xuri)
  • Added new UOX.INI section with settings for Bulk Order System: (Xuri)
    • OFFERBODSFROMITEMSALES=1 // If enabled, shopkeepers might offer BODs when players sell items to them
    • OFFERBODSFROMCONTEXTMENU=0 // If enabled, shopkeepers might offer BODs via context menu option
    • BODSFROMCRAFTEDITEMSONLY=0 // If enabled, only selling of crafted items will trigger BOD offers
    • BODGOLDREWARDMULTIPLIER=1 // Reward multiplier for Gold given for completing a BODs - defaults to 1.0
    • BODFAMEREWARDMULTIPLIER=1 // Reward multiplier for Fame given for completing a BOD - defaults to 1.0
  • Updated smithing-related create DFNs (dfndata/create/*) with proper names for entries (Xuri)
  • Added special BOD item rewards: (Xuri)
    • Sturdy Pickaxe - More uses than normal pickaxes
    • Sturdy Shovel - More uses than normal shovels
    • Mining Gloves +1/+3/+5 - Boosts mining skill when equipped
    • Runic Hammers - Adds bonuses to crafted weapons and armors, applied after crafting the items (js/skill/craft/crafting_complete.js)
    • Colored Anvils - No unique property other than color, but can be added to houses as decoration/functional anvils
    • Ancient Smithy Hammers +10/+15/+30/+60 - Boosts blacksmithy skill when equipped
    • (Not fully implemented, AoS feature) Gargoyle's Pickaxe
    • (Not fully implemented, AoS feature) Prospector's Tool
    • (Not fully implemented, AoS feature) Powder of Temperament
    • (Not fully implemented, AoS feature) Blacksmith Power Scrolls +5/+10/+15/+20
  • Updated onMakeItem() JS event to always include the create entry ID as a parameter, even when crafting an item failed (Xuri)
-= Ho Eyo He Hum =-
User avatar
Xuri
Site Admin
Posts: 3704
Joined: Mon Jun 02, 2003 9:11 am
Location: Norway
Has thanked: 48 times
Been thanked: 8 times
Contact:

Post by Xuri »

21/05/2023 - Dragon Slayer, Xuri
  • Added initial pass for supporting Trammel PvP ruleset, which can be applied to and/or customized per facet and optionally overridden per region via js/server/misc/facetRulset.js (Dragon Slayer)
  • Misc script cleanup and extension of pvp ruleset script to include target handling for Blade Spirits/Energy Vortex, as well as the Provoke barding skill (Xuri)
  • Added custom AI scripts for summoned Blade Spirits (js/npc/ai/summon/blade_spirit.js) and Energy Vortexes (js/npc/ai/summon/energy_vortex.js) with updated target selection rules (based on target stats) and checks for active pvp ruleset (Xuri)
  • Added JS Function to check for existence of a JS event in another file (Xuri):
    • DoesEventExist( scriptID, eventToCheck )
  • Updated scripted magic spells to check for facet ruleset before allowing casting hostile and/or beneficial spells on other players (Xuri)
  • Added new JS Method for Guilds to check if they are "at peace", i.e. NOT at war with any other guilds (Xuri):
    • .IsAtPeace() // Returns true if guild is at peace, and not at war with any other guilds
  • Added support for triggering onPickup JS event for Characters, and not just items (Xuri)
-= Ho Eyo He Hum =-
Locked