1
0

hide_reward to not show anything on offer quest

alter table quests add column hide_reward tinyint(3) unsigned not null default 0;
This commit is contained in:
Emagi 2025-03-15 15:44:24 -04:00
parent 71217ce0ec
commit 2a89989e0c
3 changed files with 23 additions and 12 deletions

View File

@ -320,6 +320,7 @@ Quest::Quest(int32 in_id){
m_status = 0;
status_to_earn_min = 0;
status_to_earn_max = 0;
hide_reward = false;
}
Quest::Quest(Quest* old_quest){
@ -399,6 +400,7 @@ Quest::Quest(Quest* old_quest){
can_delete_quest = old_quest->CanDeleteQuest();
status_to_earn_min = old_quest->GetStatusToEarnMin();
status_to_earn_max = old_quest->GetStatusToEarnMax();
hide_reward = old_quest->GetHideReward();
}
Quest::~Quest(){
@ -906,14 +908,18 @@ EQ2Packet* Quest::OfferQuest(int16 version, Player* player){
else
packet->setDataByName("unknown", 5);
packet->setDataByName("level", level);
if(!GetHideReward()) {
if(reward_coins > 0){
packet->setDataByName("min_coin", reward_coins);
if (reward_coins_max)
packet->setDataByName("max_coin", reward_coins_max);
}
packet->setDataByName("status_points", GetStatusEarned() > 0 ? GetStatusEarned() : reward_status);
}
if(reward_comment.length() > 0)
packet->setDataByName("text", reward_comment.c_str());
if(!GetHideReward()) {
if(reward_items.size() > 0){
player->GetClient()->PopulateQuestRewardItems(&reward_items, packet);
}
@ -921,6 +927,7 @@ EQ2Packet* Quest::OfferQuest(int16 version, Player* player){
player->GetClient()->PopulateQuestRewardItems(&selectable_reward_items, packet, std::string("num_select_rewards"),
std::string("select_reward_id"), std::string("select_item"));
}
}
map<int32, sint32>* reward_factions = GetRewardFactions();
if (reward_factions && reward_factions->size() > 0) {
packet->setArrayLengthByName("num_factions", reward_factions->size());

View File

@ -331,6 +331,7 @@ public:
void SetQuestShareableFlag(int32 flag) { quest_shareable_flag = flag; }
void SetCanDeleteQuest(bool newval) { can_delete_quest = newval; }
void SetHideReward(bool newval) { hide_reward = newval; }
void SetStatusToEarnMin(int32 value_) { status_to_earn_min = value_; }
@ -341,6 +342,7 @@ public:
int32 GetQuestShareableFlag() { return quest_shareable_flag; }
bool CanDeleteQuest() { return can_delete_quest; }
bool GetHideReward() { return hide_reward; }
bool CanShareQuestCriteria(Client* quest_sharer, bool display_client_msg = true);
Mutex MQuestSteps;
@ -428,6 +430,7 @@ protected:
bool can_delete_quest;
int32 status_to_earn_min;
int32 status_to_earn_max;
bool hide_reward;
};
class MasterQuestList{

View File

@ -5349,7 +5349,7 @@ void WorldDatabase::FixBugReport(){
int32 WorldDatabase::LoadQuests(){
Query query;
MYSQL_ROW row;
std::string querystr = std::string("SELECT `quest_id`, `name`, `type`, `zone`, `level`, `enc_level`, `description`, `lua_script`, `completed_text`, `spawn_id`, `shareable_flag`, `deleteable`, `status_to_earn_min`, `status_to_earn_max` FROM `quests`");
std::string querystr = std::string("SELECT `quest_id`, `name`, `type`, `zone`, `level`, `enc_level`, `description`, `lua_script`, `completed_text`, `spawn_id`, `shareable_flag`, `deleteable`, `status_to_earn_min`, `status_to_earn_max`, `hide_reward` FROM `quests`");
MYSQL_RES* result = query.RunQuery2(Q_SELECT, querystr.c_str());
Quest* quest = 0;
char* name = 0;
@ -5399,6 +5399,7 @@ int32 WorldDatabase::LoadQuests(){
quest->SetCanDeleteQuest(atoul(row[11]));
quest->SetStatusToEarnMin(atoul(row[12]));
quest->SetStatusToEarnMax(atoul(row[13]));
quest->SetHideReward(atoul(row[14]));
total++;
master_quest_list.AddQuest(id, quest);
}