From bed9459f0edafeab823aa4c0a473828e77e43c15 Mon Sep 17 00:00:00 2001 From: skotlex Date: Tue, 30 Jan 2007 17:38:39 +0000 Subject: - Corrected char deletion not working (column is called homun_id, not hom_id...) - Collapsed config settings produce_item_name_input, produce_potion_name_input, making_arrow_name_input, holywater_name_input, cdp_name_input into a single config produce_item_name_input which uses bitmasks to determine what it affects. - Updated arrow_decrement to have 3 possible values: Disabled, Enabled, and Enabled as well as giving arrow requirements to skills that do not have them when used with ranged weapons (auto-guess for plagiarized/item-granted skills) - Minor cleanings git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9746 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/battle.c | 10 +--------- src/map/battle.h | 4 ---- src/map/skill.c | 20 +++++++++++++++----- 3 files changed, 16 insertions(+), 18 deletions(-) (limited to 'src/map') diff --git a/src/map/battle.c b/src/map/battle.c index fd38721aa..8b67ce885 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3640,10 +3640,6 @@ static const struct battle_data_short { { "party_skill_penalty", &battle_config.party_skill_penalty }, { "monster_class_change_full_recover", &battle_config.monster_class_change_full_recover }, { "produce_item_name_input", &battle_config.produce_item_name_input }, - { "produce_potion_name_input", &battle_config.produce_potion_name_input}, - { "making_arrow_name_input", &battle_config.making_arrow_name_input }, - { "holywater_name_input", &battle_config.holywater_name_input }, - { "cdp_name_input", &battle_config.cdp_name_input }, { "display_skill_fail", &battle_config.display_skill_fail }, { "chat_warpportal", &battle_config.chat_warpportal }, { "mob_warp", &battle_config.mob_warp }, @@ -4056,11 +4052,7 @@ void battle_set_defaults() { battle_config.land_skill_limit = BL_ALL; battle_config.party_skill_penalty = 1; battle_config.monster_class_change_full_recover = 1; - battle_config.produce_item_name_input = 1; - battle_config.produce_potion_name_input = 1; - battle_config.making_arrow_name_input = 1; - battle_config.holywater_name_input = 1; - battle_config.cdp_name_input = 1; + battle_config.produce_item_name_input = 0x3; battle_config.display_skill_fail = 0; battle_config.chat_warpportal = 0; battle_config.mob_warp = 0; diff --git a/src/map/battle.h b/src/map/battle.h index 4fc6e545b..00be1fe42 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -254,10 +254,6 @@ extern struct Battle_Config { unsigned short party_skill_penalty; unsigned short monster_class_change_full_recover; unsigned short produce_item_name_input; - unsigned short produce_potion_name_input; - unsigned short making_arrow_name_input; - unsigned short holywater_name_input; - unsigned short cdp_name_input; unsigned short display_skill_fail; unsigned short chat_warpportal; unsigned short mob_warp; diff --git a/src/map/skill.c b/src/map/skill.c index 5ac920fe6..8c548b2bc 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7822,6 +7822,7 @@ static int skill_check_condition_mob_master_sub (struct block_list *bl, va_list int skill_isammotype (TBL_PC *sd, int skill) { return ( + battle_config.arrow_decrement==2 && (sd->status.weapon == W_BOW || (sd->status.weapon >= W_REVOLVER && sd->status.weapon <= W_GRENADE)) && skill != HT_PHANTASMIC && skill_get_type(skill) == BF_WEAPON && @@ -10603,20 +10604,29 @@ int skill_produce_mix (struct map_session_data *sd, int skill_id, int nameid, in } else { //Flag is only used on the end, so it can be used here. [Skotlex] switch (skill_id) { + case BS_DAGGER: + case BS_SWORD: + case BS_TWOHANDSWORD: + case BS_AXE: + case BS_MACE: + case BS_KNUCKLE: + case BS_SPEAR: + flag = battle_config.produce_item_name_input&0x1; + break; case AM_PHARMACY: case AM_TWILIGHT1: case AM_TWILIGHT2: case AM_TWILIGHT3: - flag = battle_config.produce_potion_name_input; + flag = battle_config.produce_item_name_input&0x2; break; case AL_HOLYWATER: - flag = battle_config.holywater_name_input; + flag = battle_config.produce_item_name_input&0x8; break; case ASC_CDP: - flag = battle_config.cdp_name_input; + flag = battle_config.produce_item_name_input&0x10; break; default: - flag = battle_config.produce_item_name_input; + flag = battle_config.produce_item_name_input&0x80; break; } if (flag) { @@ -10763,7 +10773,7 @@ int skill_arrow_create (struct map_session_data *sd, int nameid) tmp_item.identify = 1; tmp_item.nameid = skill_arrow_db[index].cre_id[i]; tmp_item.amount = skill_arrow_db[index].cre_amount[i]; - if(battle_config.making_arrow_name_input) { + if(battle_config.produce_item_name_input&0x4) { tmp_item.card[0]=CARD0_CREATE; tmp_item.card[1]=0; tmp_item.card[2]=GetWord(sd->status.char_id,0); // CharId -- cgit v1.2.3-70-g09d2