- script daily_main -1,{
OnInit:
.cutin_file$ = "daily_pic_%02d"; // daily_pic_00.bmp ~ daily_pic_06.bmp
.npc_name$ = strnpcinfo(0);
OnHour00:
.today = gettime(4);
// daily monster summon on X maps.
OnTimer120000: // 120 seconds.
switch( .today ) {
default:
.@map$ = "prontera";
.@mob_id = 1002;
.@amount = 20;
break;
case 1:
.@map$ = "prontera";
.@mob_id = 1002;
.@amount = 20;
break;
case 2:
.@map$ = "prontera";
.@mob_id = 1002;
.@amount = 20;
break;
case 3:
.@map$ = "prontera";
.@mob_id = 1002;
.@amount = 20;
break;
case 4:
.@map$ = "prontera";
.@mob_id = 1002;
.@amount = 20;
break;
case 5:
.@map$ = "prontera";
.@mob_id = 1002;
.@amount = 20;
break;
case 6:
.@map$ = "prontera";
.@mob_id = 1002;
.@amount = 20;
break;
}
if ( .@map$ != "" && .@map$ != .map$ ) {
killmonster .@map$,.npc_name$+"::OnMobDie";
.map$ = .@map$;
}
monster .@map$,0,0,"--ja--",.@mob_id,( .@amount - mobcount( .@map$,.npc_name$+"::OnMobDie" ) ),.npc_name$+"::OnMobDie";
initnpctimer;
end;
OnMobDie:
end;
OnNPCKillEvent:
callsub( OnMobRace, killedrid );
callsub( OnMobReward );
end;
OnMobRace:
.@mob_id = getarg( 0,0 );
.@race = getmonsterinfo( .@mob_id, MOB_RACE );
switch( .today ) {
default:
.@exp_bonus_rate = 30;
.@today_race = RC_Formless;
break;
case 1:
.@exp_bonus_rate = 30;
.@today_race = RC_Undead;
break;
case 2:
.@exp_bonus_rate = 30;
.@today_race = RC_Brute;
break;
case 3:
.@exp_bonus_rate = 30;
.@today_race = RC_Plant;
break;
case 4:
.@exp_bonus_rate = 30;
.@today_race = RC_Insect;
break;
case 5:
.@exp_bonus_rate = 30;
.@today_race = RC_Fish;
break;
case 6:
.@exp_bonus_rate = 30;
.@today_race = RC_Demon;
break;
case 7:
.@exp_bonus_rate = 30;
.@today_race = RC_DemiHuman;
break;
}
if ( .@race == .@today_race && .@exp_bonus_rate ) {
.@bexp = getmonsterinfo( .@mob_id, MOB_BASEEXP );
.@jexp = getmonsterinfo( .@mob_id, MOB_JOBEXP );
.@bexp = ( .@bexp * .@exp_bonus_rate ) / 100 );
.@jexp = ( .@jexp * .@exp_bonus_rate ) / 100 );
BaseExp += .@bexp;
JobExp += .@jexp;
}
return;
// daily monster drop items.
OnMobReward:
if ( rand( 10000 ) < 10 ) { // 0.10% drop
switch( .today ) {
default:
getitem 512,1;
getitem 512,2;
break;
case 1:
getitem 512,1;
getitem 512,2;
break;
break;
case 2:
getitem 512,1;
getitem 512,2;
break;
break;
case 3:
getitem 512,1;
getitem 512,2;
break;
break;
case 4:
getitem 512,1;
getitem 512,2;
break;
break;
case 5:
getitem 512,1;
getitem 512,2;
break;
break;
case 6:
getitem 512,1;
getitem 512,2;
break;
break;
}
}
return;
OnPCLoginEvent:
if ( .cutin_file$ != "" ) {
cutin sprintf( .cutin_file$,.today ),3;
sleep2 3000;
cutin "",255;
}
end;
}
Comments