Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Kondr48 314 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 (изменено) Valerich, насчет цифр ты не прав, открой диалог_ескейп и увидишь пысовский ужас)), здесь одно правило что указал в теге next то и должно быть, а посоветую только одно-сделать ветку типа до встречи где куча прекондишинов, без всяких условий Изменено 1 Ноября 2011 пользователем Вампир35 Ссылка на комментарий
Valerich 34 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 (изменено) Desertir, Вампир35 Да да да, сейчас поворошил (распечаточки) то что забыл - Вы правы. Для Wookie Напиши что ты хочешь сделать (под споллер со всеми своими фразами и какие истины и проверки тебе нужны), так будет проще и тебе напишут так как надо, а там разберешся Да и ещё, судя по файлам тойже Солянки сначало идет <precondition>...</precondition> Затем <text>...</text> А потом <action>...</action> НО, как и написал выше - ЧТО ты хочешь получить - мы не знаем. Пиши подумаем Изменено 1 Ноября 2011 пользователем Valerich Ссылка на комментарий
Wookie 7 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 Valerich, я хотел сделать проверку на арты у ГГ (На каждую ветку по арту - Медуза, Кровь камня, Выверт и Ломоть мяса). Как я понял, вылетало из-за отсутсвия вариантов диалога. -- Проверки на арты у Сидора function if_give_art1(task, objective) if db.actor ~= nil then return db.actor:object("af_medusa") ~= nil end return false end function if_give_art2(task, objective) if db.actor ~= nil then return db.actor:object("af_blood") ~= nil end return false end function if_give_art3(task, objective) if db.actor ~= nil then return db.actor:object("af_mincer_meat") ~= nil end return false end function if_give_art4(task, objective) if db.actor ~= nil then return db.actor:object("af_vyvert") ~= nil end return false end -- Проверки на части монстров у Сидора function if_give_booty1() return booty_task_sidor=="mutant_flesh_eye" and db.actor:object("mutant_flesh_eye") end function if_give_booty2() return booty_task_sidor=="mutant_boar_leg" and db.actor:object("mutant_boar_leg") end function if_give_booty3() return booty_task_sidor=="mutant_dog_tail" and db.actor:object("mutant_dog_tail") end -- Убор артов у ГГ и добавление к личной сумме нужных УЕ function gave_art1(actor, npc) dialogs.relocate_item_section(npc, "af_medusa", "out") art_task_sidor = nil this.add_money(500, sidor) end function gave_art2(actor, npc) dialogs.relocate_item_section(npc, "af_blood", "out") art_task_sidor = nil this.add_money(300, sidor) end function gave_art3(actor, npc) dialogs.relocate_item_section(npc, "af_mincer_meat", "out") art_task_sidor = nil this.add_money(800, sidor) end function gave_art4(actor, npc) dialogs.relocate_item_section(npc, "af_vyvert", "out") art_task_sidor = nil this.add_money(600, sidor) end Добавил еще один вариант ответа (ничего не достал, пойду опять искать) вылетать перестало, но арты не проверяются. Точнее - хоть есть, хоть нет арта - диалога нет. https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Ссылка на комментарий
Galil 18 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 (изменено) Перепроверь правильно ли заданы имена скриптов. Проверь сами скрипты на наличие ошибок. <precondition>wookie_trader_status.if_give_art4</precondition> <action>wookie_trader_status.gave_art1</action> <precondition>wookie_trader_status.if_give_art4</precondition> <action>wookie_trader_status.gave_art2</action> <precondition>wookie_trader_status.if_give_art4</precondition> <action>wookie_trader_status.gave_art3</action> <precondition>wookie_trader_status.if_give_art4</precondition> <action>wookie_trader_status.gave_art4</action> Сейчас вот открыл через IE - xml код рабочий, ошибок нет. Так что проверяй скрипты. У тебя кстати прекондишн во всех случаях одинаковый. Что есть такое? [b]this[/b].add_money(600, sidor) И кстати проверка идет не на ломоть мяса, а на выверт. Изменено 1 Ноября 2011 пользователем Galil Cold Zone *** Youtube *** Стволы *** SC2TV Ссылка на комментарий
Wookie 7 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 Кстати в чем ошибка этой ф-ии? function add_money(trader_money, trader) trader = trader + trader_money end function hate_money(trader_money, trader) trader = trader - trader_money end -- Применение function add_mon() this.add_money(600, sidor) end -- Local (в начале скрипта) local sidor = 0 -- Что делает функция - у нас есть условный счет у Сидора, и мы добавляем деньги - сначала пишем сколько надо, потом название торговца (ссылка на переменную с баблом у сидора) Добавлено через 1 мин.: Galil, это я делал для теста, т.к. выдавал себе "ломоть мяса" в начале. https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Ссылка на комментарий
ScheiTan 26 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 Туповатый вопрос, но все же. Как сделать Сидоровскую дверь всегда открытой? А то логику правил - надпись, что открыто есть, а дверь не отворяется Ссылка на комментарий
Desertir 202 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 (изменено) сначало идет <precondition>...</precondition> Затем <text>...</text> А потом <action>...</action> Совершенно фиолетово, в каком порядке будут идти теги во фразе. Wookie, записывать значение счета Сидора лучше в пстор актора. У тебя в скрипте есть глобальная переменная, но она будет равна нулю про новой инициализации скрипта (первом вызове любой функции из этого скрипта), т.е. после загрузки игры и непосредственно диалоге с NPC. Поэтому лучше записать значение в пстор, потом его читать. В итоге имеем: --пополнение счета function add_money(trader_money, trader) trader = trader + trader_money xr_logic.pstor_store(db.actor,"acc_sidor",trader) end --снятие со счета function hate_money(trader_money, trader) trader = trader - trader_money xr_logic.pstor_store(db.actor,"acc_sidor",trader) end --вызов function add_mon() local sidor = xr_logic.pstor_retrieve(db.actor,"acc_sidor") if sidor == nil then sidor = 0 end this.add_money(600, sidor) end А глобальную переменную sidor убрать. На счет прекондишенов. Теги has_info, dont_has_info и precondition позволяют задавать условия доступности диалога по наличию/отсутствию инфопорции или скриптовой функцией. Функция должна иметь вид: function dialog_prec(first_speaker, second_speaker, dlg_id) ... return true/false end здесь: dlg_id - идентификатор диалога, для которого проверяется предусловие first_speaker - тот, кто будет говорить первым. Если это стартовый диалог, то это NPC, если диалог актора, то актор. second_speaker - соответственно, второй собеседник Я бы проверял так function if_give_art4(first_speaker,second_speaker,dlg_id) if db.actor:object("af_vyvert") ~= nil then return true else return false end end Возможно примитивно, но работать должно. И кстати проверка идет не на ломоть мяса, а на выверт. Именно. И что за переменные art_task_sidor и booty_task_sidor? Galil, this (этот) - выполнить из этого скрипта. Лично я не пользуюсь, указываю имя явно. Изменено 1 Ноября 2011 пользователем Desertir ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
Wookie 7 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 Desertir, art_task_sidor и booty_task это квесты соответственно на арты и на части монстров, но они не отображаются в инвентаре. Идет все так - выбирается один из случайных артов\конечностей, записанных в таблицу, потом идет проверка на соответствующий арт и выдача через amk.send_tip нового сообщения. Вот весь скрипт - ------------------------------------- --- Статусы торговцев --- copyright © Wookie, 2011 ------------------------------------- local sidor = 0 -- Стартовое кол-во денег за квесты у Сидора local barman = 0 -- Стартовое кол-во денег за квесты у Бармена -- Остальных оставим, так как Артем Кулинар бармен, Сахаров ученый а не барыга, с Вороном думаю -- Переменные квестов local art_task_sidor local art_task_barmen local booty_task_sidor local booty_task_barmen -- Переменные квестов -- Артефакты которые нужны Сидору (Подогнаны под Кордон) local sidor_arts={ "af_medusa", "af_blood", "af_mincer_meat", "af_vyvert" } -- Артефакты нужные Бармену (Подогнаны под Бар и окрестности) local barmen_arts={ "af_fireball", "af_electra_moonlight", "af_cristall_flower", "af_soul", "af_ameba_slug" } -- Части монстров нужные Сидору (Подогнаны под Кордон) local sidor_booty={ "mutant_flesh_eye", "mutant_boar_leg", "mutant_dog_tail" } -- Части монстров нужные Бармену (Подогнаны под Бар и окрестности) local barmen_booty={ "mutant_psevdodog_tail", "mutant_krovosos_jaw", "mutant_burer_hand", "mutant_snork_leg", "mutant_chimera_cogot" } function add_money(trader_money, trader) trader = trader + trader_money end function hate_money(trader_money, trader) trader = trader - trader_money end function give_sidor_task_arts() art_task_sidor = sidor_arts[math.random(4)] if art_task_sidor=="af_medusa" then amk.send_tip("Твоя цель - артефакт Медуза, найдешь и принесешь - запишу 500 рублей на твой счет", "Сидорович") end if art_task_sidor=="af_blood" then amk.send_tip("Твоя цель - артефакт Кровь камня, найдешь и принесешь - запишу 300 рублей на твой счет", "Сидорович") end if art_task_sidor=="af_mincer_meat" then amk.send_tip("Твоя цель - артефакт Ломоть Мяса, найдешь и принесешь - запишу 800 рублей на твой счет", "Сидорович") end if art_task_sidor=="af_vyvert" then amk.send_tip("Твоя цель - артефакт Выверт, найдешь и принесешь - запишу 600 рублей на твой счет", "Сидорович") end end function give_sidor_task_booty() booty_task_sidor = sidor_booty[math.random(3)] if booty_task_sidor=="mutant_flesh_eye" then amk.send_tip("Твоя цель - глаз плоти, найдешь и принесешь - запишу 200 рублей на твой счет", "Сидорович") end if booty_task_sidor=="mutant_boar_leg" then amk.send_tip("Твоя цель - копыто кабана, найдешь и принесешь - запишу 600 рублей на твой счет", "Сидорович") end if booty_task_sidor=="mutant_dog_tail" then amk.send_tip("Твоя цель - хвост слепого пса, найдешь и принесешь - запишу 100 рублей на твой счет", "Сидорович") end end function sidor_private_count() news_manager.send_tip(db.actor, "Сидорович:\\nТвой счет: " ..(sidor), nil, nil, 3000) end ------------------------------------------------------------------------------------------------------------------------------------------- -- Диалоги -- ------------------------------------------------------------------------------------------------------------------------------------------- -- Проверки на арты у Сидора function if_give_art1(task, objective) if db.actor ~= nil then return db.actor:object("af_medusa") ~= nil end return false end function if_give_art2(task, objective) if db.actor ~= nil then return db.actor:object("af_blood") ~= nil end return false end function if_give_art3(task, objective) if db.actor ~= nil then return db.actor:object("af_mincer_meat") ~= nil end return false end function if_give_art4(task, objective) if db.actor ~= nil then return db.actor:object("af_vyvert") ~= nil end return false end -- Проверки на части монстров у Сидора function if_give_booty1() return booty_task_sidor=="mutant_flesh_eye" and db.actor:object("mutant_flesh_eye") end function if_give_booty2() return booty_task_sidor=="mutant_boar_leg" and db.actor:object("mutant_boar_leg") end function if_give_booty3() return booty_task_sidor=="mutant_dog_tail" and db.actor:object("mutant_dog_tail") end -- Убор артов у ГГ и добавление к личной сумме нужных УЕ function gave_art1(actor, npc) dialogs.relocate_item_section(npc, "af_medusa", "out") art_task_sidor = nil this.add_money(500, sidor) end function gave_art2(actor, npc) dialogs.relocate_item_section(npc, "af_blood", "out") art_task_sidor = nil this.add_money(300, sidor) end function gave_art3(actor, npc) dialogs.relocate_item_section(npc, "af_mincer_meat", "out") art_task_sidor = nil this.add_money(800, sidor) end function gave_art4(actor, npc) dialogs.relocate_item_section(npc, "af_vyvert", "out") art_task_sidor = nil this.add_money(600, sidor) end -- Торговля -- Проверки на бабло function if_give_800_money() return sidor >= 800 end Ну после выдачи сообщения надо искать арт, потом отдавать его сидору (проблему решил кстати) хотел в прекондишне ставить - return db.actor:object("af_medusa") and art_task_sidor=="af_medusa" , но не знаю, будет так работать или нет. Ну и если все условия прекондишна выполнены - отдаем арт сидору, тот записывает нам на счет *** денег (не обычных). https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Ссылка на комментарий
Desertir 202 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 (изменено) return db.actor:object("af_medusa") and art_task_sidor=="af_medusa" По идее, должно art_task_sidor и booty_task это квесты соответственно на арты и на части монстров, но они не отображаются в инвентаре Тогда эти флаги тоже придется записывать в пстор, потом проверять их наличие (если true - квест идет, квест выполнился - записываем false или удаляем (записываем nil)). Вообще то мы делаем: Подходим к Сидору\Бармену и спрашиваем про задание. Он дает нам задание на конкретный арт\часть тела. Записываем в пстор что задание активно. Находим арт\часть тела. По каллбеку на взятие отслеживаем это дело - выдаем сообщение о выполнении заказа. Приносим арт\часть тела и отдаем его\ее. Записываем в пстор, что для конкретного(ой) арта\части тела задание выполнено. Записываем в пстор надбавку к счету Сидоровича\Бармена. Вроде все ну он у меня там онулялся и вроде все Возьми задание, сохранись, выйди, загрузись. В итоге задания не будет, т.к. переменная опять будет nil. Изменено 1 Ноября 2011 пользователем Desertir ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
Wookie 7 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 ну он у меня там онулялся и вроде все вот так все выглядело - art_task_sidor = nil https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Ссылка на комментарий
FD G.R.O.D. 0 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 Такая проблема-я прописал новую волыну в игру,прописал её у NPC-она есть,но весит у него гдето над головой-помогите,как от этого избавиться? Добавлено через 1 мин.: Такая проблема-я прописал новую волыну в игру,прописал её у NPC-она есть,но весит у него гдето над головой-помогите,как от этого избавиться? Ссылка на комментарий
ScheiTan 26 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 FD G.R.O.D., положение оружия в конфиге поправлять Ссылка на комментарий
nemo696 19 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 (изменено) Здравствуйте уважаемые Сталкеры. Подскажите как переделать шлем у броника "Стальной крыс" чтоб обзор был полный, а не как сейчас, сам я ничего в этом не понимаю, или может кто то сделает ? 1.Вид из броника Скат 15 http://i3.imageban.ru/out/2011/11/01/17f62...959d1f5e0af.jpg 2.Вид из броника Стальной крыс http://i1.imageban.ru/out/2011/11/01/072c2...574dbaeba42.jpg 3.Визуал Скат 15 http://i3.imageban.ru/out/2011/11/01/924f1...b70020c15a6.jpg 4.Визуал Стальной крыс http://i4.imageban.ru/out/2011/11/01/69ee2...3a2ead6bda7.jpg Строгое предупреждение от модератора ColR_iT Пункт правил 2.2 Изменено 1 Ноября 2011 пользователем ColR_iT Ссылка на комментарий
FD G.R.O.D. 0 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 Это я и сам знаю.какие строчки конкретно? Ссылка на комментарий
ColR_iT 171 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 ScheiTan, чтобы у Сидора была всегда не запертая дверь: Оригинальная логика: [logic] active = ph_door@locked [ph_door@locked] locked = true snd_open_start = trader_door_unlock on_info = {+esc_trader_can_leave} ph_door@closed %=play_snd(device\door_servomotor)% [ph_door@closed] closed = true locked = false on_use = ph_door@open %-esc_close_door% snd_open_start = trader_door_open_start snd_close_start = trader_door_close_start snd_close_stop = trader_door_close_stop [ph_door@open] closed = false locked = false on_use = ph_door@closed on_info = {+esc_close_door} ph_door@closed snd_open_start = trader_door_open_start snd_close_start = trader_door_close_start snd_close_stop = trader_door_close_stop Тут нужно изменить всего лишь одну строчку: active = ph_door@locked на active = ph_door@closed Ссылка на комментарий
Ray 14 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 (изменено) Вроде как найдена причина вылета на Болотах при стрельбе с навесным глушаком. С этим вылетом боролись и ДЛЛкой и ехе-шником, а все намного проще. Дело в параметре silencer_light_range. Везде он равен 0.01 silencer_light_range = 0.01 стоит его заменить на 2 silencer_light_range = 2 и вылет уходит. Проверено неоднократными тестами. При значении 1 и меньше вылет остается. Изменено 1 Ноября 2011 пользователем Ray AMD Ryzen 5 3600 Box, MB Asus Prime B450-Plus, 2x8 Gb Kingston DDR4-3200, MSI GeForce GTX 1060 3GB, SSD Samsung 840 EVO 120GB, Kingston A400 120 Gb, Samsung HD103SJ SATA2, Samsung HD502HJ SATA2 Ссылка на комментарий
MeDveDvarf 0 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 Здравствуйте! Объясните пожалуйста какие файлы нужно чистить, для полной очистки игры от сценария. В шапке темы есть готовое решение (часто задаваемые вопросы). Cyclone Ссылка на комментарий
Хитрюга 1 Опубликовано 1 Ноября 2011 Поделиться Опубликовано 1 Ноября 2011 Залез в файл m_chimera.ltx дабы сделать так, чтобы она умирала хотя бы с одной обоймы калашникова. Однако я уже и параметр Health до 40 понизил и иммунитеты все до 0.9 поднял, а все равно не умирает. Где я ошибся? Было бы лучше, если бы вы сказали какие параметры надо точно изменять, так как у меня исключительно гуманитарный склад ума, и все эти циферки меня ввергают в оцепенение. Ссылка на комментарий
n6260 130 Опубликовано 2 Ноября 2011 Поделиться Опубликовано 2 Ноября 2011 Где я ошибся? Берём иммунитет fire_wound_immunity (оно как раз отвечает за огнестрельные ранения) и правим. В файле m_chimera. А значение подбирается опытным путем. 256 символов Ссылка на комментарий
Хитрюга 1 Опубликовано 2 Ноября 2011 Поделиться Опубликовано 2 Ноября 2011 Если это иммунитет, то при повышении коэффицента устойчивость повышается или понижается? Просто все же зависит от формулы, которую я не видел. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти