-
Публикаций
62 -
Зарегистрирован
-
Посещение
-
Отзывы
0%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент akoraun
-
Спасибо!) Кстати, пока еще актуальна проблема: при запуске gameserver по умолчанию не подхватываются никакие созданные мной квесты до перезапуска скриптов из панели ГМа. Это значит, что ни взять, ни продолжить квесты нельзя, поскольку уже взятые квесты в квестах тупо не отображаются и вообще скрипты не подгружены. Даже консоль gameserver в конце пишет: "Не найден квест №1", "Не найден квест №2" и так далее.
-
Спасибо за ответ. Буду разбираться в написанном потиху, потому что так просто код съесть сложно. + Если кто-нибудь знает, как сделать это в sql, тоже напишите, пожалуйста! Должен быть способ сделать это в sql автоматически по простому какой-нибудь функцией. Конкретно, я использую Navicat. Те, кто ей пользуются, подскажите, если знаете, чем в ней можно это сделать.
-
Все. Бог мне помог. Интуитивно не имея никаких оснований, что так прокатит, изменил начальный HTM НПС таким образом: [npc_%objectId%_Quest _название_ява_файла_квеста1|Задание 1] [npc_%objectId%_Quest _название_ява_файла_квеста2|Задание 2] [npc_%objectId%_Quest _название_ява_файла_квеста3|Задание 3] Между "npc_%objectId%_Quest" и "_название_ява_файла_квеста№" пробел должен стоять. Тут плохо видно просто. И хер у какого НПС такая форма есть!
-
Друг мой. Пока это всего лишь тренировочный полигон, а не проект. Думать самому java+sql+еще неизвестно что, не имея никакого опыта и никаких мануалов в интернете...если все так будут думать, то никто ничего не сделает. Я на ходу не имея опыта и знаний по java и так далее делаю вещи, которые нигде до меня, возможно не были описаны на форумах, потому что все знают, но молчат, такие как вы. И ваша фраза "удаляюсь из темы" бред собачий. Вы ни одного сообщения с полезной информацией не написали тут.
-
Код квеста минимальный и простой как пробка. Пожалуйста, код ниже. НПС стартовый есть в 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 падает хрень какая-то левая, никак в коде не указанная... Еще сразу вопрос по теме. Где указывается, что квест одноразовый/многоразовый не понял. В скрипте не заметил ничего такого.
-
Не понятно. То ли сборка глючит, то ли писать код надо иначе. Если 1 квест висит на НПС. То он не подхватывает его с начальной страницы диалога ни в какую. http://prntscr.com/dywweh Если 2 или больше, то только после перезапуска скриптов через меню админа в игре. И то вместо название квестов показывается "[]". Это не дело. http://prntscr.com/dywwo7 А дальше уже более менее. http://prntscr.com/dywwv0 Такое ощущение, что при обычном запуске gameserver эти скрипты вообще не загружаются.
-
Спасибо. Но читать всю информацию подряд нет возможности.
-
Хочу создать таблицу, хранящую дополнительные показатели персонажей. Для этого необходимо, чтобы для каждого создаваемого персонажа там как в таблицах character_subclasses и character_skills автоматически добавлялись записи с заполненным char_obj_id полем. Как сделать?
-
Чел, я спросил как убрать. Что это я понял. А для того, что бы убрать, надо еще и понять, где значения дублируются.
-
Кто в курсе, как убрать WARN ItemHandler: Duplicate handler for item: 8659(Coffer, Coffer)?
-
Итак. Есть прогресс. Прогресс следующий: Стандартная форма [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 из нескомпилированных файлов сервера. Потому как мне напророчили необходимость создания квеста еще на этапе предкомпиляции и я уже начал разбираться с компиляцией сервера и даже разобрался и уже потом, читая этот файлик, трохец разобрался.
-
Ок. Тут лежит скрипт квеста - http://prntscr.com/dyh7x1 Сам код почти идентичный квесту _157_RecoverSmuggled
-
Комбо путями дошел до такого: https://drive.google.com/open?id=0B0nVMbF9bveaenk1TGQxYmpxOTA
-
Такого тоже похожего ничего нет. Как я увижу в куче бегущих строк нужную строку с квестами? В общем беда.
-
У меня нет такого файла вообще в папке сервера.
-
Понятно. У меня не работает такая форма. Может я в чем-то туплю. В общем пока что обойдусь формой Link попробую. Если будут проблемы, попробую вернуться к указанной тобой.
-
Значит, нужен. Где он должен быть и что в нем писать тогда? Я не нашел дополнительных файлов скриптов к НПС помимо файлов скриптов самих квестов. Нашел, как соединить HTM разговор между папками. Просматривая HTM страницы НПС нашел форму вида [npc_%objectId%_Link Адрес папки с HTM, откуда дальше брать HTM с диалогами|"Текст ссылка"]. Хотя у всех НПС с квестами там ничего такого нет, а просто [npc_%objectId%_Quest|Квест] без всяких путей к папке. Сейчас соединяю HTM-ки диалога и буду пытаться активировать сам квест.
-
Сверху вроде же говорил человек, что для 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 и так далее.
-
+
-
Какие байпасы? У меня у всех НПС содержание HTM такое: Master Auron: Добро пожаловать в гильдию воинов города Глудин. Я учитель Auron. Чем могу помочь? [npc_%objectId%_SkillList|Изучить умения] [npc_%objectId%_Quest|Квест]
-
-
Согласен. То-то и оно. Даже на уровне HTM диалог дальше не идет. Надо сделать связь от нажатия на "Задание" к папке с HTM диалогом квеста...
-
Не идет. Идет ссылка на HTM отсутствия квеста в общей папке. В начале в любом случае окошко с описанием квеста и требованием по уровню должно выскочить. Связь вообще с диалогами по квесту отсутствует. Хотя у других НПС точно так же только [npc_%objectId%_Quest|Квест] написано. Значит где-то что-то еще нужно сделать.
-
Поэтому и пишу тут, чтобы люди подсказали, что не так делаю и как надо. Гайда же ни одного не нашел в интернете по созданию квестов.
-
Не знаю, где там смотреть.