У меня, возможно, несколько риторический вопрос, но... Почему люди делают кучу, так или иначе, похожих друг на друга сингл модов, а, например, кооператив для ЧН(даже без сюжета) никто замутить не может? Никто не спорит, что есть хорошие моды, но суть вопроса не в этом.
Frank9945671 Потому что это необычайно сложно. Дело в том что невозможно присоединить двух игроков в сингл без серьезных движковых правок и нельзя добавить НПС в МП без серьезных правок.
_Призрак_, ясненько. Жаль только, что он(мод, что ты указал) не на ЧН и монстры слабоваты...
Добавлено (10.06.2012, 09:01) --------------------------------------------- Вообще, наверное, было бы проще просто внедрить повелитель зоны в тот мод, а не респавн точки, а то иногда слегка уныло получается.
невозможно присоединить двух игроков в сингл без серьезных движковых правок и нельзя добавить НПС в МП без серьезных правок
Так вот и получился бы серьезный мод, если бы кто-нибудь решился на такое дельце и успешно справился с ним. Хотя бы без сюжета - только войну группировок...
Сообщение отредактировал Frank9945671 - Воскресенье, 10.06.2012, 08:39
Хызыр, Дружище помоги. Как сделать чтоб в определенный момент разговора группировка с которой ведешь этот диалог стала враждебна по отношению к тебе?? И как сделать эфект пробуждения при старете игры, ну типа проснулся??
Novellus, Что касается первого вопроса, то надо делать спейс рестриктор сначала, потом инфо поршень для определенного диалога и при достижении этого диалога она станет враждебной...Это описано в статьях по диалогам. Второй вопрос я не совсем понял. Если ты имеешь ввиду типа встает с кровати как в ЧН, то это кат-сцена, а если плавное расцветание экрана то ppe эффект.
Хызыр, а зачем рестриктор и инфопоршень? Не проще ли в нужном месте диалога, вызывать функцию, которая изменит отношении ГГ и группировки, к которой относится собеседник?
Добавлено (10.06.2012, 15:39) --------------------------------------------- Novellus, для того, чтобы изменить отношения с группировкой, во время разговора проделай следующее: Впиши в удобный тебе файл вот такую функцию:
Code
function spoil_relations (first_speaker, second_speaker) --# Определим объект local obj = first_speaker --# Если это актор, то переопределим обеъкт if first_speaker:id() == db.actor:id() then obj = second_speaker end --# Определим группировку объекта faction = obj:character_community() --# Испортим отношения с группировкой собеседника relation_registry.set_community_goodwill (faction, db.actor:id (), -5000) end
После чего в нужной фразе диалога вставляешь тег action:
file_name - это имя файла в который ты вписал функцию. Всё. После нужной фразы изменится отношения и диалог прервётся, дальше действуешь по обстоятельствам.
Сообщение отредактировал ColR_iT - Воскресенье, 10.06.2012, 15:41
Этот метод может помогать выявить некоторые стабильные или нестабильные (если у вас терпения хватит) безлоговые вылеты. Сам пользуюсь методом, часто помогает. Скажу сразу, этот метод только для скриптеров, остальные не поймут, что в логе написано. Итак, будем изменять функцию printf() в файле _g.script. Смотрим ее и приводим к следующему виду:
function printf(fmt,...) local con = get_console() con:execute(string.gsub(string.format(fmt,...), " ", "_")) con:execute("flush") end
Таким образом, в лог принудительно пишется вся информация, идущая в консоль в процессе игры.
Запускаем игру и играем/загружаем сейв. Игра будет тормозить, потому что в лог идет очень много информации. Делаем наше черное дело, при котором вылетаем, ну и ловим вылет. Смотрим лог и видим, что в нем осталось последнее действие.
После выявления вылета нам нужно все вернуть обратно, чтобы игра не тормозила и не засоряла лог. Просто закомментируем строки с execute, чтобы было так:
function printf(fmt,...) --local con = get_console() --con:execute(string.gsub(string.format(fmt,...), " ", "_")) --con:execute("flush") end
Вот, в принципе, и все.
Кстати, таким образом можно узнавать причины вылетов с логом, ругающимся на _g.script.