ВЕРЕС14
Видимо ты вставил в игру только 1 канал, сделай так:
название файла_r.ogg
назвавние файла_l.ogg 2 одинаковых звуковых файла но с разными маркерами, левый и правый соответственно!
Хай всем! Ребят, такой вопрос, один мой знакомый интересуется что лучше для усовершенствования модели оружия, Maya или всё таки 3D Max, а то я просто в этом "Сиди дурак я сам открою" и не знаю что ему ответить, если кто знает отпишитесь плииз.
Инфопоршн – условный флажок, для отметки событий. Имеет два состояния – «выдан» и «не
выдан».
Кондлист – поле для проверки состояний инфопоршнов и возвращаемых функциями значений:
{+info =func} – проверка условий
%+info =func% – выдача инфопоршна, запуск функции
В кондлистах можно делать проверки с помощью функций:
on_info = {=func} – проверка, что функция func возвратила true on_info = {!func} – проверка, что функция func возвратила false
on_info = %=func% – запуск функции
От себя добавлю\напомню, то что выделено синим, касается функций находящихся в xr.conditions.scripts
true - условие (значение) верно
false - условие (значение) ложно
Цитата#losiara : ВЕРЕС14
Видимо ты вставил в игру только 1 канал, сделай так:
название файла_r.ogg
назвавние файла_l.ogg 2 одинаковых звуковых файла но с разными маркерами, левый и правый соответственно!
Я всё так и делал. Правда сделал копию одного файла, и просто поставил каждому значение "r" и "l". Т.е. по сути файл один, только я задал им разные каналы...
ВЕРЕС14
Открой этот музыкальный файл через Nero WaveEditor.
Сохрани его выбрав формат Wave и в опциях укажи Количество каналов: Mono
Потом открой этот Wave и сохрани его в формате Ogg. С параметром 44.1 KHz
Да и качество звука выбери.
Добрый вечер!
Возник такой вопрос, секция в логике рестриктора:
[sr_tip]
name = tips_esc_trader_about_pda ; название новости, выводится на худ
type = tips
showtime = 10000
single = true
Вопрос, где находятся эти новости и как можно добавить свою!!!
Вот такой вот вопрос есть:
Как сделать чтобы все кто находится в смарт террейне esc_loxi побежали по определённому пути way_p_1, way_p_2, way_p_5 (не столь важно) и потом атаковали всех кто находится в смарт террейне esc_loxi_qest?
Сообщение было успешно отредактировано Hakim (12-01-2012 19:18 GMT3 часа, назад)
AristHakim
Вообще не сложно!!! Сделать их врагами или пусть будут изначально врагами например киллеры и нейтралы и пусть бегут по прописанным вами точкам валкерами, а при приближении к лагерю ворогов станут кемперами и начнут атаку. Защитников лагеря тоже расставить соответствующе, снайперов им добавить, флажки в way... выставить для согласованности и т. д. Только самая муторная часть работы это координаты снимать для каждого юнита... Если я не ошибаюсь это и было реализовано в Зове монолита на Кордоне, а может в каком другом моде, не помню точно уже...
А логика индивидуальная будет или гулаговская да какая разница???
К вопросу о сценках:
Функция - is_alive_one.
Проверяет что хотя бы один из НПС жив!!!
Если задать так: {!is_alive_one} - то можно сделать проверку на уничтожение лагеря например, но правда неписи должны быть все номерные...
Сообщение было успешно отредактировано losiara (12-01-2012 21:21 GMT3 часа, назад)
Arist Таким же способом тем, кто в гулаге выдаёшь поршень. В way_ укажи им путь к вражескому костру к примеру. После удачной атаки сядут к костру. Так же можно использовать поршень выполненого задания, чтобы вернулись обратно. Либо после выдачи поршня сменить им гулаг, как у того же Петрухи.
Arist
Хоть гулугами, хоть отдельными неписями, какая разница, волокиты одинаково, поверь мне, все равно логику и пути прописывать...
Как инфопоршни пропишешь, так и будет работать, в чем преимущество смарт террейна перед отдельным НПС с логикой? В том, что в смарт террейне ты не думаешь, а кто же и чем будет заниматься, они попадают под гулаг и принимаются на работу, в зависимости от прописанной тобою логики, а в остальном в принципе без разницы...
добавлено спустя 1 час 5 минут
dimak
Привет Андрюха!!!
Сделал логику на рестриктор, рабочая, но мне кажется не очень оптимальная...
По замыслу, в начале игры новички Меченного в лагерь не пускают, до тех пор пока он не выполнит их задания разобраться с монстрами. "Не пускание" это осуществляется через рестриктор, ну а как еще? Вобщем, что бы был вариант выбора и возврата Меченным хорошего отношения сталкеров, сообразил следующим образом:
esc_trader_tutorial_chosen - инфопоршень из оригинальной игры
esc_propusk_done - выдается при сдаче квеста
esc_propusk_fight - отдельно прописал для связи работы функций в логике =kvest_dialog.enemy_gruppirovka - функция обижающая нейтралов
=kvest_dialog.friendactor_gruppirovka - функция примиряющая нейтралов
Как думаешь?
Сообщение было успешно отредактировано losiara (13-01-2012 02:11 GMT3 часа, назад)
Нету принципиальной разницы между on_game_timer и on_timer, отличия лишь действительно в том, что первый считает сек, а второй мсек, причем ограничений как таковых - нет.
В оригинале on_timer и 300 сек считал в рестрикторе на АЭС.
По поводу атаки гулага на гулаг...
Что вас так ввело в заблуждение? В оригинальной игре примеров предостаточно: долг на Арм складах, наемники на Кордоне, вот возьмем к примеру их.
Для них предусмотрен смарттерейн esc_killers, местоположение его близ вагончика, где был раненый Шустрый. Состояния описаны в файле gulag_escape.script. Возьмем для примера состояния предусмотренное для лидера, поскольку для остальных оно ничем не отличается, мы тем самым укоротим приведенный код для читабельности:
Состояния смарта для лидера
Код:
if type == "esc_killers" then
t = { section = "logic@esc_killer_leader_raid",
idle = 0,
prior = 10, state = {4},
in_rest = "", out_rest = "",
online = true,
predicate = function(obj_info)
return obj_info.profile_name == "esc_killer_master"
end
}
t = { section = "logic@esc_killer_kamp_offline",
idle = 0,
prior = 5, state = {0},
online = false,
in_rest = "", out_rest = ""
}
end
Как видно, здесь пять состояний: state = {0/1/2/3/4/5}, для каждого своя логика. Какое именно состояние должен использовать гулаг определенно в функции load_states в этом же файле, а именно:
Определение состояний для гулага esc_killer
Код:
if type == "esc_killers" then
return function(gulag)
local actor = db.actor
if not actor then
return gulag.state
end
if not has_alife_info("escape_lager_spawn_killers") then
return 0 -- offline
elseif has_alife_info("escape_lager_spawn_killers") and not has_alife_info("esc_killers_raid") then
return 3 -- wait
elseif has_alife_info("esc_killers_raid") and not has_alife_info("esc_open_killer_fire") then -- это условие на переход в состояние атаки на лагерь
return 4 -- raid
elseif has_alife_info("esc_open_killer_fire") and xr_gulag.getGulagPopulationComed("esc_lager") > 0 then
return 1 -- fight
elseif has_alife_info("esc_open_killer_fire") and xr_gulag.getGulagPopulationComed("esc_lager") <= 0 then
return 2 -- kamp
end
return gulag.state
end
end
таким образом, здесь в зависимости от выполнения условий (наличие/отсутствие инфопоршней и возврата значения одной функции) и определяется, что будут делать наемники.
Атака на лагерь новичков происходит благодаря состоянию 4, т.е. логики esc_killer_leader_raid на которую он (лидер-НПС) перейдет если ГГ будет выдан инфопоршень esc_killers_raid и не будет в наличии инфопоршня esc_open_killer_fire (пометил эту строку комментарием).
После того как гулаг перейдет в состояние 4, т.е. будет использовать для своих "жителей" логику logic@esc_killer_leader_raid, все НПС смарта ринуться по пути указанном в данной секции логики, посмотреть её можно в файле gulag_escape.ltx, в папке config\misc, какая же именно логика прописано там для этого состояния? Вот такая:
Логика лидера наемников во время атаки на лагерь новичков
здесь всё очень просто... активная схема - walker, её основная задача - доставить наёмников от вагончика к логерю. Для этой схемы: path_walk - путь движения raid1_walk в файле way_l01_escape.ltx распакованного all.spawn. path_look - куда смотрим во время движения raid1_look в файле way_l01_escape.ltx распакованного all.spawn. combat_ignore_cond - не начинаем бой, пока будет отсутствовать инфопоршень esc_open_killer_fire. def_state_moving - состояние перемещения patrol. team - "команда" killers, нужно для того, чтобы на хит реагировали все, а не по отдельности (если не ошибаюсь). on_signal - когда получим сигнал fires, перейдем на следующую схему remark@esc_killer_leader_raid и выполним функцию esc_direction_fire из файла xr_effects.script. Сигнал мы получим, когда все добегут до последней точки своего пути, в нашем случае это путь raid1_walk, в последней точки пути way стоит синхронизация с точкой look, вот как раз в точке взгляда и стоит выдача этого сигнала. Функция esc_direction_fire ничего особенного из себя не представляет, она пригодится, если на это время Фанат, каким-то чудным образом, окажется неживым.
Далее схема remark@esc_killer_leader_raid, тут также ничего сложного: snd - звук который будет "играть" лидер, здесь - esc_lager_killer. anim - анимация будет guard. on_timer - по истечении 15000 милисекунд (15 секунд) дадим инфопоршень esc_open_lager_fire, он нужен для того, чтобы новички в лагере перестали игнорировать бой, поскольку у них прописано условие combat_ignore_cond = {-esc_open_lager_fire}, таким образом новички атакуют, кто-то из наёмников получает хит, срабатывает схема on_hit = hit@killers, где выдаётся инфопоршень esc_open_killer_fire, который снимает ограничение с наёмников и начинается битва, затем в бой подключается игрок и победителями с этой резни выходят сталкеры.
Вернемся чуть назад, к точкам путей raid1_walk...
Если взглянуть на них:
то можно увидеть, что их аж ... 9, но используются всего 8, последняя точка p8 не задействована, на неё нет перехода, ну и ладно: не нужна, так не нужна. Можно, так же обратить внимание на точку look увидев, что в ней действительно выдается сигнал fires.
На что действительно стОит обратить внимание, так это на координаты двух точек: начальной p0, от куда происходит движение, и окончательной p7, куда в итоге должны прийти. Так вот координаты для них действительно соответствуют местам вагончика и костра, вокруг которого сидят новички.
А поскольку наёмники и сталкеры враждебные между собой группировки, то после выполнения всех условий, описанных выше, и происходит атака одного гулага на другой.
Вот собственно и весь секрет!
P.S. если что-то не понятно, могу уточнить/объяснить. :)
ColR_iT
Спасибо, тут всё ясно.
А как мне сделать следующее:
Нужна логика для спайс рестриктора: esc_bandit_info_na_space_restrictor
Проверка если выдан инфопоршень ну скажем esc_na_bandits
То при входе в этот спайс рестриктор выдавался инфопоршень esc_na_bandits_1 и срабатывала скриптовая функция лежащая в каком либо скриптовом файле.
При выходе из зоны спайс рестриктора.
Ставилась проверка если выдан инфопоршень esc_na_bandits_1 то срабатывает скриптовая функция лежащая в каком либо скриптовом файле.
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.