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!

[RunUO 2.0 RC1] Xanthos Auction System

Alari

Wanderer
I'd missed the internalization changes posted earlier in this thread. I added them in to what I have and attached a new .zip to my earlier post.
 

datguy

Sorceror
In testing the stability of this I duped 20 ore in my pack, then made a razor macro to sell them. Server crashed immediately, ore still in pack
Code:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Arya.Auction.NewAuctionGump.OnResponse(NetState sender, RelayInfo info) in e:\OasisSVN\Scripts\Custom\xanthos\Auction System\Gumps\NewAuctionGump.cs:line 171
   at Server.Network.PacketHandlers.DisplayGumpResponse(NetState state, PacketReader pvSrc)
   at Server.Network.MessagePump.HandleReceive(NetState ns)
   at Server.Network.MessagePump.Slice()
   at Server.Core.Main(String[] args)

I wanted to see if there was an issue with having the max auctions per account at like 10000 to see if it would break but it broke as soon as I started the macro.

Manually it seems to be working fine although don't know if there is a max I can [props set the stone to.
 

nadious

Sorceror
Alari,

I've used this system in three configurations:

RunUO RC1
RunUO SVN 187 - client 6.0.1.6
RunUO SVN 295 (currently running) - client 6.0.6.2

The system was horrible with RC1. It worked in the beginning, but then after certain items were sold and such, it would cause crashes. (You can see my posts earlier in this topic.) When a few fixes provided by the community here and an upgrade to SVN 187, it started to work again WITHOUT crashing.

Then, one day... out of the blue, it just stopped for no reason on my SVN 187. It wouldn't crash, it just wouldn't take anything for auction. When you tried to auction something, it would ask you what item, you'd select it, and nothing would happen.

When I upgraded to SVN 295 last week, I tried to do it again and it started to work. After checking your post here, I upgraded my Ultima.dll file to the latest with Razor, marked with a date of 12/02/07. The one I have always been using is marked 10/07/04. I will try some auctions with this to see if there is any changed (as I said, it was working at the time of upgrade) and we'll see what happens from there.

Maybe your post will help fix some issues. I never had any of the file location issues that others were having. I also have not run any custom graphics or files either, just standard install with some modified scripts (mostly plug and play.)

We'll see how it goes. But I wanted to say thanks for trying to keep this script alive. It's a VERY good script!

Just a side note: I have ALWAYS gotten this when my server starts up:

Code:
Xanthos.Utilities.ConfigParser attempting to load Data/AuctionConfig.xml...
Xanthos.Utilities.ConfigParser [COLOR="Red"]failed[/COLOR].

It's never said succeeded or passed. Is this normal?
 

Alari

Wanderer
datguy:

I tested the auction with stacked items, they listed normally. Also tested with an auction making sure I filled in some of the optional settings I'd skipped before, that auction posted normally. I didn't try to set up an automatic auction posting macro with Razor, it's possible that may be the actual problem. When testing, I made more than 5 auctions, and as I was testing with a GM account it didn't stop me once I passed the limit. I don't know what the actual max limit is per player, it's listed as 5 but the system seems able to handle it.

That said, this system is prone to either crashes or complications, I'd recommend using it very carefully.

Line 171 is this

Code:
					foreach( TextRelay t in info.TextEntries )
					{
						tr[ t.EntryID ] = t.Text;
					}

It's pulling the variables from the gump to assign them, the error means that it's trying to do something past the bounds of the array, which seems that Razor is messing with the variables it sends back, maybe adding an extra one or something, or the macro isn't formed correctly, or some optimization between Razor and RunUO leads to too little or too much data being sent back.


nadious:

The day it just stopped (when you tried to add an auction and no gumps came back) it was probably giving the error about the cliloc on the console.

Changes to either RunUO or the client will break certain things, in RunUO and especially in the SDK (ultima.dll) - the auction system may stop working again. I do regular updates to the client data files and RunUO SVN, to try and keep things sync'd, but that doesn't always help. =)

I'm not sure why it's not reading your config file, mine always says 'success' even if it ignores some of the data in the file... ^.^; Not sure what to suggest other than double check the file, verify the location is where it should be (RunUO\Data\AuctionConfig.xml) and make sure it has the same (OS) ownership permissions as RunUO. If you only have one (OS) user account, that should be the case, but who knows if something weird happened.. Worst case you can always copy the contents of your old AuctionConfig.xml into a new file that you make, (rename the old one) and see if RunUO still fails to read it. Also editing in something like notepad++ will highlight all the 'code' and colorize it appropriately, letting you see if something is malformed in your XML file.



Edit:

It, uh, it just started reading properly from my AuctionConfig.xml file. :confused:; Every other time it detected the cliloc as null, now it works. :> Heh.

Here's my AuctionConfig.xml
Code:
<?xml version='1.0' ?>

<Xanthos>
	<AuctionSystem version='2.0'>
		<MessageHue type="int">64</MessageHue>

		<DaysForConfirmation type="int">7</DaysForConfirmation>
		
		<MaxReserveMultiplier type="double">3.0</MaxReserveMultiplier>
		
		<BlackHue type="int">2000</BlackHue>
		<AllowPetsAuction type="bool">true</AllowPetsAuction>
		
		<AuctionAdminAcessLevel type="AccessLevel">Administrator</AuctionAdminAcessLevel>

		<ClilocLocation type="string">E:/Games/Ultima Online/cliloc.enu</ClilocLocation>
		
		<EnableLogging type="bool">true</EnableLogging>
		
		<LateBidExtention type="double">5.0</LateBidExtention>
		
		<CostOfAuction type="double">0.01</CostOfAuction>
		
		<ForbiddenTypes type="array">
			<a type="Type">Server.Items.Gold</a>
			<a type="Type">Server.Items.BankCheck</a>
			<a type="Type">Server.Items.DeathRobe</a>
			<a type="Type">Arya.Auction.AuctionGoldCheck</a>
			<a type="Type">Arya.Auction.AuctionItemCheck</a>
		</ForbiddenTypes>

		<GoldInterestRate type="double">0.01</GoldInterestRate>
		<TokensInterestRate type="double">0.01</TokensInterestRate>
		<EnableTokens type="bool">false</EnableTokens>

	</AuctionSystem>	
</Xanthos>



Another Edit:

I think the main problem is a logic one.. When you first set up the auction system, it won't initialize AuctionItem until you start an auction, however if there are existing auctions when you load the world, it sets up AuctionItem before reading AuctionConfig.XML...

Code:
RunUO - [www.runuo.com] Version 2.0, Build 2949.42379
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...done (cached)
Scripts: Compiling VB.NET scripts...no files found.
Scripts: Verifying...done (2501 items, 587 mobiles)
Regions: Loading...done
World: Loading...AuctionItem.cs: AuctionItem(): DEBUG: Beginning AuctionItem()
AuctionItem.cs: AuctionItem(): DEBUG: AuctionConfig.ClilocLocation is NULL, proc
eeding with auto-detection...
AuctionItem.cs: AuctionItem(): DEBUG: Cliloc detection worked! E:\Games\Ultima O
nline\cliloc.enu
done (175637 items, 12965 mobiles) (5.66 seconds)
Onsite Dueling System: DuelPoints loaded.
RandomEncounters: **WE'RE LIVE, BABY***...
    [picker=sqrt language=en-US skiphidden=False delay=600 intervals=600:600:600
 cleanup=1800 grace=0 debug=False animateDebug=False]
Xanthos.Utilities.ConfigParser attempting to load Data/ShrinkConfig.xml...
Xanthos.Utilities.ConfigParser success!
Xanthos.Utilities.ConfigParser attempting to load Data/AuctionConfig.xml...
Xanthos.Utilities.ConfigParser success!
Searches: Initializing....
Reports: Stats: Loading...done
Reports: Staff: Loading...done
Restricting client version to 6.0.6.2. Action to be taken: Warn
Listening: 127.0.0.1:2593
Listening: 192.168.1.96:2593
Warning: 149 bad spawns detected, logged: 'badspawn.log'
Warning: 229 bad spawns detected, logged: 'badspawn.log'

So that's why cliloclocation is null if there are existing auctions, but works fine if no auctions exist when the world loads.


To all

If I missed any updates in my xanthos.zip please let me know, I can include them and update the file so everyone can have a (hopefully) working auction system. Thank you.
 
everything worked except one thing

Code:
World: Loading...An error was encountered while loading a saved object
 - Type: Arya.Auction.Auctioner
 - Serial: 0x00000002
Delete the object? (y/n)
Delete all objects of that type? (y/n)
After pressing return an exception will be thrown and the server will terminate

Error:
System.Exception: Load failed (items=False, mobiles=True, guilds=False, type=Ary
a.Auction.Auctioner, serial=0x00000002) ---> System.Exception: ***** Bad seriali
ze on Arya.Auction.Auctioner *****
   at Server.World.Load()
   --- End of inner exception stack trace ---
   at Server.World.Load()
   at Server.ScriptCompiler.Compile(Boolean debug, Boolean cache)
   at Server.Core.Main(String[] args)
This exception is fatal, press return to exit

i didnt edit anything in the vender at all either. so does that mean i would have to readd the vender everytime i reboot?
 

datguy

Sorceror
I'm running svn 187 & it works, used Ultima.dll (Bestiary)

The ConfigParser.cs in the download on page 1 is out of date,a few pages further is another one
// ConfigParser version 1.3 - utilities version 2.1, by Xanthos


Alari
If you [props the control stone you can set the amount of auctions per account, I was just too lazy to manually enter hundreds, but I did set it to 100 per account, & in player mode added 100 auctions with 1 char I could not do more than what stone was set for in playermode.

drgsldr69:
That's weird, I've had no such problems.
 

Alari

Wanderer
drgsldr69

I haven't changed the serialization on the auctioneer, and I've had one spawned for a while now, no problems. Does it want to delete every time? Try updating from the zip I posted? I did add an ondoubleclick to the auctioneer, so that you can double click to open the auction gump in addition to through the context menu.


datguy

I've been through this thread a few times trying to see if I missed any updates, I still can't find the configparser update you mentioned. =/ Could you post it please? Or PM it to me and I'll include it in an updated zip. Thanks.
 

datguy

Sorceror
Hmm, now I can't find it either, must of gotten it elsewhere, mind is still blurry from all I tried;)

*EDIT*
I edited AuctionListing.cs at line #100 to display the current price
Code:
 AddLabelCropped(140, 150 + i * 20, 260, 20, 88, "$"+item.MinNewBid + " - " + item.ItemName);




Here is that File
 

Attachments

  • ConfigParser.cs
    11.1 KB · Views: 33
well after testing other mobile's, vender's, animals. I have found out whatever it is causing the mobiles to delete on reboot is affecting EVERY mobile minus the player mobile. any clue which file i would have to look in?
 

Alari

Wanderer
drgsldr69;752584 said:
well after testing other mobile's, vender's, animals. I have found out whatever it is causing the mobiles to delete on reboot is affecting EVERY mobile minus the player mobile. any clue which file i would have to look in?

Did you change basecreature or something?
 

nadious

Sorceror
Alari,

That was it exactly. My XML file wasn't where it was supposed to be. After ALL THIS TIME (nearly a year), I never even knew it was supposed to be there.

What I did was update the Configparser.cs with the one provided and updated my Ultima.dll as well. I guess I should test out an auction to see how it does, but so far, it seems to be ok for compiling.

Thanks for that nugget of info there. :)
 
yeah a few times since i have installed this script :( lets just say we have installed ALOT of whole systems including some smaller ones.


i know it is a serilize error just nto sure where. and i cant find a crash log or error log :(
Code:
World: Loading...An error was encountered while loading a saved object
 - Type: Server.Items.DuelScoreHolder
 - Serial: 0x4000000D
Delete the object? (y/n)
Delete all objects of that type? (y/n)
After pressing return an exception will be thrown and the server will terminate

Error:
System.Exception: Load failed (items=True, mobiles=False, guilds=False, type=Ser
ver.Items.DuelScoreHolder, serial=0x4000000D) ---> System.ArgumentOutOfRangeExce
ption: Ticks must be between DateTime.MinValue.Ticks and DateTime.MaxValue.Ticks
.
Parameter name: ticks
   at System.DateTime..ctor(Int64 ticks)
   at Server.BinaryFileReader.ReadDateTime()
   at Server.Items.DuelScoreHolder.Deserialize(GenericReader reader)
   at Server.World.Load()
   --- End of inner exception stack trace ---
   at Server.World.Load()
   at Server.ScriptCompiler.Compile(Boolean debug, Boolean cache)
   at Server.Core.Main(String[] args)
This exception is fatal, press return to exit

and before anyone says that part has nothing to do withthis system. I KNOW THIS! it does that with EVERY MOBILE except the player mobile.
 

Alari

Wanderer
drgsldr69;752602 said:
yeah a few times since i have installed this script :( lets just say we have installed ALOT of whole systems including some smaller ones.

Uhoh. Well, something broke... =/ I know that's not much help, but the best you can do is: double check your basecreature file, verify the serialization matches (same amount of things serialized/deserialized) For anything else that glitches too, if it's an optional package you can uninstall without hurting anything, maybe remove it temporarily while trying to fix the other problems (one less error) Not sure why you're getting an error in an item too, is it just that one item or are others failing? Did you update or change the core?

You may just have to go through and delete everything and let the world respawn, I've had that happen occasionally with mobiles (fortunately I managed to keep my playermobiles, I don't fiddle with serialization on those...)

And when installing modifications and packages, install one at a time, test it carefully, and make sure your world survives a restart of the server.


I updated the Xanthos zip with the configparser changes, as well as the changes from the updated utilities I managed to find in another thread. That doesn't seem to solve the 'logic problem' I mentioned where auctionitem is intialized before the config is loaded, but the work around for people with custom cliloc's which cannot be autodetected would be to manually specify the cliloc in auctionconfig.CS (not XML).

Link to Xanthos.zip
 
thats just it i never actually spawned anything that stayed alive by the time i restarted the server so i never noticed it on a restart.

everything in game works perfectly compiles perfectly.

jsut if there is ANYTHING in the world other then my character it wants to delete it. :((
 

Alari

Wanderer
You can try making a backup copy of your Saves directory and starting a new world from scratch to test things, spawn a few items, [save the world, and see if it still wants to delete items on world load.

If so, then SOMETHING is messed up, if it's all mobiles then it may be in basecreature, if it's all items it may be that base parent item, if you updated the core recently, especially a huge change, there may be things which are no longer compatible..

Check your serialization, match up each and every item in Serialize/Deserialize for things you've changed, if they're off you get serialization errors.
 

datguy

Sorceror
I've done some surgery on the Auction System
mods...

checks put into all gump scripts to make sure no button id is out of range & now works with razor

can add item from anywhere with [myauction (changes to myauctiongump, basically made it same as [auction

current price on listgump
goldledger used if player has one (commented out for you)
can no longer bid against self
will world broadcast when new item added

Note: Didn't try to compile this after I commented out the goldledger & other myshard issues but should be good. This is just the Auction System Folder & the AuctionConfig.cs will need to be edited to your needs or just not copied. If i remember right the file changes are the gumps directory, AuctionItem.cs, StringTable.cs, Bid.cs

*EDIT* Woops, forgot the file
 

Attachments

  • Auction System.rar
    46.2 KB · Views: 87

datguy

Sorceror
That's right, you'll still need the other Ultima.dll, chiloc..etc found before this. This is the Auction System folder I have. I think this is a bit more stable with the gumps, at least I couldn't crash it.
 
Top