Modcraft - The community dedicated to quality WoW modding!
Wrath of the Lich King Modding => Miscellaneous => Tutorials => Topic started by: akriso on January 21, 2013, 07:58:32 pm
-
I will not be wordy, all will be shown in the form of code or screenshots :D
First we need to make some changes to the core.
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 93d4796..6a62fc2 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -881,6 +881,7 @@ bool Creature::isCanTrainingOf(Player* player, bool msg) const
switch (GetCreatureTemplate()->trainer_class)
{
case CLASS_DRUID: player->PlayerTalkClass->SendGossipMenu(4913, GetGUID()); break;
+ case CLASS_TEST: player->PlayerTalkClass->SendGossipMenu(324913, GetGUID()); break; // CLASS TRAINER
case CLASS_HUNTER: player->PlayerTalkClass->SendGossipMenu(10090, GetGUID()); break;
case CLASS_MAGE: player->PlayerTalkClass->SendGossipMenu(328, GetGUID()); break;
case CLASS_PALADIN:player->PlayerTalkClass->SendGossipMenu(1635, GetGUID()); break;
warning: LF will be replaced by CRLF in src/server/game/Entities/Creature/Creature.cpp.
The file will have its original line endings in your working directory.
diff --git a/src/server/game/Entities/Item/ItemPrototype.h b/src/server/game/Entities/Item/ItemPrototype.h
index f689237..55a02a0 100644
--- a/src/server/game/Entities/Item/ItemPrototype.h
+++ b/src/server/game/Entities/Item/ItemPrototype.h
@@ -506,6 +506,7 @@ enum ItemSubclassGlyph
ITEM_SUBCLASS_GLYPH_SHAMAN = 7,
ITEM_SUBCLASS_GLYPH_MAGE = 8,
ITEM_SUBCLASS_GLYPH_WARLOCK = 9,
+ ITEM_SUBCLASS_GLYPH_TEST = 10,
ITEM_SUBCLASS_GLYPH_DRUID = 11
};
warning: LF will be replaced by CRLF in src/server/game/Entities/Item/ItemPrototype.h.
The file will have its original line endings in your working directory.
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 073fadd..438d2a7 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -5761,7 +5761,7 @@ void Player::GetDodgeFromAgility(float &diminishing, float &nondiminishing)
0.021080f, // Shaman
0.036587f, // Mage
0.024211f, // Warlock
- 0.0f, // ??
+ 0.05f, // TEST
0.056097f // Druid
};
// Crit/agility to dodge/agility coefficient multipliers; 3.2.0 increased required agility by 15%
@@ -5776,7 +5776,7 @@ void Player::GetDodgeFromAgility(float &diminishing, float &nondiminishing)
1.60f/1.15f, // Shaman
1.00f/1.15f, // Mage
0.97f/1.15f, // Warlock (?)
- 0.0f, // ??
+ 2.00f/1.15f, // TEST
2.00f/1.15f // Druid
};
@@ -11957,7 +11957,7 @@ InventoryResult Player::CanRollForItemInLFG(ItemTemplate const* proto, WorldObje
return EQUIP_ERR_CANT_DO_RIGHT_NOW;
}
- if (_class == CLASS_ROGUE || _class == CLASS_DRUID)
+ if (_class == CLASS_ROGUE || _class == CLASS_DRUID || _class == CLASS_TEST)
if (proto->SubClass != ITEM_SUBCLASS_ARMOR_LEATHER)
return EQUIP_ERR_CANT_DO_RIGHT_NOW;
warning: LF will be replaced by CRLF in src/server/game/Entities/Player/Player.cpp.
The file will have its original line endings in your working directory.
diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
index 5cf0550..4777abd 100644
--- a/src/server/game/Entities/Unit/StatSystem.cpp
+++ b/src/server/game/Entities/Unit/StatSystem.cpp
@@ -306,6 +306,9 @@ void Player::UpdateAttackPowerAndDamage(bool ranged)
case CLASS_WARRIOR:
val2 = level + GetStat(STAT_AGILITY) - 10.0f;
break;
+ case CLASS_TEST:
+ val2 = level * 1.5f + GetStat(STAT_AGILITY) - 10.0f;
+ break;
case CLASS_DRUID:
switch (GetShapeshiftForm())
{
@@ -339,6 +342,9 @@ void Player::UpdateAttackPowerAndDamage(bool ranged)
case CLASS_HUNTER:
val2 = level * 2.0f + GetStat(STAT_STRENGTH) + GetStat(STAT_AGILITY) - 20.0f;
break;
+ case CLASS_TEST:
+ val2 = level * 1.5f + GetStat(STAT_STRENGTH) + GetStat(STAT_AGILITY) - 20.0f;
+ break;
case CLASS_SHAMAN:
val2 = level * 2.0f + GetStat(STAT_STRENGTH) + GetStat(STAT_AGILITY) - 20.0f;
break;
@@ -634,7 +640,7 @@ const float m_diminishing_k[MAX_CLASSES] =
0.9880f, // Shaman
0.9830f, // Mage
0.9830f, // Warlock
- 0.0f, // ??
+ 0.9730f, // TEST
0.9720f // Druid
};
@@ -651,7 +657,7 @@ float Player::GetMissPercentageFromDefence() const
16.00f, // Shaman //?
16.00f, // Mage //?
16.00f, // Warlock //?
- 0.0f, // ??
+ 16.00f, // TEST
16.00f // Druid //?
};
@@ -678,7 +684,7 @@ void Player::UpdateParryPercentage()
145.560408f, // Shaman
0.0f, // Mage
0.0f, // Warlock
- 0.0f, // ??
+ 0.0f, // test
0.0f // Druid
};
@@ -715,7 +721,7 @@ void Player::UpdateDodgePercentage()
145.560408f, // Shaman
150.375940f, // Mage
150.375940f, // Warlock
- 0.0f, // ??
+ 150.0f, // test
116.890707f // Druid
};
warning: LF will be replaced by CRLF in src/server/game/Entities/Unit/StatSystem.cpp.
The file will have its original line endings in your working directory.
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 3025779..ff5dff3 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -3588,6 +3588,13 @@ void ObjectMgr::BuildPlayerLevelInfo(uint8 race, uint8 _class, uint8 level, Play
info->stats[STAT_INTELLECT] += (lvl > 33 ? 2: (lvl > 2 ? 1: 0));
info->stats[STAT_SPIRIT] += (lvl > 38 ? 2: (lvl > 3 ? 1: 0));
break;
+ case CLASS_TEST:
+ info->stats[STAT_STRENGTH] += (lvl > 34 ? 1: (lvl > 6 && (lvl%2) ? 1: 0));
+ info->stats[STAT_STAMINA] += (lvl > 4 ? 1: 0);
+ info->stats[STAT_AGILITY] += (lvl > 7 && !(lvl%2) ? 1: 0);
+ info->stats[STAT_INTELLECT] += (lvl > 5 ? 1: 0);
+ info->stats[STAT_SPIRIT] += (lvl > 4 ? 1: 0);
+ break;
case CLASS_DRUID:
info->stats[STAT_STRENGTH] += (lvl > 38 ? 2: (lvl > 6 && (lvl%2) ? 1: 0));
info->stats[STAT_STAMINA] += (lvl > 32 ? 2: (lvl > 4 ? 1: 0));
warning: LF will be replaced by CRLF in src/server/game/Globals/ObjectMgr.cpp.
The file will have its original line endings in your working directory.
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 19dfb9d..9d6922a 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -105,7 +105,7 @@ enum Classes
CLASS_SHAMAN = 7,
CLASS_MAGE = 8,
CLASS_WARLOCK = 9,
- //CLASS_UNK = 10,
+ CLASS_TEST = 10,
CLASS_DRUID = 11
};
@@ -116,7 +116,7 @@ enum Classes
((1<<(CLASS_WARRIOR-1))|(1<<(CLASS_PALADIN-1))|(1<<(CLASS_HUNTER-1))|
(1<<(CLASS_ROGUE-1)) |(1<<(CLASS_PRIEST-1)) |(1<<(CLASS_SHAMAN-1))|
(1<<(CLASS_MAGE-1)) |(1<<(CLASS_WARLOCK-1))|(1<<(CLASS_DRUID-1)) |
- (1<<(CLASS_DEATH_KNIGHT-1)))
+ (1<<(CLASS_TEST-1)) |(1<<(CLASS_DEATH_KNIGHT-1)))
// valid classes for creature_template.unit_class
enum UnitClass
@@ -2700,7 +2700,8 @@ enum QuestSort
QUEST_SORT_JEWELCRAFTING = 373,
QUEST_SORT_NOBLEGARDEN = 374,
QUEST_SORT_PILGRIMS_BOUNTY = 375,
- QUEST_SORT_LOVE_IS_IN_THE_AIR = 376
+ QUEST_SORT_LOVE_IS_IN_THE_AIR = 376,
+ QUEST_SORT_TEST = 400
};
inline uint8 ClassByQuestSort(int32 QuestSort)
@@ -2716,6 +2717,7 @@ inline uint8 ClassByQuestSort(int32 QuestSort)
case QUEST_SORT_HUNTER: return CLASS_HUNTER;
case QUEST_SORT_PRIEST: return CLASS_PRIEST;
case QUEST_SORT_DRUID: return CLASS_DRUID;
+ case QUEST_SORT_TEST: return CLASS_TEST;
case QUEST_SORT_DEATH_KNIGHT: return CLASS_DEATH_KNIGHT;
}
return 0;
@@ -3357,7 +3359,7 @@ enum SpellFamilyNames
SPELLFAMILY_SHAMAN = 11,
SPELLFAMILY_UNK2 = 12, // 2 spells (silence resistance)
SPELLFAMILY_POTION = 13,
- // 14 - unused
+ SPELLFAMILY_TEST = 14, // 14 - unused // TEST
SPELLFAMILY_DEATHKNIGHT = 15,
// 16 - unused
SPELLFAMILY_PET = 17
warning: LF will be replaced by CRLF in src/server/game/Miscellaneous/SharedDefines.h.
The file will have its original line endings in your working directory.
diff --git a/src/server/game/Scripting/ScriptLoader.cpp b/src/server/game/Scripting/ScriptLoader.cpp
index 3e30e95..5709504 100644
--- a/src/server/game/Scripting/ScriptLoader.cpp
+++ b/src/server/game/Scripting/ScriptLoader.cpp
@@ -27,6 +27,7 @@ void AddSC_example_commandscript();
// spells
void AddSC_deathknight_spell_scripts();
void AddSC_druid_spell_scripts();
+void AddSC_test_spell_scripts();
void AddSC_generic_spell_scripts();
void AddSC_hunter_spell_scripts();
void AddSC_mage_spell_scripts();
@@ -656,6 +657,7 @@ void AddSpellScripts()
{
AddSC_deathknight_spell_scripts();
AddSC_druid_spell_scripts();
+ AddSC_test_spell_scripts();
AddSC_generic_spell_scripts();
AddSC_hunter_spell_scripts();
AddSC_mage_spell_scripts();
warning: LF will be replaced by CRLF in src/server/game/Scripting/ScriptLoader.cpp.
The file will have its original line endings in your working directory.
diff --git a/src/server/scripts/Spells/CMakeLists.txt b/src/server/scripts/Spells/CMakeLists.txt
index 077b4cc..9b2bee3 100644
--- a/src/server/scripts/Spells/CMakeLists.txt
+++ b/src/server/scripts/Spells/CMakeLists.txt
@@ -14,6 +14,7 @@ set(scripts_STAT_SRCS
Spells/spell_hunter.cpp
Spells/spell_rogue.cpp
Spells/spell_druid.cpp
+ Spells/spell_test.cpp
Spells/spell_dk.cpp
Spells/spell_quest.cpp
Spells/spell_warrior.cpp
warning: LF will be replaced by CRLF in src/server/scripts/Spells/CMakeLists.txt.
The file will have its original line endings in your working directory.
Then proceed to the creation of sql files.
player_classlevelstats
REPLACE INTO `player_classlevelstats` (`class`, `level`, `basehp`, `basemana`) VALUES (10, 1, 46, 65);
player_levelstats
REPLACE INTO `player_levelstats` (`race`, `class`, `level`, `str`, `agi`, `sta`, `inte`, `spi`) VALUES (2, 10, 1, 23, 20, 23, 17, 24);
playercreateinfo
REPLACE INTO `playercreateinfo` (`race`, `class`, `map`, `zone`, `position_x`, `position_y`, `position_z`, `orientation`) VALUES (1, 10, 0, 12, -8949.95, -132.493, 83.5312, 0);
playercreateinfo_spell
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 81, 'Dodge');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 196, 'One-Handed Axes');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 198, 'One-Handed Maces');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 201, 'One-Handed Swords');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 203, 'Unarmed');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 204, 'Defense');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 522, 'SPELLDEFENSE (DND)');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 668, 'Language Common');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 1843, 'Disarm');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 2382, 'Generic');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 2479, 'Honorless Target');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 3050, 'Detect');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 3365, 'Opening');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 5301, 'Defensive State (DND)');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 6233, 'Closing');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 6246, 'Closing');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 6247, 'Opening');
REPLACE INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES (1, 10, 6477, 'Opening');
etc....
then make some changes in the dbc files:
CharStartOutfit.dbc,
ChrClasses.dbc,
gtOCTClassCombatRatingScalar.dbc,
SkillLine.dbc,
SkillRaceClassInfo.dbc,
SkillTiers.dbc,
TalentTab.dbc....
CharStartOutfit.dbc.csv
For example here are a couple of lines in the race for one of the new class
(http://i.imgur.com/NrVu3V8.png)
ChrClasses.dbc
(http://i.imgur.com/gUVnjmk.png)
gtOCTClassCombatRatingScalar.dbc
each class is described scalar each combat rating, ie to the number of lines divided into 11 groups, and then fill in the lines for the tenth grade for your preferred formula (you can simply use the other classes or set 1 for all tests).
SkillLine.dbc
(http://i.imgur.com/jZtrV9H.png)
SkillRaceClassInfo.dbc
(http://i.imgur.com/7cyBIQ0.png)
TalentTab.dbc
(http://i.imgur.com/JzCG73P.png)
I showed you the basic job of DBC, understand that there is not difficult to complete.
WorldStateFrame.lua
CLASS_BUTTONS = {
["WARRIOR"] = {0, 0.25, 0, 0.25},
["MAGE"] = {0.25, 0.49609375, 0, 0.25},
["ROGUE"] = {0.49609375, 0.7421875, 0, 0.25},
["DRUID"] = {0.7421875, 0.98828125, 0, 0.25},
["HUNTER"] = {0, 0.25, 0.25, 0.5},
["SHAMAN"] = {0.25, 0.49609375, 0.25, 0.5},
["PRIEST"] = {0.49609375, 0.7421875, 0.25, 0.5},
["WARLOCK"] = {0.7421875, 0.98828125, 0.25, 0.5},
["PALADIN"] = {0, 0.25, 0.5, 0.75},
["DEATHKNIGHT"] = {0.25, 0.49609375, 0.5, 0.75},
["TEST"] = {0.49609375, 0.7421875, 0.5, 0.75},
};
Constants.lua
RAID_CLASS_COLORS = {
["HUNTER"] = { r = 0.67, g = 0.83, b = 0.45 },
["WARLOCK"] = { r = 0.58, g = 0.51, b = 0.79 },
["PRIEST"] = { r = 1.0, g = 1.0, b = 1.0 },
["PALADIN"] = { r = 0.96, g = 0.55, b = 0.73 },
["MAGE"] = { r = 0.41, g = 0.8, b = 0.94 },
["ROGUE"] = { r = 1.0, g = 0.96, b = 0.41 },
["DRUID"] = { r = 1.0, g = 0.49, b = 0.04 },
["SHAMAN"] = { r = 0.0, g = 0.44, b = 0.87 },
["WARRIOR"] = { r = 0.78, g = 0.61, b = 0.43 },
["DEATHKNIGHT"] = { r = 0.77, g = 0.12 , b = 0.23 },
["TEST"] = { r = 0.0, g = 0.45, b = 0.45 },
};
CLASS_SORT_ORDER = {
"WARRIOR",
"DEATHKNIGHT",
"PALADIN",
"PRIEST",
"SHAMAN",
"DRUID",
"ROGUE",
"MAGE",
"WARLOCK",
"HUNTER",
"TEST",
};
CLASS_ICON_TCOORDS = {
["WARRIOR"] = {0, 0.25, 0, 0.25},
["MAGE"] = {0.25, 0.49609375, 0, 0.25},
["ROGUE"] = {0.49609375, 0.7421875, 0, 0.25},
["DRUID"] = {0.7421875, 0.98828125, 0, 0.25},
["HUNTER"] = {0, 0.25, 0.25, 0.5},
["SHAMAN"] = {0.25, 0.49609375, 0.25, 0.5},
["PRIEST"] = {0.49609375, 0.7421875, 0.25, 0.5},
["WARLOCK"] = {0.7421875, 0.98828125, 0.25, 0.5},
["PALADIN"] = {0, 0.25, 0.5, 0.75},
["DEATHKNIGHT"] = {0.25, .5, 0.5, .75},
["TEST"] = {0.49609375, 0.7421875, 0.5, 0.75},
};
CharacterCreate.lua
CLASS_ICON_TCOORDS = {
["WARRIOR"] = {0, 0.25, 0, 0.25},
["MAGE"] = {0.25, 0.49609375, 0, 0.25},
["ROGUE"] = {0.49609375, 0.7421875, 0, 0.25},
["DRUID"] = {0.7421875, 0.98828125, 0, 0.25},
["HUNTER"] = {0, 0.25, 0.25, 0.5},
["SHAMAN"] = {0.25, 0.49609375, 0.25, 0.5},
["PRIEST"] = {0.49609375, 0.7421875, 0.25, 0.5},
["WARLOCK"] = {0.7421875, 0.98828125, 0.25, 0.5},
["PALADIN"] = {0, 0.25, 0.5, 0.75},
["DEATHKNIGHT"] = {0.25, 0.49609375, 0.5, 0.75},
["MONK"] = {0.49609375, 0.7421875, 0.5, 0.75},
};
GlueStrings.lua
CLASS_INFO_TEST0 = " ";
CLASS_INFO_TEST1 = " ";
CLASS_INFO_TEST2 = " .";
CLASS_INFO_TEST3 = " .";
CLASS_INFO_TEST = " .";
+ Some changes in ChracterCreate.xml (you can take this file simply from the next topic, where they tried to describe a new class)
I did not do this entire work again, but you will see the result of it at the time, when I myself studied it.
(http://i.imgur.com/mDxkXrV.jpg)
(http://i.imgur.com/xbPLDGH.jpg)
(http://i.imgur.com/GUpBA6Z.jpg)
-
Magnificent, beautiful work.
-
This isfor trinitycore, isn´t it?
-
this is for TrinityCore)
-
A little bit confusing. But thanks for the work. Will help many people.
-
Nice work! Maybe using colors and titles it would be more atractive ;D
-
Thank you, now very little free time ... As soon as I'll have an hour free, I dooformlyu postrayus guidance and a closer look at the work on the necessary dbc and lua / xml files, as well as making more visual design. :ugeek:
-
Getting an error when compiling:
14>game.lib(ScriptLoader.obj) : error LNK2019: símbolo externo "void __cdecl AddSC_nigromante_spell_scripts(void)" (?AddSC_nigromante_spell_scripts@@YAXXZ) sin resolver al que se hace referencia en la función "void __cdecl AddSpellScripts(void)" (?AddSpellScripts@@YAXXZ)
Translation to english:
14>game.lib(ScriptLoader.obj) : error LNK2019: external simbol "void __cdecl AddSC_nigromante_spell_scripts(void)" (?AddSC_nigromante_spell_scripts@@YAXXZ) without resolving which refers in function "void __cdecl AddSpellScripts(void)" (?AddSpellScripts@@YAXXZ)
I applied patches manually, and all seems to be correct. May be the merge with the Mmaps branch the cause of the error? (It has no relation as i see, but i don´t know so much about C++)
Also, i get 1 ommited:
========== Generate: 15 correct, 1 incorrect, 0 updated, 1 ommited ==========
-
check-you can build a core if you have a clean source?)
-
Whein i compile a fresh one i don´t get any error:
========== Generate: 16 correct, 0 incorrect, 0 updated, 1 ommited ==========
-
you put the patch crooked, or your sources are different from mine ... Prescribe all hands with 0.tut errors can not be, if to be careful.
-
I applied the patch manually, cuz when i usd the command from git bash it gave me error :S
I´ll reapply the whole diff tomorrow.
-
just now noticed a mistake ... you have no right to create a script .... nigromante .... cpp
Make it blank or simply remove from cmake and scriptloader, I do not think you will immediately start to add new scripts to spell this class.
-
It already was in blank, but i´ll remove it from the archives.
-
once you deleted it from the folder with the source code, why did you then leave a link to the file in scriptloader.cpp and cmake.txt?)
-
(http://i.imgur.com/vi0296R.png)
-
It works, whe compiling i don´t get any error. No i´ll go for dbcs and db.
I´m really gratefull to you.
-
:ugeek:
-
Since ur saying u followed a tutorial in the main post can you please post a link to that tutorial?
-
I'm really confused about the core edits I think I have the idea for everything else doe. But git isn't recognizing my commands how would I go about manually editing this?
-
Regarding very 1st thing to do, I have no function in creature.cpp called like his, mine looks like this:
bool Creature::isCanTrainingAndResetTalentsOf(Player* player) const
{
return player->getLevel() >= 10
&& GetCreatureTemplate()->trainer_type == TRAINER_TYPE_CLASS
&& player->getClass() == GetCreatureTemplate()->trainer_class;
}
If I understand this right I don't need to add anything here so I skipped and continued. Will update info if this is needed once I finish.
Ok, so I finished adding this to core and the first change is indeed not needed. However the created character doesn't even know how to type therefore I am unable to use gm commands. Also there's no such table as playercreateinfo_spell only playercreateinfo_skills and I will look into it soon. Now it's 7 am and I'm still up so too tired for this atm.
-
Since there's no playercreateinfo_spells or so I edited this part for the actual tc database and it should look like this:
INSERT INTO `playercreateinfo_skills` (`raceMask`, `classMask`, `Skill`, `rank` , `comment`) VALUES (1, 10, 81, 0, 'Dodge');
INSERT INTO `playercreateinfo_skills` (`raceMask`, `classMask`, `Skill`, `rank` , `comment`) VALUES (1, 512, 196, 0, 'One-Handed Axes');
INSERT INTO `playercreateinfo_skills` (`raceMask`, `classMask`, `Skill`, `rank` , `comment`) VALUES (1, 512, 198, 0, 'One-Handed Maces');
INSERT INTO `playercreateinfo_skills` (`raceMask`, `classMask`, `Skill`, `rank` , `comment`) VALUES (1, 512, 201, 0, 'One-Handed Swords');
INSERT INTO `playercreateinfo_skills` (`raceMask`, `classMask`, `Skill`, `rank` , `comment`) VALUES (1, 512, 203, 0, 'Unarmed');
INSERT INTO `playercreateinfo_skills` (`raceMask`, `classMask`, `Skill`, `rank` , `comment`) VALUES (1, 512, 204, 0, 'Defense');
INSERT INTO `playercreateinfo_skills` (`raceMask`, `classMask`, `Skill`, `rank` , `comment`) VALUES (1, 512, 522, 0, 'SPELLDEFENSE (DND)');
INSERT INTO `playercreateinfo_skills` (`raceMask`, `classMask`, `Skill`, `rank` , `comment`) VALUES (1, 512, 668, 0, 'Language Common');
However that didn't do the trick for me (also looks like id of skills are off: common 668 and in tc 98). This leads me to beleive that there's some dbc editing to be done which I honestly don't understand. Most of dbc are glitchy for me using taliis dbceditor or mydbcedit I'll look into it however I'd appriciate any information as my new class can't even speak (only has a defense skill).