I requested for this script from someone but he's kind of taking long to response, so I request assistance on fixing this.
This script is supposed to summon a list of monsters that players need to hunt and will be rewarded with experience. Though, it keeps saying "There doesn't seem to be any monsters in that group".
//By Skorm v1.2.3 4/21/15s_atelier,73,129,4 script Monster Hunter 414,{ function t { function s; set .@left, getarg(0); if ( .@left <= 0 ) return getarg(0); set .@day, .@left / 86400; set .@hour, .@left % 86400 / 3600; set .@min, .@left % 3600 / 60; set .@[member=SEC], .@left % 60; .@mes$ = ( .@day ? .@day +" day"+ s( .@day ) : "" ) + ( .@hour ? .@hour +" hour"+ s( .@hour ) : "" ) + ( .@min ? .@min +" minute"+ s( .@min ) : "" ) + ( .@[member=SEC] ? .@[member=SEC] +" second"+ s( .@[member=SEC],1 ) : "" ); if ( charat( .@mes$, getstrlen(.@mes$)-1 ) == " " ) .@mes$ = delchar( .@mes$, getstrlen(.@mes$)-1 ); return ( .@mes$ ); function s { return ( ( getarg(0) > 1 ? "s" : "" ) + ( getarg(1,0) ? "" : " " ) ); } } if( getstrlen( mh_q_ids$ ) ) { .@len = getarraysize( @mh_q_a$ ); for( .@h = 0; .@h < .@len; .@h++ ) { deletearray .@g$; explode( .@g$, @mh_q_b$[.@h], "#" ); //.@BEXP = .@BEXP + ( getmonsterinfo( atoi(@mh_q_a$[.@h]), MOB_BASEEXP ) * atoi(.@g$) ); //.@JEXP = .@JEXP + ( getmonsterinfo( atoi(@mh_q_a$[.@h]), MOB_JOBEXP ) * atoi(.@g$) ); if( atoi(.@g$[1]) < atoi(.@g$) ) .@mes$[getarraysize(.@mes$)] = getmonsterinfo( atoi(@mh_q_a$[.@h]), MOB_NAME )+"^000000 [^0000ff"+(.@g$[1]==""?0:.@g$[1])+"^000000/^0000ff"+.@g$+"^000000]"; } if( !getarraysize( .@mes$ ) ) { .@BEXP = .exp_sets[mh_select]; .@JEXP = .exp_sets[mh_select+1]; mes "[ Monster hunter ]"; mes "Oh wow you're done that's great! Here's you reward!"; next; mes "[ Monster hunter ]"; mes .@BEXP+" Base Experience and "+.@JEXP+" Job Experience!"; deletearray @mh_q_a$; deletearray @mh_q_b$; mh_q_ids$ = ""; mh_q_kls$ = ""; mh_q = 0; getexp .@BEXP,.@JEXP; close; } mes "[ Monster hunter ]"; mes "Oh it looks like you still have to kill: ^ff0000"+implode( .@mes$, "^000000, ^ff0000" )+"^000000."; if( mh_q < gettimetick(2) ) { next; mes "[ Monster hunter ]"; mes "Is this quest too hard? Do you want to switch?"; next; if( select( "Yes:No" ) == 2 ) { mes "[ Monster hunter ]"; mes "Alright take all the time you need so long as it gets done."; close; } deletearray .@mes$; goto(L_Start); } else { mes "-"; mes "Repick in: " + t( mh_q-gettimetick(2) )+ "."; } close; }L_Start: mes "[ Monster hunter ]"; mes "Hello would you like to accept a monster hunting quest?"; next; if( select( "Yes:No" ) == 2 ) { mes "[ Monster hunter ]"; mes "That kind of attitude isn't going to help us beat these monsters now is it?"; close; } mes "[ Monster hunter ]"; mes "Pick a page from the menu. Higher pages have harder monsters!"; next; .@menu = select ( "Page 1 ( Lv~ 1-16 Mobs ):"+ "Page 2 ( Lv~ 17-32 Mobs ):"+ "Page 3 ( Lv~ 33-48 Mobs ):"+ "Page 4 ( Lv~ 49-64 Mobs ):"+ "Page 5 ( Lv~ 65-80 Mobs ):"+ "Page 6 ( Lv~ 81-96 Mobs ):"+ "Page 7 ( Lv~ 97-112 Mobs ):"+ "Page 8 ( Lv~ 113-128 Mobs ):"+ "Page 9 ( Lv~ 129-144 Mobs ):"+ "Page 10 ( Lv~ 145-160 Mobs )" ); .@len = getarraysize( getd( ".id_"+.@menu ) ); copyarray .@id[0], getd( ".id_"+.@menu+"[0]" ), .@len; .@r_fight = rand( .@len < 3 ? .@len : 3, .@len < 5 ? .@len : 5 ); for( .@a = 0; .@a < .@r_fight; .@a++ ) { .@b = rand(.@len); .@r_kill$[.@a] = ""+rand( 5, 20 ); .@l_kill$[.@a] = ""+.@id[.@b]; .@mes$[.@a] = getmonsterinfo( .@id[.@b], MOB_NAME )+"^000000 x^0000ff"+.@r_kill$[.@a]; deletearray .@id[.@b], 1; .@len--; } mes "[ Monster hunter ]"; if( !getarraysize(.@mes$) ) { mes "There doesn't seem to be"; mes "any monsters in that group."; mes "Try another one."; close; } mes "You have to fight: ^ff0000"+implode( .@mes$, "^000000, ^ff0000" )+"^000000."; mes "-"; mes "Do you accept?"; next; if( select( "Yes:No" ) == 2 ) { mes "[ Monster hunter ]"; mes "Alright sure maybe you want a different one."; close; } mh_q_ids$ = implode( .@l_kill$, "|" ); mh_q_kls$ = implode( .@r_kill$, "|" ); copyarray @mh_q_a$[0], .@l_kill$[0], getarraysize( .@l_kill$ ); copyarray @mh_q_b$[0], .@r_kill$[0], getarraysize( .@r_kill$ ); mh_q = gettimetick(2)+.restart_delay; mh_select = .@menu; mes "[ Monster hunter ]"; mes "Report back to me when you're finished!"; close; OnNPCKillEvent: if( compare( "|"+mh_q_ids$+"|", "|"+killedrid+"|" ) ) { .@len = getarraysize( @mh_q_a$ ); for( .@a = 0; .@a < .@len; .@a++ ) if( atoi(@mh_q_a$[.@a]) == killedrid ) break; explode( .@g$, @mh_q_b$[.@a], "#" ); if( atoi(.@g$[1]) < atoi(.@g$) ) { .@g$[1] = atoi(.@g$[1])+1; @mh_q_b$[.@a] = .@g$+"#"+.@g$[1]; mh_q_kls$ = implode( @mh_q_b$, "|" ); if( atoi(.@g$[1]) < atoi(.@g$) ) announce getmonsterinfo( killedrid, MOB_NAME )+" ["+.@g$[1]+"/"+.@g$+"]",bc_self; else announce getmonsterinfo( killedrid, MOB_NAME )+" Complete!",bc_self; } } end; OnPCLoginEvent: if( getstrlen(mh_q_ids$) ) { explode( @mh_q_a$, mh_q_ids$, "|" ); explode( @mh_q_b$, mh_q_kls$, "|" ); } end;//OnPCLogoutEvent:OnInit: setarray .exp_sets, // Bexp Jexp 1000, 1000, //Page 1 5000, 5000, //Page 2 10000, 10000,//Page 3 15000, 15000,//Page 4 20000, 20000,//Page 5 25000, 25000,//Page 6 30000, 30000,//Page 7 35000, 35000,//Page 8 40000, 40000,//Page 9 50000, 50000;//Page 10 .card_restriction = 0; // Restrict selected mobs to those who drop cards? .naturally_spawning = 1; // Restrict selected mobs to those who are naturally spawning? .mvp_restriction = 1; // Restrict MVPs from showing up on the list? .restart_delay = 86400; // The amount of time a player has to wait until he can pick a different quest in seconds. setarray .restricted_mobs$, "1120","1582","1096","1388", "1707","1268","1302","1091", "1299","1093","1296","1090", "1289","1262","1295","1089", "1088","1283"; // Comment out to disable. .@r_len = getarraysize(.restricted_mobs$); freeloop(1); for( .@i = 1; .@i <= 160; .@i = .@i + 16 ) { query_sql ( "SELECT `ID` "+ "FROM `mob_db` "+ "WHERE `Sprite` NOT LIKE 'E_%' "+ "AND `Sprite` NOT LIKE 'I_%' "+ "AND `Sprite` NOT LIKE 'J_%' "+ "AND `Sprite` NOT LIKE 'G_%' "+ "AND `Sprite` NOT LIKE 'N_%' "+ ( ( .card_restriction ) ? "AND ( "+ "`DropCardid` BETWEEN 4000 AND 4610 "+ "OR `DropCardid` BETWEEN 2269 AND 2270 "+ ") " : "" ) + ( ( .@r_len ) ? "AND `ID` <> "+ implode( .restricted_mobs$, "AND `ID` <> " )+" " : "" ) + "AND `LV` BETWEEN "+.@i+" AND "+(.@i+15)+" "+ ( ( .mvp_restriction ) ? "AND `MEXP` = 0 " : "" ) + "GROUP BY `iName` "+ "ORDER BY `ID` ASC "+ "LIMIT 127;", .id ); .@a++; if( .naturally_spawning ) { .@len = getarraysize( .id ); for( .@b = 0; .@b < .@len; .@b++ ) { $@sp$ = ""; atcommand "@whereis "+.id[.@b]; if( !atoi($@sp$) ) { deletearray .id[.@b], 1; .@len--; .@b--; } } } copyarray getd( ".id_"+.@a+"[0]" ), .id[0], getarraysize( .id ); deletearray .id; }}