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 Ссылка на комментарий
AndrewMor 530 Опубликовано 7 Января 2017 Поделиться Опубликовано 7 Января 2017 Класс hit в луа-хедл. С чем едят такую константу const light_burn = 11? burn - ожог, chemical_burn - хим. ожог, а это что за тип урона? И кто/что его наносит? Сталкер - наше всё! Ссылка на комментарий
UnLoaded 313 Опубликовано 8 Января 2017 Поделиться Опубликовано 8 Января 2017 С чем едят такую константу const light_burn = 11? Поиском по содержимому файлов в исходниках(1.0007rc1) и в чистой геймдате ТЧ(папки скрипт и конфиг) не нашел такого. Если это у тебя мод какой-то - лучше с вопросом к авторам. Ссылка на комментарий
AndrewMor 530 Опубликовано 8 Января 2017 Поделиться Опубликовано 8 Января 2017 UnLoaded, мод на базе ОГСМ+ФАЕ, основные скрипты оттуда. Просто увидел такую константу и задумался, что ж это за урон такой Сталкер - наше всё! Ссылка на комментарий
DEXER 61 Опубликовано 8 Января 2017 Поделиться Опубликовано 8 Января 2017 @AndrewMor, можешь рассказать немного поподробнее это мод на ТЧ или ЧН? Такой тип урона встречал в чистом ЗП для аномальной зоны жара и возможно горячего пара, а если будет burn то гг будет постоянно замедляться при получении урона в такой зоне, в ЧН так по умолчанию. Ссылка на комментарий
losiara 13 Опубликовано 8 Января 2017 Поделиться Опубликовано 8 Января 2017 Добрый день!!! Есть функция для квестов по типу: function aes_monolit_osoznanie_have(task, info)if db.actor and db.actor:has_info("aes2_osoznanie_death") and db.actor:has_info("aes2_osoznanie_death2") and db.actor:has_info("aes2_osoznanie_death3") ~= nil thenreturn db.actor:give_info_portion("aes_monolit_osoznanie_have") ~= nilendreturn falseend Тут понятно, игра ищет инфопоршни, и если они выданы, то выдает свой "aes_monolit_osoznanie_have" кот. и завершает подзадачу, после чего у меня появляется следующая ветка диалога. А вот как можно переделать функцию что бы поиск шел какого то одного поршня типа: если выдан поршень "..." любой из перечисленных, то подзадача завершена. Если сделать так: function aes_monolit_osoznanie_have(task, info)if db.actor and db.actor:has_info("aes2_osoznanie_death") or db.actor:has_info("aes2_osoznanie_death2") or db.actor:has_info("aes2_osoznanie_death3") ~= nil thenreturn db.actor:give_info_portion("aes_monolit_osoznanie_have") ~= nilendreturn falseend То подзадача завершается автоматически, как будто бы поршни найдены, а это невозможно, ибо они выдаются по секции "on_death" Кто сможет подскажите. Жизнь следует измерять поступками, а не временем... Ссылка на комментарий
UnLoaded 313 Опубликовано 8 Января 2017 Поделиться Опубликовано 8 Января 2017 (изменено) or db.actor:has_info("aes2_osoznanie_death3") ~= nil В твоем варианте получается, что срабатывает последнее условие, т.к. отсутствие инфо-порции - это false, и false ~= nil. Убери вообще " ~= nil", поправь так: if db.actor and (db.actor:has_info("aes2_osoznanie_death") or db.actor:has_info("aes2_osoznanie_death2") or db.actor:has_info("aes2_osoznanie_death3")) then и будет тебе счастье... Изменено 8 Января 2017 пользователем UnLoaded 1 Ссылка на комментарий
gam 117 Опубликовано 8 Января 2017 Поделиться Опубликовано 8 Января 2017 Если вызов через апдейт - то наверно вернее так: if not db.actor:has_info("aes_monolit_osoznanie_have") and (db.actor:has_info("aes2_osoznanie_death") or db.actor:has_info("aes2_osoznanie_death2") or db.actor:has_info("aes2_osoznanie_death3")) then db.actor:give_info_portion("aes_monolit_osoznanie_have") end 1 Ссылка на комментарий
AndrewMor 530 Опубликовано 8 Января 2017 Поделиться Опубликовано 8 Января 2017 можешь рассказать немного поподробнее это мод на ТЧ или ЧН На ТЧ конечно. Сталкер - наше всё! Ссылка на комментарий
Graff46 598 Опубликовано 9 Января 2017 Поделиться Опубликовано 9 Января 2017 У меня вопрос возможно ли скриптово "перемещать" НПС? НПС в игре двигаются по нодам, но двигает их ИИ, в логике мы можем лишь управлять навигацией НПС по нодам ( ищи нод в том направлении и иди на него). А меня интересует, можно ли "двигать" сталкера, мол в том направлении столько то метров, анимация не обязательна... Ссылка на комментарий
naxac 2 447 Опубликовано 9 Января 2017 Поделиться Опубликовано 9 Января 2017 (изменено) @Graff46, в ЗП есть функция перемещения нпс: set_npc_position(vector), в ЧН/ТЧ, вроде, их только по нодам гонять можно. Изменено 9 Января 2017 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Kondr48 314 Опубликовано 9 Января 2017 Поделиться Опубликовано 9 Января 2017 Graff46, в 7 патче точно есть функция телепортации НПС. Ссылка на комментарий
Zander_driver 10 342 Опубликовано 10 Января 2017 Поделиться Опубликовано 10 Января 2017 @Graff46, @Kondr48, Если уж браться за телепортацию, то можно увести в оффлайн, записать новые координаты в нетпакет, (или смещениями, если XEесть), и вернуть в онлайн.В принципе даже на глазах ГГ это выглядит как мгновенная телепортация. ищи нод в том направлении и иди на него Тут расстояние тоже можно указывать, не обязательно брать ближайший нод в указанном направлении, можно взять дальше. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
dsh 3 824 Опубликовано 10 Января 2017 Поделиться Опубликовано 10 Января 2017 можно взять дальше Можно, только жутко не удобная это штука. Если нужен вертекс на расстоянии, скажем, двух метров в определенном направлении, а в том направлении стена на расстоянии один метр, то получить вертекс за стеной не получится. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Zander_driver 10 342 Опубликовано 10 Января 2017 Поделиться Опубликовано 10 Января 2017 Для некоторых целей, и в том числе для движения нпс если мы не хотим допускать их хождение сквозь стены, это даже лучше. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
losiara 13 Опубликовано 13 Января 2017 Поделиться Опубликовано 13 Января 2017 Добрый день!!! Вот бьюсь не пойму в чем дело, добавляю однотипные квесты торговцам, и существующим в игре и новым, вроде проблем нет, кроме одного задания "убить сталкера", ставлю НПС новых не показывает ветку диалога, если поставить целью например Волка "esc_wolf" ветка появляется и задание работает, в чем хитрость может быть??? И СИДы присваивал не помогает и скриптовых создавал и через all.spawn по барабану ветка не срабатывает. Кто знает подскажите!!! Жизнь следует измерять поступками, а не временем... Ссылка на комментарий
Zander_driver 10 342 Опубликовано 15 Января 2017 Поделиться Опубликовано 15 Января 2017 Кто знает подскажите!!! Но он в отпуске... 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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 Опубликовано 15 Января 2017 Поделиться Опубликовано 15 Января 2017 Кто знает подскажите!!! Чудес не бывает - проверяй все внимательно. Если на Волка срабатывает нормально, значит что-то не то с добавленными тобой новыми неписями. Ну и код в студию - покажи, что прописывал в task_manager.ltx. Ссылка на комментарий
losiara 13 Опубликовано 15 Января 2017 Поделиться Опубликовано 15 Января 2017 (изменено) Zander_driver Я понял НАМЕК, спасибо!!! Изменяю тактику поведения... UnLoaded [pri_bandit_kill_stalker_1] type = kill_stalkercommunity = actortext = pri_bandit_kill_stalker_1_textdescription = pri_bandit_kill_stalker_1_descrparent = pri_bandittarget = gar_bandit_novice_wounded ; сей тоже из игры Пысовский, рабочий вариант! Временно его использую, тестово.reward_money = 4500reward_reputation = +35reward_rank = 3reward_item = af_vyvert, ammo_9x19_pbp, ammo_9x19_pbp, ammo_9x19_pbptime = 604800 <article id="pri_bandit_kill_stalker_1_descr" name="kill_stalker" article_type="task"> <text>pri_bandit_kill_stalker_1_descr</text> </article> <string id="pri_bandit_kill_stalker_1"> <text>Текст</text> </string> <string id="pri_bandit_kill_stalker_1_descr"> <text>Текст</text> </string> <string id="pri_bandit_kill_stalker_1_text"> <text>Текст</text> </string> НПС торговец новый, однако даже при добавлении дополнительной ветки Сидоровичу или Бармену тема та же самая, не появляется ветка в игре!!! Изменено 15 Января 2017 пользователем losiara Жизнь следует измерять поступками, а не временем... Ссылка на комментарий
naxac 2 447 Опубликовано 16 Января 2017 Поделиться Опубликовано 16 Января 2017 (изменено) @losiara, а "gar_bandit_novice_wounded" - это имя профиля или имя нпс? =========================== @losiara, да, нужно имя профиля нпс. Изменено 17 Января 2017 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Marafon6540 785 Опубликовано 16 Января 2017 Поделиться Опубликовано 16 Января 2017 Парни, такой вопрос. Столкнулся с тем, что активный слот у меня равен 4294967296 - выбросил оружие, проверил слот и получил такое число. В связи с этим такой вопрос. Если я сделаю вот такую проверку: local a = db.actor log1(a:active_slot()) if a:active_slot() == 2 or a:active_slot() == 4294967296 then Это будет правильно? Не получу я никакой бяки в последующем? Трилогия Апокалипсис. Упавшая звезда. Честь наемника. v. 1.2 УЗЧН v.1.3 + ОГСРх64 Последний сталкер v. 1.2 ПС v. 1.3 + ОГСРх64 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти