- script signpost -1,{
.@map_prefix$ = strnpcinfo(2);
if( .@map_prefix$ == "" ){
mes "Invalid Map";
}else{
do{
mes "["+getd( ".sp_"+.@map_prefix$+"$[0]" )+"]";
mes "In order for Adventurers to travel all over the world for a relaxing adventure, Information gathered from various adventurers are made public. Please provide information tips to the adventurer group to revise the information.";
mes "-- Adventurer Group --";
next;
.@mode = select( "Look up monsters by floor","Monster Information Retrieval System",( countitem(909) < 30000 )?"":"Request","Cancel" );
.@map_size = getarraysize( getd( ".sp_"+.@map_prefix$+"$" ) );
switch( .@mode ){
Case 1:
.@menu$ = "";
// generate floor menu
.@i = 1;
while( .@i < ( .@map_size - 1 ) ){
.@menu$ = .@menu$ + getd( ".sp_"+.@map_prefix$+"$["+( .@i + 1 )+"]" ) +":";
.@i += 2;
}
next;
.@map_floor = select( .@menu$ );
.@map_index = ( .@map_floor * 2 );
// list monster that that floor
mes "["+getd( ".sp_"+.@map_prefix$+"$["+.@map_index+"]" )+"]";
mes "------------ Monster ------------";
.@mob_size = getarraysize( getd( ".sp_"+.@map_prefix$+"_"+.@map_floor+"_mob" ) );
.@i = 0;
while( .@i < .@mob_size ){
.@map_mob[.@i] = getd( ".sp_"+.@map_prefix$+"_"+.@map_floor+"_mob["+.@i+"]" );
.@map_qty[.@i] = getd( ".sp_"+.@map_prefix$+"_"+.@map_floor+"_qty["+.@i+"]" );
mes " > "+getmonsterinfo( .@map_mob[.@i],MOB_NAME )+" ( "+.@map_qty[.@i]+" )";
.@i++;
}
mes "--------------------------------";
break;
Case 2:
mes "[Monster Information System]";
mes "This is Monster Information System. Information of the monsters that appear in this dungeon can be searched.";
.@floor_size = (( .@map_size - 2 ) / 2 );
deletearray .@mob_array;
.@mob_menu$ = "";
.@floor = 1;
while( .@floor <= .@floor_size ){
.@mob_size = getarraysize( getd( ".sp_"+.@map_prefix$+"_"+.@floor+"_mob" ) );
.@mob = 0;
.@mob_menu$ = "";
while( .@mob < .@mob_size ){
.@mob_id = getd( ".sp_"+.@map_prefix$+"_"+.@floor+"_mob["+.@mob+"]" );
.@mob_name$ = getmonsterinfo( .@mob_id,MOB_NAME );
if( !compare( ":"+.@mob_menu$+":",":"+.@mob_name$+":" ) ){
if( .@mob_array_size ) .@mob_menu$ = .@mob_menu$ + ":";
.@mob_menu$ = .@mob_menu$ + .@mob_name$;
.@mob_array[ .@mob_array_size ] = .@mob_id;
.@mob_array_size++;
}
.@mob++;
}
.@floor++;
}
next;
.@i = select( .@mob_menu$ ) - 1;
mes "[Monster Information System]";
mes "- Name : "+getmonsterinfo( .@mob_array[.@i],MOB_NAME );
mes "- Element : "+.element$[ getmonsterinfo( .@mob_array[.@i],MOB_ELEMENT ) ];
mes "- Size : "+.size$[ getmonsterinfo( .@mob_array[.@i],MOB_SIZE ) ];
mes "- Race : "+.race$[ getmonsterinfo( .@mob_array[.@i],MOB_RACE ) ];
break;
default: close;
}
next;
}while( .@mode < 3 );
}
close;
function AddMapCategory;
function AddFloorMonster;
OnInit:
if( strnpcinfo(2) != "" ) end;
setarray .size$,
"Small",
"Medium",
"Large";
setarray .element$,
"Neutral",
"Water",
"Earth",
"Fire",
"Wind",
"Poison",
"Holy",
"Dark",
"Ghost",
"Undead";
setarray .race$,
"Formless",
"Undead",
"Brute",
"Plant",
"Insect",
"Fish",
"Demon",
"DemiHuman",
"Angel",
"Dragon",
"Boss",
"Non-Boss",
"Non-DemiHuman";
// SETUP
// AddMapCategory( "<npc hidden name>","<Dungeon Name>","<map1>","<map1 name>",....,"<map60>","<map60 name>" );
// AddFloorMonster( <mobid>,<count>,.....,<mobid64>,<count> );
// Add Monster According Maps
AddMapCategory( "anthell","Ant Hell Dungeon","anthell01","Ant Hell Lv1","anthell02","Ant Hell Lv2" );
AddFloorMonster( 1005,20,1095,15,1097,87,1105,40,1121,1,1160,50,1176,10 );
AddFloorMonster( 1005,10,1095,7,1097,43,1105,20,1121,2,1160,25,1176,5 );
AddMapCategory( "gefdun","Geffen Dungeon","gef_dun00","Geffen Dungeon Lv1","gef_dun01","Geffen Dungeon Lv2","gef_dun02","Geffen Dungeon Lv3","gef_dun03","Geffen Dungeon Lv4" );
AddFloorMonster( 1031,15,1035,30,1077,25,1078,12,1080,1,1081,1,1083,1,1084,6 );
AddFloorMonster( 1015,25,1036,40,1061,30,1079,1,1082,10,1084,5,1111,20,1130,40,1389,1 );
AddFloorMonster( 1035,10,1036,10,1046,1,1061,20,1082,12,1083,2,1109,45,1143,30,1179,20 );
AddFloorMonster( 1082,10,1083,3,1192,8,1263,3,1291,4,1626,1 );
end;
function AddMapCategory {
.@argcount = getargcount();
.map_prefix$ = getarg(0);
.@i = 1;
while( .@i < .@argcount ){
setd( ".sp_"+.map_prefix$+"$["+( .@i-1 )+"]" ),getarg( .@i );
.@i++;
}
.map_floor = 0;
return;
}
function AddFloorMonster {
.@argcount = getargcount();
.map_floor++;
while( .@i < .@argcount ){
.@mob_id = getarg( .@i );
.@count = getarg( .@i+1 );
if( getmonsterinfo( .@mob_id,MOB_NAME ) != "null" && .@count ){
setd( ".sp_"+.map_prefix$+"_"+.map_floor+"_mob["+.@index+"]" ),.@mob_id;
setd( ".sp_"+.map_prefix$+"_"+.map_floor+"_qty["+.@index+"]" ),.@count;
.@index++;
}
.@i += 2;
}
return;
}
}
prontera,155,181,5 duplicate(signpost) Sign Post#anthell 757
prontera,155,183,5 duplicate(signpost) Sign Post#gefdun 757