Svoboда 3 Опубликовано 23 Апреля 2009 Поделиться Опубликовано 23 Апреля 2009 Тема для обсуждения скриптов всего и всех в серии игр STALKER. Задавая вопрос (!): 1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего; 2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме); 3. Изучите информацию которая может вам помочь: Stalkerin. Там есть много хороших статей касательно данной темы.Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения. Справочное руководство по языку Lua 5.1https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ruСправочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены. Логика со вступлением и четырьмя частями: ВступлениеЧасть перваяЧасть втораяЧасть третьяЧасть четвертая. Smart_terrain (в простонароде - гулаг)Интересный способ настроики логики для гулаговСкриптовая часть игровой логики 4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос; 5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе; 6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода; 7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины. 8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ. 9. И помните: «Правильно заданный вопрос – половина ответа». Какие вопросы следует задавать, а какие нет... Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу. Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Где находится та или иная функция? Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;-- Как сделать что-то/то-то? С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов? В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос. И последнее: очень рекомендовано к прочтению Правила форума 1 2 Ссылка на комментарий
Vano_Santuri 33 Опубликовано 1 Ноября 2009 Поделиться Опубликовано 1 Ноября 2009 А родной нет? без амкшного колбэка? Что-то кончается, что-то начинается... Ссылка на комментарий
GrozoMurr 0 Опубликовано 2 Ноября 2009 Поделиться Опубликовано 2 Ноября 2009 люди, у меня вопросик: какой файл отвечает за скриптовый респавн чуваков в определлёном смарт-терре? Добавлено через 6 мин.: как сделать напор сквадов определённой группировки? я как ни бился, больше двух десятков (где-то так) сквадов так и незареспаунилось. и ещё большинство сквадов этой группировки (монолита) засела на военных складах и в рыжем лесу. (поясню, делаю мод, в котором монолитовцы разбивают барьер и прутся дальше). сквады других группировок серьёзненько вытесняют их. Добавлено через 7 мин.: sim_board, se_respawn я уже трогал, о faction_monolith даже говорить не буду. Добавлено через 23 мин.: XMK, Не сможешь объяснить, как правильно делать смарт-тирайны? засилил ЧАЭС монолитовцами, монстрами и аномалиями с артами. Но вот респауна не наблюдается полазил в етом фалике faction_monolith.ltx и обнаружил , что респаун на лиманске и ЧЧАЭС отсутствует, Лиманску сделал респаун, там были смарт-терайны, там я прописал им респаун, все работает, а вот на ЧАЭС напроч отсутствуют какие либо смарт-тирайны, попытался сделать, не получмлось, там всякие ртристоры и прочие, каки-то дирректорие, как там все определять и сложить в одну кучу , чтоб все работало, если это очень сложно, то можно ли сделать так, чтоб респауненые монолитовцы из Лиманска бежали на ЧАЭС? поинты я пропишу, и логику тоже, но как прикрепить логику к новым респауненым НПС? наверное ты забыл записать новые смарт-террейны в какой нить файлик. с новыми вещами та же фигня Например: создаю новую вещичку, а потом оказывается, что не записал в конфиг \ миск \ айтем. хотя до ТАКОГО торможения не доходило. Ссылка на комментарий
Гость max_max_08 Опубликовано 3 Ноября 2009 Поделиться Опубликовано 3 Ноября 2009 (изменено) Аркава, мож я и туплю, но как заспавнит несколько одинаковых нпс с одним файлом логики, типа указать кол-во нпс которые появятся в одной точке и с одной логикой? я имел ввиду имеем такую функцию function spawn_bandit_taynik() local obj=alife():create("esc_bandit_respawn_2",vector():set(201.744,-3.504,-6.146),497872,137) local params=amk.read_stalker_params(obj) params.custom="[logic]\ncfg = scripts\\esc_bandit.ltx" amk.write_stalker_params(params,obj) end я думал может можно как-то указать кол-во спавнящихся нпс. Но все свелось к банальному повтору запуска функции <info_portion id="info_wolf_taynik_pda_have"> <action>new_spawn.spawn_bandit_taynik</action> <action>new_spawn.spawn_bandit_taynik_2</action> <action>new_spawn.spawn_bandit_taynik_3</action> <action>new_spawn.spawn_bandit_taynik_4</action> <action>new_spawn.spawn_bandit_taynik</action> <action>new_spawn.spawn_bandit_taynik_2</action> <action>new_spawn.spawn_bandit_taynik_3</action> <action>new_spawn.spawn_bandit_taynik_4</action> <action>new_spawn.spawn_bandit_taynik</action> <action>new_spawn.spawn_bandit_taynik_2</action> <action>new_spawn.spawn_bandit_taynik_3</action> <action>new_spawn.spawn_bandit_taynik_4</action> <action>new_spawn.bandit_taynik_sms</action> </info_portion> Изменено 3 Ноября 2009 пользователем max_max_08 Ссылка на комментарий
Struck 61 Опубликовано 3 Ноября 2009 Поделиться Опубликовано 3 Ноября 2009 max_max_08 немного непонял что ты хочешь, но помоему надо просто спокойно спавнить разных нпс где надо и писать путь к одной и той же логике Ссылка на комментарий
arkawa 0 Опубликовано 3 Ноября 2009 Поделиться Опубликовано 3 Ноября 2009 (изменено) max_max_08, function spawn_bandit_taynik_2() alife():create("esc_bandit_respawn_2",vector():set(-8.5270013809204,4.1882252693176,-9.1125249862671),1773,1166) alife():create("esc_bandit_respawn_2",vector():set(6.5510320663452,4.1847829818726,-1.6257754564285),3639,1116) alife():create("esc_bandit_respawn_2",vector():set(6.7271695137024,4.3814949989319,-8.546332359314),3734,1114) alife():create("esc_bandit_respawn_2",vector():set(-2.3313817977905,-10.817274093628,5.9066548347473),2424,1143) alife():create("esc_bandit_respawn_2",vector():set(12.377973556519,-10.81757068634,-4.0301742553711),4634,1135) alife():create("esc_bandit_respawn_2",vector():set(-12.323211669922,-10.816401481628,-4.2045984268188),1404,1150) local params=amk.read_stalker_params(obj) params.custom="[logic]\ncfg = scripts\\esc_bandit.ltx" amk.write_stalker_params(params,obj) на счёт этого не уверен, что у всех будет одинаковая логика, но можно попробовать end вызвав эту функцию 1 раз получишь спавн 6 тел - близнецов, т.е.: <action>new_spawn.spawn_bandit_taynik_2</action>, а вообще напиши подробнее что ты хочешь (зачем тебе близнецы), можно в ЛС P.S. Спрашивал, но пост был стыдливо затёрт модером, так что попытка № 2: Как заставить перса при определёном инфо уйти на другую локацию и сесть к существующему костру? Изменено 4 Ноября 2009 пользователем arkawa Не соответствует. N6260 Ссылка на комментарий
Костя.н.ы.ч 0 Опубликовано 4 Ноября 2009 Поделиться Опубликовано 4 Ноября 2009 НА примере Волка посмотри,В гулагах..... Иду по болоту,темно и гроза+туман...играет страшная музыка...черт аномалия...ф7...странные звуки в кустах...очередь и бежать...догоняет...чертова экза наемников...слышу его вой,сомнений нет-кровосос...на ходу вставляю батарейки в фонарик,включаю...передо мной стоит ОН!...как же он красив при освещении молнии...черт с ним,ф7...как бы до бара добраться?...удается модик... Ссылка на комментарий
AKKK1 6 Опубликовано 4 Ноября 2009 Поделиться Опубликовано 4 Ноября 2009 Мне кажется что смена смарта гулага у волка прописанна в алл спавне а не в логике гулага. Ссылка на комментарий
GrozoMurr 0 Опубликовано 4 Ноября 2009 Поделиться Опубликовано 4 Ноября 2009 Мне кажется что смена смарта гулага у волка прописанна в алл спавне а не в логике гулага. в гулаге - в гулаге. как же. Волк которого я заспаунил, ходил - бродил по локации. Ссылка на комментарий
arkawa 0 Опубликовано 4 Ноября 2009 Поделиться Опубликовано 4 Ноября 2009 GrozoMurr, не хочу сильно в спавн, который ALL лезть, хочу просто перса на другой локе посадить у костерка - убивать жалко и несколько квестов повесить, чтоб оправдать смену Фатума (я про Психа) Не соответствует. N6260 Ссылка на комментарий
AKKK1 6 Опубликовано 5 Ноября 2009 Поделиться Опубликовано 5 Ноября 2009 (изменено) GrozoMurr А что он по твоему должен был делать ? arkawa Если НПС принадлежит гулагу то в логике загрузки работ этого гулага для этого нпс нужно добавить секцию (схему поведения) с нужными координатами (не важно на какой локации) и условия переключения на эту схему Если НПС использует собственную логику тоже самое только для его логики Это если без редактирования алл спавн Хотя вру точки путей всеравно в алл спавн править Изменено 5 Ноября 2009 пользователем AKKK1 Ссылка на комментарий
arkawa 0 Опубликовано 6 Ноября 2009 Поделиться Опубликовано 6 Ноября 2009 Столкнулся с таким: 1. Разобрал all.spawn при помощи ACDC 2. Воткнул своего перса вместо "бочки с бизином взрывающейся" естественно не менял порядковые номера объектов те, что в [] написаны 3. Собрал all.spawn при помощи ACDC 4. Разобрал уже свой all.spawn и увидел там такую картину: а) часть порядовых номеров сбито, мой перс был под № [4457] когда я из оригинального спавна убрал бочку, а после перекомпиляции файла и его разборки оказался под № [4455] б) начиная со второй локи последний номер объекта был [2448] а появились №№ [576] и т.п., т.е. номер объекта предыдущей локи Вопрос: где я лоханулся? Или надо было втавлять своего перса в конец файла локи и вручную увеличивать последующие порядковые номера на "1"? Да, этот перс заспавнился на "предыдущей" локе и оказался "безголовым", хотя сылку на логику я указывал по образу и подобию оригинала. Не соответствует. N6260 Ссылка на комментарий
Vano_Santuri 33 Опубликовано 7 Ноября 2009 Поделиться Опубликовано 7 Ноября 2009 (изменено) Я может и не прав, но секции распологаются в алфавитном порядке), Т.е когда компилируешь, твоя секция ставится таким образом, и ничего страшного тут нет, и объекты идет только на одной локе, с других не считывается.... и вообще лучше спавни скриптом, и логика прикручивается легко(единственно для новых вейтов нужно править алл.спавн, но зато игра новая не нужна, когда правишь вейты) Изменено 7 Ноября 2009 пользователем Vano_Santuri Что-то кончается, что-то начинается... Ссылка на комментарий
Struck 61 Опубликовано 7 Ноября 2009 Поделиться Опубликовано 7 Ноября 2009 Народ, как прикрутить логику при спавне без amk'шных колбеков, а то везде только с ними).. Ссылка на комментарий
arkawa 0 Опубликовано 7 Ноября 2009 Поделиться Опубликовано 7 Ноября 2009 Vano_Santuri, на счёт спавна скриптом есть минус: тормоза в момент спавна и доп. нагрузка. Почему собсно обратил внимание на номера объектов: после сборки оллспавна в игре появился вылет, которого ранее не было: "Specified story object is already in the Story registry!" при взятии документа с переходом Агро->Кордон. Не соответствует. N6260 Ссылка на комментарий
AKKK1 6 Опубликовано 8 Ноября 2009 Поделиться Опубликовано 8 Ноября 2009 arkawa Помешай своего НПС в алл спавн следуюшим номером после последнего и не парься Ссылка на комментарий
arkawa 0 Опубликовано 8 Ноября 2009 Поделиться Опубликовано 8 Ноября 2009 AKKK1, а перенумеровывать следующие секции не надо? Не соответствует. N6260 Ссылка на комментарий
GrozoMurr 0 Опубликовано 9 Ноября 2009 Поделиться Опубликовано 9 Ноября 2009 (изменено) На кордоне есть скриптовые спавны? вот на примере их и сделайте. или поменяйте эти скриптовые спавны. логику и одного из ихних нпс'ов. вот у меня в рыжем лесу, когда выносишь бандитов в шахте, спавнятся не монстры, а монолитовцы, которые вместе с ними предлагают захватить стоянку "логово мутанта", только потом от последнего пришлось отказаться, так как были проблемы и были вылеты. --------------------------------------------------------------------------------------------------------------------------------------- Насчёт спавна. допустим. я начал игру. сейчас на болоте. и уже только тогда прописываю спавн на кордоне например собаки. вопрос: а будет ли она там, или надо начать игру заново? то есть, при старте игры читается инфа о всех локациях или только о той на которой ты уже побывал? (естественно на которой ты сейчас, поскольку при старте игры.... короче бла. бла. бла.) ------------------------------------------------------------------------------------------------------------------------------- в алл спавне есть волк. а в гулаге мы его берём его из алл спавна, прописываем ему скрипты, конфиги и т.д. Изменено 9 Ноября 2009 пользователем GrozoMurr Ссылка на комментарий
AKKK1 6 Опубликовано 9 Ноября 2009 Поделиться Опубликовано 9 Ноября 2009 arkawa У меня при разборке алл спавн появляется несколько файлов вида alive_101_escape.ltx alive_102_garbage.ltx ..... way_101_escape.ltx way_102_garbage.ltx и т.д открываем нужный например alive_101_escape.ltx и в конец вставляем свою секцию [912] ; cse_abstract properties section_name = boar_weak name = esc_boar_weak position = -93.2209701538086,-8.91001605987549,5.93973970413208 direction = -0.0755249038338661,-0.00769974943250418,-0.101696774363518 ; cse_alife_object properties game_vertex_id = 73 distance = 20.2999992370605 level_vertex_id = 170160 object_flags = 0xffffffbf custom_data = <<END [smart_terrains] esc_small_home2 = true END ; cse_visual properties visual_name = monsters\mutant_boar\mutant_boar ; cse_alife_creature_abstract properties g_team = 0 g_squad = 0 g_group = 0 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = -93.2209701538086,-8.91001605987549,5.93973970413208 upd:o_model = 0 upd:o_torso = -0.00769974943250418,-0.0755249038338661,0 upd:g_team = 0 upd:g_squad = 0 upd:g_group = 0 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_ph_skeleton properties ; cse_alife_monster_base properties ; se_monster properties [913] номер последней секции ; cse_abstract properties section_name = boar_weak name = esc_boar_weak_0003 position = -94.6008682250977,-8.94169330596924,7.42665243148804 direction = 0.100122138857841,0.000937749689910561,-0.00938144978135824 ; cse_alife_object properties game_vertex_id = 73 distance = 21 level_vertex_id = 168210 object_flags = 0xffffffbf custom_data = <<END [smart_terrains] esc_small_home2 = true END ; cse_visual properties visual_name = monsters\mutant_boar\mutant_boar ; cse_alife_creature_abstract properties g_team = 0 g_squad = 0 g_group = 0 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = -94.6008682250977,-8.94169330596924,7.42665243148804 upd:o_model = 0 upd:o_torso = 0.000937749689910561,0.100122138857841,0 upd:g_team = 0 upd:g_squad = 0 upd:g_group = 0 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_ph_skeleton properties ; cse_alife_monster_base properties ; se_monster properties [914] моя секция ; cse_abstract properties section_name = smart_terrain name = esc_umnik position = -254.902908325195,-18.070499420166,-116.293899536133 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 8 distance = 15 level_vertex_id = 8190 object_flags = 0xffffffbe custom_data = <<END [smart_terrain] type = esc_umnik capacity = 1 groups = 0,5 END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 9.99999974737875e-005 ; cse_alife_space_restrictor properties restrictor_type = 3 ; se_smart_terrain properties Да и может у тебя АС\ДС неправильный я пользуюсь этим http://letitbit.net/download/1357.dfb1544a...cdc_x1.rar.html Ссылка на комментарий
GrozoMurr 0 Опубликовано 9 Ноября 2009 Поделиться Опубликовано 9 Ноября 2009 логика нпс'а может прописываться как в гулаге, так и в алл спавне. живой пример майор халецкий. в читовом спавнере есть два майора халецких. один просто майор халецкий. другой майор халецкий с логикой как у того халецкого на кордоне. волк же просто ходил бродил. т.е. халецкий (сразу буду иметь ввиду второго) имеет логику уже в алл спавне, а волк имеет логику только на кордоне, где его взяли из алл спавна и прописали ему логику. Ссылка на комментарий
AKKK1 6 Опубликовано 9 Ноября 2009 Поделиться Опубликовано 9 Ноября 2009 Что то я не понимаю чего вы хотите объяснить ? Волк персонаж гулага и использует предназначеную ему работу а так же логику соответствующую этой работе Если персонаж не должен входить в гулаге ему пишется личная логика хоть в алл спавне хоть в отдельном файле(что значительно удобней) Да и кто такой Халецкий ? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти