Сообщений: 5
Тем: 1
Зарегистрирован: Jun 2014
Репутация:
-92
Здравствуйте форумчане. У меня есть вопрос с которым я месяц сам мучаюсь. Я на него искал ответ в просторах интернета и ничего толком ничего не нашел. Поэтому создаю тему тут.
Суть вопроса хроники interlude, исходник aCis. Вот думаю писать код для NPC что бы при диалоге с NPC и при нажатии на ссылку(иконку) персонажу давало определенный skill за определенный items (пусть даже тоже золото)
вот код который в HTML файле NPC:
action="bypass -h npc_%objectId%_ (Вот что сюда писать?) "
и что бы работало!
Сообщений: 290
Тем: 23
Зарегистрирован: Aug 2009
Репутация:
116
Ето нужно писать нового npc одной строкой не обойтись...
Сообщений: 5
Тем: 1
Зарегистрирован: Jun 2014
Репутация:
-92
APKO Написал:Ето нужно писать нового npc одной строкой не обойтись... а по подробней можно? я бы написал его так вот не знаю как.
Сообщений: 53
Тем: 11
Зарегистрирован: Jan 2013
Репутация:
229
Akiflola Написал:Здравствуйте форумчане. У меня есть вопрос с которым я месяц сам мучаюсь. Я на него искал ответ в просторах интернета и ничего толком ничего не нашел. Поэтому создаю тему тут.
Суть вопроса хроники interlude, исходник aCis. Вот думаю писать код для NPC что бы при диалоге с NPC и при нажатии на ссылку(иконку) персонажу давало определенный skill за определенный items (пусть даже тоже золото)
вот код который в HTML файле NPC:
action="bypass -h npc_%objectId%_ (Вот что сюда писать?) "
и что бы работало!
Не кто уже давно не пишет отдельных НПЦ, только заморачивать голову, зачем всё усложнять, если вы не понимаете элементарного?
Возьмите НПЦ рыболов (Надеюсь оно вам не нужнен), поменяйте там скиллы и итемы, воуля, всё готово.
Либо возьмите данного нпц за основу, и делайте что душе угодно.
Сообщений: 5
Тем: 1
Зарегистрирован: Jun 2014
Репутация:
-92
zend Написал:Не кто уже давно не пишет отдельных НПЦ, только заморачивать голову, зачем всё усложнять, если вы не понимаете элементарного?
Возьмите НПЦ рыболов (Надеюсь оно вам не нужен), поменяйте там скиллы и итемы, воуля, всё готово.
Либо возьмите данного нпц за основу, и делайте что душе угодно.
Я Вас понял, а вы кажется меня не очень. Рыболов работает по принципу SkillTrees.Только вот когда пишешь код:
action="bypass -h npc_%objectId%_FishSkillList" (либо же SkillList) то показывает в окне выучить умения все умения которые прописаны в SQL файле. А мне надо что бы если иконка показывает Wortex(к примеру) то и при нажатии на иконку я смогу выучить вортекс сразу, а не искать среди многих скилов вортекс.
Сообщений: 807
Тем: 15
Зарегистрирован: Aug 2012
Репутация:
3,891
В инете уйма скриптов и нпц по продаже скиллов, возьмите и переделайте под себя.
Сообщений: 901
Тем: 78
Зарегистрирован: Dec 2012
Репутация:
9,514
Скажу так, надо писать AI для нпса.
Скажу еще что нужны исходники полные, и мозги - умение самообучатся)
Но этого умение самообучатся у вас нет, ибо вы по логике могли сделать поиск по исходникам и увидеть аналогиченые методы
Ну ладно предположим что все это у вас есть тогда как пример, я хз как у Acis можно сделать так
Код: public class ClanManagerInstance extends NpcInstance
{
public ClanManagerInstance(int objectId, NpcTemplate template)
{
super(objectId, template);
}
@Override
public void onBypassFeedback(Player player, String command)
{
if(!canBypassCheck(player, this))
return;
else if(command.startsWith("add_skill"))
AddSkill(player);
}
public void AddSkill(Player player)
{
int itemId = 6154;
int itemCount = 50;
if(item.getCount() == itemCount)
{
player.getInventory().destroyItemByItemId(itemId, itemCount);
player.addSkill(225,1,true);
}
else
{
player.sendMessage("У вас нет достаточно предметов для поднятие репутации.");
}
}
}
За правильность синтакса не отвечаю но чтото такое.
Код: public void AddSkill(Player player)
{
int itemId = 6154;
int itemCount = 50;
if(item.getCount() == itemCount)
{
player.getInventory().destroyItemByItemId(itemId, itemCount);
player.addSkill(225);
}
else
{
player.sendMessage("У вас нет достаточно предметов для поднятие репутации.");
}
}
В самом нпс в хтмл кнопке
Код: <button value=ДАЙ МИНЕ СИЛУ!!!1" action="bypass -h npc_%objectId%_add_skill" width=202 height=32 back="L2UI_CT1.OlympiadWnd_DF_Fight3None_Down" fore="L2UI_CT1.OlympiadWnd_DF_Fight3None"/>
Грубый пример и я даже не кодер
Сообщений: 5
Тем: 1
Зарегистрирован: Jun 2014
Репутация:
-92
я так понял это будет тока для одного скила ,так как в HTML коде нету ID lvl costID и так далее. Правильно я понял?
Сообщений: 466
Тем: 10
Зарегистрирован: Dec 2012
Репутация:
398
В общем тс хочет отсортировать скиллы в SkillList, то есть чтобы показывало не все уровни скилла, которые отсутствуют у игрока, а только скиллы, которые на данный момент можно выучить/повысить, а при клике на скилл либо открывался еще один список с возможными уровнями, либо повышался уровень скилла на +1.
Сам я пока не в курсе каким образом это сделать, может из вас кто-то знает. Я ему, в принципе, предлагал сделать как HTML`ку, где выбираешь скилл, а он тебе открывать скилллист со всеми уровнями скилла (но это бредово и геморно, так как для кучи скиллов нужно будет делать отдельные скилллисты). Поскольку скилллист - это пакетка, то не в курсе, как это "зачудить".
Сообщений: 1,240
Тем: 29
Зарегистрирован: May 2013
Репутация:
2,505
Пусть создаст xml файл со списком продаваемых скилов. Можно вывести через пакет AcquireSkillList или через HTML окно. Смысла перечислять все уровни нет. Достаточно максимальный указывать и всё. Парсер воткнуть в ветвь database и все скилы кинуть в контейнер, чтобы потом использовать их в выдаче.
По большому счёту нужно всего-лишь определиться в каком виде выводить, а сам скрипт не долго пишется. Можно через отдельного НПЦ (придётся создавать новый инстанс), а можно использовать имеющийся инстанс и добавить метод обработки дополнительного сбытия, а также в HTML диалогах сделать ссылку на это событие.
Ничего трудного здесь нет.
|