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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/
Ренсон 11 Опубликовано 20 Июня 2011 Поделиться Опубликовано 20 Июня 2011 Люди добрые, помогите пожалуйста. Переспавниваю Шустрого. Вот код [1791] ; cse_abstract properties section_name = stalker name = esc_shustryi position = -81.202568,-1.298111,154.848953 direction = 0.977733,0,0.209853 ; cse_alife_trader_abstract properties money = 5000 character_profile = esc_shustryi ; cse_alife_object properties game_vertex_id = 163 distance = 8.39999961853027 level_vertex_id = 186909 object_flags = 0xffffffbf custom_data = <<END [spawner] cond = {+shustryi_flash_start_info} [logic] cfg = scripts\new\shustryi_logic.ltx ; cse [smart_terrains] none = true END story_id = 4 ; cse_visual properties visual_name = actors\novice\green_stalker_1 ; cse_alife_creature_abstract properties g_team = 0 g_squad = 0 g_group = 0 health = 2 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 2 upd:timestamp = 0x69206669 upd:creature_flags = 0x6e upd:position = -81.202568,-1.298111,154.848953 upd:o_model = 0 upd:o_torso = 0,0,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_alife_human_abstract properties predicate5 = 1,1,0,0,2 predicate4 = 1,1,0,0 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties Ещё прописываю в [shustryi_seat] points = p0 p0:name = name00 position = -81.202568,-1.298111,154.848953 p0:game_vertex_id = 163 p0:level_vertex_id = 186909 [shustryi_look] points = p0 p0:name = name00 p0:flags = 0x400 p0:position = -44.3478202819824,-10.9337711334229,-101.592460632324 p0:game_vertex_id = 163 p0:level_vertex_id = 186909 А логика у него, собственно, такая [logic] active = walker [walker] path_walk = shustryi_seat path_look = shustryi_look danger = danger_ignore meet = meet ;;no_move = true anim = sit_ass snd = agr_desertir_spam on_death = death [meet] use = true use_wpn = true [danger_ignore] ignore_distance = 0 [death] on_info = %+shustryi_dead_info% Но сей гад стоит беззвучным столбом, глядя сторого на север. Вопрос: в чём ошибка? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-602517
_Призрак_ 11 Опубликовано 20 Июня 2011 Поделиться Опубликовано 20 Июня 2011 Ты определись, у тебя НПС работает в секции walker или в секции remark? В схеме walker можно указывать только: path_walk - основной путь, по которому ходит охранник path_look [опционально] - путь, куда смотрит охранник team [опционально] - команда для синхронизации sound_idle [опционально] - неизвестный параметр. Возможно звук при стоянии без дела. Использовался только на янтаре у зомби (sound_idle = state) def_state_moving1 [опционально] - состояние, в котором сталкер движется к первой точке пути, если она близко (patrol по умолчанию) def_state_moving2 [опционально] - состояние, в котором сталкер движется к первой точке пути, если она не слишком далеко (rush по умолчанию) def_state_moving3 [опционально] - состояние, в котором сталкер движется к первой точке пути, если она далеко (sprint по умолчанию) def_state_standing [опционально] - дефолтное состояние в котором он стоит и смотрит на точку, если в этой точке не задана другое состояние. Остальные параметры скрипты игры не читают Freedom Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-602573
Ренсон 11 Опубликовано 20 Июня 2011 Поделиться Опубликовано 20 Июня 2011 Я логику НПС только постигаю, так что не серчайте. Как я понял, walker - только для движущихся? Что тогда назначать для неподвижных? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-602600
_Призрак_ 11 Опубликовано 20 Июня 2011 Поделиться Опубликовано 20 Июня 2011 (изменено) Вообще можно сделать так: [logic] active = walker [walker] path_walk = shustryi_seat path_look = shustryi_look danger = danger_ignore meet = meet on_death = death [meet] use = true use_wpn = true [danger_ignore] ignore_distance = 0 [death] on_info = %+shustryi_dead_info% [shustryi_seat] points = p0 p0:name = name00 p0:flags = 0x400 p0:position = -81.202568,-1.298111,154.848953 p0:game_vertex_id = 163 p0:level_vertex_id = 186909 [shustryi_look] points = p0|a=sit_ass|s=agr_desertir_spam p0:name = name00 p0:flags = 0x400 p0:position = -44.3478202819824,-10.9337711334229,-101.592460632324 p0:game_vertex_id = 163 p0:level_vertex_id = 186909 Изменено 20 Июня 2011 пользователем _Призрак_ Freedom Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-602613
speczadanie 0 Опубликовано 21 Июня 2011 Поделиться Опубликовано 21 Июня 2011 Такая проблема. Использую метод "db.actor:activate_slot(1)". Но он действует только в случае, если у игрока в момент активации никакой слот вообще не активен. Если какой-то активен - действие не срабатывает. Как исправить? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-602627
Ренсон 11 Опубликовано 21 Июня 2011 Поделиться Опубликовано 21 Июня 2011 (изменено) _Призрак_ Что-то acdc после компиляции изменяет shustryi_look на это... [shustryi_look] points = p0 p0:name = p0:position = 0,0,0 p0:game_vertex_id = 0 p0:level_vertex_id = 0 Исправил на это points = p0 p0:name = name00|a=sit_ass|s=agr_desertir_spam p0:flags = 0x1 p0:position = -44.3478202819824,-10.9337711334229,-101.592460632324 p0:game_vertex_id = 163 p0:level_vertex_id = 186909 Результатов ноль. Изменено 21 Июня 2011 пользователем Ренсон Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-602679
Disord 1 Опубликовано 21 Июня 2011 Поделиться Опубликовано 21 Июня 2011 speczadanie, а если спрятать оружие сначала, а потом активировать? bind_stalker.hide_weapon() -- прятать оружие Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-602682
speczadanie 0 Опубликовано 21 Июня 2011 Поделиться Опубликовано 21 Июня 2011 Disord, не помогает. db.actor:hide_weapon() делает полностью недоступными все слоты, пока не будет отменён. если сделать так: db.actor:hide_weapon() db.actor:activate_slot(1) db.actor:restore_weapon() то в итоге активируется слот, который был изначально. Добавлено через 25 мин.: Ещё вопрос к предыдущему. Есть таблица "{a,b,c}". Как скриптом проверить, равно ли значение X хотя бы одному значению из таблицы. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-602688
Kirag 41 Опубликовано 21 Июня 2011 Поделиться Опубликовано 21 Июня 2011 speczadanie По поводу таблицы, у тебя фактически таблица такая: table = {1 = a, 2 = b, 3 = c} тут только перебирать всю таблицу и сравнивать значения, что долго и нудно. Если сам вид таблицы не сильно принципиален, лучше переписать ее так: table = {a = true, b = true, c = true} (если a,b,c - строки, то в квадратных скобках: ["значение_а"] = true и т.д.) Тогда процесс проверки упрощается до if table[X] then ... end т.е. делаем что-то, если существует элемент таблицы с индексом X, а он существует только тогда, когда X = (a или b или c). Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-602711
Руслан 1 Опубликовано 22 Июня 2011 Поделиться Опубликовано 22 Июня 2011 Народ как в ЗП сделать логику для патрелей, как в ТЧ и ЧН. Что бы военные шли до определеного места и разворачивались и обратно шли. обьясните плз! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-603075
Clayman 104 Опубликовано 22 Июня 2011 Поделиться Опубликовано 22 Июня 2011 Руслан, логику тут можно и не писать, это в аллспавне (или в сдк) нужно создать путь для движения и обозвать его как работу для смарта, тогда нпс в смарте автоматически будут становится на эту работу, ходить по пути. Допустим смарт террейн у тебя называется zat_a1, тогда делаешь пути с работами zat_a1_walker_1 walk ( zat_a1_walker_1 look), zat_a1_patrol_1 walk ( zat_a1_patrol_1 look) и так далее, подробней читаем тут - http://stalkerin.gameru.net/wiki/index.php...%80%D0%B5%D0%B9 Только для ЗП некоторые не используются работы, например kamp. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-603084
speczadanie 0 Опубликовано 22 Июня 2011 Поделиться Опубликовано 22 Июня 2011 Как можно скриптом получить последние три символа в слове? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-603090
_Призрак_ 11 Опубликовано 22 Июня 2011 Поделиться Опубликовано 22 Июня 2011 Можно Local text = "asdfghjkl" Local newtext=string.sub(text,string.len(text)-2,string.len(text)) Freedom Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-603100
Real Wolf 34 Опубликовано 22 Июня 2011 Поделиться Опубликовано 22 Июня 2011 (изменено) Ulman, Это значит, что нужно, чтобы скриптер искал проблему при наличии у него целого мода. Кто-нибудь знает, как изменить отношение мутантов к ГГ, кроме функции "set_relation", т.к. она у меня не давала никаких результатов? Изменено 22 Июня 2011 пользователем Real Wolf Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-603122
speczadanie 0 Опубликовано 22 Июня 2011 Поделиться Опубликовано 22 Июня 2011 Можно сменить игроку группировку на "с тем же названием и изменёнными отношениями". Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-603156
Real Wolf 34 Опубликовано 22 Июня 2011 Поделиться Опубликовано 22 Июня 2011 Нет. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-603166
Капрал Хикс 563 Опубликовано 22 Июня 2011 Поделиться Опубликовано 22 Июня 2011 Real Wolf, friend communities overrides в конфигах монстров поставить = .., actor? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-603191
panzyuza 53 Опубликовано 22 Июня 2011 Поделиться Опубликовано 22 Июня 2011 А есть функция,позволяющая мутанту отбрасывать нпс и гг метра на 3 при близком котакте. AVS_LOCATION_MOD Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-603245
_Призрак_ 11 Опубликовано 22 Июня 2011 Поделиться Опубликовано 22 Июня 2011 Да есть, называется hit() Freedom Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-603255
panzyuza 53 Опубликовано 22 Июня 2011 Поделиться Опубликовано 22 Июня 2011 НЕ!Просто нужно,что бы мутант(псевдогигант) при нанесении хита по нпс или по гг,отбрасывал бы их метра на три.Как кровосос в АМК на ЗП. AVS_LOCATION_MOD Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/103/#findComment-603258
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти