All-In-One (1/17/2009) - Contains all files needed to run UOX3.
Seperate packages
Exe Only (1/17/2009) - UOX3.EXE ver 0.98-4.0
Basic UOX3 files (1/17/2009) - Only the basic UOX3 scriptfiles, docs, etc. v0.98-4.0
DFNs Only (1/17/2009) - Only the DFN-files, v0.98-4.0
JScripts Only (1/17/2009) - Only the Javascript-files, v0.98-4.0
UOX3 Source (1/17/2009) - The UOX3 source-code, ver 0.98-4.0
NOTE! If you download uox3.exe only, remember to check for updated DFNs/JScripts from above as well, or you might not be able to run the latest version without problems! Also, these files are all available from the CVS at http://www.sf.net/projects/openuo, though the anonymous CVS might be lagging behind the proper one with up to 24 hours.
Changelog for Latest Released UOX3 Version: UOX3 Changelog (1/17/2009)
CVS Changelog for this UOX3 Version:
Code: Select all
[color=orange]1/17/2009 - giwo[/color]
Fixed the handling for the UOX ini tags OVERLOADPACKETS and DARKLEVEL
[color=orange]1/17/2009 - giwo [/color]
Possible fix for clients > 6.0.5.0.
[color=orange]1/16/2009 - giwo (0.98-3.7v) [/color]
Implemented 0xBD CPClientVersion packet to request the version from the client.
[color=orange]12/16/2008 - Xuri [/color]
Fixed a bug that prevented players from picking up/moving items in their own backpacks
[color=orange]Oct 12, 2008 - Maarc [/color]
Bug fix on GetColumn JS implementation
Error checking on statement indexes in GetColumn() in ODBCManager
[color=orange]12 Oct 2008 - Maarc [/color]
Documentation Updates
Updated DOCTYPEs on most docs to XHTML Transitional
Updated FAQ to point suggestions to uox3.org
Updated style sheet for body, text sizing and colouring
Added ODBC Methods and Properties
[color=orange]Oct 12, 2008 - Maarc [/color]
#ifdef'd ODBCManager implementation. You will need to enable through Config.h, and add 2 files to project.
Accounts load and save from a database, falling back to read/write if connection doesn't exist
Both logins are logged into SQL database
ODBCManager exposed to JS Engine - note, columns MUST be fetched in ascending numeric starting from 0
Long strings printed to the console will now wrap in a friendly fashion
Unknown INI file tags will now print out at startup
[color=orange]7/27/2008 - Xuri [/color]
Entry for ScriptID added to 'CSTATS, 'ISTATS and 'TWEAK menu
Fixed an erroneous example in JavaScript Docs
Fixed an update-issue with race-gates
Increased MAX_Z_LEVITATE from 10 to 15 to better deal with moving on uneven terrain (like in T2A)
It should now be possible to walk through secret entrances made up of walk-through-able grass/mountain tiles
[color=orange]7/16/2008 - Xuri [/color]
TWEAK now works for any admin character, no matter their commandlevel (gumps.cpp)
The onPickup JS-event should now work
Updated onPickup JS Event in Javascript Documentation
[color=orange]7/03/2008 - Xuri [/color]
Animal taming no longer checks for the "ANIMAL"-tag in creatures.dfn
Converted WeightPerStr from UI08 to R32, so it can support decimal values
The onFall JS event will now work if characters fall further than 20 Z tiles (CChar.cpp)
Updated onFall JS Event in Javascript Documentation
[color=orange]7/02/2008 - Xuri [/color]
Changed the system message being displayed when fatigued due to being overloaded
Added system message for when character becomes overloaded after picking up item
The math for calculating max carrying capactity for players matches OSI values more closely
Default WeightPerStr changed from 5 to 3.5, to closer match the values used by OSI
Updated dictionary files with two new system messages
Added a check to the 'POLY command to prevent characters from polymorphing into an invalid, client-crashing id (0x20)
[color=orange]6/23/2008 - giwo [/color]
Modified books.dfn to use the standard TAG=DATA format. Each line in a PAGE section is now preceded with LINE=
Modified motdtips.dfn to use the standard TAG=DATA format. Each line in a TIP or MOTD section is now preceded with LINE=
Modified the JSMethod CBase_GetTag to avoid a possible crash.
Removed the following variables from CWorldMain cmem, imem, nextCharSerial, nextItemSerial as this functionality is handled by the ObjectFactory
[color=orange]6/22/2008 - giwo (0.98-3.7t) [/color]
Added error handling to prevent a crash if GetByte/GetWord/GetDWord were passed an invalid offset
Changed the tweakItem and tweakChar handlers to use command level rather than the "IsGM" flag.
Defaulted the starting serial to 0x1 rather than 0x0, as some UO packets don't recognize 0x0 as a valid serial.
[color=orange]6/22/2008 - Xuri [/color]
Fixed hex-id of turnips in foods2.dfn, these turnips should now be stackable
Fixed hex-id of studded sleeves in studded_leather.dfn, previously used hex-id for gloves
Tweaked the region surrounding Buccaneer's Den so it extends around all buildings in the town
Removed entry 104 (rawfish.js) from jse_fileassociations.scp as it was no longer in use
Archerybuttes work again, and should have a "machine-gun"-issue fixed
Scripts that used onUse() now use onUseChecked()
Updated UOX3_changelog.txt in the Docs-folder to include updates up to 0.98.3-7
[color=orange]6/21/2008 - giwo [/color]
Fixed an infinite loop crash caused by a DFN entry calling itself with GET
Added JS Character Propery "poisonStrength" to set the strength of the poison a character will inflict on his foe during combat.
Implemented supermoleet's fix for the black screen after logging in to a different world
[color=orange]6/21/2008 - giwo (0.98-3.7s) [/color]
Modified UString to function without crashing under VS2008
Fixed a bug in CItem::RemoveFromSight() causing items inside containers on the ground not to properly notify nearby players when removed.
Fixed a bug in CPIDropItem() when the compiler does not automatically instantiate booleans to false
[color=orange]6/21/2008 - giwo [/color]
Fixed several issues with tracking.
Fixed a crash caused by passing an invalid object to the JS Method TurnToward
[color=orange]6/20/2008 - giwo (0.98-3.7r) [/color]
Added support for Visual Studio 2008
Fixed an issue causing a player to be poisoned when a JS call to SetPoisoned(0,0) was made.
[color=orange]02/16/2008 - Xuri [/color]
Made magical shortbows and elven composite bows fire arrows instead of crossbolts
[color=orange]10/27/2007 - grimson [/color]
Split onUse into onUseChecked and onUseUnChecked.
[color=orange]10/09/2007 - Xuri [/color]
Fixed some errors in jail.js that could mess up jailing/releasing characters
Added new function (getCombatSkill) to weapontypes.js for returning skill used by equipped weapon as a string
[color=orange]9/08/2007 - grimson [/color]
Properly initialize the wander area when the wandermode of an NPC changes.
Use stamina instead of dexterity when calculating the attack delay to match
up with the old OSI combat calculations.
[color=orange]9/07/2007 - grimson [/color]
Force the wandermode of NPCs spawned by spawnregions to 3 (box), so they can travel
the whole spawnregion.
Properly initialize the wander area when the location of an NPC changes.
Use the old OSI way of calculating hit chances.
[color=orange]8/26/2007 - grimson [/color]
Added new JS property for items: "speed" this can be used to get and set the speed
of weapons.
Added new setting to spawn.dfn: "ONLYOUTSIDE" set this to one so that items and chars
will only spawn outside of buildings in that area.
Modified the spawn code for spawnregions so that NPCs with wandermode 3 (box) and 4 (circle)
keep within the spawnarea boundaries.
Send NPCs, that left their wander area for some reasons, back there.
[color=orange]8/12/2007 - grimson [/color]
Use an enum for racial relations, should help with reading the code.
Fix a bug where racial allys would attack each other.
[color=orange]7/28/2007 - grimson [/color]
Added a new setting to the uox.ini: BASICTOOLTIPSONLY. If this is set to 1 the
tooltips will only contain basic information, like the name and the weight of
an item.
[color=orange]7/23/2007 - giwo (0.98-3.7q) [/color]
Added support for updated UOKR packets.
[color=orange]7/17/2007 - Xuri [/color]
Added new JS script for moonstones, used to create gates between felucca & trammel
Added new JS script for spyglasses, used to see the phases of the moons
Added new DFN item: [moonstone], uses new moonstone JS script
Removed duplicate spyglass entries in item-DFNs, and added script tag for new spyglass JS script
Drinking healing potions will no longer also give the user night-sight
Cure-potions should be working again (stranf)
Drinking a poison-potion will now poison one's character
A timer now stops players from using multiple potions rapidly
[color=orange]6/12/2007 - giwo (0.98-3.7p) [/color]
Added the JavaScript CSocket methods FirstTriggerWord(), NextTriggerWord(), FinishedTriggerWords() to allow handling trigger words sent from the client during speech.
[color=orange]6/10/2007 - grimson [/color]
Fix reading of the new SPEED DFN tags for NPCs.
[color=orange]6/10/2007 - grimson[/color]
Allow faster attacks on fleeing NPCs, so they won't be chased without an end.
Allow following NPCs to run if their target went to far away, so they can catch
up on it.
[color=orange]6/10/2007 - grimson[/color]
Modified cMovement::NpcMovement() and cMovement::HandleNPCWander() so that NPCs
only run while they still have stamina left.
Added two new settings to the uox.ini, NPCRUNNINGSPEED and NPCFLEEINGSPEED, they
work the same way as NPCMOVEMENTSPEED.
Added three new DFN tags for NPCs. WALKINGSPEED, RUNNINGSPEED and FLEEINGSPEED
they also work the same way as the uox.ini settings, and will override those if
present.
[color=orange]6/08/2007 - Xuri[/color]
Fixed multiple JS-scripts that would not work correctly with negative Z values (Used GetSByte instead of GetByte)
Fixed a few "You can't think of a way to use that item"-messages appearing when using certain JS-based items
Removed rawfish.js and the script entries for it, no longer used.
[color=orange]5/26/2007 - giwo (0.98-3.7o)[/color]
Fixed a couple crashes caused by targeting non-PC's in the PartySystem.
[color=orange]5/25/2007 giwo (0.98-3.7n)[/color]
Added JavaScript function "Moon( moonNum, newVal )" which will get and set the server moon values.
Modified JavaScript Item.decaytime and Item.tempTimer to calculate the new value as a future time in seconds (unless a 0 is passed).
Fixed door.js allowing a locked door without an associated key to always be openable.
[color=orange]5/20/2007 - Xuri[/color]
Added teleport locations for Malas and Tokuno to moongate.js, and added configuration values at top of script
[color=orange]5/19/2007 - Xuri[/color]
Items with wipable status set to 0 should no longer be removed when using the 'WIPE command
Added support in doors.js for linked double-doors that will both open at the same time
Added new command - 'LINKDOORS - used to link doubledoors together, and 'UNLINKDOORS to unlink them
Added new script (bankers.js) that replaces hardcoded banker-AI and adds CHECK and DEPOSIT # / <target> commands
Added new script (bankcheck.js) that handles the functionality of bank-checks
Assigned script 3201 to bankers, and removed NPCAI=8
Changed mapdefinitions (maps.dfn) for Trammel to map1.mul, statics1.mul and staidx1.mul
[color=orange]5/18/2007 - grimson[/color]
Make sure we check for scripts envoked by type or id before we use the global script.
[color=orange]4/09/2007 - grimson[/color]
Remove some not needed code and slow fleeing NPCs a bit down, so that other chars
can still catch up with them.
[color=orange]4/09/2007 - grimson (0.98-3.7m)[/color]
Added a new setting to the uox.ini, LOOTINGISCRIME. If you set it to 0 looting
corpses of innocent chars is not taken as a crime.
Fixed and changed parts of the walking code. If NPCs have the RUNS tag set they
will really run when they attack, instead of just showing the running animation.
Tamed chars will now run, if the char they follow is running, this should reduce
the warping effect of them a bit.
[color=orange]4/08/2007 - grimson[/color]
Fixed a bug where we dropped the hair and beard items, from corpses, on the ground.
[color=orange]3/31/2007 - grimson[/color]
Added elven hair styles to the dfns.
[color=orange]3/30/2007 - grimson[/color]
Corpses should now display the hair and beard of the char they where created from.
Modified CItem::SetCont() so that it checks against the item layer instead of fixed
IDs to see if an item is hair or a beard.
[color=orange]3/30/2007 - grimson[/color]
Fixed the position of the coprse item when the char died falling forward.
[color=orange]3/30/2007 - grimson[/color]
Fixed cMagic::CheckBook(), it was calculating wrong numbers for the spells.
Let chars randomly fall forward or backward when they die.
The DISPLAYHITMSG setting from the uox.ini now also controls the damage display.
[color=orange]3/26/2007 - grimson[/color]
Use an enum for the states of the skill locks, makes reading the code a bit easier.
Fixed cSkills::HandleSkillChange(), the re-ordering of the atrophy created doubles
and dropped entrys.
Rewrote cSkills::AdvanceStats() so that the statlocks are actually used.
[color=orange]3/24/2007 - grimson[/color]
Fix the onCreate JS script functions, they used the same event id. So if one didn't
exist the other was also marked as not existing.
Changed CPICreateCharacter::Handle(), if the start location for the new PC isn't send
by the client it now uses the first start location from the uox.ini instead of the fixed
location in britain.
[color=orange]3/3/2007 - giwo (0.98-3.7l)[/color]
Allowed customization of supported client features via uox.ini
CLIENTFEATURES
SERVERFEATURES
Note that these are bit-settings similar to the way STARTPRIV works.
One will need knowledge of how to set individual bits in a value,
or an editor to customize these features.
Removed CLIENTSUPPORT from the uox.ini
[color=orange]2/21/2007 - giwo[/color]
Committed some linux build error fixes on behalf of Cavalier.
[color=orange]2/11/2007 - grimson[/color]
Small rewrite of the weather system. Calculate snow, rain and storm intensitys only every
server hour and use their values for the amount of weather effects on the screen.
[color=orange]2/11/2007 - grimson[/color]
Fix the format of the pingIP field in the CPGameServerList::AddServer() function. Now the
client shows, after a moment, latency and packet loss information for the servers. It still
doesn't work all the time.
[color=orange]2/10/2007 - grimson[/color]
Added a new target type to the speech system, SPTRG_ONLYRECEIVER which sends the message
only to the receiver and doesn't display it on the sender.
Use the new target type in CSocket::objMessage() and CSocket::ShowCharName() to display
the player name and serial only to the char requesting the information.
Update the CPWalkOK Packet (0x22), the second byte contains the notoriety value (flag
color), and make use of it.
[color=orange]2/08/2007 - grimson[/color]
Fix a bug where items, that have a script but no onPickup event, get always bounced.
Allow party members to remove themselfes from the party, even if they aren't the leader.
[color=orange]2/01/2007 - grimson[/color]
Remove remains of the time command from command.dfn.
[color=orange]1/28/2007 - giwo (0.98-3.7k)[/color]
Fixed an issue with TriggerEvent() that can cause a script to stop functioning if the triggered event did not return true
Moved dynamic parts of [worldlight] section from uox.ini to their own output file in the /shared/ directory
Exported telltime function along with the clock item and 'time command handling to JS.
[color=orange]1/25/2007 - giwo (0.98-3.7j)[/color]
Fixed an issue causing it to be "snooping" to open a pack in a trade window.
Added support for the OnPickup() JS Hook, note a return value of false will bounce the item.
[color=orange]1/25/2007 - giwo (0.98-3.7i)[/color]
Fixed a compiler warning with the Party System
Fixed an issue causing weight not to be added when grabbing items from a bank box.
Moved BankBox creation to Player creation, addressing a situation where the first
time a player opened his bank it would close immediately or crash the client.
Added FindRootContainer() to simplify finding the top-most item containing other items.
[color=orange]10/29/2006 - grimson[/color]
Fixed %tstamp output in the HTML templates.
[color=orange]10/14/2006 - grimson[/color]
Added more details to the weapon tooltips.
[color=orange]9/28/2006 - grimson[/color]
Change cMagic::SelectSpell() to first check for reagents and then for skill.
[color=orange]9/27/2006 - grimson[/color]
Fixed the spawning of NPCs in CSpawnRegion::RegionSpawnChar() so that they are put
into the correct world.
Updated UOX3_Official.dsp to contain the files from the party system.
[color=orange]21st September, 2006 - Maarc[/color]
Added commentary to some of the party classes headers
Updated AddMember() and RemoveMember() to return a bool as to it's success
Updated Leader() change code so that the leader is always first on the list
Added isNPC property to the Party class to help us with how our code will go
CChar now has an InParty() method, which is currently unused - will be used for fast lookups of party presence later. This is NOT to be saved, as it disappears on server shutdown.
Exposed the new party classes to the JS Engine
var partyObject = CreateParty( leader ); // Returns NULL if the party failed to be made
Party Class
Methods
bool Remove( memberToRemove );
bool Add( memberToAdd ); // If it's a PC, then it will send an INVITE ONLY It is up to the PC to accept/decline
obj GetMember( index ); // Returns a character object for the member at that index
Properties
leader // Character object that is the leader, can return null - EDITABLE
memberCount // Returns the number of characters in the group - READONLY
isNPC // Returns true if it's an NPC party, false if not - EDITABLE
Character Class
Properties
party // Returns a party object that is the party associated, or null - READONLY (use party management for this!)
partyLootable // Boolean that dictates whether the character is lootable by the party - EDITABLE - Note that if you are not in a party, this does nothing!
[color=orange]20th September, 2006 - Maarc[/color]
Added CPPartyTell packet
Promoted Party::SendPacket to public method
Added speech (individual and group) to party methods
[color=orange]20th September, 2006 - Maarc[/color]
Added CPIAOSCommand packet including logging
Changed CPISubcommands::Receive so that it doesn't log multiple times
Updated party packet details
Added basic party implementation. Adding, removal and kicking works, speech does not
Added sent packets CPPartyMemberList, CPPartyMemberRemove and CPPartyInvitation
Updated dragging contents out of packs so that pet friends should be able to do so
[color=orange]9/10/2006 - Xuri[/color]
Found and fixed a total of 19 missing semicolons in 15 different JavaScripts
Modified sword.js and axe.js so bladed weapons can be used as magic weapons (of TYPE 15)
Minor modifications to several JavaScript files
[color=orange]8/29/2006 - Xuri[/color]
Fixed several issues with the UseResource JS Method (maarc)
UseResource JS Method can now be used with both items (containers) and characters (maarc)
[color=orange]8/12/2006 - giwo (0.98-3.7g [3.8 BETA])[/color]
Changed item limit in create dfn down to 4,999 to fix a bug in gump handling.
[color=orange]8/12/2006 - Xuri[/color]
Modified the order of the arguments in the RESOURCE tag in create-DFNs to fit the following:
RESOURCE=ID AMOUNT COLOUR (AMOUNT and COLOUR are optional)
Added smithing DFNs for coloured ingots (Armor and shields only, no weapons).
Added a commented out MOUNTID for the polar bear in creatures.dfn. Uncomment for ridable polar bears.
Corrected SPACEX/SPACEY (clear space necessary to place the house) values for all houses.
Updated skills.dfn with changes mentioned by giwo about FOREIGN and MINAMOUNT tags.
[color=orange]8/11/2006 - giwo (0.98-3.7f [3.8 BETA])[/color]
Fixed a crash when attempting to place a house item outside a house.
Fixed the location check when placing house items to allow them to be placed inside houses.
Added a check on house items to only allow them to be placed in your house (Or anywhere by GM's).
Bumped up the limit on items in create.dfn from 999 to 32,766.
Removed FOREIGN and MINAMOUNT tags from ore entries in skills.dfn as they were superfluous
Fixed CHANCEFORBIGORE tag handling from regions.dfn to give a % chance out of 100 to get a pile of 5 rather than 1 ore.
[color=orange]7/24/2006 - giwo (0.98-3.7e [3.8 BETA])[/color]
Fixed an issue making it impossible to place items on tables.
Fixed an issue with the uox.ini entry for log resource respawn area.
Simplified many entries in uox.ini, making them easier to read.
[color=orange]7/19/2006 - Xuri[/color]
Made onResurrect trigger before a resurrection instead of after, added option to override hard code by returning false
Updated JavaScript Documentation to 0.44, and added missing commands to command list
Added "ARMOUR" as an alternate spelling used along with the 'SET command
[color=orange]7/18/2006 - giwo (0.98-3.7d [3.8 BETA])[/color]
Fixed a possible issue with TextEntry in JS gumps.
Fixed an issue with the following JS events:
OnSnooped
OnSpellGain
OnSpellLoss
OnCommand
OnPacketReceive
Fixed several MingW32 compiler warnings.
Fixed a Flagging issue with Racial enemies.
Added uox.ini flag to disable/enable the A* Pathfinding routine: ADVANCEDPATHFINDING=0/1
Fixed an issue causing errors when compiling under *nix.
Fixed an issue causing monsters to constantly attempt to pathfind to a target they can't reach.
[color=orange]7/17/2006 - Xuri[/color]
Added new command (rndtile.js) that allows tiling random items of a specific hue at a specific height
Syntax: 'RNDTILE <startID> <endID> <hue> <Z>(optional) <movable true/false>(optional)
[color=orange]7/15/2006 - giwo (0.98-3.7c [3.8 BETA])[/color]
Added a flag to CChar::PushDirection() allowing us to push to the front or back of the pathToFollow list.
Changed CChar::mNPC::pathToFollow to a deque for more robust functionality.
Fixed an issue with the A* Pathfinding routine causing creatures to path in reverse.
Added some debugging information to A* Pathfinding (when running in Debug mode).
[color=orange]7/10/2006 - giwo (0.98-3.7b [3.8 BETA])[/color]
Fixed an issue with CPFightOccurring packet which would cause the client to lockup.
Made use of the CPFightOccurring packet during combat.
Fixed an issue when a monster attacked a player who was not in combat UOX3 would not inform the client of a new target.
[color=orange]7/09/2006 - giwo (0.98-3.7a [3.8 BETA])[/color]
Fixed an issue causing JS gumps to interfere with eachother.
Fixed an issue causing serial numbers in the istats gump to display improperly.