Модостроение. Создание и редактирование квестов
|
|
denis2000 | Дата: Пн, 10.10.2011, 21:25 | Сообщение # 1 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Создание и редактирование квестов Создание новых квестов и редактирование существующих Если у вас появились вопросы по созданию и редактированию квестов, изменению существующих и добавлению новых в игру. Задавайте их в этой теме - умные головы, модосторители и просто разбирающиеся в программировании люди вам ответят.
Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7
Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML [cut noguest=Если у вас не открывается файл CHM]Если у вас не открывается файл: 1. Запустите [Пуск]=>[Выполнить] (либо хот-кей [WIN]+[R]) 2. Введите команду (без кавычек) "regsvr32 %windir%\system32\hhctrl.ocx" 3. Если вылезло окно об успешном завершении вы все сделали правильно и можете перезагружать компьютер (а может и не надо) Также: файлы МОГУТ не открываться если в пути к файлу есть: символы кириллицы, "_", "#" Также: есть не стандартные программы-просмоторщики CHM файлов. Например: FBReader[/cut]
[cut=Где найти лог игры после вылета]Что такое LOG ошибки, и как мне его найти? Это система отладки происходивших вылетов, которая подается игрой в форме текста, хотя не всегда. Для того чтоб найти LOG необходимо зайти вот сюда:
В Win хр лог находится:
C:\Documents and Settings\All Users\Документы\S.T.A.L.K.E.R. - Зов Припяти\logs
Затем открываете первый файл в формате TXT, и в нем отбираете с низу 25 строчек. После кидаете эти 25 строчек в сообщение на форум.
В Win7 лог находится C:\Users\Public\Documents\S.T.A.L.K.E.R. - Зов Припяти\logs
Путь к папке с логом можно найти открыв файл fsgame.ltx который находится в корневой директории ЗП, за это отвечает строка: ... $app_data_root$ = true | false| $fs_root$| users\(тут мы указываем что папка пользователя, будет хранится рядом с Fsgame.ltx) ... $logs$ = true| false| $app_data_root$| logs\(а тут мы указываем что в папке пользователя, в подпапке Logs будут храниться наши логи) ... [/cut][cut=Получение более подробной информации о вылете (ХОВАН)] Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...) Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так: Code function abort(fmt, ...) local reason = string.format(fmt, ...) error_log(reason) end Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией
Первый: Code Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil) Второй: Code Expression : 0 Function : ErrorLog File : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp Line : 49 Description : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic' [/cut]
Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы, статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца", возможно Ваш вопрос уже рассматривался.
Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки. Помните чем подробнее вопрос, тем точнее ответ.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
sergej5500 | Дата: Пн, 09.04.2012, 01:05 | Сообщение # 31 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Всем Добрый вечер! Так как ссылка на Сборник модостроения ЗП v10.10.11 (автор: XOBAH) в шапке этой темы, то пишу сюда! Решил попробовать спавн базы Чапая на Затоне после помощи группе Спартака. Сделал все как написано в сборнике. Запустил SGM 1.7. На лесничестве пусто. Взял квест на Шевченко, перебил группу Кастета. Вернулся к Бороде. В разговоре он упомянул о лесничестве. На слова Дегтярева: "Я помогу разобраться с бандитами" Борода говорит, что пока лесничество под контролем бандитов, сделать ничего нельзя. Но Чапай и его банда появятся только после сдачи КПК Моргана. Квест не запускается, Морган не спавнится и его КПК тоже. Возникает логический тупик. Возможно, эта тема когда-то ранее поднималась, но я ничего не нашел.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Ср, 11.04.2012, 11:23 | Сообщение # 32 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| sergej5500, Мешает отсутствие инфопорции zat_lesnichestvo_svobodno [cut]В файле sgm_tasks.script в функции task_update() вместо Code if has_alife_info("zat_bandit_base_leader_death") and has_alife_info("zat_bandit_base_bodyguard_1_death") and has_alife_info("zat_bandit_base_bodyguard_2_death") and has_alife_info("zat_bandit_base_bodyguard_3_death") and has_alife_info("zat_bandit_base_bodyguard_4_death") then if not has_alife_info("zat_lesnichestvo_svobodno") then give_info("zat_lesnichestvo_svobodno") end else if has_alife_info("zat_lesnichestvo_svobodno") then disable_info("zat_lesnichestvo_svobodno") end end
ставь Code if not has_alife_info("zat_lesnichestvo_svobodno") then give_info("zat_lesnichestvo_svobodno") end [/cut]
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
sergej5500 | Дата: Сб, 14.04.2012, 21:34 | Сообщение # 33 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Всем Добрый Вечер. У Вано, Зулуса и Бродяги при нормальном прохождении игры флешки получить невозможно. Возникла мысль подредактировать квесты таким образом, чтобы эти персонажи сами отдали свои флешки в качестве награды за оказанные им услуги. [cut=Квест Долги Вано][jup_a10_actor_agree_back_vano_duties] icon = ui_inGame2_Dolgi prior = 1 storyline = false title = {+jup_a10_back_vano} jup_a10_actor_back_vano_duties_name, {+jup_a10_kill_all_bandit} jup_a10_kill_all_bandit_name, jup_a10_actor_agree_back_vano_duties_name descr = {+jup_a10_back_vano} jup_a10_actor_back_vano_duties_text, {+jup_a10_kill_all_bandit} jup_a10_kill_all_bandit_text, jup_a10_actor_agree_back_vano_duties_text target = {+jup_a10_back_vano} jup_a10_stalker_vano, {+jup_a10_death_0 =squad_exist(jup_a10_bandit_squad_3)} jup_a10_bandit_squad_3, {+jup_a10_kill_all_bandit =squad_exist(jup_a10_bandit_squad_3)} jup_a10_bandit_leader, {=squad_exist(jup_a10_bandit_squad_3)} jup_a10_bandit_leader ;target = {+jup_a10_back_vano} jup_a10_stalker_vano, {+jup_a10_kill_all_bandit}jup_a10_bandit_leader condlist_0 = {+jup_a10_vano_give_task_end} complete ;condlist_1 = {+jup_a10_fals} fail После этого дописал: reward_money = 10000 reward_item = dv_stalker_vano_case[/cut] Получилось все правильно. Вано при разговоре с ним дал флешку и деньги. [cut=Квест Бродяги][jup_b4_monolith_squad_help] icon = ui_inGame2_Vizhivshiy_monolit prior = 2 storyline = false title = {+jup_b4_duty_redy_go_to_monolit_squad} jup_b4_stalkers_come_name, {+jup_b4_freedom_redy_go_to_monolit_squad} jup_b4_stalkers_come_name, jup_b4_monolith_squad_help_name descr = {+jup_b4_duty_redy_go_to_monolit_squad} jup_b4_stalkers_come_duty_text, {+jup_b4_freedom_redy_go_to_monolit_squad} jup_b4_stalkers_come_freedom_text, jup_b4_monolith_squad_help_text target = {+jup_b4_duty_redy_go_to_monolit_squad} jup_a6_duty_leader, {+jup_b4_freedom_redy_go_to_monolit_squad} jup_a6_freedom_leader, jup_a6_smart_id condlist_0 = {+jup_b4_monolith_squad_in_duty} complete %+jup_b4_monolith_squad_redy_go_yanov% condlist_1 = {+jup_b4_monolith_squad_in_freedom} complete %+jup_b4_monolith_squad_redy_go_yanov% condlist_2 = {+jup_b4_monolith_squad_out} fail %+jup_b4_task_end% on_complete = %=add_actor_rank(2) +jup_b4_task_end%[/cut] При добавлении в квест Бродяги фрагмента: reward_money = 10000 reward_item = dv_monolit_brodiaga_case в тот момент, когда монолитовцев принимают в Долг или Свободу, приходит сообщение о том, что получен соответствующий бронекостюм, флешка и деньги. Флешку и деньги, таким образом, дает принимающая группировка. Что и где нужно прописать, чтобы флешку дал Бродяга при первом разговоре с ним после вступления в группировку [cut=В файле dialogs.scripts нашел диалог]function monolith_leader_is_alive(first_speaker, second_speaker) if not (has_alife_info("jup_b4_monolith_squad_in_freedom") or has_alife_info("jup_b4_monolith_squad_in_duty")) then return xr_conditions.is_alive(nil,nil,{"jup_b4_monolith_squad_leader_monolith_skin"}) end
if has_alife_info("jup_b4_monolith_squad_in_freedom") then return xr_conditions.is_alive(nil,nil,{"jup_b4_monolith_squad_leader_freedom_skin"}) elseif has_alife_info("jup_b4_monolith_squad_in_duty") then return xr_conditions.is_alive(nil,nil,{"jup_b4_monolith_squad_leader_duty_skin"}) end
return false end
function monolith_leader_dead_or_hired(first_speaker, second_speaker) if has_alife_info("jup_b218_soldier_hired") then return true end
if not (has_alife_info("jup_b4_monolith_squad_in_freedom") or has_alife_info("jup_b4_monolith_squad_in_duty")) then return not xr_conditions.is_alive(nil,nil,{"jup_b4_monolith_squad_leader_monolith_skin"}) end
if has_alife_info("jup_b4_monolith_squad_in_freedom") then return not xr_conditions.is_alive(nil,nil,{"jup_b4_monolith_squad_leader_freedom_skin"}) elseif has_alife_info("jup_b4_monolith_squad_in_duty") then return not xr_conditions.is_alive(nil,nil,{"jup_b4_monolith_squad_leader_duty_skin"}) end
return true end[/cut] [cut=Попробовал в эту функцию дописать]function monolith_leader_is_alive(first_speaker, second_speaker) if not (has_alife_info("jup_b4_monolith_squad_in_freedom") or has_alife_info("jup_b4_monolith_squad_in_duty")) then return xr_conditions.is_alive(nil,nil,{"jup_b4_monolith_squad_leader_monolith_skin"}) end
if has_alife_info("jup_b4_monolith_squad_in_freedom") then return xr_conditions.is_alive(nil,nil,{"jup_b4_monolith_squad_leader_freedom_skin"}) dialogs.relocate_item_section_to_actor(second_speaker, first_speaker, "dv_monolit_brodiaga_case") elseif has_alife_info("jup_b4_monolith_squad_in_duty") then return xr_conditions.is_alive(nil,nil,{"jup_b4_monolith_squad_leader_duty_skin"}) dialogs.relocate_item_section_to_actor(second_speaker, first_speaker, "dv_monolit_brodiaga_case") end
return false end
function monolith_leader_dead_or_hired(first_speaker, second_speaker) if has_alife_info("jup_b218_soldier_hired") then return true end
if not (has_alife_info("jup_b4_monolith_squad_in_freedom") or has_alife_info("jup_b4_monolith_squad_in_duty")) then return not xr_conditions.is_alive(nil,nil,{"jup_b4_monolith_squad_leader_monolith_skin"}) end
if has_alife_info("jup_b4_monolith_squad_in_freedom") then return not xr_conditions.is_alive(nil,nil,{"jup_b4_monolith_squad_leader_freedom_skin"}) dialogs.relocate_item_section_to_actor(second_speaker, first_speaker, "dv_monolit_brodiaga_case") elseif has_alife_info("jup_b4_monolith_squad_in_duty") then return not xr_conditions.is_alive(nil,nil,{"jup_b4_monolith_squad_leader_duty_skin"}) dialogs.relocate_item_section_to_actor(second_speaker, first_speaker, "dv_monolit_brodiaga_case") end
return true end[/cut] После такой правки при попытке заговорить с Локи о приеме монолитовцев игра вылетела с ошибкой: update_game_loaded. Возможно, что я неправильно вставил флешку. В каком файле прописан первый диалог с Бродягой после вступления в группировки. Заранее благодарен за любые советы.
Сообщение отредактировал sergej5500 - Сб, 14.04.2012, 21:37 |
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 15.04.2012, 12:42 | Сообщение # 34 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| sergej5500, Сделайте отдельный диалог и выдайте награду в нем.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
sergej5500 | Дата: Ср, 18.04.2012, 13:10 | Сообщение # 35 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Всем Добрый День. Решил переделать квест Чапая по убийству Шакала. Переместил точку спавна Шакала и его команды в здание, где находится прототип гаусса, около аномалии "Железный Лес". Сделал нужные поправки в файлах. Неписи стоят там, где нужно. Проблема в том, что после уничтожения Шакала Тесак и его команда становятся враждебными. Как отключить враждебность Тесака? Заранее благодарен за советы.
Убирай выдачу инфопорции zat_b103_merc_fight из логики Шакала и компании. denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
fauone | Дата: Ср, 18.04.2012, 16:55 | Сообщение # 36 |
Гражданский
Пользователи
Сообщений: 19
| ребят подскажите как увидеть гамедату в зп и чн??
КМБ. Инструкция 1. denis2000
если кто знает-где взять плагины на фотошоп DDS-скиньте ссыли!
Для этого есть тема Программы для модинга STALKER'а. denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили fauone за это полезное сообщение: |
|
|
sergej5500 | Дата: Сб, 05.05.2012, 22:19 | Сообщение # 37 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Добрый вечер. На основе урока 33 из КМБ (автор GEONEZIS) сделал квест для Вано. [cut=Сам квест][jup_a10_stalker_vano_artefact_quest] icon = ui_inGame2_Kontrakt_s_uchenimi prior = 2 storyline = false title = {=actor_has_item(af_ice) =actor_has_item(af_fire)} jup_a10_stalker_vano_artefact_quest_title_3, {=actor_has_item(af_ice) !actor_has_item(af_fire)} jup_a10_stalker_vano_artefact_quest_title_2, {!actor_has_item(af_ice) =actor_has_item(af_fire)} jup_a10_stalker_vano_artefact_quest_title_1, jup_a10_stalker_vano_artefact_quest_title_0 descr = {=actor_has_item(af_ice) =actor_has_item(af_fire)} jup_a10_stalker_vano_artefact_quest_text_3, {=actor_has_item(af_ice) !actor_has_item(af_fire)} jup_a10_stalker_vano_artefact_quest_text_2, {!actor_has_item(af_ice) =actor_has_item(af_fire)} jup_a10_stalker_vano_artefact_quest_text_1, jup_a10_stalker_vano_artefact_quest_text_0 target = {=actor_has_item(af_ice) =actor_has_item(af_fire)} jup_a10_stalker_vano_id, nil condlist_0 = {+jup_a10_stalker_vano_quest_end} complete[/cut] [cut=Диалоги]<dialog id="jup_a10_stalker_vano_artefact_quest_begin"> <dont_has_info>jup_a10_stalker_vano_artefact_quest_init</dont_has_info> <dont_has_info>jup_a10_stalker_vano_artefact_quest_no_quest</dont_has_info> <precondition>dialogs_jupiter.jup_a10_stalker_vano_not_have_arts</precondition> <phrase_list> <phrase id="0"> <text>jup_a10_stalker_vano_artefact_quest_0</text> <next>1</next> </phrase> <phrase id="1"> <text>jup_a10_stalker_vano_artefact_quest_1</text> <next>2</next> <next>3</next> </phrase> <phrase id="2"> <text>jup_a10_stalker_vano_artefact_quest_2</text> <give_info>jup_a10_stalker_vano_artefact_quest_no_quest</give_info> </phrase> <phrase id="3"> <text>jup_a10_stalker_vano_artefact_quest_3</text> <action>dialogs_zaton.zat_b30_owl_stalker_trader_give_quest</action> <next>4</next> </phrase> <phrase id="4"> <text>jup_a10_stalker_vano_artefact_quest_4</text> <give_info>jup_a10_stalker_vano_artefact_quest_init</give_info> </phrase> </phrase_list> </dialog> <dialog id="jup_a10_stalker_vano_artefact_quest_end"> <has_info>jup_a10_stalker_vano_artefact_quest_init</has_info> <dont_has_info>jup_a10_stalker_vano_artefact_quest_end</dont_has_info> <precondition>dialogs_jupiter.jup_a10_stalker_vano_have_arts</precondition> <phrase_list> <phrase id="0"> <text>jup_a10_stalker_vano_artefact_quest_5</text> <give_info>jup_a10_stalker_vano_artefact_quest_end</give_info> <next>1</next> </phrase> <phrase id="1"> <text>jup_a10_stalker_vano_artefact_quest_6</text> <next>2</next> </phrase> <phrase id="2"> <text>jup_a10_stalker_vano_artefact_quest_7</text> <action>dialogs_jupiter.jup_a10_stalker_vano_relocates_arts</action> <next>3</next> </phrase> <phrase id="3"> <text>jup_a10_stalker_vano_artefact_quest_8</text> <action>dialogs_jupiter.jup_a10_stalker_vano_relocates_money_to_actor</action> <next>4</next> </phrase> <phrase id="4"> <text>jup_a10_stalker_vano_artefact_quest_9</text> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog> [/cut] [cut=Задания]<string id="jup_a10_stalker_vano_artefact_quest_title_0"> <text>Поручение Вано: найти артефакты Снежинка и Пламя</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_text_0"> <text>Сыч попросил найти для него два арта- Снежинка и Пламя.</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_title_1"> <text>Поручение Вано: найти артефакт Снежинка</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_text_1"> <text>Артефакт Пламя найден. Найдите Снежинку.</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_title_2"> <text>Поручение Вано: найти артефакт Пламя</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_text_2"> <text>Артефакт Снежинка найден. Найдите Пламя.</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_title_3"> <text>Поручение Вано: передайте найденные артефакты Вано.</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_text_3"> <text>Оба артефакта найдены. Отдайте их Вано, и заберите награду.</text> </string> [/cut] [cut=Русификация диалогов]<string id="jup_a10_stalker_vano_artefact_quest_0"> <text>Есть какое дело?</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_1"> <text>Нужны артефакты Пламя и Снежинка. Достанешь, хорошо заплачу.</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_2"> <text>Нет, друг- сам ищи.</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_3"> <text>Сделаю.</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_4"> <text>Вот и отлично.</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_5"> <text>Я нашел артефакты, наш уговор в силе?</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_6"> <text>Да, отличная работа, давай артефакты сюда.</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_7"> <text>Держи.</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_8"> <text>Вот твои деньги.</text> </string> <string id="jup_a10_stalker_vano_artefact_quest_9"> <text>Бывай.</text> </string> [/cut] [cut=Инфопорции]<info_portion id="jup_a10_stalker_vano_artefact_quest_no_quest"></info_portion> <info_portion id="jup_a10_stalker_vano_artefact_quest_init"></info_portion> <info_portion id="jup_a10_stalker_vano_artefact_quest_end"></info_portion>[/cut] [cut=Скриптовые функции]function jup_a10_stalker_vano_give_quest() task_manager.get_task_manager():give_task("jup_a10_stalker_vano_artefact_quest") end function jup_a10_stalker_vano_have_arts(first_speaker, second_speaker) return ((db.actor:object("af_ice") ~= nil) and (db.actor:object("af_fire") ~= nil)) end function jup_a10_stalker_vano_not_have_arts(first_speaker, second_speaker) return ((db.actor:object("af_ice") == nil) and (db.actor:object("af_fire") == nil)) end function jup_a10_stalker_vano_relocates_arts(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "af_ice") dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "af_fire") end function jup_a10_stalker_vano_relocates_money_to_actor(first_speaker, second_speaker) dialogs.relocate_money_to_actor(first_speaker, second_speaker, 30000) end [/cut] Запустил игру и сразу побежал на Янов проверять. Диалоги у Вано появились, артефакты он берет и дает деньги. Скрипты работают отлично. Не работают инфопорции. Задания не появляются в ПДА и не обновляются. Что я пропустил или не дописал? Заранее благодарен за советы.
Ты выдаешь в диалоге совсем другой квест. denis2000
Добавлено (19.04.2012, 08:38) --------------------------------------------- Доброе утро! Спасибо denis2000 за подсказку. Квест запустился и работает. Как ввести дополнительное условие для взятия квеста? Он должен быть доступен после решения проблемы с долгом Вано. Заранее благодарен за советы.
В диалоге проверяй наличие инфопорций которые выдаються в случае завершения указанного квеста. denis2000Добавлено (05.05.2012, 22:19) --------------------------------------------- Всем Добрый Вечер! Создал нового НПС на Кордоне. Прописал ему квест на поиск 10 АК-74 и 10 Абаканов. За основу взял квест от Geonezis для Тремора на поиск анабиотиков и щупалец. [cut=Сделал диалог]<dialog id="esc_rasvet_001_quest_begin_dialog"> <dont_has_info>esc_rasvet_001_quest_started</dont_has_info> <phrase_list> <phrase id="0"> <text>esc_rasvet_001_quest_begin_0</text> <next>1</next> </phrase> <phrase id="1"> <text>esc_rasvet_001_quest_begin_1</text> <next>2</next> </phrase> <phrase id="2"> <text>esc_rasvet_001_quest_begin_2</text> <next>3</next> </phrase> <phrase id="3"> <text>esc_rasvet_001_quest_begin_3</text> <next>4</next> <next>44</next> </phrase> <phrase id="4"> <text>esc_rasvet_001_quest_begin_4</text> <next>5</next> </phrase> <phrase id="5"> <text>esc_rasvet_001_quest_begin_5</text> <give_info>esc_rasvet_001_quest_started</give_info> <action>sgm_dialogs.give_esc_rasvet_001_quest</action> </phrase> <phrase id="44"> <text>esc_rasvet_001_quest_begin_6</text> <next>444</next> </phrase> <phrase id="444"> <text>esc_rasvet_001_quest_begin_7</text> </phrase> </phrase_list> </dialog> <dialog id="esc_rasvet_001_quest_end_dialog"> <dont_has_info>esc_rasvet_001_quest_done</dont_has_info> <has_info>esc_rasvet_001_quest_started</has_info> <precondition>sgm_dialogs.actor_has_first_esc_rasvet_001_quest_item</precondition> <precondition>sgm_dialogs.actor_has_second_esc_rasvet_001_quest_item</precondition> <phrase_list> <phrase id="0"> <text>esc_rasvet_001_quest_end_0</text> <next>1</next> <action>sgm_dialogs.transfer_esc_rasvet_001_quest_object</action> <give_info>esc_rasvet_001_quest_done</give_info> </phrase> <phrase id="1"> <text>esc_rasvet_001_quest_end_1</text> <next>2</next> <next>3</next> </phrase> <phrase id="2"> <text>esc_rasvet_001_quest_end_2</text> <next>22</next> </phrase> <phrase id="22"> <text>esc_rasvet_001_quest_end_4</text> <next>11111</next> <action>sgm_dialogs.money_esc_rasvet_001_quest</action> </phrase> <phrase id="3"> <text>esc_rasvet_001_quest_end_3</text> <next>33</next> </phrase> <phrase id="33"> <text>esc_rasvet_001_quest_end_5</text> <next>11111</next> <action>sgm_dialogs.medcomplect_esc_rasvet_001_quest</action> </phrase> <phrase id="11111"> <text>esc_rasvet_001_quest_end_6</text> </phrase> </phrase_list> </dialog>[/cut] [cut noguest=Сделал скрипт]function actor_has_first_esc_rasvet_001_quest_item(first_speaker, second_speaker) local cnt = 0 local function esc_001_count(npc, item) --printf("item:section: %s", item:section()) if item:section() == "wpn_ak74" then cnt = cnt + 1 end end db.actor:iterate_inventory(esc_001_count, nil) if cnt > 9 then return true end return false end
function actor_has_second_esc_rasvet_001_quest_item(first_speaker, second_speaker) local cnt = 0 local function esc_001_count(npc, item) --printf("item:section: %s", item:section()) if item:section() == "wpn_abakan" then cnt = cnt + 1 end end db.actor:iterate_inventory(esc_001_count, nil) if cnt > 9 then return true end return false end
function transfer_esc_rasvet_001_quest_object(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "wpn_ak74", 10) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "wpn_abakan", 10) end
function money_esc_rasvet_001_quest(first_speaker, second_speaker) local amount = 15000 dialogs.relocate_money_to_actor(first_speaker, second_speaker, amount) end
function medcomplect_esc_rasvet_001_quest(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "bag_medkit_2", 5) end
function give_esc_rasvet_001_quest() task_manager.get_task_manager():give_task("esc_rasvet_001_quest") end [/cut] Прописал в стартовый набор эти стволы и запустил игру. Квест берется, но не сдается. Видимо, не работает счетчик предметов в инвентаре. В чем я ошибся? И еще вопрос: как можно прописать проверку качества этих стволов? В игре придется подбирать трофейные стволы. Нужно, чтобы НПС брал только отремонтированное оружие. Заранее благодарен за советы.
Сообщение отредактировал sergej5500 - Ср, 18.04.2012, 23:30 |
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Сб, 05.05.2012, 23:11 | Сообщение # 38 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| sergej5500, Диалоги вроде рабочие. Скрипт проверки наличия определенного количества предметов тоже рабочий (древний код еще GSС-овский). Проверяй дальше видимо проблема не здесь. Для проверки состояния предметов делай так: Code if (item:section() == "wpn_ak74") and (item:condition()>0.9) then То есть не только секция предмета "wpn_ak74", но и состояние не хуже 0,9. К тому же придется переделать скрипт переноса предметов от ГГ к НПС с учетом состояния предметов.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
ALEKS58 | Дата: Вс, 06.05.2012, 13:16 | Сообщение # 39 |
Новичок
Пользователи
Сообщений: 66
| В прохождении Geonezis Addon + Sigerous Mod 2.0 уже несколько игровых суток прошло , а антенна ещё не отремонтирована (в квесте за монолит ) . Подскажите в чём ошибка , и как её исправить ?
ALEKS58
|
|
|
Эти 0 пользователя(ей) поблагодарили ALEKS58 за это полезное сообщение: |
|
|
sergej5500 | Дата: Вс, 06.05.2012, 20:05 | Сообщение # 40 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Добрый День! Сделал несколько новых НПС на Кордоне! Уникальных НПС, на которые завязаны квесты, спавню в отдельных сквадах. Как спавнить сквады по определенному условию, разобрался. Если я дописываю в конфиг сквада Медведева фразу online_cond = {+esc_rasvet_002_quest_done} true, спавн сталкеров на блокпосту происходит по завершению соответстующего квеста. Вопрос, как по этому-же инфопоршню удалить другой сквад с НПС, квест с которым завершен, что бы они не тормозили игру. Не просто их убить, нужно что бы они просто исчезли. Заранее благодарен за подсказки.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 06.05.2012, 21:19 | Сообщение # 41 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| sergej5500, Сделай рестриктор с логикой: Code [logic] active = sr_idle
[sr_idle] on_info = {+esc_rasvet_002_quest_done =squad_exist(<стори ид сквада для удаления>)} nil %=remove_squad(<стори ид сквада для удаления>)%
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
sergej5500 | Дата: Пт, 11.05.2012, 15:12 | Сообщение # 42 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Всем Добрый Вечер! Делал квест на основе квеста от Geonezis для Тремора на поиск анабиотиков и щупалец. Квест полностью рабочий, выполняется без проблем, но не выдаются промежуточные инфопорции. Сейчас специально загрузил Geonezis Addon, там та же история. Промежуточные инфопорции не выдаются. Приведу здесь квест и скрипты. [cut=Квест][geonezis_zat_tremor_quest] icon = ui_inGame2_Kontrakt_s_uchenimi prior = 1 storyline = false title = {+zat_tremor_quest_have_anabiotic +zat_tremor_quest_have_krovosos} zat_tremor_quest_title3, {+zat_tremor_quest_have_anabiotic -zat_tremor_quest_have_krovosos} zat_tremor_quest_title2, {+zat_tremor_quest_have_krovosos -zat_tremor_quest_have_anabiotic} zat_tremor_quest_title1, zat_tremor_quest_title0 descr = {+zat_tremor_quest_have_anabiotic +zat_tremor_quest_have_krovosos} zat_tremor_quest_text3, {+zat_tremor_quest_have_anabiotic -zat_tremor_quest_have_krovosos} zat_tremor_quest_text2, {+zat_tremor_quest_have_krovosos -zat_tremor_quest_have_anabiotic} zat_tremor_quest_text1, zat_tremor_quest_text0 target = {+zat_tremor_quest_have_anabiotic +zat_tremor_quest_have_krovosos} zat_b22_stalker_medic condlist_0 = {+zat_tremor_quest_done} complete condlist_1 = {+zat_b22_stalker_medic_death} fail on_complete = %=add_actor_rank(3) =inc_faction_goodwill_to_actor(stalker:50) =edit_counter(stat_kvestov:1:plus)%[/cut] [cut=Dialogs_zaton]function actor_has_first_tremor_quest_item(first_speaker, second_speaker) local cnt = 0 local function zat_b30_count(npc, item) --printf("item:section: %s", item:section()) if item:section() == "mutant_krovosos_booty" then cnt = cnt + 1 end end db.actor:iterate_inventory(zat_b30_count, nil) if cnt > 2 then return true end return false end
function actor_has_second_tremor_quest_item(first_speaker, second_speaker) local cnt = 0 local function zat_b30_count(npc, item) --printf("item:section: %s", item:section()) if item:section() == "drug_anabiotic" then cnt = cnt + 1 end end db.actor:iterate_inventory(zat_b30_count, nil) if cnt > 1 then return true end return false end
function transfer_zat_tremor_quest_object(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "drug_anabiotic", 2) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "mutant_krovosos_booty", 3) end
function money_zat_tremor_quest(first_speaker, second_speaker) local amount = 15000 dialogs.relocate_money_to_actor(first_speaker, second_speaker, amount) end
function medcomplect_zat_tremor_quest(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "medkit_elite", 10) end
function give_tremor_quest() task_manager.get_task_manager():give_task("geonezis_zat_tremor_quest") end [/cut] [cut=sgm_tasks]--/Квест: Поручение Тремора if has_alife_info("zat_tremor_quest_started") and (not has_alife_info("zat_tremor_quest_have_anabiotic")) then local cnt = 0 local function zat_b30_count(npc, item) --printf("item:section: %s", item:section()) if item:section() == "drug_anabiotic" then cnt = cnt + 1 end end db.actor:iterate_inventory(zat_b30_count, nil) if cnt > 1 then give_info("zat_tremor_quest_have_anabiotic") end end if has_alife_info("zat_tremor_quest_started") and (not has_alife_info("zat_tremor_quest_have_krovosos")) then local cnt = 0 local function zat_b30_count(npc, item) --printf("item:section: %s", item:section()) if item:section() == "mutant_krovosos_booty" then cnt = cnt + 1 end end db.actor:iterate_inventory(zat_b30_count, nil) if cnt > 2 then give_info("zat_tremor_quest_have_krovosos") end end[/cut] Видимо, не работает функция в sgm_tasks. Как можно исправить данную функцию, что бы промежуточные инфопорции выдавались и задания обновлялись. Заранее благодарен за советы.
Должно работать, видимо проверка состояния квестов вставлена не туда. denis2000
Добавлено (11.05.2012, 00:34) --------------------------------------------- Добрый Вечер! Сделал квест на поиск 10 артефактов разных видов на примере квеста Тесака на поиск еды. Приведу детали квеста. [cut=sgm_dialogs]function sgm_dialogs.esc_rasvet_001_quests_1_have_arts(first_speaker, second_speaker) local item_sections = { [1] = "af_baloon", [2] = "af_gravi", [3] = "af_ice", [4] = "af_glass", [5] = "af_fuzz_kolobok", [6] = "af_gold_fish", [7] = "af_fire"
} local needed = 10 local count = 0 local item_section
local function calc(temp, item) if item:section() == item_section then count = count + 1 end end
for k,v in pairs(item_sections) do item_section = v get_story_object("actor"):iterate_inventory(calc, actor) -- printf("?sgm_dialogs.esc_rasvet_001_quests_1_have? : section [%s] count [%s]", tostring(v), tostring(count)) end
return count >= needed end function esc_rasvet_001_quests_1_relocates_arts(first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) local actor = dialogs.who_is_actor(first_speaker, second_speaker) local i = 10 local j = 0 local section local item_sections = { [1] = "af_baloon", [2] = "af_gravi", [3] = "af_ice", [4] = "af_glass", [5] = "af_fuzz_kolobok", [6] = "af_gold_fish", [7] = "af_fire" }
local function transfer_object_item(temp, item) if (item:section() == section and i ~= 0) then actor:transfer_item(item, npc) i = i - 1 end end
for k,v in pairs(item_sections) do section = v j = i actor:iterate_inventory(transfer_object_item, nil) if ((j - i) ~= 0) then news_manager.relocate_item(actor, "out", section, j - i) end -- printf("?esc_rasvet_001_quests_1_relocates_arts? : section [%s] lasts [%s] from 6", tostring(v), tostring(i)) end end function esc_rasvet_001_quests_1_relocates_money_to_actor(first_speaker, second_speaker) dialogs.relocate_money_to_actor(first_speaker, second_speaker, 120000) end[/cut] [cut=dialogs_escape]<dialog id="esc_rasvet_001_quests_1_begin"> <dont_has_info>esc_rasvet_001_quests_1_init</dont_has_info> <phrase_list> <phrase id="0"> <text>esc_rasvet_001_quests_1_0</text> <next>1</next> </phrase> <phrase id="1"> <text>esc_rasvet_001_quests_1_1</text> <next>2</next> </phrase> <phrase id="2"> <text>esc_rasvet_001_quests_1_2</text> <next>3</next> </phrase> <phrase id="3"> <text>esc_rasvet_001_quests_1_3</text> <next>4</next> <next>5</next> </phrase> <phrase id="4"> <text>esc_rasvet_001_quests_1_4</text> <give_info>esc_rasvet_001_quests_1_no_quest</give_info> </phrase> <phrase id="5"> <text>esc_rasvet_001_quests_1_5</text> <give_info>esc_rasvet_001_quests_1</give_info> <next>6</next> </phrase> <phrase id="6"> <text>esc_rasvet_001_quests_1_6</text> <give_info>esc_rasvet_001_quests_1_init</give_info> <next>7</next> </phrase> <phrase id="7"> <text>esc_rasvet_001_quests_1_61</text> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog> <dialog id="esc_rasvet_001_quests_1_end"> <has_info>esc_rasvet_001_quests_1_init</has_info> <dont_has_info>esc_rasvet_001_quests_1_end</dont_has_info> <precondition>sgm_dialogs.esc_rasvet_001_quests_1_have_arts</precondition> <phrase_list> <phrase id="0"> <text>esc_rasvet_001_quests_1_7</text> <give_info>esc_rasvet_001_quests_1_end</give_info> <next>1</next> </phrase> <phrase id="1"> <text>esc_rasvet_001_quests_1_8</text> <next>2</next> </phrase> <phrase id="2"> <text>esc_rasvet_001_quests_1_9</text> <action>sgm_dialogs.esc_rasvet_001_quests_1_relocates_arts</action> <next>3</next> </phrase> <phrase id="3"> <text>esc_rasvet_001_quests_1_10</text> <action>sgm_dialogs.esc_rasvet_001_quests_1_relocates_money_to_actor</action> <next>4</next> </phrase> <phrase id="4"> <text>esc_rasvet_001_quests_1_11</text> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog>[/cut] [cut=tm_escape][esc_rasvet_001_quests_1] icon = ui_inGame2_Kontrakt_s_uchenimi prior = 1 storyline = false title = {=esc_rasvet_001_quests_1_have_arts} esc_rasvet_001_quests_1_got_name, esc_rasvet_001_quests_1_bring_name descr = {=esc_rasvet_001_quests_1_have_arts} esc_rasvet_001_quests_1_got_text, esc_rasvet_001_quests_1_bring_text target = {=esc_rasvet_001_quests_1_have_arts} esc_rasvet_001 condlist_0 = {+esc_rasvet_001_quests_1_end} complete [/cut] Изучив оригинальный квест, выяснил, что он запускается посредством инфопорции с названием квеста в диалоге. Вроде все сделал по образцу, но у меня инфопорция не срабатывает и квест не запускается. Скриптовые функции работают отлично. Артефакты можгно принести и получить за них награду. При добавлении в диалог <action>sgm_dialogs.esc_rasvet_001_quests_1</action> и функции function esc_rasvet_001_quests_1() task_manager.get_task_manager():give_task("esc_rasvet_001_quests_1") end происходит вылет. Если делать квест на основе урока от Geonezis на поиск артефактов Пламя и Снежинка, action нормально работает и квест запускается. Как сделать, чтобы квест запустился? Заранее благодарен за советы.
Ожидаю ЛОГ! denis2000 Лучше не именовать функции таким образом sgm_dialogs.esc_rasvet_001_quests_1_have_arts Ну и лог конечно-же... XOBAH
Добавлено (11.05.2012, 15:12) --------------------------------------------- Добрый День! Привожу проблемный квест. Задание найти 10 артефактов 7 разных видов. Сделан на основе квеста Тесака на поиск продуктов. [cut=Квест]<dialog id="esc_rasvet_001_quests_1_begin"> <dont_has_info>esc_rasvet_001_quests_1_init</dont_has_info> <phrase_list> <phrase id="0"> <text>esc_rasvet_001_quests_1_0</text> <next>1</next> </phrase> <phrase id="1"> <text>esc_rasvet_001_quests_1_1</text> <next>2</next> </phrase> <phrase id="2"> <text>esc_rasvet_001_quests_1_2</text> <next>3</next> </phrase> <phrase id="3"> <text>esc_rasvet_001_quests_1_3</text> <next>4</next> <next>5</next> </phrase> <phrase id="4"> <text>esc_rasvet_001_quests_1_4</text> <give_info>esc_rasvet_001_quests_1_no_quest</give_info> </phrase> <phrase id="5"> <text>esc_rasvet_001_quests_1_5</text> <action>sgm_dialogs.esc_rasvet_001_quests_1</action> <next>6</next> </phrase> <phrase id="6"> <text>esc_rasvet_001_quests_1_6</text> <give_info>esc_rasvet_001_quests_1_init</give_info> <next>7</next> </phrase> <phrase id="7"> <text>esc_rasvet_001_quests_1_61</text> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog> <dialog id="esc_rasvet_001_quests_1_end"> <has_info>esc_rasvet_001_quests_1_init</has_info> <dont_has_info>esc_rasvet_001_quests_1_end</dont_has_info> <precondition>sgm_dialogs.esc_rasvet_001_quests_1_have_arts</precondition> <phrase_list> <phrase id="0"> <text>esc_rasvet_001_quests_1_7</text> <give_info>esc_rasvet_001_quests_1_end</give_info> <next>1</next> </phrase> <phrase id="1"> <text>esc_rasvet_001_quests_1_8</text> <next>2</next> </phrase> <phrase id="2"> <text>esc_rasvet_001_quests_1_9</text> <action>sgm_dialogs.esc_rasvet_001_quests_1_relocates_arts</action> <next>3</next> </phrase> <phrase id="3"> <text>esc_rasvet_001_quests_1_10</text> <action>sgm_dialogs.esc_rasvet_001_quests_1_relocates_money_to_actor</action> <next>4</next> </phrase> <phrase id="4"> <text>esc_rasvet_001_quests_1_11</text> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog>
function esc_rasvet_001_quests_1() task_manager.get_task_manager():give_task("esc_rasvet_001_quests_1") end function sgm_dialogs.esc_rasvet_001_quests_1_have_arts(first_speaker, second_speaker) local item_sections = { [1] = "af_baloon", [2] = "af_gravi", [3] = "af_ice", [4] = "af_glass", [5] = "af_fuzz_kolobok", [6] = "af_gold_fish", [7] = "af_fire"
} local needed = 10 local count = 0 local item_section
local function calc(temp, item) if item:section() == item_section then count = count + 1 end end
for k,v in pairs(item_sections) do item_section = v get_story_object("actor"):iterate_inventory(calc, actor) -- printf("?sgm_dialogs.esc_rasvet_001_quests_1_have? : section [%s] count [%s]", tostring(v), tostring(count)) end
return count >= needed end function esc_rasvet_001_quests_1_relocates_arts(first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) local actor = dialogs.who_is_actor(first_speaker, second_speaker) local i = 10 local j = 0 local section local item_sections = { [1] = "af_baloon", [2] = "af_gravi", [3] = "af_ice", [4] = "af_glass", [5] = "af_fuzz_kolobok", [6] = "af_gold_fish", [7] = "af_fire" }
local function transfer_object_item(temp, item) if (item:section() == section and i ~= 0) then actor:transfer_item(item, npc) i = i - 1 end end
for k,v in pairs(item_sections) do section = v j = i actor:iterate_inventory(transfer_object_item, nil) if ((j - i) ~= 0) then news_manager.relocate_item(actor, "out", section, j - i) end -- printf("?esc_rasvet_001_quests_1_relocates_arts? : section [%s] lasts [%s] from 6", tostring(v), tostring(i)) end end function esc_rasvet_001_quests_1_relocates_money_to_actor(first_speaker, second_speaker) dialogs.relocate_money_to_actor(first_speaker, second_speaker, 120000) end
[esc_rasvet_001_quests_1] icon = ui_inGame2_Kontrakt_s_uchenimi prior = 1 storyline = false title = {=esc_rasvet_001_quests_1_have_arts} esc_rasvet_001_quests_1_got_name, esc_rasvet_001_quests_1_bring_name descr = {=esc_rasvet_001_quests_1_have_arts} esc_rasvet_001_quests_1_got_text, esc_rasvet_001_quests_1_bring_text target = {=esc_rasvet_001_quests_1_have_arts} esc_rasvet_001 condlist_0 = {+esc_rasvet_001_quests_1_end} complete[/cut] При ативации <action>sgm_dialogs.esc_rasvet_001_quests_1</action> происходит вылет [cut=Лог вылета]FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ...files 1\Зов Припяти\gamedata\scripts\xr_logic.script:478: attempt to index local 'npc' (a nil value)[/cut] При замене <action>sgm_dialogs.esc_rasvet_001_quests_1</action> на <give_info>esc_rasvet_001_quests_1</give_info> вылета не происходит, но квест не активируется. Скриптовые функции работают нормально, можно принести артефакты и получить деньги./text>
Сообщение отредактировал sergej5500 - Пт, 11.05.2012, 15:14 |
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 11.05.2012, 15:30 | Сообщение # 43 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| sergej5500, Функуция esc_rasvet_001_quests_1_have_arts в xr_conditions.script присутствует?
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
sergej5500 | Дата: Пт, 11.05.2012, 16:27 | Сообщение # 44 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Попробовал дописать функцию esc_rasvet_001_quests_1_have_arts в файл xr_conditions.script по аналогии с функцией zat_b103_actor_has_needed_food из оригигнального квеста. Ничего не изменилось. Квест по прежнему не берется. Функция esc_rasvet_001_quests_1_have_arts у меня работает нормально. Когда подхожу к НПС, не имея 10 артефактов, то соответствующая ветка диалога не появляется.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 11.05.2012, 16:38 | Сообщение # 45 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Quote (sergej5500) Ничего не изменилось. Квест по прежнему не берется. Тоесть тот же лог вылета? Тогда ты сделал это неправильно.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
|