Jump to content
  • 0

Question

Posted

Hello i want to put in my tvt event noblesse effect, when player die to don't remove buffs. 

Maybe someone know this simple code? :)

 

p.s. sry for my bad english

Recommended Posts

  • 0
Posted (edited)

I know better one, which don't take the buffs out at all, and don't need Noblesse. :lol:

At the onDie() method, find where stopAllEffects() is used and check if the player is in event.

Edited by Tessa
  • 0
Posted

I know better one, which don't take the buffs out at all, and don't need Noblesse. :lol:

At the onDie() method, find the stopAllEffects() method and check if the player is in event.

:O tessa is writing java wow!!!  :-[

  • 0
Posted (edited)

The right name is doDie(), sorry, it's been too long. :lol:

L2Character

 

doDie() method

 

stopAllEffects();

 

to

 

if (!getActingPlayer().isInTvT()

   stopAllEffects():

Edited by AccessDenied
  • 0
Posted

L2Character

 

doDie() method

 

stopAllEffects();

 

to

 

if (!getActingPlayer().isInTvT()

   stopAllEffects():

I went through aCis's code, so I would suggest L2Playable as a better place to do that... I also saw that stopAllEffects has a little bit longer name. :lol:
  • 0
Posted

I went through aCis's code, so I would suggest L2Playable as a better place to do that... I also saw that stopAllEffects has a little bit longer name. :lol:

But this guy got the idea right? :3

  • 0
Posted

L2Character

 

doDie() method

 

stopAllEffects();

 

to

 

if (!getActingPlayer().isInTvT()

   stopAllEffects():

 

like this i think...bcuz stopAllEffects() as you wrote is in another method not at doDie :)

 

 

public boolean doDie(L2Character killer)
{
// killing is only possible one time
synchronized (this)
{
if (isDead())
return false;
 
// now reset currentHp to zero
setCurrentHp(0);
 
setIsDead(true);
}
 
// Set target to null and cancel Attack or Cast
setTarget(null);
 
// Stop movement
stopMove(null);
 
// Stop Regeneration task, and removes all current effects
getStatus().stopHpMpRegeneration();
if (!getActingPlayer().isInFunEvent())
stopAllEffectsExceptThoseThatLastThroughDeath();
  • 0
Posted

like this i think...bcuz stopAllEffects() as you wrote is in another method not at doDie :)

 

 

public boolean doDie(L2Character killer)

{

// killing is only possible one time

synchronized (this)

{

if (isDead())

return false;

 

// now reset currentHp to zero

setCurrentHp(0);

 

setIsDead(true);

}

 

// Set target to null and cancel Attack or Cast

setTarget(null);

 

// Stop movement

stopMove(null);

 

// Stop Regeneration task, and removes all current effects

getStatus().stopHpMpRegeneration();

if (!getActingPlayer().isInFunEvent())

stopAllEffectsExceptThoseThatLastThroughDeath();

Just experiment with the code, you can always revert it if you broke something. :lol:
  • 0
Posted

Just experiment with the code, you can always revert it if you broke something. :lol:

hmm it still don't working with this method

 

if (!getActingPlayer().isInFunEvent())

stopAllEffectsExceptThoseThatLastThroughDeath();

  • 0
Posted

Bcs isinfunevent most likely is not used by your event.

no, my tvt using this

 

L2PcInstance:

+ public boolean isInFunEvent()
+ {
+                return (atEvent ||(TvTEvent.isStarted() && TvTEvent.isPlayerParticipant(getName())) && !isGM());
+ }
  • 0
Posted

 

no, my tvt using this

 

L2PcInstance:

+ public boolean isInFunEvent()
+ {
+                return (atEvent ||(TvTEvent.isStarted() && TvTEvent.isPlayerParticipant(getName())) && !isGM());
+ }

Go find where player register and set him in Event or check if is already registered cause it might be different and no ths IsInFunEvent()

Guest
This topic is now closed to further replies.


×
×
  • Create New...