ValmurWeismann Posted March 19, 2019 Posted March 19, 2019 Hi, i just created a custom pet in L2OFF Interlude version. In client side, i make a copy of hatching of the star for npcname-e.dat and npcgrp.dat In server side, i also make a copy in npcdata.txt, petdata.txt and already rebuild pch. I also edit AI of pet manager to bind the pet with summon item. Everything is fine, except on the original pet, in action menu, it have 2 button for cast skill. But it doesn't appear in my custom pet. Does anyone know which file control those button? I also check in AI section and decomplied this class 1 pet_wizard_use_2skill : default_npc { parameter: int DDMagic = 1024257; int Heal = 1031169; handler: EventHandler CREATED() { myself::AddPetDefaultDesire_Follow(20.000000); } EventHandler NO_DESIRE() { myself::AddPetDefaultDesire_Follow(20.000000); } EventHandler MENU_SELECTED(talker,ask,reply,action_id,i0,c0,so0) { select(action_id) { case 1005: if( myself.sm.level < 70 ) { i0 = ( myself.sm.level / 10 ); if( i0 < 0 ) { i0 = 1; } } else { i0 = ( 7 + ( ( myself.sm.level - 70 ) / 5 ) ); } if( i0 > 12 ) { i0 = 12; } i0 = ( i0 + DDMagic ); if( myself::Skill_GetConsumeMP(i0) < myself.sm.mp && myself::Skill_GetConsumeHP(i0) < myself.sm.hp && myself::Skill_InReuseDelay(i0) == 0 ) { RemoveAllAttackDesire(); myself::AddUseSkillDesireEx(myself.master.target_id,i0,0,reply,ask,1000000,0); myself::AddAttackDesireEx(myself.master.target_id,1,0,50000); } break; case 1006: if( myself.sm.level < 70 ) { i0 = ( myself.sm.level / 10 ); if( i0 < 0 ) { i0 = 1; } } else { i0 = ( 7 + ( ( myself.sm.level - 70 ) / 5 ) ); } if( i0 > 12 ) { i0 = 12; } i0 = ( i0 + Heal ); if( myself::Skill_GetConsumeMP(i0) < myself.sm.mp && myself::Skill_GetConsumeHP(i0) < myself.sm.hp && myself::Skill_InReuseDelay(i0) == 0 ) { myself::AddUseSkillDesireEx(myself.sm.id,i0,0,reply,ask,1000000,0); } break; } } EventHandler USE_SKILL_FINISHED(target,skill_name_id,i0,reply,ask) { if( myself.sm.level < 70 ) { i0 = ( myself.sm.level / 10 ); if( i0 < 0 ) { i0 = 1; } } else { i0 = ( 7 + ( ( myself.sm.level - 70 ) / 5 ) ); } if( i0 > 12 ) { i0 = 12; } i0 = ( i0 + Heal ); if( skill_name_id == i0 ) { if( myself::Skill_GetConsumeMP(i0) < myself.sm.c_ai3 && myself::Skill_GetConsumeHP(i0) < myself.sm.c_ai2 && myself::Skill_InReuseDelay(i0) == 0 ) { RemoveAllAttackDesire(); myself::AddUseSkillDesireEx(myself.master.target_id,i0,0,reply,ask,1000000,0); myself::AddAttackDesireEx(myself.master.target_id,1,0,50000); } } } } There two acton ID 1005 and 1006 make the pet cast skill, it must be something send from client. i already check HTML folder in server, and didn't found anything related to pet. Can anyone help me?
SGER@fjs Posted April 5, 2019 Posted April 5, 2019 to register a new visual button does it in actioname-e.dat 1
ValmurWeismann Posted April 13, 2019 Author Posted April 13, 2019 Thank you very much, it work. Case closed xD
sacrifice Posted June 29, 2019 Posted June 29, 2019 Hello For Final part only action ID 1085 is ok for add new action skill :( someone would have a solution to use more ID range than a single ?
GLO Posted July 3, 2019 Posted July 3, 2019 On 6/29/2019 at 7:58 AM, sacrifice said: Hello For Final part only action ID 1085 is ok for add new action skill :( someone would have a solution to use more ID range than a single ? check exBasicActionList in source
sacrifice Posted July 9, 2019 Posted July 9, 2019 yes I forget add ID action in exBasicActionList :) Thx
Recommended Posts