Skip to content

Custom skill button for custom pet

Featured Replies

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?

  • 3 weeks later...

to register a new visual button does it in actioname-e.dat

 

  • 2 months later...

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 ?

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

yes I forget add ID action in exBasicActionList  :)

Thx

  • GLO locked this topic
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.