Jump to content

[11723][PATCH]Auction House Bot


Auntie Mangos

Recommended Posts

  • Replies 281
  • Created
  • Last Reply

Top Posters In This Topic

For ahbot have chance adding to core source need remove in ahbot using fake player. Referenced commit let do it for auction owner case, but not for bidder case yet.

In any way better wait with like fake player use drop until null bidder support adding part to core (I work at it). Also I detect crahs problem with referenced commit in case using no-owner feature, so better wail also until this fix.

Link to comment
Share on other sites

Funny I was just about to post the exact same in regards to crashing, blank owner, and the fact that this commit makes it so ahbot can do what it does using more of the core.

the fake guid ahbot uses is partly so we can set the name of the owner and also delete mail to that guid, but commit 11701 also adds deleting mails to non existent players.

I completely understand why using the fake guid is one of the things keeping this from the core, does seem very hacky to me, but without it we have no name. Will a blank name in auctions be acceptable or does a developer have something hidden up his/her sleeves to work around this

Link to comment
Share on other sites

but commit 11701 also adds deleting mails to non existent players.

Hmm, where? I not expect changing in this part.

a blank name in auctions be acceptable

As i test client fine work with 0 guid not-existed owner and blank names. I not see reason for hide fack that auction generated by server

In any case fast wide known player name in same way will show this.

Link to comment
Share on other sites

but commit 11701 also adds deleting mails to non existent players.

Hmm, where? I not expect changing in this part.

Maybe lost in translation, I meant currently ahbot already modifies Mail.cpp to drop mail for itself, but with 11701

MailDraft::SendMailTo now allow "send" mails to non-players. It correcly drop items in like case.

ahbot no longer needs to modify Mail.cpp to do this and the core can do it on its own

I was pointing out that the commit added features that ahbot can use, not saying that anything was missing or needed

I know ahbot is far from official like, but I was under the impression it should emulate the appearance of a real user so that the auctions appeared to be from a real player to give it an official appearance. But if the blank name is acceptable for this mod than I think ahbot would be better not hacking together a fakename/guid for this purpose. From your post I'll assume the blank name is fine while I work on adapting the new method to a development branch of ahbot (just waiting for the bidder half before I release anything)

Link to comment
Share on other sites

https://gist.github.com/1064026 (also https://github.com/VladimirMangos/mangos ) ahbot patch for master [11712]

based at "antiroot/new_ahbot_finetune Fixes + Additional Filters"

with removed some redundent changes already expected work fine in core and reuse some core functions.

Also fake player guid support removed. Not expected real differences from original AHBot work (only empty ahbot name in auctions).

Commit have some notes what need do before adding to master repo:

TODO before add to master repo:

* Review own ahbot code

* rewrite chat command to something using current chat commands parsing API

* add normal chat filter instead ahbot internal field check

* possible merge config.h* to AuctionHouseBot.h

Link to comment
Share on other sites

I currently apply incremental code cleanups in https://github.com/VladimirMangos/mangos without expected functionality changes.

This possible will need some days. I want get best possible state that let add code and forgot at long time ;) ... ofc if will not suggested imporvements/etc.

For clarify: code mostly good written just mangos have own codestyle and recent core changes let big simplifications and more high level function calls reuses instead low level access to auction code.

Until this work finish maybe better use patch from https://gist.github.com/1064026 It must compatible with current master code.

But maybe not with One/Zero. When i finish i remerge changes to single commit before adding to master, then i will backport master changes

to One/Zero.

Link to comment
Share on other sites

hmm, not sure what's going on vlad, but this morning I checked my console and saw hundreds and hundreds of pages of errors to do with the AHbot. Never seem them before now.

Here are a few for your perusal.

[== English ==]
Update failed: !itr->second->itemGuidLow Stack Trace: AuctionHouseMgr::Update() c:\\core\\src\\game\\auctionhousemgr.cpp: 488 + 0x0 World::Update() c:\\core\\src\\game\\world.cpp: 1478 + 0x0 WorldRunnable::run() c:\\core\\src\\mangosd\\worldrunnable.cpp: 67 + 0x0 ACE_Based::Thread::ThreadTask() c:\\core\\src\\shared\\threading.cpp: 190 + 0x0 ACE_OS_Thread_Adapter::invoke() c:\\core\\dep\\ace_wrappers\\ace\\os_thread_adapter.c pp: 86 + 0x5 endthreadex()+0x43 [0x21db7] endthreadex()+0xdf [0x21e53] BaseThreadInitThunk()+0xd [0x1652d] RtlUserThreadStart()+0x21 [0x2c521] ..\\..\\src\\game\\AuctionHouseMgr.cpp:585: Error: Assertion in AuctionHouseObject:: Update failed: !itr->second->itemGuidLow Stack Trace: AuctionHouseMgr::Update() c:\\core\\src\\game\\auctionhousemgr.cpp: 488 + 0x0 World::Update() c:\\core\\src\\game\\world.cpp: 1478 + 0x0 WorldRunnable::run() c:\\core\\src\\mangosd\\worldrunnable.cpp: 67 + 0x0 ACE_Based::Thread::ThreadTask() c:\\core\\src\\shared\\threading.cpp: 190 + 0x0 ACE_OS_Thread_Adapter::invoke() c:\\core\\dep\\ace_wrappers\\ace\\os_thread_adapter.c pp: 86 + 0x5 endthreadex()+0x43 [0x21db7] endthreadex()+0xdf [0x21e53] BaseThreadInitThunk()+0xd [0x1652d] RtlUserThreadStart()+0x21 [0x2c521] SQL: INSERT INTO auction (id,houseid,itemguid,item_template,item_count,item_rand ompropertyid,itemowner,buyoutprice,time,moneyTime,buyguid,lastbid,startbid,depos it) VALUES
('464704', '7', '16278746', '11081', '3214093379', '1064396558', '0',  '1334', '1310116480', '13786686556270743355', '0', '0', '1052', '0') SQL ERROR: Out of range value for column 'moneyTime' at row 1 SQL: INSERT INTO auction (id,houseid,itemguid,item_template,item_count,item_rand ompropertyid,itemowner,buyoutprice,time,moneyTime,buyguid,lastbid,startbid,depos it) VALUES
('464705', '7', '16278747', '21894', '2047', '1055172274', '0', '8749 7', '1310044480', '13817098940501165774', '0', '0', '36772', '0') SQL ERROR: Out of range value for column 'moneyTime' at row 1 SQL: INSERT INTO auction (id,houseid,itemguid,item_template,item_count,item_rand ompropertyid,itemowner,buyoutprice,time,moneyTime,buyguid,lastbid,startbid,depos it) VALUES
('464707', '7', '16278749', '3872', '3199988585', '-1094446467', '0',  '6354', '1310166880', '13728842213728966722', '0', '0', '5400', '0') SQL ERROR: Out of range value for column 'moneyTime' at row 1 SQL: INSERT INTO auction (id,houseid,itemguid,item_template,item_count,item_rand ompropertyid,itemowner,buyoutprice,time,moneyTime,buyguid,lastbid,startbid,depos it) VALUES
('464720', '7', '16278762', '2532', '2047', '-524913056', '0', '12021 6', '1310051680', '14013191028293462698', '0', '0', '19378', '0') SQL ERROR: Out of range value for column 'moneyTime' at row 1 ..\\..\\src\\game\\AuctionHouseMgr.cpp:585: Error: Assertion in AuctionHouseObject:: Update failed: !itr->second->itemGuidLow Stack Trace: World::Update() c:\\core\\src\\game\\world.cpp: 1478 + 0x0 WorldRunnable::run() c:\\core\\src\\mangosd\\worldrunnable.cpp: 67 + 0x0 ACE_Based::Thread::ThreadTask() c:\\core\\src\\shared\\threading.cpp: 190 + 0x0 ACE_OS_Thread_Adapter::invoke() c:\\core\\dep\\ace_wrappers\\ace\\os_thread_adapter.c pp: 86 + 0x5 endthreadex()+0x43 [0x21db7] endthreadex()+0xdf [0x21e53] BaseThreadInitThunk()+0xd [0x1652d] RtlUserThreadStart()+0x21 [0x2c521] ..\\..\\src\\game\\AuctionHouseMgr.cpp:585: Error: Assertion in AuctionHouseObject:: Update failed: !itr->second->itemGuidLow Stack Trace: World::Update() c:\\core\\src\\game\\world.cpp: 1478 + 0x0 WorldRunnable::run() c:\\core\\src\\mangosd\\worldrunnable.cpp: 67 + 0x0 ACE_Based::Thread::ThreadTask() c:\\core\\src\\shared\\threading.cpp: 190 + 0x0 ACE_OS_Thread_Adapter::invoke() c:\\core\\dep\\ace_wrappers\\ace\\os_thread_adapter.c pp: 86 + 0x5 endthreadex()+0x43 [0x21db7] endthreadex()+0xdf [0x21e53] BaseThreadInitThunk()+0xd [0x1652d] RtlUserThreadStart()+0x21 [0x2c521] ..\\..\\src\\game\\AuctionHouseMgr.cpp:585: Error: Assertion in AuctionHouseObject:: Update failed: !itr->second->itemGuidLow Stack Trace: World::Update() c:\\core\\src\\game\\world.cpp: 1478 + 0x0 WorldRunnable::run() c:\\core\\src\\mangosd\\worldrunnable.cpp: 67 + 0x0 ACE_Based::Thread::ThreadTask() c:\\core\\src\\shared\\threading.cpp: 190 + 0x0 ACE_OS_Thread_Adapter::invoke() c:\\core\\dep\\ace_wrappers\\ace\\os_thread_adapter.c pp: 86 + 0x5 endthreadex()+0x43 [0x21db7] endthreadex()+0xdf [0x21e53] BaseThreadInitThunk()+0xd [0x1652d] RtlUserThreadStart()+0x21 [0x2c521] ..\\..\\src\\game\\AuctionHouseMgr.cpp:585: Error: Assertion in AuctionHouseObject:: Update failed: !itr->second->itemGuidLow Stack Trace: World::Update() c:\\core\\src\\game\\world.cpp: 1478 + 0x0 WorldRunnable::run() c:\\core\\src\\mangosd\\worldrunnable.cpp: 67 + 0x0 ACE_Based::Thread::ThreadTask() c:\\core\\src\\shared\\threading.cpp: 190 + 0x0 ACE_OS_Thread_Adapter::invoke() c:\\core\\dep\\ace_wrappers\\ace\\os_thread_adapter.c pp: 86 + 0x5 endthreadex()+0x43 [0x21db7] endthreadex()+0xdf [0x21e53] BaseThreadInitThunk()+0xd [0x1652d] RtlUserThreadStart()+0x21 [0x2c521] ..\\..\\src\\game\\AuctionHouseMgr.cpp:585: Error: Assertion in AuctionHouseObject:: Update failed: !itr->second->itemGuidLow Stack Trace: World::Update() c:\\core\\src\\game\\world.cpp: 1478 + 0x0 WorldRunnable::run() c:\\core\\src\\mangosd\\worldrunnable.cpp: 67 + 0x0 ACE_Based::Thread::ThreadTask() c:\\core\\src\\shared\\threading.cpp: 190 + 0x0 ACE_OS_Thread_Adapter::invoke() c:\\core\\dep\\ace_wrappers\\ace\\os_thread_adapter.c pp: 86 + 0x5 endthreadex()+0x43 [0x21db7] endthreadex()+0xdf [0x21e53] BaseThreadInitThunk()+0xd [0x1652d] RtlUserThreadStart()+0x21 [0x2c521] ..\\..\\src\\game\\AuctionHouseMgr.cpp:585: Error: Assertion in AuctionHouseObject:: Update failed: !itr->second->itemGuidLow Stack Trace: World::Update() c:\\core\\src\\game\\world.cpp: 1478 + 0x0 WorldRunnable::run() c:\\core\\src\\mangosd\\worldrunnable.cpp: 67 + 0x0 ACE_Based::Thread::ThreadTask() c:\\core\\src\\shared\\threading.cpp: 190 + 0x0 ACE_OS_Thread_Adapter::invoke() c:\\core\\dep\\ace_wrappers\\ace\\os_thread_adapter.c pp: 86 + 0x5 endthreadex()+0x43 [0x21db7] endthreadex()+0xdf [0x21e53] BaseThreadInitThunk()+0xd [0x1652d] RtlUserThreadStart()+0x21 [0x2c521] ..\\..\\src\\game\\AuctionHouseMgr.cpp:585: Error: Assertion in AuctionHouseObject:: Update failed: !itr->second->itemGuidLow Stack Trace: World::Update() c:\\core\\src\\game\\world.cpp: 1478 + 0x0 WorldRunnable::run() c:\\core\\src\\mangosd\\worldrunnable.cpp: 67 + 0x0 ACE_Based::Thread::ThreadTask() c:\\core\\src\\shared\\threading.cpp: 190 + 0x0 ACE_OS_Thread_Adapter::invoke() c:\\core\\dep\\ace_wrappers\\ace\\os_thread_adapter.c pp: 86 + 0x5 endthreadex()+0x43 [0x21db7] endthreadex()+0xdf [0x21e53] BaseThreadInitThunk()+0xd [0x1652d] RtlUserThreadStart()+0x21 [0x2c521] ..\\..\\src\\game\\AuctionHouseMgr.cpp:585: Error: Assertion in AuctionHouseObject:: Update failed: !itr->second->itemGuidLow Stack Trace: World::Update() c:\\core\\src\\game\\world.cpp: 1478 + 0x0 WorldRunnable::run() c:\\core\\src\\mangosd\\worldrunnable.cpp: 67 + 0x0 ACE_Based::Thread::ThreadTask() c:\\core\\src\\shared\\threading.cpp: 190 + 0x0 ACE_OS_Thread_Adapter::invoke() c:\\core\\dep\\ace_wrappers\\ace\\os_thread_adapter.c pp: 86 + 0x5 endthreadex()+0x43 [0x21db7] endthreadex()+0xdf [0x21e53] BaseThreadInitThunk()+0xd [0x1652d] RtlUserThreadStart()+0x21 [0x2c521] ..\\..\\src\\game\\AuctionHouseMgr.cpp:585: Error: Assertion in AuctionHouseObject:: Update failed: !itr->second->itemGuidLow Stack Trace: World::Update() c:\\core\\src\\game\\world.cpp: 1478 + 0x0 WorldRunnable::run() c:\\core\\src\\mangosd\\worldrunnable.cpp: 67 + 0x0 ACE_Based::Thread::ThreadTask() c:\\core\\src\\shared\\threading.cpp: 190 + 0x0 ACE_OS_Thread_Adapter::invoke() c:\\core\\dep\\ace_wrappers\\ace\\os_thread_adapter.c pp: 86 + 0x5 endthreadex()+0x43 [0x21db7] endthreadex()+0xdf [0x21e53] BaseThreadInitThunk()+0xd [0x1652d] RtlUserThreadStart()+0x21 [0x2c521] ..\\..\\src\\game\\AuctionHouseMgr.cpp:585: Error: Assertion in AuctionHouseObject:: Update failed: !itr->second->itemGuidLow Stack Trace:

Link to comment
Share on other sites

Then better use old patch state for while from antiroot/new_ahbot_finetune :/ I will look ofc at problem but don't want go back for test original my patch state.

Hmm, "ERROR: Out of range value for column 'moneyTime' at row 1 SQL: INSERT INTO auction "

error is result wrong DB field type:

`moneyTime` bigint(40) NOT NULL default '0',

_all_ time_t fields must be unsigned. Will write fix to core as will move some ready core side changes not directly lined with ahbot to master.

It must affect clean core also.

Assertion in AuctionHouseObject:: Update failed: !itr->second->itemGuidLow Stack Trace: AuctionHouseMgr::Update()

Catch case when for sold auction stored for show to owner pending paiment not reset itemguid. As i think this impossible with clean code...

but maybe this result of first error in some way....

Link to comment
Share on other sites

auction time DB field types must be fixed in [11716].

For second problem another source can be missing assign all recently added in core fields for auction strcuture in ahbot code.

I fix this already by replace low level code existed core auctiona add function in my repo version. If last problem source real then this must be show also and with antiroot/new_ahbot_finetune applied to recent core code.

[added]

I find place where with big chance problem created. in 3.x auction can be in payment pending mode.

So auction exist bit don't must be used by AHBot. For like auction moneyDeliveryTime != 0.

In past auction still have guid object and AHBot can do own changes (wrongly ofc), but after recent core changes

item guid set to 0 at switch auction mode to payment delivery pending mode.

But old patch code copy item guid to own structure and still have way refer to removed in auction item guid

and do own evil changes.

For skip like auction i change in my patch version code to

       AuctionEntry* auction = auctionHouse->GetAuction(itr->second.AuctionId);
       if (auction && !auction->moneyDeliveryTime)         // auction still active

and removed item guid caching into ahbot structure.

[added2]

In https://gist.github.com/1068763 new version of ahbot patch for [11716] with fixes described above.

Same force pushed to https://github.com/VladimirMangos/mangos

You also can see author/thanks update in commit notes. If I miss someone from contributers please point and i include nick to list.

I not look persistent in past for ahbot development so I can miss some important contributions, original/continue authors

Link to comment
Share on other sites

I am trying to setup a new server with the patch from VladimirMangos in his previous post:

https://gist.github.com/1068763

But I cannot seem to apply it after I have pulled in the Playerbot changes.

I tried applying the patch prior to the Playerbot merge via:

git pull git://github.com/blueboy/portal.git master

But now that command fails with this error:

From git://github.com/blueboy/portal

* branch master -> FETCH_HEAD

error: Your local changes to 'src/game/CMakeLists.txt' would be overwritten by merge. Aborting.

Please, commit your changes or stash them before you can merge.

Which I am not surprised. There is a merge issue either way.

Any pointers to allow both AH bot and Playerbot to merge properly in the latest revision?

Link to comment
Share on other sites

@hyuga have you tried committing the changes introduced from the patch as the error suggests?

I assume you're using patches for both mods and not merging other repos, in which case the patches only alter the data they don't apply it to your local repository. so you must apply the patch and then commit it to your repository in order to apply other patches that affect the same files

noteworthy commands, `git status`, `git add`, and `git commit`

status and commit are straightforward, add requires the relative or absolute path to the file or files to be added (you can specify multiple files at a time), these commands must also be done from within your local repository, if you need more info use `git help` followed by the command for example `git help add`

Link to comment
Share on other sites

Crash possible has been by another reason that i write above. I find some unsafe work with iterators. Maybe my changes in result

and reproduce crash. Fixed now in my local version. I plan do some more testes and then commit main ahbot code part without chat commands.

Chat commands will added later.

Link to comment
Share on other sites

Main part functionality (all except chat commands) added in [11723]. Big thanks to all patch authors and supporters!

I as i test it work in added form as expected but please report any new problems showup after switch from patch to commited version if any.

Chat commands req. more time for me because i want convert its to coding style used in other new commands.

If someone want old chat commands part of patch, you can use https://gist.github.com/1072499 as compatible version with added in commit main code.

Link to comment
Share on other sites

Big thanks to you too Valdimir for taking the time to review and cleanup the code to a finally acceptable state, will be testing as much as possible tonight!

on a side note, I'm extremely happy my force include/exclude filters were able to make it into the core as well, that's the whole reason I made my branch in the first place :) (aside from minor fixes and maintaining)

Link to comment
Share on other sites

Main part functionality (all except chat commands) added in [11723]. Big thanks to all patch authors and supporters!

[ . . . ]

Thanks to all patch authors and supporters!

Does this mean if I build the latest version of mangos ([11726 as of now), I get AH without patching? Already building it now...

Link to comment
Share on other sites

Does this mean if I build the latest version of mangos ([11726 as of now), I get AH without patching? Already building it now...
Yes, it does. Copy the ahbot.conf file in your configuration folder (where mangosd.conf and realmd.conf are located) and activate the ahbot. Done.

Regards

Skirnir

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use