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?