mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 09:31:30 +00:00
Merge pull request #200 from addtheice/RunQueryToDatabaseQuery_zone_merc
Run query to database query zone merc
This commit is contained in:
commit
1bccdf57ee
@ -5852,70 +5852,63 @@ void Client::SendMercAssignPacket(uint32 entityID, uint32 unk01, uint32 unk02) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void NPC::LoadMercTypes() {
|
void NPC::LoadMercTypes() {
|
||||||
std::string errorMessage;
|
|
||||||
char* Query = 0;
|
|
||||||
char TempErrorMessageBuffer[MYSQL_ERRMSG_SIZE];
|
|
||||||
MYSQL_RES* DatasetResult;
|
|
||||||
MYSQL_ROW DataRow;
|
|
||||||
|
|
||||||
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "SELECT DISTINCT MTyp.dbstring, MTyp.clientversion FROM merc_merchant_entries MME, merc_merchant_template_entries MMTE, merc_types MTyp, merc_templates MTem WHERE MME.merchant_id = %i AND MME.merc_merchant_template_id = MMTE.merc_merchant_template_id AND MMTE.merc_template_id = MTem.merc_template_id AND MTem.merc_type_id = MTyp.merc_type_id;", GetNPCTypeID()), TempErrorMessageBuffer, &DatasetResult)) {
|
std::string query = StringFormat("SELECT DISTINCT MTyp.dbstring, MTyp.clientversion "
|
||||||
errorMessage = std::string(TempErrorMessageBuffer);
|
"FROM merc_merchant_entries MME, merc_merchant_template_entries MMTE, "
|
||||||
|
"merc_types MTyp, merc_templates MTem "
|
||||||
|
"WHERE MME.merchant_id = %i "
|
||||||
|
"AND MME.merc_merchant_template_id = MMTE.merc_merchant_template_id "
|
||||||
|
"AND MMTE.merc_template_id = MTem.merc_template_id "
|
||||||
|
"AND MTem.merc_type_id = MTyp.merc_type_id;", GetNPCTypeID());
|
||||||
|
auto results = database.QueryDatabase(query);
|
||||||
|
if (!results.Success()) {
|
||||||
|
LogFile->write(EQEMuLog::Error, "Error in NPC::LoadMercTypes()");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
while(DataRow = mysql_fetch_row(DatasetResult)) {
|
for (auto row = results.begin(); row != results.end(); ++row) {
|
||||||
MercType tempMercType;
|
MercType tempMercType;
|
||||||
|
|
||||||
tempMercType.Type = atoi(DataRow[0]);
|
tempMercType.Type = atoi(row[0]);
|
||||||
tempMercType.ClientVersion = atoi(DataRow[1]);
|
tempMercType.ClientVersion = atoi(row[1]);
|
||||||
|
|
||||||
mercTypeList.push_back(tempMercType);
|
mercTypeList.push_back(tempMercType);
|
||||||
}
|
}
|
||||||
|
|
||||||
mysql_free_result(DatasetResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
safe_delete_array(Query);
|
|
||||||
Query = 0;
|
|
||||||
|
|
||||||
if(!errorMessage.empty()) {
|
|
||||||
LogFile->write(EQEMuLog::Error, "Error in NPC::LoadMercTypes()");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void NPC::LoadMercs(){
|
void NPC::LoadMercs(){
|
||||||
|
|
||||||
std::string errorMessage;
|
std::string query = StringFormat("SELECT DISTINCT MTem.merc_template_id, MTyp.dbstring AS merc_type_id, "
|
||||||
char* Query = 0;
|
"MTem.dbstring AS merc_subtype_id, 0 AS CostFormula, "
|
||||||
char TempErrorMessageBuffer[MYSQL_ERRMSG_SIZE];
|
"CASE WHEN MTem.clientversion > MTyp.clientversion "
|
||||||
MYSQL_RES* DatasetResult;
|
"THEN MTem.clientversion "
|
||||||
MYSQL_ROW DataRow;
|
"ELSE MTyp.clientversion END AS clientversion, MTem.merc_npc_type_id "
|
||||||
|
"FROM merc_merchant_entries MME, merc_merchant_template_entries MMTE, "
|
||||||
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "SELECT DISTINCT MTem.merc_template_id, MTyp.dbstring AS merc_type_id, MTem.dbstring AS merc_subtype_id, 0 AS CostFormula, CASE WHEN MTem.clientversion > MTyp.clientversion then MTem.clientversion ELSE MTyp.clientversion END AS clientversion, MTem.merc_npc_type_id FROM merc_merchant_entries MME, merc_merchant_template_entries MMTE, merc_types MTyp, merc_templates MTem WHERE MME.merchant_id = %i AND MME.merc_merchant_template_id = MMTE.merc_merchant_template_id AND MMTE.merc_template_id = MTem.merc_template_id AND MTem.merc_type_id = MTyp.merc_type_id;", GetNPCTypeID()), TempErrorMessageBuffer, &DatasetResult)) {
|
"merc_types MTyp, merc_templates MTem "
|
||||||
errorMessage = std::string(TempErrorMessageBuffer);
|
"WHERE MME.merchant_id = %i AND "
|
||||||
|
"MME.merc_merchant_template_id = MMTE.merc_merchant_template_id "
|
||||||
|
"AND MMTE.merc_template_id = MTem.merc_template_id "
|
||||||
|
"AND MTem.merc_type_id = MTyp.merc_type_id;", GetNPCTypeID());
|
||||||
|
auto results = database.QueryDatabase(query);
|
||||||
|
if (!results.Success()) {
|
||||||
|
LogFile->write(EQEMuLog::Error, "Error in NPC::LoadMercTypes()");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
while(DataRow = mysql_fetch_row(DatasetResult)) {
|
for (auto row = results.begin(); row != results.end(); ++row) {
|
||||||
MercData tempMerc;
|
MercData tempMerc;
|
||||||
|
|
||||||
tempMerc.MercTemplateID = atoi(DataRow[0]);
|
tempMerc.MercTemplateID = atoi(row[0]);
|
||||||
tempMerc.MercType = atoi(DataRow[1]);
|
tempMerc.MercType = atoi(row[1]);
|
||||||
tempMerc.MercSubType = atoi(DataRow[2]);
|
tempMerc.MercSubType = atoi(row[2]);
|
||||||
tempMerc.CostFormula = atoi(DataRow[3]);
|
tempMerc.CostFormula = atoi(row[3]);
|
||||||
tempMerc.ClientVersion = atoi(DataRow[4]);
|
tempMerc.ClientVersion = atoi(row[4]);
|
||||||
tempMerc.NPCID = atoi(DataRow[5]);
|
tempMerc.NPCID = atoi(row[5]);
|
||||||
|
|
||||||
mercDataList.push_back(tempMerc);
|
mercDataList.push_back(tempMerc);
|
||||||
}
|
}
|
||||||
|
|
||||||
mysql_free_result(DatasetResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
safe_delete_array(Query);
|
|
||||||
Query = 0;
|
|
||||||
|
|
||||||
if(!errorMessage.empty()) {
|
|
||||||
LogFile->write(EQEMuLog::Error, "Error in NPC::LoadMercTypes()");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int NPC::GetNumMercTypes(uint32 clientVersion)
|
int NPC::GetNumMercTypes(uint32 clientVersion)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user