![]() |
"Группирование" монстров в квесте - Версия для печати +- Город Джунов (https://www.gipat.ru/forum) +-- Форум Обсуждение Проклятых Земель (https://www.gipat.ru/forum/forum-19.html) +--- Форум MODный форум (https://www.gipat.ru/forum/forum-9.html) +--- Темы: "Группирование" монстров в квесте (/thread-3057.html) Страницы:
1
2
|
"Группирование" монстров в квесте - Ivan - 03.05.2006 День добрый. Я с недавнего времени начал увлекаться созданием квестов к мультиплееру ПЗ и столкнулся вот с какой проблемой: Создаю квест, где требуется уничтожить группу юнитов (как например черные единороги на Ингосе). В mob-файле нового квеста (раздел ID_SS_TEXT) объявляю глобальные переменные с именами юнитов (LMPTigerRed2 : object), далее в процедуре "WorldScript" загоняю объекты в группу (LMPTigerRed2 = GetObjectByID( "1000317" ) AddObject( AllMonsters1, GetObject( "1000317" ) ) И, наконец прописываю QObjKillGroup( "AllMonsters1" ). Квест загружается, но несмотря на это, не срабатывает "уничтожение группы" и квест не завершается. Все ID монстров внимательно проверил - номера не перепутал. Как можно разрешить данную проблему? "Группирование" монстров в квесте - Guest - 03.05.2006 Цитата:(если в разделе написано еще что-то ниже, то поставь Эээ... точно ;? По-моему там просто запятую надо ставить... "Группирование" монстров в квесте - SnAIper - 03.05.2006 Во первых ставить надо запятую, а во вторых названия групп рекомендую придумывать вручную %) "Группирование" монстров в квесте - Ivan - 04.05.2006 Увы, все оказалось не так просто. Я добавил переменную группы в раздел GlobalVars, а также поменял имя группы (как посоветовал SnAIperK) - результат все тот же. ![]() Может мне стоит показать целиком код квеста? "Группирование" монстров в квесте - SnAIper - 04.05.2006 Ага, покажи. Хотя стой. Сначала в блоке WorldScript напиши команду: ConsoleString("Test!") Затем зайди в игру, и посмотри в консоль. Если надписи "Test!" не появилось, то тогда и покажи... "Группирование" монстров в квесте - Ivan - 04.05.2006 Сделал. Надпись Test! в консоли появилась. "Группирование" монстров в квесте - SnAIper - 04.05.2006 Kreig Ничего, ьывает Ivan Это значит, что твой код работает. Итак, хорошо. У меня к тебе такой совет: убери своё QObjKillGroup(просто я его не люблю ![]() Код: Script IsUnitsKilled "Группирование" монстров в квесте - Ivan - 05.05.2006 SnAIperK, я сделал как ты посоветовал. Подзадания начали выполняться, но к моменту начала последнего подзадания (а это и есть уничтожение группы) игра мне сообщает, что квест уже выполнен (определение скрипта после GlobalVars и его вызов с "NULL" в конце World-Scripta я не забыл). Как теперь правильно обратиться к этому скрипту из основного? Я попытался обратиться к нему перед QFinish и в качестве параметра передавал this (смотрел примеры готовых квестов). "Группирование" монстров в квесте - SnAIper - 05.05.2006 Короче смысл вот в чём: тебе надо, чтобы скрипт следил за всем твоим квестом. Вот например такая схема: Код: Объявить Скрипты: Программируя по этой схеме, ты получишь нормальный квест. Я, конечно, могу выдать готовый скрипт - но важно чтоб ты сам этому научился, тогда проблемм с другими квестами тоже не будет ![]() "Группирование" монстров в квесте - Ivan - 05.05.2006 Спасибо... Вот только ещё один маленький вопрос: Как в блоке условия прописать вхождение игрока в область (что-то аналогичное QObjArea)? "Группирование" монстров в квесте - SnAIper - 05.05.2006 Сначала ты прописываешь данному району все зоны. Это ты наверняка сделал, раз уж юзаешь QObjArea. Затем просто делаешь проверку для любого юнита игрока: Any(i,Heroes,IsInArea(GetX(i),GetY(i),idArea)) Здесь idArea - та цифра... ну ты понял ![]() "Группирование" монстров в квесте - Ivan - 06.05.2006 Сделал, теперь все работает уже протестировал. SnAIperK, Kreig спасибо вам огромное. <_< Да, можно ещё один вопрос задать, скорее организационный (я в форумах редко бываю): если у меня вознинут ещё проблемы в создании квестов, но другого характера, мне обязательно создавать новую тему, или можно будет этой воспользоваться? "Группирование" монстров в квесте - SnAIper - 06.05.2006 Не за что ![]() ![]() Ндя. Сложный вопрос. Короче так: если у тебя проблемма класса "да или нет", подразумевающая маленький ответ - пользуйся этой темой. Если же что-то глобальное(например, полный разбор полётов всего квеста) - можешь создать новую. Ну новая тема - это и есть тема. То есть то, что не укладывается в старую ![]() "Группирование" монстров в квесте - Ivan - 06.05.2006 Ай, кажется я рано порадовался... что-то у меня герой в область перестал заходить (помнишь, спрашивал про аналог QObjArea), так вот если я добавляю область (AddRectToArea), то в условии скрипта с подзаданием я ставлю номер области, правильно? На всякий случай, где именно я должен описать область? Достаточно ли одного описания области в скрипте выдачи квеста? А квест, как только доработаю, обязательно пришлю. Правда он рассчитан скорее для начинающих игроков. Место - Предгорья. А тема простая: ходил как-то охотник из Поселка по окрестным лесам и заметил тигриные следы, поскольку он уже возвращался с охоты, то самому ему было лень искать причину этих следов, вот и решил Ривар предложить это дело герою, что дескать тигр, в отличие от волка, может и пастуха запросто сожрать. Пошел герой выяснять в чем дело ну и наткнулся на выводок тигров... "Группирование" монстров в квесте - Ivan - 06.05.2006 Kreig, вот мой код в Mob-файле. Код: GlobalVars ( Даже после замены прямоугольной области на круговую, все равно игра не распознает вход героя в область... "Группирование" монстров в квесте - SnAIper - 06.05.2006 DeclareScript IsInArea ( this : object ) Ты что! Это ж зарезервированная игровая команда! Смени имя скрипта, а то ошибка будет! "Группирование" монстров в квесте - Ivan - 07.05.2006 Исправил название на другое, вот только результат все тот-же. Не хочет игра засчитывать вход героя в область: ни в прямоугольную, ни круговую. "Группирование" монстров в квесте - SnAIper - 07.05.2006 Хм. А теперь напиши в скрипте проверки области консольстринг: например так: Код: Script IsInZone Если консольная фраза появится - значит ты неправильно обработал подзадание. А если нет - неправильно вызван скрипт или задана зона "Группирование" монстров в квесте - Ivan - 07.05.2006 Я бы с радостью, Kreig, да вот только когда я пытаюсь "прикрепить" файлы, мне на форуме выдается сообщение, что у меня нет прав загрузки файлов с данным расширением (*.mob *.mq), а своего сайта я не имею, так что дать гиперссылку тоже не могу, увы. SnAIperK, я сделал вывод консольной строки, но на сей раз ничего не отображается, а координаты области я проверил, герой должен был туда попасть (у меня есть урощенный вариант квеста, где я использовал QObjArea). Может я случайно "напортачил" с условием скрипта? Проверь, пожалуйста. А так, если убрать данный скрипт и сократить число подзаданий до уничтожения группы, то все прекрасно работает (в смысле, группа уничтожается ![]() "Группирование" монстров в квесте - Alecron - 08.05.2006 Цитата:Я бы с радостью, Kreig, да вот только когда я пытаюсь "прикрепить" файлы, мне на форуме выдается сообщение, что у меня нет прав загрузки файлов с данным расширением (*.mob *.mq), а своего сайта я не имею, так что дать гиперссылку тоже не могу, увы.А ты попробуй запакуй WinRar'ом и выложи. Должно получится. ![]() |