UO:98

From UODemo Wiki
Revision as of 22:11, 11 December 2011 by Derrick (talk | contribs) (Added image)

Jump to: navigation, search

UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.

Starting UO:98
In Game
God Client support

Please see also the UO:98 forums at JoinUO

Installer

Download from JoinUO: FTP | HTTP (9.20 MB)

Installation prerequisites

In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.

  • Microsoft Windows XP, Vista or 7
  • Microsoft .Net 4.0 Client Profile.
  • Ultima Online Client version 1.25.35 through 5.x
    • (6.x packet protocols not yet implemented)

Installing UO:98

You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the UO:98 forums for help

Using UO:98

As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.

UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See UORice for more info on decrypting the client.

  • Server: <YOUR LAN ADDRESS> (not localhost or 127.0.0.1)
  • Port: 2593

The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ipconfig at the command prompt.

The default port for UO:98 is 2593'. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.

The server as distributed has one administrator account:

  • Username: Administrator
  • Password: password

Additional accounts can be auto created by simply attempting login on a non-existent account.

Administrating UO:98

More administration tools are planned.

Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.

Accounts

User accounts are stored in UO98/rundir/UO98/accounts.xml

To modify a user account level, you can modify the accessflags element of their account. You should do this when the server is shut down, as this file is overwritten on saves.

Standard values for accessflags are:

  • Player - No special Access
  • Editor - God Client Features (i.e., GM)
  • Admin - Editor, plus access to ]save and ]shutdown commands

In Game Commands

GM"cheat" Commands

These commands are implemented in the gmcheat.uosl script.

  • [spawn <templateid>
    • Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
  • [spawnitem <itemid>
    • Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
  • [tele <X> <Y> [Z]
    • Teleports your to the specified map location. Z is optional.
  • [setskill <#> <val>
    • Sets your skill of # to the specified value (integer 0-100)
  • [setskill all <val>
    • Sets all your skills to the specified value (integer 0-100)
  • [listskills
    • Lists all the numeric skill id's (for use in the setskill command)
  • [addscript <name>
    • Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
  • [where
    • Prints our your location.
  • [setname <new name>
    • Sets the name (RealName) of the target
  • [getserial
  • [gethue
  • [getheight
  • [getelevation

SCommands

These commands are built into UODemoDLL and are not scripted (note the ])

  • ]save
  • Saves the world to dynamic0.mul
  • ]coun [me|<serial> [type]]
    • Makes the target (or yourself if "me") a counselor.
  • ]ucoun [me|<serial>]
    • Unmakes the target a counselor
  • ]shutdown
    • Shuts down the server, without save.
  • ]test
    • This simply verifies that the "SCommands" are working.

Handy Templates

  • 3501: loaded spellbook
  • 3506: reagent bag
  • 1504: 100 gold
  • 1900-1920 Houses
  • 1800-1805 Boats
  • for more: /rundir/bank/templatestable.dat

Handy Scripts

These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...

  • gmcheat :GM Commands
  • commandDelete: items
  • commandZap: Mobiles
  • commandInvulnerable
  • commandSlay
  • commandResurrect
  • commandFreeze

How does it work

UO:98 is an attempt to bring the UO Demo mainstream by patching the Demo into a fully functional and administrable server.

The majority of the necessary basework via UoDemo+ has been available for some time. The UoDemoDLL project took UoDemo+ well beyond the chains imposed by having to make direct hacks to the UODemo.EXE, patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.

A new project called Sidekick was developed in Visual-C++ to be loaded by UoDemo using the UODEMODLL env variable. This Dll loads both Batlin's UoDemoDLL (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C UoDemoDLL, and Sharpkick a Managed C#.Net DLL

Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by UoDemo+.


Credits

UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.