Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Database/World Building

Development::Database/World Building World Building forum, dedicated to the EQEmu MySQL Database. Post partial/complete databases for spawns, items, etc.

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #12  
Old 01-06-2018, 12:21 AM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

Do you mean the
Code:
void Client::SendBazaarResults(...)
..declaration?

The 'void' in that case just indicates the type of object that is expected to be returned once the function has reached a termination point.

For instance:
Code:
void Foo() {
    return;
}
..returns absolutely nothing.

Code:
short Foo() {
    short number = 12345;
    return number;
}
..returns an explicitly declared 'short-'sized value

Code:
short Foo() {
    return 12345;
}
..returns an implicitly converted (coerced) 'short-'sized value

Code:
const char* Foo() {
    return "Hello World!";
}
..returns a const char pointer to the address where "Hello World!" is stored
(known as a c-string and is essentially just an array of chars with a null terminator character at the end.)


In the case of the bazaar function, no return is expected. Any action is predicated on the values passed into the function and by the Client object itself.

I'm really only seeing one fail point in the generation code that would cause an early return:
Code:
if (!results.Success()) {
	return;
}
You've also got these two points:
Code:
if (results.RowCount() == static_cast<unsigned long>(RuleI(Bazaar, MaxSearchResults)))
	Message(15, "Your search reached the limit of %i results. Please narrow your search down by selecting more options.", RuleI(Bazaar, MaxSearchResults));

if(results.RowCount() == 0) {
	auto outapp2 = new EQApplicationPacket(OP_BazaarSearch, sizeof(BazaarReturnDone_Struct));
	BazaarReturnDone_Struct *brds = (BazaarReturnDone_Struct *)outapp2->pBuffer;
...

Even if all of the functional server code if working properly, there could still be an issue with the client translator function - if it has one.

(assuming RoF2...)

We want to look for this opcode
Code:
auto outapp = new EQApplicationPacket(OP_BazaarSearch, Size);
..in the translator.

(ENCODE tranlates server->client packets, DECODE translates client->server packets)

https://github.com/EQEmu/Server/blob.../rof2.cpp#L396


If you have query logging turned on, I'm pretty sure that gms receive the queries (or use to) that are generated.

You should be able to run those directly from HeidiSQL and see the results as well.


None of this really says how to fix any issue..but, it does give you most all of the places to look
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 09:18 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3