mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 06:21:28 +00:00
Update to #myskills to show proper 'Piercing' skill - 1HPiercing will still show if there is a value..but, will not be available for use if your class doesn't support it.
This commit is contained in:
parent
e2e1298523
commit
87d92fe809
@ -106,3 +106,89 @@ bool EQEmu::IsBardInstrumentSkill(SkillUseTypes skill)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
const std::map<SkillUseTypes, std::string>& EQEmu::GetSkillUseTypesMap()
|
||||
{
|
||||
static const std::map<SkillUseTypes, std::string> skill_use_types_map = {
|
||||
{ Skill1HBlunt, "1H Blunt" },
|
||||
{ Skill1HSlashing, "1H Slashing" },
|
||||
{ Skill2HBlunt, "2H Blunt" },
|
||||
{ Skill2HSlashing, "2H Slashing" },
|
||||
{ SkillAbjuration, "Abjuration" },
|
||||
{ SkillAlteration, "Alteration" },
|
||||
{ SkillApplyPoison, "Apply Poison" },
|
||||
{ SkillArchery, "Archery" },
|
||||
{ SkillBackstab, "Backstab" },
|
||||
{ SkillBindWound, "Bind Wound" },
|
||||
{ SkillBash, "Bash" },
|
||||
{ SkillBlock, "Block" },
|
||||
{ SkillBrassInstruments, "Brass Instruments" },
|
||||
{ SkillChanneling, "Channeling" },
|
||||
{ SkillConjuration, "Conjuration" },
|
||||
{ SkillDefense, "Defense" },
|
||||
{ SkillDisarm, "Disarm" },
|
||||
{ SkillDisarmTraps, "Disarm Traps" },
|
||||
{ SkillDivination, "Divination" },
|
||||
{ SkillDodge, "Dodge" },
|
||||
{ SkillDoubleAttack, "Double Attack" },
|
||||
{ SkillDragonPunch, "Dragon Punch" },
|
||||
{ SkillDualWield, "Dual Wield" },
|
||||
{ SkillEagleStrike, "Eagle Strike" },
|
||||
{ SkillEvocation, "Evocation" },
|
||||
{ SkillFeignDeath, "Feign Death" },
|
||||
{ SkillFlyingKick, "Flying Kick" },
|
||||
{ SkillForage, "Forage" },
|
||||
{ SkillHandtoHand, "Hand to Hand" },
|
||||
{ SkillHide, "Hide" },
|
||||
{ SkillKick, "Kick" },
|
||||
{ SkillMeditate, "Meditate" },
|
||||
{ SkillMend, "Mend" },
|
||||
{ SkillOffense, "Offense" },
|
||||
{ SkillParry, "Parry" },
|
||||
{ SkillPickLock, "Pick Lock" },
|
||||
{ Skill1HPiercing, "1H Piercing" },
|
||||
{ SkillRiposte, "Riposte" },
|
||||
{ SkillRoundKick, "Round Kick" },
|
||||
{ SkillSafeFall, "Safe Fall" },
|
||||
{ SkillSenseHeading, "Sense Heading" },
|
||||
{ SkillSinging, "Singing" },
|
||||
{ SkillSneak, "Sneak" },
|
||||
{ SkillSpecializeAbjure, "Specialize Abjuration" },
|
||||
{ SkillSpecializeAlteration, "Specialize Alteration" },
|
||||
{ SkillSpecializeConjuration, "Specialize Conjuration" },
|
||||
{ SkillSpecializeDivination, "Specialize Divination" },
|
||||
{ SkillSpecializeEvocation, "Specialize Evocation" },
|
||||
{ SkillPickPockets, "Pick Pockets" },
|
||||
{ SkillStringedInstruments, "Stringed Instruments" },
|
||||
{ SkillSwimming, "Swimming" },
|
||||
{ SkillThrowing, "Throwing" },
|
||||
{ SkillTigerClaw, "Tiger Claw" },
|
||||
{ SkillTracking, "Tracking" },
|
||||
{ SkillWindInstruments, "Wind Instruments" },
|
||||
{ SkillFishing, "Fishing" },
|
||||
{ SkillMakePoison, "Make Poison" },
|
||||
{ SkillTinkering, "Tinkering" },
|
||||
{ SkillResearch, "Research" },
|
||||
{ SkillAlchemy, "Alchemy" },
|
||||
{ SkillBaking, "Baking" },
|
||||
{ SkillTailoring, "Tailoring" },
|
||||
{ SkillSenseTraps, "Sense Traps" },
|
||||
{ SkillBlacksmithing, "Blacksmithing" },
|
||||
{ SkillFletching, "Fletching" },
|
||||
{ SkillBrewing, "Brewing" },
|
||||
{ SkillAlcoholTolerance, "Alcohol Tolerance" },
|
||||
{ SkillBegging, "Begging" },
|
||||
{ SkillJewelryMaking, "Jewelry Making" },
|
||||
{ SkillPottery, "Pottery" },
|
||||
{ SkillPercussionInstruments, "Percussion Instruments" },
|
||||
{ SkillIntimidation, "Intimidation" },
|
||||
{ SkillBerserking, "Berserking" },
|
||||
{ SkillTaunt, "Taunt" },
|
||||
{ SkillFrenzy, "Frenzy" },
|
||||
{ SkillRemoveTraps, "Remove Traps" },
|
||||
{ SkillTripleAttack, "Triple Attack" },
|
||||
{ Skill2HPiercing, "2H Piercing" }
|
||||
};
|
||||
|
||||
return skill_use_types_map;
|
||||
}
|
||||
|
||||
@ -18,6 +18,8 @@
|
||||
#ifndef SKILLS_H
|
||||
#define SKILLS_H
|
||||
|
||||
#include <map>
|
||||
|
||||
/*
|
||||
** This is really messed up... Are we using SkillTypes as a pseudo repository? The 76th skill really throws
|
||||
** things for standardization...
|
||||
@ -273,6 +275,8 @@ namespace EQEmu {
|
||||
bool IsSpecializedSkill(SkillUseTypes skill);
|
||||
float GetSkillMeleePushForce(SkillUseTypes skill);
|
||||
bool IsBardInstrumentSkill(SkillUseTypes skill);
|
||||
|
||||
const std::map<SkillUseTypes, std::string>& GetSkillUseTypesMap();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@ -4950,36 +4950,27 @@ void Client::ShowSkillsWindow()
|
||||
{
|
||||
const char *WindowTitle = "Skills";
|
||||
std::string WindowText;
|
||||
// using a map for easy alphabetizing of the skills list
|
||||
std::map<std::string, SkillUseTypes> Skills;
|
||||
std::map<std::string, SkillUseTypes>::iterator it;
|
||||
std::map<SkillUseTypes, std::string> Skills = EQEmu::GetSkillUseTypesMap();
|
||||
|
||||
// this list of names must keep the same order as that in common/skills.h
|
||||
const char* SkillName[] = {"1H Blunt","1H Slashing","2H Blunt","2H Slashing","Abjuration","Alteration","Apply Poison","Archery",
|
||||
"Backstab","Bind Wound","Bash","Block","Brass Instruments","Channeling","Conjuration","Defense","Disarm","Disarm Traps","Divination",
|
||||
"Dodge","Double Attack","Dragon Punch","Dual Wield","Eagle Strike","Evocation","Feign Death","Flying Kick","Forage","Hand to Hand",
|
||||
"Hide","Kick","Meditate","Mend","Offense","Parry","Pick Lock","1H Piercing","Ripost","Round Kick","Safe Fall","Sense Heading",
|
||||
"Singing","Sneak","Specialize Abjuration","Specialize Alteration","Specialize Conjuration","Specialize Divination","Specialize Evocation","Pick Pockets",
|
||||
"Stringed Instruments","Swimming","Throwing","Tiger Claw","Tracking","Wind Instruments","Fishing","Make Poison","Tinkering","Research",
|
||||
"Alchemy","Baking","Tailoring","Sense Traps","Blacksmithing","Fletching","Brewing","Alcohol Tolerance","Begging","Jewelry Making",
|
||||
"Pottery","Percussion Instruments","Intimidation","Berserking","Taunt","Frenzy","Remove Traps","Triple Attack","2H Piercing"};
|
||||
for(int i = 0; i <= (int)HIGHEST_SKILL; i++)
|
||||
Skills[SkillName[i]] = (SkillUseTypes)i;
|
||||
if (GetClientVersion() < ClientVersion::RoF2)
|
||||
Skills[Skill1HPiercing] = "Piercing";
|
||||
|
||||
// print out all available skills
|
||||
for(it = Skills.begin(); it != Skills.end(); ++it) {
|
||||
if(GetSkill(it->second) > 0 || MaxSkill(it->second) > 0) {
|
||||
WindowText += it->first;
|
||||
// line up the values
|
||||
for (int j = 0; j < EmuConstants::ITEM_COMMON_SIZE; j++)
|
||||
WindowText += " ";
|
||||
WindowText += itoa(this->GetSkill(it->second));
|
||||
if (MaxSkill(it->second) > 0) {
|
||||
WindowText += "/";
|
||||
WindowText += itoa(this->GetMaxSkillAfterSpecializationRules(it->second,this->MaxSkill(it->second)));
|
||||
}
|
||||
WindowText += "<br>";
|
||||
for (auto skills_iter : Skills) {
|
||||
if (skills_iter.first == Skill2HPiercing && GetClientVersion() < ClientVersion::RoF2)
|
||||
continue;
|
||||
if (!GetSkill(skills_iter.first) && !MaxSkill(skills_iter.first))
|
||||
continue;
|
||||
|
||||
WindowText += skills_iter.second;
|
||||
// line up the values
|
||||
WindowText += " ";
|
||||
WindowText += itoa(this->GetSkill(skills_iter.first));
|
||||
if (MaxSkill(skills_iter.first) > 0) {
|
||||
WindowText += "/";
|
||||
WindowText += itoa(this->GetMaxSkillAfterSpecializationRules(skills_iter.first, this->MaxSkill(skills_iter.first)));
|
||||
}
|
||||
WindowText += "<br>";
|
||||
}
|
||||
this->SendPopupToClient(WindowTitle, WindowText.c_str());
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user