Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Дополнения от наших пользователей/[share][core]АрморСэты с херо свечением
Search

[share][core]АрморСэты с херо свечением

1 replies263 viewsCurrently viewing: 1
X
XOXOJI

User

Участник

Posts: 51

На форуме с: 06/29/2007

Репутация: +23

Рейтинг: 0

· 03/12/2009, 09:29 AM

для начала sql

Цитата
ALTER TABLE `armorsets` ADD COLUMN `aurahero` INTEGER NOT NULL DEFAULT 0;

у кого л2жфри меняйте com\l2jarchid на net\sf\l2j\

в com\l2jarchid\gameserver\datatables\ArmorSetsTable.java

Код
private void loadData()
    {
        Connection con;
        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            PreparedStatement statement = con.prepareStatement("SELECT chest, legs, head, gloves, feet, skill_id, shield, shield_skill_id, enchant6skill, aurahero FROM armorsets");
            ResultSet rset = statement.executeQuery();

            while(rset.next())
            {
                int chest = rset.getInt("chest");
                int legs  = rset.getInt("legs");
                int head  = rset.getInt("head");
                int gloves = rset.getInt("gloves");
                int feet  = rset.getInt("feet");
                int skill_id = rset.getInt("skill_id");
                int shield = rset.getInt("shield");
                int shield_skill_id = rset.getInt("shield_skill_id");
                int enchant6skill = rset.getInt("enchant6skill");
                _armorSets.put(chest, new L2ArmorSet(chest, legs, head, gloves, feet,skill_id, shield, shield_skill_id, enchant6skill));
            }
            _log.config("ArmorSetsTable: Loaded "+_armorSets.size()+" armor sets.");



меняем


Код
private void loadData()
    {
        Connection con;
        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            PreparedStatement statement = con.prepareStatement("SELECT chest, legs, head, gloves, feet, skill_id, shield, shield_skill_id, enchant6skill, aurahero FROM armorsets");
            ResultSet rset = statement.executeQuery();

            while(rset.next())
            {
                int chest = rset.getInt("chest");
                int legs  = rset.getInt("legs");
                int head  = rset.getInt("head");
                int gloves = rset.getInt("gloves");
                int feet  = rset.getInt("feet");
                int skill_id = rset.getInt("skill_id");
                int shield = rset.getInt("shield");
                int shield_skill_id = rset.getInt("shield_skill_id");
                int enchant6skill = rset.getInt("enchant6skill");
[b]                int aurahero = rset.getInt("aurahero");[/b]
                _armorSets.put(chest, new L2ArmorSet(chest, legs, head, gloves, feet,skill_id, shield, shield_skill_id, enchant6skill, [b]aurahero[/b]));
            }
            _log.config("ArmorSetsTable: Loaded "+_armorSets.size()+" armor sets.");


далее файл com\l2jarchid\gameserver\model\L2ArmoSet.java



Код
public final class L2ArmorSet
{
    private final int _chest;
    private final int _legs;
    private final int _head;
    private final int _gloves;
    private final int _feet;
    private final int _skillId;

    private final int _shield;
    private final int _shieldSkillId;

    private final int _enchant6Skill;

    public L2ArmorSet(int chest, int legs, int head, int gloves, int feet, int skill_id, int shield, int shield_skill_id, int enchant6skill)
    {
        _chest = chest;
        _legs  = legs;
        _head  = head;
        _gloves = gloves;
        _feet  = feet;
        _skillId = skill_id;

        _shield = shield;
        _shieldSkillId = shield_skill_id;

        _enchant6Skill = enchant6skill;
    }


Добавляем


Цитата
public final class L2ArmorSet
{
private final int _chest;
private final int _legs;
private final int _head;
private final int _gloves;
private final int _feet;
private final int _skillId;

private final int _shield;
private final int _shieldSkillId;

private final int _enchant6Skill;
private final int _auraHero;

public L2ArmorSet(int chest, int legs, int head, int gloves, int feet, int skill_id, int shield, int shield_skill_id, int enchant6skill, int auraHero)
{
_chest = chest;
_legs = legs;
_head = head;
_gloves = gloves;
_feet = feet;
_skillId = skill_id;

_shield = shield;
_shieldSkillId = shield_skill_id;

_enchant6Skill = enchant6skill;
_auraHero = auraHero;
}

после


Код
public int getEnchant6skillId()
    {
        return _enchant6Skill;
    }

добавляем

    public int getauraHero()
    {
        return _auraHero;
    }


следующий файл com\l2jarchid\gameserver\model\L2ArmoSet.java


Код
if(armorSet.containAll(player))
if(armorSet.containAll(player))
                {
                    L2Skill skill = SkillTable.getInstance().getInfo(armorSet.getSkillId(),1);
                    if(skill != null)
                    {
                                            
                                                player.addSkill(skill, false);
                        player.sendSkillList();

                    }
                    else



меняем


Цитата
if(armorSet.containAll(player)) // просто найти через ctrl+F блокнотом
{
L2Skill skill = SkillTable.getInstance().getInfo(armorSet.getSkillId(),1);
if(skill != null)
{
int aura = armorSet.getauraHero();
if (aura != 0)
{
player.addSkill(skill, false);
player.sendSkillList();
player.setEpic(true);
}[/b]
player.addSkill(skill, false);
player.sendSkillList();
}
else



далее



Код
if(slot == PAPERDOLL_CHEST)
            {
                L2ArmorSet armorSet = ArmorSetsTable.getInstance().getSet(item.getItemId());
                if(armorSet == null)
                    return;
                
                remove = true;
                removeSkillId1 = armorSet.getSkillId();
                removeSkillId2 = armorSet.getShieldSkillId();
                removeSkillId3 = armorSet.getEnchant6skillId();
            }
            else
            {
                L2ItemInstance chestItem = getPaperdollItem(PAPERDOLL_CHEST);
                if(chestItem == null)
                    return;
                
                L2ArmorSet armorSet = ArmorSetsTable.getInstance().getSet(chestItem.getItemId());
                if(armorSet == null)
                    return;
                
                if(armorSet.containItem(slot, item.getItemId())) // removed part of set
                {
                    remove = true;
                    removeSkillId1 = armorSet.getSkillId();
                    removeSkillId2 = armorSet.getShieldSkillId();
                    removeSkillId3 = armorSet.getEnchant6skillId();
                }
                else if(armorSet.containShield(item.getItemId())) // removed shield
                {
                    remove = true;
                    removeSkillId2 = armorSet.getShieldSkillId();
                }
            }
            
            if(remove)





добавляем




Цитата
if(slot == PAPERDOLL_CHEST)
{
L2ArmorSet armorSet = ArmorSetsTable.getInstance().getSet(item.getItemId());
if(armorSet == null)
return;

remove = true;
removeSkillId1 = armorSet.getSkillId();
removeSkillId2 = armorSet.getShieldSkillId();
removeSkillId3 = armorSet.getEnchant6skillId();
player.setEpic(false);
}
else
{
L2ItemInstance chestItem = getPaperdollItem(PAPERDOLL_CHEST);
if(chestItem == null)
return;

L2ArmorSet armorSet = ArmorSetsTable.getInstance().getSet(chestItem.getItemId());
if(armorSet == null)
return;

if(armorSet.containItem(slot, item.getItemId())) // removed part of set
{
remove = true;
removeSkillId1 = armorSet.getSkillId();
removeSkillId2 = armorSet.getShieldSkillId();
removeSkillId3 = armorSet.getEnchant6skillId();
player.setEpic(false);
}
else if(armorSet.containShield(item.getItemId())) // removed shield
{
remove = true;
removeSkillId2 = armorSet.getShieldSkillId();
}
}

if(remove)




далее файл com\l2jarchid\gameserver\model\actor\instance\L2PcInstance.java

ищем
Код
private boolean _noble = false;
    private boolean _hero = false;

добавляем
Код
private boolean _epic = false;



далее ищем

Код
public void setHero(boolean hero)
    {
        if (hero && _baseClass == _activeClass)
        {
            for (L2Skill s : HeroSkillTable.GetHeroSkills())
                addSkill(s, false); //Dont Save Hero skills to database
        }
        else
        {
            for (L2Skill s : HeroSkillTable.GetHeroSkills())
                super.removeSkill(s); //Just Remove skills from nonHero characters
        }
        _hero = hero;
        
        sendSkillList();
    }

после него добавляем
Код
public void setEpic(boolean epic)
    {
        if (epic)
        {
                sendMessage("Вы одели эпический сэт");
                      sendPacket(new UserInfo(this));
                broadcastUserInfo();
        }
        else
        {
                     sendPacket(new UserInfo(this));
                broadcastUserInfo();
        }
        _epic = epic;
        
    }



далее ищем

Код
public boolean isHero()
    {
        return _hero;
    }

добавляем

Код
public boolean isEpic()
    {
        return _epic;
    }




далее 2 файла пакетов

com\l2jarchid\gameserver\network\serverpackets\UserInfo.java
com\l2jarchid\gameserver\network\serverpackets\CharInfo.java

у обладателей других сборок файлы находятся

net\sf\l2j\gameserver\serverpackets\UserInfo.java
net\sf\l2j\gameserver\serverpackets\CharInfo.java

в обоих файлах ищем строку

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


и заменяем на

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


в теории хватает записи только в юзеринфо, но иногда при одевании сэта аура появляется после любого последующего действия
в базе в таблице арморсетс в поле аурахеро ставьте 1 вместо 0 и ура! сэт светится

0
Topic is closed for replies