ColR_iT 171 Опубликовано 3 Февраля 2012 Поделиться Опубликовано 3 Февраля 2012 (изменено) Сообщение от модератора ColR_iT Artos, ты немного заблуждаешься на счёт того, что "любому, кто ковырялся хотя бы в кофигах, известно, что name и descriotion, задаваемые в каждой секции предметов - читаются движком". Не стоит каким либо образом обобщать впечатления о людях - это не есть хорошо. Твой ответ в посте #3740 был, скажем так, резок. *Shoker*, вспыльчивость - черта характера, но зачастую проявляется неуместно. Подобные ответы (пост #3743), пожалуйста, в личку. И дабы не начинать споры ни о чём, пресечём их на корню. Artos и *Shoker* - "давайте жить дружно!"© Благодарю за понимание. Изменено 3 Февраля 2012 пользователем ColR_iT Ссылка на комментарий
SkyLoader 53 Опубликовано 3 Февраля 2012 Поделиться Опубликовано 3 Февраля 2012 (изменено) *Shoker*, а как же get_wpn_shared_str()? Если malandrinus ответит, как заставить этот метод работать, то все получится. Изменено 3 Февраля 2012 пользователем SkyLoader Ссылка на комментарий
*Shoker* 322 Опубликовано 3 Февраля 2012 Поделиться Опубликовано 3 Февраля 2012 (изменено) Мне всего то надо помечать определённые предметы каким либо образом, чтобы игрок знал что этот предмет отличается от другого такого же. Для этого хотел как вариант дописывать в имя предмета какой то знак, имя соответственно везде отображалось бы по другому, и это не тока к оружию относится. Вариант с правкой движка этого не стоит, тем более я работаю под ЧН. Тогда уж попробую через нет-пакеты дописывать предмету апгрейд с нужным мне текстом, всё лучше чем ничего. У меня правда есть перехватчик от alpet-а но я не разобрался пока как там работать с памятью. Изменено 3 Февраля 2012 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
KitkaT.Net 2 Опубликовано 3 Февраля 2012 Поделиться Опубликовано 3 Февраля 2012 (изменено) Решил начать разбираться со сложными смарт-террейнами (раньше делал только general_lager). Ловлю постоянный вылет на подходе к смарту (видимо как только попадает он в онлайн): FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...:\games\gsc\s.t.a.l.k.e.r\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) stack trace: Что прописано в gulag_escape.ltx: ;--------------------------------- ;-------- Новый лагерь ---------- ;--------------------------------- [logic@esc_new_lager_npc1_walk] active = walker@esc_new_lager_npc1 [walker@esc_new_lager_npc1] path_walk = npc1_walk [logic@esc_new_lager_npc1_kamp1] active = kamp@esc_new_lager_kamp1 [kamp@esc_new_lager_kamp1] center_point = npc1_kamp path_walk = camp_center_task soundgroup = esc_new_lager meet = meet@lager [logic@esc_new_lager_npc2_guard] active = guard@esc_new_lager_npc2 [guard@esc_new_lager_npc2] path_walk = npc2_walk path_look = npc2_look [logic@esc_new_lager_npc2_kamp1] active = kamp@esc_new_lager_kamp1 Что прописано в gulag_escape.script: if type == "esc_new_lager" then t = {section = "logic@esc_new_lager_npc1_walk", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = ""} table.insert(sj, t) t = {section = "logic@esc_new_lager_npc1_kamp1", idle = 0, prior = 5, state = {1}, in_rest = "", out_rest = ""} table.insert(sj, t) t = {section = "logic@esc_new_lager_npc2_guard", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = ""} table.insert(sj, t) t = {section = "logic@esc_new_lager_npc2_kamp1", idle = 0, prior = 5, state = {1}, in_rest = "", out_rest = ""} table.insert(sj, t) end Чую накосячил где-то в распределении работ) Помогите новичку пожалуйста. p.s. - все пути которые нужны, в way_escape присутствуют. Изменено 3 Февраля 2012 пользователем KitkaT.Net Ничто не вечно под луной. Ссылка на комментарий
ColR_iT 171 Опубликовано 3 Февраля 2012 Поделиться Опубликовано 3 Февраля 2012 (изменено) KitkaT.Net, начнём с того, что ты не привёл некоторые свои правки, а именно: - как ты распределяешь работы (у тебя два состояния state), делается это в том же gulag_escape.script в функции load_states; - пути как раз таки тоже могут вызвать подобный вылет, так что их тоже приведи. А если на вскидку, то уже могу указать на некоторые не точности. В секции kamp@esc_new_lager_kamp1, ты не правильно указал точку path_walk, она должна состоять из имени center_point, т.е. npc1_kamp и окончания _task, в итоге у тебя должно получится npc1_kamp_task. Схемы guard, лично мне в чистом ТЧ 1.0006 найти не удалось, да и насколько мне известно таковой и нет, разве что это чья-то наработка, в оригинале есть zoneguard, возможно ты очепятался... Изменено 3 Февраля 2012 пользователем ColR_iT Ссылка на комментарий
KitkaT.Net 2 Опубликовано 3 Февраля 2012 Поделиться Опубликовано 3 Февраля 2012 (изменено) Так, вот работы: if type == "esc_new_lager" then return function(gulag) if not db.actor then return gulag.state end if level.get_time_hours() >= 5 and level.get_time_hours() <= 22 then return 0 else return 1 end end end [esc_new_lager_npc1_kamp] points = p0 p0:name = wp00 p0:position = -21.459390640259,2.4766421318054,72.145248413086 p0:game_vertex_id = 87 p0:level_vertex_id = 255507 [esc_new_lager_npc1_look] points = p0 p0:name = wp00|t=10000 p0:flags = 0x1 p0:position = 3.7962260246277,2.4894599914551,71.421409606934 p0:game_vertex_id = 89 p0:level_vertex_id = 280207 [esc_new_lager_npc1_walk] points = p0,p1,p2 p0:name = wp00 p0:position = 2.4627683162689,2.4790153503418,63.453559875488 p0:game_vertex_id = 89 p0:level_vertex_id = 279500 p0:links = p1(1) p1:name = wp01 p1:position = -11.326374053955,2.4797053337097,66.62703704834 p1:game_vertex_id = 88 p1:level_vertex_id = 265797 p1:links = p2(1) p2:name = wp02 p2:flags = 0x1 p2:position = -9.2513465881348,2.5201017856598,70.700996398926 p2:game_vertex_id = 88 p2:level_vertex_id = 267836 p2:links = p0(1) [esc_new_lager_npc2_look] points = p0 p0:name = wp00 p0:flags = 0x3 p0:position = 15.449903488159,2.4502758979797,62.299892425537 p0:game_vertex_id = 89 p0:level_vertex_id = 293062 [esc_new_lager_npc2_walk] points = p0 p0:name = wp00 p0:flags = 0x3 p0:position = 3.8680720329285,2.4798147678375,61.760292053223 p0:game_vertex_id = 89 p0:level_vertex_id = 280908 [esc_new_lager_npc1_kamp_task] points = p0 p0:name = wp00 p0:position = -21.459390640259,2.4766421318054,72.145248413086 p0:game_vertex_id = 87 p0:level_vertex_id = 255510 йеес!!)) Все заработало, спасибо большое Добавлено через 23 мин.: Назрел еще один вопрос На викисталкере есть такая функция: function fill_tbl(section, idle, prior, states, squad, group, in_rest, out_rest, online, gulag_name) local tbl = {} tbl.section = "logic@" .. gulag_name .. "_" .. section tbl.idle = idle tbl.prior = prior tbl.state = {} for index = 1, #states do table.insert(tbl.state, states[index]) end tbl.squad = squad tbl.group = group tbl.in_rest = in_rest tbl.out_rest = out_rest tbl.online = online return tbl end Куда ее нужно вставить чтобы она заработала ? В скрипты вроде "gulag_escape" ? и еще один вдогонку: Почему сталкеры телепортируются прямо в смарт-террейн ? Я наивно полагал что они будут идти через Зону, а они бац и появились. Ссылку на статью, пожалуйста! ColR_iT Изменено 3 Февраля 2012 пользователем ColR_iT Ничто не вечно под луной. Ссылка на комментарий
ColR_iT 171 Опубликовано 3 Февраля 2012 Поделиться Опубликовано 3 Февраля 2012 KitkaT.Net, ссылку на статью скинь. И НПС в гулаг не телепортируются. Где заспавнил там и появились, а если НПС на Свалке вписать гулаг на Кордоне, то он ножками туда пойдёт, в этом можно убедиться, если поставить на него метку. Ссылка на комментарий
KitkaT.Net 2 Опубликовано 3 Февраля 2012 Поделиться Опубликовано 3 Февраля 2012 Йа ссылко Странно... смарт на на кордоне, включил отображение всех нпс, видно что идут со свалки и бара. Но после того как они оказываются на кордоне и дойдут до моста,вуаля - все уже на пороге Ладно, это в принципе неважно ) Ничто не вечно под луной. Ссылка на комментарий
Nazgool 250 Опубликовано 3 Февраля 2012 Поделиться Опубликовано 3 Февраля 2012 (изменено) На викисталкере есть такая функция: ...бла-бла Куда ее нужно вставить чтобы она заработала ? По-моему ерунда полная. В аргументах этой функции нужно задавать практически всё, что и при существующей форме заполнения. Но... велика вероятность ошибки. Перепутать и забыть что-то очень легко. Например обязательное заполнение аргументов значениями? А если потом нужно будет найти откуда ноги растут? У разрабов по крайней мере всё хоть и просто, но понятно. Нужно что-то задать - присваиваешь по ключу и все дела. Изменено 3 Февраля 2012 пользователем Gun12 Ссылка на комментарий
Ololosha_Troll 0 Опубликовано 3 Февраля 2012 Поделиться Опубликовано 3 Февраля 2012 (изменено) Ребят,напишите пожалуйста функцию,которая при разговоре с НПС отдает какой либо предмет НПС, с которым разговаривате ГГ Найди ситуацию в игре, когда происходит подобное действие и посмотри как это реализовано. Рассмотри, например, ситуацию с флешкой, которую ты отдаешь Сидору. ColR_iT Добавлено через 41 мин.: Посмотрите,я правильно записал функцию : dialogs_escape <phrase id="7"> <text>stepanov_zheka_7</text> <action>den_r.dat_item</action> <next>8</next> </phrase> den_r.script function dat_item(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "zhizni", 100500, "in") end Она почему то не срабатывает в игре..Диалог есть,а выдачи предмета "zhizni" нету( Во-первых: теги никто не отменял. Во-вторых: Где ты такую функцию взял? Ты неправильно передаёшь предмет, посмотри по аналогии как нужно правильно это сделать. ColR_iT Добавлено через 16 мин.: Это я с урока диалогов взял! И на выдачу ПМ из этого урока все сработало... function dat_item(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "wpn_pm", "in") end И правильно сделало, что сработало. А теперь посмотри, что в статье и что у тебя лишнее. ColR_iT Добавлено через 34 мин.: 100500 ? количество большое? Изменено 3 Февраля 2012 пользователем ColR_iT Ссылка на комментарий
*Shoker* 322 Опубликовано 3 Февраля 2012 Поделиться Опубликовано 3 Февраля 2012 Ты пишешь 100500 там где должна стоят "in" Думаю что 100500 должна стоять после "in", и то это тока в ЗП по моему работает (ЗЫ - 100500 предметов по моему это слишком) Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Ololosha_Troll 0 Опубликовано 4 Февраля 2012 Поделиться Опубликовано 4 Февраля 2012 Ну и как тогда должна выглядеть функция,что бы ГГ выдавался не один предмет,а несколько? Ссылка на комментарий
*Shoker* 322 Опубликовано 4 Февраля 2012 Поделиться Опубликовано 4 Февраля 2012 Поменяй местами "in" и 100500 В ЗП вроде сработает. Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Ololosha_Troll 0 Опубликовано 4 Февраля 2012 Поделиться Опубликовано 4 Февраля 2012 я делаю на ТЧ) Ссылка на комментарий
Real Wolf 34 Опубликовано 4 Февраля 2012 Поделиться Опубликовано 4 Февраля 2012 (изменено) Возможно ли в ТЧ удалить\сделать невидимым болт, который уже лежит на земле? Если возможно, то как? P. S. Болт через alife():release не удаляется. Artos, могу Но ещё давно мне товарищ Charsi сказал, что у болтов нету серверной части и их удалить нельзя, в чём я и убедился. Выбрасывать и телепортировать не подходит, так как болт не в инвентаре. Изменено 4 Февраля 2012 пользователем Real Wolf Ссылка на комментарий
Artos 99 Опубликовано 4 Февраля 2012 Поделиться Опубликовано 4 Февраля 2012 (изменено) Ololosha_Troll: Ну и как тогда должна выглядеть функция,что бы ГГ выдавался не один предмет,а несколько? Ты сам хочешь сделать и получить желаемое или ждешь когда тебе предоставят готовенькое? Если в ТЧ функция передачи предмета (dialogs.relocate_item_sectio) срабатывает однократно, т.е. передает один предмет заданной секции, то в ЧН и ЗП разработчики игры добавили еще один аргумент (колическтво передаваемых - amount) и функцией можно сразу несколкько передавать. Возми и взгляни как это сделано и используй ... чем чат тут разводить. Добавлено через 58 мин.: Real Wolf, а не мог бы ты показать как пытаешься удалить через alife():release? ;-) Добавлено через 195 мин.: P.S. Real Wolf, нy и что мешает показать ... что без проверки получения серверного объекта удаление Несуществующего - бессмыслица! Тем более, тебе уже сказали о невозможности получить доступ к серверному объекту болта, так что же пытаться его релизить??? 1. Болт, которым бросается актор/непись - совершенно иной объект, чем тот, который у него в руке/слоте. Исходный болт всегда остается "на месте". 2. Соответственно и ID у этих "выкинутых" болтов совершенно иные. Если озаботился зачем-то удалением таких болтов - то и отлавливай именно выкинутые болты и трансфери их куда-нибудь в "ящик", в котором их и не видно и откуда они сами будут исчезать. 3. Вообще-то "серверная часть" у болтов есть, но ... получить к ней доступ через alife():object(ID) к сожалению невозможно ... Изменено 4 Февраля 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Slot 0 Опубликовано 5 Февраля 2012 Поделиться Опубликовано 5 Февраля 2012 (изменено) Ребят помогите хочу научится делать музыку при диалога после получения задания.Вроде все сделал так, но музыка не проигрывается.Для конкретного примера взял волка. 1. В STALKER\gamedata\sounds\characters_voice\scenario\wolf засунул трек wolf.ogg (параметры трека нормальные) 2. stable_dialogs_escape.xml нашёл строку после которой даются вещи и соответвено квест <string id="escape_lager_volk_talk_111111111"> <text>Я попробую.</text> </string> И в dialogs_escape.xml в строчке <text>escape_lager_volk_talk_111111111</text> <give_info>esc_kill_bandits_quest_have</give_info> <next>1111111111</next> </phrase> 3.После <give_info>esc_kill_bandits_quest_have</give_info> вставил: <action>soundtrack.wolfsnd</action> и получилось: <text>escape_lager_volk_talk_111111111</text> <give_info>esc_kill_bandits_quest_have</give_info> <action>soundtrack.wolfsnd</action> <next>1111111111</next> </phrase> 4. В папке scripts создал файл soundtrack.script и прописал в нем --------Copyright DEXXX-------- snd_obj = {} snd_obj = xr_sound.get_safe_sound_object([[soundtrack\escape_theme]]) function save_var(var, value) xr_logic.pstor_store(db.actor, var, value) end function get_var(var, value) return xr_logic.pstor_retrieve(db.actor, var, value) end function s_stop() if snd_obj:playing()==true then snd_obj:stop() end end function s_play(path) s_stop() snd_obj = xr_sound.get_safe_sound_object(path) snd_obj:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d) end function wolfsnd() s_play([[characters_voice\scenario\wolf\wolf]]) end Помогите пожалуйста.Где я мог допустить ошибку? Сообщение от модератора ColR_iT А мы не только не в ту тему пишем, мы ещё и вопросы дублируем... Прочитай, пожалуйста, правила на досуге. Изменено 5 Февраля 2012 пользователем ColR_iT Ссылка на комментарий
Арбитр 0 Опубликовано 5 Февраля 2012 Поделиться Опубликовано 5 Февраля 2012 (изменено) Подскажите функцию для использования антирада актером "Скушать" антирад можно функцией eat(). В конечном результате должно получится так: db.actor:eat(db.actor:object("antirad")) ColR_iT Изменено 5 Февраля 2012 пользователем ColR_iT Ссылка на комментарий
KitkaT.Net 2 Опубликовано 5 Февраля 2012 Поделиться Опубликовано 5 Февраля 2012 Пытаюсь заселить Скадовск, на перенесенной в ТЧ мапе. Можно ли реализовать открывание двери при приближении сталкеров к ней ? Насколько я помню, на Янтаре перед Кругловым дверь открывалась сама. Я уже понял что надо поставить рестрикторы перед дверью и за дверью, а вот что дальше ? Выдавать инфопоршн, на присутствие сталкера (как?), а в логике двери сделать проверку ? Ничто не вечно под луной. Ссылка на комментарий
ColR_iT 171 Опубликовано 5 Февраля 2012 Поделиться Опубликовано 5 Февраля 2012 (изменено) Кстати, хороший вопрос... Как в ТЧ отследить вхождение в рестриктор НПС? Не какого-то конкретного, а любого. Изменено 5 Февраля 2012 пользователем ColR_iT 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти