mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
274 lines
7.9 KiB
C++
274 lines
7.9 KiB
C++
/* EQEMu: Everquest Server Emulator
|
|
Copyright (C) 2001-2002 EQEMu Development Team (http://eqemulator.org)
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; version 2 of the License.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY except by those people which sell it, which
|
|
are required to give you total support for your newly bought product;
|
|
without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
#ifndef SKILLS_H
|
|
#define SKILLS_H
|
|
|
|
/*
|
|
** This is really messed up... Are we using SkillTypes as a pseudo repository? The 76th skill really throws
|
|
** things for standardization...
|
|
**
|
|
** Below is an attempt to clean this up a little...
|
|
*/
|
|
|
|
/*
|
|
** Skill use types
|
|
**
|
|
** (ref: eqstr_us.txt [05-10-2013])
|
|
*/
|
|
enum SkillUseTypes
|
|
{
|
|
/*13855*/ Skill1HBlunt = 0,
|
|
/*13856*/ Skill1HSlashing,
|
|
/*13857*/ Skill2HBlunt,
|
|
/*13858*/ Skill2HSlashing,
|
|
/*13859*/ SkillAbjuration,
|
|
/*13861*/ SkillAlteration,
|
|
/*13862*/ SkillApplyPoison,
|
|
/*13863*/ SkillArchery,
|
|
/*13864*/ SkillBackstab,
|
|
/*13866*/ SkillBindWound,
|
|
/*13867*/ SkillBash,
|
|
/*13871*/ SkillBlock,
|
|
/*13872*/ SkillBrassInstruments,
|
|
/*13874*/ SkillChanneling,
|
|
/*13875*/ SkillConjuration,
|
|
/*13876*/ SkillDefense,
|
|
/*13877*/ SkillDisarm,
|
|
/*13878*/ SkillDisarmTraps,
|
|
/*13879*/ SkillDivination,
|
|
/*13880*/ SkillDodge,
|
|
/*13881*/ SkillDoubleAttack,
|
|
/*13882*/ SkillDragonPunch,
|
|
/*13924*/ SkillTailRake = SkillDragonPunch, // Iksar Monk equivilent
|
|
/*13883*/ SkillDualWield,
|
|
/*13884*/ SkillEagleStrike,
|
|
/*13885*/ SkillEvocation,
|
|
/*13886*/ SkillFeignDeath,
|
|
/*13888*/ SkillFlyingKick,
|
|
/*13889*/ SkillForage,
|
|
/*13890*/ SkillHandtoHand,
|
|
/*13891*/ SkillHide,
|
|
/*13893*/ SkillKick,
|
|
/*13894*/ SkillMeditate,
|
|
/*13895*/ SkillMend,
|
|
/*13896*/ SkillOffense,
|
|
/*13897*/ SkillParry,
|
|
/*13899*/ SkillPickLock,
|
|
/*13900*/ Skill1HPiercing, // Changed in RoF2(05-10-2013)
|
|
/*13903*/ SkillRiposte,
|
|
/*13904*/ SkillRoundKick,
|
|
/*13905*/ SkillSafeFall,
|
|
/*13906*/ SkillSenseHeading,
|
|
/*13908*/ SkillSinging,
|
|
/*13909*/ SkillSneak,
|
|
/*13910*/ SkillSpecializeAbjure, // No idea why they truncated this one..especially when there are longer ones...
|
|
/*13911*/ SkillSpecializeAlteration,
|
|
/*13912*/ SkillSpecializeConjuration,
|
|
/*13913*/ SkillSpecializeDivination,
|
|
/*13914*/ SkillSpecializeEvocation,
|
|
/*13915*/ SkillPickPockets,
|
|
/*13916*/ SkillStringedInstruments,
|
|
/*13917*/ SkillSwimming,
|
|
/*13919*/ SkillThrowing,
|
|
/*13920*/ SkillTigerClaw,
|
|
/*13921*/ SkillTracking,
|
|
/*13923*/ SkillWindInstruments,
|
|
/*13854*/ SkillFishing,
|
|
/*13853*/ SkillMakePoison,
|
|
/*13852*/ SkillTinkering,
|
|
/*13851*/ SkillResearch,
|
|
/*13850*/ SkillAlchemy,
|
|
/*13865*/ SkillBaking,
|
|
/*13918*/ SkillTailoring,
|
|
/*13907*/ SkillSenseTraps,
|
|
/*13870*/ SkillBlacksmithing,
|
|
/*13887*/ SkillFletching,
|
|
/*13873*/ SkillBrewing,
|
|
/*13860*/ SkillAlcoholTolerance,
|
|
/*13868*/ SkillBegging,
|
|
/*13892*/ SkillJewelryMaking,
|
|
/*13901*/ SkillPottery,
|
|
/*13898*/ SkillPercussionInstruments,
|
|
/*13922*/ SkillIntimidation,
|
|
/*13869*/ SkillBerserking,
|
|
/*13902*/ SkillTaunt,
|
|
/*05837*/ SkillFrenzy, // This appears to be the only listed one not grouped with the others
|
|
/*00000*/ _EmuSkillCount // move to last position of active enumeration labels
|
|
|
|
// SoF+ specific skills
|
|
// /*03670*/ SkillRemoveTraps,
|
|
// /*13049*/ SkillTripleAttack,
|
|
|
|
// RoF2+ specific skills
|
|
// /*00789*/ Skill2HPiercing,
|
|
// /*01216*/ SkillNone, // This needs to move down as new skills are added
|
|
|
|
// Skill Counts
|
|
// /*-----*/ _SkillCount_62 = 75, // use for Ti and earlier max skill checks
|
|
// /*-----*/ _SkillCount_SoF = 77, // use for SoF thru RoF1 max skill checks
|
|
// /*-----*/ _SkillCount_RoF2 = 78, // use for RoF2 max skill checks
|
|
|
|
// Support values
|
|
// /*-----*/ _SkillServerArraySize = _SkillCount_RoF2, // Should reflect last client '_SkillCount'
|
|
|
|
// Superfluous additions to SkillUseTypes..server-use only
|
|
// /*-----*/ ExtSkillGenericTradeskill = 100
|
|
|
|
/* ([EQClientVersion] [0] - Unknown, [3] - SoF, [7] - RoF2[05-10-2013])
|
|
[Skill] [index] | [0] [1] [2] [3] [4] [5] [6] [7]
|
|
Frenzy (05837) | --- 074 074 074 074 074 074 074
|
|
Remove Traps (03670) | --- --- --- 075 075 075 075 075
|
|
Triple Attack (13049) | --- --- --- 076 076 076 076 076
|
|
2H Piercing (00789) | --- --- --- --- --- --- --- 077
|
|
*/
|
|
|
|
/*
|
|
[SkillCaps.txt] (SoF+)
|
|
a^b^c^d(^e) (^e is RoF+, but cursory glance appears to be all zeros)
|
|
|
|
a - Class
|
|
b - Skill
|
|
c - Level
|
|
d - Max Value
|
|
(e - Unknown)
|
|
*/
|
|
|
|
/*
|
|
NOTE: Disregard this until it is sorted out
|
|
|
|
I changed (tradeskill==75) to ExtSkillGenericTradeskill in tradeskills.cpp for both instances. If it's a pseudo-enumeration of
|
|
an AA ability, then use the 'ExtSkill' ('ExtendedSkill') prefix with a value >= 100. (current implementation)
|
|
|
|
We probably need to recode ALL of the skill checks to use the new Skill2HPiercing and ensure that the animation value is
|
|
properly changed in the patch files. As far as earlier clients using this new skill, it can be done, but we just need to ensure
|
|
that skill address is not inadvertently passed to the client..and we can just send an actual message for the skill-up. Use of a
|
|
command can tell the player what that particular skill value is.
|
|
|
|
Nothing on SkillTripleAttack just yet..haven't looked into its current implementation.
|
|
|
|
In addition to the above re-coding, we're probably going to need to rework the database pp blob to reserve space for the current
|
|
100-dword buffer allocation. This way, we can just add new ones without having to rework it each time.
|
|
(Wasn't done for this in particular..but, thanks Akkadius!)
|
|
|
|
-U
|
|
*/
|
|
};
|
|
|
|
// temporary until it can be sorted out...
|
|
#define HIGHEST_SKILL SkillFrenzy
|
|
|
|
// server profile does not reflect this yet..so, prefixed with 'PACKET_'
|
|
#define PACKET_SKILL_ARRAY_SIZE 100
|
|
|
|
// TODO: add string return for skill names
|
|
|
|
/*
|
|
** Old typedef enumeration
|
|
**
|
|
*/
|
|
/* Correct Skill Numbers as of 4-14-2002
|
|
typedef enum {
|
|
_1H_BLUNT = 0,
|
|
_1H_SLASHING = 1,
|
|
_2H_BLUNT = 2,
|
|
_2H_SLASHING = 3,
|
|
ABJURE = 4,
|
|
ALTERATION = 5,
|
|
APPLY_POISON = 6,
|
|
ARCHERY = 7,
|
|
BACKSTAB = 8,
|
|
BIND_WOUND = 9,
|
|
BASH = 10,
|
|
BLOCKSKILL = 11,
|
|
BRASS_INSTRUMENTS = 12,
|
|
CHANNELING = 13,
|
|
CONJURATION = 14,
|
|
DEFENSE = 15,
|
|
DISARM = 16,
|
|
DISARM_TRAPS = 17,
|
|
DIVINATION = 18,
|
|
DODGE = 19,
|
|
DOUBLE_ATTACK = 20,
|
|
DRAGON_PUNCH = 21, //aka Tail Rake
|
|
DUAL_WIELD = 22,
|
|
EAGLE_STRIKE = 23,
|
|
EVOCATION = 24,
|
|
FEIGN_DEATH = 25,
|
|
FLYING_KICK = 26,
|
|
FORAGE = 27,
|
|
HAND_TO_HAND = 28,
|
|
HIDE = 29,
|
|
KICK = 30,
|
|
MEDITATE = 31,
|
|
MEND = 32,
|
|
OFFENSE = 33,
|
|
PARRY = 34,
|
|
PICK_LOCK = 35,
|
|
PIERCING = 36,
|
|
RIPOSTE = 37,
|
|
ROUND_KICK = 38,
|
|
SAFE_FALL = 39,
|
|
SENSE_HEADING = 40,
|
|
SINGING = 41,
|
|
SNEAK = 42,
|
|
SPECIALIZE_ABJURE = 43,
|
|
SPECIALIZE_ALTERATION = 44,
|
|
SPECIALIZE_CONJURATION = 45,
|
|
SPECIALIZE_DIVINATION = 46,
|
|
SPECIALIZE_EVOCATION = 47,
|
|
PICK_POCKETS = 48,
|
|
STRINGED_INSTRUMENTS = 49,
|
|
SWIMMING = 50,
|
|
THROWING = 51,
|
|
TIGER_CLAW = 52,
|
|
TRACKING = 53,
|
|
WIND_INSTRUMENTS = 54,
|
|
FISHING = 55,
|
|
MAKE_POISON = 56,
|
|
TINKERING = 57,
|
|
RESEARCH = 58,
|
|
ALCHEMY = 59,
|
|
BAKING = 60,
|
|
TAILORING = 61,
|
|
SENSE_TRAPS = 62,
|
|
BLACKSMITHING = 63,
|
|
FLETCHING = 64,
|
|
BREWING = 65,
|
|
ALCOHOL_TOLERANCE = 66,
|
|
BEGGING = 67,
|
|
JEWELRY_MAKING = 68,
|
|
POTTERY = 69,
|
|
PERCUSSION_INSTRUMENTS = 70,
|
|
INTIMIDATION = 71,
|
|
BERSERKING = 72,
|
|
TAUNT = 73,
|
|
FRENZY = 74,
|
|
GENERIC_TRADESKILL = 75
|
|
} SkillType;
|
|
|
|
#define HIGHEST_SKILL FRENZY
|
|
*/
|
|
|
|
// for skill related helper functions
|
|
namespace EQEmu {
|
|
bool IsTradeskill(SkillUseTypes skill);
|
|
bool IsSpecializedSkill(SkillUseTypes skill);
|
|
}
|
|
|
|
#endif
|