KhrizPlayCL Posted March 18, 2021 Share Posted March 18, 2021 (edited) Amigos, buenas tardes, solicito su apoyo para identificar el siguiente problema, tengo el siguiente script que entrega, heal, repara equipo, identifica y refina piedras, el problema es que el código de identificar muestra el siguiente error en consola, como información adicional uso Centos7, ultima versión de rathena y un cliente 2018 en sistema PRE-RE [Error]: pc_checkskill: Invalid skill id 0 (char_id=150000). [Error]: buildin_countitem: Invalid item '0'. [Debug]: Source (NPC): Healer#prt at prontera (162,193) [Error]: pc_checkskill: Invalid skill id 0 (char_id=150000). [Error]: pc_checkskill: Invalid skill id 0 (char_id=150000). [Error]: pc_checkskill: Invalid skill id 0 (char_id=150000). [Error]: pc_checkskill: Invalid skill id 0 (char_id=150000). código NPC //===== rAthena Script ======================================= //= Healer //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Basic healer script. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.1 Aligned coordinates with @go. //============================================================ - script Healer -1,{ [email protected] = 0; // Zeny required for heal [email protected] = 1; // Also buff players? (1: yes / 0: no) [email protected] = 5; // Heal delay, in seconds if (@HD > gettimetick(2)) end; if ([email protected]) { message strcharinfo(0), "Healing costs " + callfunc("F_InsertComma",[email protected]) + " Zeny."; if (Zeny < [email protected]) end; if (select("^0055FFHeal^000000:^777777Cancel^000000") == 2) end; Zeny -= [email protected]; } // Elimina Los Buff negativos sc_end SC_STONE; sc_end SC_FREEZE; sc_end SC_STUN; sc_end SC_SLEEP; sc_end SC_POISON; sc_end SC_CURSE; sc_end SC_SILENCE; sc_end SC_CONFUSION; sc_end SC_BLIND; sc_end SC_BLEEDING; sc_end SC_QUAGMIRE; sc_end SC_DECREASEAGI; sc_end SC_BERSERK; // refina Oridicon [email protected] = countitem(756); if ( [email protected] >= 5 ) { delitem 756, [email protected] / 5 * 5; getitem 984, [email protected] / 5; message strcharinfo(0), "Refined "+ ( [email protected] / 5 * 5 ) +" Oridecon Stones, got "+ ( [email protected] / 5 ) +" Oridecons."; } // refina Elunium [email protected] = countitem(757); if ( [email protected] >= 5 ) { delitem 757, [email protected] / 5 * 5; getitem 985, [email protected] / 5; message strcharinfo(0), "Refined "+ ( [email protected] / 5 * 5 ) +" Elunium Stones, got "+ ( [email protected] / 5 ) +" Eluniums."; } // repara el equipo dañado if( getbrokenid(1) ) repairall; // identifica el equipamiento getinventorylist; while( [email protected] < @inventorylist_count ){ getinventorylist; freeloop(true); for( [email protected] = 0; [email protected] < @inventorylist_count; [email protected]++ ) { if ( @inventorylist_identify[[email protected]] == 1 ) continue; else if ( getskilllv(MC_IDENTIFY) == 1 && Sp >= 10 ) heal 0,0; // lol... this is supposed to reduce their SP by 10, whatever else if ( countitem(Spectacles) ) delitem Spectacles,1; else if ( getskilllv(RG_COMPULSION) && Zeny >= ( 100 - ( 5 + 4 * getskilllv(RG_COMPULSION) ) )* 2/5 ) Zeny -= ( 100 - ( 5 + 4 * getskilllv(RG_COMPULSION) ) )* 2/5; else if ( getskilllv(MC_DISCOUNT) && Zeny >= ( 100 - ( 5 + 2 * getskilllv(MC_DISCOUNT) ) )* 2/5 ) Zeny -= ( 100 - ( 5 + 2 * getskilllv(MC_DISCOUNT) ) )* 2/5; else if ( Zeny >= 40 ) Zeny -= 40; else break; delitem2 @inventorylist_id[[email protected]], 1, 0, @inventorylist_refine[[email protected]], @inventorylist_attribute[[email protected]], @inventorylist_card1[[email protected]], @inventorylist_card2[[email protected]], @inventorylist_card3[[email protected]], @inventorylist_card4[[email protected]]; getitem2 @inventorylist_id[[email protected]], 1, 1, @inventorylist_refine[[email protected]], 0, @inventorylist_card1[[email protected]], @inventorylist_card2[[email protected]], @inventorylist_card3[[email protected]], @inventorylist_card4[[email protected]]; [email protected]++; } freeloop(false); if ( [email protected] ) message strcharinfo(0), "Identified "+ [email protected] +" Items."; } // Entrega los Buff specialeffect2 EF_HEAL2; percentheal 100,100; if ([email protected]) { specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,240000,10; specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10; } percentheal 100,100; if ([email protected]) @HD = gettimetick(2) + [email protected]; end; } // Duplicates //============================================================ alberta,25,240,6 duplicate(Healer) Healer#alb 909,13,13 aldebaran,135,118,6 duplicate(Healer) Healer#alde 909,13,13 amatsu,200,79,4 duplicate(Healer) Healer#ama 909,13,13 ayothaya,207,169,6 duplicate(Healer) Healer#ayo 909,13,13 comodo,184,158,6 duplicate(Healer) Healer#com 909,13,13 einbech,57,36,6 duplicate(Healer) Healer#einbe 909,13,13 einbroch,57,202,6 duplicate(Healer) Healer#einbr 909,13,13 geffen,115,72,6 duplicate(Healer) Healer#gef 909,13,13 gonryun,156,122,6 duplicate(Healer) Healer#gon 909,13,13 hugel,89,150,6 duplicate(Healer) Healer#hug 909,13,13 izlude,125,118,6 duplicate(Healer) Healer#izl 909,13,13 //Pre-RE: (125,118) jawaii,250,139,4 duplicate(Healer) Healer#jaw 909,13,13 lighthalzen,152,100,6 duplicate(Healer) Healer#lhz 909,13,13 louyang,226,103,4 duplicate(Healer) Healer#lou 909,13,13 manuk,272,144,6 duplicate(Healer) Healer#man 909,13,13 mid_camp,203,289,6 duplicate(Healer) Healer#mid 909,13,13 moc_ruins,72,164,4 duplicate(Healer) Healer#moc 909,13,13 morocc,153,97,6 duplicate(Healer) Healer#mor 909,13,13 moscovia,220,191,4 duplicate(Healer) Healer#mos 909,13,13 niflheim,212,182,5 duplicate(Healer) Healer#nif 909,13,13 payon,179,106,4 duplicate(Healer) Healer#pay 909,13,13 prontera,162,193,4 duplicate(Healer) Healer#prt 909,13,13 rachel,125,116,6 duplicate(Healer) Healer#rac 909,13,13 splendide,201,153,4 duplicate(Healer) Healer#spl 909,13,13 thor_camp,249,74,4 duplicate(Healer) Healer#thor 909,13,13 umbala,105,148,3 duplicate(Healer) Healer#umb 909,13,13 veins,217,121,4 duplicate(Healer) Healer#ve 909,13,13 xmas,143,136,4 duplicate(Healer) Healer#xmas 909,13,13 yuno,164,45,4 duplicate(Healer) Healer#yuno 909,13,13 // Duplicates (Renewal) //============================================================ brasilis,194,221,6 duplicate(Healer) Healer#bra 909,13,13 dewata,195,187,4 duplicate(Healer) Healer#dew 909,13,13 dicastes01,201,194,4 duplicate(Healer) Healer#dic 909,13,13 ecl_in01,45,60,4 duplicate(Healer) Healer#ecl 909,13,13 malangdo,132,114,6 duplicate(Healer) Healer#mal 909,13,13 malaya,227,204,6 duplicate(Healer) Healer#ma 909,13,13 mora,55,152,4 duplicate(Healer) Healer#mora 909,13,13 saludos, Edited March 18, 2021 by KhrizPlayCL texto Quote Link to comment Share on other sites More sharing options...
KhrizPlayCL Posted March 18, 2021 Author Share Posted March 18, 2021 Problema Solucionado hay que modificar el código por el siguiente, cambiando los nombre de las skill e item por las ID // identifica el equipamiento getinventorylist; while( [email protected] < @inventorylist_count ){ getinventorylist; freeloop(true); for( [email protected] = 0; [email protected] < @inventorylist_count; [email protected]++ ) { if ( @inventorylist_identify[[email protected]] == 1 ) continue; else if ( getskilllv(40) == 1 && Sp >= 10 ) heal 0,0; // lol... this is supposed to reduce their SP by 10, whatever else if ( countitem(611) ) delitem 611,1; else if ( getskilllv(224) && Zeny >= ( 100 - ( 5 + 4 * getskilllv(224) ) )* 2/5 ) Zeny -= ( 100 - ( 5 + 4 * getskilllv(224) ) )* 2/5; else if ( getskilllv(37) && Zeny >= ( 100 - ( 5 + 2 * getskilllv(37) ) )* 2/5 ) Zeny -= ( 100 - ( 5 + 2 * getskilllv(37) ) )* 2/5; else if ( Zeny >= 40 ) Zeny -= 40; else break; delitem2 @inventorylist_id[[email protected]], 1, 0, @inventorylist_refine[[email protected]], @inventorylist_attribute[[email protected]], @inventorylist_card1[[email protected]], @inventorylist_card2[[email protected]], @inventorylist_card3[[email protected]], @inventorylist_card4[[email protected]]; getitem2 @inventorylist_id[[email protected]], 1, 1, @inventorylist_refine[[email protected]], 0, @inventorylist_card1[[email protected]], @inventorylist_card2[[email protected]], @inventorylist_card3[[email protected]], @inventorylist_card4[[email protected]]; [email protected]++; } freeloop(false); if ( [email protected] ) message strcharinfo(0), "Identified "+ [email protected] +" Items."; } 1 Quote Link to comment Share on other sites More sharing options...