summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/skill.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index d9f6fbc62..775e8ca14 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -9881,8 +9881,8 @@ int skill_can_produce_mix (struct map_session_data *sd, int nameid, int trigger,
if(trigger>20) { // Non-weapon, non-food item (itemlv must match)
if(skill_produce_db[i].itemlv!=trigger)
return 0;
- } else if(trigger>10) { // Food (itemlv must be higher or equal)
- if(skill_produce_db[i].itemlv<=10 || skill_produce_db[i].itemlv>trigger)
+ } else if(trigger>10) { // Food (any item level between 10 and 20 will do)
+ if(skill_produce_db[i].itemlv<=10)
return 0;
} else { // Weapon (itemlv must be higher or equal)
if(skill_produce_db[i].itemlv>trigger)
@@ -10077,6 +10077,16 @@ int skill_produce_mix (struct map_session_data *sd, int skill_id, int nameid, in
}
break;
default:
+ if (sd->menuskill_id == AM_PHARMACY &&
+ sd->menuskill_lv > 10 && sd->menuskill_lv <= 20)
+ { //Assume Cooking Dish
+ if (sd->menuskill_lv >= 15) //Legendary Cooking Set.
+ make_per = 10000; //100% Success
+ else
+ make_per = 12*(sd->menuskill_lv-10) //12% chance per set level.
+ + 700 - 70*(skill_produce_db[idx].itemlv-10); //70% - 7% per dish level
+ break;
+ }
make_per = 5000;
break;
}
@@ -10199,7 +10209,8 @@ int skill_produce_mix (struct map_session_data *sd, int skill_id, int nameid, in
clif_misceffect(&sd->bl,3);
break;
default: //Those that don't require a skill?
- if (skill_produce_db[idx].itemlv==11) //Cooking items.
+ if (skill_produce_db[idx].itemlv>10 &&
+ skill_produce_db[idx].itemlv<= 20) //Cooking items.
clif_specialeffect(&sd->bl, 608, AREA);
break;
}
@@ -10239,7 +10250,8 @@ int skill_produce_mix (struct map_session_data *sd, int skill_id, int nameid, in
clif_misceffect(&sd->bl,2);
break;
default:
- if (skill_produce_db[idx].itemlv==11)
+ if (skill_produce_db[idx].itemlv>10 &&
+ skill_produce_db[idx].itemlv<= 20) //Cooking items.
clif_specialeffect(&sd->bl, 609, AREA);
}
}