Добавлено (22.01.2013, 22:50:14) --------------------------------------------- Kirk767, Вот просто интересно, и чем тобою приведенный пример поможет? В рестрикторе будет только проверяться наличее info_portion при входе в рестриктор.
Лучше все-таки в логике сначала проверять "а выдано ли задание?", а потом уже выдавать поршень об оканчании задания. А то ведь игрок может и раньше времени оказаться в этом рестрикторе.
Репутация: 269
Регистрация: 10.03.2012
Город: Таганрог, Архангельск
Цитата (Callisto)
лучше на АМК-форуме поискать/поспрашивать
Меня там только в гугл посылали или вопросы молча удаляли. Сам не нашел, возможно плохо искал.
Цитата (Callisto)
при написании программ (впрочем как и модов) всегда следует предусмотреть все глупые и возможные действия пользователя
к сожалению всё учесть невозможно, но в данном случае я просто не подумал до конца, а ответил на конкретный вопрос. Кстати, есть вопрос: можно ли заспавнить ГГ 2 одинаковых квестовых предмета? Объясню в чём суть, если поставить вывод расширенного лога при вылете, то при стандартном alife():create вылет при попытке спавна в рюкзак ГГ этих самых предметов. Ругается на попутку создать дубликат уже существующего предмета.
function blood_zombie_empty_to_actor(first_speaker, second_speaker) local actor = dialogs.who_is_actor(first_speaker, second_speaker) dialogs.relocate_item_section(actor, "blood_zombie_empty", "in", 20) task_manager.get_task_manager():give_task("blood_zombie") end
Вылет, только при условии вывода расширенного лога при краше игры:
Код
-- Крешнуть игру (после вывода сообщения об ошибке в лог) function abort(fmt, ...) local reason = string.format(fmt, ...) error_log(reason) -- из этой строки убран знак комментария "--" end
Сообщение отредактировал Kirk767 - Среда, 23.01.2013, 17:32:58
Репутация: 2844
Регистрация: 08.11.2011
Город: Воронежская обл.
Callisto, почему-то 3 тип ACDC не желает запаковывать как доходит до alife_jupiter.ltx сразу останавливается и пишет: Died at stkutils/ini_file.pm line 80, <GEN11> line 81598
Рестриктор создавал так:
Код
[jupiter_1a] ; cse_abstract properties section_name = space_restrictor name = jup_agent_qt position = 307.42907714844,28.826431274414,-138.67437744141 direction = -0.24134509265423,0,-0.97043937444687
Репутация: 269
Регистрация: 10.03.2012
Город: Таганрог, Архангельск
_Мороз, Если вопрос не только к Callisto, то меня смущает название секции [jupiter_1a]. Разве разрешены в названия секций символы отличные от цифр? з.ы. точно в этом не уверен.
_Мороз, А у меня спавн собирается нормально. Какую версию ACDC используешь? Проверь чтобы не было пробелов в начале и конце строк, одно время долго не могла собрать из-за этого спавн. Например, в Notepad++ есть такая штука "Правка --> Операции с Пробелами --> Убрать Начальные и Замыкающие Пробелы"
Добавлено (24.01.2013, 05:16:10) --------------------------------------------- Kirk767, Говоришь про alife():create, а показываешь трансфер. И почему dialogs.relocate_item_section? Есть же dialogs.relocate_item_section_to_actor Насколько поняла, тебе надо передать актору определенное количество одинаковых квестовых предметов? В игре есть пример, когда ГГ выдается три сканера для аномалий
Репутация: 269
Регистрация: 10.03.2012
Город: Таганрог, Архангельск
Цитата (Callisto)
Говоришь про alife():create, а показываешь трансфер.
пробовал и так и так, результат один.
Цитата (Callisto)
Есть же dialogs.relocate_item_section_to_actor
благодарю, этот вариант не пробовал.
Цитата (Callisto)
тебе надо передать актору определенное количество одинаковых квестовых предметов? В игре есть пример, когда ГГ выдается три сканера для аномалий
именно так. в игре и сделано:
Код
function jup_b32_transfer_scanners(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "jup_b32_scanner_device", 3) end
! [LUA] [ERROR]You are trying to spawn two or more objects with the same story_id:[blood_zombie_empty] --> [blood_zombie_empty12195] try to add:[blood_zombie_empty12196]
FATAL ERROR
[error]Expression : 0 [error]Function : ErrorLog [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp [error]Line : 49 [error]Description : You are trying to spawn two or more objects with the same story_id:[blood_zombie_empty] --> [blood_zombie_empty12195] try to add:[blood_zombie_empty12196]
Репутация: 2844
Регистрация: 08.11.2011
Город: Воронежская обл.
Callisto, спасибо, дело действительно было в пробелах А что будет, если я не пропишу в логике рестриктора проверку на наличие взятого квеста? Если что-то серьезное, то прошу помочь, как написать эту проверку?
Kirk767, Попробуй задать story_id отличный от имени секции.
_Мороз, Если до взятия задания игрок попадет в этот рестриктор, то ему будет выдан ИП, о завершении задания и будет висеть всю игру. А если после этого игрок попытается взять это задание, то скорее всего оно тут же засчитается. Но надо уже смотреть подробности задания. А проверку делать надо, опять же, исходя из самого задания. Но, если у тебя при старте задания выдается ИП, то по нему и проверяй
Репутация: 2844
Регистрация: 08.11.2011
Город: Воронежская обл.
Callisto, действительно, при попадании в рестриктор, выдавался инфо, и потом даже диалога о задании не было, сделал проверку, и все стало хорошо. Спасибо!
Цитата (шапка. SibireaStalker)
В теме запрещены "спасибы", авторы которых будут наказаны. Для этого есть система ЛС. Не забываем, ага. Поймите - это усложняет навигацию!