Jump to content
ValmurWeismann

Help Custom skill button for custom pet

Recommended Posts

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?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.



×