UOX3

An Ultima Online Server emulator.
Download

UOX3 Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • UOX3 Team
  • Publisher web site:
  • http://www.uox3.org

UOX3 Tags


UOX3 Description

An Ultima Online Server emulator. UOX3 project is an Ultima Online Server emulator.UOX3 stands for Ultima Offline eXperiment 3, and can basically be described as an Ultima Online server-emulator. It allows anyone and everyone to run their own private Ultima Online shard (either offline or online) which they may then use the official UO Client (or a custom one) to connect to the shard.While one of UOX3's goals is to emulate the functionality of the official Ultima Online servers and allow anyone to run a server of their own, another is to allow it's users to tweak all aspects of said functionalities, and even to create new functionality altogether - either through UOX3's complex scripting engine (based on the SpiderMonkey-implementation of JavaScript) or by editing the source-code for UOX3 directly.UOX3 is free for everyone. It's also in most cases free to play on any UO servers set up using UOX3 - that is the moral code MOST users of UOX3 follow. Not to mention that charging people money for playing on your shard is illegal and will almost certainly bring Electronic Art's legal-team down on you. What's New in This Release: Source Changes/Fixes: · Fixed an issue causing JS gumps to interfere with eachother. · Fixed an issue causing serial numbers in the istats gump to display improperly. · 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. · 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). · 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. · Made onResurrect trigger before a resurrection instead of after, added option to override hard code by returning false · 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. · 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. 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) · Changed item limit in create dfn down to 4,999 to fix a bug in gump handling. · Fixed several issues with the UseResource JS Method · UseResource JS Method can now be used with both items (containers) and characters · 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 · Added CPPartyTell packet · Promoted Party::SendPacket to public method · Added speech (individual and group) to party methods · 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! · 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. · Change cMagic::SelectSpell() to first check for reagents and then for skill. · Added more details to the weapon tooltips. · Fixed %tstamp output in the HTML templates. · 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. · 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. · 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 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. · 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. · Update the CPWalkOK Packet (0x22), the second byte contains the notoriety value (flag color) and make use of it. · 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. · 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. · 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. · Committed some linux build error fixes on behalf of Cavalier · 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 · 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. · 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. · 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. · Fixed the position of the coprse item when the char died falling forward. · 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. · Fixed a bug where we dropped the hair and beard items, from corpses, on the ground. · 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. · Remove some not needed code and slow fleeing NPCs a bit down, so that other chars · can still catch up with them. · Make sure we check for scripts envoked by type or id before we use the global script. · 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 a couple crashes caused by targeting non-PC's in the PartySystem. · 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. · 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. · Fix reading of the new SPEED DFN tags for NPCs. · Added the JavaScript CSocket methods FirstTriggerWord(), NextTriggerWord(), FinishedTriggerWords() to allow handling trigger words sent from the client during speech. · Added support for updated UOKR packets. · 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. · Use an enum for racial relations, should help with reading the code. · Fix a bug where racial allys would attack each other. · 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. · 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. · 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. · Split onUse into onUseChecked and onUseUnChecked. · Made magical shortbows and elven composite bows fire arrows instead of crossbolts · 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. · Fixed several issues with tracking. · Fixed a crash caused by passing an invalid object to the JS Method TurnToward · 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 · 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 · 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. · 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 · 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 · 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) · TWEAK now works for any admin character, no matter their commandlevel (gumps.cpp) · The onPickup JS-event should now work · Entry for ScriptID added to 'CSTATS, 'ISTATS and 'TWEAK menu · 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 · #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 · Bug fix on GetColumn JS implementation · Error checking on statement indexes in GetColumn() in ODBCManager · Fixed a bug that prevented players from picking up/moving items in their own backpacks · Implemented 0xBD CPClientVersion packet to request the version from the client. · Possible fix for clients > 6.0.5.0. · Fixed the handling for the UOX ini tags OVERLOADPACKETS and DARKLEVEL


UOX3 Related Software