Jump to content

Armor's Set Effect With Hero Aura


Recommended Posts

Hi, friends. I wonder how I can make a specific armor set to have hero aura as a set effect when the character equipped all 5 parts of the armor item.

But there are 2 points I want to make sure.

 

1. I don't want all armor set items but only 'specific' armor series to have this effect. (e.g. elegia armor set only)

2. I don't want the character gain neither the hero's abilities nor skill but just the aura effect.

 

I heard from somewhere else that I need to fix L2PcInstance, L2ArmorSet, and Inventory these 3 sources. But the problem is, I don't know

the source keywords.

So, I hope if anybody can show me the source keywords I have to put in and instructions if possible.

 

I found a youtube video that showing the best result I want.


Edited by flyfreedom87
Link to comment
Share on other sites

sobasicaly there are 2 ways i tink

one is by setting java code and the oder is editing clent but i duno how you ca do this

ill make some test on client and tell you if i find, but in java i duno !

Link to comment
Share on other sites

@UserInfo.java

 

writeC(_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA) ? 1 : 0); // 0x01: Hero Aura

 

There you can do your tricks.

Link to comment
Share on other sites

Oh... I found the source keyword in userinfo.java and tried to do something with it , but just like I said, I want to add Hero Aura as set effect on specific amor sets. Are you sure that by fixing UserInfo.java, it can even handle the set conditions of armor items?

Edited by flyfreedom87
Link to comment
Share on other sites

@UserInfo.java

 

writeC(_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA) ? 1 : 0); // 0x01: Hero Aura

 

There you can do your tricks.

I didn't test it but I think should work:

in CharInfo.java and UserInfo.java replace line :

 

writeC((_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA)) ? 1 : 0); // Hero Aura

 

 

with this:

 

if (_inv.getPaperdollItemId(Inventory.PAPERDOLL_HEAD)==helmId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_GLOVES) == glovesId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_CHEST) == chestId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_LEGS) == legsId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_FEET) == feetId)
{
writeC(1);
}
else
{
writeC((_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA)) ? 1 : 0); // Hero Aura
}
 
where: helmId = Id of helm in your set, glovesId = id of gloves in your set and so on...;P

Hero skills will not be given. Only aura

Edited by SSnakEE
Link to comment
Share on other sites

I just tested it, but it doesn't work. After I applied it, character's name color changed to black and that's it, when equipped all 5 pieces of armor item, no hero aura appeared.

Link to comment
Share on other sites

I just tested it, but it doesn't work. After I applied it, character's name color changed to black and that's it, when equipped all 5 pieces of armor item, no hero aura appeared.

Hmm, i tested It now, and it works :P 

UserInfo.java: (you see hero aura on yourself)

 

if (_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HEAD)==helmId &&
_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES) ==glovesId &&
_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST) == chestId &&
activeChar.getInventory()..getPaperdollItemId(Inventory.PAPERDOLL_LEGS) == legsId &&
_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET) == bootsId)
{
writeC(1);
}
else
{
writeC((_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA)) ? 1 : 0); // Hero Aura
}

 

CharInfo.java (other players see hero aura on you)

 

if (_inv.getPaperdollItemId(Inventory.PAPERDOLL_HEAD)==helmId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_GLOVES) ==glovesId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_CHEST) == chestId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_LEGS) == legsId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_FEET) == bootsId)
{
writeC(1);
}
else
{
writeC((_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA)) ? 1 : 0); // Hero Aura
}

 

Link to comment
Share on other sites

YEAH~! I found that I should copy and paste the source keywords of UserInfo.java for both UserInfo and CharInfo java files. And it works perfect~!!

Here is my last question, if I want to set this option to more than 2 set armors (Elegia, Versper, Vopal...etc), what should I change?

Edited by flyfreedom87
Link to comment
Share on other sites

YEAH~! I found that I should copy and paste the source keywords of UserInfo.java for both UserInfo and CharInfo java files. And it works perfect~!!

Here is my last question, if I want to set this option to more than 2 set armors (Elegia, Versper, Vopal...etc), what should I change?

You can do same like with one set just add "else if" for more sets eg:

if (_inv.getPaperdollItemId(Inventory.PAPERDOLL_HEAD)==elegiaHelmId &&

_inv.getPaperdollItemId(Inventory.PAPERDOLL_GLOVES) ==elegiaGlovesId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_CHEST) == elegiaChestId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_LEGS) == elegiaLegsId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_FEET) == elegiaBootsId)
{

writeC(1);

}

else if (_inv.getPaperdollItemId(Inventory.PAPERDOLL_HEAD)==vorpalHelmId &&

_inv.getPaperdollItemId(Inventory.PAPERDOLL_GLOVES) ==vorpalGlovesId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_CHEST) == vorpalChestId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_LEGS) == vorpalLegsId &&
_inv.getPaperdollItemId(Inventory.PAPERDOLL_FEET) == vorpalBootsId)
{
writeC(1);
}
else
{
writeC((_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA)) ? 1 : 0); // Hero Aura
}

 

or 2nd way, for less code use build in classes to check sets:

 

final ArmorSet elegiaSet = ArmorSetsTable.getInstance().getSet(elegiaChestId);
final ArmorSet vorpalSet = ArmorSetsTable.getInstance().getSet(vorpalChestId);
// more sets here
if (elegiaSet.containAll(_activeChar) && _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST)==elegiaChestId )
{
writeC(1);
}
else if  (vorpalSet.containAll(_activeChar) && _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST)==vorpalChestId )
{
writeC(1);
}
//else if for more sets ...
else
{
writeC(_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA) ? 1 : 0); // 0x01: Hero Aura
}
Link to comment
Share on other sites

I did as your e.g. but when I copy & paste _inv.getPaperdollItemId(Inventory.PAPERDOLL_FEET) == vorpalBootsId)... these parts, an error message appeared say: '_inv cannot be resolved' with some suggested solutions, among them I tried 'Create field '_inv'' and 'Create constant '_inv'' but it didn't work. I wonder how did you handle this problem?

Edited by flyfreedom87
Link to comment
Share on other sites

Notice that in "UserInfo.java" you use: _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES)
while in "CharInfo.java" it is: _inv.getPaperdollItemId(Inventory.PAPERDOLL_GLOVES)

 

Edited by SSnakEE
Link to comment
Share on other sites

Hmm, I got the _inv error exactly when I input the keywords into the "CharInfo.java". I don't know why but, fortunately I found that  _activeChar.getInventory() is work both "UserInfo.java" and "CharInfo.java" and the result is what I wanted.

 Anyway, without your help SSnakEE, I could never get it done. I really appreciate your kind answers. Thank you my friend~!! ;D

The post can be locked now.

Edited by flyfreedom87
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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.

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock