Hi, has anyone gotten a dexterity problem?
I tried to solve the problem and found a solution in the AttackSpeed and MagicSpeed settings.
PHP Code:
void SetAttackSpeed()
{
float AttackSpeed1 = (CharacterAttribute->AttackSpeed/15) * 0.004f; // ±â»ç, ŔϹݰř°Ý
if (GetBaseClass(CharacterAttribute->Class) == CLASS_KNIGHT)
{
AttackSpeed1 = (CharacterAttribute->AttackSpeed/15) * 0.008f;
}
float MagicSpeed1 = (CharacterAttribute->MagicSpeed/15) * 0.004f; // żäÁ¤
float MagicSpeed2 = (CharacterAttribute->MagicSpeed/15) * 0.002f; // ąý»ç
float RageAttackSpeed = (CharacterAttribute->AttackSpeed/15) * 0.01f;
if (GetBaseClass(CharacterAttribute->Class) == CLASS_WIZARD)
{
MagicSpeed2 = (CharacterAttribute->MagicSpeed/15) * 0.002f; // ąý»ç
}
else if (GetBaseClass(CharacterAttribute->Class) == CLASS_SUMMONER)
{
MagicSpeed2 = (CharacterAttribute->MagicSpeed/15) * 0.02f; // ąý»ç
}
#ifndef _VS2008PORTING // #ifndef
int i;
#endif // _VS2008PORTING
// ÁÖ¸Ô°ř°
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_FIST].PlaySpeed = 0.6f + AttackSpeed1;
// ŔϹݰř°Ý
#ifdef _VS2008PORTING
for(int i=PLAYER_ATTACK_SWORD_RIGHT1; i<=PLAYER_ATTACK_RIDE_CROSSBOW; i++)
#else // _VS2008PORTING
for(i=PLAYER_ATTACK_SWORD_RIGHT1; i<=PLAYER_ATTACK_RIDE_CROSSBOW; i++)
#endif // _VS2008PORTING
{
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.25f + AttackSpeed1;
}
//˝şĹł°ř°Ý
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD1].PlaySpeed = 0.30f + AttackSpeed1; // ł»·ÁÂď±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD2].PlaySpeed = 0.30f + AttackSpeed1; // Â±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD3].PlaySpeed = 0.27f + AttackSpeed1; // żĂ·Áġ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD4].PlaySpeed = 0.30f + AttackSpeed1; // µą·Áġ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD5].PlaySpeed = 0.24f + AttackSpeed1; // şŁ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL ].PlaySpeed = 0.24f + AttackSpeed1; // ȸżŔ¸®şŁ±â
#ifdef YDG_ADD_SKILL_RIDING_ANIMATIONS
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL_UNI ].PlaySpeed = 0.24f + AttackSpeed1;// ȸżŔ¸®şŁ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL_DINO ].PlaySpeed = 0.24f + AttackSpeed1;// ȸżŔ¸®şŁ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL_FENRIR].PlaySpeed = 0.24f + AttackSpeed1;// ȸżŔ¸®şŁ±â
#endif // YDG_ADD_SKILL_RIDING_ANIMATIONS
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_ONETOONE].PlaySpeed = 0.25f + AttackSpeed1; // şí·Îżě
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SPEAR].PlaySpeed = 0.30f + AttackSpeed1; // âÂ±â
// Ĺ» °Í Ĺş »óĹÂ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_RIDER].PlaySpeed = 0.3f + AttackSpeed1; // ˝şĹĎ, ˝şĹĎÁ¦°Ĺ, Ĺő¸í, Ĺő¸íÇŘÁ¦, ¸¶łŞÁő°ˇ, ş¸Á¶¸¶ąý ŔĎ˝ĂÁ¦°Ĺ, ·ąŔ̵彸
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_RIDER_FLY].PlaySpeed = 0.3f + AttackSpeed1; // ˝şĹĎ, ˝şĹĎÁ¦°Ĺ, Ĺő¸í, Ĺő¸íÇŘÁ¦, ¸¶łŞÁő°ˇ, ş¸Á¶¸¶ąý ŔĎ˝ĂÁ¦°Ĺ, ·ąŔ̵彸
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_TWO_HAND_SWORD_TWO].PlaySpeed = 0.25f + AttackSpeed1; // ĆÄżö˝˝·ˇ˝¬
//Ȱ°ř°Ý
#ifdef _VS2008PORTING
for(int i=PLAYER_ATTACK_BOW;i<=PLAYER_ATTACK_FLY_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
for(int i=PLAYER_ATTACK_RIDE_BOW;i<=PLAYER_ATTACK_RIDE_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
#else // _VS2008PORTING
for(i=PLAYER_ATTACK_BOW;i<=PLAYER_ATTACK_FLY_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
for(i=PLAYER_ATTACK_RIDE_BOW;i<=PLAYER_ATTACK_RIDE_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
#endif // _VS2008PORTING
//żäÁ¤¸¶ąý
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_ELF1].PlaySpeed = 0.25f + MagicSpeed1;
//ŔϹݸ¶ąý
#ifdef _VS2008PORTING
for(int i=PLAYER_SKILL_HAND1; i<=PLAYER_SKILL_WEAPON2; i++)
#else // _VS2008PORTING
for(i=PLAYER_SKILL_HAND1; i<=PLAYER_SKILL_WEAPON2; i++)
#endif // _VS2008PORTING
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.29f + MagicSpeed2;
//±âŸ¸¶ąý
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_TELEPORT].PlaySpeed = 0.30f + MagicSpeed2; // Ľř°ŁŔ̵ż
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_FLASH ].PlaySpeed = 0.40f + MagicSpeed2; // ľĆÄíľĆÇĂ·ˇ˝¬
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_INFERNO ].PlaySpeed = 0.60f + MagicSpeed2; // ŔÎĆ丣łë
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HELL ].PlaySpeed = 0.50f + MagicSpeed2; // ÇďĆÄŔĚľî
Models[MODEL_PLAYER].Actions[PLAYER_RIDE_SKILL ].PlaySpeed = 0.30f + MagicSpeed2; // Ĺ» °Í Ĺş »óĹÂżˇĽ ľ˛´Â ˝şĹł
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HELL_BEGIN].PlaySpeed = 0.50f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_STRIKE].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_STRIKE].PlaySpeed = 0.2f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_HORSE_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_ATTACK_FLASH].PlaySpeed = 0.40f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_ATTACK_MAGIC].PlaySpeed = 0.3f + MagicSpeed2;
//^ Ć渱 °řĽÓ °ü·Ă(Áßżä : °ř°Ý ĽÓµµżÍ °ü·Ă)
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_STRIKE].PlaySpeed = 0.2f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_FLASH].PlaySpeed = 0.40f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_TWO_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_MAGIC].PlaySpeed = 0.37f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_CROSSBOW].PlaySpeed = 0.30f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_SPEAR].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_ONE_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_BOW].PlaySpeed = 0.30f + AttackSpeed1;
// Ȱ·Î ÇĎ´Ă·Î ÇâÇĎ´Â °ř°Ý
#ifdef _VS2008PORTING
for ( int i=PLAYER_ATTACK_BOW_UP; i<=PLAYER_ATTACK_RIDE_CROSSBOW_UP; ++i )
#else // _VS2008PORTING
for ( i=PLAYER_ATTACK_BOW_UP; i<=PLAYER_ATTACK_RIDE_CROSSBOW_UP; ++i )
#endif // _VS2008PORTING
{
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
}
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_ONE_FLASH].PlaySpeed = 0.4f + AttackSpeed1; // ±â¸¶°Ë ŔĎĽ¶°ř°Ý
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RUSH].PlaySpeed = 0.3f + AttackSpeed1; // ±â»ç µą°Ý ˝şĹł.
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_DEATH_CANNON].PlaySpeed = 0.2f + AttackSpeed1;
// ˝˝¸ł
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP].PlaySpeed = 0.3f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP_UNI].PlaySpeed = 0.3f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP_DINO].PlaySpeed = 0.3f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP_FENRIR].PlaySpeed = 0.3f + MagicSpeed2;
// ¶óŔĚĆ®´× żŔşę
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB].PlaySpeed = 0.4f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB_UNI].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB_DINO].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB_FENRIR].PlaySpeed = 0.25f + MagicSpeed2;
// ĂĽŔζóŔĚĆ®´×
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING_UNI].PlaySpeed = 0.15f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING_DINO].PlaySpeed = 0.15f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING_FENRIR].PlaySpeed = 0.15f + MagicSpeed2;
// µĺ·ąŔζóŔĚÇÁ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE_UNI].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE_DINO].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE_FENRIR].PlaySpeed = 0.25f + MagicSpeed2;
#ifdef YDG_ADD_SKILL_GIGANTIC_STORM
// ±â°ŁĆ˝˝şĹč
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM].PlaySpeed = 0.55f + MagicSpeed1;
// ÇÁ·ąŔÓ˝şĆ®¶óŔĚĹ©
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_FLAMESTRIKE].PlaySpeed = 0.69f + MagicSpeed2;
#endif // YDG_ADD_SKILL_GIGANTIC_STORM
#ifdef YDG_ADD_SKILL_RIDING_ANIMATIONS
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM_UNI].PlaySpeed = 0.55f + MagicSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM_DINO].PlaySpeed = 0.55f + MagicSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM_FENRIR].PlaySpeed = 0.55f + MagicSpeed1;
#endif // YDG_ADD_SKILL_RIDING_ANIMATIONS
#ifdef YDG_ADD_SKILL_LIGHTNING_SHOCK
// ¶óŔĚĆ®´×ĽîĹ©
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_SHOCK].PlaySpeed = 0.35f + MagicSpeed2;
#endif // YDG_ADD_SKILL_LIGHTNING_SHOCK
// ĽĹ¸Ő
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON].PlaySpeed = 0.25f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON_UNI].PlaySpeed = 0.25f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON_DINO].PlaySpeed = 0.25f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON_FENRIR].PlaySpeed = 0.25f;
#ifdef CSK_ADD_SKILL_BLOWOFDESTRUCTION
// Ćı«ŔÇ ŔϰÝ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_BLOW_OF_DESTRUCTION].PlaySpeed = 0.3f;
#endif // CSK_ADD_SKILL_BLOWOFDESTRUCTION
#ifdef PJH_SEASON4_SPRITE_NEW_SKILL_RECOVER
// ȸşą
Models[MODEL_PLAYER].Actions[PLAYER_RECOVER_SKILL].PlaySpeed = 0.33f;
#endif //PJH_SEASON4_SPRITE_NEW_SKILL_RECOVER
#ifdef KJH_ADD_SKILL_SWELL_OF_MAGICPOWER // ¸¶·ÂÁő´ë
// ¸¶·ÂÁő´ë
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SWELL_OF_MP].PlaySpeed = 0.2f;
#endif // KJH_ADD_SKILL_SWELL_OF_MAGICPOWER
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_FURY_STRIKE].PlaySpeed = 0.38f; // şĐłëŔÇŔϰÝ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_VITALITY].PlaySpeed = 0.34f; // ˝şŔٶóŔĚÇÁ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HELL_START].PlaySpeed = 0.30f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_TELEPORT].PlaySpeed = 0.28f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_TELEPORT].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_DARKHORSE].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_TELEPORT].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_REMOVAL].PlaySpeed = 0.28f;
#ifdef WORLDCUP_ADD
Models[MODEL_PLAYER].Actions[PLAYER_KOREA_HANDCLAP].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_POINT_DANCE].PlaySpeed = 0.4f;
#endif // WORLDCUP_ADD
#ifdef PBG_ADD_NEWCHAR_MONK_SKILL
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_THRUST].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_STAMP].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIANTSWING].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DARKSIDE_READY].PlaySpeed = 0.3f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DARKSIDE_ATTACK].PlaySpeed = 0.3f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAGONKICK].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAGONLORE].PlaySpeed = 0.3f+RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_ATT_UP_OURFORCES].PlaySpeed = 0.35f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HP_UP_OURFORCES].PlaySpeed = 0.35f;
Models[MODEL_PLAYER].Actions[PLAYER_RAGE_FENRIR_ATTACK_RIGHT].PlaySpeed = 0.25f + RageAttackSpeed;
#endif //PBG_ADD_NEWCHAR_MONK_SKILL
}
This setting reduces the attack speed without compromising the animation speed.
The result is a debugged attack speed for all spells, leaving the original Player.bmd.
But beware! Players are not used to this speed.
It beautifully optimizes PvP and the speed of gaining experience.
If you have someone a better repair proposal, please. I'm listening.
To provide you with a complete fix for this problem.
ZzzCharacter.cpp
PHP Code:
void SetAttackSpeed()
{
float AttackSpeed1 = (CharacterAttribute->AttackSpeed) * 0.004f; // ±â»ç, ŔϹݰř°Ý
if (GetBaseClass(CharacterAttribute->Class) == CLASS_KNIGHT)
{
AttackSpeed1 = (CharacterAttribute->AttackSpeed) * 0.008f;
}
float MagicSpeed1 = (CharacterAttribute->MagicSpeed) * 0.004f; // żäÁ¤
float MagicSpeed2 = (CharacterAttribute->MagicSpeed) * 0.002f; // ąý»ç
float RageAttackSpeed = (CharacterAttribute->AttackSpeed) * 0.01f;
if (GetBaseClass(CharacterAttribute->Class) == CLASS_WIZARD)
{
MagicSpeed2 = (CharacterAttribute->MagicSpeed) * 0.002f; // ąý»ç
}
else if (GetBaseClass(CharacterAttribute->Class) == CLASS_SUMMONER)
{
MagicSpeed2 = (CharacterAttribute->MagicSpeed) * 0.02f; // ąý»ç
}
// -> Fix speed attack ELF & MG
if (GetBaseClass(CharacterAttribute->Class) == CLASS_ELF)
{
AttackSpeed1 = (CharacterAttribute->AttackSpeed) * 0.008f;
}
if (GetBaseClass(CharacterAttribute->Class) == CLASS_DARK)
{
MagicSpeed1 = (CharacterAttribute->MagicSpeed) * 0.006f; // żäÁ¤
}
//----------------------------------------------------------------------------------------
#ifndef _VS2008PORTING // #ifndef
int i;
#endif // _VS2008PORTING
// ÁÖ¸Ô°ř°
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_FIST].PlaySpeed = 0.6f + AttackSpeed1;
// ŔϹݰř°Ý
#ifdef _VS2008PORTING
for(int i=PLAYER_ATTACK_SWORD_RIGHT1; i<=PLAYER_ATTACK_RIDE_CROSSBOW; i++)
#else // _VS2008PORTING
for(i=PLAYER_ATTACK_SWORD_RIGHT1; i<=PLAYER_ATTACK_RIDE_CROSSBOW; i++)
#endif // _VS2008PORTING
{
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.25f + AttackSpeed1;
}
//˝şĹł°ř°Ý
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD1].PlaySpeed = 0.30f + AttackSpeed1; // ł»·ÁÂď±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD2].PlaySpeed = 0.30f + AttackSpeed1; // Â±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD3].PlaySpeed = 0.27f + AttackSpeed1; // żĂ·Áġ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD4].PlaySpeed = 0.30f + AttackSpeed1; // µą·Áġ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SWORD5].PlaySpeed = 0.24f + AttackSpeed1; // şŁ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL ].PlaySpeed = 0.24f + AttackSpeed1; // ȸżŔ¸®şŁ±â
#ifdef YDG_ADD_SKILL_RIDING_ANIMATIONS
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL_UNI ].PlaySpeed = 0.24f + AttackSpeed1;// ȸżŔ¸®şŁ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL_DINO ].PlaySpeed = 0.24f + AttackSpeed1;// ȸżŔ¸®şŁ±â
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_WHEEL_FENRIR].PlaySpeed = 0.24f + AttackSpeed1;// ȸżŔ¸®şŁ±â
#endif // YDG_ADD_SKILL_RIDING_ANIMATIONS
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_ONETOONE].PlaySpeed = 0.25f + AttackSpeed1; // şí·Îżě
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_SPEAR].PlaySpeed = 0.30f + AttackSpeed1; // âÂ±â
// Ĺ» °Í Ĺş »óĹÂ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_RIDER].PlaySpeed = 0.3f + AttackSpeed1; // ˝şĹĎ, ˝şĹĎÁ¦°Ĺ, Ĺő¸í, Ĺő¸íÇŘÁ¦, ¸¶łŞÁő°ˇ, ş¸Á¶¸¶ąý ŔĎ˝ĂÁ¦°Ĺ, ·ąŔ̵彸
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_RIDER_FLY].PlaySpeed = 0.3f + AttackSpeed1; // ˝şĹĎ, ˝şĹĎÁ¦°Ĺ, Ĺő¸í, Ĺő¸íÇŘÁ¦, ¸¶łŞÁő°ˇ, ş¸Á¶¸¶ąý ŔĎ˝ĂÁ¦°Ĺ, ·ąŔ̵彸
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_TWO_HAND_SWORD_TWO].PlaySpeed = 0.25f + AttackSpeed1; // ĆÄżö˝˝·ˇ˝¬
//Ȱ°ř°Ý
#ifdef _VS2008PORTING
for(int i=PLAYER_ATTACK_BOW;i<=PLAYER_ATTACK_FLY_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
for(int i=PLAYER_ATTACK_RIDE_BOW;i<=PLAYER_ATTACK_RIDE_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
#else // _VS2008PORTING
for(i=PLAYER_ATTACK_BOW;i<=PLAYER_ATTACK_FLY_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
for(i=PLAYER_ATTACK_RIDE_BOW;i<=PLAYER_ATTACK_RIDE_CROSSBOW;i++)
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
#endif // _VS2008PORTING
//żäÁ¤¸¶ąý
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_ELF1].PlaySpeed = 0.25f + MagicSpeed1;
//ŔϹݸ¶ąý
#ifdef _VS2008PORTING
for(int i=PLAYER_SKILL_HAND1; i<=PLAYER_SKILL_WEAPON2; i++)
#else // _VS2008PORTING
for(i=PLAYER_SKILL_HAND1; i<=PLAYER_SKILL_WEAPON2; i++)
#endif // _VS2008PORTING
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.29f + MagicSpeed2;
//±âŸ¸¶ąý
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_TELEPORT].PlaySpeed = 0.30f + MagicSpeed2; // Ľř°ŁŔ̵ż
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_FLASH ].PlaySpeed = 0.40f + MagicSpeed2; // ľĆÄíľĆÇĂ·ˇ˝¬
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_INFERNO ].PlaySpeed = 0.60f + MagicSpeed2; // ŔÎĆ丣łë
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HELL ].PlaySpeed = 0.50f + MagicSpeed2; // ÇďĆÄŔĚľî
Models[MODEL_PLAYER].Actions[PLAYER_RIDE_SKILL ].PlaySpeed = 0.30f + MagicSpeed2; // Ĺ» °Í Ĺş »óĹÂżˇĽ ľ˛´Â ˝şĹł
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HELL_BEGIN].PlaySpeed = 0.50f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_STRIKE].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_STRIKE].PlaySpeed = 0.2f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_HORSE_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_ATTACK_FLASH].PlaySpeed = 0.40f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_ATTACK_MAGIC].PlaySpeed = 0.3f + MagicSpeed2;
//^ Ć渱 °řĽÓ °ü·Ă(Áßżä : °ř°Ý ĽÓµµżÍ °ü·Ă)
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_STRIKE].PlaySpeed = 0.2f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_FLASH].PlaySpeed = 0.40f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_TWO_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_MAGIC].PlaySpeed = 0.37f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_CROSSBOW].PlaySpeed = 0.30f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_SPEAR].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_ONE_SWORD].PlaySpeed = 0.25f + AttackSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_BOW].PlaySpeed = 0.30f + AttackSpeed1;
// Ȱ·Î ÇĎ´Ă·Î ÇâÇĎ´Â °ř°Ý
#ifdef _VS2008PORTING
for ( int i=PLAYER_ATTACK_BOW_UP; i<=PLAYER_ATTACK_RIDE_CROSSBOW_UP; ++i )
#else // _VS2008PORTING
for ( i=PLAYER_ATTACK_BOW_UP; i<=PLAYER_ATTACK_RIDE_CROSSBOW_UP; ++i )
#endif // _VS2008PORTING
{
Models[MODEL_PLAYER].Actions[i].PlaySpeed = 0.30f + AttackSpeed1;
}
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_ONE_FLASH].PlaySpeed = 0.4f + AttackSpeed1; // ±â¸¶°Ë ŔĎĽ¶°ř°Ý
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RUSH].PlaySpeed = 0.3f + AttackSpeed1; // ±â»ç µą°Ý ˝şĹł.
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_DEATH_CANNON].PlaySpeed = 0.2f + AttackSpeed1;
// ˝˝¸ł
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP].PlaySpeed = 0.3f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP_UNI].PlaySpeed = 0.3f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP_DINO].PlaySpeed = 0.3f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SLEEP_FENRIR].PlaySpeed = 0.3f + MagicSpeed2;
// ¶óŔĚĆ®´× żŔşę
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB].PlaySpeed = 0.4f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB_UNI].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB_DINO].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_ORB_FENRIR].PlaySpeed = 0.25f + MagicSpeed2;
// ĂĽŔζóŔĚĆ®´×
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING_UNI].PlaySpeed = 0.15f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING_DINO].PlaySpeed = 0.15f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_CHAIN_LIGHTNING_FENRIR].PlaySpeed = 0.15f + MagicSpeed2;
// µĺ·ąŔζóŔĚÇÁ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE_UNI].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE_DINO].PlaySpeed = 0.25f + MagicSpeed2;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAIN_LIFE_FENRIR].PlaySpeed = 0.25f + MagicSpeed2;
#ifdef YDG_ADD_SKILL_GIGANTIC_STORM
// ±â°ŁĆ˝˝şĹč
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM].PlaySpeed = 0.55f + MagicSpeed1;
// ÇÁ·ąŔÓ˝şĆ®¶óŔĚĹ©
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_FLAMESTRIKE].PlaySpeed = 0.69f + MagicSpeed2;
#endif // YDG_ADD_SKILL_GIGANTIC_STORM
#ifdef YDG_ADD_SKILL_RIDING_ANIMATIONS
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM_UNI].PlaySpeed = 0.55f + MagicSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM_DINO].PlaySpeed = 0.55f + MagicSpeed1;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIGANTICSTORM_FENRIR].PlaySpeed = 0.55f + MagicSpeed1;
#endif // YDG_ADD_SKILL_RIDING_ANIMATIONS
#ifdef YDG_ADD_SKILL_LIGHTNING_SHOCK
// ¶óŔĚĆ®´×ĽîĹ©
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_LIGHTNING_SHOCK].PlaySpeed = 0.35f + MagicSpeed2;
#endif // YDG_ADD_SKILL_LIGHTNING_SHOCK
// ĽĹ¸Ő
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON].PlaySpeed = 0.25f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON_UNI].PlaySpeed = 0.25f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON_DINO].PlaySpeed = 0.25f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SUMMON_FENRIR].PlaySpeed = 0.25f;
#ifdef CSK_ADD_SKILL_BLOWOFDESTRUCTION
// Ćı«ŔÇ ŔϰÝ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_BLOW_OF_DESTRUCTION].PlaySpeed = 0.3f;
#endif // CSK_ADD_SKILL_BLOWOFDESTRUCTION
#ifdef PJH_SEASON4_SPRITE_NEW_SKILL_RECOVER
// ȸşą
Models[MODEL_PLAYER].Actions[PLAYER_RECOVER_SKILL].PlaySpeed = 0.33f;
#endif //PJH_SEASON4_SPRITE_NEW_SKILL_RECOVER
#ifdef KJH_ADD_SKILL_SWELL_OF_MAGICPOWER // ¸¶·ÂÁő´ë
// ¸¶·ÂÁő´ë
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_SWELL_OF_MP].PlaySpeed = 0.2f;
#endif // KJH_ADD_SKILL_SWELL_OF_MAGICPOWER
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_SKILL_FURY_STRIKE].PlaySpeed = 0.38f; // şĐłëŔÇŔϰÝ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_VITALITY].PlaySpeed = 0.34f; // ˝şŔٶóŔĚÇÁ
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HELL_START].PlaySpeed = 0.30f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_TELEPORT].PlaySpeed = 0.28f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_RIDE_TELEPORT].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_DARKHORSE].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_FENRIR_ATTACK_DARKLORD_TELEPORT].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_ATTACK_REMOVAL].PlaySpeed = 0.28f;
#ifdef WORLDCUP_ADD
Models[MODEL_PLAYER].Actions[PLAYER_KOREA_HANDCLAP].PlaySpeed = 0.3f;
Models[MODEL_PLAYER].Actions[PLAYER_POINT_DANCE].PlaySpeed = 0.4f;
#endif // WORLDCUP_ADD
#ifdef PBG_ADD_NEWCHAR_MONK_SKILL
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_THRUST].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_STAMP].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_GIANTSWING].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DARKSIDE_READY].PlaySpeed = 0.3f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DARKSIDE_ATTACK].PlaySpeed = 0.3f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAGONKICK].PlaySpeed = 0.4f + RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_DRAGONLORE].PlaySpeed = 0.3f+RageAttackSpeed;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_ATT_UP_OURFORCES].PlaySpeed = 0.35f;
Models[MODEL_PLAYER].Actions[PLAYER_SKILL_HP_UP_OURFORCES].PlaySpeed = 0.35f;
Models[MODEL_PLAYER].Actions[PLAYER_RAGE_FENRIR_ATTACK_RIGHT].PlaySpeed = 0.25f + RageAttackSpeed;
#endif //PBG_ADD_NEWCHAR_MONK_SKILL
}
ZzzInformation.cpp
PHP Code:
void CHARACTER_MACHINE::CalculateAttackSpeed()
{
WORD Dexterity;
///////////////////////////////////////////// Äł¸ŻĹÍ ±âş» ąÎø °č»ę /////////////////////////////////////////////
Dexterity= Character.Dexterity+ Character.AddDexterity;
int CharacterClass = GetBaseClass ( Character.Class );
if ( CharacterClass==CLASS_ELF ) // żäÁ¤.
{
Character.AttackSpeed = Dexterity/50;
Character.MagicSpeed = Dexterity/50;
}
else if ( CharacterClass==CLASS_KNIGHT || CharacterClass==CLASS_DARK ) // 20 --> 18 ±â»ç. ¸¶°Ë»ç.
{
Character.AttackSpeed = Dexterity/15;
Character.MagicSpeed = Dexterity/20;
}
else if ( CharacterClass==CLASS_DARK_LORD )
{
Character.AttackSpeed = Dexterity/10;
Character.MagicSpeed = Dexterity/10;
}
else if (CharacterClass == CLASS_SUMMONER)
{
Character.AttackSpeed = Dexterity/20;
Character.MagicSpeed = Dexterity/20;
}
#ifdef PBG_ADD_NEWCHAR_MONK
else if(CharacterClass == CLASS_RAGEFIGHTER)
{
Character.AttackSpeed = Dexterity/9;
Character.MagicSpeed = Dexterity/9;
}
#endif //PBG_ADD_NEWCHAR_MONK
else // ąý»ç.
{
Character.AttackSpeed = Dexterity/20;
Character.MagicSpeed = Dexterity/10;
}
Character.AttackSpeed = Character.AttackSpeed / 16.4f; // -> 16.8f (Fix 380lvl item)
Character.MagicSpeed = Character.MagicSpeed / 16.4f; // -> 16.8f (Fix 380lvl item)
if (Character.AttackSpeed == 0)
{
Character.AttackSpeed = 1;
}
if (Character.MagicSpeed == 0)
{
Character.MagicSpeed = 1;
}
......
In this way, items that increase the speed of the attack will also be included in the repair.
The repair is only up to 65,000 points in dexterity.