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; }}
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".
Share this post
Link to post
Share on other sites