Jump to content
  • 0

[Help] With xml Npc Buffer Dance Songs Chants without party


Question

Posted

Hello.

I have a little problem with buffer. I have l2j project files based on overshare.su <-- all based on xml so that is reason i can't use standard here .py files , server engine "don't understand .py code. I manualy change one of buffer from here and put all code to hml file for ex :

<td><img src="L2UI_CH3.shortcut_next_down" width=16 height=16></td>
<td><button action="" width=32 height=32 back="icon.skill1040" fore="icon.skill1040"></td>
<td><button value="Shield"action="bypass -h npc_%objectId%_Buff 1040" width=70 height=32back="L2UI_CT1.Windows_DF_Drawer_Bg_Darker" fore="L2UI_CT1.Windows_DF_Drawer_Bg_Darker"></td>
<td><button value="Might"action="bypass -h npc_%objectId%_Buff 1068" width=70 height=32 back="L2UI_CT1.Windows_DF_Drawer_Bg_Darker" fore="L2UI_CT1.Windows_DF_Drawer_Bg_Darker"></td>
<td><button action="" width=32 height=32 back="icon.skill1068" fore="icon.skill1068"></td>
<td><img src="L2UI_CH3.shortcut_prev_down" width=16 height=16></td>

 

Npc is visible , and i can talk with them but when i click on "Might" button ( other the same) nothing happened. I trying understand code what is usable in that core ...

I trying with deferents type npc varible ,for ex : merchant, npc, <- that is somwhere in code ( dont know where) still nothing.

Maybe someone can tell me where i should search to find fix of my problem.

Thx anyway.

Sorry for my english.

Regards Olivier.

7 answers to this question

Recommended Posts

  • 0
Posted

I fixed my problem (my own idea :) ), but now i have other problem. My Npc Buffer give normaly and correctly buffs from PP,EE,SE but when i want get chants, dances, songs,( type of buffs where need party with caster) don't get it. For example i give here 1 line from html and one form java script :

 

For example part of java code for song of earth

 

public class Buffer extends Functions
{
.
.
.
.
public void get264()
{
	Player player = getSelf();
	NpcInstance npc = getNpc();
	if(player.getKarma() > 0)
		return;
	npc.doCast(SkillTable.getInstance().getInfo(264,1), player, true);
}
.
.
}

 

And html :

 <td><button value="Shield" action="bypass -h scripts_services.Buffer:get64" width=70 height=32 back="L2UI_CT1.Windows_DF_Drawer_Bg_Darker" fore="L2UI_CT1.Windows_DF_Drawer_Bg_Darker"></td> 

 

What i should put to fix giving dances chants etc..  ???

Im not so good on java code so i trying do smth by myself but not allways i can fix all problems.

  • 0
Posted

All o these codes working but not with dance songs chants :

player.doCast(SkillTable.getInstance().getInfo(264,1), player, true);

npc.broadcastPacket(new MagicSkillUse(npc, player, 264, 1, 0, 0));

npc.callSkill(SkillTable.getInstance().getInfo(264, 1), player, true);

 

Sorry for beeping that thread on this way, but i need it so much and now i don't have idea how to fix it :((

  • 0
Posted

Don't say you made one method per skill id... And if you invoke a not existing skill you will have a nice NPE.

 

And you can't use doCast. You have to apply effects directly on the target. Currently when the NPC is doing a dance/whatever party buff, it tries to buff its own party (which sounds logical).

  • 0
Posted

all id skills which i use are declarated and there are in .xml files

doCast working good with se/ee/pp buffs, but not with songs/dances/chants (need party). I tried a lot of (existing) methods any one want work. I think why... that why in skill declarated have target_type= party. i can't change it in all these skills to target_type= target/party ... I think now only one way is change that varible localy in script file but i don't know how to get it ( what metod ) from xml file , give them new varible and then change it. My thinking is correctly  ?

  • 0
Posted

As I said, you have to apply effects on the player. Your last reply is my previous reply with more details.

 


 

By 'Don't say you made one method per skill id...', I mean that :

	public void get264()
{
	Player player = getSelf();
	NpcInstance npc = getNpc();
	if(player.getKarma() > 0)
		return;
	npc.doCast(SkillTable.getInstance().getInfo(264,1), player, true);
}

I hope you didn't make one method per different id... It's totally pointless.

 

Just check another buffer to see how they work ? That's often the simpliest way. Why trying to reinvent the wheel, when ppl already made it hundreds of time before you.

  • 0
Posted

If i correctly understand You i shouldn't use :

public void get264()
{....
.
..}
public void get265()
{...
.
..}

 

I checked other buffers and i found multiple solutions but only one work with my for ex :

 

public void getBuffer264()
{
	Player player = getSelf();
	NpcInstance npc = getNpc();
	doBuffer264(npc, player, false);
}

public static void doBuffer264(NpcInstance npc, Player player, boolean servitor)
{
	List<Creature> target = new ArrayList<Creature>();
		target.add(player);
			npc.broadcastPacket(new MagicSkillUse(npc, player, 264, 1, 0, 0));
			npc.callSkill(SkillTable.getInstance().getInfo(264, 1), target, true);
}		

 

But going to that way my Buffer.java script will get ~2k lines of code ....

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   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.



×
×
  • Create New...