Перейти к содержанию
Авторизация  
AlexMan

Прошу Обеснить Полную Функцию Даного Скрипта

Рекомендуемые сообщения

Скрытый текст
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 клик если нет то исправьте и помогите с линками) с меня пару полезных скриптов )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

bypass -h Quest AugmentSeller

Помогите)

Изменено пользователем AlexMan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нпс который продает аугменты в пуху больше расскажут те кто питон знают

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...