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 Ссылка на комментарий
Bogdan S.T. 0 Опубликовано 5 Января 2015 Поделиться Опубликовано 5 Января 2015 (изменено) Кто знает как сделать так чтобы БМП в АМК моде стрелял не по ГГ ,а по мутантам , я уже всё перепробовал. Изменено 5 Января 2015 пользователем Bogdan S.T. Ссылка на комментарий
Старлей 88 Опубликовано 6 Января 2015 Поделиться Опубликовано 6 Января 2015 Bogdan S.T. Есть 2 варианта: хитрый и познавательный. Первый - установи AI вертолетов с адаптацией для АМК, ее автор делал сам. Но там есть возможность задать в цели только вертушке гулаг или круг по координатам и радиусу; попробуй перенести функцию добавления вражин в схему БТР. Ну а второй, можешь попробовать придумать-что нибудь сам . Если плохо думается, то ... (Показать) Гость_Borsalino_* писал(а): В Симбионе есть готовая схема и с БТР и с вертушками, БТРы по всей Зоне рассекают, вертушка из 18 не даёт выйти, а на базе Свободы два БТРа отбивают атаку трёх вертушек, возьмите оттуда, если сможете, по моему проще. А дело хорошее. Удачи. 1 Ray Of Hope - кооператив сталкера OldStory Ссылка на комментарий
Overfirst 637 Опубликовано 10 Января 2015 Поделиться Опубликовано 10 Января 2015 (изменено) Подскажите плиз, в чем ошибка? Я сделал непися, который ну типа должен застрелиться, вот файл с логикой: Показать [smart_terrains]none = true[logic]active = remark1[remark1]target = 6anim = waitdef_state_standing = warddanger = danger_condition@maroder_bosson_actor_dist_le_nvis = 2 | remark2[remark2]target = actoranim = suicidesnd = zombied_fight_attack meet = no_meetdanger = danger_condition@maroder_bosson_signal = sound_end | remark3[remark3]target = actoranim = suicidemeet = no_meetdanger = danger_condition@maroder_bosson_timer = 500| remark4 %=vovan.valter_shot%[remark4]target = actoranim = suicidemeet = no_meetdanger = danger_condition@maroder_bosson_timer = 150| %=kill%[danger_condition@maroder_boss]ignore_distance = 0ignore_distance_corpse = 0 И вот когда я подхожу к нему, через некоторое время происходит вылет: Показать Expression : fatal errorFunction : CScriptEngine::lua_errorFile : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cppLine : 73Description :Arguments : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:1121: bad argument #2 to 'format' (string expected, got no value) А когда я убираю из логики строку %=vovan.valter_shot% все нормально работает, он сдыхает! Но мне надо еще звук выстрела, вот сама функция: Показать function valter_shot()local snd_obj = xr_sound.get_safe_sound_object([[weapons\t_desert_eagle_shot]])snd_obj:play(db.actor, 0, sound_object.s2d)end Короче подскажите, в чем ошибка? Мне просто нужно вставить звук выстрела, но вылет! Помогите плиз! Изменено 10 Января 2015 пользователем BFG Ранее был известен под ником BoBaH_671. Ссылка на комментарий
Struck 61 Опубликовано 10 Января 2015 Поделиться Опубликовано 10 Января 2015 (изменено) @BoBaH_671, функция должна лежать не в vovan, а в xr_effects. Если нужно в vovan, то можно что-то такое написать: function valter_shot() local snd_obj = xr_sound.get_safe_sound_object([[weapons\t_desert_eagle_shot]]) snd_obj:play(db.actor, 0, sound_object.s2d) end _G['xr_effects'].valter_shot = valter_shot() --// это вызови где-нибудь ДО отработки функции из логики, по идее должно сработатьfunction valter_shot() local snd_obj = xr_sound.get_safe_sound_object([[weapons\t_desert_eagle_shot]]) snd_obj:play(db.actor, 0, sound_object.s2d) end _G['xr_effects'].valter_shot = valter_shot() --// это вызови где-нибудь ДО отработки функции из логики, по идее должно сработать Либо пиши напрямую, и да, в логике поменяй на %=valter_shot%.Так же советовал бы переписать функцию отыгрывания звука напрямую от пистолета, а именно: function valter_shot(actor,npc) local snd_obj, obj = xr_sound.get_safe_sound_object([[weapons\t_desert_eagle_shot]]), npc:object("имя секции твоего пистолета") snd_obj:play_no_feedback(obj, sound_object.s3d, 0, obj:position(), 1.0) endfunction valter_shot(actor,npc) local snd_obj, obj = xr_sound.get_safe_sound_object([[weapons\t_desert_eagle_shot]]), npc:object("имя секции твоего пистолета") snd_obj:play_no_feedback(obj, sound_object.s3d, 0, obj:position(), 1.0) end Изменено 10 Января 2015 пользователем Struck Ссылка на комментарий
Romann 623 Опубликовано 10 Января 2015 Поделиться Опубликовано 10 Января 2015 BoBaH_671 я не давно возился с подобной логикой, у меня вышло так: Видео (Показать) могу скинуть. железо (Показать) Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
naxac 2 507 Опубликовано 10 Января 2015 Поделиться Опубликовано 10 Января 2015 Привет всем. Сегодня пробовал сменить имя главного героя через net_packet. Взял all.spawn, acdc, написал скрипт. Вроде работает, но имя меняется только около иконки, которая показывается при разговоре/торговле, и в КПК в разделе "Ранги". С нпс то же самое, но это решается отправкой непися в оффлайн на небольшое время сразу после изменения пэкета. С ГГ же такое не прокатывает. Может, кто-нибудь сталкивался? Как решить? @Dennis_Chikin, надо, чтобы новое имя отображалось везде. В окне диалога с нпс вместе с фразами, в КПК в разделе статистики, чтобы его можно было получить через actor:character_name()... Добавлено Dennis_Chikin, 10 Января 2015 А надо-то что ? Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Dennis_Chikin 3 663 Опубликовано 10 Января 2015 Поделиться Опубликовано 10 Января 2015 Чтобы было везде - везде и менять надо. И, да, изменения через пакет будут только после s/l. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Desertir 202 Опубликовано 11 Января 2015 Поделиться Опубликовано 11 Января 2015 (изменено) Все ссылки в шапке (спойлер Логика) на сталкерин битые. Проще просто руками убрать после index.php слеш и написать вместо него ?title= Например: http://www.stalkerin.gameru.net/wiki/index.php/Настройка_логики._Часть_0 http://www.stalkerin.gameru.net/wiki/index.php?title=Настройка_логики._Часть_0http://www.stalkerin.gameru.net/wiki/index.php/Настройка_логики._Часть_0 http://www.stalkerin.gameru.net/wiki/index.php?title=Настройка_логики._Часть_0 Изменено 11 Января 2015 пользователем Desertir 1 ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
Overfirst 637 Опубликовано 11 Января 2015 Поделиться Опубликовано 11 Января 2015 (изменено) Народ, кто подскажет: как создать переход с локи на локу? Так, уже все сделал с готовыми скриптами... Но токо что означают эти цифры? Показать function create_agro_taynik() -- создается переход c АГРОПРОМА В ТАЙНИК СТРЕЛКА if (not has_alife_info( "teleport_to_taynik" )) then y_level.create_level_changer(60000, vector():set( -45.089,-0.637,-34.386 ),194126,654, 3053, 717, vector():set( -75.975,-6.726,-74.848 ), vector():set( 0.0,1.5,0.0 ),"l03u_agr_underground",0) db.actor:give_info_portion("teleport_to_taynik") end -- создается переход ИЗ ТАЙНИКА СТРЕЛКА НА АГРОПРОМ if (not has_alife_info( "teleport_from_taynik" )) then y_level.create_level_changer(60001, vector():set( -81.394,-4.946,-70.915 ),2709,717, 194118, 695, vector():set( -47.207,-0.364,-40.833 ), vector():set( 0.0,3.0,0.0 ),"l03_agroprom",0) db.actor:give_info_portion("teleport_from_taynik") end end -81.394,-4.946,-70.915 - это ясно - позиция А числа 2709 и 717 вероятно гейм и левел вертексы, но что за числа 194118 и 695? Разжуйте плиз. Изменено 11 Января 2015 пользователем BoBaH_671 Добавлено Dennis_Chikin, 11 Января 2015 y_level.create_level_changer - телепаты в отпуске. Ранее был известен под ником BoBaH_671. Ссылка на комментарий
naxac 2 507 Опубликовано 12 Января 2015 Поделиться Опубликовано 12 Января 2015 @Dennis_Chikin, в том-то и дело, что непонятно где ещё нужно что поменять. Перерыл весь нет_пэкет актора, никаких больше упоминаний про имя не нашел. Пробовал поменять профиль в пэкете - меняется только иконка на ту, что в новом профиле записана, остальное без изменений... Непонятно. Всё, разобрался. Я же только серверный объект ковырял, а нужно ещё и клиентский... Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Overfirst 637 Опубликовано 12 Января 2015 Поделиться Опубликовано 12 Января 2015 Такс, еще раз обращаюсь за помощью... Как сделать, чтобы ГГ выдавался инфопоршень при переходе с локи на локу? 1 Ранее был известен под ником BoBaH_671. Ссылка на комментарий
Kirgudu 1 299 Опубликовано 12 Января 2015 Поделиться Опубликовано 12 Января 2015 (изменено) @BoBaH_671, простейший пример - сохранять название локации в pstor ГГ, а при загрузке сверять название текущей локации с сохранённым. Например: if xr_logic.pstor_retrieve(db.actor, "lvl", "first_level") ~= level.name() then db.actor:give_info_portion("level_changed") xr_logic.pstor_store(db.actor, "lvl", level.name()) endif xr_logic.pstor_retrieve(db.actor, "lvl", "first_level") ~= level.name() then db.actor:give_info_portion("level_changed") xr_logic.pstor_store(db.actor, "lvl", level.name()) end вместо "first_level" следует подставить название стартовой локации (для ЧН это "marsh") - тогда инфопорция будет выдана только при смене локации, но не при старте игры. "level_changed" - название выдаваемой инфопорции. Проверку можно повесить, например, на первый апдейт актора. Изменено 12 Января 2015 пользователем Kirgudu Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий
Struck 61 Опубликовано 12 Января 2015 Поделиться Опубликовано 12 Января 2015 В каком виде содержатся флаги в CInventoryItem? Ссылка на комментарий
Overfirst 637 Опубликовано 14 Января 2015 Поделиться Опубликовано 14 Января 2015 Народ, помогите плиз. Я хочу сделать, чтобы непись говорил что-нибудь, короче, знаю я, что в логике надо прописатьsnd = ... , но только в какие файлы прописывать свой звук? Ранее был известен под ником BoBaH_671. Ссылка на комментарий
NL-Vincenz 12 Опубликовано 14 Января 2015 Поделиться Опубликовано 14 Января 2015 (изменено) @BoBaH_671, Заходишь в скрипт sound_theme. В начале после theme = {} ставишь код. ph_snd_themes = {} ph_snd_themes["atp_lager_radio"] = { "ambient\\special\\atp_lager_1", "ambient\\special\\atp_lager_2" }ph_snd_themes = {} ph_snd_themes["atp_lager_radio"] = { "ambient\\special\\atp_lager_1", "ambient\\special\\atp_lager_2" } atp_lager_radio - Это имя, пишешь своё, указываешь в логике. Так-же указываешь свои пути до звукового файла. Все. Надеюсь разберешься. Будут вопросы в личку. Это я использовал для магнитофона, поют две песни рандомно. Изменено 14 Января 2015 пользователем NL-Vincenz Ссылка на комментарий
Kondr48 314 Опубликовано 14 Января 2015 Поделиться Опубликовано 14 Января 2015 (изменено) Прошу о помощи, товарищи =)Имеется такая задача: сохранить некоторые даннные, скорее всего будет некая таблица, "куда-то" в оружие или броню, почему говорю куда-то, потому как вроде пстора у таких объектов нету, вот собственно и вопрос, как это лучше сделать? UnLoaded, не знаю, все мои знания о pstore ограничиваются записью/чтением переменных в псторе актора, буду благодарен, если расскажете подробнее. Изменено 30 Января 2015 пользователем Dennis_Chikin Ссылка на комментарий
Zander_driver 10 345 Опубликовано 14 Января 2015 Поделиться Опубликовано 14 Января 2015 (изменено) , пстора нету, есть нетпакет и модули для работы с ним. @UnLoaded, А зачем его добавлять вообще? Изменено 30 Января 2015 пользователем Dennis_Chikin Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
UnLoaded 313 Опубликовано 14 Января 2015 Поделиться Опубликовано 14 Января 2015 Zander_driver писал(а): пстора нету А разве так сложно добавить ? Ссылка на комментарий
Карлан 1 050 Опубликовано 15 Января 2015 Поделиться Опубликовано 15 Января 2015 @UnLoaded, учитывая что инвентарный и физический объекты - разные вещи, то в этом смысла никакого не будет (а учитывая еще как движок обрабатывает перемещения в слот, то это вообще чушь). , единственный корректный подход это сохранять в пакет актору, либо чему-то с ним связанному (фонарик, пда, ...) (в ассоциативном массиве разумеется). Если нужно обязательно в броники или стволы, то тут лучше всего записывать в кастом дату. Можно использовать se_stor или xrvars; это бездонные хранилища, в них можно засовывать что угодно в каких угодно размерах, в xrvars нету явного ограничения на 4кб. Удачи . Ссылка на комментарий
Карлан 1 050 Опубликовано 17 Января 2015 Поделиться Опубликовано 17 Января 2015 Вот поглядите, накостылил кой-чего Фотошопил я пару минут, так что сильно не пинайте))) Показать http://youtu.be/9G-LjHxesOE Немного пояснить наверное нужно, метка ставится на живой объект, их можно как угодно раскрашивать и менять прозрачность (в зависимости от отношения, группировки, ранга, чего угодно), можно ставить разные метки разного цвета и разной формы, можно прикрепить описание, к сожалению только полноценно масштабировать не выйдет, пока нету методов увеличения и уменьшения текста, но сами рамки масштабировать вполне удастся. Сейчас немного доработал, в планах еще кое-что, показывать наверное уже нет смысла, и так все предельно ясно я считаю, в общем где это появится я пока не знаю. 3 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти