Перейти к содержанию

akoraun

Пользователи
  • Публикаций

    62
  • Зарегистрирован

  • Посещение

  • Отзывы

    0%

Весь контент akoraun

  1. Спасибо!) Кстати, пока еще актуальна проблема: при запуске gameserver по умолчанию не подхватываются никакие созданные мной квесты до перезапуска скриптов из панели ГМа. Это значит, что ни взять, ни продолжить квесты нельзя, поскольку уже взятые квесты в квестах тупо не отображаются и вообще скрипты не подгружены. Даже консоль gameserver в конце пишет: "Не найден квест №1", "Не найден квест №2" и так далее.
  2. Спасибо за ответ. Буду разбираться в написанном потиху, потому что так просто код съесть сложно. + Если кто-нибудь знает, как сделать это в sql, тоже напишите, пожалуйста! Должен быть способ сделать это в sql автоматически по простому какой-нибудь функцией. Конкретно, я использую Navicat. Те, кто ей пользуются, подскажите, если знаете, чем в ней можно это сделать.
  3. Все. Бог мне помог. Интуитивно не имея никаких оснований, что так прокатит, изменил начальный HTM НПС таким образом: [npc_%objectId%_Quest _название_ява_файла_квеста1|Задание 1] [npc_%objectId%_Quest _название_ява_файла_квеста2|Задание 2] [npc_%objectId%_Quest _название_ява_файла_квеста3|Задание 3] Между "npc_%objectId%_Quest" и "_название_ява_файла_квеста№" пробел должен стоять. Тут плохо видно просто. И хер у какого НПС такая форма есть!
  4. Друг мой. Пока это всего лишь тренировочный полигон, а не проект. Думать самому java+sql+еще неизвестно что, не имея никакого опыта и никаких мануалов в интернете...если все так будут думать, то никто ничего не сделает. Я на ходу не имея опыта и знаний по java и так далее делаю вещи, которые нигде до меня, возможно не были описаны на форумах, потому что все знают, но молчат, такие как вы. И ваша фраза "удаляюсь из темы" бред собачий. Вы ни одного сообщения с полезной информацией не написали тут.
  5. Код квеста минимальный и простой как пробка. Пожалуйста, код ниже. НПС стартовый есть в OnTalk все стоит, иначе как я указал выше, никакое количество рестартов script-ов не заставило бы квест работать. Это же логика. package quests; import l2ft.commons.util.Rnd; import l2ft.gameserver.model.instances.NpcInstance; import l2ft.gameserver.model.quest.Quest; import l2ft.gameserver.model.quest.QuestState; import l2ft.gameserver.scripts.ScriptFile; public class _333331_GuildMageEntry extends Quest implements ScriptFile { @@override public void onLoad() { } @@override public void onReload() { } @@override public void onShutdown() { } public _333331_GuildMageEntry() { super(false); addStartNpc(90096); addKillId(80001); } @@override public String onEvent(String event, QuestState st, NpcInstance npc) { String htmltext = event; if(event.intern().equalsIgnoreCase("333331_03.htm")) { st.setCond(1); st.setState(STARTED); st.playSound(SOUND_ACCEPT); } return htmltext; } @@override public String onTalk(NpcInstance npc, QuestState st) { String htmltext = "noquest"; int cond = st.getCond(); if(cond == 0) { if(st.getPlayer().getLevel() >= 5) { htmltext = "333331_02.htm"; return htmltext; } htmltext = "333331_01.htm"; st.exitCurrentQuest(true); } else if(cond == 1) htmltext = "333331_05.htm"; else if(cond == 2) { st.giveItems(1048, 1); htmltext = "333331_06.htm"; st.playSound(SOUND_FINISH); st.exitCurrentQuest(true); } return htmltext; } @@override public String onKill(NpcInstance npc, QuestState st) { int npcId = npc.getNpcId(); if(npcId == 80001 && st.getCond() == 1 ) { st.playSound(SOUND_JACKPOT); st.setCond(2); } return null; } } Из квеста убрал даже простой набор итемов с квестового моба, потому что начинается вообще бардак. Вместо указанного итема, например ID = 1024 Руда из квеста 5-го уровня на Жаб в Talking Island падает хрень какая-то левая, никак в коде не указанная... Еще сразу вопрос по теме. Где указывается, что квест одноразовый/многоразовый не понял. В скрипте не заметил ничего такого.
  6. Не понятно. То ли сборка глючит, то ли писать код надо иначе. Если 1 квест висит на НПС. То он не подхватывает его с начальной страницы диалога ни в какую. http://prntscr.com/dywweh Если 2 или больше, то только после перезапуска скриптов через меню админа в игре. И то вместо название квестов показывается "[]". Это не дело. http://prntscr.com/dywwo7 А дальше уже более менее. http://prntscr.com/dywwv0 Такое ощущение, что при обычном запуске gameserver эти скрипты вообще не загружаются.
  7. Спасибо. Но читать всю информацию подряд нет возможности.
  8. Хочу создать таблицу, хранящую дополнительные показатели персонажей. Для этого необходимо, чтобы для каждого создаваемого персонажа там как в таблицах character_subclasses и character_skills автоматически добавлялись записи с заполненным char_obj_id полем. Как сделать?
  9. Чел, я спросил как убрать. Что это я понял. А для того, что бы убрать, надо еще и понять, где значения дублируются.
  10. Кто в курсе, как убрать WARN ItemHandler: Duplicate handler for item: 8659(Coffer, Coffer)?
  11. Итак. Есть прогресс. Прогресс следующий: Стандартная форма [npc_%objectId%_Quest|Название квеста.] теперь работает. Причина: правильный код в скрипте квеста, который я кидал по очереди из каждого уже созданного квеста в свой. В моем случае мне помог код: @@override public String onTalk(NpcInstance npc, QuestState st) { String htmltext = "noquest"; int cond = st.getCond(); if(cond == 0) { if(st.getPlayer().getLevel() >= 5) { htmltext = "333333_02.htm"; return htmltext; } Здесь описано действие, выполняемое при выборе пункта [npc_%objectId%_Quest|Название квеста.] в стандартном диалоге НПС. А также условия (уровень, раса персонажа) тоже описаваются тут. И как видно, указано название htm страницы диалога, которая продолжает квест. Да, именно скрипт квеста активирует переход между HTM страницами диалога квеста. В каком порядке указано тоже в скрипте. Затем активируется квест нажатием на надпись "Согласиться" в HTM диалоге, но только в том случае, если стоит правильная ссылка в странице _№квеста_02.htm на страницу _№квеста_03.htm. Иначе квест не активируется, потому что в коде скрипта прописана активация квеста при активации HTM страницы _№квеста_03.htm. Выглядит этот кусок кода следующим образом: @@override public String onEvent(String event, QuestState st, NpcInstance npc) { String htmltext = event; if(event.intern().equalsIgnoreCase("333333_03.htm")) { st.setCond(1); st.setState(STARTED); st.playSound(SOUND_ACCEPT); } return htmltext; } При этом статус квеста из состояния 0 переходит в состояние 1 с помощью команды st.setCond(1); А вот дальше еще разбираюсь. Не падает квест итем из моба и в меню квеста пустая форма без текста, хотя в клиенте в questname-e.dat вроде заполнил. По идее по коду: @@override public String onKill(NpcInstance npc, QuestState st) { long count = st.getQuestItemsCount(CRYSTALL); if(count < 1 && st.getCond() == 1) { st.giveItems(CRYSTALL, 1); if(count == 0) { st.playSound(SOUND_MIDDLE); st.setCond(2); } else st.playSound(SOUND_ITEMGET); } return null; } При убийстве квестового моба должен выпать итем и состояние квеста смениться с 1 на 2. Но ни того, ни другого не происходит пока что. Кстати, на мысли о необходимости поменять именно код в скрипте меня навел просмотр кода файла Quest.java из нескомпилированных файлов сервера. Потому как мне напророчили необходимость создания квеста еще на этапе предкомпиляции и я уже начал разбираться с компиляцией сервера и даже разобрался и уже потом, читая этот файлик, трохец разобрался.
  12. Ок. Тут лежит скрипт квеста - http://prntscr.com/dyh7x1 Сам код почти идентичный квесту _157_RecoverSmuggled
  13. Комбо путями дошел до такого: https://drive.google.com/open?id=0B0nVMbF9bveaenk1TGQxYmpxOTA
  14. Такого тоже похожего ничего нет. Как я увижу в куче бегущих строк нужную строку с квестами? В общем беда.
  15. У меня нет такого файла вообще в папке сервера.
  16. Понятно. У меня не работает такая форма. Может я в чем-то туплю. В общем пока что обойдусь формой Link попробую. Если будут проблемы, попробую вернуться к указанной тобой.
  17. Значит, нужен. Где он должен быть и что в нем писать тогда? Я не нашел дополнительных файлов скриптов к НПС помимо файлов скриптов самих квестов. Нашел, как соединить HTM разговор между папками. Просматривая HTM страницы НПС нашел форму вида [npc_%objectId%_Link Адрес папки с HTM, откуда дальше брать HTM с диалогами|"Текст ссылка"]. Хотя у всех НПС с квестами там ничего такого нет, а просто [npc_%objectId%_Quest|Квест] без всяких путей к папке. Сейчас соединяю HTM-ки диалога и буду пытаться активировать сам квест.
  18. Сверху вроде же говорил человек, что для HTM диалогов скрипт еще не нужен пока. Создал в папке gameserver\data\html-ru\trainer\ помимо обычной 90096.htm 90096-1.htm, на которую уже работает переход. https://drive.google.com/open?id=0B0nVMbF9bveacmFtd1VWTHJJQXM Но так не должно быть. Ссылка нужна на открытие 90096-02.htm из папки с квестами (gameserver\data\html-ru\quests\_33333_GuildMageEntry), а не из этой же. У других НПС в папке Trainer только одна HTM без -1 -2 и так далее.
  19. Какие байпасы? У меня у всех НПС содержание HTM такое: Master Auron: Добро пожаловать в гильдию воинов города Глудин. Я учитель Auron. Чем могу помочь? [npc_%objectId%_SkillList|Изучить умения] [npc_%objectId%_Quest|Квест]
  20. Согласен. То-то и оно. Даже на уровне HTM диалог дальше не идет. Надо сделать связь от нажатия на "Задание" к папке с HTM диалогом квеста...
  21. Не идет. Идет ссылка на HTM отсутствия квеста в общей папке. В начале в любом случае окошко с описанием квеста и требованием по уровню должно выскочить. Связь вообще с диалогами по квесту отсутствует. Хотя у других НПС точно так же только [npc_%objectId%_Quest|Квест] написано. Значит где-то что-то еще нужно сделать.
  22. Поэтому и пишу тут, чтобы люди подсказали, что не так делаю и как надо. Гайда же ни одного не нашел в интернете по созданию квестов.
×
×
  • Создать...