Auction System, version 2.1 by Xanthos

Overview

The auction system is intended to give players a way of safely trading items of high value. It provides an interface for creating auctions and bidding on items. The system automatically moves the item auctioned and the money exchanged through a convenient system of checks that makes sure that both the seller and the buyer are protected against any risks. The system comes with a convenient search engine for auctioned items based on text and type searches, as well as sorting based on a number of conditions.

The system also includes an integrated savings account for each player, that on funds in savings accounts as an incentive for players to move gold and tokens into savings thereby reduing item count. Funds in savings are used to pay for auction bids when funds in a player's bank account are exhausted, steamlining the buying process.

Modified copies of BankCheck.cs and Banker.cs provide integration of the savings account as well as the use of commas in creation of bank checks and withdrawl of funds to make working with large sums of funds quicker much less error prone.

This system requires an installation of AoS on the server machine to access localization tables, but is compatible with both AoS and not-AoS shards.

Installation

Installation is pretty straightforward: Unzip the the Auction and Utilities zip files into a Xanthos folder in your customs scripts folder and copy Ultima.dll into your RunUO folder. Open RunUO\Data\Assemblies.cfg and add the line:

Ultima.dll

Note on modified distro files:

If you plan to use the Savings account, remove the distribution files RunUO\Scripts\Mobiles\Townfolk\Banker.cs and RunUO\Scripts\Items\Misc\BankCheck.cs. Otherwise if you do not want the savings account feature or wish to use only unmodified disribution files, remove the Xanthos\Auction\Modified folder.

Once the system is installed and the server is running, use the [InitAuction command to create the auction control stone. This is a special item that can only be constructed using the command. This item is invisible, so it can be placed pretty much anywhere. Also it cannot be deleted by using the [Remove command (in such a case it will simply re-create itself). The stone holds all the information about the system, including all auctions, bids and items. It can only be deleted using the [AuctionAdmin command which will terminate unsuccesfully all auctions.

In order for players to access the system, spawn Auctioner mobiles in your world. They can access the system by using the 'Buy' context menu on the Auctioner or by saying the 'auction' keyword.

Important : This script requires access to a fully patched cliloc.enu file. To ensure this, install AoS on the server machine and patch it up. There is still a chance the script will not find the file because of wrong registry information. If you have trouble with the system (namely if nothing happens when you target an item that you wish to auction), specify the path to the cliloc.enu file manually.

Configuration

A number of parameters are available for configuration in the file AuctionConfig.xml. The settings in the AuctionConfig.xml will only take effect if the file is placed in your RunUO\Data directory.:

Additional configuration is done using the Props of the control stone:

Commands Creating an auction

In order to create an auction, a player must visit an Auctioner NPC. After selecting the object they wish to auction, the item will be removed from their backpack. The user will then have to specify the parameters of the auction:

Once the auction is confirmed, it's put into the system and available for everyone to bid on. Also once created, the auction can no longer be canceled by the owner.

Bidding on an auction

If a player can bid on an auction, they will see the option in the lower left area of the auction gump. They must have the required money for the bid in their bank, which will be withdrawn as soon as the bid is placed. When a higher bid is placed, the previous highest bidder will receive the money back in the form of a auction gold check (which will display a gump that will allow the player to quickly return to the auction).

Restrictions on bidding:

Players can outbid themselves (for example to meet the reserve).

Item checks and gold checks

Items and gold are moved through the system using checks. A check, when double clicked, will show the player a gump which will specify the name of the auction (if the auction still exists in the system, a button will allow the player to view the auction page), and the reason of the check. A button will allow the player to claim the gold or item by placing it in their bank.

Ambiguous situations and auction messages

In two situations, when an auction ends, the system will not be able to take a decision about the outcome:

When an auction ends with an ambiguous situation a message will be dispatched to both the owner and the buyer (provided they're online). The system also handles little notice from the system requesting their input.

This situation can last at most at few days, as specified in the auction configuration.

Administering the system

The system takes little administration. The staff can only review bids, but cannot interfere in an auction itself (by either modifying its parameters or deleting it).

The Staff Cloak

Included with the system is a cloak that staff can put on to temporarily set their access level to "Player". This allows staff to use the auction system in the same way as a player would. With the Staff Cloak on, staff can auction items and bid on auctions without having to log in an alternate character.

Setting up the Savings Accounts

To add the savings accounts to existing user's bank boxes, issue the following gm command [InstallSavings. Optionally, a savings account gold box can placed somewhere in the world accessible to players, made non-movable and used by players to install a savings account into the player's bank box when double clicked by the player.

To have savings accounts added to new players bank boxes automatically, open CharacterCreation.cs and find:

    if ( young && newChar.BankBox != null )
    {
        NewPlayerTicket ticket = new NewPlayerTicket();
        ticket.Owner = newChar;
        newChar.BankBox.DropItem( ticket );
    }

Add the following on a new line after that block:

    if ( newChar.BankBox = null )
        newChar.BankBox.DropItem( new Arya.Savings.SavingsAccount());

Another command is supplied to allow staff to change the balance of accounts en masse: [ScaleSavings [-g|-t] <percent>. Where -g targets gold balances, -t targets savings and both are scaled if neither is specified. Percent is a decimal value (e.g. 10 for 10%).

Requirements

Requires the Xanthos Utilities package.

Acknowledgements

The bulk of the system is based on the original Auction System by Arya. All credit for the wonderful and creative work on the original Auction System goes to Arya. My goal in maintenance of the system is to move the functionality forward to provide an integrated solution for commerce on RunUO shards. Credit must also be given to Phoo, who provided the inspiration for the first of such enhancements. A re-written Savings Account system has been implemented here with permission from Phoo.

Caveats

You may use or modify this system in any way you desire, however I ask that you leave the original headers in the source files if you re-write or redistribute the sources in any way.

- Xanthos

Changes

Version 2.1

Version 2.0

Version 1.15

Version 1.14

Version 1.13

Version 1.12

Version 1.11

Version 1.10

Version 1.9

Version 1.8

Version 1.7

Version 1.6