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

Augment Shop (interlude)

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

Доброго времени суток.

Есть такой нпц - продавец аugment скиллов: ссылка

Написан он на java языке, по этому прошу помощи у знающих людей java.

Дело в том, что он вставляет ЛС абсолютно в любую пушку, мне нужно сделать запрет на вставку в геройское оружие, оружие нг,д, грейда, и ещо один момент: при вставке ЛС на оружии нету анимации ЛСа.

Вот код, заранее спасибо.

 package custom.AugmentShop;

import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.quest.Quest;
import net.sf.l2j.gameserver.model.quest.QuestState;
import net.sf.l2j.gameserver.model.Inventory;
import java.sql.Connection;
import java.sql.PreparedStatement;
import net.sf.l2j.L2DatabaseFactory;
import java.util.logging.Level;
import net.sf.l2j.gameserver.model.L2ItemInstance;

/**
* 
* @author adapted by Samar 2011 RUSSIA
* 
*/
public class AugmentShop extends Quest
{
private final static int ITEM_ID = 4037;
private final static int ITEM_COUNT = 15;
private final static String qn = "AugmentShop";
private final static int NPC = 91000;

public AugmentShop(int questId, String name, String descr) 
{
	super(questId, name, descr);
	addFirstTalkId(NPC);
	addStartNpc(NPC);
	addTalkId(NPC);
}

@Override
public String onAdvEvent(String event, L2NpcInstance npc, L2PcInstance player)
{
	String htmltext = "";

	if (event.equalsIgnoreCase("active"))
	{
		htmltext = "active.htm";
	}

	else if (event.equalsIgnoreCase("passive"))
	{
		htmltext = "passive.htm";
	}

	else if (event.equalsIgnoreCase("chance"))
	{
		htmltext = "chance.htm";
	}

	else
	{

		updateAugment(player, Integer.parseInt(event.substring(0,5)), Integer.parseInt(event.substring(6,10)), Integer.parseInt(event.substring(11,13)));
	}


	return htmltext;
}

@Override
public String onFirstTalk(L2NpcInstance npc, L2PcInstance player)
{
	String htmltext = "";
	QuestState qs = player.getQuestState(qn);
	if (qs == null)
		qs = newQuestState(player);
	htmltext = "main.htm";
	return htmltext;
}

public static void main(String[] args)
{
	new AugmentShop(-1, qn, "AugmentShop");
}


private static void updateAugment(L2PcInstance player, int attributes, int skill, int level)
{
	L2ItemInstance item = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
	if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND) == null)

	{
		player.sendMessage("You have to equip a weapon.");
		return;
	}

	if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).isAugmented())
	{
		player.sendMessage("The weapon is already augmented.");
		return;
	}

	if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) < ITEM_COUNT)
	{
		player.sendMessage("You dont have enough item.");
		return;
	}

	Connection con = null;
	try
	{
		player.destroyItemByItemId("Consume", ITEM_ID, ITEM_COUNT, player, true);
		con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement statement = con.prepareStatement("REPLACE INTO augmentations VALUES(?,?,?,?)");
		statement.setInt(1, item.getObjectId());

			statement.setInt(2, attributes*65536+1);
			statement.setInt(3, skill);
			statement.setInt(4, level);

		statement.executeUpdate();
		player.sendMessage("Succesfully augmented. You have to relog now.");
		statement.close();

	}
	catch (Exception e)
	{
		_log.log(Level.SEVERE, "Could not augment item: "+item.getObjectId()+" ", e);
	}
	finally
	{
	try
	{

		/*L2DatabaseFactory.close(con);*/
		con.close();
		}
		catch (Exception e)
		{
		}
	}
}


}

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


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

L2PcInstance player = getClient().getActiveChar();

 

 

if(player.getInventory().getItemByItemId(id)!=null){

действия

}

 

 

хз будет ли работать или не нету времени проверить просто

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


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

Помогите как правельно добавить в этот скрипт чтобы пушка лс светилась

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


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

попробуй другого аугментора

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


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

волдо, а ты вписал все лсы в файлы? Если да, мб поделишься?

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


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

что толку вписывать если работает неправельно!

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


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

да че те так принципиально, что бы пухи светились и ЛСы нельзя было во все пухи вставлять?

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


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

у меня нету но зделал бы для всех всё слы кто бы помог с обновлением ивенторя без релога и с эфектом свечения

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


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

+1, тоже хотел бы свечение и без релога. Можно попробовать попросить Saick, он вроде шарит в скриптах

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


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

Люди добрые зделайте счастье людям уже давно такого в шаре небыло! я дам 100р )) всёё что есть

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


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

Блин где только невстретиш эту тему везде беда

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


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

if(player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).isHeroItem(

) ||

player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).getItem().getC

rystalType() == L2Item.CRYSTAL_NONE ||

player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).getItem().getC

rystalType() == L2Item.CRYSTAL_D)

{

player.sendMessage("The weapon is already augmented.");

return;

}

 

 

 

 

Тут хиро пухи и д клас немного , думаю как дальше - розберёшься...

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


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

А поправить вот эту ошибку может кто то помочь?

C:\Users\java\Desktop\TхЁтхЁ\server\data\scripts\custom\AugmentShop\AugmentShop.
java
java.lang.StringIndexOutOfBoundsException: String index out of range: 13
	at java.lang.String.substring(Unknown Source)
	at custom.AugmentShop.AugmentShop.onAdvEvent(Unknown Source)
	at net.sf.l2j.gameserver.model.quest.Quest.notifyEvent(Quest.java:299)
	at net.sf.l2j.gameserver.model.actor.instance.L2PcInstance.processQuestE
vent(L2PcInstance.java:1234)
	at net.sf.l2j.gameserver.network.clientpackets.RequestBypassToServer.run
Impl(RequestBypassToServer.java:169)
	at net.sf.l2j.gameserver.network.clientpackets.L2GameClientPacket.run(L2
GameClientPacket.java:75)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

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


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

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

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

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

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

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

Войти

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

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

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

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

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