Здравствуйте, гость ( Вход | Регистрация )

Навигация

Ссылки форума

Навигация по форуму

 
Reply to this topicStart new topic
не запускается ГС
lkarderl
сообщение 22.9.2009, 21:40
Сообщение #1



Свой человек
Группа: Members
Сообщений: 109
Регистрация: 26.5.2009
Поблагодарили: 0 *


Я декомпилил ядро зборки la2base 1.1.6
и в результате ну ЛС не ГС не загружаются пишут ошыбка сразужы.
Вапрос: ЧТо я зделал неправильно ? отпишыте сюда или дайте свою асю
Go to the top of the page
 
+Quote Post
CKA3KA
сообщение 22.9.2009, 21:45
Сообщение #2



Умелец
Группа: Друзья La2base.ru
Сообщений: 209
Регистрация: 2.6.2009
Поблагодарили: 41 *


Цитата(lkarderl @ 22.9.2009, 22:45) *
Я декомпилил ядро зборки la2base 1.1.6
и в результате ну ЛС не ГС не загружаются пишут ошыбка сразужы.
Вапрос: ЧТо я зделал неправильно ? отпишыте сюда или дайте свою асю



образно чтобы было понятно

Я разобрал кувалдой машину .. теперь она лежит на дороге запчастями и не ездит .. что я сделал неправильно ?
Go to the top of the page
 
+Quote Post
lkarderl
сообщение 22.9.2009, 21:58
Сообщение #3



Свой человек
Группа: Members
Сообщений: 109
Регистрация: 26.5.2009
Поблагодарили: 0 *


Цитата(CKA3KA @ 22.9.2009, 21:50) *
образно чтобы было понятно

Я разобрал кувалдой машину .. теперь она лежит на дороге запчастями и не ездит .. что я сделал неправильно ?

ты её разбил)) ну а как ищо можно декомпилить?
ну или раскодировать изминить и обратно закодировать чтобы работало?
Go to the top of the page
 
+Quote Post
CKA3KA
сообщение 22.9.2009, 22:06
Сообщение #4



Умелец
Группа: Друзья La2base.ru
Сообщений: 209
Регистрация: 2.6.2009
Поблагодарили: 41 *


Цитата(lkarderl @ 22.9.2009, 23:03) *
ты её разбил)) ну а как ищо можно декомпилить?
ну или раскодировать изминить и обратно закодировать чтобы работало?


никак ...

при де компилировании получается исходный код на 50-90% (% колеблется от метода компиляции с "защитой" от де компила или без) соответствующий даже не оригиналу а смыслу того что было написано и что компилятор потом вообще сможет понять остальные 50-10% компилятор просто тупо не поймет что за мусор написан ...

если тебе нужно изменить 1 файл и изменения не затрагивают остальные классы (ну не модифицируешь радикально функции которые используются в др классах к примеру) то это еще возможно но весьма хитрым способом ..
если больше то это большой гемор и убийство не меренного количества времени ...

так что ищи исходники с ними изменить без проблем
Go to the top of the page
 
+Quote Post
lkarderl
сообщение 22.9.2009, 22:39
Сообщение #5



Свой человек
Группа: Members
Сообщений: 109
Регистрация: 26.5.2009
Поблагодарили: 0 *


а как изминить 1 фаил,к примеру мне нужно изминить фаилл енчант итем, чтобы когда ломалось чтота при заточьке ано падало не на 0 а на 10.

ну и ты говориш нельзя декомпилировать чтобы ано работало,а как выкладуют исходные коды декомпилированые? и я вот декомпил и вроде всё есть.
Go to the top of the page
 
+Quote Post
MeCAiR
сообщение 23.9.2009, 8:10
Сообщение #6



People = Shit
Группа: Модератор
Сообщений: 681
Регистрация: 2.4.2009
Поблагодарили: 296 *


Цитата(lkarderl @ 23.9.2009, 3:44) *
ну и ты говориш нельзя декомпилировать чтобы ано работало,а как выкладуют исходные коды декомпилированые? и я вот декомпил и вроде всё есть.

Такого не бывает. Исходный код он на то и исходный, что первоначальный, недекомпилированный.
Как сказал СКАЗКА, с декомпилом ничего не получится.

Возможно, от SF подойдёт.

Go to the top of the page
 
+Quote Post
CKA3KA
сообщение 23.9.2009, 8:57
Сообщение #7



Умелец
Группа: Друзья La2base.ru
Сообщений: 209
Регистрация: 2.6.2009
Поблагодарили: 41 *


Цитата(lkarderl @ 22.9.2009, 23:44) *
а как изминить 1 фаил,к примеру мне нужно изминить фаилл енчант итем, чтобы когда ломалось чтота при заточьке ано падало не на 0 а на 10.

ну и ты говориш нельзя декомпилировать чтобы ано работало,а как выкладуют исходные коды декомпилированые? и я вот декомпил и вроде всё есть.


Возвращаемся к нашему образу с машиной

для того чтобы сделать вначале машину инженеры делают чертежи (в нашем случае исходный код сервера)
затем по чертежам собирают машину ( в нашем случае компилируют готовый сервер)
потом машину взрывают тротилом ( в нашем случае декомпил)

как и после взрыва много частей от машины останутся почти целыми и по ним можно понять как функционируют те или иные узлы , но собрать из этого барахла обратно машину практически невозможно .. если ты конечно не спец и нету фанатизма и желания потратить кучу времени на данный процесс ...

по поводу изменения 1го файла .. я могу рассказать процесс как его можно изменить и подменить в сборке но боюсь твоей квалификации не хватит чтобы понять процесс

Go to the top of the page
 
+Quote Post
lkarderl
сообщение 23.9.2009, 9:37
Сообщение #8



Свой человек
Группа: Members
Сообщений: 109
Регистрация: 26.5.2009
Поблагодарили: 0 *


у меня хватит, раскажы ))
Go to the top of the page
 
+Quote Post
CKA3KA
сообщение 23.9.2009, 10:07
Сообщение #9



Умелец
Группа: Друзья La2base.ru
Сообщений: 209
Регистрация: 2.6.2009
Поблагодарили: 41 *


Цитата(lkarderl @ 23.9.2009, 10:42) *
у меня хватит, раскажы ))


Чтобы все это сделать нужно разбираться в языке программирования ява !!!

берем нужный класс декомпиленый в java

берем сборку к примеру СФ от той же lineage версии что у нас ( Gracia 2 , interlud или что там у нас)

сравниваем файлы .. если чрезвычайно повезет то они совпадут ( но это маловероятно) и совпадут имеется в виду по функционалу поскольку декомпилятор все равно скорее всего распишит функции немного по своему ..

берем тяжелый случай что у нас очень не совпадает наш декомпил и СФ..

скорее всего разница будет во первых в путях импорта библиотек
к примеру у декомпила имеется
import l2d.Config;
import l2d.game.cache.Msg;
import l2d.game.model.L2Clan;
import l2d.game.model.L2Player;
import l2d.game.model.Warehouse.WarehouseType;
import l2d.game.model.instances.L2ItemInstance.ItemClass;
import l2d.game.serverpackets.NpcHtmlMessage;
import l2d.game.serverpackets.SystemMessage;
import l2d.game.serverpackets.WareHouseDepositList;
import l2d.game.serverpackets.WareHouseWithdrawList;
import l2d.game.templates.L2NpcTemplate;
import l2d.util.Log;

а у СФ

import net.sf.l2j.gameserver.ai.CtrlIntention;
import net.sf.l2j.gameserver.datatables.MapRegionTable;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.actor.L2Npc;
import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected;
import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
import net.sf.l2j.gameserver.network.serverpackets.NpcSay;
import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation;
import net.sf.l2j.gameserver.templates.chars.L2NpcTemplate;

сразу видно что разница в путях состоит в
l2d.game.
и
net.sf.l2j.gameserver

остальное идентично
в эклипсе переименуем пути в СФ с net.sf.l2j.gameserver на l2d.game.
эклипс автоматически переукажет все импорты на новый путь во всем проекте

далее

если в теле декомпиленого класса есть вызовы таких функций (из других классов) которых нету в СФ
мы тупо их эмулируем .. тоесть идем в нужный класс пишем там функцию можно пустую главное чтобы она также называлась и принимала и возвращала те же данные ...

далее проверяем декомпилированый код на ошибки декомпила (тут уже нужно знание ява языка) но если повезет то ошибок практически не будет .. если класс не очень сложный то скорее всего там ошибок не будет или почти не будет ..

меняем то что нужно нам в полученном классе ..
затем компилируем весь проект СФ ...

полученный l2jserver.jad разархивируем winzipом и вытаскиваем наш (уже скомпилированный) класс
затем открываем архивом наш сервер и заменяем старый класс на новый только что полученный
вуаля работает измененный класс и делает то что нам нужно
Go to the top of the page
 
+Quote Post
xNEROSx
сообщение 23.9.2009, 10:10
Сообщение #10



Жадный...
Группа: Advanced Members
Сообщений: 447
Регистрация: 26.8.2007
Поблагодарили: 185 *


Цитата(lkarderl @ 22.9.2009, 19:44) *
а как изминить 1 фаил,к примеру мне нужно изминить фаилл енчант итем, чтобы когда ломалось чтота при заточьке ано падало не на 0 а на 10.

ну и ты говориш нельзя декомпилировать чтобы ано работало,а как выкладуют исходные коды декомпилированые? и я вот декомпил и вроде всё есть.

если тебе нужно только заточку изменить)))
скажи на сколько) я сделаю) дабы ты не извращал код russian_roulette.gif
Go to the top of the page
 
+Quote Post
lkarderl
сообщение 23.9.2009, 10:41
Сообщение #11



Свой человек
Группа: Members
Сообщений: 109
Регистрация: 26.5.2009
Поблагодарили: 0 *


я так понял что декомпилятор когда раскодирует то всё савподает кроме путей типо:
import l2d.Config;
import l2d.game.cache.Msg;
import l2d.game.model.L2Clan;
import l2d.game.model.L2Player;
import l2d.game.model.Warehouse.WarehouseType;
import l2d.game.model.instances.L2ItemInstance.ItemClass;
import l2d.game.serverpackets.NpcHtmlMessage;
import l2d.game.serverpackets.SystemMessage;
import l2d.game.serverpackets.WareHouseDepositList;
import l2d.game.serverpackets.WareHouseWithdrawList;
import l2d.game.templates.L2NpcTemplate;
import l2d.util.Log;

и всегда так остальное 100% будит везде совпадать?

вот я раскодировал фаил где нужно минять заточьку, в нём всё правильно?
Раскрывающийся текст
package net.sf.l2j.gameserver.clientpackets;

import java.util.Map;
import java.util.logging.Logger;
import net.sf.l2j.Config;
import net.sf.l2j.gameserver.model.Inventory;
import net.sf.l2j.gameserver.model.L2Augmentation;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.L2ItemInstance.ItemLocation;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.PcInventory;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.L2GameClient;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.serverpackets.EnchantResult;
import net.sf.l2j.gameserver.serverpackets.InventoryUpdate;
import net.sf.l2j.gameserver.serverpackets.ItemList;
import net.sf.l2j.gameserver.serverpackets.StatusUpdate;
import net.sf.l2j.gameserver.serverpackets.SystemMessage;
import net.sf.l2j.gameserver.templates.L2Item;
import net.sf.l2j.gameserver.templates.L2WeaponType;
import net.sf.l2j.gameserver.util.Util;
import net.sf.l2j.util.Rnd;

public final class RequestEnchantItem extends L2GameClientPacket
{
protected static final Logger _log = Logger.getLogger(Inventory.class.getName());
private static final String _C__58_REQUESTENCHANTITEM = "[C] 58 RequestEnchantItem";
private static final int[] CRYSTAL_SCROLLS = { 731, 732, 949, 950, 953, 954, 957, 958, 961, 962 };
private int _objectId;

protected void readImpl()
{
this._objectId = readD();
}

protected void runImpl()
{
L2PcInstance activeChar = ((L2GameClient)getClient()).getActiveChar();
if ((activeChar == null) || (this._objectId == 0)) return;

activeChar.cancelActiveTrade();

L2ItemInstance item = activeChar.getInventory().getItemByObjectId(this._objectId);
L2ItemInstance scroll = activeChar.getActiveEnchantItem();
activeChar.setActiveEnchantItem(null);
if ((item == null) || (scroll == null)) { return;
}

if ((item.getItem().getItemType() == L2WeaponType.ROD) || ((item.getItemId() >= 6611) && (item.getItemId() <= 6621)) || (item.isShadowItem()))
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
return;
}
if (item.isWear())
{
Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " tried to enchant a weared Item", 2);
return;
}
int itemType2 = item.getItem().getType2();
boolean enchantItem = false;
boolean blessedScroll = false;
boolean blesseddScroll = false;
boolean crystallScroll = false;
int crystalId = 0;

switch (item.getItem().getCrystalType())
{
case 4:
crystalId = 1461;
switch (scroll.getItemId())
{
case 729:
case 731:
case 6569:
if (itemType2 == 0)
enchantItem = true; break;
case 730:
case 732:
case 6570:
if ((itemType2 == 1) || (itemType2 == 2))
enchantItem = true;
}

break;
case 3:
crystalId = 1460;
switch (scroll.getItemId())
{
case 947:
case 949:
case 6571:
if (itemType2 == 0)
enchantItem = true; break;
case 948:
case 950:
case 6572:
if ((itemType2 == 1) || (itemType2 == 2))
enchantItem = true;
}

break;
case 2:
crystalId = 1459;
switch (scroll.getItemId())
{
case 951:
case 953:
case 6573:
if (itemType2 == 0)
enchantItem = true; break;
case 952:
case 954:
case 6574:
if ((itemType2 == 1) || (itemType2 == 2))
enchantItem = true;
}

break;
case 1:
crystalId = 1458;
switch (scroll.getItemId())
{
case 955:
case 957:
case 6575:
if (itemType2 == 0)
enchantItem = true; break;
case 956:
case 958:
case 6576:
if ((itemType2 == 1) || (itemType2 == 2))
enchantItem = true;
}

break;
case 5:
crystalId = 1462;
switch (scroll.getItemId())
{
case 959:
case 961:
case 6577:
if (itemType2 == 0)
enchantItem = true; break;
case 960:
case 962:
case 6578:
if ((itemType2 == 1) || (itemType2 == 2))
enchantItem = true;

}

}

if (!(enchantItem))
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
return;
}

if ((scroll.getItemId() >= 6569) && (scroll.getItemId() <= 6578))
{
blesseddScroll = true;
blessedScroll = true;
}
else {
int[] arr$ = CRYSTAL_SCROLLS; int len$ = arr$.length; for (int i$ = 0; i$ < len$; ++i$) { ??? = arr$[i$];
if (scroll.getItemId() == ???)
{
crystallScroll = true;
blessedScroll = true;
break; }
}
}
scroll = activeChar.getInventory().destroyItem("Enchant", scroll, activeChar, item);
if (scroll == null)
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS));
Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " tried to enchant with a scroll he doesnt have", Config.DEFAULT_PUNISH);
return;
}

int chance = 0;
int maxEnchantLevel = 0;

if (item.getItem().getType2() == 0)
{
if ((item.getEnchantLevel() < 10) && (!(blesseddScroll)) && (!(crystallScroll))) { chance = Config.ENCHANT_CHANCE_WEAPON;
}
else if ((item.getEnchantLevel() < 16) && (item.getEnchantLevel() > 9) && (!(blesseddScroll)) && (!(crystallScroll))) { chance = Config.ENCHANT_CHANCE_WEAPON_1015;
}
else if ((item.getEnchantLevel() > 15) && (!(blesseddScroll)) && (!(crystallScroll))) { chance = Config.ENCHANT_CHANCE_WEAPON_16;
}
else if ((item.getEnchantLevel() < 10) && (blesseddScroll)) { chance = Config.BLESSED_CHANCE_WEAPON;
}
else if ((item.getEnchantLevel() < 16) && (item.getEnchantLevel() > 9) && (blesseddScroll)) { chance = Config.BLESSED_CHANCE_WEAPON_1015;
}
else if ((item.getEnchantLevel() > 15) && (blesseddScroll)) { chance = Config.BLESSED_CHANCE_WEAPON_16;
}
else if ((item.getEnchantLevel() < 10) && (crystallScroll)) { chance = Config.CRYSTAL_CHANCE_WEAPON;
}
else if ((item.getEnchantLevel() < 16) && (item.getEnchantLevel() > 9) && (crystallScroll)) { chance = Config.CRYSTAL_CHANCE_WEAPON_1015;
}
else if ((item.getEnchantLevel() > 15) && (crystallScroll)) chance = Config.CRYSTAL_CHANCE_WEAPON_16;
maxEnchantLevel = Config.ENCHANT_MAX_WEAPON;

if ((Config.ENABLE_MODIFY_ENCHANT_CHANCE_WEAPON) && (!(blesseddScroll)) && (!(crystallScroll)) &&
(Config.ENCHANT_CHANCE_LIST_WEAPON.containsKey(Integer.valueOf(item.getEnchantLe
vel()))))
{
chance = ((Integer)Config.ENCHANT_CHANCE_LIST_WEAPON.get(Integer.valueOf(item.getEnchantL
evel()))).intValue();
}

}
else if (item.getItem().getType2() == 1)
{
if ((item.getEnchantLevel() < 10) && (!(blesseddScroll)) && (!(crystallScroll))) { chance = Config.ENCHANT_CHANCE_ARMOR;
}
else if ((item.getEnchantLevel() < 16) && (item.getEnchantLevel() > 9) && (!(blesseddScroll)) && (!(crystallScroll))) { chance = Config.ENCHANT_CHANCE_ARMOR_1015;
}
else if ((item.getEnchantLevel() > 15) && (!(blesseddScroll)) && (!(crystallScroll))) { chance = Config.ENCHANT_CHANCE_ARMOR_16;
}
else if ((item.getEnchantLevel() < 10) && (blesseddScroll)) { chance = Config.BLESSED_CHANCE_ARMOR;
}
else if ((item.getEnchantLevel() < 16) && (item.getEnchantLevel() > 9) && (blesseddScroll)) { chance = Config.BLESSED_CHANCE_ARMOR_1015;
}
else if ((item.getEnchantLevel() > 15) && (blesseddScroll)) { chance = Config.BLESSED_CHANCE_ARMOR_16;
}
else if ((item.getEnchantLevel() < 10) && (crystallScroll)) { chance = Config.CRYSTAL_CHANCE_ARMOR;
}
else if ((item.getEnchantLevel() < 16) && (item.getEnchantLevel() > 9) && (crystallScroll)) { chance = Config.CRYSTAL_CHANCE_ARMOR_1015;
}
else if ((item.getEnchantLevel() > 15) && (crystallScroll)) chance = Config.CRYSTAL_CHANCE_ARMOR_16;
maxEnchantLevel = Config.ENCHANT_MAX_ARMOR;

if ((Config.ENABLE_MODIFY_ENCHANT_CHANCE_ARMOR) && (!(blesseddScroll)) && (!(crystallScroll)) &&
(Config.ENCHANT_CHANCE_LIST_ARMOR.containsKey(Integer.valueOf(item.getEnchantLev
el()))))
{
chance = ((Integer)Config.ENCHANT_CHANCE_LIST_ARMOR.get(Integer.valueOf(item.getEnchantLe
vel()))).intValue();
}

}
else if (item.getItem().getType2() == 2)
{
if ((item.getEnchantLevel() < 10) && (!(blesseddScroll)) && (!(crystallScroll))) { chance = Config.ENCHANT_CHANCE_JEWELRY;
}
else if ((item.getEnchantLevel() < 16) && (item.getEnchantLevel() > 9) && (!(blesseddScroll)) && (!(crystallScroll))) { chance = Config.ENCHANT_CHANCE_JEWELRY_1015;
}
else if ((item.getEnchantLevel() > 15) && (!(blesseddScroll)) && (!(crystallScroll))) { chance = Config.ENCHANT_CHANCE_JEWELRY_16;
}
else if ((item.getEnchantLevel() < 10) && (blesseddScroll)) { chance = Config.BLESSED_CHANCE_JEWELRY;
}
else if ((item.getEnchantLevel() < 16) && (item.getEnchantLevel() > 9) && (blesseddScroll)) { chance = Config.BLESSED_CHANCE_JEWELRY_1015;
}
else if ((item.getEnchantLevel() > 15) && (blesseddScroll)) { chance = Config.BLESSED_CHANCE_JEWELRY_16;
}
else if ((item.getEnchantLevel() < 10) && (crystallScroll)) { chance = Config.CRYSTAL_CHANCE_JEWELRY;
}
else if ((item.getEnchantLevel() < 16) && (item.getEnchantLevel() > 9) && (crystallScroll)) { chance = Config.CRYSTAL_CHANCE_JEWELRY_1015;
}
else if ((item.getEnchantLevel() > 15) && (crystallScroll)) chance = Config.CRYSTAL_CHANCE_JEWELRY_16;
maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY;

if ((Config.ENABLE_MODIFY_ENCHANT_CHANCE_JEWELRY) && (!(blesseddScroll)) && (!(crystallScroll)) &&
(Config.ENCHANT_CHANCE_LIST_JEWELRY.containsKey(Integer.valueOf(item.getEnchantL
evel()))))
{
chance = ((Integer)Config.ENCHANT_CHANCE_LIST_JEWELRY.get(Integer.valueOf(item.getEnchant
Level()))).intValue();
}

}

if ((item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX) || ((item.getItem().getBodyPart() == 32768) && (item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX_FULL)))
{
chance = 100;
}
if (Rnd.get(100) < chance)
{
synchronized (item)
{
if ((item.getOwnerId() != activeChar.getObjectId()) || ((item.getEnchantLevel() >= maxEnchantLevel) && (maxEnchantLevel != 0)))
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
monitorexit; return;
}
if ((item.getLocation() != L2ItemInstance.ItemLocation.INVENTORY) && (item.getLocation() != L2ItemInstance.ItemLocation.PAPERDOLL))
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
monitorexit; return;
}
if (item.getEnchantLevel() == 0)
{
sm = new SystemMessage(SystemMessageId.S1_SUCCESSFULLY_ENCHANTED);
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
}
else
{
sm = new SystemMessage(SystemMessageId.S1_S2_SUCCESSFULLY_ENCHANTED);
sm.addNumber(item.getEnchantLevel());
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
}
item.setEnchantLevel(item.getEnchantLevel() + 1);
item.updateDatabase();
}
}
else
{
if (!(blessedScroll))
{
if (item.getEnchantLevel() > 0)
{
sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_S2_EVAPORATED);
sm.addNumber(item.getEnchantLevel());
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
}
else
{
sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_EVAPORATED);
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
}
}
else
{
sm = new SystemMessage(SystemMessageId.BLESSED_ENCHANT_FAILED);
activeChar.sendPacket(sm);
}

if (!(blessedScroll))
{
int i;
if (item.getEnchantLevel() > 0)
{
sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED);
sm.addNumber(item.getEnchantLevel());
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
}
else
{
sm = new SystemMessage(SystemMessageId.S1_DISARMED);
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
}

if (item.getAugmentation() != null)
item.getAugmentation().removeBoni(activeChar);

L2ItemInstance[] unequiped = activeChar.getInventory().unEquipItemInSlotAndRecord(item.getEquipSlot());
if (item.isEquipped())
{
InventoryUpdate iu = new InventoryUpdate();
for (int i = 0; i < unequiped.length; ++i)
{
iu.addModifiedItem(unequiped[i]);
}
activeChar.sendPacket(iu);
activeChar.broadcastUserInfo();
}

int i = item.getCrystalCount() - (item.getItem().getCrystalCount() + 1) / 2;
if (i < 1) i = 1;

L2ItemInstance destroyItem = activeChar.getInventory().destroyItem("Enchant", item, activeChar, null);
if (destroyItem == null) return;

L2ItemInstance crystals = activeChar.getInventory().addItem("Enchant", crystalId, i, activeChar, destroyItem);

sm = new SystemMessage(SystemMessageId.EARNED_S2_S1_S);
sm.addItemName(crystals.getItemId());
sm.addNumber(i);
activeChar.sendPacket(sm);

if (!(Config.FORCE_INVENTORY_UPDATE))
{
InventoryUpdate iu = new InventoryUpdate();
if (destroyItem.getCount() == 0) iu.addRemovedItem(destroyItem);
else iu.addModifiedItem(destroyItem);
iu.addItem(crystals);

activeChar.sendPacket(iu);
}
else activeChar.sendPacket(new ItemList(activeChar, true));

StatusUpdate su = new StatusUpdate(activeChar.getObjectId());
su.addAttribute(14, activeChar.getCurrentLoad());
activeChar.sendPacket(su);

activeChar.broadcastUserInfo();

L2World world = L2World.getInstance();
world.removeObject(destroyItem);
}
else
{
item.setEnchantLevel(0);
item.updateDatabase();
}
}
SystemMessage sm = null;

StatusUpdate su = new StatusUpdate(activeChar.getObjectId());
su.addAttribute(14, activeChar.getCurrentLoad());
activeChar.sendPacket(su);
su = null;

activeChar.sendPacket(new EnchantResult(item.getEnchantLevel()));
activeChar.sendPacket(new ItemList(activeChar, false));
activeChar.broadcastUserInfo();
}

public String getType()
{
return "[C] 58 RequestEnchantItem";
}
}


//SomeSay : Объемные тексты или части кода необходимо сворачивать в спойлер!
Go to the top of the page
 
+Quote Post
xNEROSx
сообщение 23.9.2009, 10:48
Сообщение #12



Жадный...
Группа: Advanced Members
Сообщений: 447
Регистрация: 26.8.2007
Поблагодарили: 185 *


Цитата
я так понял что декомпилятор когда раскодирует то всё савподает кроме путей типо

совершенно... НЕ верно...

декомпиль твой:
Код
protected void readImpl()
{
this._objectId = readD();
}

исходный код:
Код
    protected void readImpl()
    {
        _objectId = readD();
    }
Go to the top of the page
 
+Quote Post
Somesay
сообщение 23.9.2009, 15:28
Сообщение #13



рас!11рас!1
Группа: Advanced Members
Сообщений: 307
Регистрация: 29.3.2008
Поблагодарили: 40 *


Автор читаем правила, ваши сообщения не возможно читать...Для написания сообщений на данном форуме пользуйтесь программами для проверки орфографии.(Например Word или плагины для браузера)

4.18. Создание сообщений, содержащих чрезмерное количество жаргонизмов, грамматических ошибок, транслитерированные сообщения. Установка режима «Только чтение» или Установка режима «Блокировка учетной записи» на срок от 1 до 10 суток.

Блокировка автора на 10 суток + 10%, т.к. вас неоднократно предупреждали.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.6.2026, 5:54