mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
[Bug Fix] Personal tributes for bard items were not applying correctly (#4416)
* Fixes Personal Tributes for bard items not being applied. * Fix for bots
This commit is contained in:
parent
51eb95ed31
commit
17f66c5d60
@ -182,14 +182,20 @@ void Mob::CalcItemBonuses(StatBonuses* b) {
|
|||||||
SetDualWeaponsEquipped(true);
|
SetDualWeaponsEquipped(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsOfClientBot()) {
|
if (IsClient()) {
|
||||||
for (i = EQ::invslot::TRIBUTE_BEGIN; i <= EQ::invslot::TRIBUTE_END; i++) {
|
if (CastToClient()->GetPP().tribute_active) {
|
||||||
const EQ::ItemInstance* inst = m_inv[i];
|
for (auto const &t: CastToClient()->GetPP().tributes) {
|
||||||
if (!inst) {
|
auto item_id = CastToClient()->LookupTributeItemID(t.tribute, t.tier);
|
||||||
continue;
|
if (item_id) {
|
||||||
}
|
const EQ::ItemInstance *inst = database.CreateItem(item_id);
|
||||||
|
if (!inst) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
AddItemBonuses(inst, b, false, true);
|
AddItemBonuses(inst, b, false, true);
|
||||||
|
safe_delete(inst);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -70,6 +70,7 @@ namespace EQ
|
|||||||
#include "../common/data_verification.h"
|
#include "../common/data_verification.h"
|
||||||
#include "../common/repositories/character_parcels_repository.h"
|
#include "../common/repositories/character_parcels_repository.h"
|
||||||
#include "../common/repositories/trader_repository.h"
|
#include "../common/repositories/trader_repository.h"
|
||||||
|
#include "../common/guild_base.h"
|
||||||
|
|
||||||
#ifdef _WINDOWS
|
#ifdef _WINDOWS
|
||||||
// since windows defines these within windef.h (which windows.h include)
|
// since windows defines these within windef.h (which windows.h include)
|
||||||
@ -967,6 +968,8 @@ public:
|
|||||||
void ChangeTributeSettings(TributeInfo_Struct *t);
|
void ChangeTributeSettings(TributeInfo_Struct *t);
|
||||||
void SendTributeTimer();
|
void SendTributeTimer();
|
||||||
void ToggleTribute(bool enabled);
|
void ToggleTribute(bool enabled);
|
||||||
|
std::map<uint32, TributeData> GetTributeList();
|
||||||
|
uint32 LookupTributeItemID(uint32 tribute_id, uint32 tier);
|
||||||
void SendPathPacket(const std::vector<FindPerson_Point> &path);
|
void SendPathPacket(const std::vector<FindPerson_Point> &path);
|
||||||
|
|
||||||
inline PTimerList &GetPTimers() { return(p_timers); }
|
inline PTimerList &GetPTimers() { return(p_timers); }
|
||||||
|
|||||||
@ -48,7 +48,7 @@ but I dont see a point to that right now, so I dont do it.
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
extern WorldServer worldserver;
|
extern WorldServer worldserver;
|
||||||
std::map<uint32, TributeData> tribute_list;
|
std::map<uint32, TributeData> tribute_list{};
|
||||||
|
|
||||||
void Client::ToggleTribute(bool enabled) {
|
void Client::ToggleTribute(bool enabled) {
|
||||||
if(enabled) {
|
if(enabled) {
|
||||||
@ -622,6 +622,26 @@ void Client::SendGuildTributeDonatePlatReply(GuildTributeDonatePlatRequest_Struc
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::map<uint32, TributeData> Client::GetTributeList() {
|
||||||
|
return tribute_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32 Client::LookupTributeItemID(uint32 tribute_id, uint32 tier)
|
||||||
|
{
|
||||||
|
if (!tribute_id && !tier) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tribute_list.contains(tribute_id)) {
|
||||||
|
auto tribute = tribute_list.find(tribute_id);
|
||||||
|
auto item_id = tribute->second.tiers[tier].tribute_item_id;
|
||||||
|
if (!item_id) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return item_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
64.37.149.6:1353 == server
|
64.37.149.6:1353 == server
|
||||||
66.90.221.245:3173 == client
|
66.90.221.245:3173 == client
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user