Linkus159 67 Опубликовано 7 марта, 2013 (изменено) Я хочу зделать Лсы стопкой в навикате я уже все зделал и в клиенте а вот в ядре что-то не хочет где моя ошибка ? // Decompiled by DJ v3.12.12.96 Copyright 2011 Atanas Neshkov Date: 08.03.2013 2:17:22 // 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: RequestRefine.java package com.l2jfrozen.gameserver.network.clientpackets; import com.l2jfrozen.Config; import com.l2jfrozen.gameserver.datatables.xml.AugmentationData; import com.l2jfrozen.gameserver.model.*; import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.network.L2GameClient; import com.l2jfrozen.gameserver.network.SystemMessageId; import com.l2jfrozen.gameserver.network.serverpackets.*; import com.l2jfrozen.gameserver.templates.L2Item; import com.l2jfrozen.gameserver.util.Util; // Referenced classes of package com.l2jfrozen.gameserver.network.clientpackets: // L2GameClientPacket public final class RequestRefine extends L2GameClientPacket { public RequestRefine() { } protected void readImpl() { _targetItemObjId = readD(); _refinerItemObjId = readD(); _gemstoneItemObjId = readD(); _gemstoneCount = readD(); } protected void runImpl() { L2PcInstance activeChar = ((L2GameClient)getClient()).getActiveChar(); if(activeChar == null) return; L2ItemInstance targetItem = (L2ItemInstance)L2World.getInstance().findObject(_targetItemObjId); L2ItemInstance refinerItem = (L2ItemInstance)L2World.getInstance().findObject(_refinerItemObjId); L2ItemInstance gemstoneItem = (L2ItemInstance)L2World.getInstance().findObject(_gemstoneItemObjId); if(targetItem == null || refinerItem == null || gemstoneItem == null || targetItem.getOwnerId() != activeChar.getObjectId() || refinerItem.getOwnerId() != activeChar.getObjectId() || gemstoneItem.getOwnerId() != activeChar.getObjectId() || activeChar.getLevel() < 46) { activeChar.sendPacket(new ExVariationResult(0, 0, 0)); activeChar.sendPacket(new SystemMessage(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS)); return; } if(targetItem.isEquipped()) activeChar.disarmWeapons(); if(TryAugmentItem(activeChar, targetItem, refinerItem, gemstoneItem)) { int stat12 = 0xffff & targetItem.getAugmentation().getAugmentationId(); int stat34 = targetItem.getAugmentation().getAugmentationId() >> 16; activeChar.sendPacket(new ExVariationResult(stat12, stat34, 1)); activeChar.sendPacket(new SystemMessage(SystemMessageId.THE_ITEM_WAS_SUCCESSFULLY_AUGMENTED)); } else { activeChar.sendPacket(new ExVariationResult(0, 0, 0)); activeChar.sendPacket(new SystemMessage(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS)); } } boolean TryAugmentItem(L2PcInstance player, L2ItemInstance targetItem, L2ItemInstance refinerItem, L2ItemInstance gemstoneItem) { if(targetItem.isAugmented() || targetItem.isWear()) { player.sendMessage("You can't augment items while you wear it"); return false; } if(player.isDead()) { player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_AUGMENT_ITEMS_WHILE_DEAD)); return false; } if(player.isSitting()) { player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_AUGMENT_ITEMS_WHILE_SITTING_DOWN)); return false; } if(player.isFishing()) { player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_AUGMENT_ITEMS_WHILE_FISHING)); return false; } if(player.isParalyzed()) { player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_AUGMENT_ITEMS_WHILE_PARALYZED)); return false; } if(player.getActiveTradeList() != null) { player.sendMessage("You cannot augment while trading"); return false; } if(player.getPrivateStoreType() != 0) { player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_AUGMENT_ITEMS_WHILE_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP_IS_IN_OPERATION)); return false; } if(player.getInventory().getItemByObjectId(refinerItem.getObjectId()) == null) { Util.handleIllegalPlayerAction(player, (new StringBuilder()).append("Warning!! Character ").append(player.getName()).append(" of account ").append(player.getAccountName()).append(" tried to refine an item with wrong LifeStone-id.").toString(), Config.DEFAULT_PUNISH); return false; } if(player.getInventory().getItemByObjectId(targetItem.getObjectId()) == null) { Util.handleIllegalPlayerAction(player, (new StringBuilder()).append("Warning!! Character ").append(player.getName()).append(" of account ").append(player.getAccountName()).append(" tried to refine an item with wrong Weapon-id.").toString(), Config.DEFAULT_PUNISH); return false; } if(player.getInventory().getItemByObjectId(gemstoneItem.getObjectId()) == null) { Util.handleIllegalPlayerAction(player, (new StringBuilder()).append("Warning!! Character ").append(player.getName()).append(" of account ").append(player.getAccountName()).append(" tried to refine an item with wrong Gemstone-id.").toString(), Config.DEFAULT_PUNISH); return false; } int itemGrade = targetItem.getItem().getItemGrade(); int itemType = targetItem.getItem().getType2(); int lifeStoneId = refinerItem.getItemId(); int gemstoneItemId = gemstoneItem.getItemId(); if(lifeStoneId < 8723 || lifeStoneId > 8762) return false; if(itemGrade < 2 || itemType != 0 || !targetItem.isDestroyable()) return false; if(player.getPrivateStoreType() != 0 || player.isDead() || player.isParalyzed() || player.isFishing() || player.isSitting()) return false; int modifyGemstoneCount = _gemstoneCount; int lifeStoneLevel = getLifeStoneLevel(lifeStoneId); int lifeStoneGrade = getLifeStoneGrade(lifeStoneId); switch(itemGrade) { case 2: // '\002' if(player.getLevel() < 46 || gemstoneItemId != 2130) return false; modifyGemstoneCount = 20; break; case 3: // '\003' if(lifeStoneLevel < 3 || player.getLevel() < 52 || gemstoneItemId != 2130) return false; modifyGemstoneCount = 30; break; case 4: // '\004' if(lifeStoneLevel < 6 || player.getLevel() < 61 || gemstoneItemId != 2131) return false; modifyGemstoneCount = 20; break; case 5: // '\005' if(lifeStoneLevel != 10 || player.getLevel() < 76 || gemstoneItemId != 2131) return false; modifyGemstoneCount = 25; break; } switch(lifeStoneLevel) { case 1: // '\001' if(player.getLevel() < 46) return false; break; case 2: // '\002' if(player.getLevel() < 49) return false; break; case 3: // '\003' if(player.getLevel() < 52) return false; break; case 4: // '\004' if(player.getLevel() < 55) return false; break; case 5: // '\005' if(player.getLevel() < 58) return false; break; case 6: // '\006' if(player.getLevel() < 61) return false; break; case 7: // '\007' if(player.getLevel() < 64) return false; break; case 8: // '\b' if(player.getLevel() < 67) return false; break; case 9: // '\t' if(player.getLevel() < 70) return false; break; case 10: // '\n' if(player.getLevel() < 76) return false; break; } if(gemstoneItem.getCount() - modifyGemstoneCount < 0) return false; if(!player.destroyItem("RequestRefine", refinerItem, null, false)) { return false; } else { player.destroyItem("RequestRefine", _gemstoneItemObjId, modifyGemstoneCount, null, false); targetItem.setAugmentation(AugmentationData.getInstance().generateRandomAugmentation(targetItem, lifeStoneLevel, lifeStoneGrade)); InventoryUpdate iu = new InventoryUpdate(); iu.addModifiedItem(targetItem); player.sendPacket(iu); StatusUpdate su = new StatusUpdate(player.getObjectId()); su.addAttribute(14, player.getCurrentLoad()); player.sendPacket(su); return true; } } private int getLifeStoneGrade(int itemId) { if((itemId -= 8723) < 10) return 0; if(itemId < 20) return 1; return itemId >= 30 ? 3 : 2; } private int getLifeStoneLevel(int itemId) { itemId -= 10 * getLifeStoneGrade(itemId); return itemId -= 8722; } public String getType() { return "[C] D0:2C RequestRefine"; } private int _targetItemObjId; private int _refinerItemObjId; private int _gemstoneItemObjId; private int _gemstoneCount; } Покажите где моя ошибка Изменено 7 марта, 2013 пользователем Linkus159 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Voled 183 Опубликовано 7 марта, 2013 http://forummaxi.ru/index.php?showtopic=22953&hl=%D1%81%D1%82%D0%BE%D0%BF%D0%BA%D1%83 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Linkus159 67 Опубликовано 7 марта, 2013 http://forummaxi.ru/...22953&hl=стопку По нему я и делал и ещё там по 1-му все равно не помогает Сразуже исчезает не 1 лс а все Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 7 марта, 2013 Файлик AugmentationData.java в студию, желательно на pastebin или подобный сайт выложить. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Linkus159 67 Опубликовано 7 марта, 2013 Файлик AugmentationData.java в студию, желательно на pastebin или подобный сайт выложить. Вот // Decompiled by DJ v3.12.12.96 Copyright 2011 Atanas Neshkov Date: 08.03.2013 2:33:58 // 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: AugmentationData.java package com.l2jfrozen.gameserver.datatables.xml; import com.l2jfrozen.Config; import com.l2jfrozen.gameserver.model.L2Augmentation; import com.l2jfrozen.gameserver.model.L2Skill; import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance; import com.l2jfrozen.gameserver.skills.Stats; import com.l2jfrozen.util.random.Rnd; import java.io.File; import java.io.PrintStream; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javolution.util.FastList; import javolution.util.FastMap; import org.w3c.dom.*; public class AugmentationData { /* member class not found */ class AugStat {} /* member class not found */ class augmentationStat {} /* member class not found */ class augmentationSkill {} public static final AugmentationData getInstance() { if(_instance == null) _instance = new AugmentationData(); return _instance; } private AugmentationData() { _log.info("Initializing AugmentationData."); _augmentationStats = new FastList[4]; _augmentationStats[0] = new FastList(); _augmentationStats[1] = new FastList(); _augmentationStats[2] = new FastList(); _augmentationStats[3] = new FastList(); _blueSkills = new FastMap(); _purpleSkills = new FastMap(); _redSkills = new FastMap(); for(int i = 1; i <= 10; i++) { _blueSkills.put(Integer.valueOf(i), new FastList()); _purpleSkills.put(Integer.valueOf(i), new FastList()); _redSkills.put(Integer.valueOf(i), new FastList()); } load(); _log.info((new StringBuilder()).append("AugmentationData: Loaded: ").append(_augmentationStats[0].size() * 4).append(" augmentation stats.").toString()); if(Config.DEBUG) { for(int i = 1; i <= 10; i++) _log.info((new StringBuilder()).append("AugmentationData: Loaded: ").append(((FastList)_blueSkills.get(Integer.valueOf(i))).size()).append(" blue, ").append(((FastList)_purpleSkills.get(Integer.valueOf(i))).size()).append(" purple and ").append(((FastList)_redSkills.get(Integer.valueOf(i))).size()).append(" red skills for lifeStoneLevel ").append(i).toString()); } } public static void reload() { _instance = null; getInstance(); } private final void load() { DocumentBuilderFactory factory; int badAugmantData; File file; Document doc; try { factory = DocumentBuilderFactory.newInstance(); factory.setValidating(false); factory.setIgnoringComments(true); badAugmantData = 0; file = new File((new StringBuilder()).append(Config.DATAPACK_ROOT).append("/data/stats/augmentation/augmentation_skillmap.xml").toString()); if(!file.exists()) { if(Config.DEBUG) System.out.println("The augmentation skillmap file is missing."); return; } } catch(Exception e) { if(Config.ENABLE_ALL_EXCEPTIONS) e.printStackTrace(); _log.log(Level.SEVERE, "Error parsing augmentation_skillmap.xml.", e); return; } doc = factory.newDocumentBuilder().parse(file); for(Node n = doc.getFirstChild(); n != null; n = n.getNextSibling()) { if(!"list".equalsIgnoreCase(n.getNodeName())) continue; for(Node d = n.getFirstChild(); d != null; d = d.getNextSibling()) { if(!"augmentation".equalsIgnoreCase(d.getNodeName())) continue; NamedNodeMap attrs = d.getAttributes(); int skillId = 0; int augmentationId = Integer.parseInt(attrs.getNamedItem("id").getNodeValue()); String type = "blue"; int skillLvL = 0; for(Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling()) { if("skillId".equalsIgnoreCase(cd.getNodeName())) { attrs = cd.getAttributes(); skillId = Integer.parseInt(attrs.getNamedItem("val").getNodeValue()); continue; } if("skillLevel".equalsIgnoreCase(cd.getNodeName())) { attrs = cd.getAttributes(); skillLvL = Integer.parseInt(attrs.getNamedItem("val").getNodeValue()); continue; } if("type".equalsIgnoreCase(cd.getNodeName())) { attrs = cd.getAttributes(); type = attrs.getNamedItem("val").getNodeValue(); } } if(skillId == 0) { if(Config.DEBUG) _log.log(Level.SEVERE, (new StringBuilder()).append("Bad skillId in augmentation_skillmap.xml in the augmentationId:").append(augmentationId).toString()); badAugmantData++; continue; } if(skillLvL == 0) { if(Config.DEBUG) _log.log(Level.SEVERE, (new StringBuilder()).append("Bad skillLevel in augmentation_skillmap.xml in the augmentationId:").append(augmentationId).toString()); badAugmantData++; continue; } int k; for(k = 1; augmentationId - k * 178 >= 14561; k++); if(type.equalsIgnoreCase("blue")) ((FastList)_blueSkills.get(Integer.valueOf(k))).add(new augmentationSkill(skillId, skillLvL, augmentationId)); else if(type.equalsIgnoreCase("purple")) ((FastList)_purpleSkills.get(Integer.valueOf(k))).add(new augmentationSkill(skillId, skillLvL, augmentationId)); else ((FastList)_redSkills.get(Integer.valueOf(k))).add(new augmentationSkill(skillId, skillLvL, augmentationId)); attrs = null; } } if(badAugmantData != 0) _log.info((new StringBuilder()).append("AugmentationData: ").append(badAugmantData).append(" bad skill(s) were skipped.").toString()); doc = null; file = null; int i = 1; _L2: if(i >= 5) break; /* Loop/switch isn't completed */ DocumentBuilderFactory factory; Node n; Node d; NamedNodeMap attrs; String statName; float soloValues[]; float combinedValues[]; Node cd; String tableName; StringTokenizer data; List array; int x; Iterator i$; float value; try { factory = DocumentBuilderFactory.newInstance(); factory.setValidating(false); factory.setIgnoringComments(true); file = new File((new StringBuilder()).append(Config.DATAPACK_ROOT).append("/data/stats/augmentation/augmentation_stats").append(i).append(".xml").toString()); if(!file.exists()) { if(Config.DEBUG) System.out.println((new StringBuilder()).append("The augmentation stat data file ").append(i).append(" is missing.").toString()); return; } } catch(Exception e) { if(Config.ENABLE_ALL_EXCEPTIONS) e.printStackTrace(); _log.log(Level.SEVERE, (new StringBuilder()).append("Error parsing augmentation_stats").append(i).append(".xml.").toString(), e); return; } doc = factory.newDocumentBuilder().parse(file); for(n = doc.getFirstChild(); n != null; n = n.getNextSibling()) { if(!"list".equalsIgnoreCase(n.getNodeName())) continue; for(d = n.getFirstChild(); d != null; d = d.getNextSibling()) { if(!"stat".equalsIgnoreCase(d.getNodeName())) continue; attrs = d.getAttributes(); statName = attrs.getNamedItem("name").getNodeValue(); soloValues = null; combinedValues = null; for(cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling()) { if(!"table".equalsIgnoreCase(cd.getNodeName())) continue; attrs = cd.getAttributes(); tableName = attrs.getNamedItem("name").getNodeValue(); data = new StringTokenizer(cd.getFirstChild().getNodeValue()); array = new FastList(); for(; data.hasMoreTokens(); array.add(Float.valueOf(Float.parseFloat(data.nextToken())))); if(tableName.equalsIgnoreCase("#soloValues")) { soloValues = new float[array.size()]; x = 0; for(i$ = array.iterator(); i$.hasNext() { value = ((Float)i$.next()).floatValue(); soloValues[x++] = value; } } else { combinedValues = new float[array.size()]; x = 0; for(i$ = array.iterator(); i$.hasNext() { value = ((Float)i$.next()).floatValue(); combinedValues[x++] = value; } } tableName = null; } _augmentationStats[i - 1].add(new augmentationStat(Stats.valueOfXml(statName), soloValues, combinedValues)); statName = null; attrs = null; } } doc = null; file = null; factory = null; i++; if(true) goto _L2; else goto _L1 _L1: } public L2Augmentation generateRandomAugmentation(L2ItemInstance item, int lifeStoneLevel, int lifeStoneGrade) { int skill_Chance = 0; int stat34 = 0; boolean generateSkill = false; int resultColor = 0; boolean generateGlow = false; switch(lifeStoneGrade) { case 0: // '\0' skill_Chance = Config.AUGMENTATION_NG_SKILL_CHANCE; if(Rnd.get(1, 100) <= Config.AUGMENTATION_NG_GLOW_CHANCE) generateGlow = true; break; case 1: // '\001' skill_Chance = Config.AUGMENTATION_MID_SKILL_CHANCE; if(Rnd.get(1, 100) <= Config.AUGMENTATION_MID_GLOW_CHANCE) generateGlow = true; break; case 2: // '\002' skill_Chance = Config.AUGMENTATION_HIGH_SKILL_CHANCE; if(Rnd.get(1, 100) <= Config.AUGMENTATION_HIGH_GLOW_CHANCE) generateGlow = true; break; case 3: // '\003' skill_Chance = Config.AUGMENTATION_TOP_SKILL_CHANCE; if(Rnd.get(1, 100) <= Config.AUGMENTATION_TOP_GLOW_CHANCE) generateGlow = true; break; } if(Rnd.get(1, 100) <= skill_Chance) generateSkill = true; else if(Rnd.get(1, 100) <= Config.AUGMENTATION_BASESTAT_CHANCE) stat34 = Rnd.get(16341, 16344); if(stat34 == 0 && !generateSkill) { resultColor = Rnd.get(0, 100); if(resultColor <= 15 * lifeStoneGrade + 40) resultColor = 1; else resultColor = 0; } else { resultColor = Rnd.get(0, 100); if(resultColor <= 10 * lifeStoneGrade + 5 || stat34 != 0) resultColor = 3; else if(resultColor <= 10 * lifeStoneGrade + 10) resultColor = 1; else resultColor = 2; } int stat12 = 0; if(stat34 == 0 && !generateSkill) { int temp = Rnd.get(2, 3); int colorOffset = resultColor * 10 * 91 + temp * 3640 + 1; int offset = (lifeStoneLevel - 1) * 91 + colorOffset; stat34 = Rnd.get(offset, (offset + 91) - 1); if(generateGlow && lifeStoneGrade >= 2) offset = (lifeStoneLevel - 1) * 91 + (temp - 2) * 3640 + lifeStoneGrade * 10 * 91 + 1; else offset = (lifeStoneLevel - 1) * 91 + (temp - 2) * 3640 + Rnd.get(0, 1) * 10 * 91 + 1; stat12 = Rnd.get(offset, (offset + 91) - 1); } else { int offset; if(!generateGlow) offset = (lifeStoneLevel - 1) * 91 + Rnd.get(0, 1) * 3640 + 1; else offset = (lifeStoneLevel - 1) * 91 + Rnd.get(0, 1) * 3640 + ((lifeStoneGrade + resultColor) / 2) * 10 * 91 + 1; stat12 = Rnd.get(offset, (offset + 91) - 1); } L2Skill skill = null; if(generateSkill) { augmentationSkill temp = null; switch(resultColor) { case 1: // '\001' temp = (augmentationSkill)((FastList)_blueSkills.get(Integer.valueOf(lifeStoneLevel))).get(Rnd.get(0, ((FastList)_blueSkills.get(Integer.valueOf(lifeStoneLevel))).size() - 1)); skill = temp.getSkill(lifeStoneLevel); stat34 = temp.getAugmentationSkillId(); break; case 2: // '\002' temp = (augmentationSkill)((FastList)_purpleSkills.get(Integer.valueOf(lifeStoneLevel))).get(Rnd.get(0, ((FastList)_purpleSkills.get(Integer.valueOf(lifeStoneLevel))).size() - 1)); skill = temp.getSkill(lifeStoneLevel); stat34 = temp.getAugmentationSkillId(); break; case 3: // '\003' temp = (augmentationSkill)((FastList)_redSkills.get(Integer.valueOf(lifeStoneLevel))).get(Rnd.get(0, ((FastList)_redSkills.get(Integer.valueOf(lifeStoneLevel))).size() - 1)); skill = temp.getSkill(lifeStoneLevel); stat34 = temp.getAugmentationSkillId(); break; } } if(Config.DEBUG) _log.info((new StringBuilder()).append("Augmentation success: stat12=").append(stat12).append("; stat34=").append(stat34).append("; resultColor=").append(resultColor).append("; level=").append(lifeStoneLevel).append("; grade=").append(lifeStoneGrade).toString()); return new L2Augmentation(item, (stat34 << 16) + stat12, skill, true); } public FastList getAugStatsById(int augmentationId) { FastList temp = new FastList(); int stats[] = new int[2]; stats[0] = 0xffff & augmentationId; stats[1] = augmentationId >> 16; for(int i = 0; i < 2; i++) { if(stats >= 1 && stats <= 14560) { int block; for(block = 0; stats > 3640; block++) stats -= 3640; int subblock; for(subblock = 0; stats > 91; subblock++) stats -= 91; if(stats < 14) { augmentationStat as = (augmentationStat)_augmentationStats[block].get(stats - 1); temp.add(new AugStat(as.getStat(), as.getSingleStatValue(subblock))); } else { stats -= 13; int x = 12; int rescales; for(rescales = 0; stats > x; rescales++) { stats -= x; x--; } augmentationStat as = (augmentationStat)_augmentationStats[block].get(rescales); if(rescales == 0) temp.add(new AugStat(as.getStat(), as.getCombinedStatValue(subblock))); else temp.add(new AugStat(as.getStat(), as.getCombinedStatValue(subblock * 2 + 1))); as = (augmentationStat)_augmentationStats[block].get(rescales + stats); if(as.getStat() == Stats.CRITICAL_DAMAGE) temp.add(new AugStat(as.getStat(), as.getCombinedStatValue(subblock))); else temp.add(new AugStat(as.getStat(), as.getCombinedStatValue(subblock * 2))); as = null; } continue; } if(stats >= 16341 && stats <= 16344) switch(stats) { case 16341: temp.add(new AugStat(Stats.STAT_STR, 1.0F)); break; case 16342: temp.add(new AugStat(Stats.STAT_CON, 1.0F)); break; case 16343: temp.add(new AugStat(Stats.STAT_INT, 1.0F)); break; case 16344: temp.add(new AugStat(Stats.STAT_MEN, 1.0F)); break; } } return temp; } private static final Logger _log = Logger.getLogger(com/l2jfrozen/gameserver/datatables/xml/AugmentationData.getName()); private static AugmentationData _instance; private static final int STAT_START = 1; private static final int STAT_END = 14560; private static final int STAT_BLOCKSIZE = 3640; private static final int STAT_SUBBLOCKSIZE = 91; private static final int BLUE_START = 14561; private static final int SKILLS_BLOCKSIZE = 178; private static final int BASESTAT_STR = 16341; private static final int BASESTAT_CON = 16342; private static final int BASESTAT_INT = 16343; private static final int BASESTAT_MEN = 16344; private FastList _augmentationStats[]; private Map _blueSkills; private Map _purpleSkills; private Map _redSkills; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 7 марта, 2013 Вижу только один метод на разрушение ЛСа player.destroyItem("RequestRefine", refinerItem, null, false) Конкретней сказать не могу. Копайте в эту сторону. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Linkus159 67 Опубликовано 7 марта, 2013 Вижу только один метод на разрушение ЛСа player.destroyItem("RequestRefine", refinerItem, null, false) Конкретней сказать не могу. Копайте в эту сторону. Я плохо разбераюся в ядре можете помочь что мне делать ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Linkus159 67 Опубликовано 7 марта, 2013 Нашол свою ошибку у меня програма "DJ Java Decompiler 3.12" не сохроняет фаилы в .Class и если я закидую в ядро .java фаилы тогда сервер не включается как мне зделать чтобы сохраняло ? и как мне зделать чтобы в .class тоже мог фаилы зделать ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
k0ss11 302 Опубликовано 7 марта, 2013 eclipse ska4aj0 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 8 марта, 2013 Нашол свою ошибку у меня програма "DJ Java Decompiler 3.12" не сохроняет фаилы в .Class и если я закидую в ядро .java фаилы тогда сервер не включается как мне зделать чтобы сохраняло ? и как мне зделать чтобы в .class тоже мог фаилы зделать ? Что за сборка вообще и зачем декомпилить? Не легче взять сборку с открытыми исходами? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Linkus159 67 Опубликовано 8 марта, 2013 Что за сборка вообще и зачем декомпилить? Не легче взять сборку с открытыми исходами? сборка L2jFrozen Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Linkus159 67 Опубликовано 8 марта, 2013 eclipse ska4aj0 Cкачал я eclipse дак она вопше не открывает Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NerfPl0x 38 Опубликовано 8 марта, 2013 Cкачал я eclipse дак она вопше не открывает С свн скачай исходники, меняй и компиль. Как это делать, гугли ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Linkus159 67 Опубликовано 8 марта, 2013 (изменено) вот скрин и как мне сохранить в .class? что именно делать мне ? Изменено 8 марта, 2013 пользователем Linkus159 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты