Commit graph

1899 commits

Author SHA1 Message Date
Xoduz
50f145c3c7 docs(changelog): Update Changelog.txt from PR #432 2025-09-21 04:12:05 +00:00
Xoduz
3229f0ed3a Fixes for weapon and armor definitions
- [UPD] Updated all Item definitions for weapons and armor to always inherit a default set of properties regardless of era. Some eras default to data from other eras, in cases where there's not much difference between them. GETUO, GET2A, GETUOR all point to the definition entries for T2A, while GETTD, GETLBR all point to LBR entries, GETAOS, GETSE point to AOS entries, and GETML and above all point to TOL entries.
- [FIX] Fixed many instances of GET tags pointing to incorrect entries, including some cases that were self-referential, and some duplicate era-specific tags
- [FIX] Fixed some missing variant/aliases for kite/heater shields across all colored armor types
- [FIX] Added missing GETUO tag support in code for Item definitions, which was only defined for NPC definitions previously
- [FIX] System messages about dismissing guild members and broadcasts to guild members about new Guild Master now use the actual name of the character being dismissed/promoted to GM, even if the characters are incognito/disguised
- [FIX] Account system will now save the actual names of characters on the account, even if they are incognito/disguised
- [FIX] Added 'get priv and 'set priv # commands to js/commands/targeting/get/set.js the privilege property for characters
2025-09-21 10:22:30 +08:00
Xoduz
07b620fdf4 docs(changelog): Update Changelog.txt from PR #419 2025-09-07 10:33:42 +00:00
GO
fa620c103a
Merge branch 'develop' into New-Containers 2025-09-07 18:31:50 +08:00
Xoduz
8c48c277b9 Update Changelog.txt
Manually updated Changelog.txt from previous PR
2025-09-07 14:08:04 +08:00
Dragon Slayer
3fe03f9990 Containers
- [ADD] Added Missing container Gumps and Container IDs
2025-09-04 19:12:05 -05:00
Xoduz
c34e29580b docs(changelog): Update Changelog.txt from PR #414 2025-08-21 22:22:40 +00:00
Xoduz
461cfe4a6b Updated default UOX3 build github workflow
- [FIX] Updated UOX3 Build github workflow to prevent double-building on creation of new pull requests. Now triggers either for pushes to main branches OR for creation/update of PRs
2025-08-20 23:05:10 +08:00
Xoduz
befd1ee7c2 Updated github workflow files (again)
- [FIX] Fixed issue with github workflow files that prevented automatic update of changelog.txt based on PR descriptions. Skip by assigning 'skip changelog' label to PR
2025-08-20 22:51:47 +08:00
Xoduz
09775a6f9e Updated automatic changelog workflow
Updated automatic changelog workflow
Manually updated changelog with previous PR merge details
2025-08-13 08:26:30 +08:00
Dragon Slayer
7350c4a2fa WalkTo & RunTo Bug Fix
-[FIX] Fixed WalkTo was missing the if( argc < 2 || argc > 5 ) line.
-[FIX] Fixed Debug Msg for RunTo Said WalkTo instead of RunTo.
2025-08-10 00:07:47 -05:00
GO
1fcd198e9d
Merge branch 'develop' into packanimals_everywhere 2025-08-06 06:36:23 +08:00
Xoduz
ccbe0fa27a Workflow update
Gave workflow that writes to changelog.txt on PR merge write permissions
Updated Changelog.txt with missing entries from failed workflow runs on last couple of PR merges
2025-08-06 00:56:52 +08:00
GO
ede9a8c81e
Merge branch 'develop' into packanimals_everywhere 2025-08-05 04:14:07 +08:00
Xoduz
bcf1ba09a4 Merge branch 'Guild-Methods' of https://github.com/DragonSlayer62/UOX3 into pr/362 2025-08-05 04:06:07 +08:00
Xoduz
3c4b014d92 Guild-specific updates
- [ADD] Integrated FindGuildId( const CGuild* ) in guild relation functions for better JS mapping (Thanks to Xuri for the base implementation)
- [ADD] Added new JS Function:
 - CreateNewGuild() // Returns the guild object for further setup
- [ADD] Added new Guild JS Methods: .AddMember( targChar ), .AddRecruit( targChar ), .RemoveRecruit( targChar ), .RemoveMember( targChar ), .RecruitToMember( targChar ), .IsAtWar( targetGuild ), .IsAlly( targetGuild ), IsNeutral( targetGuild )
	Added documentation entries for all new guild/character functions and methods
- [ADD] New JS Event that triggers when GUILD button in paperdoll is pressed:
 - onGuildButton( mChar )
- [ADD] Added new Guild JS Property: .id (guild number)
- [ADD] Added new Character JS Property: .guildNumber
- [UPD] Updated Guild JS Methods and renamed them:
 - Renamed .NewMember( trgChar ) to .AddMember( trgChar )
 - Renamed .NewRecruit( trgChar ) to .AddRecruit( trgChar )
 - Renamed .GuildIsAtWar( targetGuild ) to .IsAtWar( targetGuild )
 - Renamed .GuildIsAlly( targetGuild) to .IsAlly( targetGuild )
 - Renamed .GuildIsNeutral( targetGuild ) to .IsNeutral( targetGuild )
- [UPD] Removed Character JS Method .CheckGuild(). Can be checked via .guild and/or .guildNumber properties
- [UPD] 'get command can now be used to fetch guild information for characters. Example: 'get guild / 'get guildnumber
- [UPD] Updated 'add item sectionID command to support optional amount. New syntax: 'add item sectionID amount
- [FIX] Fixed an issue with 'wholist command where characters with serials in the millions would not show up in the list
2025-08-05 04:05:43 +08:00
GO
ee1be12391
Merge branch 'develop' into Guild-Methods 2025-08-05 03:35:21 +08:00
GO
d90ccee073
Merge branch 'develop' into packanimals_everywhere 2025-08-05 03:29:00 +08:00
Xoduz
6d383dcfc9 Merge preparation
- [UPD] Updated documentation, readme.md, version number
2025-08-05 03:16:54 +08:00
Xoduz
4ce0918abd Added way to define creatures as pack animals
- [ADD} Added new Creatures DFN tag that can mark a creature as a pack animal: PACKANIMAL
- [ADD] New Character JS Property to check if NPC is a pack animal: .isPackAnimal
2025-08-05 02:40:39 +08:00
strattond
af74859df5 Merge from origin/develop 2025-07-30 09:16:20 +10:00
Xoduz
0f2eae5fb3 Server crash fix on worldfile load and timer fixes
- [FIX] Fixed a crash during loading of worldfiles caused by an issue with how certain timers (summon/peacemake) were saved and loaded
- [FIX] Fixed an issue where murder decay rate was not loaded properly for characters
- [FIX] Fixed an issue where summoned creatures with "scared animal" AI would try to escape from their summoner
2025-07-30 06:18:46 +08:00
strattond
316451fd1a Apply property resolution fix to other areas 2025-07-28 12:47:03 +10:00
strattond
9524ad2fb3 Try to address issue re prop no longer looking up by int 2025-07-28 10:56:41 +10:00
GO
ddb937e7d8
Merge branch 'feature/GECKO20b12_2011022218_RELBRANCH' into Guild-Methods 2025-07-21 17:24:35 +08:00
Xoduz
11239d8a61 docs(changelog): Update Changelog.txt from PR #399 2025-07-21 02:05:20 +00:00
Xoduz
f5bebde28e Updates to Visual Studio build configuration
- [FIX] Fixed an issue where animal trainer shoplist was referring to an incorrect sectionID for desert ostards
- [FIX] Restored support for VS2017
- [UPD] Updated VS solutions/projects to once again build and link Spidermonkey using a static library instead of producing a DLL
- [UPD] Turned console warning about string properties into a log-action that writes directly to warning.log instead
2025-07-21 00:10:14 +08:00
strattond
7cd77f4671 Merge from origin/develop 2025-07-20 07:33:35 +10:00
Xoduz
e9a74e5f03 UOX3 v0.99.7
Bumped up version number
Added workflow file (github-releases-to-discord.yml) that will publish UOX3 GitHub releases to Discord
Updated UOX3Build.yml workflow file to ignore pushes with "-release" version tags
Updated CMakeLists.txt to include installation rules for creating release packages
Updated readme.md with some up-to-date details and fix for broken build-status badges
2025-07-19 01:11:38 +08:00
strattond
063e011b1b Merge from origin/develop 2025-07-10 09:04:54 +10:00
strattond
2e18133026 Merge remote-tracking branch 'origin/develop' into feature/GECKO20b12_2011022218_RELBRANCH 2025-07-10 09:02:58 +10:00
Xoduz
a601de9a5e Small update
Added dictionary entries for single-click name suffixes like tame/bonded/invulnerable/frozen/guarded
2025-07-09 02:09:59 +08:00
Xoduz
0ca218cbd6 Added support for large radio/checkbox button IDs
Added [Tame] and [Bonded] to character tooltips of tame/bonded animals and updated Dictionary files
Updated .AddRadio() and .AddCheckbox() Gump Methods to support 32-bit unsigned int for the buttonID
2025-07-09 01:17:59 +08:00
Dragon Slayer
6fa9361f75 Updates 2025-07-06 21:42:05 -05:00
Dragon Slayer
a8f643405f Fixed Dead Pets Ignored in combat
Fixed so Dead pets get Ignored in combat.
2025-07-06 18:45:28 -05:00
Dragon Slayer
b76c643f27 Update cServerData.cpp 2025-07-05 09:44:26 -05:00
Dragon Slayer
47780fd4cd adjustments 2025-07-04 21:27:57 -05:00
Dragon Slayer
903366d5ec Update Changelog.txt 2025-07-04 21:03:50 -05:00
Dragon Slayer
d7e9b1daee Update Changelog 2025-07-04 21:00:42 -05:00
Dragon Slayer
eaf66903b5 Update cBaseObject.cpp 2025-07-04 13:04:02 -05:00
strattond
c61a6e0113 I broke it, I bought it 2025-07-04 14:37:00 +10:00
strattond
afc59dd0a9 Merge from origin/develop. Fix compile error in cScript.cpp 2025-07-04 08:39:28 +10:00
Geir Ove Alnes
d5094195d4
Merge branch 'develop' into Pet-Bonding 2025-07-04 03:59:21 +08:00
Xoduz
79694a4e14 Last fix
Excluded player pets from MONSTERSVSANIMALS/ANIMALATTACKCHANCE ini settings; player pets are now always valid targets in combat for NPCs (unless player is a Young character)
2025-07-04 03:16:28 +08:00
Xoduz
7a3f4c5144 Updated calculations of magic and/or poison resistance to also include magic and/or poison resistance from races
Updated calculations of magic and/or poison resistance to also include magic and/or poison resistance from races
2025-07-04 02:10:29 +08:00
Xoduz
2e0af73968 Poison fixes
Fixed an issue with poison damage in combat where the poison resist of the attacker was checked instead of that of the defender
Fixed an issue where the poison details in tooltip of an item would only be visible when equipped, and not visible when kept in backpack
Fixed an issue where if a weapon was destroyed due to corrosion damage, it would not unset the poison strength on the character who wielded it
Added new Character/Item property to track the source (serial) of poison applied to an object. This is available as a JS Char/Item property:
	.poisonedBy // serial of character who applied poison to an object. Set to 0xFFFFFFFF/SE_INVALIDSERIAL() to clear
Updated all code and scripts related to setting/unsetting poison effect on objects to also update the .poisonedBy property
Serial of character who poisoned a character who died while poisoned is now stored on the corpse
Added third optional parameter to Character JS Method .SetPoisoned() that can be used to specify source char of applied poison. New syntax:
	.SetPoisoned( poisonLevel, wearOffTime[, poisonSourceChar ])
2025-07-04 01:17:04 +08:00
Xoduz
98596b9f78 Some minor fixes and updates
Updated UOX3 & JS documentation
Added new JS command: 'seeryell [text] // broadcast message to all with seer privs or higher privs
Added new privilege flag for characters:
	0x20000 - Seer (Character is a Seer)
Fixed an issue where Young players could not direct hirelings to attack valid targets (js/npc/ai/hireling.js)
When buying items from NPC shopkeepers worth more than the BUYTHRESHOLD in uox.ini, the player's backpack is first checked for the required amount of gold, before their bankbox is checked. A new message is displayed about any gold withdrawn from player's bank.
When selling items to NPC shopkeepers that are worth more than the BUYTHRESHOLD in uox.ini, the gold is now deposited directly into the player's bankbox, instead of to their backpack. A new message is displayed about any gold deposited to the player's bank.
Fixed an issue with Shopkeeper AI (js/npc/ai/shopkeeper.js) where the NPC would incorrectly assume player was member of the same NPC guild as them, and provide them with an unwarranted bonus to trade prices as a result
Fixed an issue that prevented players from being able to apply poison to weapons (js/skill/poisoning.js)
Fixed incorrect NPC spawn entry in Khaldun spawn region DFNs: spectralarmour -> spectralarmor
Added entries for Orc Caves/Khaldun to GM travel menu (dfndata/items/travelmenu.dfn and travelmenu.bulk.dfn)
Fixed an issue that sometimes prevented admin characters from seeing offline GMs
Added support for reading SKILLCAPSINGLE ini setting with GetServerSetting() JS function
Fixed issue where animal trainers would give players a random ostard when buying a desert ostard (js/npc/pets/static_ostard.js and dfndata/items/misc/mount-statues.dfn)
Added DFN entries for additional ostard-mount-statues (not sold by animal trainer) that can give user a random ostard, forest ostard or frenzied ostard respectively (dfndata/items/misc/mount-statues.dfn)
Player pets are no longer safe from being attacked from monsters. This also addresses an issue with tamed pets being able to freely attack monsters if player gets the monster's attention first and then kites the monster around while pet kills it. Now monster will properly re-focus to nearest attacker (including pets) if original target is too far away
Fixed incorrect command-levels for GMs for hard-coded commands listed in commands.dfn
Added support for specifying minEra,maxEra value pair for teleport locations in js/teleport.scp. These can be used to define the minimum and maximum era a given teleport entry should be active for. The values for these default to -1, unless otherwise specified. Updated teleport entry format:
	sourceX, sourceY, sourceZ, targX, targY, targZ, [sourceWorld, targWorld[, minEra, maxEra]]
Updated teleport entries for Yew <-> Heartwood to only be active for ML era shards and above (js/teleport.scp)
Updated regions for Moonglow and Skara Brae to properly cover dock areas (dfndata/regions/regions.dfn)
Added missing dictionary entries related to poison/corrosion update
Added some missing details for poisoning skill (js/skill/poisoning.js) and arms lore skill (js/skill/armslore.js)
Added missing details for 'tweak (js/commands/targeting/tweak.js), 'get and 'set (js/commands/targeting/get.js and set.js) commands related to poison charges and poison strength on items
Updated poison strength of poison elementals [poisonele] from 4 to 5 (dfndata/npc/elementals.dfn)
Fixed an issue with Spawner Object Editor where state of "Use Spawnlist" checkbox would not be read correctly if no "Spawner Type" radio buttons were selected (js/server/misc/spawner_editor.js)
2025-07-02 03:11:29 +08:00
Xoduz
e38be292e3 0.99.6d
Cleaned up an issue with last commit where wrong npclists were used in some spawn regions
Made a few additional adjustments to the new spawn regions in Lost Lands/New Haven
Included more changes related to poison updates that should've been in previous commit (like the complete UOX.INI support for POISONCORROSIONSYSTEM setting)
Adjusted region setup for New Haven to set the individual "building" regions within as a sub-region of the main town (regions.dfn)
Fixed an issue where the displayed HP of an equipped item would not update correctly
Further updates to convert timers 32-bit to 64-bit. This affects and addresses some potential issues with: Character creation/NPC guild-join timestamps, NPC movement, combat timers, idle timeouts, item decay, spellcasting
Added support for new JS Events that can trigger from global script, and can be used to store persistent custom entries in players' paperdoll profiles:
	onProfileRequest( socket, profileOwnerChar ) - Triggers when client requests data for a paperdoll profile
	onProfileUpdate( socket, updatedText ) - Triggers when client sends updated data from paperdoll profile
Added two new helper functions in code that allows faster (but very slightly less accurate) distance checks between two points: 	GetApproxDist( Point3_st a, Point3_st b )
	GetApproxDist( CBaseObject *a, CBaseObject *b )
Improved pathfinding for NPCs attempting to follow another character, by adopting a system of weighted variables to help the NPC determine when to recalculate the path vs when to stick with the old, combined with faster distance checks via GetApproxDist(). The end result of this is faster, smarter and more responsive NPC followers and NPC opponents in combat. The variables influencing this include: how far the target has moved from last pathfind target location, whether NPC is heading in the overall right direction or not, time since last path calculation and some small randomization to avoid edge case jitters.
Updated default command levels in commands.dfn, code and scripts to support the Seer role and make space for some custom roles. These are the new defaults as listed in commands.dfn, which should not be changed as they are linked to specific enums in code. Do take note that this might invalidate command levels for existing GMs/Seers/Counselors, who might need another round of 'make gm/seer/cns from an admin:
	ADMIN - command level 10
	GM - command level 9
	SEER - command level 7
	CNS - command level 4
	PLAYER - command level 0
Updated how UOX3 makes use of the account-level flags 0x2000 (Seer) and 0x4000 (Counselor). If either of these flags are set on an account, all new characters created on the accounts will automatically receive the relevant command privileges.
Fixed an issue with 'wholist command that prevented admin characters from seeing characters with lower privilege levels in the list (js/commands/wholist.js)
Fixed an issue with hiding/GM hide that prevented admin characters from seeing hidden characters with lower privilege levels in the world
UOX3 now includes the cross-platform, header-only utf8cpp library found at https://github.com/nemtrif/utfcpp and freely available under Boost Software License v1.0. The immediate use-case for this is in code right now is to better handle strings related to custom paperdoll profiles, but will also look to make more heavy use of this in future updates
2025-06-28 22:37:42 +08:00
Xoduz
30ddfefd51 Small update
Fixed an issue with an internal movement check that prevented characters from moving in valid map areas in Felucca/Trammel from X 6144 to X 7168
Fixed an issue where .instanceID property was misspelled in 'xgo GM command script, causing characters to be teleported to an out of bounds area where they would no longer be saved (js/commands/targeting/x.js)
Added some additional error-checking to .Teleport()/.SetLocation() JS Method to prevent script-accidents from sending characters out of bounds.
Updated Poisoning skill to add poison-charges to weapons being poisoned. Charges are consumed when applying poison in combat (js/skill/poisoning.js)
Updated combat code to consume poison-charges if a poisoned weapon is used to poison an opponent
Updated shoplists for Blacksmiths and Weaponsmiths - they now buy/sell longswords (dfndata/items/shoplist.dfn)
Updated MageShopping shoplist for mage vendors - they now buy/sell mass curse scrolls (dfndata/items/shoplist.dfn)
Added new Spawn Region DFN tag that can specify which era or eras of UO (Multiple comma-separated entries supported) a given spawn region is valid for. Spawn region not valid for core shard era will be ignored. Syntax:
	ERAS=UO,T2A,UOR,LBR,AOS,SE,ML,SA,HS,TOL
Added new Spawn Region DFN tag that allows using another spawn region as a "parent". All properties of this parent will be inherited except for these, which are ignored: ERAS, NPCLIST, ITEMLIST, NPC and ITEM. Syntax for new tag:
	GET=# // Inherit a specified spawn region
Added spawn region for animal trainer vendor in Vesper stable
Added spawn region for fur trader/tanner vendors in The Best Hides of Britain
Added spawn region for spinner vendor in The Lord's Clothier's and The Right Fit shops in Britain
Added spawn region for tanner NPC to Nujel'm Tannery (and fixed leatherworker spawn region for same area)
Added spawn regions for banker NPCs in East Bank of Britain, First Bank of Moonglow, Jhelom Bank and Jeweler, Bank of Skara Brae
Added spawn regions for stables, tailor and blacksmith inside Castle British
Added spawn regions for mage shops, mage guilds and farm houses in Moonglow
Added spawn regions for misc vendors and townfolk in multiple cities
Added spawn regions for Fire Island
Updated spawn regions for Dagger Isle/Ice Island
Added spawn regions for forests and jungles in southern Britannia and on various islands including Bucc's Den, Moonglow, Serpent's Hold, and misc unpopulated islands
Added spawn regions for area east of Skara Brae, around Hedge Maze and south of Britain
Added spawn regions for wandering healers outside every dungeon entrance in Britannia and Lost Lands
Re-integrated ocean spawn regions for ocean creatures (dolphin, walrus, water elemental, sea serpent) from the original community-based spawn file
Added reagent spawns in overworld spawn regions in Britannia/Lost Lands
Added special reagent spawns in swamp areas
Added additional overworld spawn regions in Britannia/Lost Lands
Added spawn regions for Khaldun dungeon that spawn some new and some old NPCs:
	Old: Zombies, skeletons, skeletal mages, skeletal knights, ancient liches
	New: Cursed (and named) NPCs, shadowfiends, zealots of khaldun (knights/summoners), tentacles of the harrower
Updated size and positions of some existing overworld spawn regions
Fixed incorrect spawn region size for small island south of Trinsic
Added switch/door puzzle functionality in Khaldun dungeon using new switch/door combo script (js/item/dungeons/switch_door_combo.js)
Added "smart objects" in Khaldun dungeon that activate when you come close enough (js/item/dungeons/smart_activate_item.js)
Added teleport locations within Khaldun dungeon (js/teleport.scp)
Added custom AIs to existing NPC spawning in Khaldun dungeon:
	Ancient Lich (summons other undead, and can turn into one of them for disguise)
Added DFN entries for new NPCs spawning in Khaldun dungeon, some with custom AIs:
	[tentacles_of_the_harrower] -> Tentacles of the Harrower (life steal)
	[shadowfiend] -> Shadowfiends (seek out and reveal hidden players)
	[zealot_knight]/[zealot_summoner] -> Zealots of Khaldun (turn into undead on death, male/female variants)
	[cursed] -> Cursed (male/female variants)
	[spectralarmor] -> Spectral Armor
Added DFN entries for new (named) NPCs spawning in Khaldun dungeon:
	[lysander_gathenwale] -> Lysander Gathenwale
	[grimmoch_drummel] -> Grimmoch Drummel
	[morg_bergen] -> Morg Bergen
	[tavara_sewel] -> Tavara Sewel
Added new NPC DFN entries:
	[leatherworker] -> alias for male/female leatherworker vendors
	[mapmaker] -> alias for male/female mapmaker vendors
Added new Race DFN entries:
	[RACE 29] -> Cursed (enemies of RACE 30)
	[RACE 30] -> Zealots (enemies of RACE 29)
Added new book DFN entries for Khaldun journals of Lysander, Tavara and Grimmoch - available as loot from the respective NPCs (dfndata/misc/books.dfn and dfndata/items/misc/books.dfn)
Added 25% chance for hit-animations and hit-SFX to play for targets in combat, instead of playing every time - can get very spammy
Monsters with actual weapons equipped (like Ophidian Enforcer with Halberd/Bardiche) will now get appropriate combat SFX for hitting with that weapon
Updated Healing skill to base cure/resurrection skill requirements on the calculated skill, rather than base skill (js/skill/healing.js)
Fixed an issue where healing with bandages and dying in the process would not properly reset the healing-related tags and skills used
Updated healing script to show a resurrection confirmation menu for players targeted with bandages for resurrect (js/skill/healing.js)
All skill usage states now reset on death, to prevent cases of players being "busy" while trying to use skills that got stuck due to script bugs.
The 'regspawn GM command now supports a new parameter called "max". Updated command syntax:
	'regspawn # // perform a single respawn cycle in a specific spawn region
	'regspawn all // perform a single respawn cycle across all spawn regions
	'regspawn max // respawn ALL spawn regions to MAX capacity in one go
Added new UOX.INI setting that determines the maximum range at which NPCs can initiate attacks on players/NPCs (the old MAXRANGE=10 setting now instead defines max range at which players can initiate attacks on players/NPCs):
	MAXNPCAGGRORANGE=10
Optimized performance by significantly reducing the number of line-of-sight checks performed by characters, especially in combat scenarios, or when evaluating potential targets for NPC AIs. The amount of checks done is also affected by the new ini setting for max aggro range.
Fixed an issue where both NPC and player characters would instantly drop one hunger level (from 6 to 5) upon creation since hungerrate was not initialized until after first hunger-event
Updated character priv property from UI16 to UI32, and added a new flag that determines if fame/karma title is hidden for character:
	HIDEFAMEKARMATITLE (0x10000)
NPCs will no longer aggro other NPCs if the Z difference between them is greater or equal to 20 (i.e. they're on different floors), unless both are using ranged weapons and both are in range
Fixed an issue where players could get discounts from shopkeepers even though neither player nor shopkeeper were members of a NPC guild (js/npc/ai/shopkeeper.js)
Fixed an issue where the "premium" a player would get when selling items to a shopkeeper in the same NPC guild as them would be 110% extra on top of the item's value, instead of the intended 10% (js/npc/ai/shopkeeper.js) (Thanks, cobrag0318!)
Added missing tall straw hat to tailoring crafting scripts (Thanks, Dragon Slayer!)
Improved error reporting during compilation of individual scripts being reloaded - will now show more context and line number
onCombatEnd JS Event now also triggers when NPCs ignore their target and/or evade during combat
Updated 'decorate command to support saving/loading custom tags on items for world templates. These are stored after a @ symbol in the world template, each custom tag separated by a | symbol, and with each custom tag saved using this syntax: key$type$value
Updated resource-harvesting scripts to use script-specific global (const) variables, to avoid interference between different scripts (js/server/resource/*)
Added new resource-harvesting scripts and added spawn regions for these in fields on farms all over Britannia/Lost Lands
	cabbages (js/server/resource/cabbages.js)
	canteloupes (js/server/resource/canteloupes.js)
	carrots (js/server/resource/carrots.js)
	garlic (js/server/resource/garlic.js)
	gourds (js/server/resource/gourds.js)
	honeydew melons (js/server/resource/honeydewmelon.js)
	onions (js/server/resource/onions.js)
	pumpkins (js/server/resource/pumpkins.js)
	squashes (js/server/resource/squashes.js)
	turnips (js/server/resource/turnips.js)
	watermelons (js/server/resource/watermelon.js)
Updated CSpawnRegion::FindItemSpotToSpawn() function in cSpawnRegion.cpp to prevent duplicate spawning of exact same item in exact same location
Updated sectionid of all potion and scroll aliases to match main item, so they'll get correctly picked up by NPC shopkeepers (dfndata/items/magic/potions.dfn and scrolls.dfn)
Specified sectionid for backpacks, so it also gets applied to packs added using the alias [backpack] (dfndata/items/misc/provisions.dfn)
Fixed a code issue that prevented players from selling empty containers to NPC shopkeepers willing to buy such containers
Fixed an issue where field-spells (wall of stone, poison field, etc) would ignore dynamic/static items that should block these
Fixed an issue where field-spells could be cast into houses from the outside by standing next to a wall and targeting self
Fixed a War/Peace-mode desync between client and server by having server always notify client (using war-toggle packet) when the "at war" flag is toggled for player character
Fixed an issue with hiding skill that wouldn't allow player to hide after having acquired self as target in combat (through spellcasting, for instance) (Thanks, Dragon Slayer!)
Fixed an issue where mana/reagents were consumed and skillcheck performed before all spellcast-validations had succeeded, resulting in the occasional loss of reagents/mana when spellcasting was disallowed (code and js/magic/clumsy.js and level1targ.js)
Fixed an issue with lack of criminal-flagging for casting of hostile spells scripted in JS (clumsy, magic arrow, feeblemind) vs blue targets (js/magic/clumsy.js and level1targ.js)
Fixed some issues with Line-of-Sight checking code that returned incorrect results, which amongst other things affected spellcasting in areas with uneven terrain
Fixed some issues with movement code and climbing of ladders, in particular the rope ladder in the 2-story log cabin. Code now sets a "is climbing" flag when character steps onto a rope ladder, and uses that to help resolve some edge cases, and then unsets it when they step off.
Renamed section headers of some map-items in DFNs from "locationname" to "locationnamemap" for clarity (example: "britain" to "britainmap")
Fixed broken "map wrapping" when sailing to edges of map in Felucca or Trammel
Fixed a server crash related to attempts at reading data from invalid map tiles
2025-06-27 09:04:16 +08:00
Dragon Slayer
a5e932309f
Merge branch 'feature/GECKO20b12_2011022218_RELBRANCH' into Guild-Methods 2025-06-03 18:21:51 -05:00