Fixed an issue causing errors when compiling in VS 2008 Express and newer (giwo) Added some exception-handling to cScript::DoCallback() in cScript.cpp (spdddmn) Added NPCWANDER-type 5 (WT_FROZEN) - which will stop NPCs from moving. Useful for reapers and corpsers and such. Added support for six new JS events: onBuy( socket, objVendor ) - triggers for vendor before tradegump is opened. Can be used to restrict vendor access. onSell( socket, objVendor ) - triggers for vendor before tradegump is opened. Can be used to restrict vendor access. onBuyFromVendor(socket, objVendor, objBought ) - triggers for item while item is being bought from an NPC vendor; return false in script to block sale, defaults to true onBoughtFromVendor( socket, objVendor, objBought ) - triggers on item after purchase has gone through and item has reached the player's backpack onSellToVendor( socket, objVendor, objSold ) - triggers for item while item is being sold to an NPC vendor; return false in script to block sale, defaults to true onSoldToVendor( socket, objVendor, objSold ) - triggers on item after sale has gone through and item has reached the vendor's boughtpack Included CJSMapping.h and cScript.h in vendor.cpp to support new JS events Added onBoughtFromVendor JS events to pet-statue scripts in JS/NPC/PETS/ to automagically turn statues into live pets immediately after being bought Added a NULL-check in CJSEngine::AquireObject() in CJSEngine.cpp (spdddmn) Added an extra check to CPISellItem to make sure the character trying to sell items still owns those items when accepting trade (Added a temporary workaround for NPC pathfinding with long queues of NPCs trying to reach the same target) Added new DFN tags for ranged weapons, defining ammunition id required (color optional) and missile-effect id played (color/rendermode optional): AMMO=id (color) AMMOFX=id (color rendermode) Added AMMO and AMMOFX tags to ranged weapons in archery.dfn, aos_weapons.dfn, se_weapons.dfn and baseitem.dfn Added support for Fukiya blowguns as an Archery weapon in code Added new item DFN tag (and JS item property) to define maximum amount of stones (weight) a container can hold (replaces hardcoded value): WEIGHTMAX=# (defaults to 40000 - or 400.00 stones - for all containers) Added container-capactity information to item tooltip Added "Locked Down" text to item tooltips for locked down items. Refresh seems funky though. Fixed an issue where tooltips would display the current weight of and amount of items being spawned by container-spawners Fixed a server crash caused by the Item Identification-skill when used on items of type 15 - IT_MAGICWAND Fixed item-tooltip that describes remaining charges on an item of type 15 - IT_MAGICWAND. Fixed an issue with the JS Method Open for File Objects where it wouldn't allow opening files for appending or writing, only reading Fixed name in addmenu for item 0x0F64 (unused torch) Fixed TrainerShopping list in DFNDATA/ITEMS/shoplist.dfn - now refers to actual animal-statue items in DFNs Fixed DIR values for various wall sconces (DFNDATA/ITEMS/lighting.dfn) and heating stands (DFNDATA/SKILLS/TOOLS/alchemy.dfn) Fixed some incorrect scriptIDs for lightsources in jse_fileassociations.scp and jse_objectassociations.scp Fixed broken smithing of agapite items due to duplicate item-numbers between agapite and gold crafting DFNs (DFNDATA/CREATE/smithing_agapite.dfn) Fixed 'SETRACE command, no longer tries to use non-existing method to set character's race (JS/COMMANDS/setrace.js) Fixed some confusion with how vendor buy/sell backpacks were handled internally in code Fixed an issue where onCreate JS scripts would not run for duped items Updated dictionary-files with some more messages, including a missing systemmessage used to inform of remaining amount of lockdowns in houses Changed MAX_NAME to a 128 byte limit to support long item names. Changed JS scripts for lights to save DIR to MOREX when turning light off, and load DIR from MOREX when turning on. Sets default DIR if no MOREX value can be found. Changed some items spawned through code to use CreateScriptItem (DFN based) instead of CreateItem (Tiledata-based): Leftover arrows and crossbow-bolts that appear on ground during combat All cases where gold coins are spawned (newbie gold, random fishing, gravedigging, result of trading, NPC escort reward, etc) Ingots created from smelting items Resurrection robes (DFN entry added to DFNDATA/ITEMS/GEAR/CLOTHING/clothing.dfn for potential tweaking) The empty bottles that appear after using a potion will now be DFN based (JS/ITEM/potion.js) Fixed an error in JS/ITEM/diceandcup.js (dragon slayer) Made spawners of type IT_AREASPAWNER (69) use the MORE value ('set more 0x0000XXYY) to determine offset area to spawn in Corrected hit sounds for bows and crossbows, were using dart sound Changed miss-sound for bows and crossbows to make them different from melee weapon misses Randomized impact-sounds for melee weapons Randomized get-hit sounds for male and female human characters Revamped spell-damage and magic-resist systems: Added new function in magic.cpp to calculate spell-damage after magic-resist and eval-int vs resist-check: SI16 CalcSpellDamageMod( CChar *caster, CChar *target, SI16 baseDamage, bool spellResisted ) Updated cMagic::CheckResist() with magic resistance formulas based on pre-AoS information Added BASEDMG tag to a number of spells in DFNDATA/SPELLS/spells.dfn. For damage-spells, it's the maximum potential basedamage done before bonuses (or penalties) based on target resist, caster eval int and item resistances. For healing spells, it's the maximum potential basehealing done before potential bonuses Damage-spells updated to use new methods for calculating damage and magic resistances, both of which should now be close to pre-AoS implementation Changed Chain Lightning and Meteor Swarm spells to split the total damage done between all targets Mind Blast changes: Mind Blast will now never exceed 60% of target max-health, nor above 120% of BASEDMG If target's Int stat makes out a larger percentage of his/her total stats (Sum of Str, Dex, Int) than the caster's, spell backfires onto caster Debuff-spells like Clumsy, Feeblemind, Weaken and Curse can no longer be fully resisted. Resisting will halve the effect-duration instead. Spells will now only do double damaga against non-human NPCs (monsters and animals) Exposed CombatExplodeDelay to UOX.INI, and changed the default delay between targeting and damage for the Explosion spell from 0 to 2 seconds Updated JS/MAGIC/level1targ.js with new magic damage and resist system, and added noNeedReags check on caster to potentially skip reagent checks Fixed (visual-only) issue where damage-numbers would display over head of caster twice if caster was also target Added JS Spell property "name" - can be used to get the name of a spell as defined in the dictionary-files (entries 593-662)
Added new UOX.INI settings: GLOBALITEMDECAY - Toggles on/off item decay on a global scale. Note that it does not remove the decay-status from items, it just resets the decay-timer when it reaches 0 SCRIPTITEMSDECAYABLE - Toggles whether DFN-items will decay by default or not. Can be overriden by DECAY tag in item-DFNs BASEITEMSDECAYABLE - Toggles whether base-items will decay by default or not. Can be overriden by DECAY tag in harditems.dfn ITEMDECAYINHOUSES - Toggles default decay of non-locked down items inside multis (houses and boats) Removed lines from add.js that set decayable as true or false (except for spawners), default decay now handled by ini-settings Made skulls dropped as loot by Bonemages movable Fixed several issues with spawners.dfn, including incorrect names and spawnobject-entries (Puck) Added default ID to base_spawner item in DFNDATA/ITEMS/GMMENU/spawners.dfn to make it spawnable without invalid gfx Fixed an incorrect ID for Iron Ore in DFNDATA/HARDITEMS/harditems.dfn and DFNDATA/ITEMS/SKILL/RESOURCES/mining.dfn Fixed a bug that stopped UOX3 from reading and applying DIR values from item-DFNs correctly Added DIR values to all lightsources in DFNDATA/ITEMS/BUILDING/lighting.dfn Added DIR values to all .js files in JS/SERVER/LIGHT/ folder, enabling players to turn on/off lightsources
Fixed an issue with open doors in player houses that could cause them to decay if they were open during decay-check Fixed an issue with locked down items decaying (despite being inside houses) A system message should now be displayed when locking down items, showing how many lockdowns remain Added JS Item property: multi - A read-only Object-reference to the multi a specific item is inside Items of objType OT_SPAWNER with amount set higher than 1 should no longer be duped when picked up off the ground Added movable=2 and weight=50000 to Base_spawner-definition to make it impossible for players to steal them
Added script for Dice and Cup-item, which lets players use said item to...(drumroll, please)...roll dice! Fixed an issue where NPCs could spawn at Z -128 Fixed an issue with regional spawns and type 69 spawners which would cause NPCs to be spawned in blocked locations Fixed an issue with type 62 spawners which would cause NPCs to spawn at Z 0 (Shudderz)
Added DEF values to standard clothing, footwear and headwear Minor fix to JS/COMMANDS/TARGETING/add.js which ensures that the script won't break under some very specific circumstances System-message rapporting how many ingots player gets when smelting player-made items should now rapport correct amount Made GetScriptItemSettings look for "x" instead of "0x" in harditems.dfn, fixes some stacking issues with ingots Corrected IDs for gold coins and kindling in harditems.dfn by removing leading 0s in the IDs Crafting system can now handle MAXRANK values up to 255
Fixed an issue with sword.js which stopped you from carving shafts/kindling from a single wooden log Re-ordered IDs listed under METAL in DFNDATA/CREATE/resources.dfn to make UOX3 give same ingot-types when smelting player-crafted items as when smelting raw ore.
… released in a house Fixed a bug where targeting a non-valid object would crash UOX3 when trying to release locked down items
Fixed client/server synch-issue with boats by changing prSend( 1 ) to prSend( 0 ) in boat movement code (Jediman) Added stablemaster JS-script and assigned it to the animal-trainer vendors (Xuri) Available commands: claim (list|pet-name), stable Added missing Meteor Storm Scroll to DFNDATA/ITEMS/MAGIC/scrolls.dfn (Ghostwolf) Added a new DFN (DFNDATA\NPC\lbrraces.dfn) with Meer and Juka NPCs (Ghostwolf) Added Meer and Juka races to races.dfn (Ghostwolf) Added Meer and Juka NPCs to GM-menu under Humanoid NPCs (Xuri) Fixed messed up smithing gump (Ghostwolf) Added Jhelom fighting pit to regions.dfn and renumbered the regions (Ghostwolf) Added other regions included dungeons, guard outpost, etc (Ghostwolf) Added regions in Trammel, Ilshenar, Malas and the Map of Tokuno Note (Ghostwolf) Updated instalog-section with Trammel and Ilshenar inns (Ghostwolf) Changed Bucc's Den regions to not guarded (Ghostwolf) Added two new NPCs - [shade] and [armeddaemon] to DFNDATA/NPC/undead.dfn and DFNDATA/NPC/daemons.dfn (Ghostwolf) Tweaked ID of existing [daemon] to that of the unarmed one (Xuri) Added Shade and Armed Daemon entries to GM menu (Xuri) Added support for bamboo flute in musicianship/enticement/peacemaking JS-scripts (dragon slayer) Added entries for bamboo flutes in DFNDATA/ITEMS/SKILLS/MISC/music_instruments.dfn (Xuri) Added bamboo flute to GM-menu under music instruments, and entries in jse_objectassociations.dfn (Xuri) Added new JS-script for bolas - JS/ITEM/bola.js (dragon slayer) Added entry for bola in a new DFN file: DFNDATA/ITEMS/GEAR/WEAPONS/missile_weapons.dfn (Xuri) Added entry for bola in jse_objectassociations.dfn (Xuri)
Fixed travelling by recall spell or magic gate between worlds Fixed Jailing and Releasing players in worlds other than world 0 Fixed issue with the 'ADD command that would put items in your backpack instead of target's backpack Removed a TriggerEvent from go.js that should not have been there Corrected scripttrigger for newly created bankchecks in banker.js Fixed teleport entries from Serpent's Hold to Fire dungeon (Ghostwolf) Added new midilist section (23) for dungeon music (Ghostwolf) Added MIDILIST=23 entry in region 29 (dungeons)
Updated trainingdummy.js and pickpocketdip.js with code that will auto-fix them should their timers ever break Pets are removed from petlist when their stabled flag is set to true, and added again when set to false Players will no longer have to shove through characters that are permanently hidden
…already in a players pack. Fixed a bug making it impossible to accept or deny a recruit into a guild. Added functionality to automatically turn on the Guild title display of all members when a guild aligns with Chaos/Order.
Automatic worldsaves can now be disabled by setting SAVESTIMER in UOX.INI to 0 Added blank scrolls and empty books to ScribeShopping SHOPLIST Added new vendor NPCs using ScribeShopping shoplist: m_scribe and f_scribe Added new scribe-spawner item, and added it to GM-menu Sorted male and female NPCs and vendors alphabetically in the NPCs-menu Fixed some issues in shoplist.dfn Fixed an error in tailoring.js where invalid socket and character objects were referenced Removed a debug-message from taming.js
… clicking the Virtue gump icon (and subsequent menus).