Modcraft - The community dedicated to quality WoW modding!
Wrath of the Lich King Modding => Miscellaneous => Topic started by: mferrill on April 27, 2013, 06:18:36 pm
-
Okay, I'm posting this in the hopes that someone with a little more knowledge than myself might be able to help...
I've made a new Class (Necromancer) from this Tutorial....
viewtopic.php?f=26&t=1840 (http://modcraft.io/viewtopic.php?f=26&t=1840" onclick="window.open(this.href);return false;)
but it seems I'm still missing some edits that still are needed.
I patched the new class into Trinitycore -> http://pastebin.com/XVa1pUaU (http://pastebin.com/XVa1pUaU" onclick="window.open(this.href);return false;)
Edited the DBC's Lua and XML files as described...
Then I added in all DB stuff... Playercreateinfo, Playercreateinfo_items, Playercreateinfo_Spell, etc, etc...
Classlevel stats, etc, etc... It's All working good.
I just have 2 errors....
I've setup Platercreateinfo_Spells so that the new class can speak all languages.... But it cannot speak unless GM flag is on.... I can .learn languges with that flag on, but it says I know them already....
Just looking for the DBC that I should edit for that... Not sure if it is in Skillline, spell.dbc or what...
Also... All new spells that the new class learns shows up on General Tab.... not in it's catagory's tab in the Spellbook....
Any help would be appreciated![attachment=2:2aabqdqb]Necro Mancer.7z[/attachment:2aabqdqb][attachment=1:2aabqdqb]nec1.PNG[/attachment:2aabqdqb][attachment=0:2aabqdqb]necro2.PNG[/attachment:2aabqdqb]
If anyone has some info on what to do next...
-
Just a quick Update....
I figured out spells, and languages (which are spells) -> You need to look in 1 file and edit in another...
SkillLine.dbc has each spell and the requirements....
SkillRaceClassInfo.dbc is where you define it for each race/class combo.....
Example...
950,673,-1,2048,0x80,0x0,0,0x0,
950 = New Id number... Just got from the last one in file and add 1
673 = Spell Gutterspeak (You find this from SkillLine.dbc)
-1 = All Races (or use specific Racemask if you want just 1 race to have the spell)
2048-> Necromancer (class =12 -> converted to ClassMask 2048 so it can read correctly).
The rest I didn't need to change.
So now I can talk and learn spells, etc...
Still have a few bugs... Char stats not showing in character Screen. (Edited all the gt*.dbc's) to no effect there...
Anyways. If someone else gets to the point I was at... hopefully that will help you.
-
I love that you update this with a solution when no other wants to give it or maybe don't have one. Thanks! :-)
-
I love that you update this with a solution when no other wants to give it or maybe don't have one. Thanks! :-)
Hopefully more people take the example.
-
I love that you update this with a solution when no other wants to give it or maybe don't have one. Thanks! :-)
No problem. I hate looking for a solution, finding a thread that is the exact problem I have, and then at the end seeing nothing but "resolved" :D
I did learn something new from XxXGenesisXxX that I did not previously know... I just put -1 for the RaceMask. It worked fine for me, system seems to read that as ALL. But if you want say... Just Human and Orcs... you have to combine the values of the two...
Here is a converter for it, so you can get the values and easily add the two together... http://www.mathsisfun.com/binary-decima ... erter.html (http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html" onclick="window.open(this.href);return false;) -Edited -> Bad copy paste
Thanks to XxXGenesisXxX for that useful link! :D
I think I got the CharacterPanel sorted, but I lost my remote connection from work to home, and cannot test it... :( I willl update that part tomorrow I guess. (If all goes well) :D
-
I love that you update this with a solution when no other wants to give it or maybe don't have one. Thanks! :-)
Hopefully more people take the example.
^ That'd be really sweet :D
-
The thing about Humans and Orcs is called bitmasking.
Mjollna did a pretty good guide on it in detail, quite handy to know, not just for WoW modding, but general developing knowledge.
http://modcraft.io/viewtopic.php?f=26&t=846
-
The thing about Humans and Orcs is called bitmasking.
Mjollna did a pretty good guide on it in detail, quite handy to know, not just for WoW modding, but general developing knowledge.
http://modcraft.io/viewtopic.php?f=26&t=846
Ooooh.... nice it has pics for the "Slow" people... Like me! :D
-
-- Update --
Just small progress.... I can now view my char stats without a crash :D
It was clearly in the tutorial, so I feel dumb there. I had done all the work too, :D I copied at the gt*.dbc files that were modified from my work folder to my server folder, but never placed them in the patch is all.
[attachment=0:1ha64egn]Capture.PNG[/attachment:1ha64egn]
There is a little glitch there on Crit, so I"ll have to look at the files agian and see why. And if you go over 80, it will still crash. I'll play around some more, and see about fixing for 255...
-- Update --
It's only Base Stats Panel that crashes at level 255
-
-- Update --
So I fixed stats for level 255. Used an addon that was made for Druids that had the same bug, and modified it to take into account Necromancers... If you look at the lua file, you can easily see how the changes were made and use it for your own classes. --comments where I changed things.
:D
[attachment=1:2al84kq6]Capture.PNG[/attachment:2al84kq6]
And attached is an Archived file of the modified ADDON -> Place in Interface/Addons and unzip. (Only needed for characters over level 80).
[attachment=0:2al84kq6]DruidFix.7z[/attachment:2al84kq6]
-
So, now I have another question :D Of course I"ll look into it myself, but if anyone that has the knowledge and is nice enough to save me some time...
Anyone know already how to make a class Heroic, like DK's are???
I'd just prefer to have my new classes Heroic.
-
So I think I may have narrowed it down to Player.cpp
uint32 start_level = getClass() != CLASS_DEATH_KNIGHT
? sWorld->getIntConfig(CONFIG_START_PLAYER_LEVEL)
: sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL);
if (m_session->HasPermission(RBAC_PERM_USE_START_GM_LEVEL))
{
uint32 gm_level = sWorld->getIntConfig(CONFIG_START_GM_LEVEL);
if (gm_level > start_level)
start_level = gm_level;
}
Still playing around with the code, and testing...
-
What do you even mean by "heroic"? Deathknights are completely like all others.
-
What do you even mean by "heroic"? Deathknights are completely like all others.
Right, with the exception of the Start Level settings....
Setup in Worldserver.conf
# StartHeroicPlayerLevel
# Description: Staring level for heroic class characters after creation.
# Range: 1-MaxPlayerLevel
# Default: 55
StartHeroicPlayerLevel = 200
and Player.cpp
uint32 start_level = getClass() != CLASS_DEATH_KNIGHT
? sWorld->getIntConfig(CONFIG_START_PLAYER_LEVEL)
: sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL);
if (m_session->HasPermission(RBAC_PERM_USE_START_GM_LEVEL))
{
uint32 gm_level = sWorld->getIntConfig(CONFIG_START_GM_LEVEL);
if (gm_level > start_level)
start_level = gm_level;
}
I think... Could be wrong...
-
I thought a Logical OR operator would work by setting it....
uint32 start_level = getClass() != CLASS_DEATH_KNIGHT || CLASS_BATTLEMAGE
? sWorld->getIntConfig(CONFIG_START_PLAYER_LEVEL)
: sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL);
if (m_session->HasPermission(RBAC_PERM_USE_START_GM_LEVEL))
{
uint32 gm_level = sWorld->getIntConfig(CONFIG_START_GM_LEVEL);
if (gm_level > start_level)
start_level = gm_level;
}
But it just breaks things :D
-
That's because you seem not to know how programming C++ works:
getClass() != CLASS_DEATH_KNIGHT || CLASS_BATTLEMAGE
evaluates to true if
getClass() != CLASS_DEATH_KNIGHT
or
CLASS_BATTLEMAGE.
The second is always true, thus it always is true.
Use
(getClass() != CLASS_DEATH_KNIGHT && getClass() != CLASS_BATTLEMAGE)
-
That's because you seem not to know how programming C++ works:
This is true. I'm just learning. Google + a few books. C++ for Dummies (Sounded appropriate) and Jumping into C++ (Really good so far)
I have a Long way to go though. Ty for the helpful correction.
-
CharacterHandler.cpp
if (class_ == CLASS_DEATH_KNIGHT && !HasPermission(RBAC_PERM_SKIP_CHECK_CHARACTER_CREATION_HEROIC_CHARACTER))
{
// speedup check for heroic class disabled case
uint32 heroic_free_slots = sWorld->getIntConfig(CONFIG_HEROIC_CHARACTERS_PER_REALM);
if (heroic_free_slots == 0)
{
data << uint8(CHAR_CREATE_UNIQUE_CLASS_LIMIT);
SendPacket(&data);
return;
}
// speedup check for heroic class disabled case
uint32 req_level_for_heroic = sWorld->getIntConfig(CONFIG_CHARACTER_CREATING_MIN_LEVEL_FOR_HEROIC_CHARACTER);
if (req_level_for_heroic > sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
{
data << uint8(CHAR_CREATE_LEVEL_REQUIREMENT);
SendPacket(&data);
return;
}
}
-
CharacterHandler.cpp
if (class_ == CLASS_DEATH_KNIGHT && !HasPermission(RBAC_PERM_SKIP_CHECK_CHARACTER_CREATION_HEROIC_CHARACTER))
{
// speedup check for heroic class disabled case
uint32 heroic_free_slots = sWorld->getIntConfig(CONFIG_HEROIC_CHARACTERS_PER_REALM);
if (heroic_free_slots == 0)
{
data << uint8(CHAR_CREATE_UNIQUE_CLASS_LIMIT);
SendPacket(&data);
return;
}
// speedup check for heroic class disabled case
uint32 req_level_for_heroic = sWorld->getIntConfig(CONFIG_CHARACTER_CREATING_MIN_LEVEL_FOR_HEROIC_CHARACTER);
if (req_level_for_heroic > sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
{
data << uint8(CHAR_CREATE_LEVEL_REQUIREMENT);
SendPacket(&data);
return;
}
}
o.O didn't even think to check in Handlers.
-
I'm very noob in C++ but
You released in first post a code for trinity Core to use this class
How i can add it in my trinity core? D:
-
I'm very noob in C++ but
You released in first post a code for trinity Core to use this class
How i can add it in my trinity core? D:
By adding it into the core ?! Write/copy the code into your source ?! Compile after that ?!
If you don't even know how to approach programming, do some crash courses. That are basics that we shouldn't have to explain, at all.
-
I'm very noob in C++ but
You released in first post a code for trinity Core to use this class
How i can add it in my trinity core? D:
It's not hard. It is a patch.
Copy/Paste from pastebin to a notepad, and save as Necromancer.patch. Drop it into your source folder, and patch with Git.
Git Bash....
Patch -p1 > Necromancer.patch
If any rejects -> apply manually. (There should be none).
If ya get really really lost in that process, hit me up on Skype, I"m always willing to help, time permitting.
MFerrill1
-
I'm very noob in C++ but
You released in first post a code for trinity Core to use this class
How i can add it in my trinity core? D:
By adding it into the core ?! Write/copy the code into your source ?! Compile after that ?!
If you don't even know how to approach programming, do some crash courses. That are basics that we shouldn't have to explain, at all.
Already done that, i posted it because the .patch file don't worked...
I'm very noob in C++ but
You released in first post a code for trinity Core to use this class
How i can add it in my trinity core? D:
It's not hard. It is a patch.
Copy/Paste from pastebin to a notepad, and save as Necromancer.patch. Drop it into your source folder, and patch with Git.
Git Bash....
Patch -p1 > Necromancer.patch
If any rejects -> apply manually. (There should be none).
If ya get really really lost in that process, hit me up on Skype, I"m always willing to help, time permitting.
MFerrill1
Ty, already done it applying manually, because .patch file don't work :)
i'm trying do add things like languages, spells etc.
-
I'm very noob in C++ but
You released in first post a code for trinity Core to use this class
How i can add it in my trinity core? D:
By adding it into the core ?! Write/copy the code into your source ?! Compile after that ?!
If you don't even know how to approach programming, do some crash courses. That are basics that we shouldn't have to explain, at all.
Already done that, i posted it because the .patch file don't worked...
I'm very noob in C++ but
You released in first post a code for trinity Core to use this class
How i can add it in my trinity core? D:
It's not hard. It is a patch.
Copy/Paste from pastebin to a notepad, and save as Necromancer.patch. Drop it into your source folder, and patch with Git.
Git Bash....
Patch -p1 > Necromancer.patch
If any rejects -> apply manually. (There should be none).
If ya get really really lost in that process, hit me up on Skype, I"m always willing to help, time permitting.
MFerrill1
Ty, already done it applying manually, because .patch file don't work :)
i'm trying do add things like languages, spells etc.
Find the spell you want in ...
SkillLine.dbc
Place into ...
SkillRaceClassInfo.dbc for each race/class you want to have the spell
Race and Class need to be Bitmask (there is a link on page one to a converter)
http://www.pxr.dk/wowdev/wiki/index.php ... :DBC_WotLK (http://www.pxr.dk/wowdev/wiki/index.php?title=Category:DBC_WotLK" onclick="window.open(this.href);return false;)
^ for reference
-
Got a new problem... This time with Dungeon Finder.
[attachment=0:3818cb4k]Capture.PNG[/attachment:3818cb4k]
Anyone know what to edit to allow a new class to select a Role...?
I looked in srcservergameDungeonFinding
Found lots of references to Roles TANK HEALER and DAMAGE ... Nothing really specific though...
Also looked in LFG*.dbc But it doesn't seem to be in those...
Feel like I"m missing something...
-
Anyone done on this problem?
i am stuck on this spell book tab
Thanks
(http://i61.tinypic.com/2z7ekup.jpg)