Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
zhrec 0 Опубликовано 17 Марта 2012 Поделиться Опубликовано 17 Марта 2012 (изменено) Artos, Да вот пытаюсь адаптировать "собирательство" в LWToD. В modules.script, xr_logic.script, и xr_motivator.script ссылки на watcher_act.script вставил, но НПС не хотят ни чего поднимать. Поэтому я и подумал, что это от чего-то ещё зависит. Изменено 17 Марта 2012 пользователем zhrec Народная солянка от 19.04.10 SGM 2.2 Тайные Тропы 2 Ссылка на комментарий
User_X.A.R26 261 Опубликовано 17 Марта 2012 Поделиться Опубликовано 17 Марта 2012 Чем открыть, распаковать или изменить файл section2.bin, который появляется при распаковке all.spawn? И ещё вопрос: как добавить переход между уровнями, если у меня имеется только 1 точка, а 2ю нет возможности измерить? Ссылка на комментарий
Saruman 8 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 User_X.A.R26, ну так найди возможно измерить вторые координаты S.T.A.L.K.E.R 1.004, Народная..Солянка от 19.04.10, дополнение 14.08.10, патч 3.09.10, DMX 1.3.5, Saruman addon 1.1 Vkontakte Добавление нового транспорта в сталкер Ссылка на комментарий
User_X.A.R26 261 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 (изменено) Saruman, я просто пытаюсь прикрутить одну карту к ТЧ, но не знаю как совместить game.graph и all.spawn этой карты. Карта называется dark_forest, взял в раритетах. В принципе карта уже есть в игре (отображается на глобальной карте), но вот как сделать переход не знаю Изменено 18 Марта 2012 пользователем User_X.A.R26 Ссылка на комментарий
Panzerwolff 0 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 Нужен рюкзак из AMK 1.4.1 для вставки его в OGSM - Arsenal Edition для ТЧ. Что откуда брать, куда перемещать? В наличии обе папки gamedata от 1 и 2 модов. Заранее благодарю за помощь. Ссылка на комментарий
Struck 61 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 Делаю walker'a с переходом в meet. Проблема в строке use = true Если ставлю use = true, то все работает нормально, если же ставлю use = {-info} self, true, то напрочь отключается управление.(с помощью demo_record'a увидел, что у НПС логика работает) Вот полная логика моего персонажа: [logic] active = walker [walker] path_walk = esc_gopnik_1_walk path_look = esc_gopnik_1_look meet = meet [meet] meet_state = 10| {+esc_gopnik_info} threat_fire %=killactor%, claim@ {+esc_gopnik_info} talk_abuse, wait | 5 | claim %+esc_gopnik_info%; wait | 2 | claim;state meet_state_wpn = 10| {+esc_gopnik_info} threat_fire %=killactor%, claim@ {+esc_gopnik_info} talk_abuse, wait victim = 10| actor victim_wpn = 10| actor use = true;use = {-info} self, true use_wpn = false Писал логику с опорой на этот мануал: Сталкер завидя нас просит убрать оружие. После этого подходит и заговаривает с нами. Если мы начинаем уходить от него или достаем оружие – начинает нас стрелять. [meet] meet_state = 50| {+info} threat_fire %=killactor%, walk@ {+info} talk_abuse, wait | 10 | walk %+info%; wait | 2 | threat;state meet_state_wpn = 50| {+info} threat_fire %=killactor%, threat@ {+info} talk_abuse, wait victim = 50| actor victim_wpn = 50| actor use = {-info2} self, false use_wpn = false Здесь: info – инфоропшн, который указывает что мы уже опустили оружие и были достаточно близко к НПС Info2 – инфопоршн, который устанавливается в диалоге и говорит что персонаж уже сказал нам все, что хотел. Killactor – функция в xr_effects которая обижает НПС на игрока. Ссылка на комментарий
Artos 99 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 (изменено) Struck 1. Т.н. "мануалы" все же являются большей частью не готовыми кодами, которые предназначены для применения, а руководством к написанию. 2. Акторы многих мануалов к игре - нередко допускают оЧепятки/ошибки, недомолвки и т.п. , поэтому следует перепроверять написанное, а не слепо копировать и вопрошать. Ты уперся в упомянутую строку: use = {-info} self, true Ответь попробуй себе и нам, а что за 'info' и что за 'self' именно в твоем случае? Приведи коды для 'info' и 'self', которые после чтения твоего конфига логики должны функционировать в игре! Если затррудняешься ответить - то это значит: Ты просто скопировал из мануала шаблонные строки и не потрудился даже подумать, что нет такого у тебя инфопоршня 'info' при отсутствии которого должно быть выполнено нечто загадочное -> 'self'. Вот не понимая твое 'self' схема и впадает в ступор ... Неясно, что в мануале подразумевалось автором под use = {-info2} self, false, и вероятно это опечатка ... Тут по смыслу должно быть 'true'. Т.е. use = {-info2} true, false - и читаться так: Разговор возможен если нет инфопоршня. В твоем же конкретном случае очевидно двойное true достаточно бессмысленно и или вообще не нужно разделять на условия или самостоятельно подумай как должно у тебя быть. Изменено 18 Марта 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Struck 61 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 Artos, 'info' у меня есть, я понимаю как это читается, синтаксис логики вроде потихоньку понимать начинаю. Ответь попробуй себе и нам, а что за 'info' и что за 'self' именно в твоем случае? use = {-info} self, true - я понимаю это так, что НПС подходит и юзает(в мануале это - 'self') актора, в диалоге выдается этот 'info', далее уже можно юзать его(НПС). Но если убрать(заменить на true) 'self', то получается уже актор должен юзать НПС, а не наоборот...если это опечатка и 'self' в данном случае(или вообще) не работает. Ссылка на комментарий
Artos 99 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 (изменено) Struck, мда-а-а, как же все запущено ... 1. Если у тебя есть (создан тобою) инфопоршень 'info' - то советую его переименовать на нечто более семантически "читаемои и понимаемое". - во-первых, если собираешься не только одну-две подобных логики делать, то запутаться в разных info1/info2/infoN - запросто и самому. - во-вторых, вероятность, что можешь с подобым именем пересечься ... тем более используя копипасты из мануалов - не так уж и маловероятно. - ну и, самому более понятен будет типа: 'esc_gopnik_use_info'? т.к. название инфопоршня подсказыает и для кого и для чего. 2. Полностью неправильное понимание назначения и испльзование параметра 'use' для схемы. {-info} - это условие, по которому параметр (use - возможен ли разговор) примет значение указанное за условием. В твоем случае это нечто 'self' - ну и какое булево значение (true или false) должен принять параметр 'use', прочтя твое 'self'? Сорри, но выше уже разъяснил вроде как дальше некуда и какая строка должна быть и как она читается: use = {-info2} true, false - и читаться так: Разговор возможен если нет инфопоршня.Ну если тебе твои погадалки понятнее - то сорри, каков же ответ ты ждешь? Нужно читат и понимать написанное, а не слепо копировать (в том числе и ошибку!) и не понимая что же написано, продолжать задаваться вопросом почему же не работает. Учись НЕ копипастить и разгребать свои и чужие ошибки, а учись писать именно логику, т.е. руководство скриптам что/когда/как делать. Метод тыка в таком деле не помощник, а напрасная трата времени. Изменено 18 Марта 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Struck 61 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 Artos, ладно, с этим разобрался, как тогда заставить его первого начать диалог?...именно не meet_dialog прописать, а чтобы он сам юзнул актора. Сорри, но выше уже разъяснил вроде как дальше некуда и какая строка должна быть и как она читается: Это я уже и из мануала понял, что если инфопоршня нет, то говорим, а мне надо именно чтобы НПС сам юзнул актора. Ссылка на комментарий
Artos 99 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 (изменено) Ну а при чем тут штатая логика? Штатная схема тебе устанавлявает/определяет условия для разговора, а не командует говорить иль нет. Хочешь чтобы НПС заговорил с актором - ну так и отдай ему соответствующую команду, когда он находится на необходимом для диалога расстоянии и обеспечив возможность диалога штатной логикой. Изменено 18 Марта 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Struck 61 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 (изменено) А какая схема командует говорить или нет?...это я в принципе и хотел узнать, т.к. в ТЧ подходящих примеров я не помню...а поскольку и мануалы 'криво' пишут как ты говоришь, то смотреть надо только по готовым рабочим(!) примерам. Изменено 18 Марта 2012 пользователем Struck Ссылка на комментарий
Artos 99 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 (изменено) Struck, хотя я и коворю, что во многих мануалах имеются и ошибки и др.неточности, но никогда не говорил и не скажу, что их не нужно читать, особенно когда в голове на эту тему пусто! Но читая - нужно работать головою(!), но не долбить ею "стену", беря все огульно за истину. С твоим же подходом "или все или ничего" - так и не наберешь готовых рабочих примеров, да и то, тебе их тоже похоже кто-то должен приподнести на блюдечке. ;-) Что мешает, воспользовавшись ссылками из шапки заглядывать на вики-сайты и читать хотя бы общие материалы и их применять ксвоим текущим задачам? Если бы не банальная лень, то на инсайде давно бы почитал хотя бы вот отсюда: Описание класса game object. Часть V.. вот это: function run_talk_dialog(game_object*) void run_talk_dialog(game_object* pToWho) запускает диалог между актором и объектом pToWho. Тот объект должен наследовать от класса CInventoryOwner. Разговор можно начать только если собеседник находится на расстоянии не больше трёх метров от актора. Если точнее, то можно попытаться вызвать её и на больших расстояниях. Что-то при этом происходит: появляется мышь, отключается движение актора и он начинает смотреть на "собеседника" даже при том, что окна разговора нет. Такое ощущение, что просто безбожно глючит. Проверка допустимого расстояния перед началом остаётся таким образом на совести скриптёра. Расстояние в 3 метра никакими настройками не изменить, похоже вшито прямо в код движка. Другой момент. Данная функция только открывает диалог разговора. Если не делать ничего дополнительно, то непись "разговаривая" пойдёт себе дальше, и как только выйдет за три метра - разговор прервётся. В игре непись удерживается от убегания специальной скриптовой схемой, которая заставляет его стоять на месте, смотреть на актора, может ещё анимации проигрывать, точно не знаю. Параметр need_osoznanie_mode в секции персонажа позволяет избежать ограничения в 3 метра на возможность начать разговор. Однако при этом окно разговора показывается не полностью. Отсутствуют окна с иконками собеседников и окно чата. Есть только нижняя часть - окно выбора варианта ответа или диалога. Фактически, это превращает окно общения в своеобразное диалоговое окно для выбора одного из нескольких вариантов. Это используется в игре для предоставления Меченому выбора - присоединяться к О-Сознанию или нет. В принципе ничто не мешает использовать это как-то иначе. Написано K.D. 17:35, 19 декабря 2011 (UTC) по материалам malandrinus, материалам форума АМК и собственным изысканиям. И в дальнейшем, советую первоначально самостоятельно искать интересующее в сети, и только потом, не найдя или не поняв, спрашивать. И мало у кого осталось желание быть суфлерами и правила форумов говорять о необходимости сначала читать, а потом писать ... Ну а по большому - то и самостоятеьные поиски по кодам и проверки найденного - далеко не самое НЕ интересное в моддинге. Изменено 18 Марта 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Struck 61 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 А, теперь ясно почему у меня управление отключалось, значит надо оставить эту строку в виде use = boolean, и дописать условие на расстояние в метрах и там вызывать уже run_talk_dialog? Тогда последний вопрос чтобы 'погадалками' не заниматься, поддерживает ли meet on_actor_dist_le. Ссылка на комментарий
Artos 99 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 (изменено) Struck, извини, но ... вспоминая диалоги на СП, опять понимаю, что ты предпочитаешь "думать и гадать" в топике, а не подумав и поняв делать иль переспрашивать. Даже читая написанное, ты умудряешься трактовать так, что другой бы и не смог ... Твоя блокировка управления происходила из-за ОШИБКИ значения для 'use' (т.е. из-за self, вместо true/false). А прочитанное тобою из процитированного - относится к отданной скриптом команде на начало разговора, чего у тебя не было(!) и чего следует избегать. Дописывать же "условие на расстояние" нужно НЕ в схему (в ней и нет этого), а для отдачи тобою команды начала диалога из твоего скрипта. И прекрашаю суфлерство, переадресуй свой вопрос о on_actor_dist_le для meet в статьи по логическим схемам. Пока ты сам(!) не начитаешь знаний и не переваришь хотя бы часть их - наш диалог превращен в суфлерство. Изменено 18 Марта 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
ColR_iT 171 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 Artos, а кто сказал, что для параметра use, в схеме meet, допустимы только два параметра!? self прекрасно работает, при всём при этом действительно "принуждает" НПС открыть окно диалога с актором, без помощи игрока. Используется этот случай в чистом ТЧ лишь единожды, а именно в логике объекта mon_stalker (m_osoznanie). Правда лично я бы всё же не стал им злоупотреблять, поскольку при его использовании, в случае, когда актор находится от НПС на дистанции большей нежели возможен диалог, то управление для ГГ попросту отключается, не всё конечно, но сдвинуться с места не представляется возможным (функция level.enable_input() в данном случае, не поможет). Ссылка на комментарий
Struck 61 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 Мои потуги привели к такому вылету: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...g\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:170: C stack overflow Происходит на расстоянии ~3-ёх метров как раз Функция: function run_gopnik_dlg() local obj = alife():story_object(10003).id if obj then db.actor:run_talk_dialog(obj) end end Строчка в логике: use = %=run_gopnik_dlg% false, true Ссылка на комментарий
ColR_iT 171 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 (изменено) Struck, если тебе нужно смоделировать ситуацию, где НПС должен начать разговор, то можно воспользоваться значением self, для параметра use, но только очень осторожно! Последствия тебе уже известны, стоишь на месте и можешь только крутиться. Так вот... Я использовал для теста, вот такую логику: [logic] active = walker@wolf_stande [walker@wolf_stande] path_walk = wolf_walk path_look = wolf_look meet = meet@wolf [meet@wolf] meet_state = 5|hands_up meet_state_wpn = 5|hands_up victim = 20|actor victim_wpn = 20|actor use = {+info_test_self_use}self use_wpn = false И действительно при наличии инфопорции info_test_self_use, Волк (опыт проходил на нём) начинал разговор первым. НО! Выдать эту инфопорцию необходимо в непосредственной близости, с оппонентом (методы разные: проверяй дистанцию, ставь перед ним рестриктор и т.д.), а уже в конце диалога удаляй данный инфопоршень при помощи тега: <disable_info>info_test_self_use</disable_info> И всё будет хорошо! Изменено 18 Марта 2012 пользователем ColR_iT Ссылка на комментарий
Struck 61 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 (изменено) ColR_iT, все ясно, спасибо, инфопоршень можно и через remark выдать в принципе. "Спасибо" пишем в личку. А метод выдачи инфопорции выбирать тебе, главное, чтобы не далеко от оппонента. ColR_iT Изменено 18 Марта 2012 пользователем ColR_iT Ссылка на комментарий
Artos 99 Опубликовано 18 Марта 2012 Поделиться Опубликовано 18 Марта 2012 (изменено) ColR_iT: а кто сказал, что для параметра use, в схеме meet, допустимы только два параметра!? Не ожидал от тебя подобного вопроса. Давай попробуем разобраться, может и я где-то ошибаюсь ... (предваряя: о значениях true/false было сказано именнно в контексте вопроса, а не для всего и вся) 1. Как схема читает свои параметры? - смотрим в xr_meet.script: st.[b]use[/b] = xr_logic.parse_condlist(npc, section, "[b]use[/b]", utils.cfg_get_string(ini, section, "[b]use[/b]", npc, false, "", def.use)) - т.е. вначале читается как стринг и он передается в xr_logic.parse_condlist. 2. Что нам выдаст parse_condlist? Он выдаст таблицу, в которой могут быть условные инфопоршни, секции для переключения и т.п. Т.е. все то, что может применяться для переключения схем. 3. Смотрим в схеме, где же применяется полученный параметр st.use? Да всего в одном месте, в function cannot_talk_by_weapon(npc) ... которая вернет булево значение, разрешающее разговор иль нет. В этой функции st.use отправляется в xr_logic.pick_section_from_condlist, откуда приходит только булево значение. ... Т.о. мне совершенно не хочется искать конкретное место в parse_condlist или pick_section_from_condlist, которрые как-то по странному прочитают строчное 'self' и превратят во внутреннюю ссылку на собственно класс схемы(???), но в любом случае это НЕ может привести ни к чему чтобы напоминало принудительное открытие диалога неписем. Могут быть вариации и вместо булева значения функция иль подобное, но в конеччном счете все сведется к "возможен диалог или нет". И, плз, не будь голословным и подтверди свои слова: ColR_iT: self прекрасно работает кодом или конкретным примером. Изменено 18 Марта 2012 пользователем ColR_iT "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти