Jump to content

some problems with wolfman


Recommended Posts

EDIT : Here is the fix for the first 3 problems

 

For the first two, replace the function inline int RaceToJob(int race) from InstanceBase.h with this

inline int RaceToJob(int race)
{
	switch (race)
	{
	case 0:
	case 4:
		return 0;

	case 1:
	case 5:
		return 1;

	case 2:
	case 6:
		return 2;

	case 3:
	case 7:
		return 3;

	case 8:
		return 4;

	default:
		return 0;
	}

	return 0;
}

 

For the third one :

 

For skills search for something like:
case 6:
return POINT_SKILL;
And edit it to:
case 6:
case 7:
return POINT_SKILL;

In char_skill.cpp
It exist two times, you must edit it twice.

 

 

Hello guys, after trying to add wolfman to my files I have some problems with it

 

In syserr I got only this , but the files exist in that path :

0328 16:40:15851 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/reef_attack.msa) ERROR
0328 16:40:15883 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/reef_attack_1.msa) ERROR
0328 16:40:15887 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/reef_attack_2.msa) ERROR
0328 16:40:15892 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/skill/reef_attack_3.msa) ERROR

The first one : even though my level is greater than the level needed and the race is lycan , the item tooltip is red

I have the antiflag set in

 

item_lenght.h and ItemData.h

ITEM_ANTIFLAG_WOLFMAN	= (1 << 18),

uitooltip.py

	ANTI_FLAG_DICT = {
		0 : item.ITEM_ANTIFLAG_WARRIOR,
		1 : item.ITEM_ANTIFLAG_ASSASSIN,
		2 : item.ITEM_ANTIFLAG_SURA,
		3 : item.ITEM_ANTIFLAG_SHAMAN,
		4 : item.ITEM_ANTIFLAG_WOLFMAN,
	}

	flagList = (
		not item.IsAntiFlag(item.ITEM_ANTIFLAG_WARRIOR),
		not item.IsAntiFlag(item.ITEM_ANTIFLAG_ASSASSIN),
		not item.IsAntiFlag(item.ITEM_ANTIFLAG_SURA),
		not item.IsAntiFlag(item.ITEM_ANTIFLAG_SHAMAN),
		not item.IsAntiFlag(item.ITEM_ANTIFLAG_WOLFMAN))

PythonItemModule.cpp

PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_WOLFMAN",		CItemData::ITEM_ANTIFLAG_WOLFMAN);
PyModule_AddIntConstant(poModule, "ANTIFLAG_WOLFMAN",			CItemData::ITEM_ANTIFLAG_WOLFMAN);

ProtoReader.cpp and DumpProto

	string arAntiFlag[] = {"ANTI_FEMALE", "ANTI_MALE", "ANTI_MUSA", "ANTI_ASSASSIN", "ANTI_SURA", "ANTI_MUDANG",
							"ANTI_GET", "ANTI_DROP", "ANTI_SELL", "ANTI_EMPIRE_A", "ANTI_EMPIRE_B", "ANTI_EMPIRE_C",
							"ANTI_SAVE", "ANTI_GIVE", "ANTI_PKDROP", "ANTI_STACK", "ANTI_MYSHOP", "ANTI_SAFEBOX", "ANTI_WOLFMAN"};

38da68ea770016342915af90c1936385.png

 

The second one : wolfman has warrior skills

894b8f922c7c842475e8d74e5ca14e31.png

 

I have this in playersettingmodule.py

			JOB_WOLFMAN : { 
				1 : (170, 171, 172, 173, 174, 175, 0, 0, 137, 0, 138, 0, 139, 0,),
				"SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131, 141, 142,),

 

The third one : I can't add points in any wolfman skill

078435bee7212f8d173f8e7231938a28.gif

 

In syserr I get this :

SYSERR: Mar 29 04:08:40.449294 :: SkillLevelUp: Wrong skill type 7 skill vnum 170
SYSERR: Mar 29 04:08:41.328808 :: SkillLevelUp: Wrong skill type 7 skill vnum 171
SYSERR: Mar 29 04:08:42.329452 :: SkillLevelUp: Wrong skill type 7 skill vnum 172
SYSERR: Mar 29 04:08:42.930497 :: SkillLevelUp: Wrong skill type 7 skill vnum 173
SYSERR: Mar 29 04:08:43.328863 :: SkillLevelUp: Wrong skill type 7 skill vnum 174
SYSERR: Mar 29 04:08:44.49698 :: SkillLevelUp: Wrong skill type 7 skill vnum 175

I have in char_skill.cpp this

In bool CHARACTER::IsLearnableSkill(DWORD dwSkillVnum) const

if (pkSkill->dwType == 7 && GetJob() == JOB_WOLFMAN)// WOLFMAN return true; 

In bool CHARACTER::CanUseSkill(DWORD dwSkillVnum) const

		const int SKILL_COUNT = 6;
		static const DWORD SkillList[JOB_MAX_NUM][SKILL_GROUP_MAX_NUM][SKILL_COUNT] =
		{
			{ {	1,	2,	3,	4,	5,	6	}, {	16,	17,	18,	19,	20,	21	} },
			{ {	31,	32,	33,	34,	35,	36	}, {	46,	47,	48,	49,	50,	51	} },
			{ {	61,	62,	63,	64,	65,	66	}, {	76,	77,	78,	79,	80,	81	} },
			{ {	91,	92,	93,	94,	95,	96	}, {	106,    107,    108,    109,    110,    111	} },
                        { {	170,    171,    172,    173,    174,    175     },   },// WOLFMAN
		};

And I have type 7 on skill_proto

5537f33c1de6c3009cd98018b9fdc525.png

 

 

The fourth one : at woman creation page, I have one empty slot and the wolfman name shows ontop of other race names

0ba40033a3e73aa1d796051208a9f997.png

 

This is my introcreate.py : http://pastebin.com/j7PHJcdM

This is introselect.py : http://pastebin.com/sE3k5gEA

And this is createcharacterwindow.py (from locale) : http://pastebin.com/pCZgXjK7

 

And the fifth one:

If I try to run the client in debug mode and I select the wolfman character, after loading I get this error

faa777cd78268a6606d074c31a3c5d13.png

 

Here is the debug log , but I don't see anything strange here ...

 

When I try to use buff skills, my client closes instantly and I get nothing related to that in syserr

zMuOeMT.gif

 

I have RED_POSSESION and BLUE_POSSESION

In game,

affect.h

	AFFECT_RED_POSSESION = 174,
	AFFECT_BLUE_POSSESION = 175,

	AFF_RED_POSSESION,
	AFF_BLUE_POSSESION,

In binary,

InstanceBase.h

			AFFECT_BLEEDING,			    // 42
			AFFECT_RED_POSSESION,			// 43
			AFFECT_BLUE_POSSESION,			// 44

PythonCharacterModule.cpp

	PyModule_AddIntConstant(poModule, "AFFECT_RED_POSSESION",				CInstanceBase::AFFECT_RED_POSSESION);
	PyModule_AddIntConstant(poModule, "AFFECT_BLUE_POSSESION",				CInstanceBase::AFFECT_BLUE_POSSESION);

PythonPlayer.cpp

	m_kMap_dwAffectIndexToSkillIndex.insert(make_pair(int(CInstanceBase::AFFECT_RED_POSSESION), 174));
	m_kMap_dwAffectIndexToSkillIndex.insert(make_pair(int(CInstanceBase::AFFECT_BLUE_POSSESION), 175));

In client

playersettingmodule.py

def __LoadGameWolfmanEx(race, path):
	chrmgr.SelectRace(race)
	
	#General
	SetGeneralMotionsForWolfman(chr.MOTION_MODE_GENERAL, path + "general/")
	chrmgr.SetMotionRandomWeight(chr.MOTION_MODE_GENERAL, chr.MOTION_WAIT, 0, 70)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_WAIT, "wait1.msa", 30)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_COMBO_ATTACK_1, "attack1.msa", 50)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_COMBO_ATTACK_1, "attack2.msa", 50)
	
	#Combo
	chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, 6)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_1)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_1)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_1)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_1)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, COMBO_INDEX_6, chr.MOTION_COMBO_ATTACK_1)
	
	#Skill
	chrmgr.SetPathName(path + "skill/")
	for i in xrange(skill.SKILL_EFFECT_COUNT):
		END_STRING = ""
		if i != 0: END_STRING = "_%d" % (i)
		chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+1, "split_slash" + END_STRING + ".msa")
		chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+2, "wind_death" + END_STRING + ".msa")
		chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+3, "reef_attack" + END_STRING + ".msa")
		chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+4, "wreckage" + END_STRING + ".msa")
		chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+5, "red_possession" + END_STRING + ".msa")
		chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+6, "blue_possession" + END_STRING + ".msa")

	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONBLOOD, "guild_yongsinuipi.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONBLESS, "guild_yongsinuichukbok.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_BLESSARMOR, "guild_seonghwigap.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_SPPEDUP, "guild_gasokhwa.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONWRATH, "guild_yongsinuibunno.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_MAGICUP, "guild_jumunsul.msa")

	chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, 1)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
	
	#Emoticon
	emotion.RegisterEmotionAnis(path)
	
	#Claw weapon
	chrmgr.SetPathName(path + "claw/")
	chrmgr.RegisterMotionMode(chr.MOTION_MODE_CLAW)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_WAIT, "wait.msa", 50)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_WAIT, "wait1.msa", 50)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_WALK, "walk.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_RUN, "run.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_DAMAGE, "front_damage.msa", 50)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_DAMAGE, "back_damage.msa", 50)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_DAMAGE_BACK, "back_damage.msa", 50)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_DAMAGE_BACK, "back_damage.msa", 50)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_COMBO_ATTACK_1,	"combo_01.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_COMBO_ATTACK_2,	"combo_02.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_COMBO_ATTACK_3,	"combo_03.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_COMBO_ATTACK_4,	"combo_04.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_COMBO_ATTACK_5,	"combo_05.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_COMBO_ATTACK_6,	"combo_06.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_CLAW, chr.MOTION_COMBO_ATTACK_7,	"combo_07.msa")
	
	# Combo
	## Type 1
	chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_1, 4)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_1, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_4)
	## Type 2
	chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_2, 5)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_7)
	## Type 3
	chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_3, 6)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_6)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_6, chr.MOTION_COMBO_ATTACK_4)
	
	## Horse
	chrmgr.SetPathName(path + "horse/")
	chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait.msa", 90)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait1.msa", 9)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait2.msa", 1)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WALK, "walk.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_RUN, "run.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DAMAGE, "front_damage.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DAMAGE_BACK, "front_damage.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DEAD, "dead.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, HORSE_SKILL_CHARGE, "skill_charge.msa")
		
	#Horse claw
	chrmgr.SetPathName(path + "horse_claw/")
	chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE_CLAW)
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_CLAW, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_CLAW, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_CLAW, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_CLAW, HORSE_SKILL_WILDATTACK, "skill_wildattack.msa")
	chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_CLAW, HORSE_SKILL_SPLASH, "skill_splash.msa")
	chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_HORSE_CLAW, COMBO_TYPE_1, 3)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_CLAW, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_CLAW, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
	chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_CLAW, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
	
	## Bone
	chrmgr.RegisterAttachingBoneName(chr.PART_WEAPON, "equip_right_weapon")
	chrmgr.RegisterAttachingBoneName(chr.PART_WEAPON_LEFT, "equip_left_weapon")

And

	chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+42, "Bip01", "d:/ymir work/effect/hit/blow_poison/bleeding_loop.mse")
	chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+43, "Bip01", "d:/ymir work/effect/hit/blow_flame/flame_loop_w.mse")
	chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+44, "", "d:/ymir work/pc3/common/effect/gyeokgongjang_loop_w.mse")

uiaffectshower.py

			42 : ("Bleeding", "d:/ymir work/ui/skill/common/affect/poison.sub"),
			43 : ("Red Possession", "d:/ymir work/ui/skill/wolfman/red_possession_03.sub"),
			44 : ("Blue Possession", "d:/ymir work/ui/skill/wolfman/blue_possession_03.sub"),

And in db, skill_proto

INSERT INTO `player`.`skill_proto` (`dwVnum`, `szName`, `bType`, `bLevelStep`, `bMaxLevel`, `bLevelLimit`, `szPointOn`, `szPointPoly`, `szSPCostPoly`, `szDurationPoly`, `szDurationSPCostPoly`, `szCooldownPoly`, `szMasterBonusPoly`, `szAttackGradePoly`, `setFlag`, `setAffectFlag`, `szPointOn2`, `szPointPoly2`, `szDurationPoly2`, `setAffectFlag2`, `szPointOn3`, `szPointPoly3`, `szDurationPoly3`, `szGrandMasterAddSPCostPoly`, `prerequisiteSkillVnum`, `prerequisiteSkillLevel`, `eSkillType`, `iMaxHit`, `szSplashAroundDamageAdjustPoly`, `dwTargetRange`, `dwSplashRange`) VALUES ('170', '����', '7', '1', '1', '0', 'HP', '-(1.1*atk+(0.3*atk+1.5*str)*k)', '40+100*k', '', '', '15', '-(1.1*atk+(0.3*atk+1.5*str)*k)', '', 'ATTACK,USE_MELEE_DAMAGE,SPLASH', '', 'NONE', '', '', '', '', '', '', '50+130*k', '0', '0', 'MELEE', '12', '1', '0', '200');
INSERT INTO `player`.`skill_proto` (`dwVnum`, `szName`, `bType`, `bLevelStep`, `bMaxLevel`, `bLevelLimit`, `szPointOn`, `szPointPoly`, `szSPCostPoly`, `szDurationPoly`, `szDurationSPCostPoly`, `szCooldownPoly`, `szMasterBonusPoly`, `szAttackGradePoly`, `setFlag`, `setAffectFlag`, `szPointOn2`, `szPointPoly2`, `szDurationPoly2`, `setAffectFlag2`, `szPointOn3`, `szPointPoly3`, `szDurationPoly3`, `szGrandMasterAddSPCostPoly`, `prerequisiteSkillVnum`, `prerequisiteSkillLevel`, `eSkillType`, `iMaxHit`, `szSplashAroundDamageAdjustPoly`, `dwTargetRange`, `dwSplashRange`) VALUES ('171', '��dz', '7', '1', '1', '0', 'HP', '-(2*atk+(atk+dex*3+str*5+con)*k)', '40+100*k', '', '', '15', '-(2*atk+(atk+dex*3+str*5+con)*k)', '', 'ATTACK,USE_MELEE_DAMAGE,SPLASH', '', 'NONE', '', '', '', '', '', '', '50+130*k', '0', '0', 'MELEE', '12', '1', '0', '200');
INSERT INTO `player`.`skill_proto` (`dwVnum`, `szName`, `bType`, `bLevelStep`, `bMaxLevel`, `bLevelLimit`, `szPointOn`, `szPointPoly`, `szSPCostPoly`, `szDurationPoly`, `szDurationSPCostPoly`, `szCooldownPoly`, `szMasterBonusPoly`, `szAttackGradePoly`, `setFlag`, `setAffectFlag`, `szPointOn2`, `szPointPoly2`, `szDurationPoly2`, `setAffectFlag2`, `szPointOn3`, `szPointPoly3`, `szDurationPoly3`, `szGrandMasterAddSPCostPoly`, `prerequisiteSkillVnum`, `prerequisiteSkillLevel`, `eSkillType`, `iMaxHit`, `szSplashAroundDamageAdjustPoly`, `dwTargetRange`, `dwSplashRange`) VALUES ('172', '������', '7', '1', '1', '0', 'HP', '-(atk+(1.6*atk+200+dex*7+str*7)*k)', '40+100*k', '', '', '15', '-(atk+(1.6*atk+200+dex*7+str*7)*k)', '', 'ATTACK,USE_MELEE_DAMAGE,SPLASH', '', 'NONE', '', '', '', '', '', '', '50+130*k', '0', '0', 'MELEE', '12', '1', '0', '200');
INSERT INTO `player`.`skill_proto` (`dwVnum`, `szName`, `bType`, `bLevelStep`, `bMaxLevel`, `bLevelLimit`, `szPointOn`, `szPointPoly`, `szSPCostPoly`, `szDurationPoly`, `szDurationSPCostPoly`, `szCooldownPoly`, `szMasterBonusPoly`, `szAttackGradePoly`, `setFlag`, `setAffectFlag`, `szPointOn2`, `szPointPoly2`, `szDurationPoly2`, `setAffectFlag2`, `szPointOn3`, `szPointPoly3`, `szDurationPoly3`, `szGrandMasterAddSPCostPoly`, `prerequisiteSkillVnum`, `prerequisiteSkillLevel`, `eSkillType`, `iMaxHit`, `szSplashAroundDamageAdjustPoly`, `dwTargetRange`, `dwSplashRange`) VALUES ('173', '�ļ�', '7', '1', '1', '0', 'HP', '-(3*atk+(0.8*atk+str*6+dex*2+con)*k)', '40+100*k', '', '', '15', '-(3*atk+(0.8*atk+str*6+dex*2+con)*k)', '', 'ATTACK,USE_MELEE_DAMAGE', '', 'NONE', '', '', '', '', '', '', '50+130*k', '0', '0', 'MELEE', '12', '1', '0', '200');
INSERT INTO `player`.`skill_proto` (`dwVnum`, `szName`, `bType`, `bLevelStep`, `bMaxLevel`, `bLevelLimit`, `szPointOn`, `szPointPoly`, `szSPCostPoly`, `szDurationPoly`, `szDurationSPCostPoly`, `szCooldownPoly`, `szMasterBonusPoly`, `szAttackGradePoly`, `setFlag`, `setAffectFlag`, `szPointOn2`, `szPointPoly2`, `szDurationPoly2`, `setAffectFlag2`, `szPointOn3`, `szPointPoly3`, `szDurationPoly3`, `szGrandMasterAddSPCostPoly`, `prerequisiteSkillVnum`, `prerequisiteSkillLevel`, `eSkillType`, `iMaxHit`, `szSplashAroundDamageAdjustPoly`, `dwTargetRange`, `dwSplashRange`) VALUES ('174', '��������', '7', '1', '1', '0', 'ATT_GRADE', '7+(5*iq+13)*k', '20+240*k', '50+100*k', '2+23*k', '0', '7+(5*iq+13)*k', '', 'SELFONLY,TOGGLE', 'RED_POSSESION', 'DEF_GRADE', '-30*k', '50+100*k', '', '', '', '', '100+200*k', '0', '0', 'NORMAL', '1', '1', '0', '0');
INSERT INTO `player`.`skill_proto` (`dwVnum`, `szName`, `bType`, `bLevelStep`, `bMaxLevel`, `bLevelLimit`, `szPointOn`, `szPointPoly`, `szSPCostPoly`, `szDurationPoly`, `szDurationSPCostPoly`, `szCooldownPoly`, `szMasterBonusPoly`, `szAttackGradePoly`, `setFlag`, `setAffectFlag`, `szPointOn2`, `szPointPoly2`, `szDurationPoly2`, `setAffectFlag2`, `szPointOn3`, `szPointPoly3`, `szDurationPoly3`, `szGrandMasterAddSPCostPoly`, `prerequisiteSkillVnum`, `prerequisiteSkillLevel`, `eSkillType`, `iMaxHit`, `szSplashAroundDamageAdjustPoly`, `dwTargetRange`, `dwSplashRange`) VALUES ('175', 'û¶ûºùÀÇ', '7', '1', '1', '0', 'ATT_SPEED', '20*k', '20+240*k', '50+100*k', '', '63+90*k', '20*k', '', 'PARTY', 'BLUE_POSSESION', 'DODGE', '1+10*k', '50+100*k', '', '', '', '', '40+100*k', '0', '0', 'NORMAL', '1', '1', '1000', '0');

 

Kind Regards, DaNy3LL

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

  • 1 month later...
  • 5 months later...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • 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.