Jump to content
  • We need you!

    You must register to discover all the features of our community!

[How-To] Synchronize skill_proto (server-client)


Recommended Posts

8ef68592c3f5627a244b93f55d67b440.png

 

As the title says, here's how you can synchronize your skill_table from client with skill_proto from server.

[1]. First of all we've to rewrite the enum part of tokens (which is used in CPythonSkill::RegisterSkillTable), that means we change the order of index-tab-line with a new order, because ymir didn't used all columns. In that way we keep the file much cleaner and just with necessary columns (9 columns instead of 27).

Spoiler
// Not used
TABLE_TOKEN_TYPE_NAME
TABLE_TOKEN_TYPE_TYPE
TABLE_TOKEN_TYPE_LEVEL_STEP
TABLE_TOKEN_TYPE_POINT_ON
TABLE_TOKEN_TYPE_MASTER_BONUS_POLY
TABLE_TOKEN_TYPE_ATTACK_GRADE_POLY
TABLE_TOKEN_TYPE_FLAG
TABLE_TOKEN_TYPE_AFFECT_FLAG
TABLE_TOKEN_TYPE_POINT_ON2
TABLE_TOKEN_TYPE_POINT_POLY2
TABLE_TOKEN_TYPE_DURATION_POLY2
TABLE_TOKEN_TYPE_AFFECT_FLAG2
TABLE_TOKEN_TYPE_PREREQUISITE_SKILL_VNUM
TABLE_TOKEN_TYPE_PREREQUISITE_SKILL_LEVEL
TABLE_TOKEN_TYPE_SKILL_TYPE
TABLE_TOKEN_TYPE_MAX_HIT
TABLE_TOKEN_TYPE_SPLASH_AROUND_DAMAGE_ADJUST_POLY
TABLE_TOKEN_TYPE_SPLASH_RANGE

 


Srcs/Client/UserInterface/PythonSkill.h

Search for the next enum:

Spoiler
		enum ESkillTableTokenType
		{
			[...]
		};

 

Replace it with:

Spoiler
#ifdef ENABLE_SKILL_TABLE_RENEW
		enum ESkillTableTokenType
		{
			TABLE_TOKEN_TYPE_VNUM,
			TABLE_TOKEN_TYPE_MAX_LEVEL,
			TABLE_TOKEN_TYPE_LEVEL_LIMIT,
			TABLE_TOKEN_TYPE_POINT_POLY,
			TABLE_TOKEN_TYPE_SP_COST_POLY,
			TABLE_TOKEN_TYPE_DURATION_POLY,
			TABLE_TOKEN_TYPE_DURATION_SP_COST_POLY,
			TABLE_TOKEN_TYPE_COOLDOWN_POLY,
			TABLE_TOKEN_TYPE_TARGET_RANGE,
			TABLE_TOKEN_TYPE_MAX_NUM,
		};
#else
		enum ESkillTableTokenType
		{
			TABLE_TOKEN_TYPE_VNUM,
			TABLE_TOKEN_TYPE_NAME,
			TABLE_TOKEN_TYPE_TYPE,
			TABLE_TOKEN_TYPE_LEVEL_STEP,
			TABLE_TOKEN_TYPE_MAX_LEVEL,
			TABLE_TOKEN_TYPE_LEVEL_LIMIT,
			TABLE_TOKEN_TYPE_POINT_ON,
			TABLE_TOKEN_TYPE_POINT_POLY,
			TABLE_TOKEN_TYPE_SP_COST_POLY,
			TABLE_TOKEN_TYPE_DURATION_POLY,
			TABLE_TOKEN_TYPE_DURATION_SP_COST_POLY,
			TABLE_TOKEN_TYPE_COOLDOWN_POLY,
			TABLE_TOKEN_TYPE_MASTER_BONUS_POLY,
			TABLE_TOKEN_TYPE_ATTACK_GRADE_POLY,
			TABLE_TOKEN_TYPE_FLAG,
			TABLE_TOKEN_TYPE_AFFECT_FLAG,
			TABLE_TOKEN_TYPE_POINT_ON2,
			TABLE_TOKEN_TYPE_POINT_POLY2,
			TABLE_TOKEN_TYPE_DURATION_POLY2,
			TABLE_TOKEN_TYPE_AFFECT_FLAG2,
			TABLE_TOKEN_TYPE_PREREQUISITE_SKILL_VNUM,
			TABLE_TOKEN_TYPE_PREREQUISITE_SKILL_LEVEL,
			TABLE_TOKEN_TYPE_SKILL_TYPE,
			TABLE_TOKEN_TYPE_MAX_HIT,
			TABLE_TOKEN_TYPE_SPLASH_AROUND_DAMAGE_ADJUST_POLY,
			TABLE_TOKEN_TYPE_TARGET_RANGE,
			TABLE_TOKEN_TYPE_SPLASH_RANGE,
			TABLE_TOKEN_TYPE_MAX_NUM,
		};
#endif

 

Srcs/Client/UserInterface/Locale_Inc.h

Spoiler
#define ENABLE_SKILL_TABLE_RENEW // Enable synchronization skill_proto -> skill_table

 

[2]. Compile the source client again.

[3]. Open Navicat (preferably the latest versions) and do the following things:

  • Open player table
  • Export Wizard -> Mark skill_proto -> Export to ../location/skill_table.txt
  • Export format -> *.txt
  • Unmark All fields then Unselect All
  • Select available fields: -> dwVnum bMaxLevel bLevelLimit szPointPoly szSPCostPoly szDurationPoly szDuration SPCostPoly szCooldownPoly dwTargetRange
  • Unmark: Include column titles
  • Text Qualifier: None
  • Copy the skill_table.txt from Desktop to ../locale/en/

 

HOW-TO - VIDEO

 

How it looks:

 

Thanks to @Syreldar for the idea.

 

Edited by VegaS™ (see edit history)
  • Love 18
Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.