Madeon Posted December 5, 2019 Posted December 5, 2019 Buenas chicos y chicas, Por que cuando mato un monstruo que esta fuera de la lista de este script me tira el siguiente error en la consola -- Script hecho por Mabuhay (sin testear) - script mvp_announce -1,{ OnInit: setarray .mobid, 1002, 1001; setarray .map$, "prt_fild08", "prontera"; end; OnNPCKillEvent: .@index = inarray(.mobid[0], killedrid ); if ( strcharinfo(3) == .map$[.@index] ) { announce "["+ strcharinfo(0) +"] ha matado "+ getmonsterinfo( killedrid, MOB_NAME ) +" en el mapa "+ strcharinfo(3) +".", bc_all; } } Error [Warning]: script:getelementofarray: index out of range (-1) [Debug]: Data: variable name='.map$' index=0 [Debug]: Source (NPC): jklasdf (invisible/not on a map) Quote
sader1992 Posted December 5, 2019 Posted December 5, 2019 if (.@index != -1 && strcharinfo(3) == .map$[.@index] ) { Quote
Madeon Posted December 5, 2019 Author Posted December 5, 2019 1 hour ago, sader1992 said: if (.@index != -1 && strcharinfo(3) == .map$[.@index] ) { [Warning]: script:getelementofarray: index out of range (-1) [Debug]: Data: variable name='.map$' index=0 [Debug]: Source (NPC): mvp_announce (invisible/not on a map) Aun sigue tirando error Quote
sader1992 Posted December 5, 2019 Posted December 5, 2019 try - script mvp_announce -1,{ OnInit: setarray .mobid, 1002, 1001; setarray .map$, "prt_fild08", "prontera"; end; OnNPCKillEvent: if((.@index = inarray(.mobid[0], killedrid )) != -1){ if ( strcharinfo(3) == .map$[.@index] ) { announce "["+ strcharinfo(0) +"] ha matado "+ getmonsterinfo( killedrid, MOB_NAME ) +" en el mapa "+ strcharinfo(3) +".", bc_all; } } } Quote
Mael Posted December 5, 2019 Posted December 5, 2019 (edited) Si gustas también puedes probar este. - script #mvp_announcer -1,{ OnInit: // .gmp = 40; // Nivel de GM para preever anuncio. // Lista de Mapas de MVP. setarray .t_maps$[0],"moc_pryd06","lhz_dun03","gld2_prt","abbey02","ayo_dun02","lhz_dun04","ra_fild02","xmas_fild01","dic_dun02","beach_dun","iz_dun05","tur_dun04","lhz_dun02","jupe_core","moc_fild22","anthell02","odin_tem03","gon_dun03","gef_fild02","thana_boss","gef_fild10","ein_dun02","gef_fild14","moc_pryd04","dew_dun01","in_sphinx5","niflheim","moc_fild17","xmas_dun02","ice_dun03","kh_dun02","treasure02","moc_prydn2","pay_dun04","ra_san05","mosk_dun03","ama_dun03","thor_v03","gef_dun01","mjolnir_04","abyss_03","dic_dun03","prt_sewb4","pay_fild11","gef_dun02","gl_chyard","ra_fild03","ra_fild04","ve_fild01","ve_fild02","lou_dun03","prt_maze03","bra_dun02"; end; OnNPCKillEvent: //if (getgmlevel() >= .gmp ) end; if ( getmonsterinfo( killedrid, MOB_MVPEXP )) { for (.@a = 0; .@a < getarraysize(.t_maps$); .@a++) { if ( strcharinfo(3) == .t_maps$[.@a]) { if ( getcharid(1) ) { getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { .@partymemberaid[.@c] = $@partymemberaid[.@i]; .@c++; } } announce "[ System ] : Player ["+ strcharinfo(0) +"] of party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), bc_all; } else { announce "[ System ] : Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" alone at "+ strcharinfo(3), bc_all; } end; } } } } Aquí modifica los mapas en los que se encuentran los mvps que contarán: setarray .t_maps$[0],"moc_pryd06","lhz_dun03","gld2_prt","abbey02","ayo_dun02","lhz_dun04","ra_fild02","xmas_fild01","dic_dun02","beach_dun","iz_dun05","tur_dun04","lhz_dun02","jupe_core","moc_fild22","anthell02","odin_tem03","gon_dun03","gef_fild02","thana_boss","gef_fild10","ein_dun02","gef_fild14","moc_pryd04","dew_dun01","in_sphinx5","niflheim","moc_fild17","xmas_dun02","ice_dun03","kh_dun02","treasure02","moc_prydn2","pay_dun04","ra_san05","mosk_dun03","ama_dun03","thor_v03","gef_dun01","mjolnir_04","abyss_03","dic_dun03","prt_sewb4","pay_fild11","gef_dun02","gl_chyard","ra_fild03","ra_fild04","ve_fild01","ve_fild02","lou_dun03","prt_maze03","bra_dun02"; Nota: Como no sé que modo estas utilizando "RE o PRE" ahí puedes ir eligiendo a tu gusto. Para que funcione todo perfectamente te recomendaría poner mapflag de uso de bloody branch en esos maps claro es una sugerencia. Para activar la función para GMs solo descomenta estos: // .gmp = 40; // Nivel de GM para preever anuncio. //if (getgmlevel() >= .gmp ) end; Créditos a @pajodex por el script, yo solo removí algunas funciones y lo convertí solo en anunciador. Edited December 8, 2019 by Mael complementar información Quote
Madeon Posted December 5, 2019 Author Posted December 5, 2019 (edited) Gracías Mael y sader1992... Usare el siguiente que es más facil de entender y editar. 1 hour ago, Mael said: Si gustas también puedes probar este. - script #mvp_announce -1,{ OnInit: // .gmp = 40; // Nivel de GM para preever anuncio. // Lista de Mapas de MVP. setarray .t_maps$[0],"moc_pryd06","lhz_dun03","gld2_prt","abbey02","ayo_dun02","lhz_dun04","ra_fild02","xmas_fild01","dic_dun02","beach_dun","iz_dun05","tur_dun04","lhz_dun02","jupe_core","moc_fild22","anthell02","odin_tem03","gon_dun03","gef_fild02","thana_boss","gef_fild10","ein_dun02","gef_fild14","moc_pryd04","dew_dun01","in_sphinx5","niflheim","moc_fild17","xmas_dun02","ice_dun03","kh_dun02","treasure02","moc_prydn2","pay_dun04","ra_san05","mosk_dun03","ama_dun03","thor_v03","gef_dun01","mjolnir_04","abyss_03","dic_dun03","prt_sewb4","pay_fild11","gef_dun02","gl_chyard","ra_fild03","ra_fild04","ve_fild01","ve_fild02","lou_dun03","prt_maze03","bra_dun02"; end; OnNPCKillEvent: //if (getgmlevel() >= .gmp ) end; if ( getmonsterinfo( killedrid, MOB_MVPEXP )) { for (.@a = 0; .@a < getarraysize(.t_maps$); .@a++) { if ( strcharinfo(3) == .t_maps$[.@a]) { if ( getcharid(1) ) { getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { .@partymemberaid[.@c] = $@partymemberaid[.@i]; .@c++; } } announce "[ System ] : Player ["+ strcharinfo(0) +"] of party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), bc_all; } else { announce "[ System ] : Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" alone at "+ strcharinfo(3), bc_all; } end; } } } } Aquí modifica los mapas en los que se encuentran los mvps que contarán: setarray .t_maps$[0],"moc_pryd06","lhz_dun03","gld2_prt","abbey02","ayo_dun02","lhz_dun04","ra_fild02","xmas_fild01","dic_dun02","beach_dun","iz_dun05","tur_dun04","lhz_dun02","jupe_core","moc_fild22","anthell02","odin_tem03","gon_dun03","gef_fild02","thana_boss","gef_fild10","ein_dun02","gef_fild14","moc_pryd04","dew_dun01","in_sphinx5","niflheim","moc_fild17","xmas_dun02","ice_dun03","kh_dun02","treasure02","moc_prydn2","pay_dun04","ra_san05","mosk_dun03","ama_dun03","thor_v03","gef_dun01","mjolnir_04","abyss_03","dic_dun03","prt_sewb4","pay_fild11","gef_dun02","gl_chyard","ra_fild03","ra_fild04","ve_fild01","ve_fild02","lou_dun03","prt_maze03","bra_dun02"; Nota: Como no sé que modo estas utilizando "RE o PRE" ahí puedes ir eligiendo a tu gusto. Para que funcione todo perfectamente te recomendaría poner mapflag de uso de bloody branch en esos maps claro es una sugerencia. Para activar la función para GMs solo descomenta estos: // .gmp = 40; // Nivel de GM para preever anuncio. //if (getgmlevel() >= .gmp ) end; Créditos a @pajodex por el script, yo solo removí algunas funciones y lo convertí solo en anunciador. Edited December 5, 2019 by Madeon Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.