find this
if(sc->data[SC_WATKFOOD])
watk += sc->data[SC_WATKFOOD]->val1;
if(sc->data[SC_VOLCANO])
watk += sc->data[SC_VOLCANO]->val2;
if(sc->data[SC_MERC_ATKUP])
watk += sc->data[SC_MERC_ATKUP]->val2;
add a new one
if(sc->data[SC_GN_CARTBOOST])
watk += sc->data[SC_GN_CARTBOOST]->val4;
find this
case SC_GN_CARTBOOST:
if( val1 < 3 )
val2 = 50;
else if( val1 > 2 && val1 < 5 )
val2 = 75;
else
val2 = 100;
break;
add val4= 50; at the top
like so
case SC_GN_CARTBOOST:
val4 = 50; // Watk increase
if( val1 < 3 )
val2 = 50;
else if( val1 > 2 && val1 < 5 )
val2 = 75;
else
val2 = 100;
break;
That should do it unless you want batk if that matters just change scb_watk to scb_batk and change watk in second part to batk , might have to move it to other section with others tho
I dont know how to make a patch but ive included my src + mapflag conf at the bottom of the post, ill include instructions on how to add them yourself though. And how to adjust the rates will be first
drop rates - mob.c
find this
#ifdef RENEWAL_DROP
if( drop_modifier != 100 ) {
drop_rate = apply_rate(drop_rate, drop_modifier);
if( drop_rate < 1 )
drop_rate = 1;
}
#endif
if(map_getmapflag(m, MF_DROPRATE300))
drop_rate = (int)( (drop_rate * 300) / 100. );
if(map_getmapflag(m, MF_DROPRATE50))
drop_rate = (int)( (drop_rate * 30) / 100. );
// attempt to drop the item
if (rnd() % 10000 >= drop_rate)
continue;
if( mvp_sd && it->type == IT_PETEGG ) {
pet_create_egg(mvp_sd, md->db->dropitem[i].nameid);
continue;
insert
if(map_getmapflag(m, MF_DROPRATE300))
drop_rate = (int)( (drop_rate * 300) / 100. );
if(map_getmapflag(m, MF_DROPRATE50))
drop_rate = (int)( (drop_rate * 90) / 100. );
above the comment
//attempt to drop the item
(drop_rate * 300) = +200%? 100 would be normal
and
(drop_rate * 30) = 30% of normal drop rate
these are the only numbers you need to change
I havnt tested with gum but it should be normal
next NPC.c
find this
case MF_BATTLEGROUND:
if (state) {
union u_mapflag_args args = {};
if (sscanf(w4, "%11d", &args.flag_val) < 1)
args.flag_val = 1; // Default value
map_setmapflag_sub(m, MF_BATTLEGROUND, true, &args);
} else
map_setmapflag(m, MF_BATTLEGROUND, false);
break;
case MF_DROPRATE50:
if (state) {
union u_mapflag_args args = {};
if (sscanf(w4, "%11d", &args.flag_val) == 1)
map_setmapflag(m, MF_DROPRATE50, state);
else
map_setmapflag(m, MF_DROPRATE50, 100);
} else
map_setmapflag(m, MF_DROPRATE50, 100);
break;
case MF_DROPRATE300:
if (state) {
union u_mapflag_args args = {};
if (sscanf(w4, "%11d", &args.flag_val) == 1)
map_setmapflag(m, MF_DROPRATE300, state);
else
map_setmapflag(m, MF_DROPRATE300, 100);
} else
map_setmapflag(m, MF_DROPRATE300, 100);
break;
case MF_NOCOMMAND:
if (state) {
union u_mapflag_args args = {};
if (sscanf(w4, "%11d", &args.flag_val) < 1)
args.flag_val = 100; // No level specified, block everyone.
map_setmapflag_sub(m, MF_NOCOMMAND, true, &args);
} else
map_setmapflag(m, MF_NOCOMMAND, false);
break;
insert
case MF_DROPRATE50:
if (state) {
union u_mapflag_args args = {};
if (sscanf(w4, "%11d", &args.flag_val) == 1)
map_setmapflag(m, MF_DROPRATE50, state);
else
map_setmapflag(m, MF_DROPRATE50, 100);
} else
map_setmapflag(m, MF_DROPRATE50, 100);
break;
case MF_DROPRATE300:
if (state) {
union u_mapflag_args args = {};
if (sscanf(w4, "%11d", &args.flag_val) == 1)
map_setmapflag(m, MF_DROPRATE300, state);
else
map_setmapflag(m, MF_DROPRATE300, 100);
} else
map_setmapflag(m, MF_DROPRATE300, 100);
break;
under MF_BATTLEGROUND(doesnt matter)
NEXT - MAP.H
find
MF_NOEXP,
MF_PRIVATEAIRSHIP_SOURCE,
MF_PRIVATEAIRSHIP_DESTINATION,
MF_SKILL_DURATION,
MF_DROPRATE50,
MF_DROPRATE300,
MF_MAX
add MF_DROPRATE50, and MF_DROPRATE300,
commas matter
Last in your SRC find SCRIPT_CONSTANTS.H
and add our 2 new map flags like above
export_constant(MF_NOEXP);
export_constant(MF_PRIVATEAIRSHIP_SOURCE);
export_constant(MF_PRIVATEAIRSHIP_DESTINATION);
export_constant(MF_DROPRATE50);
export_constant(MF_DROPRATE300);
export_constant(MF_SKILL_DURATION);
recompile i hope it works
afterwards you also need to make changes in your NPC folder
scripts_mapflags
npc: npc/mapflag/skill_duration.txt
npc: npc/mapflag/droprate.txt
then in the file it should look like this
prontera mapflag droprate50
geffen mapflag droprate300
just merge my files with yours if you want and please let me know if you have problems