mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-22 12:18:27 +00:00
Added support for merchant item filtering by class
Added column classes_required to merchantlist to allow the merchant to only sell items to specified classes Ex. (only example I know from live) To only allow poison supplies to be sell able to only rogues, you would set classes_required to 256. classes_required defaults to 65535 (all/any class) Remember to run the new SQL!
This commit is contained in:
+4
-2
@@ -483,7 +483,7 @@ void Zone::LoadNewMerchantData(uint32 merchantid){
|
||||
MYSQL_RES *result;
|
||||
MYSQL_ROW row;
|
||||
std::list<MerchantList> merlist;
|
||||
if (database.RunQuery(query, MakeAnyLenString(&query, "SELECT item, slot, faction_required, level_required, alt_currency_cost FROM merchantlist WHERE merchantid=%d", merchantid), errbuf, &result)) {
|
||||
if (database.RunQuery(query, MakeAnyLenString(&query, "SELECT item, slot, faction_required, level_required, alt_currency_cost, classes_required FROM merchantlist WHERE merchantid=%d", merchantid), errbuf, &result)) {
|
||||
while((row = mysql_fetch_row(result))) {
|
||||
MerchantList ml;
|
||||
ml.id = merchantid;
|
||||
@@ -492,6 +492,7 @@ void Zone::LoadNewMerchantData(uint32 merchantid){
|
||||
ml.faction_required = atoul(row[2]);
|
||||
ml.level_required = atoul(row[3]);
|
||||
ml.alt_currency_cost = atoul(row[3]);
|
||||
ml.classes_required = atoul(row[4]);
|
||||
merlist.push_back(ml);
|
||||
}
|
||||
merchanttable[merchantid] = merlist;
|
||||
@@ -538,6 +539,7 @@ void Zone::LoadMerchantData_result(MYSQL_RES* result) {
|
||||
ml.faction_required = atoul(row[3]);
|
||||
ml.level_required = atoul(row[4]);
|
||||
ml.alt_currency_cost = atoul(row[5]);
|
||||
ml.classes_required = atoul(row[6]);
|
||||
cur->second.push_back(ml);
|
||||
}
|
||||
}
|
||||
@@ -551,7 +553,7 @@ void Zone::GetMerchantDataForZoneLoad(){
|
||||
workpt.b1() = DBA_b1_Zone_MerchantLists;
|
||||
DBAsyncWork* dbaw = new DBAsyncWork(&database, &MTdbafq, workpt, DBAsync::Read);
|
||||
dbaw->AddQuery(1, &query, MakeAnyLenString(&query,
|
||||
"select ml.merchantid,ml.slot,ml.item,ml.faction_required,ml.level_required,ml.alt_currency_cost "
|
||||
"select ml.merchantid,ml.slot,ml.item,ml.faction_required,ml.level_required,ml.alt_currency_cost,ml.classes_required "
|
||||
"from merchantlist ml, npc_types nt, spawnentry se, spawn2 s2 "
|
||||
"where nt.merchant_id=ml.merchantid and nt.id=se.npcid "
|
||||
"and se.spawngroupid=s2.spawngroupid and s2.zone='%s' and s2.version=%u "
|
||||
|
||||
Reference in New Issue
Block a user