Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Заточка
#1
Парни помогите пожалуйста сделать что бы при неудачной заточке скидывалось не на 0 а на 10 например.
у меня есть прога DJ Java Decompiler 3.11 но она не сохроняет в корень она тупо создает Java файл
Ответ
#2
Не знаю чем ты там пользуешься, но надо ковырять ядро, чё за сборка у тебя?
Web программист\разработчик

— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Ответ
#3
Сборка Interlude Jenova

Добавлено через 18 часов 15 минут
Я ковырялся в ядре сборки нашел EnchantScrolls.Java сохранил её в GameServer/Date/Scripts/ а вот подскажите что там надо прописать чтоб работал EnchantFailed !
Ответ
#4
тебе нужен requestevnchantitem.java
выложи её сюда
[Изображение: guru.gif]
Ответ
#5
Я нашел только 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.L2PcInstance;
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_ENCHANT_CONDITION));
activeChar.setActiveEnchantItem(null);
return;
}
if(activeChar.isOnline() == 0)
{
activeChar.setActiveEnchantItem(null);
return;
}
item = activeChar.getInventory().getItemByObjectId(_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, (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_ENCHANT_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_ENCHANT_CONDITION));
}
return;
}
if(item.getLocation() == com.jenova.gameserver.model.L2ItemInstance.ItemLocation.INVENTORY || item.getLocation() == com.jenova.gameserver.model.L2ItemInstance.ItemLocation.PAPERDOLL)
break MISSING_BLOCK_LABEL_1666;
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
l2iteminstance;
JVM INSTR monitorexit ;
return;
if(item.getEnchantLevel() == 0)
{
SystemMessage sm = new SystemMessage(SystemMessageId.S1_SUCCESSFULLY_ENCHANTED);
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
} else
{
activeChar.clearBypass();
SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2_SUCCESSFULLY_ENCHANTED);
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_S1_S2_EVAPORATED);
sm.addNumber(item.getEnchantLevel());
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
} else
{
SystemMessage sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_EVAPORATED);
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
}
} else
{
SystemMessage sm = new SystemMessage(SystemMessageId.BLESSED_ENCHANT_FAILED);
activeChar.sendPacket(sm);
}
if(!blessedScroll)
{
SystemMessage sm;
if(item.getEnchantLevel() > 3)
{
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);
}
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 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;

}
Ответ
#6
ищи строку
Код:
item.setEnchantLevel(0);
и поменяй её на
Код:
item.setEnchantLevel(item.getEnchantLevel() - 1);
в этом случае при неудачной заточке будет сбрасываться 1 уроверь заточки, те с +15 при неудаче будет +14
если хочется именно +10, то
Код:
item.setEnchantLevel(10);
[Изображение: guru.gif]
Ответ
#7
Спасибо Wink
Ответ
#8
Дух системы помоги пожалуйста а как обратно в ядро засунуть ?
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Заточка скилов, изменения цены MBD312 0 1,970 12-26-2020, 08:00 AM
Последний пост: MBD312
  Заточка скиллов в 1 клик до максимума GOODPower 1 1,296 03-30-2014, 02:48 PM
Последний пост: OneThunder
  Заточка скилов +15 за 1 клик OneThunder 2 4,800 11-13-2013, 03:07 PM
Последний пост: d00fy
  Заточка скилов. Временный инвул OneThunder 4 2,411 02-07-2013, 10:17 PM
Последний пост: OneThunder
  Заточка 0zzY 7 1,840 04-08-2012, 07:50 AM
Последний пост: Ozzy
  Заточка скилов Жужик 1 2,426 06-07-2010, 05:39 AM
Последний пост: Credo
  Заточка kolianchik 2 2,672 04-27-2010, 06:00 PM
Последний пост: Serega_Menne
  Заточка и Multisell Fire 0 2,554 03-10-2010, 01:10 PM
Последний пост: Fire
  Заточка скиллов shamon 21 11,633 06-21-2008, 05:53 PM
Последний пост: Fairen

Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)