|
@@ -765,7 +765,7 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk
|
|
|
|
|
|
/**
|
|
/**
|
|
* Making Plagiarism and Reproduce check their own function
|
|
* Making Plagiarism and Reproduce check their own function
|
|
- * Previous prevention for NPC skills, Wedding skills, and INF3_DIS_PLAGIA are removed since we use skill_copyable_db.txt [Cydh]
|
|
|
|
|
|
+ * Previous prevention for NPC skills, Wedding skills, and INF3_DIS_PLAGIA are removed since we use skill_db.yml [Cydh]
|
|
* @param sd: Player who will copy the skill
|
|
* @param sd: Player who will copy the skill
|
|
* @param skill_id: Target skill
|
|
* @param skill_id: Target skill
|
|
* @return 0 - Cannot be copied; 1 - Can be copied by Plagiarism 2 - Can be copied by Reproduce
|
|
* @return 0 - Cannot be copied; 1 - Can be copied by Plagiarism 2 - Can be copied by Reproduce
|
|
@@ -1507,7 +1507,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
|
sc_start(src,bl,SC_STUN,(10+3*skill_lv),skill_lv,skill_get_time(skill_id,skill_lv));
|
|
sc_start(src,bl,SC_STUN,(10+3*skill_lv),skill_lv,skill_get_time(skill_id,skill_lv));
|
|
sc_start(src,bl,SC_BLIND,(10+3*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
sc_start(src,bl,SC_BLIND,(10+3*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
#ifdef RENEWAL
|
|
#ifdef RENEWAL
|
|
- sc_start(src, bl, SC_RAID, 100, skill_lv, 10000); // Hardcoded to 10 seconds since skill_cast_db is full
|
|
|
|
|
|
+ sc_start(src, bl, SC_RAID, 100, skill_lv, 10000); // Hardcoded to 10 seconds since Duration1 and Duration2 are used
|
|
break;
|
|
break;
|
|
|
|
|
|
case RG_BACKSTAP:
|
|
case RG_BACKSTAP:
|
|
@@ -14148,7 +14148,7 @@ static int skill_unit_onplace(struct skill_unit *unit, struct block_list *bl, t_
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * Process skill unit each interval (sg->interval, see interval field of skill_unit_db.txt)
|
|
|
|
|
|
+ * Process skill unit each interval (sg->interval, see interval field of skill_db.yml)
|
|
* @param unit Skill unit
|
|
* @param unit Skill unit
|
|
* @param bl Valid 'target' above the unit, that has been check in skill_unit_timer_sub_onplace
|
|
* @param bl Valid 'target' above the unit, that has been check in skill_unit_timer_sub_onplace
|
|
* @param tick
|
|
* @param tick
|
|
@@ -16892,10 +16892,10 @@ struct s_skill_condition skill_get_requirement(struct map_session_data* sd, uint
|
|
|
|
|
|
switch( skill_id ) {
|
|
switch( skill_id ) {
|
|
/* Skill level-dependent checks */
|
|
/* Skill level-dependent checks */
|
|
- case NC_SHAPESHIFT: // NOTE: Please make sure Magic_Gear_Fuel in the last position in skill_require_db.txt
|
|
|
|
- case NC_REPAIR: // NOTE: Please make sure Repair_Kit in the last position in skill_require_db.txt
|
|
|
|
- req.itemid[1] = skill->require.itemid[MAX_SKILL_ITEM_REQUIRE-1];
|
|
|
|
- req.amount[1] = skill->require.amount[MAX_SKILL_ITEM_REQUIRE-1];
|
|
|
|
|
|
+ case NC_SHAPESHIFT: // NOTE: Magic_Gear_Fuel must be last in the ItemCost list depending on the skill's max level
|
|
|
|
+ case NC_REPAIR: // NOTE: Repair_Kit must be last in the ItemCost list depending on the skill's max level
|
|
|
|
+ req.itemid[1] = skill->require.itemid[skill->max - 1];
|
|
|
|
+ req.amount[1] = skill->require.amount[skill->max - 1];
|
|
case KO_MAKIBISHI:
|
|
case KO_MAKIBISHI:
|
|
case GN_FIRE_EXPANSION:
|
|
case GN_FIRE_EXPANSION:
|
|
case SO_SUMMON_AGNI:
|
|
case SO_SUMMON_AGNI:
|
|
@@ -18811,7 +18811,7 @@ static int skill_get_new_group_id(void)
|
|
* @param count How many 'cells' used that needed. Related with skill layout
|
|
* @param count How many 'cells' used that needed. Related with skill layout
|
|
* @param skill_id ID of used skill
|
|
* @param skill_id ID of used skill
|
|
* @param skill_lv Skill level of used skill
|
|
* @param skill_lv Skill level of used skill
|
|
- * @param unit_id Unit ID (look at skill_unit_db.txt)
|
|
|
|
|
|
+ * @param unit_id Unit ID (see skill.hpp::e_skill_unit_id)
|
|
* @param limit Lifetime for skill unit, uses skill_get_time(skill_id, skill_lv)
|
|
* @param limit Lifetime for skill unit, uses skill_get_time(skill_id, skill_lv)
|
|
* @param interval Time interval
|
|
* @param interval Time interval
|
|
* @return skill_unit_group
|
|
* @return skill_unit_group
|
|
@@ -22995,12 +22995,8 @@ static bool skill_parse_row_skilldamage(char* split[], int columns, int current)
|
|
|
|
|
|
/*===============================
|
|
/*===============================
|
|
* DB reading.
|
|
* DB reading.
|
|
- * skill_db.txt
|
|
|
|
- * skill_require_db.txt
|
|
|
|
- * skill_cast_db.txt
|
|
|
|
- * skill_castnodex_db.txt
|
|
|
|
|
|
+ * skill_db.yml
|
|
* skill_nocast_db.txt
|
|
* skill_nocast_db.txt
|
|
- * skill_unit_db.txt
|
|
|
|
* produce_db.txt
|
|
* produce_db.txt
|
|
* create_arrow_db.txt
|
|
* create_arrow_db.txt
|
|
*------------------------------*/
|
|
*------------------------------*/
|
|
@@ -23054,6 +23050,9 @@ static void skill_readdb(void)
|
|
|
|
|
|
void skill_reload (void) {
|
|
void skill_reload (void) {
|
|
skill_db.clear();
|
|
skill_db.clear();
|
|
|
|
+ abra_db.clear();
|
|
|
|
+ magic_mushroom_db.clear();
|
|
|
|
+ reading_spellbook_db.clear();
|
|
skill_readdb();
|
|
skill_readdb();
|
|
initChangeTables(); // Re-init Status Change tables
|
|
initChangeTables(); // Re-init Status Change tables
|
|
|
|
|