~Sens Posted June 14, 2013 Posted June 14, 2013 Καλησπέρα τσακάλια του MaxCheaters. Μπορεί να μου πει κάποιος πως μπορώ να κάνω τα Scroll και της Life Stone να είναι σε ένα Box ?? Project: L2JFrozen Φωτογραφία
0 xdem Posted June 14, 2013 Posted June 14, 2013 Καλησπέρα τσακάλια του MaxCheaters. Μπορεί να μου πει κάποιος πως μπορώ να κάνω τα Scroll και της Life Stone να είναι σε ένα Box ?? Project: L2JFrozen Φωτογραφία logika 9a vgalei bug, ala kane afto: sta xml i sql isStackable true, kai meta pigene etcitemgrp vres tin ID tis LS kai kane copy ena line apo to scroll vale tin ID kai to Icon tis Ls kai ise etimos
0 ~Sens Posted June 14, 2013 Author Posted June 14, 2013 logika 9a vgalei bug, ala kane afto: sta xml i sql isStackable true, kai meta pigene etcitemgrp vres tin ID tis LS kai kane copy ena line apo to scroll vale tin ID kai to Icon tis Ls kai ise etimos Το έκανα αλλά ήθελε να ενεργοποιήσω το config για τα scroll... # Scroll is Stackable? ScrollStackable = True Αλλά εγώ θέλω να κάνω και της Life Stone's και τα Book of Giant's Βρήκα αυτό μέσα στα RequestEnchantItem.java if (Config.SCROLL_STACKABLE) { scroll = activeChar.getInventory().destroyItem("Enchant", scroll.getObjectId(), 1, activeChar, item); } else { scroll = activeChar.getInventory().destroyItem("Enchant", scroll, activeChar, item); } Τι να γράψω για να γίνουν και η Life Stone's έτσι και τα Book of Giants ?
0 xdem Posted June 16, 2013 Posted June 16, 2013 ta packets ftene, den mporeis na kaneis kati... ikoniko einai sto kato kato den tis troei kai tis 50
0 ~Sens Posted June 16, 2013 Author Posted June 16, 2013 ta packets ftene, den mporeis na kaneis kati... ikoniko einai sto kato kato den tis troei kai tis 50 Δυστυχώς της τρώει όλες ;/
0 xdem Posted June 16, 2013 Posted June 16, 2013 Δυστυχώς της τρώει όλες ;/ stile moy to requestRefine apo client packets
0 ~Sens Posted June 16, 2013 Author Posted June 16, 2013 stile moy to requestRefine apo client packets /* This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package com.l2jfrozen.gameserver.network.clientpackets; import com.l2jfrozen.Config; import com.l2jfrozen.gameserver.datatables.xml.AugmentationData; import com.l2jfrozen.gameserver.model.L2World; import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.network.SystemMessageId; import com.l2jfrozen.gameserver.network.serverpackets.ExVariationResult; import com.l2jfrozen.gameserver.network.serverpackets.InventoryUpdate; import com.l2jfrozen.gameserver.network.serverpackets.StatusUpdate; import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage; import com.l2jfrozen.gameserver.templates.L2Item; import com.l2jfrozen.gameserver.util.Util; /** * Format:(ch) dddd * @author -Wooden- */ public final class RequestRefine extends L2GameClientPacket { private int _targetItemObjId; private int _refinerItemObjId; private int _gemstoneItemObjId; private int _gemstoneCount; @Override protected void readImpl() { _targetItemObjId = readD(); _refinerItemObjId = readD(); _gemstoneItemObjId = readD(); _gemstoneCount = readD(); } @Override protected void runImpl() { L2PcInstance activeChar = 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) // must be lvl 46 { activeChar.sendPacket(new ExVariationResult(0, 0, 0)); activeChar.sendPacket(new SystemMessage(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS)); return; } // unequip item if (targetItem.isEquipped()) { activeChar.disarmWeapons(); } if (TryAugmentItem(activeChar, targetItem, refinerItem, gemstoneItem)) { int stat12 = 0x0000FFFF & 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() != L2PcInstance.STORE_PRIVATE_NONE) { player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_AUGMENT_ITEMS_WHILE_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP_IS_IN_OPERATION)); return false; } // check for the items to be in the inventory of the owner if (player.getInventory().getItemByObjectId(refinerItem.getObjectId()) == null) { Util.handleIllegalPlayerAction(player, "Warning!! Character " + player.getName() + " of account " + player.getAccountName() + " tried to refine an item with wrong LifeStone-id.", Config.DEFAULT_PUNISH); return false; } if (player.getInventory().getItemByObjectId(targetItem.getObjectId()) == null) { Util.handleIllegalPlayerAction(player, "Warning!! Character " + player.getName() + " of account " + player.getAccountName() + " tried to refine an item with wrong Weapon-id.", Config.DEFAULT_PUNISH); return false; } if (player.getInventory().getItemByObjectId(gemstoneItem.getObjectId()) == null) { Util.handleIllegalPlayerAction(player, "Warning!! Character " + player.getName() + " of account " + player.getAccountName() + " tried to refine an item with wrong Gemstone-id.", Config.DEFAULT_PUNISH); return false; } int itemGrade = targetItem.getItem().getItemGrade(); int itemType = targetItem.getItem().getType2(); int lifeStoneId = refinerItem.getItemId(); int gemstoneItemId = gemstoneItem.getItemId(); // is the refiner Item a life stone? if (lifeStoneId < 8723 || lifeStoneId > 8762) return false; // must be a weapon, must be > d grade // TODO: can do better? : currently: using isdestroyable() as a check for hero / cursed weapons if (itemGrade < L2Item.CRYSTAL_C || itemType != L2Item.TYPE2_WEAPON || !targetItem.isDestroyable()) return false; // player must be able to use augmentation if (player.getPrivateStoreType() != L2PcInstance.STORE_PRIVATE_NONE || player.isDead() || player.isParalyzed() || player.isFishing() || player.isSitting()) return false; int modifyGemstoneCount = _gemstoneCount; int lifeStoneLevel = getLifeStoneLevel(lifeStoneId); int lifeStoneGrade = getLifeStoneGrade(lifeStoneId); switch (itemGrade) { case L2Item.CRYSTAL_C: if (player.getLevel() < 46 || gemstoneItemId != 2130) return false; modifyGemstoneCount = 20; break; case L2Item.CRYSTAL_B: if (player.getLevel() < 52 || gemstoneItemId != 2130) return false; modifyGemstoneCount = 30; break; case L2Item.CRYSTAL_A: if (player.getLevel() < 61 || gemstoneItemId != 2131) return false; modifyGemstoneCount = 20; break; case L2Item.CRYSTAL_S: if (player.getLevel() < 76 || gemstoneItemId != 2131) return false; modifyGemstoneCount = 25; break; } // check if the lifestone is appropriate for this player switch (lifeStoneLevel) { case 1: if (player.getLevel() < 46) return false; break; case 2: if (player.getLevel() < 49) return false; break; case 3: if (player.getLevel() < 52) return false; break; case 4: if (player.getLevel() < 55) return false; break; case 5: if (player.getLevel() < 58) return false; break; case 6: if (player.getLevel() < 61) return false; break; case 7: if (player.getLevel() < 64) return false; break; case 8: if (player.getLevel() < 67) return false; break; case 9: if (player.getLevel() < 70) return false; break; case 10: if (player.getLevel() < 76) return false; break; } // Check if player has all gemstorne on inventory if (gemstoneItem.getCount() - modifyGemstoneCount < 0) return false; // consume the life stone if (!player.destroyItem("RequestRefine", refinerItem, null, false)) return false; // consume the gemstones player.destroyItem("RequestRefine", _gemstoneItemObjId, modifyGemstoneCount, null, false); // generate augmentation targetItem.setAugmentation(AugmentationData.getInstance().generateRandomAugmentation(targetItem, lifeStoneLevel, lifeStoneGrade)); // finish and send the inventory update packet InventoryUpdate iu = new InventoryUpdate(); iu.addModifiedItem(targetItem); player.sendPacket(iu); StatusUpdate su = new StatusUpdate(player.getObjectId()); su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad()); player.sendPacket(su); return true; } private int getLifeStoneGrade(int itemId) { itemId -= 8723; if (itemId < 10) return 0; // normal grade if (itemId < 20) return 1; // mid grade if (itemId < 30) return 2; // high grade return 3; // top grade } private int getLifeStoneLevel(int itemId) { itemId -= 10 * getLifeStoneGrade(itemId); itemId -= 8722; return itemId; } @Override public String getType() { return "[C] D0:2C RequestRefine"; } }
0 xdem Posted June 16, 2013 Posted June 16, 2013 // consume the life stone if (!player.destroyItem("RequestRefine", refinerItem, null, false)) return false; kanto // consume the life stone if (!player.destroyItem("RequestRefine", refinerItem, 1, null, false)) return false;
0 ~Sens Posted June 16, 2013 Author Posted June 16, 2013 // consume the life stone if (!player.destroyItem("RequestRefine", refinerItem, null, false)) return false; kanto // consume the life stone if (!player.destroyItem("RequestRefine", refinerItem, 1, null, false)) return false; Και για τα Secret Book of Giants από που το κάνω ? Δεν ξέρω της τοποθεσίες :/
0 xdem Posted June 16, 2013 Posted June 16, 2013 requestExEnchantSkill legete nomizw sta clientpackets, kane to idio
0 ~Sens Posted June 16, 2013 Author Posted June 16, 2013 requestExEnchantSkill legete nomizw sta clientpackets, kane to idio Αυτό είναι ? // ok player.destroyItem("Consume", spb, trainer, true); Και θα το κάνω έτσι ? // ok player.destroyItem("Consume", spb, 1, trainer, true); Και όταν περνάω το " 1," μου υπογραμμίζει με κόκκινο το destroyItem Και στο Refine & στο ExEnchantSkill
0 xdem Posted June 17, 2013 Posted June 17, 2013 bump ti bump re mlka, oute ena addItem den 3ereis na ftiaxneis ? ante model/itemcontainer/inventory.java kai stilto edw
0 xdem Posted June 18, 2013 Posted June 18, 2013 player.destroyItem("Consume", spb.getItemId(), 1, trainer, true);
Question
~Sens
Καλησπέρα τσακάλια του MaxCheaters.
Μπορεί να μου πει κάποιος πως μπορώ να κάνω τα Scroll και της Life Stone να είναι σε ένα Box ??
Project: L2JFrozen
Φωτογραφία
18 answers to this question
Recommended Posts