diff --git a/doc/mapflags.txt b/doc/mapflags.txt index bfcc9285f9..cdeb77ec2b 100644 --- a/doc/mapflags.txt +++ b/doc/mapflags.txt @@ -434,3 +434,15 @@ Hides monster's HP bar on a map. Ignores config value of 'monster_hp_bars_info'. --------------------------------------- + +*norenewaldroppenalty + +Disable renewal drop rate penalty due to level difference on a map. + +--------------------------------------- + +*norenewalexppenalty + +Disable renewal experience penalty due to level difference on a map. + +--------------------------------------- \ No newline at end of file diff --git a/src/map/map.hpp b/src/map/map.hpp index 97f1ee7523..c1d20bcd49 100644 --- a/src/map/map.hpp +++ b/src/map/map.hpp @@ -645,6 +645,8 @@ enum e_mapflag : int16 { MF_SKILL_DURATION, MF_NOCASHSHOP, MF_NORODEX, + MF_NORENEWALEXPPENALTY, + MF_NORENEWALDROPPENALTY, MF_MAX }; diff --git a/src/map/pc.cpp b/src/map/pc.cpp index 0cd1b571e6..8e2bec585f 100755 --- a/src/map/pc.cpp +++ b/src/map/pc.cpp @@ -12613,6 +12613,10 @@ uint16 pc_level_penalty_mod( struct map_session_data* sd, e_penalty_type type, s return 100; } + if ((type == PENALTY_DROP && map_getmapflag(sd->bl.m, MF_NORENEWALDROPPENALTY)) || (type == PENALTY_EXP && map_getmapflag(sd->bl.m, MF_NORENEWALEXPPENALTY))) { + return 100; + } + int monster_level; if( md != nullptr ){ diff --git a/src/map/script_constants.hpp b/src/map/script_constants.hpp index 4744602192..ab42d4551c 100644 --- a/src/map/script_constants.hpp +++ b/src/map/script_constants.hpp @@ -531,6 +531,8 @@ export_constant(MF_SKILL_DURATION); export_constant(MF_NOCASHSHOP); export_constant(MF_NORODEX); + export_constant(MF_NORENEWALDROPPENALTY); + export_constant(MF_NORENEWALEXPPENALTY); /* setcell types */ export_constant(CELL_WALKABLE);