diff --git a/bin/scripts/chai/skill/skillDef_119.chai b/bin/scripts/chai/skill/cnj/skillDef_119.chai similarity index 73% rename from bin/scripts/chai/skill/skillDef_119.chai rename to bin/scripts/chai/skill/cnj/skillDef_119.chai index dcf945b2..2c25a2df 100644 --- a/bin/scripts/chai/skill/skillDef_119.chai +++ b/bin/scripts/chai/skill/cnj/skillDef_119.chai @@ -10,7 +10,7 @@ class skillDef_119Def def onFinish( player, target ) { - player.handleScriptSkill( STD_DAMAGE, 119, 30, 0, target ); + player.handleScriptSkill( STD_DAMAGE, 119, 140, 0, target ); } }; diff --git a/bin/scripts/chai/skill/skillDef_120.chai b/bin/scripts/chai/skill/cnj/skillDef_120.chai similarity index 60% rename from bin/scripts/chai/skill/skillDef_120.chai rename to bin/scripts/chai/skill/cnj/skillDef_120.chai index 8966d095..ec78e907 100644 --- a/bin/scripts/chai/skill/skillDef_120.chai +++ b/bin/scripts/chai/skill/cnj/skillDef_120.chai @@ -1,5 +1,5 @@ -// Skill Name: Sprint -// Skill ID: 3 +// Skill Name: Cure +// Skill ID: 120 class skillDef_120Def { @@ -10,7 +10,7 @@ class skillDef_120Def def onFinish( player, target ) { - player.handleScriptSkill( STD_HEAL, 120, 1000, 0, target ); + player.handleScriptSkill( STD_HEAL, 120, 450, 0, target ); } }; diff --git a/bin/scripts/chai/skill/skillDef_121.chai b/bin/scripts/chai/skill/cnj/skillDef_121.chai similarity index 88% rename from bin/scripts/chai/skill/skillDef_121.chai rename to bin/scripts/chai/skill/cnj/skillDef_121.chai index 8fb8dd3d..a3d56093 100644 --- a/bin/scripts/chai/skill/skillDef_121.chai +++ b/bin/scripts/chai/skill/cnj/skillDef_121.chai @@ -1,5 +1,5 @@ -// Skill Name: Sprint -// Skill ID: 3 +// Skill Name: Aero +// Skill ID: 121 class skillDef_121Def { diff --git a/bin/scripts/chai/skill/skillDef_127.chai b/bin/scripts/chai/skill/cnj/skillDef_127.chai similarity index 58% rename from bin/scripts/chai/skill/skillDef_127.chai rename to bin/scripts/chai/skill/cnj/skillDef_127.chai index 7317c106..88baf71d 100644 --- a/bin/scripts/chai/skill/skillDef_127.chai +++ b/bin/scripts/chai/skill/cnj/skillDef_127.chai @@ -1,5 +1,5 @@ -// Skill Name: Sprint -// Skill ID: 3 +// Skill Name: Stone II +// Skill ID: 127 class skillDef_127Def { @@ -10,7 +10,7 @@ class skillDef_127Def def onFinish( player, target ) { - player.handleScriptSkill( STD_DAMAGE, 127, 1000, 0, target ); + player.handleScriptSkill( STD_DAMAGE, 127, 200, 0, target ); } }; diff --git a/bin/scripts/chai/skill/cnj/skillDef_128.chai b/bin/scripts/chai/skill/cnj/skillDef_128.chai new file mode 100644 index 00000000..74b58e85 --- /dev/null +++ b/bin/scripts/chai/skill/cnj/skillDef_128.chai @@ -0,0 +1,18 @@ +// Skill Name: Repose +// Skill ID: 128 + +class skillDef_128Def +{ + def skillDef_128Def() + { + + } + + def onFinish( player, target ) + { + target.addStatusEffectByIdIfNotExist(3, 30000, 0); + } + +}; + +GLOBAL skillDef_128 = skillDef_128Def(); diff --git a/bin/scripts/chai/skill/pgl/skillDef_53.chai b/bin/scripts/chai/skill/pgl/skillDef_53.chai new file mode 100644 index 00000000..0ebbb980 --- /dev/null +++ b/bin/scripts/chai/skill/pgl/skillDef_53.chai @@ -0,0 +1,18 @@ +// Skill Name: Bootshine +// Skill ID: 53 + +class skillDef_53Def +{ + def skillDef_53Def() + { + + } + + def onFinish( player, target ) + { + player.handleScriptSkill( STD_DAMAGE, 53, 140, 0, target ); + } + +}; + +GLOBAL skillDef_53 = skillDef_53Def(); diff --git a/bin/scripts/chai/skill/skillDef_6.chai b/bin/scripts/chai/skill/skillDef_6.chai index 4f39b99b..8c5c61a1 100644 --- a/bin/scripts/chai/skill/skillDef_6.chai +++ b/bin/scripts/chai/skill/skillDef_6.chai @@ -1,5 +1,5 @@ -// Skill Name: Sprint -// Skill ID: 3 +// Skill Name: Return +// Skill ID: 6 class skillDef_6Def { diff --git a/src/servers/Server_Common/Exd/ExdData.cpp b/src/servers/Server_Common/Exd/ExdData.cpp index 965f1cc8..7004089d 100644 --- a/src/servers/Server_Common/Exd/ExdData.cpp +++ b/src/servers/Server_Common/Exd/ExdData.cpp @@ -426,6 +426,7 @@ boost::shared_ptr< Core::Data::ItemInfo > info->model_primary = getField< uint64_t >( row, 45 ); info->model_secondary = getField< uint64_t >( row, 46 ); info->physical_damage = getField< uint16_t >( row, 49 ); + info->magical_damage = getField< uint16_t >( row, 50 ); info->delayMs = getField< uint16_t >( row, 51 ); info->is_unique = getField< int16_t >( row, 64 ) != 0 ? true : false; info->is_untradeable = getField< uint8_t >( row, 65 ) != 0 ? true : false; diff --git a/src/servers/Server_Common/Exd/ExdData.h b/src/servers/Server_Common/Exd/ExdData.h index 4ae67281..11103c87 100644 --- a/src/servers/Server_Common/Exd/ExdData.h +++ b/src/servers/Server_Common/Exd/ExdData.h @@ -211,8 +211,9 @@ namespace Core { uint64_t model_primary; //28 uint64_t model_secondary; //29 uint16_t physical_damage; //49 + uint16_t magical_damage; //50 + uint16_t delayMs; //51 uint32_t class_job_requirement; //58 - uint16_t delayMs; //59 bool is_unique; //72 bool is_untradeable; //73 uint32_t class_job_index; //86 diff --git a/src/servers/Server_Zone/Actor/Player.cpp b/src/servers/Server_Zone/Actor/Player.cpp index f5b65b49..a1f28e38 100644 --- a/src/servers/Server_Zone/Actor/Player.cpp +++ b/src/servers/Server_Zone/Actor/Player.cpp @@ -1462,7 +1462,7 @@ void Core::Entity::Player::autoAttack( ActorPtr pTarget ) //uint64_t tick = Util::getTimeMs(); //srand(static_cast< uint32_t >(tick)); - uint32_t damage = mainWeap->getAutoAttackDmg() + rand() % 12; + uint32_t damage = mainWeap->getAutoAttackDmg(); uint32_t variation = 0 + rand() % 3; if( getClass() == 5 || getClass() == 23 || getClass() == 31 ) diff --git a/src/servers/Server_Zone/Inventory/Item.cpp b/src/servers/Server_Zone/Inventory/Item.cpp index 8c165493..7de51628 100644 --- a/src/servers/Server_Zone/Inventory/Item.cpp +++ b/src/servers/Server_Zone/Inventory/Item.cpp @@ -27,7 +27,9 @@ Core::Item::Item( uint64_t uId, uint32_t catalogId, uint64_t model1, uint64_t mo auto itemInfo = g_exdData.getItemInfo( catalogId ); m_delayMs = itemInfo->delayMs; m_physicalDmg = itemInfo->physical_damage; - m_autoAttackDmg = float( m_physicalDmg * m_delayMs ) / 3000; + m_magicalDmg = itemInfo->magical_damage; + m_weaponDmg = ( m_physicalDmg != 0 ) ? m_physicalDmg : m_magicalDmg; + m_autoAttackDmg = static_cast< float >( m_weaponDmg * m_delayMs ) / 3000; } Core::Item::~Item() @@ -50,6 +52,16 @@ uint16_t Core::Item::getPhysicalDmg() const return m_physicalDmg; } +uint16_t Core::Item::getMagicalDmg() const +{ + return m_magicalDmg; +} + +uint16_t Core::Item::getWeaponDmg() const +{ + return m_weaponDmg; +} + uint32_t Core::Item::getId() const { return m_id; diff --git a/src/servers/Server_Zone/Inventory/Item.h b/src/servers/Server_Zone/Inventory/Item.h index f082ca0e..8c0c7310 100644 --- a/src/servers/Server_Zone/Inventory/Item.h +++ b/src/servers/Server_Zone/Inventory/Item.h @@ -44,6 +44,10 @@ public: uint16_t getPhysicalDmg() const; + uint16_t getMagicalDmg() const; + + uint16_t getWeaponDmg() const; + float getAutoAttackDmg() const; @@ -64,6 +68,8 @@ protected: uint16_t m_delayMs; uint16_t m_physicalDmg; + uint16_t m_magicalDmg; + uint16_t m_weaponDmg; float m_autoAttackDmg; };