[share][core]АрморСэты с херо свечением
1 ответов262 просмотровСейчас просматривают: 1
· 12.03.2009, 09:29
для начала 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.");
{
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.");
{
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;
}
{
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;
}
{
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;
}
{
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))
{
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
{
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)
{
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)
{
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 _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();
}
{
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;
}
{
if (epic)
{
sendMessage("Вы одели эпический сэт");
sendPacket(new UserInfo(this));
broadcastUserInfo();
}
else
{
sendPacket(new UserInfo(this));
broadcastUserInfo();
}
_epic = epic;
}
далее ищем
Код
public boolean isHero()
{
return _hero;
}
{
return _hero;
}
добавляем
Код
public boolean isEpic()
{
return _epic;
}
{
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
Тема закрыта для ответов
