Permalink
Browse files

Fixed Issue #2177

If Item Price is 0, it is now changed to 1.
  • Loading branch information...
dastgirp committed Sep 2, 2018
1 parent 611bda2 commit d2c21b1e412a7a2f3c965a3335ea78a992e7b873
Showing with 19 additions and 8 deletions.
  1. +8 −0 conf/map/battle/items.conf
  2. +2 −0 src/map/battle.c
  3. +3 −0 src/map/battle.h
  4. +6 −8 src/map/pc.c
@@ -123,3 +123,11 @@ boarding_halter_speed: 25
// Allow to use items when the storage is open?
// Official: false (Default)
storage_use_item: false
// Minimum item buy price at shop
// Default: 1
min_item_buy_price: 1
// Minimum item sell price at shop
// Default: 0
min_item_sell_price: 0
@@ -7371,6 +7371,8 @@ static const struct battle_data {
{ "storage_use_item", &battle_config.storage_use_item, 0, 0, 1, },
{ "features/enable_attendance_system", &battle_config.feature_enable_attendance_system,1, 0, 1, },
{ "features/feature_attendance_endtime",&battle_config.feature_attendance_endtime, 1, 0, 99999999, },
{ "min_item_buy_price", &battle_config.min_item_buy_price, 1, 0, INT_MAX, },
{ "min_item_sell_price", &battle_config.min_item_sell_price, 0, 0, INT_MAX, },
};
static bool battle_set_value_sub(int index, int value)
@@ -570,6 +570,9 @@ struct Battle_Config {
int feature_enable_attendance_system;
int feature_attendance_endtime;
int min_item_buy_price;
int min_item_sell_price;
};
/* criteria for battle_config.idletime_critera */
@@ -4402,8 +4402,6 @@ static int pc_insert_card(struct map_session_data *sd, int idx_card, int idx_equ
static int pc_modifybuyvalue(struct map_session_data *sd, int orig_value)
{
int skill_lv, rate1 = 0, rate2 = 0;
if (orig_value <= 0)
return 0;
if ((skill_lv=pc->checkskill(sd,MC_DISCOUNT)) > 0) // merchant discount
rate1 = 5+skill_lv*2-((skill_lv==10)? 1:0);
if ((skill_lv=pc->checkskill(sd,RG_COMPULSION)) > 0) // rogue discount
@@ -4412,8 +4410,9 @@ static int pc_modifybuyvalue(struct map_session_data *sd, int orig_value)
rate1 = rate2;
if (rate1 != 0)
orig_value = apply_percentrate(orig_value, 100-rate1, 100);
if (orig_value < 1)
orig_value = 1;
if (orig_value < battle_config.min_item_buy_price)
orig_value = battle_config.min_item_buy_price;
return orig_value;
}
@@ -4423,14 +4422,13 @@ static int pc_modifybuyvalue(struct map_session_data *sd, int orig_value)
static int pc_modifysellvalue(struct map_session_data *sd, int orig_value)
{
int skill_lv, rate = 0;
if (orig_value <= 0)
return 0;
if ((skill_lv=pc->checkskill(sd,MC_OVERCHARGE)) > 0) //OverCharge
rate = 5+skill_lv*2-((skill_lv==10)? 1:0);
if (rate != 0)
orig_value = apply_percentrate(orig_value, 100+rate, 100);
if (orig_value < 1)
orig_value = 1;
if (orig_value < battle_config.min_item_sell_price)
orig_value = battle_config.min_item_sell_price;
return orig_value;
}

0 comments on commit d2c21b1

Please sign in to comment.