AlexMan 27 Опубликовано 16 апреля, 2012 Скрытый текст package custom.AugmentSeller; import ru.catssoftware.gameserver.model.itemcontainer.Inventory; import ru.catssoftware.gameserver.model.L2Augmentation; import ru.catssoftware.gameserver.model.L2ItemInstance; import ru.catssoftware.gameserver.model.actor.instance.L2NpcInstance; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.quest.jython.QuestJython; import ru.catssoftware.gameserver.network.SystemMessageId; import ru.catssoftware.gameserver.serverpackets.ExVariationResult; import ru.catssoftware.gameserver.serverpackets.InventoryUpdate; import ru.catssoftware.gameserver.serverpackets.SystemMessage; import ru.catssoftware.tools.random.Rnd; /** * * @author Ster */ public class AugmentSeller extends QuestJython { private static final int NPC = 70014; private static final int STAT_BLOCKSIZE = 3640; private static final int STAT_SUBBLOCKSIZE = 91; public AugmentSeller(int questId, String name, String descr) { super(questId, name, descr); this.addStartNpc(NPC); this.addTalkId(NPC); //this.addEventId(NPC, QuestEventType.ON_TALK); } @Override public String onTalk(L2NpcInstance npc, L2PcInstance player) { if (npc.getNpcId() == NPC) { return "70014-main.htm"; } return null; } @Override public String onAdvEvent(String event, L2NpcInstance npc, L2PcInstance player) { String htmltext = ""; if (event.startsWith("70014")) { htmltext = event + ".htm"; } else if (event.startsWith("buy_")) { System.out.println("ja ebu gusei"); String input = event.replace("buy_", ""); int id = Integer.parseInt(input.split("_")[0]); int lvl = Integer.parseInt(input.split("_")[1]); int price = Integer.parseInt(input.split("_")[2]); int priceC = Integer.parseInt(input.split("_")[3]); int augId = Integer.parseInt(input.split("_")[4]); if (player.getActiveWeaponInstance() != null) { System.out.println("ja ebu gusei1"); L2ItemInstance weapon = player.getActiveWeaponInstance(); if (weapon.isShadowItem() || weapon.isStackable()) { player.sendPacket(new SystemMessage(SystemMessageId.THIS_IS_NOT_A_SUITABLE_ITEM)); htmltext = "<html><body>Seller:<br>Неподходящие условия!</body></html>"; } else if (player.isCastingNow() || player.isAttackingNow() || player.isDead()) { player.sendMessage("Неподходящие условия!"); htmltext = "<html><body>Seller:<br>Неподходящие условия!</body></html>"; } else if (weapon.isAugmented()) { player.sendPacket(new SystemMessage(SystemMessageId.ONCE_AN_ITEM_IS_AUGMENTED_IT_CANNOT_BE_AUGMENTED_AGAIN)); htmltext = "<html><body>Seller:<br>Неподходящие условия!</body></html>"; } else if (player.getInventory().getItemByItemId(price) == null || player.getInventory().getItemByItemId(price).getCount() < priceC) { player.sendMessage("Недостаточно необходимых предметов!"); htmltext = "<html><body>Seller:<br>Неподходящие условия!</body></html>"; } else { player.disarmWeapons(); InventoryUpdate iu = new InventoryUpdate(); //================================================== int resultColor = Rnd.get(0, 100); if (getLifeStoneGrade(8762) == 3 || resultColor <= (15*getLifeStoneGrade(8762))+10) resultColor = 3; else if (getLifeStoneGrade(8762) == 2 || resultColor <= (15*getLifeStoneGrade(8762))+20) resultColor = 2; else if (getLifeStoneGrade(8762) == 1 || resultColor <= (15*getLifeStoneGrade(8762))+30) resultColor = 1; else resultColor = 0; int colorOffset = (resultColor*(STAT_SUBBLOCKSIZE*10)) +((getLifeStoneLevel(8762)-1)*STAT_SUBBLOCKSIZE); int offset = ((3-getLifeStoneGrade(8762))*STAT_BLOCKSIZE)+colorOffset; int stat12 = Rnd.get(offset, offset+STAT_SUBBLOCKSIZE); int stat34 = augId; //================================================== weapon.setAugmentation(new L2Augmentation(((stat34<<16)+stat12), id, lvl)); iu.addModifiedItem(weapon); System.out.println("ja ebu gusei2"); player.destroyItemByItemId("seller", price, priceC, null, true); player.sendPacket(iu); //removeWeapon(player); player.sendSkillList(); stat12 = 0x0000FFFF&weapon.getAugmentation().getAugmentationId(); stat34 = weapon.getAugmentation().getAugmentationId()>>16; player.sendPacket(new ExVariationResult(stat12,stat34,1)); player.sendPacket(new SystemMessage(SystemMessageId.THE_ITEM_WAS_SUCCESSFULLY_AUGMENTED)); htmltext = "<html><body>Seller:<br>Ваше оружие улучшено!</body></html>"; } } else { player.sendMessage("Наденьте оружие, которое хотите улучшить!"); htmltext = "<html><body>Seller:<br>Наденьте оружие, которое хотите улучшить!</body></html>"; } } return htmltext; } private int getLifeStoneLevel(int itemId) { itemId -= 10 * getLifeStoneGrade(itemId); itemId -= 8722; return itemId; } 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 } public void removeWeapon(L2PcInstance player) { L2ItemInstance wpn = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); if (wpn == null) wpn = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LRHAND); if (wpn != null) { L2ItemInstance[] unequiped = player.getInventory().unEquipItemInBodySlotAndRecord(wpn.getItem().getBodyPart()); InventoryUpdate iu = new InventoryUpdate(); for (int i = 0; i < unequiped.length; i++) iu.addModifiedItem(unequiped[i]); player.sendPacket(iu); player.abortAttack(); player.broadcastUserInfo(); if (unequiped.length > 0) { if (unequiped[0].isWear()) return; SystemMessage sm = null; if (unequiped[0].getEnchantLevel() > 0){ sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED); sm.addNumber(unequiped[0].getEnchantLevel()); sm.addItemName(unequiped[0].getItemId()); }else{ sm = new SystemMessage(SystemMessageId.S1_DISARMED); sm.addItemName(unequiped[0].getItemId()); } player.sendPacket(sm); } } } public static void main(String[] args) { new AugmentSeller(-1, "AugmentSeller", "special"); } } На скока я понял эт чета вставки лс в 1 клик если нет то исправьте и помогите с линками) с меня пару полезных скриптов ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AlexMan 27 Опубликовано 16 апреля, 2012 (изменено) bypass -h Quest AugmentSeller Помогите) Изменено 16 апреля, 2012 пользователем AlexMan Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AlexMan 27 Опубликовано 19 апреля, 2012 Ап Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
taste 501 Опубликовано 19 апреля, 2012 нпс который продает аугменты в пуху больше расскажут те кто питон знают Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 19 апреля, 2012 bypass -h npc_%objectId%_Quest 6666_loto заместь етого свой квест. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты