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/
Rod_K 1 Опубликовано 18 Июня 2021 Поделиться Опубликовано 18 Июня 2021 @Pir@t@s В общем, у меня проблема заключается в следующем: Нужно прописать волку логику или скрипт, чтобы он, после окончания диалога с другим нпс, сорвался со своего места и отправился на заданную точку. Затем с ним следует диалог и после него Волк возвращается на свою исходную позицию. Так вот, на данном этапе мне нужно расшевелить волка, чтобы он отправился на заданную точку. Здесь и возникли проблемы, поскольку я и логику прописывал с волкером, и пытался удалить и потом заспавнить через alife заново, но не выходит ничего - так и продолжает стоять на своем изначальном месте. P.s. платформа - ТЧ. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387080
AndreySol 215 Опубликовано 19 Июня 2021 Поделиться Опубликовано 19 Июня 2021 3 часа назад, Rod_K сказал(а): чтобы он, после окончания диалога с другим нпс С каких пор неписи стали друг с другом разговаривать? Выкладывай то, что пытался прописать НПСу в логику. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387089
I am Dead 918 Опубликовано 20 Июня 2021 Поделиться Опубликовано 20 Июня 2021 @AndreySol Ну здрасьте, приехали, а как разговор Васильева и Сахарова в бункере учёных? Как же разговор шустрого с бандосами? Это только что первое на ум пришло, я уверен что таких ситуаций в игре более, а в модах - подавно. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387306
AndreySol 215 Опубликовано 20 Июня 2021 Поделиться Опубликовано 20 Июня 2021 @I am Dead @Купер Диалог - это возможность для игрока, управляющего актером, начать взаимодействие с НПС и войти в режим выбора фраз в соответствующем диалоговом окне. А все то, о чем вы написали - это обыкновенный отыгрыш неписями своей логики, с анимациями и воспроизведением прописанных звуков, и с определенной синхронизацией между схем. 3 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387330
I am Dead 918 Опубликовано 20 Июня 2021 Поделиться Опубликовано 20 Июня 2021 (изменено) @AndreySol Полнейший бред, уроки русского языка вам поучить, товарищ! Диалог это в первую очередь разговор между двумя и более лицами, что в свою очередь и имел ввиду товарищ @Rod_K 1 час назад, AndreySol сказал(а): обыкновенный отыгрыш неписями своей логики, с анимациями и воспроизведением прописанных звуков, и с определенной синхронизацией между схем. По твоему именно с такой трактовкой должны все задавать вопросы в этой теме? Изменено 20 Июня 2021 пользователем I am Dead 2 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387341
UriZzz 1 004 Опубликовано 20 Июня 2021 Поделиться Опубликовано 20 Июня 2021 1 час назад, I am Dead сказал(а): Полнейший бред, уроки русского языка вам поучить, товарищ! В чём же там бред? Всё правильно. То что вы, мил человек, упоминали, есть не более чем сценки - логика + анимации + звуки. С точки зрения игры, диалог с неписями может вести только гг. Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387353
Rod_K 1 Опубликовано 24 Июня 2021 Поделиться Опубликовано 24 Июня 2021 Спасибо всем, кто помогал с предыдущим вопросом. Вы все очень помогли! Сейчас у меня возникла одна проблема, касающаяся неправильной работы логики нпс. Здесь идет логика персонажа: [logic] active = remark1 danger = danger_ignore [danger_ignore] ignore_distance = 5 [remark1] no_move = true meet = meet@self [meet@self] use = {=dist_to_actor_le(12) -kvest_vodka_started} self meet_dialog = {-kvest_vodka_started} escape_trader_oops Она, до поры до времени, работала, но как только я начал дальше разрабатывать модификацию, начались баги. Теперь, при приближении актора к нпс, полностью пропадает возможность сдвинуться с места, а также диалоговое окно не появляется на экране. Прошу заметить, что раньше все отменно работало без нареканий, но теперь диалог не работает. Хотя, если актор сам начинает диалог (пишу вместо <start_dialog>escape_trader_oops</start_dialog> ---> <actor_dialog>escape_trader_oops</actor_dialog>, то диалог появляется и квест работает (нажимаю F и можно отвечать НПСу), если же начинает нпс, то диалог не показывается, хотя логика персонажа отчасти работает, поскольку при приближении к нпс что-то происходит ( блокируется движение). Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387683
naxac 2 605 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 (изменено) @Rod_K , попробуй уменьшить дистанцию с 12 до, например, 5 метров. В движке на дистанцию, с которой можно начинать диалог, ограничение стоит, не помню только, какое именно. И, да - ремарк в качестве основной схемы - это моветон. Изменено 25 Июня 2021 пользователем naxac 3 Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387810
WinCap 324 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 (изменено) 7 часов назад, naxac сказал(а): И, да - ремарк в качестве основной схемы - это моветон. Много раз встречал подобное утверждение и до сих пор не знаю, что значит "основная/активная схема"? Объясните, пожалуйста. Изменено 25 Июня 2021 пользователем WinCap S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387845
Painter 3 591 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 @WinCap, под "основной схемой" подразумевается та схема, которая используется на постоянной основе для просто стоящего на месте NPC (или циклично перемещающего по определённым путям). Для этих целей используются walker и animpoint. Как правило, remark применяется исключительно для небольших сценок с последующим переходом на "основные схемы" (отыграл нужную анимацию/реплику в remark и снова перешёл в walker). Если использовать её в качестве постоянной, то NPC банально не вернётся "на своё место" после столкновения с противником (или если кто-то его случайно "отодвинет"). 1 ⠀ Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387846
Rod_K 1 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 @naxac К сожалению, ничего не происходит. Актор при приближении к нпс убирает оружие, бинокль и т.д. и стоит на месте. Диалоговое окно не появляется. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387848
phalcor 60 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 (изменено) Очередное кострище ушло в свободное плаванье (переместилось метров на 5 вверх): При этом координаты всех элеменетов костра одинаковые и указывают правильное местоположение: Скрытый текст [25.06.21 12:02:44.041] 1. smart_terrain -- bar_ecolog_kamp x=53.180000305176 y=-11.630000114441 z=-260.14001464844; id=15023; story_id=-1 [25.06.21 12:02:44.041] 2. space_restrictor -- yan_campfire1_restr x=53.180000305176 y=-11.630000114441 z=-260.14001464844; id=15026; story_id=-1 [25.06.21 12:02:44.042] 3. physic_object -- yan_campfire1 x=53.180000305176 y=-11.630000114441 z=-260.14001464844; id=15027; story_id=-1 [25.06.21 12:02:44.108] 4. zone_flame_small -- yan_campfire1_flame x=53.180000305176 y=-11.630000114441 z=-260.14001464844; id=60440; story_id=804729 [25.06.21 12:02:44.109] 5. lights_hanging_lamp -- yan_campfire1_light x=53.180000305176 y=-11.630000114441 z=-260.14001464844; id=60441; story_id=804730 Написал функцию принудительного перемещения с помощью нет-пакетов - при выполнении кострище на мгновение исчезает, а затем вновь появляется на старом месте. Скрытый текст function test25062021() for i = 1, 65534 do local obj = alife():object(i) if obj and obj:name()== "yan_campfire1" then --перемещение local xpos=obj.position.x local ypos=obj.position.y local zpos=obj.position.z ypos=ypos+5 --на 5 метров вверх! local vPos = vector():set(xpos,ypos,zpos) local pk = m_netpk.net_cse_abstract(obj) if pk:isOk() then log("!ОК!") local status = pk:setCallback( function(data) data.position = vPos --/ change property 'position' in 'cse_abstract' end ) end end end end Что это такое, и как это побороть (вернуть кострище на место!)? Изменено 25 Июня 2021 пользователем phalcor Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387849
Colder 12 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 Можно ли скриптово, переместить актора на другую локацию без использования спавна? Или где можно подсмотреть подобное? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387850
I am Dead 918 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 @Colder В некоторых спавнерах есть возможность телепортирования на другие Локи и был ещё мод "кпк разработчика" (если правильно помню название) ,там тоже есть такая возможность. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387857
dsh 3 824 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 @phalcor я пришел к выводу,что это проблема физики. Могу посоветовать только переспаун. В движке я пытался это исправить, но не уверен, получилось или нет. Точнее, не стал заморачиваться с проверкой, т.к. автоматический скриптовый переспаун, который уже работал на тот момент, меня устраивал. 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387859
phalcor 60 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 (изменено) @dsh Понятно, физика, будь она неладна. Удаляется кострище без проблем, а вот как его заспавнить из скрипта? В распакованном алл-спавне нашёл его секцию, но что-то не соображу, как сделать спавн? Скрытый текст [8380] ; cse_abstract properties section_name = physic_object name = yan_campfire1 position = 53.1800003051758,-11.6300001144409,-260.140014648438 direction = 0,0,0 unknown_id = 0 script_version = 7 ; cse_alife_object properties game_vertex_id = 1480 distance = 0.300000011920929 level_vertex_id = 66633 object_flags = 0xffffff3a custom_data = <<END [collide] ignore_static END ; cse_visual properties visual_name = dynamics\koster\koster_palki ; cse_ph_skeleton properties skeleton_name = skeleton_flags = 1 ; cse_alife_object_physic properties physic_type = 0x3 mass = 10 fixed_bones = bone01 Изменено 25 Июня 2021 пользователем phalcor Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387860
Marafon6540 854 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 (изменено) 28 минут назад, phalcor сказал(а): fixed_bones = bone01 Тебе надо зафиксировать вот эту кость. Попробуй в свою функцию после data.position = vPos добавить что-то типа data.physic_type = 3 data.mass = 10 data.fixed_bones = "bone01" Изменено 25 Июня 2021 пользователем Marafon6540 1 Трилогия Апокалипсис. Трилогия Apocalipsis ОГСР х64 Упавшая звезда. Честь наемника. v. 1.2 УЗЧН v.1.3 + ОГСРх64 Последний сталкер v. 1.2 ПС v. 1.3 + ОГСРх64 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387863
phalcor 60 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 @Marafon6540 добавил. Увы, всё также, исчезнет на секунду и снова появится на прежнем месте. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387864
dsh 3 824 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 2 hours ago, Marafon6540 said: Тебе надо зафиксировать вот эту кость. Это не поможет. В том месте, где происходит эта проблема, фиксированные кости не обрабатываются. Оно там о такой штуке просто не знает. Хотя это не отменяет необходимость фиксации костей. Но против этой проблемы - это не поможет. 2 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387882
phalcor 60 Опубликовано 25 Июня 2021 Поделиться Опубликовано 25 Июня 2021 @dsh 10 минут назад, dsh сказал(а): Это не поможет. Ну пока да, не помогло. Если не сложно, подскажи, как ты из скрипта делаешь переспавн? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/564/#findComment-1387884
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти