Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

V16 Skill Window with all functions

~FlyFF DeV~
Joined
Mar 2, 2009
Messages
579
Reaction score
113
Hi as you might all have seen (those who compiled any source) the V16 SkillTree known to be in file WndSkillInventory.cpp has many lacks of functions so I decided to release my Skill Window which has all old functions (multi kill adding, tooltip, if skills have no level they only colorize when you move mouse on them...and etc.)

So let's start:
First download the rar file from Attachments.
Next put unpacked files(WndSkillTree .cpp and .h) to _interface folder.
Now add them to neuz project.

Okey you have now whole window with all functions. Now we will make it work!

Open Stdafx.h:
And Add under this:
Code:
// Interface
#include "EditString.h"      // CStringŔ» Č®ŔĺÇŃ CEditString
#include "ToolTip.h"         // ĹřĆÁ 
#include "ITheme.h"          // ŔÎĹÍĆäŔĚ˝şŔÇ »ö»ó, ˝şĹ˛, ĆůĆ® µűŔ§ŔÇ Á¤ŔÇ Ĺ¬·ą˝ş 
#include "WndBase.h"         // Ŕ©µµŔÇ ±âş» Ŭ·ˇ˝ş, ±âŸ °˘Áľ ÄÜĆ®·Ń (ąöĆ°, ˝şĹ©·ŃąŮ µîµî) 
#include "WndControl.h"      // Ŕ©µµ °˘Áľ ÄÜĆ®·Ń (ąöĆ°, ˝şĹ©·ŃąŮ µîµî)
#include "wndEditCtrl.h"     // żˇµđĆ® ÄÜĆ®·Ń, IME, ą®ŔÚ ŔÔ·Â
#include "WndItemCtrl.h"     // Ŕ©µµ °˘Áľ ÄÜĆ®·Ń (ąöĆ°, ˝şĹ©·ŃąŮ µîµî)
#include "WndTradeCtrl.h"     // Ŕ©µµ °˘Áľ ÄÜĆ®·Ń (ąöĆ°, ˝şĹ©·ŃąŮ µîµî)
#include "WndNeuz.h"         // Neuz ÇüĹÂŔÇ Ŕ©µµ Ăâ·Â ±âş» Ŭ·ˇ˝ş 
#include "WndMessageBox.h"   // ¸Ĺ˝ĂÁö ąÚ˝ş, °ć°í, Áľ·á µîµî 
#include "WndGuideSystem.h"
#include "WndTitle.h"        // TitleŔÇ Ŕ©µµ Ŭ·ˇ˝ş (Login, Character List µîµî)
#include "WndTaskBar.h"      // Ĺ½şĹ© ąŮ Ŭ·ˇ˝ş °ü·Ă, ¸Ĺ´ş µîµî 
#include "WndField.h"        // FieldŔÇ Ŕ©µµ Ŭ·ˇ˝ş (»óĹÂ, ŔÎşĄĹ丮 µîµî)
#include "WndCommunication.h"// FieldŔÇ Ŕ©µµ Ŭ·ˇ˝ş (»óĹÂ, ŔÎşĄĹ丮 µîµî)
#include "WndOption.h"       // Option °ü·Ă 
#include "WndOptionGame.h"	 // °ÔŔÓ żÉĽÇ
#include "WndDialog.h"       // ´ëČ­  
#include "WndShop.h"         // »óÁˇ 
#include "WndMessengerSearch.h" // ¸Ţ˝ĹŔú °Ë»öâ
#include "WndManager.h"      // Ŕ©µµ ¸Ĺ´ĎŔú 
#include "WndWorld.h"        // żůµĺ Ŕ©µµ 
#include "WndGuild.h"			// ±ćµĺ Ŕ©µµ
#include "WndRankGuild.h"		// ±ćµĺ ·©Ĺ·
#include "WndRankInfo.h"
#include "WndRankWar.h"
#include "WndGuildVote.h"         // ±ćµĺĹőÇĄ Ŕ©µµ
#include "WndUpgradeBase.h"         // Ŕç·ĂŔ©µµ
This:
Code:
#include "WndSkillTree.h"
Open FuncApplet.cpp (neuz solution , or _interface folder whichever you prefer):
And add those to the code:
Go to DECLAREAPPLET and add this on beginning or end of declareapplets:
Code:
#ifdef __V16_SKILLTREE
DECLAREAPPLET( AppMain_WndSkill        , new CWndSkillTree );
#endif
And Now You have to choose if you want to replace old window or try if this one works for you(it should lolz...). I will show you how to make safe replace. Search for AddAppletFunc( AppMain_WndSkill2 and change that line to look like here:
Code:
#ifdef __V16_SKILLTREE
    AddAppletFunc( AppMain_WndSkill            , APP_SKILL4                  , _T( "WndSkill"     )    , _T( "Icon_Skill.dds"     )    , GETTEXT( TID_TIP_SKILL          ), 'K' );
#else
    AddAppletFunc( AppMain_WndSkill2       , APP_SKILL3                  , _T( "WndSkill"     )    , _T( "Icon_Skill.dds"     )    , GETTEXT( TID_TIP_SKILL          ), 'K' );
#endif
If you did everything correctly the window should open change tabs, etc.
Now it's time to make your window be able to drop icons on TaskBar,add them to action slot and save skill points.
Open WndField.cpp( still same folder and solution):
Now search for APP_SKILL3. You should find something like this:
Code:
#if __VER >= 10 // __CSC_VER9_1
        CWndSkillTreeEx* pSkillTree = (CWndSkillTreeEx*)g_WndMng.GetWndBase( APP_SKILL3 );
#else
        CWndSkillTreeEx* pSkillTree = (CWndSkillTreeEx*)g_WndMng.GetWndBase( APP_SKILL1 );
#endif //__CSC_VER9_1
Now change it to this:
Code:
#ifdef __V16_SKILLTREE
        [B][COLOR=Red]CWndSkillTree[/COLOR][/B]* pSkillTree = ([B][COLOR=Red]CWndSkillTree*[/COLOR][/B])g_WndMng.GetWndBase( [B][COLOR=Blue]APP_SKILL4 [/COLOR][/B]);
#else
        CWndSkillTreeEx* pSkillTree = (CWndSkillTreeEx*)g_WndMng.GetWndBase( APP_SKILL3 );
#endif
Those 3 things are very important if you would leave the old CWndSkillTreeEx it would say you errors and would stop compile!
Search more....
This one is really easy:
Code:
#if __VER >= 10 // __CSC_VER9_1
        CWndBase* pWndBase1 = (CWndBase*)g_WndMng.GetWndBase( [COLOR=Red]APP_SKILL3[/COLOR] );
#else
        CWndBase* pWndBase1 = (CWndBase*)g_WndMng.GetWndBase( APP_SKILL1 );
#endif //__CSC_VER9_1
Just change APP_SKILL3 to APP_SKILL4 or:
Code:
#ifdef __V16_SKILLTREE
        CWndBase* pWndBase1 = (CWndBase*)g_WndMng.GetWndBase( [COLOR=Red]APP_SKILL4[/COLOR] );
#else
        CWndBase* pWndBase1 = (CWndBase*)g_WndMng.GetWndBase( [COLOR=Blue]APP_SKILL3[/COLOR] );
#endif
Now all what you have to do is search project for all APP_SKILL3 and replace them correctly with APP_SKILL4 or with safe method I've shown before.

@EDIT: When you replace those all APP_SKILL3 your window should:

  • be in menus,
  • open when you click K button,
  • let you add skillpoints like in old skilltree(not one skill, save and next skill like in that horrible window),
  • READ THIS:it shouldn't crash your client because it's made like the old tree so it deletes device objects(these poop v16 things were adding evertytime opened about 3-4mb to process use, you can check lol),
  • you should be able to save skill points(when you add just window and click on ok button it will just open window and nothing happens :p - only when you do first part of tutorial),
  • you can drop skills on taskbar,
  • add skills to action slot by 2x clicking (It's mainly why I made this window LOL),
  • if you went to functextcmd.cpp and changed too skilllevel should work with selected skill.

ENJOY LEECHARS!!

ALL CREDITS GO TO ME & gala labs(making window).


DON'T FORGET TO LIKE IT!
 

Attachments

You must be registered for see attachments list
Last edited:
Flyff Developer
Loyal Member
Joined
Apr 6, 2009
Messages
1,873
Reaction score
384
If this works, I will be so grateful lol I'm still pretty new to C++ and I've been trying to add this stuff myself xD

edit: I just read the first post a bit more closely. Why didn't you use the same naming scheme as the other source files with this skill window? or did you make it before those were released? Cause if they had the same naming scheme, it'd be a lot easier to just update it xD (When I'm finished updating mine, I can upload my version with the naming scheme that the released v16 source files use, if people want it).
 
One word! Im Fawkin Pro!
Loyal Member
Joined
Jul 1, 2010
Messages
1,254
Reaction score
359
ShadowDragon42, if this one workes as good as your naming scheme or better, then no need for you to release yours :p but if you feel like ur code is working better, then release it if you feel like it ^^
 
Flyff Developer
Loyal Member
Joined
Apr 6, 2009
Messages
1,873
Reaction score
384
wakazaki, I didn't say anything about mine working better. merely that all the v16 source files that have been released, call it WndSkillInventory instead of WndSkillTree.
it'd merely be easier to update because you would only have to change out the .cpp and .h files for it to work (without needing to edit all the other files)
learn to read instead of assuming what you thought I meant
 
Elite Diviner
Joined
Mar 12, 2009
Messages
487
Reaction score
67
thanks :)

But do not we have to define it in the versioncommon's aswell?

And add it to neuz.vcproj?
 
Last edited:
~FlyFF DeV~
Joined
Mar 2, 2009
Messages
579
Reaction score
113
thanks :)

But do not we have to define it in the versioncommon's aswell?

And add it to neuz.vcproj?


Eh ... every experienced atleast 1 day having vs2003 should see that everywhere i used __V16_SKILLTREE so no need :p and I said in my post to add WndSkillTree.cpp and .h to project :).

@EDIT: I'm thinking if this thread is worth to be in compilation thread :D
 
Last edited by a moderator:
Not working on UnitedFlyf
Loyal Member
Joined
Apr 21, 2009
Messages
1,385
Reaction score
934
Coding a (full) v16 skill window from scratch is challenging if you've never coded before. Any experienced C++ coder should have no issues coding this in less than a day. The v16 skill window took 2-3 days for me(I was working on 3rd jobs as well) when I had no prior experience coding in C++(and it was better than most of the poop code I've seen here). This is hardly a release, it's more like a tutorial.

Also, if you can't get this working without help(and you're actually trying), I don't think your IQ is over 50. Literally, this is basic logical problem solving. I doubt your IQ is under 50, so maybe you should actually put some effort into getting something to work without begging for help.
 
~FlyFF DeV~
Joined
Mar 2, 2009
Messages
579
Reaction score
113
Coding a (full) v16 skill window from scratch is challenging if you've never coded before. Any experienced C++ coder should have no issues coding this in less than a day. The v16 skill window took 2-3 days for me(I was working on 3rd jobs as well) when I had no prior experience coding in C++(and it was better than most of the poop code I've seen here). This is hardly a release, it's more like a tutorial.

Also, if you can't get this working without help(and you're actually trying), I don't think your IQ is over 50. Literally, this is basic logical problem solving. I doubt your IQ is under 50, so maybe you should actually put some effort into getting something to work without begging for help.

yup that one was done in 4 hours and all u said there is true :)
 
Master Summoner
Joined
Oct 22, 2010
Messages
502
Reaction score
72
It still tells me there was a problem during the skill redistribution -.-
I changed all the APP_SKILL3's to APP_SKILL4's and followed all the directions -.-
 
~FlyFF DeV~
Joined
Mar 2, 2009
Messages
579
Reaction score
113
Sorry for necro posting but people cried me on pm that they have problems so there we go.
Updated main post so that if u follow all instructions u can't get an error.
 
Initiate Mage
Joined
Oct 5, 2016
Messages
4
Reaction score
0
Hi as you might all have seen (those who compiled any source) the V16 SkillTree known to be in file WndSkillInventory.cpp has many lacks of functions so I decided to release my Skill Window which has all old functions (multi kill adding, tooltip, if skills have no level they only colorize when you move mouse on them...and etc.)

So let's start:
First download the rar file from Attachments.
Next put unpacked files(WndSkillTree .cpp and .h) to _interface folder.
Now add them to neuz project.

Okey you have now whole window with all functions. Now we will make it work!

Open Stdafx.h:
And Add under this:
Code:
// Interface
#include "EditString.h"      // CStringŔ» Č®ŔĺÇŃ CEditString
#include "ToolTip.h"         // ĹřĆÁ 
#include "ITheme.h"          // ŔÎĹÍĆäŔĚ˝şŔÇ »ö»ó, ˝şĹ˛, ĆůĆ® µűŔ§ŔÇ Á¤ŔÇ Ĺ¬·ą˝ş 
#include "WndBase.h"         // Ŕ©µµŔÇ ±âş» Ŭ·ˇ˝ş, ±âŸ °˘Áľ ÄÜĆ®·Ń (ąöĆ°, ˝şĹ©·ŃąŮ µîµî) 
#include "WndControl.h"      // Ŕ©µµ °˘Áľ ÄÜĆ®·Ń (ąöĆ°, ˝şĹ©·ŃąŮ µîµî)
#include "wndEditCtrl.h"     // żˇµđĆ® ÄÜĆ®·Ń, IME, ą®ŔÚ ŔÔ·Â
#include "WndItemCtrl.h"     // Ŕ©µµ °˘Áľ ÄÜĆ®·Ń (ąöĆ°, ˝şĹ©·ŃąŮ µîµî)
#include "WndTradeCtrl.h"     // Ŕ©µµ °˘Áľ ÄÜĆ®·Ń (ąöĆ°, ˝şĹ©·ŃąŮ µîµî)
#include "WndNeuz.h"         // Neuz ÇüĹÂŔÇ Ŕ©µµ Ăâ·Â ±âş» Ŭ·ˇ˝ş 
#include "WndMessageBox.h"   // ¸Ĺ˝ĂÁö ąÚ˝ş, °ć°í, Áľ·á µîµî 
#include "WndGuideSystem.h"
#include "WndTitle.h"        // TitleŔÇ Ŕ©µµ Ŭ·ˇ˝ş (Login, Character List µîµî)
#include "WndTaskBar.h"      // Ĺ½şĹ© ąŮ Ŭ·ˇ˝ş °ü·Ă, ¸Ĺ´ş µîµî 
#include "WndField.h"        // FieldŔÇ Ŕ©µµ Ŭ·ˇ˝ş (»óĹÂ, ŔÎşĄĹ丮 µîµî)
#include "WndCommunication.h"// FieldŔÇ Ŕ©µµ Ŭ·ˇ˝ş (»óĹÂ, ŔÎşĄĹ丮 µîµî)
#include "WndOption.h"       // Option °ü·Ă 
#include "WndOptionGame.h"     // °ÔŔÓ żÉĽÇ
#include "WndDialog.h"       // ´ëČ­  
#include "WndShop.h"         // »óÁˇ 
#include "WndMessengerSearch.h" // ¸Ţ˝ĹŔú °Ë»öâ
#include "WndManager.h"      // Ŕ©µµ ¸Ĺ´ĎŔú 
#include "WndWorld.h"        // żůµĺ Ŕ©µµ 
#include "WndGuild.h"            // ±ćµĺ Ŕ©µµ
#include "WndRankGuild.h"        // ±ćµĺ ·©Ĺ·
#include "WndRankInfo.h"
#include "WndRankWar.h"
#include "WndGuildVote.h"         // ±ćµĺĹőÇĄ Ŕ©µµ
#include "WndUpgradeBase.h"         // Ŕç·ĂŔ©µµ
This:
Code:
#include "WndSkillTree.h"
Open FuncApplet.cpp (neuz solution , or _interface folder whichever you prefer):
And add those to the code:
Go to DECLAREAPPLET and add this on beginning or end of declareapplets:
Code:
#ifdef __V16_SKILLTREE
DECLAREAPPLET( AppMain_WndSkill        , new CWndSkillTree );
#endif
And Now You have to choose if you want to replace old window or try if this one works for you(it should lolz...). I will show you how to make safe replace. Search for AddAppletFunc( AppMain_WndSkill2 and change that line to look like here:
Code:
#ifdef __V16_SKILLTREE
    AddAppletFunc( AppMain_WndSkill            , APP_SKILL4                  , _T( "WndSkill"     )    , _T( "Icon_Skill.dds"     )    , GETTEXT( TID_TIP_SKILL          ), 'K' );
#else
    AddAppletFunc( AppMain_WndSkill2       , APP_SKILL3                  , _T( "WndSkill"     )    , _T( "Icon_Skill.dds"     )    , GETTEXT( TID_TIP_SKILL          ), 'K' );
#endif
If you did everything correctly the window should open change tabs, etc.
Now it's time to make your window be able to drop icons on TaskBar,add them to action slot and save skill points.
Open WndField.cpp( still same folder and solution):
Now search for APP_SKILL3. You should find something like this:
Code:
#if __VER >= 10 // __CSC_VER9_1
        CWndSkillTreeEx* pSkillTree = (CWndSkillTreeEx*)g_WndMng.GetWndBase( APP_SKILL3 );
#else
        CWndSkillTreeEx* pSkillTree = (CWndSkillTreeEx*)g_WndMng.GetWndBase( APP_SKILL1 );
#endif //__CSC_VER9_1
Now change it to this:
Code:
#ifdef __V16_SKILLTREE
        [B][COLOR=Red]CWndSkillTree[/COLOR][/B]* pSkillTree = ([B][COLOR=Red]CWndSkillTree*[/COLOR][/B])g_WndMng.GetWndBase( [B][COLOR=Blue]APP_SKILL4 [/COLOR][/B]);
#else
        CWndSkillTreeEx* pSkillTree = (CWndSkillTreeEx*)g_WndMng.GetWndBase( APP_SKILL3 );
#endif
Those 3 things are very important if you would leave the old CWndSkillTreeEx it would say you errors and would stop compile!
Search more....
This one is really easy:
Code:
#if __VER >= 10 // __CSC_VER9_1
        CWndBase* pWndBase1 = (CWndBase*)g_WndMng.GetWndBase( [COLOR=Red]APP_SKILL3[/COLOR] );
#else
        CWndBase* pWndBase1 = (CWndBase*)g_WndMng.GetWndBase( APP_SKILL1 );
#endif //__CSC_VER9_1
Just change APP_SKILL3 to APP_SKILL4 or:
Code:
#ifdef __V16_SKILLTREE
        CWndBase* pWndBase1 = (CWndBase*)g_WndMng.GetWndBase( [COLOR=Red]APP_SKILL4[/COLOR] );
#else
        CWndBase* pWndBase1 = (CWndBase*)g_WndMng.GetWndBase( [COLOR=Blue]APP_SKILL3[/COLOR] );
#endif
Now all what you have to do is search project for all APP_SKILL3 and replace them correctly with APP_SKILL4 or with safe method I've shown before.

@EDIT: When you replace those all APP_SKILL3 your window should:

  • be in menus,
  • open when you click K button,
  • let you add skillpoints like in old skilltree(not one skill, save and next skill like in that horrible window),
  • READ THIS:it shouldn't crash your client because it's made like the old tree so it deletes device objects(these poop v16 things were adding evertytime opened about 3-4mb to process use, you can check lol),
  • you should be able to save skill points(when you add just window and click on ok button it will just open window and nothing happens :p - only when you do first part of tutorial),
  • you can drop skills on taskbar,
  • add skills to action slot by 2x clicking (It's mainly why I made this window LOL),
  • if you went to functextcmd.cpp and changed too skilllevel should work with selected skill.

ENJOY LEECHARS!!

ALL CREDITS GO TO ME & gala labs(making window).


DON'T FORGET TO LIKE IT!



is this adding for a third job class ??
 
Back
Top