- 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( "