From 667ff41ad998502738ac423ba6b8075489aa250d Mon Sep 17 00:00:00 2001 From: Henrique Date: Thu, 3 Nov 2011 20:14:56 -0200 Subject: [PATCH] skills --- modules/skills/skills.lua | 11 ++++++++--- src/otclient/core/localplayer.h | 2 +- src/otclient/net/protocolgameparse.cpp | 14 +++++++++++--- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/modules/skills/skills.lua b/modules/skills/skills.lua index 9c733d80..f41c9865 100644 --- a/modules/skills/skills.lua +++ b/modules/skills/skills.lua @@ -26,7 +26,7 @@ function Skills.create() skillPanel:addChild(levelLabel) levelLabel:setStyle('SkillLevelLabel') levelLabel:setId('skillLevelId' .. i) - levelLabel:setText('10') + levelLabel:setText('0') local percentPanel = UIWidget.create() skillPanel:addChild(percentPanel) @@ -42,8 +42,13 @@ end -- hooked events function Game.setSkill(id, level, percent) local skillPanel = skillWindow:getChildById('skillPanel') - local levelLabel = skillPanel:getChildById('skillLevel' .. id) + + local levelLabel = skillPanel:getChildById('skillLevelId' .. (id + 1)) + levelLabel:setText(level) + + --local percentLabel = skillPanel:getChildById('skillLevelId' .. id) + --levelLabel:setText(percent) end connect(Game, { onLogin = Skills.create, - onLogout = Skills.destroy }) \ No newline at end of file + onLogout = Skills.destroy }) diff --git a/src/otclient/core/localplayer.h b/src/otclient/core/localplayer.h index 412d23d8..dbece85c 100644 --- a/src/otclient/core/localplayer.h +++ b/src/otclient/core/localplayer.h @@ -40,7 +40,7 @@ public: int getSkill(Otc::Skill skill, Otc::SkillType skillType) { return m_skills[skill][skillType]; } void setStatistic(Otc::Statistic statistic, double value) { m_statistics[statistic] = value; } - uint32 getStatistic(Otc::Statistic statistic) { return m_statistics[statistic]; } + double getStatistic(Otc::Statistic statistic) { return m_statistics[statistic]; } void walk(Otc::Direction direction); diff --git a/src/otclient/net/protocolgameparse.cpp b/src/otclient/net/protocolgameparse.cpp index 58165053..ae2acfe6 100644 --- a/src/otclient/net/protocolgameparse.cpp +++ b/src/otclient/net/protocolgameparse.cpp @@ -645,9 +645,17 @@ void ProtocolGame::parsePlayerStats(InputMessage& msg) void ProtocolGame::parsePlayerSkills(InputMessage& msg) { - for(int skill = 0; skill < Otc::LastSkill; skill++) - for(int skillType = 0; skillType < Otc::LastSkillType; skillType++) - m_localPlayer->setSkill((Otc::Skill)skill, (Otc::SkillType)skillType, msg.getU8()); + for(int skill = 0; skill < Otc::LastSkill; skill++) { + int values[Otc::LastSkillType]; + for(int skillType = 0; skillType < Otc::LastSkillType; skillType++) { + values[skillType] = msg.getU8(); + m_localPlayer->setSkill((Otc::Skill)skill, (Otc::SkillType)skillType, values[skillType]); + } + + g_dispatcher.addEvent([=] { + g_lua.callGlobalField("Game", "setSkill", skill, values[Otc::SkillLevel], values[Otc::SkillPercent]); + }); + } } void ProtocolGame::parsePlayerIcons(InputMessage& msg)