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

Скрипт

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

Здравствуйте, просьба не говорить о том что я 0 в Джаве, или даун который не может юзнуть великий Гугл.

Мне нужно чтоб по нажатию на кнопку в какого то НПС, срабатывал ивент в скрипте (Выдача шмота, например).

Просьба объяснить принцип роботы инстансов. Я то сделал свой:

 


package silentium.gameserver.model.actor.instance;
import gnu.trove.map.hash.TIntIntHashMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.StringTokenizer;
import silentium.gameserver.data.cache.HtmCache;
import silentium.gameserver.data.multilang.MultilangHtmPath;
import silentium.gameserver.model.L2ItemInstance;
import silentium.gameserver.model.L2Skill;
import silentium.gameserver.model.actor.L2Character;
import silentium.gameserver.model.actor.L2Summon;
import silentium.gameserver.network.SystemMessageId;
import silentium.gameserver.network.serverpackets.ActionFailed;
import silentium.gameserver.network.serverpackets.NpcHtmlMessage;
import silentium.gameserver.network.serverpackets.SystemMessage;
import silentium.gameserver.tables.NpcBufferTable;
import silentium.gameserver.tables.SkillTable;
import silentium.gameserver.taskmanager.AttackStanceTaskManager;
import silentium.gameserver.templates.chars.L2NpcTemplate;

public class L2TattooMenagerInstance extends L2NpcInstance
{
private static final Logger _log = LoggerFactory.getLogger(L2TattooMenagerInstance.class.getName());

private static TIntIntHashMap pageVal = new TIntIntHashMap();
public L2TattooMenagerInstance(int objectId, L2NpcTemplate template)
{
super(objectId, template);
}
@Override
public void onBypassFeedback(L2PcInstance player, String command)
{
if (player == null)
{
return;
}

L2Character target = player;
int npcId = getNpcId();
StringTokenizer st = new StringTokenizer(command, " ");
String actualCommand = st.nextToken(); // Get actual command


if (actualCommand.startsWith("nextInfo"))
{
if (player.getInventory().getInventoryItemCount(10041, 0) >= 1)
{

}
else if (player.getInventory().getInventoryItemCount(10042, 0) >= 1)
{
}
else if (player.getInventory().getInventoryItemCount(10043, 0) >= 1)
{

}
else if (player.getInventory().getInventoryItemCount(10044, 0) >= 1)
{
}
else if (player.getInventory().getInventoryItemCount(10045, 0) >= 1)
{

}
else if (player.getInventory().getInventoryItemCount(10046, 0) >= 1)
{
}
else if (player.getInventory().getInventoryItemCount(10047, 0) >= 1)
{

}
}
else if (actualCommand.startsWith("upgrade"))
{
player.sendMessage("Upgrade");
//if (player.getInventory().getInventoryItemCount(10041, 0) >= 1)
//{
player.destroyItemByItemId("Toti Tattoo Level 1", 10041, 1, player, false);
player.getInventory().addItem("Toti Tattoo Level 2", 10042, 1, player, null);
player.getInventory().updateDatabase();
player.sendMessage("3lvl");
//}
if (player.getInventory().getInventoryItemCount(10042, 0) >= 1)
{
player.destroyItemByItemId("Toti Tattoo Level 2", 10042, 1, player, false);
player.getInventory().addItem("Toti Tattoo Level 3", 10043, 1, player, null);
player.getInventory().updateDatabase();
player.sendMessage("4lvl");
}
else if (player.getInventory().getInventoryItemCount(10043, 0) >= 1)
{
player.destroyItemByItemId("Toti Tattoo Level 3", 10043, 1, player, false);
player.getInventory().addItem("Toti Tattoo Level 4", 10044, 1, player, null);
player.getInventory().updateDatabase();
player.sendMessage("4lvl");
}
else if (player.getInventory().getInventoryItemCount(10044, 0) >= 1)
{
player.destroyItemByItemId("Toti Tattoo Level 4", 10044, 1, player, false);
player.getInventory().addItem("Toti Tattoo Level 5", 10045, 1, player, null);
player.getInventory().updateDatabase();
player.sendMessage("5lvl");
}
else if (player.getInventory().getInventoryItemCount(10045, 0) >= 1)
{
player.destroyItemByItemId("Toti Tattoo Level 5", 10045, 1, player, false);
player.getInventory().addItem("Toti Tattoo Level 6", 10046, 1, player, null);
player.getInventory().updateDatabase();
player.sendMessage("6lvl");
}
else if (player.getInventory().getInventoryItemCount(10046, 0) >= 1)
{
player.destroyItemByItemId("Toti Tattoo Level 6", 10046, 1, player, false);
player.getInventory().addItem("Toti Tattoo Level 7", 10047, 1, player, null);
player.getInventory().updateDatabase();
player.sendMessage("7lvl");
}
else if (player.getInventory().getInventoryItemCount(10047, 0) >= 1);
{
player.sendMessage("Maximum");
}
}
super.onBypassFeedback(player, command);
}

@Override
public String getHtmlPath(int npcId, int val)
{
String pom = "";
if (val == 0)
{
pom = "" + npcId;
}
else
{
pom = npcId + "-" + val;
}

return "data/html-en/Default/" + pom + ".htm";
}
}

 

 

Но ничего не работает, на кнопке стоит бипас upgrade

Просьба привести пример: гайда, статьи, или своего кода.

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


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

Легче написать скрипт в ДП, чем писать новый тип НПСа. За основу можешь взять любого НПСа на яве.

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


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

Легче написать скрипт в ДП, чем писать новый тип НПСа. За основу можешь взять любого НПСа на яве.

Все закрыто, в базе тип НПС не указал

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


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

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

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

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