battle_auriga.conf または, battle_conf.txtに以下を追加
// MVPモンスターの通常アイテム,カードのドロップ率(他の倍率に足される)
// 100,及び-100で1倍、0でドロップ無し -100以下の値を指定するとその分ドロップ率を減らす
mvpmob_item_drop_rate: 100
mvpmob_card_drop_rate: 100
rateは各自で設定してください.
*★*―――――*★*―――――*★*―――――*★*―――――*★*
atcommand.c
L 5700行周辺 atcommand_mobinfo関数
int rate;
if (m->dropitem[i].nameid <= 0 || (item_data = itemdb_exists(m->dropitem[i].nameid)) == NULL)
continue;
rate = mob_droprate_fix(&sd->bl, m->dropitem[i].nameid, m->dropitem[i].p);//------------------追加---------------------------
if(m->mexp)
rate = mob_droprate_fix(&sd->bl, m->dropitem[i].nameid, m->dropitem[i].p, 1);
else
rate = mob_droprate_fix(&sd->bl, m->dropitem[i].nameid, m->dropitem[i].p, 0);
//---------------------ここまで-------------------- if (rate > 0) {
len += sprintf(output + len, " - %s %02.02lf%%", item_data->jname, (double)rate / 100.);
赤い部分を消し、青い部分を追加.
*★*―――――*★*―――――*★*―――――*★*―――――*★*
battle.c
L5750行周辺
{ "refinery_research_lv", &battle_config.refinery_research_lv, 0 },
{ "maprespawnguildid_all_players", &battle_config.maprespawnguildid_all_players, 0 },
//------------------追加--------------------
{ "mvpmob_item_drop_rate", &battle_config.mvpmob_item_drop_rate, 100 },
{ "mvpmob_card_drop_rate", &battle_config.mvpmob_card_drop_rate, 100 },
//---------------------ここまで--------------------
{ NULL, NULL, 0 },
};
青い部分を追加
*★*―――――*★*―――――*★*―――――*★*―――――*★*
battle.h
L570周辺
int trap_splash_on;
int firepillar_splash_on;
int mob_nohitstop_rate;
int refinery_research_lv;
int maprespawnguildid_all_players;
//------------------追加-------------by mame-------
int mvpmob_item_drop_rate;
int mvpmob_card_drop_rate;
//---------------------ここまで--------------------} battle_config;
青い部分を追加
*★*―――――*★*―――――*★*―――――*★*―――――*★*
mob.c
L1900行周辺
if(mob_db[md->class_].dropitem[i].nameid <= 0)
continue;
drop_rate = mob_droprate_fix( src, mob_db[md->class_].dropitem[i].nameid, mob_db[md->class_].dropitem[i].p );//------------------追加-------------by mame-------
if(mob_db[md->class_].mexp > 0)
drop_rate = mob_droprate_fix( src, mob_db[md->class_].dropitem[i].nameid, mob_db[md->class_].dropitem[i].p,1 );
else
drop_rate = mob_droprate_fix( src, mob_db[md->class_].dropitem[i].nameid, mob_db[md->class_].dropitem[i].p,0 );
//---------------------ここまで--------------------
if(drop_rate <= 0 && battle_config.drop_rate0item)
drop_rate = 1;
if(drop_rate <= atn_rand()%10000)
continue;
赤い部分を消し、青い部分を追加
mob_droprate_fix関数
L2281行周辺
/*==========================================
* ドロップ率に倍率を適用
*------------------------------------------
*/
int mob_droprate_fix(struct block_list *bl,int item,int drop
, int mvp)
{
青い部分を追加
同じ関数のバブルガムの上あたり
break;
default:
drop_fix = drop * battle_config.other_drop_rate / 100;
break;
}
}
//------------------追加-------------------
if(mvp) {
if(battle_config.mvpmob_card_drop_rate<0) {
if(itemdb_type(item)==6) {
drop_fix = (drop_fix*100)/-battle_config.mvpmob_card_drop_rate;
} else {
drop_fix = (drop_fix*100)/-battle_config.mvpmob_item_drop_rate;
}
} else {
if(itemdb_type(item)==6) {
drop_fix = (drop_fix*battle_config.mvpmob_card_drop_rate)/100;
} else {
drop_fix = (drop_fix*battle_config.mvpmob_item_drop_rate)/100;
}
}
}
//---------------------ここまで--------------------
// バブルガム
if(sc && sc->data[SC_ITEMDROPRATE].timer != -1)
drop_fix = drop_fix * sc->data[SC_ITEMDROPRATE].val1 / 100;
青い部分を追加
*★*―――――*★*―――――*★*―――――*★*―――――*★*
mob.h
L 220行目周辺
int mob_droprate_fix(struct block_list *bl,int item,int drop
, int mvp);
青い部分を追加
*★*―――――*★*―――――*★*―――――*★*―――――*★*
pc.c
L2900周辺
int pc_bonus3関数
switch(type) {
case SP_ADD_MONSTER_DROP_ITEM:
if(sd->state.lr_flag != 2) {
if(battle_config.dropitem_itemrate_fix == 1)
val = mob_droprate_fix(&sd->bl,type2,val);//------------------追加-------------by mame-------
val = mob_droprate_fix(&sd->bl,type2,val,0);
//---------------------ここまで-------------------- else if(battle_config.dropitem_itemrate_fix > 1)
val = val * battle_config.dropitem_itemrate_fix / 100;
for(i=0; i<sd->monster_drop_item_count; i++) {
赤い部分を消して青い部分を追加