From fc33a10ec07e5db61aa366e54c0d5ec2a6526e73 Mon Sep 17 00:00:00 2001 From: Natedog2012 Date: Mon, 21 Dec 2015 07:36:14 -0800 Subject: [PATCH] Change GetSkill to use SkillModMax for clients --- zone/bonuses.cpp | 1 + zone/client.h | 2 +- zone/common.h | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/zone/bonuses.cpp b/zone/bonuses.cpp index 3aa9cc4a1..f8edee26d 100644 --- a/zone/bonuses.cpp +++ b/zone/bonuses.cpp @@ -490,6 +490,7 @@ void Client::AddItemBonuses(const ItemInst *inst, StatBonuses* newbon, bool isAu (item->SkillModValue < 0 && newbon->skillmod[item->SkillModType] > item->SkillModValue)) { newbon->skillmod[item->SkillModType] = item->SkillModValue; + newbon->skillmodmax[item->SkillModType] = item->SkillModMax; } } diff --git a/zone/client.h b/zone/client.h index b5d3728e1..6db22c5b0 100644 --- a/zone/client.h +++ b/zone/client.h @@ -679,7 +679,7 @@ public: void IncreaseSkill(int skill_id, int value = 1) { if (skill_id <= HIGHEST_SKILL) { m_pp.skills[skill_id] += value; } } void IncreaseLanguageSkill(int skill_id, int value = 1); - virtual uint16 GetSkill(SkillUseTypes skill_id) const { if (skill_id <= HIGHEST_SKILL) { return((itembonuses.skillmod[skill_id] > 0) ? m_pp.skills[skill_id] * (100 + itembonuses.skillmod[skill_id]) / 100 : m_pp.skills[skill_id]); } return 0; } + virtual uint16 GetSkill(SkillUseTypes skill_id) const {if (skill_id <= HIGHEST_SKILL) {return(itembonuses.skillmod[skill_id] > 0 ? (itembonuses.skillmodmax[skill_id] > 0 ? std::min(m_pp.skills[skill_id] + itembonuses.skillmodmax[skill_id], m_pp.skills[skill_id] * (100 + itembonuses.skillmod[skill_id]) / 100) : m_pp.skills[skill_id] * (100 + itembonuses.skillmod[skill_id]) / 100) : m_pp.skills[skill_id]);} return 0;} uint32 GetRawSkill(SkillUseTypes skill_id) const { if (skill_id <= HIGHEST_SKILL) { return(m_pp.skills[skill_id]); } return 0; } bool HasSkill(SkillUseTypes skill_id) const; bool CanHaveSkill(SkillUseTypes skill_id) const; diff --git a/zone/common.h b/zone/common.h index a637e94bd..48749dbc3 100644 --- a/zone/common.h +++ b/zone/common.h @@ -278,6 +278,7 @@ struct StatBonuses { float AggroRange; // when calculate just replace original value with this float AssistRange; int32 skillmod[HIGHEST_SKILL+1]; + int32 skillmodmax[HIGHEST_SKILL+1]; int effective_casting_level; int reflect_chance; // chance to reflect incoming spell uint32 singingMod;