Jump to content

[PATCH] AuctionHouse Bot


Recommended Posts

Of course it's fun. I love it. Seriously. There's almost nothing more enjoyable than having a mare of a problem, only to eventually find an answer.

You go devs, throw at us whatever you can, WE CAN TAKE IT...mwhuhahahahaha!

I grabbed your file Temporary and now have this:-

$ git apply --check Addon/AHBot/mangos-9573-ahbot.patch

error: patch failed: src/game/AuctionHouseHandler.cpp:27

error: src/game/AuctionHouseHandler.cpp: patch does not apply

error: patch failed: src/game/Player.h:1423

error: src/game/Player.h: patch does not apply

This is very intriguing. ;)

Link to comment
Share on other sites

  • Replies 702
  • Created
  • Last Reply

Top Posters In This Topic

The Reason I say this is that I have seen this behavior before. I am sure he has lost interest in WoW most likely and has moved on. The fact we have not seen ANY information or commits or fixes from him (Even critical ones) is a tell-tale sign.

I have been around the community long enough to see people come and go many times. And AHBOT has all the signs of being abandoned.

So the next step is whatever you guys decide. This is a sad tragedy. If people had listen to me before and taken the steps required to prepare this addon for core Integration this would not be an issue anymore. Vladimir was happy with it for the most part except for one major issue... and that was the requirement for a player to list items. He suggested coding it so an NPC from in-game could list the items. Now a year later and we are no further ahead... :mad:

So my only hope is whoever takes on AHBOT is actually willing to do something with it... not just be a patch monkey with no real coding changes.

Link to comment
Share on other sites

First off, I've been following this mish-mash for some time, and have to agree that this addon should not be left in the hands of patch jockeys - it is in my opinion of enough value to merit core integration for once and for all. I like the idea of using an internal NPC as owner of auction items. It helps to eliminate many startup problems potential users have. Also, for those purists who don't wish to use AHBOT, by retaining relevant options in the mangos.cfg file there should be no complaints. Of all addons currently available AHBOT definitely has the most appeal and value, especially to players in single or small group configurations. So, in this spirit I pose a few questions:

- is Vladimir (or other "core gurus") still interested in integrating AHBOT into the core?

- if so, is there anything the rest of us do to prepare the addon for core integration?

Note that I would be willing to help but am not a C++ person (hardware design background with lots of experience but essentially none in software coding).

Link to comment
Share on other sites

I like the idea to have this integrated in the Mangos Core ...while having the option diseable by default in the CFG....

There could be a line such what we already have

AuctionHouseBot.EnableSeller = 0

AuctionHouseBot.EnableBuyer = 0

Simply put 1 in the CFG to active it....

You could add a fift account in the Account table in RealmD database and put the name Addon ...character's name AuctionHouse.... or sumthing like that...

Personaly, thats the only "non-blizzlike" that i would want to a private server... because this is too usefull...

Link to comment
Share on other sites

Don't worry m8. I'll back you up. No one on the planet can convince me that this git stuff is easier than SVN. NO way in hell. In fact, Hell would have to freeze over before that would ever happen.

Plus I'm bigger and more mature than most people to be able to be be-littled.

Actually, I was refering to the need for a new AHbot dev. I, personally, AM a fan of git. ;)

skinlayers

Link to comment
Share on other sites

I rewrote the function MinimalLoadFromDB in Player.cpp and it is working on mangos 9640.

bool Player::MinimalLoadFromDB( QueryResult *result, uint32 guid )
{
   //       0     1        2     3     4      5       6      7   8      9            10            11
   //SELECT guid, account, name, race, class, gender, level, xp, money, playerBytes, playerBytes2, playerFlags,"
   // 12          13          14          15   16           17        18         19         20         21          22           23                 24
   //"position_x, position_y, position_z, map, orientation, taximask, cinematic, totaltime, leveltime, rest_bonus, logout_time, is_logout_resting, resettalents_cost,"
   // 25                 26       27       28       29       30         31           32            33        34    35      36                 37         38
   //"resettalents_time, trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, stable_slots, at_login, zone, online, death_expire_time, taxi_path, dungeon_difficulty,"
   // 39           40                41                42                    43          44          45              46           47               48              49
   //"arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk,"
   // 50      51      52      53      54      55      56      57      58         59          60             61              62      63           64
   //"health, power1, power2, power3, power4, power5, power6, power7, specCount, activeSpec, exploredZones, equipmentCache, ammoId, knownTitles, actionBars  FROM characters WHERE guid = '%u'", GUID_LOPART(m_guid));

   result = CharacterDatabase.PQuery("SELECT guid, account, name, race, class, gender, level, xp, money, playerBytes, playerBytes2, playerFlags,position_x, position_y, position_z, map, orientation, taximask, cinematic, totaltime, leveltime, rest_bonus, logout_time, is_logout_resting, resettalents_cost,resettalents_time, trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, stable_slots, at_login, zone, online, death_expire_time, taxi_path, dungeon_difficulty,arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk,health, power1, power2, power3, power4, power5, power6, power7, specCount, activeSpec, exploredZones, equipmentCache, ammoId, knownTitles, actionBars FROM characters WHERE guid = '%u'",guid);

   if(!result)
   {
       sLog.outError("Player (GUID: %u) not found in table `characters`, can't load. ",guid);
       return false;
   }

   Field *fields = result->Fetch();

   uint32 dbAccountId = fields[1].GetUInt32();


   Object::_Create( guid, 0, HIGHGUID_PLAYER );

   m_name = fields[2].GetCppString();


   // overwrite possible wrong/corrupted guid
   SetUInt64Value(OBJECT_FIELD_GUID, MAKE_NEW_GUID(guid, 0, HIGHGUID_PLAYER));

   _LoadIntoDataField(fields[60].GetString(), PLAYER_EXPLORED_ZONES_1, PLAYER_EXPLORED_ZONES_SIZE);
   _LoadIntoDataField(fields[63].GetString(), PLAYER__FIELD_KNOWN_TITLES, KNOWN_TITLES_SIZE*2);

   // init saved position, and fix it later if problematic
   uint32 transGUID = fields[30].GetUInt32();
   Relocate(fields[12].GetFloat(),fields[13].GetFloat(),fields[14].GetFloat(),fields[16].GetFloat());
   SetLocationMapId(fields[15].GetUInt32());

   // NOW player must have valid map
   // load the player's map here if it's not already loaded
   SetMap(sMapMgr.CreateMap(GetMapId(), this));


   m_Played_time[PLAYED_TIME_TOTAL]= fields[19].GetUInt32();
   m_Played_time[PLAYED_TIME_LEVEL]= fields[20].GetUInt32();

   m_atLoginFlags = fields[33].GetUInt32();


   // apply original stats mods before spell loading or item equipment that call before equip _RemoveStatsMods()


   m_specsCount = fields[58].GetUInt8();
   m_activeSpec = fields[59].GetUInt8();

   // add ghost flag (must be after aura load: PLAYER_FLAGS_GHOST set in aura)
   if( HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_GHOST) )
       m_deathState = DEAD;


   // all fields read
   delete result;
   result = NULL;

   return true;
}

(it is not cleaned)

Link to comment
Share on other sites

I have finished using the mods listed above along with my own personal mods over the last few weeks updating my patch for AHBot. This patch applies and compiles cleanly against 9645. I'm running the server so far and it appears to work. It includes the Minimal DB Load mod listed above as well.

The zipped up patch can be downloaded from the link below. I hope this helps somebody.

http://www.jaylittle.com/jaylittle/downloads/auctionhousebot_005b.zip

Link to comment
Share on other sites

<stdin>:3466: trailing whitespace.

error: patch failed: src/game/AuctionHouseHandler.cpp:27
error: src/game/AuctionHouseHandler.cpp: patch does not apply
error: patch failed: src/game/Mail.cpp:1022
error: src/game/Mail.cpp: patch does not apply

tested with 9649

Link to comment
Share on other sites

EARTHWALKER@THEBEAST c:/mangos (master)
$ git apply --check Addon/AHBot/auctionhousebot_005b.patch
error: patch failed: src/game/AuctionHouseHandler.cpp:27
error: src/game/AuctionHouseHandler.cpp: patch does not apply
error: patch failed: src/game/Mail.cpp:1022
error: src/game/Mail.cpp: patch does not apply

Tested with 9646

Seems as though mangos has been altered once again..lol

Link to comment
Share on other sites

I'm certainly not an expert and i don't know how everythings is written in C++ but if we talk about concept, i would say that you would need to create multiples exceptions in the auction house coding:

that will accept items without receiving a seller GUID...

that will sell item doiing nothing to the vendors if no GUID

then of course you'll still need some codes that will generate items...and if you want a buyer as well, this mean more exception to do....

but overall you need an expert in C++ and that understand the acution hosue coding to do that...lmao...

Link to comment
Share on other sites

Substitute a pregenerated NPC....link it to the realms list if needed.

Why is everyone trying to link the auctioned item to a player or a NPC? shouldn't it be better if the auctioned item where to be generated and put in auction directly?.

I mean, maybe it will be easier to use a generic name to show in the auctioned item, like "Auctioneer" or "AHbot"?.

Link to comment
Share on other sites

Exactly my point, the client only know the item and name of the auctioneer to show right?

I think everything else is managed behind the scene by the server...

temporary: The codes that will generate items are implemented already, we can salvage what is in AuctionHouseBot.cpp I think...

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