Commit graph

157 commits

Author SHA1 Message Date
Xoduz
94233bfd52 Fix for help menu script - UOX3 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
2022-08-26 23:15:13 +08:00
Xoduz
68e57b0756 UOX3 0.99.5b-6
Increased world load speed by almost 20% by reducing how often loading progress is written to the console
Increased world save speed by almost 50% through the use of binary mode and buffer tweaks for ofstream combined with a cached newline char and std::to_string instead of static_cast
Fixed a server crash involving killing NPCs of a specific spawn region using the 'spawnkill # command
Fixed a server crash involving moving items from decaying corpses to the ground
Fixed a server crash involving carving up human corpses
Fixed a server crash related to AreaCharacterFunction JS function, which could trigger for any script that potentially kills any NPC this function iterates over (like explosion potions)
Fixed a server crash related to GMs attempting to add items from add-menu while having no backpack
Fixed a client crash issue caused by attempting to sell house deeds back to architect NPCs
Fixed an issue where players would get incorrect amounts of gold for selling house deeds back to architect NPCs
Fixed an issue with characters dying onboard boats which prevented players from packing up the boats later
Added new item property in code (via bools bitset) that can be used to enable/disable maker's mark on crafted items. This property can be set to true for items crafted at exceptional quality by GM craftsmen
Exposed the new item property to JS engine:
	.isMarkedByMaker	 	// If true, maker's mark will be displayed
Updated default item tooltip to display " of exceptional quality" for items crafted with exceptional quality
Updated default item tooltip to display "[Crafted] by [Crafter's Name]" for exceptional quality items crafted by GM craftsmen. The [Crafted] text comes from the MADEWORD defined in dfndata/skills/skills.dfn for the primary skill used to craft the item
Updated old-school single-click names for items (when AoS bit is disabled in client/server features) to display exceptional status and/or maker's mark for appropriate items
Fixed an issue with the display of titles for NPCs that used dictionary lookups for their title
Added new UOX.INI settings under the [settings] section:
	DISPLAYMAKERSMARK=1/0			// Controls if maker's marks on crafted items are shown on a global level
	SHOWNPCTITLESOVERHEAD=1/0 		// Controls whether NPC titles are shown over their heads
	SHOWINVULNERABLETAGOVERHEAD=0/1 // Controls whether invulnerable tags are shown overhead
	GLOBALRESTOCKMULTIPLIER=1.0 	// Global multiplier applied to RESTOCK property of items when loaded from DFNs
Added new UOX.INI settings under the [combat] section:
	PETCOMBATTRAINING=1/0 			// Controls whether pets can gain skills/stats from combat
	HIRELINGCOMBATTRAINING=1/0 		// Controls whether hirelings can gain skills/stats from combat
	NPCCOMBATTRAINING=0/1 			// Controls whether NPCs in general can gain skills/stats from combat
Fixed an issue where a player meeting the exact minimum requirements for crafting an item would always fail
Fixed a bug with teleporting off boats to valid nearby locations when double-clicking boat planks while standing on it
Updated behaviour of planks on boats:
	Boat key can unlock plank, but won't automatically open it
	Boat key used on an open, unlocked plank will lock and automatically close the plank
	Boat key used on an open, locked plank will unlock the plank and leave it open
	Player using an unlocked plank now opens it
	Player using an open plank will disembark (if onboard) or embark (if not) the boat
	Player can always open a locked plank if they're on the boat, even with no key, to allow disembarking the boat.
	Planks that are open, but locked cannot be accessed from outside the boat, and will close automatically after five of seconds
Updated behaviour of Magic Lock/Unlock spells:
	Magic Lock cannot be used on objects inside a multi
	Magic Lock applies difficulty to lock based on caster's Magery skill
	Magic Lock effect will last between 7 to 50 seconds (depending on caster's Magery skill)
	Any object that can be locked via Magic Lock spell can also be unlocked via Magic Unlock spell, if caster has high enough Magery skill
Fixed a bug where certain JS Functions, Methods and Properties would occasionally pass incorrect values to scripts that called upon them. Scripts that rely on the GetCurrentClock() Function, the .GetTimer() Method, .decayTime, .logTime, .oreTime and .fishTime Properties might need to be updated to account for the fix, which causes larger values to be passed in than before.
Fixed a bug related to GetCurrentClock() that caused decay and respawning of dungeon chests from working properly
Fixed a bug related to GetCurrentClock() and .logTime/.fishTime that prevented consumption and regeneration of log/fish resources from working properly
Added a new JS Function:
	GetStartTime()	// Returns a timestamp for when server started up
Fixed a bug related to GetCurrentClock() where server uptime stats in help menu was showing up incorrectly
Fixed a bug related to GetCurrentClock() and purging of registrations of visitors in public houses so their visits can be counted again later
Fixed a bug related to GetCurrentClock() that caused monster speech to not work properly
Fixed a Z-related issue that sometimes prevented players from fishing when standing on the shoreline next to the sea
Fixed an issue with Animal Lore skill that would always return a pet's loyalty level as "Wild"
Increased max range pets can be from their owner in order to still be included in moongate/teleporter travel from 12 to 24 tiles
Fixed an issue where the alchemy bonus damage for explosion potions was off by an order of magnitude
Fixed an issue where food IDs from foodlists referenced by other foodlists was not detected as valid food for tamed pets or NPCs
Fixed an issue where Alchemy crafting skill did not properly check for the existence of the crafting tool before proceeding with the crafting process
Fixed an issue that prevented the Teleport spell from working as intended
Fixed an issue where players would still get 1 gold even if STARTGOLD in uox.ini was set to 0
Fixed an issue with mount restrictions script that prevented players from mounting Unicorns, Ki-rins and Cu Sidhes
Fixed an issue where aggressive creatures wouldn't stop attacking player after being tamed (js/skill/taming.js)
Added a system message to inform the player when they've dropped out of stealth due to taking too many steps
Fixed an issue where hunger level of NPCs instantly dropped upon spawning because hunger timer was not active yet
Fixed a bug where character corpses would appear with a [unidentified] tag attached
Fixed an issue where the [unidentified] tag did not show up for unidentified magic items
Added ANIMAL tag to a small bunch of creature definitions (dfndata/creatures/creatures.dfn)
Fixed an issue with Bowcraft skill where player could not gain enough skill from crafting bows to reach min requirement for crossbows, and similiarly could not reach min requirement for heavy crossbows from crossbows
Updated default value of MURDERDECAYTIMER INI setting from 60 seconds to 28800 seconds (8 hours), to match the amount of time it would take for one (short term) murder count to decay on LBR-era OSI shards.
2022-08-25 02:13:00 +08:00
Xoduz
0941aff27f Misc fixes
Wrapped some debug messages related to sockets in debug defines
Adjusted fix for mining to be more flexible with name of tiles
Fixed an issue that caused double saves on shutdown, with second shutdown wiping out some objects because they'd already been unloaded from system after first save
2022-07-05 01:10:41 +08:00
Xoduz
74fc5cd916 Some minor fixes to address some regressions
Fixed an issue with mining that allowed mining on non-valid static tiles
Fixed an issue that prevented boats from moving
Fixed an issue that prevented boats from being blocked by blocking tiles
Fixed an issue where salute and bow emotes got reversed
2022-07-04 14:27:25 +08:00
Charles Kerr
6c61c50ad9 address a segfault deletion whileiterator 2022-06-22 13:58:42 -04:00
Charles Kerr
39b812b17b fixed logic error preventing checkNPC being called 2022-06-22 13:19:29 -04:00
Charles Kerr
e18258dc12 hopefully, it will start 2022-06-22 09:13:10 -04:00
Charles Kerr
f9401af2a5 linux debugging 2022-06-22 08:55:12 -04:00
Charles Kerr
b2e5ac9e9f fixed a few more memory corruptions 2022-06-22 07:35:21 -04:00
Charles Kerr
9010b3de26 setting up for linux debug 2022-06-22 06:57:13 -04:00
Charles Kerr
5905f69f10 additional check for uox3.ini 2022-06-21 23:00:23 -04:00
Charles Kerr
fcafba9996 Update uox3.cpp 2022-06-21 07:31:19 -04:00
Charles Kerr
eb7eb9ab54 ip4addr_t/ip4list_t replaces IP4Address 2022-06-17 20:58:32 -04:00
Charles Kerr
11d271bcb6 Copy of collection, to allow JS to delete during iterator looping 2022-06-16 16:58:45 -04:00
Charles Kerr
2f6135b264 Changes values to const reference
Updated some char* to strings
fixed a spawn location check error
2022-06-16 14:45:47 -04:00
Charles Kerr
75969075dd changed some values to const references 2022-06-16 08:17:28 -04:00
Charles Kerr
d5ab7269dd map and statics moved over to new updata handling 2022-06-15 11:24:57 -04:00
Charles Kerr
4335859002 moved dynamic base class initialize to static 2022-06-14 11:36:04 -04:00
Charles Kerr
030993832d modernization, separation of CServerData initialization. 2022-06-11 19:15:00 -04:00
Charles Kerr
a8fe31b8b2 Update uox3.cpp
missing ;
2022-06-11 14:59:16 -04:00
Charles Kerr
228b034d60 Update uox3.cpp 2022-06-11 14:48:07 -04:00
Charles Kerr
3f2e169d39 startup modernization 2022-06-11 07:55:06 -04:00
Charles Kerr
c092195cec cleanup and world main made non dynamic 2022-06-10 19:22:30 -04:00
Charles Kerr
5aa5d3fda8 rewrite of dictionary 2022-06-10 15:10:12 -04:00
Charles Kerr
877df9311e addressed unload issue , deleting item in a n iterator loop 2022-06-10 12:07:08 -04:00
Charles Kerr
d22d554f02 iterator 2022-06-10 10:49:59 -04:00
Charles Kerr
92df72f6c6 iterator modernization 2022-06-10 09:53:13 -04:00
Charles Kerr
72acf87a47 iterator modifications 2022-06-10 08:12:58 -04:00
Charles Kerr
0c37895d83 addressed shutdown crashing if incomplete initialization. No longer saves the world file on shutdown unless initialize completes 2022-06-10 05:59:27 -04:00
Charles Kerr
bb43f598fb script tags 2022-06-08 21:44:58 -04:00
Charles Kerr
b8cf9dbe7b UOX3 restructring 2022-06-08 21:32:35 -04:00
Charles Kerr
b10fa71ec5 GenericList c++ usage update for iterators 2022-06-08 18:24:33 -04:00
Charles Kerr
f3e6c8c69c Update uox3.cpp 2022-06-08 12:17:28 -04:00
Charles Kerr
9d1a21c54a General cleanup 2022-06-08 10:38:16 -04:00
Charles Kerr
3c3ad4283c cleanup, fixed an issue with an earlier pull, misplaced bracket 2022-06-08 07:25:47 -04:00
Charles Kerr
d03f72f1b3
Develop (#91)
* updated STARTLOCATIONDATA to use std::string, removed typedef

* removed __STARTLOCATIONDATA_ from typedef

* cleanup

* Update Prerequisites.h

* cleanup, no functional code change

* Update cdice.h

* Pull2 (#89) (#1)

* updated STARTLOCATIONDATA to use std::string, removed typedef

* removed __STARTLOCATIONDATA_ from typedef

* cleanup

* Update Prerequisites.h

* cleanup, no functional code change

* Update cdice.h

* Modernized iterator usage for Network connection iteration.  Should result in a speed increase (measurable or not)
2022-06-07 13:50:49 -04:00
Charles Kerr
96e92ea581
Pull2 (#89)
* updated STARTLOCATIONDATA to use std::string, removed typedef

* removed __STARTLOCATIONDATA_ from typedef

* cleanup

* Update Prerequisites.h

* cleanup, no functional code change

* Update cdice.h
2022-06-07 10:49:13 -04:00
Charles Kerr
ee7105c109 SOCKLIST modernization 2022-06-06 14:24:41 -04:00
Charles Kerr
69263037bd Modernization of QUEUEMAP 2022-06-06 12:55:16 -04:00
Charles Kerr
afb7f38d2a Modernized spawn map 2022-06-06 12:17:38 -04:00
Charles Kerr
8761f4059f TOWNREGIONMAP modernization 2022-06-06 12:02:26 -04:00
Charles Kerr
5e28bb177e Modernized looping on REGIONLIST (and removed typedef, not needed) 2022-06-06 07:57:48 -04:00
Charles Kerr
d90e16af86 changed defined FALSE/TRUE to intrinsic false/true 2022-06-06 03:55:13 -04:00
Charles Kerr
d540835eb4 2022 project filters, and name change for strutil 2022-03-04 07:35:46 -05:00
Xoduz
f461e62825 0.99.5b-2 - Fix for ping in shardlist, and support for always awake NPCs
Added a new feature that allows shard admins/scripters to mark specific NPCs as "permanently awake", in order to keep UOX3 running scripts, timers and updates for these NPCs even if they are in regions that are "asleep" because of no nearby online players.
	A new UOX.INI setting has been added which can turn this feature on/off:
		ALLOWAWAKENPCS=0/1 	// If disabled, NPCs marked as awake are treated as regular NPCs
	New NPC DFN tag added to mark an NPC as awake or not:
		AWAKE=0/1 		// 0 = disabled (default), 1 = enabled
	New Character JS Property added to toggle an NPC's awake state via JS:
		.isAwake 		// 0 = disabled (default), 1 = enabled
	'get and 'set commands updated with the new awake property:
		'get awake
		'set awake 0/1
IP of shard in shard list is now sent to client in little endian instead of big endian, which should correct the ping displayed in shard list, which previously showed a timeout (punt)
2022-03-02 19:50:52 +08:00
Xoduz
a5d4b008b1 Minor update
Fixed a server crash caused by a couple of items in "stone walls 4" section of add-menu that were missing their ID in ItemMenu.bulk.dfn (thanks, Humility)
Fixed an issue where items added to house (multi) definition would not be attached to the house if their coordinates were not within the boundaries of the house. This prevented the usage of house foundation multis with custom stairs, for instance.
2022-02-26 17:02:32 +08:00
Charles Kerr
1fe8f648b0 Error checking for socket sends 2022-02-25 21:16:32 -05:00
Charles Kerr
1985558126 Just a few more tweaks to wording 2022-02-25 11:06:05 -05:00
Charles Kerr
1aaa05f3ea rearrangement 2022-02-25 10:57:06 -05:00
Charles Kerr
29339accd4 Timer tweaks 2022-02-25 09:44:11 -05:00