Заточка - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 12.06.2010, 12:40   #1
Пользователь

Автор темы (Топик Стартер) Заточка

Парни помогите пожалуйста сделать что бы при неудачной заточке скидывалось не на 0 а на 10 например.
у меня есть прога DJ Java Decompiler 3.11 но она не сохроняет в корень она тупо создает Java файл
Nameoff вне форума Ответить с цитированием
Непрочитано 12.06.2010, 12:42   #2
Аватар для [STIGMATED]
Супергерой

По умолчанию Re: Заточка

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

— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
[STIGMATED] вне форума Отправить сообщение для [STIGMATED] с помощью Skype™ Ответить с цитированием
Непрочитано 12.06.2010, 16:37   #3
Пользователь

Автор темы (Топик Стартер) Re: Заточка

Сборка Interlude Jenova

Добавлено через 18 часов 15 минут
Я ковырялся в ядре сборки нашел EnchantScrolls.Java сохранил её в GameServer/Date/Scripts/ а вот подскажите что там надо прописать чтоб работал EnchantFailed !

Последний раз редактировалось Nameoff; 13.06.2010 в 10:52. Причина: Добавлено сообщение
Nameoff вне форума Ответить с цитированием
Непрочитано 17.06.2010, 12:28   #4
Аватар для Дух системы
Пользователь

По умолчанию Re: Заточка

тебе нужен requestevnchantitem.java
выложи её сюда
__________________
Дух системы вне форума Отправить сообщение для Дух системы с помощью ICQ Ответить с цитированием
Сказали спасибо:
Непрочитано 17.06.2010, 13:50   #5
Пользователь

Автор темы (Топик Стартер) Re: Заточка

Я нашел только RequestEnchantItem.java там есть ENCHANT_FAILED настройка ща коперну выложу

// Decompiled by DJ v3.11.11.95 Copyright 2009 Atanas Neshkov Date: 17.06.2010 14:24:19
// Home Page: http://members.fortunecity.com/neshkov/dj.html http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name: RequestEnchantItem.java

package com.jenova.gameserver.network.clientpackets;

import com.jenova.Config;
import com.jenova.gameserver.model.*;
import com.jenova.gameserver.model.actor.instance.L2PcIns tance;
import com.jenova.gameserver.model.base.Race;
import com.jenova.gameserver.network.L2GameClient;
import com.jenova.gameserver.network.SystemMessageId;
import com.jenova.gameserver.network.serverpackets.*;
import com.jenova.gameserver.templates.L2Item;
import com.jenova.gameserver.templates.L2WeaponType;
import com.jenova.gameserver.util.Util;
import com.jenova.util.Rnd;
import java.util.logging.Logger;

// Referenced classes of package com.jenova.gameserver.network.clientpackets:
// L2GameClientPacket

public final class RequestEnchantItem extends L2GameClientPacket
{

public RequestEnchantItem()
{
}

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

protected void runImpl()
{
L2PcInstance activeChar;
L2ItemInstance item;
boolean blessedScroll;
int crystalId;
label0:
{
activeChar = ((L2GameClient)getClient()).getActiveChar();
if(activeChar == null || _objectId == 0)
return;
if(activeChar.isProcessingTransaction())
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHAN T_CONDITION));
activeChar.setActiveEnchantItem(null);
return;
}
if(activeChar.isOnline() == 0)
{
activeChar.setActiveEnchantItem(null);
return;
}
item = activeChar.getInventory().getItemByObjectId(_objec tId);
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_ENCHAN T_CONDITION));
return;
}
if(item.isWear())
{
Util.handleIllegalPlayerAction(activeChar, (new StringBuilder()).append("Player ").append(activeChar.getName()).append(" tried to enchant a weared Item").toString(), 2);
return;
}
int itemType2 = item.getItem().getType2();
boolean enchantItem = false;
blessedScroll = false;
crystalId = 0;
switch(item.getItem().getCrystalType())
{
case 4: // '\004'
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;
}
break;

case 3: // '\003'
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;
}
break;

case 2: // '\002'
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;
}
break;

case 1: // '\001'
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;
}
break;

case 5: // '\005'
crystalId = 1462;
switch(scroll.getItemId())
{
default:
break;

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;
break;
}
break;
}
if(!enchantItem)
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHAN T_CONDITION));
return;
}
if(scroll.getItemId() >= 6569 && scroll.getItemId() <= 6578)
{
blessedScroll = true;
} else
{
int arr$[] = CRYSTAL_SCROLLS;
int len$ = arr$.length;
int i$ = 0;
do
{
if(i$ >= len$)
break;
int crystalscroll = arr$[i$];
if(scroll.getItemId() == crystalscroll)
{
blessedScroll = true;
break;
}
i$++;
} while(true);
}
scroll = activeChar.getInventory().destroyItem("Enchant", scroll, activeChar, item);
if(scroll == null)
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS));
Util.handleIllegalPlayerAction(activeChar, (new StringBuilder()).append("Player ").append(activeChar.getName()).append(" tried to enchant with a scroll he doesnt have").toString(), Config.DEFAULT_PUNISH);
return;
}
int chance = 0;
int maxEnchantLevel = 0;
if(item.getItem().getType2() == 0)
{
maxEnchantLevel = Config.ENCHANT_MAX_WEAPON;
int arr$[] = ENCHANT_SCROLLS;
int len$ = arr$.length;
int i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_WEAPON;
break;
}
i$++;
} while(true);
arr$ = CRYSTAL_SCROLLS;
len$ = arr$.length;
i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_WEAPON_CRYSTAL;
break;
}
i$++;
} while(true);
arr$ = BLESSED_SCROLLS;
len$ = arr$.length;
i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_WEAPON_BLESSED;
break;
}
i$++;
} while(true);
} else
if(item.getItem().getType2() == 1)
{
maxEnchantLevel = Config.ENCHANT_MAX_ARMOR;
int arr$[] = ENCHANT_SCROLLS;
int len$ = arr$.length;
int i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_ARMOR;
break;
}
i$++;
} while(true);
arr$ = CRYSTAL_SCROLLS;
len$ = arr$.length;
i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_ARMOR_CRYSTAL;
break;
}
i$++;
} while(true);
arr$ = BLESSED_SCROLLS;
len$ = arr$.length;
i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_ARMOR_BLESSED;
break;
}
i$++;
} while(true);
} else
if(item.getItem().getType2() == 2)
{
maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY;
int arr$[] = ENCHANT_SCROLLS;
int len$ = arr$.length;
int i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_JEWELRY;
break;
}
i$++;
} while(true);
arr$ = CRYSTAL_SCROLLS;
len$ = arr$.length;
i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_JEWELRY_CRYSTAL;
break;
}
i$++;
} while(true);
arr$ = BLESSED_SCROLLS;
len$ = arr$.length;
i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_JEWELRY_BLESSED;
break;
}
i$++;
} while(true);
}
if(item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX || item.getItem().getBodyPart() == 32768 && item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX_FULL)
chance = 100;
int rndValue = Rnd.get(100);
if(Config.ENABLE_DWARF_ENCHANT_BONUS && activeChar.getRace() == Race.dwarf && activeChar.getLevel() >= Config.DWARF_ENCHANT_MIN_LEVEL)
rndValue -= Config.DWARF_ENCHANT_BONUS;
if(Config.ENCHANT_MAX_WEAPON > 0 && item.getItem().getType2() == 0 && item.getEnchantLevel() >= Config.ENCHANT_MAX_WEAPON)
{
activeChar.sendMessage("This is server limit for enchanting this item with scrolls.");
return;
}
if(Config.ENCHANT_MAX_ARMOR > 0 && item.getItem().getType2() == 1 && item.getEnchantLevel() >= Config.ENCHANT_MAX_ARMOR)
{
activeChar.sendMessage("This is server limit for enchanting this item with scrolls.");
return;
}
if(Config.ENCHANT_MAX_JEWELRY > 0 && item.getItem().getType2() == 2 && item.getEnchantLevel() >= Config.ENCHANT_MAX_JEWELRY)
{
activeChar.sendMessage("This is server limit for enchanting this item with scrolls.");
return;
}
if(rndValue >= chance)
break MISSING_BLOCK_LABEL_1779;
synchronized(item)
{
if(item.getOwnerId() == activeChar.getObjectId() && (item.getEnchantLevel() < maxEnchantLevel || maxEnchantLevel == 0))
break label0;
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHAN T_CONDITION));
}
return;
}
if(item.getLocation() == com.jenova.gameserver.model.L2ItemInstance.ItemLoc ation.INVENTORY || item.getLocation() == com.jenova.gameserver.model.L2ItemInstance.ItemLoc ation.PAPERDOLL)
break MISSING_BLOCK_LABEL_1666;
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHAN T_CONDITION));
l2iteminstance;
JVM INSTR monitorexit ;
return;
if(item.getEnchantLevel() == 0)
{
SystemMessage sm = new SystemMessage(SystemMessageId.S1_SUCCESSFULLY_ENCH ANTED);
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
} else
{
activeChar.clearBypass();
SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2_SUCCESSFULLY_E NCHANTED);
sm.addNumber(item.getEnchantLevel());
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
}
item.setEnchantLevel(item.getEnchantLevel() + Config.ALTERNATIVE_ENCHANT_VALUE);
item.updateDatabase();
l2iteminstance;
JVM INSTR monitorexit ;
break MISSING_BLOCK_LABEL_2257;
exception;
throw exception;
if(!blessedScroll)
{
if(item.getEnchantLevel() > 0)
{
SystemMessage sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S 1_S2_EVAPORATED);
sm.addNumber(item.getEnchantLevel());
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
} else
{
SystemMessage sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S 1_EVAPORATED);
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
}
} else
{
SystemMessage sm = new SystemMessage(SystemMessageId.BLESSED_ENCHANT_FAIL ED);
activeChar.sendPacket(sm);
}
if(!blessedScroll)
{
SystemMessage sm;
if(item.getEnchantLevel() > 3)
{
sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMO VED);
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);
}
L2ItemInstance unequiped[] = activeChar.getInventory().unEquipItemInSlotAndReco rd(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 count = item.getCrystalCount() - (item.getItem().getCrystalCount() + 1) / 2;
if(count < 1)
count = 1;
L2ItemInstance destroyItem = activeChar.getInventory().destroyItem("Enchant", item, activeChar, null);
if(destroyItem == null)
return;
L2ItemInstance crystals = activeChar.getInventory().addItem("Enchant", crystalId, count, activeChar, destroyItem);
sm = new SystemMessage(SystemMessageId.EARNED_S2_S1_S);
sm.addItemName(crystals.getItemId());
sm.addNumber(count);
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();
return;
}

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

protected static final Logger _log = Logger.getLogger(com/jenova/gameserver/model/Inventory.getName(RequestEnchantItem));
private static final String _C__58_REQUESTENCHANTITEM = "[C] 58 RequestEnchantItem";
private static final int ENCHANT_SCROLLS[] = {
729, 730, 947, 948, 951, 952, 955, 956, 959, 960
};
private static final int CRYSTAL_SCROLLS[] = {
731, 732, 949, 950, 953, 954, 957, 958, 961, 962
};
private static final int BLESSED_SCROLLS[] = {
6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578
};
private int _objectId;

}
Nameoff вне форума Ответить с цитированием
Непрочитано 23.06.2010, 10:57   #6
Аватар для Дух системы
Пользователь

По умолчанию Re: Заточка

ищи строку
Код:
item.setEnchantLevel(0);
и поменяй её на
Код:
item.setEnchantLevel(item.getEnchantLevel() - 1);
в этом случае при неудачной заточке будет сбрасываться 1 уроверь заточки, те с +15 при неудаче будет +14
если хочется именно +10, то
Код:
item.setEnchantLevel(10);
__________________
Дух системы вне форума Отправить сообщение для Дух системы с помощью ICQ Ответить с цитированием
Сказали спасибо:
Непрочитано 26.06.2010, 10:28   #7
Пользователь

Автор темы (Топик Стартер) Re: Заточка

Спасибо
Nameoff вне форума Ответить с цитированием
Непрочитано 29.06.2010, 01:49   #8
Пользователь

Автор темы (Топик Стартер) Re: Заточка

Дух системы помоги пожалуйста а как обратно в ядро засунуть ?
Nameoff вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заточка kolianchik Работа со скриптами 2 27.04.2010 18:00
Заточка PEEERROGGGGG Серверная часть 2 16.04.2010 17:36
100% заточка angelcamel Lineage II 8 26.11.2009 15:10


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 10:44. Часовой пояс GMT +3.

Вверх