RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Auction System

Arya

Wanderer
Auction System

This is a re-edition of my auction system, updated to be 1.0 compliant. As usual, I will not be supporting previous versions of RunUO.

Summary:

The name says it all, this creates a full auction system on your shard. Players can create auctions and bid on items.

As of version 1.4 this script supports both AOS and non-AOS shards. On non-AOS shards it will provide automatic descriptions for a number of items.

Description:
A detailed description of the system and of the mechanics is provided in the Readme.html file so I won't write it all again here. I'll just provide a short list of the main features:


  • The system will automatically extract the properties for the auctioned items.
  • Auction multiple items by placing them inside a container (the container will be ignored in the description)
  • Search engine for auctions: search for text and for types (Example: search for power scrolls which include the text 'alchemy' in their name)
  • Sorting autions according to different parameters (most bids, time left...)
  • Solid payment managment: when a bid is placed the money is taken from the bidder's bank right away. Once a higher bid is made, the previous bidder is returned the money.
  • Notifications: when you're outbid you'll receive a small notice with a quick link to the auction in case you wish to place a further bid.
  • Reserve: when creating an auction you specify a reserve. This is a safety value: if the highest bid is over the reserve, the item is sold. If it's below, the owner is given the option whether to sell or not through the notifications system (this has a timeout defined on the control stone)
  • If an auctioned item is deleted due to server reasons (serialization errors, item wipes...) the buyer will be given the chance to decide whether to purchase or not once the auction is over.
Installation:
Requirements: A valid Ultima Online AoS installation on the server machine (for both AOS and non-AOS shards - this is necessary to access localization files).

Installation:

  • Unzip the Auction folder into your customs scripts folder
  • Copy Ultima.dll into your ..\RunUO\ folder.
  • Open \RunUO\Data\Assemblies.cfg and add the line:

    Ultima.dll

    if it's not already there.
  • Restart the server and use the [InitAuction command to place the auction control stone
  • Spawn Auctioner mobiles to allow players to access the system
To remove the system from your shard use [AuctionAdmin to access the amin panel and select "Stop the system permanently". Existing auctions will terminate by returning the item to the original owner and the current bid to the highest bidder.

Configuration parameters can be found on the control stone properties and at the beginning of the AuctionSystem.cs file.

Language pack installations
Download the appropriate language pack and unzip StringTable.cs into the folder where you extracted the auction system. Make sure you overwrite the old StringTable.cs or your server will not compile.

Updates

Version 1.1: Fixed crash occurring when stopping the system. Added also some protection code to better handle the system stop.
Version 1.2:

  • Fixed gumps for the 3D client. 3D clients will not display the item hue on the shield, there's nothing I can do about that. I have added a short notice at the bottom of the page stating it.
  • Added a configuration parameter to limit the reserve values. By default the reserve can be at most 3 times higher than the starting bid. You can change this parameter in AuctionSystem.cs (MaxReserveMultiplier variable).
Version 1.3:

  • Fixed a potential crash related to the messaging system
  • Staff will not have to comply to duration and reserve restrictions when creating an auction.
Version 1.4: This version adds support for non-AOS shards (many thanks to Perfectwing for providing me part of the item description code). On non-AOS shards the system requires the items on sale to be identified whenever possible (to prevent scams and annoyances in general). The search list will not display AOS specific items (like artifacts).

Also removed the limitation on number of concurrent auctions for staff.

Version 1.5: Fixed bug that allowed a player to open multiple delivery gumps and therefore get the gold multiple times.

Added also an option to speicfy a pure black hue subsitute as gumps display hue #1 incorrectly.

Version 1.6: Some major changes on this one.
- Fixed most of the bugs and issues reported since 1.5
- The system will now be disabled if an error occurs on startup rather than crashing the server.
- Added support for auctioning creatures (enabled by default, can be changed in the auction configuration)
- Added more support for staff. Admins (by default, can be changed in config) can now remove an auction on the fly or view the auction's props from the auction view gump.
- Added an admin gump ( [AuctionAdmin command ) that can be used to force a check (in case an auction for some reason didn't expire when expected), suspend the system until the next reboot, or delete the system (replaces the [DeleteAuction command )
- Auction checks now are blessed
- Depending on the minimum bid, there is now a minimum increment for each auction (you can view this in the auction props)
- Since it seems many are using localized versions, I converted the script to use a string table so that in the future you will be able to fully replace the logic scripts and update only the string table. All strings are now in StringTable.cs
June 14: Spanish language pack (1.6) added. Many thanks to Sir Himmler for the translation.
Version 1.7
- Added option the specify the location of the cliloc.enu file
- Buy Now function implemented
- Gold checks will now use the Banker.Desposit() method to deliver money (allowing any amount of money to be safely transferred.
- Fixed an issue with the auction props and the highest bid. Now this will display two new fields (HighestBidder and HighestBidValue).
- Fixed overflow when setting a duration that's too long
- Added a staff control panel for each auction. Access to this panel is configured through the AuctionAdminAccessLevel parameter.
- Added logging (enabled by default, disable in AuctionSystem.cs Configuration region). Will log all activity to RunUO\Logs\Auction.
- When the cliloc.enu can't be found, the system will output a message on the console.
- Spanish language pack provided, thanks to Sir Himmler as usual :)
June 17, Version 1.7.1: Fixed a potential crash. Sir Himmler also did some corrections to the Spanish language pack.
June 18, Version 1.7.2: Added compatibility for ostards and other items whose hue is shifted by 0x8000 for some reason. Also added a general check for out of bound hues to avoid client crashes as gumps seem to be very sensible about hues. No localization changes in this version.
Version 1.7.3: Player will no longer be able to bid on pets they cannot control (they will see no Bid button at all on the auction view screen).
Version 1.7.4: Fixed a crash in the GiveItemTo function.
Version 1.7.5:
- Threaded operations lock the World.Items and World.Mobiles objects. This should address some cases where the system would cause a crash on world save.
- All gumps now register available buttons. This should fix the malicious crash that could be caused using a razor macro on the system gumps.
- Pets should no longer go wild when stored in the system (hopefully)
- Fixed crash associated with text search (hopefully)
Version 1.7.6:
- Fixed a gump-related crash
Version 1.7.7:
- Fixed max number of auctions parameter to behave correctly.
- When a player retrieves an item that's a container, the item count and weight should be correctly updated.
- Reintroduced the readme file in the distro.
Version 1.7.8:
- Fixed issue with crash on world save by moving to a RunUO timer.
- Fixed an issue with the messaging gump that wouldn't correctly report the response of the item owner when the reserve was not met.
Version 1.7.9:
- Fixed a potential bug that allowed to open more than one gold check.
Version 1.8:
- Fixed a crash occurring when the system delivered a check to a player whose backpack has been deleted.
- Fixed a crash with the control stone properties list when the system wasn't running.
- 1.0 Compatibility fix (no more EmptyArrayList warning on the console when creating auctions/moving items into the system).
- Added option to extend the duration of the auction if a bid is placed within 5 minutes from the end. (default: no late bid extension)
- Added an option to charge for the auction service (either a fixed value, or a percentage cost. default: no charge)
- For those running localized versions: 3 new entries in the string table (228-230).
Verion 1.8.1:
- Fixed a bug that would cause *some* pets to disappear during world load.

Note on language packs: The language packs have been kindly provided by users of the system. I am not personally responsible for their content or updates. Localization updates are released with each minor version (in other words, there are no localization changed in versions 1.7.1, 1.7.2 and so on, while there will be localization updates between 1.7.x and 1.8.x).
 

Attachments

  • Auction.System.Spanish.Language.Pack.1.7.1.zip
    5.8 KB · Views: 269
  • Auction.System.German.Language.Pack.1.7.5.zip
    6.4 KB · Views: 257
  • Auction.1.8.1.zip
    88.7 KB · Views: 2,071

aleon

Wanderer
well there something i have to complain ... WHY?? didnt i did that first :( well never luck with me thnks Arya.This solved many problems...
 

Crowley62

Sorceror
Great system.Only one problem players can rename dragons to dragonhatchling and pull the scam.Also pets that are lost forever when shrunk make a great scam item .Wish this could be fixed
 

Arya

Wanderer
Crowley62 said:
Great system.Only one problem players can rename dragons to dragonhatchling and pull the scam.Also pets that are lost forever when shrunk make a great scam item .Wish this could be fixed

Since the system supports auctioning of pets, I suggest you place the shrunk pet item in the list of items that cannot be auctioned.

In the future I'll try to add an option to prevent players from specifying the name of the auctioned item, and let them only fill the description in.
 

Arya

Wanderer
aleon said:
well there something i have to complain ... WHY?? didnt i did that first :( well never luck with me thnks Arya.This solved many problems...

I'm sorry but I'm not sure I understand hehe
 

X-SirSly-X

Sorceror
One Bug i found was it doesn't allow me to delete the auction stone when i use [DeleteAuction
it says not a valid command.

-Sly
 

Arya

Wanderer
X-SirSly-X said:
One Bug i found was it doesn't allow me to delete the auction stone when i use [DeleteAuction
it says not a valid command.

-Sly

That's not a bug, it's outdated documentation. You can stop the system by using the [AuctionAdmin command to access the main control panel.
 

Jarrod

Sorceror
Im experiencing an odd phenomena. while i upgrading, it started saying that it wanted to delete AuctionControl. I opened the earlier version, and the new version (both in separate directories), and they are pretty much the same. (this is during an upgrade from RC0 to RC1)

Its not bothering me, as i can remove the auction items before the upgrade goes live. just wanted to see if anyone else had this problem.
 

Arya

Wanderer
Looks like the system can't access the cliloc.enu file, that's most likely the reason why you get the serialization error. Check the configuration region in AuctionSystem.cs and make sure you specify a valid path to cliloc.enu.
 

crabby654

Wanderer
Im getting these weird errors and im not to sure what to do:

Scripts: Compiling C# scripts...failed (2 errors, 0 warnings)
- Error: Scripts\Auction\AuctionItem.cs: CS0246: (line 5, column 7) The type or
namespace name 'Ultima' could not be found (are you missing a using directive o
r an assembly reference?)
- Error: Scripts\Auction\AuctionItem.cs: CS0246: (line 209, column 18) The type
or namespace name 'StringList' could not be found (are you missing a using dire
ctive or an assembly reference?)
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.
 

Seven

Sorceror
Here do this:

Installation:

Unzip the Auction folder into your customs scripts folder
Copy Ultima.dll into your ..\RunUO\ folder.
Open \RunUO\Data\Assemblies.cfg and add the line:

Ultima.dll

if it's not already there.
Restart the server and use the [InitAuction command to place the auction control stone
Spawn Auctioner mobiles to allow players to access the system

Then in the auction folder (in the download) it came with an Ultima.dll copy that Ultima.dll to the root directory of RunUO :)
 

crabby654

Wanderer
Ok i did all that and the system works beutifully! but i did notice one thing when i was cancelling an auction or doing something of that sort, i noticed on the consol this message popped up.

The auction system cannot access the cliloc.enu file. Please review the system i
nstructions for proer installation

the weird thing is nothing went wrong, i still got my item back and everything.
 

Arya

Wanderer
crabby654 said:
Ok i did all that and the system works beutifully! but i did notice one thing when i was cancelling an auction or doing something of that sort, i noticed on the consol this message popped up.



the weird thing is nothing went wrong, i still got my item back and everything.

When you auction a new item, are its properties extracted correctly? And is it an AOS shard?
 

Arya

Wanderer
Another small update: fixed a bug that could cause some auctioned pets to be removed from the system (they would still be in the world and trackable through the logs). Update only if you have pet auctions enabled.
 

Thraxus

Sorceror
The latest posted version of the auction system is missing the Ultima.dll file.

Just thought I'd let you know. Great system as always Arya. Your submissions are always top-notch work. :)
 

sidphoenix

Wanderer
Yea I noticed that too. I was wondering if I had the dll already, but just didnt know where it was, but after seeing Thraxus' post it became more clear. Hope to get to download this script soon, sounds kool.
 
Top