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 Ссылка на комментарий
KDit 3 Опубликовано 29 Сентября 2009 Поделиться Опубликовано 29 Сентября 2009 (изменено) Костя.н.ы.ч, Спасипо, тепер я понял... ==================================== А в файле se_respawn.script ничево не надо изменять? Изменено 29 Сентября 2009 пользователем Killer-44 Ссылка на комментарий
Kirag 39 Опубликовано 5 Октября 2009 Поделиться Опубликовано 5 Октября 2009 Struck, то, что можно - это 100%, именно так оно и сделано в оригинале. Выполнение квестов отслеживается по инфопоршенам, а выдаются они тремя способами: либо в диалоге, либо в логике объектов, либо скриптами. Подробности зависят уже от конкретной ситуации, это надо копать квесты оригинала, тут я не углублялся. Но при определенных условиях выдать скриптом инфопоршен, означающий начало квеста - не проблема: db.actor:give_info_portion("название_инфопоршена") - выдать db.actor:disable_info_portion("название_инфопоршена") - убрать if db.actor:has_info("название_инфопоршена") then ... - проверка на наличие if not db.actor:has_info("название_инфопоршена") then ... - проверка на отсутствие Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
ZeraM 0 Опубликовано 8 Октября 2009 Поделиться Опубликовано 8 Октября 2009 Привет ребят. Не знаю в той ли теме создал топик. Вопрос такой. Кто знает , подскажите. Можно ли каким нибудь образом (к примеру) заспавнить на выходе из деревни новичков смотровую вышку (например как на базе военных). кто знает плиз подскажите каким образом это вообще реально осуществить. И мертвый месяц еле освещает путь . И звезды давят нам на грудь , не продохнуть. И воздух ядовит как ртуть , нельзя свернуть , нельзя шагнуть , но мы пройдем опасный путь , через туман.... Ссылка на комментарий
Pihan13 9 Опубликовано 10 Октября 2009 Поделиться Опубликовано 10 Октября 2009 Nekt, ZeraM, возможно в моде Priboy story было. как я помню в логику объекту надо прописать [collide] ignore_static Локация "Жилище Картографа" Хелп по созданию смарт террейнов Ссылка на комментарий
FaithGTX 0 Опубликовано 10 Октября 2009 Поделиться Опубликовано 10 Октября 2009 Нужна помощь скриптеров. Нужен такой скрипт: Когда ГГ использует предмет "Х", то в рюкзаке ГГ появляются предметы "Z" и "Y"... Ссылка на комментарий
Night_SH 0 Опубликовано 16 Октября 2009 Поделиться Опубликовано 16 Октября 2009 Привет всем, недавно задался целью натворить что нибудь в логике npc, с англиским я не дружу поэтому возникли трудности. Кто знает какие параметры в скрипте xr_abuse.script отвечают за удар по морде ГГ если он не уберёт оружие. Причём в ТЧ это могли делать только уникальные npc а я говорю о скрипте на ЗП. (в ЗП не разу не получил по морде ещё ) В общем кто знает как сделать что бы все npc били ГГ по морде если он не убирал оружие, скажите плиз. Добавлено через 2 мин.: Привет ребят. Не знаю в той ли теме создал топик. Вопрос такой. Кто знает , подскажите. Можно ли каким нибудь образом (к примеру) заспавнить на выходе из деревни новичков смотровую вышку (например как на базе военных). кто знает плиз подскажите каким образом это вообще реально осуществить. Не возможно, юзай SDK. Добавлено через 2 мин.: PS. забыл спросить, у кого есть мод lootmoney или народная соля? он там должен быть, кто может залейте плиз. Ссылка на комментарий
Neptun 213 Опубликовано 16 Октября 2009 Поделиться Опубликовано 16 Октября 2009 Подскажите-где и что можно почитать, чтоб "антивыброс" из ЗП создать и вставить(чтоб работал) в НС? Извините, если не в тему-но уже три часа читаю, нигде нет про подобные вещи. Когда поднимается вода - рыбы едят муравьев , когда вода уходит - муравьи едят рыб. Пусть никто не полагается на свое сегодняшнее превосходство! Аврелий Августин Ссылка на комментарий
Wlad777 24 Опубликовано 16 Октября 2009 Поделиться Опубликовано 16 Октября 2009 Подскажите пожалуйста, как прописать смарттеррейну, записанному в аллспавне, "многоразовое" включение-отключение? Скажем, он включен пока нет инфопоршен-1. Получив его он отключается. Через некоторое время мне надо его опять включить при получении инфопоршен-2. И потом опять выкл. при инфопоршен-3. --------------------------------- www.amk-zone.de Ссылка на комментарий
Wawka 5 Опубликовано 20 Октября 2009 Поделиться Опубликовано 20 Октября 2009 А не проще будет поиграться одним инфопоршеном? Выдал (give_info) - гулаг включился. Забрал (disable_info) - выключился. Смарту прописать строку: cond = {+инфопоршен} Ссылка на комментарий
Writer 1 Опубликовано 20 Октября 2009 Поделиться Опубликовано 20 Октября 2009 (изменено) Подскажите Можно ли через алл.спавн заспавнить двери? Открывающиеся. И если можно скажите несколько названий... Изменено 20 Октября 2009 пользователем Writer Правельно пейсать "мадыратарчег", патамукаг проверочнойе слова "красафчег". Ссылка на комментарий
zaza10 0 Опубликовано 24 Октября 2009 Поделиться Опубликовано 24 Октября 2009 в зове припяти вставляю в bind_stalker.script такой код: if true then local hud = get_hud() local custom_static = hud:GetCustomStatic("cs_debug" ) if custom_static == nil then hud:AddCustomStatic("cs_debug", true) custom_static = hud:GetCustomStatic("cs_debug" ) end local lvid, gvid = db.actor:level_vertex_id(), db.actor:game_vertex_id() local pos, dir = db.actor: position(), db.actor:direction() local pos2 = level.vertex_position(lvid) local valid = pos2:distance_to(pos) <= 0.7 local msg = string.format("lvid: %d\\n", lvid) .. string.format("gvid: %d\\n", gvid) .. string.format("pos: %f,%f,%f\\n", pos.x, pos.y, pos.z) .. string.format("dir: %f,%f,%f\\n", dir.x, dir.y, dir.z) .. string.format("valid: %s", tostring(valid)) if custom_static = nil then custom_static:wnd():SetText(msg) end end при загрузке вылет: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...рипяти\gamedata\scripts\smart_terrain_control.script:65: attempt to index field 'actor' (a nil value) что делать? Ссылка на комментарий
Vano_Santuri 33 Опубликовано 24 Октября 2009 Поделиться Опубликовано 24 Октября 2009 Такой маленький вопрос, в ЗП ( хотя без разницы наверно) спавню предмет, функция стандартная alife():create("n",vector():set(x,y,z),level_vertex,game_vertex_id) Так вот, чего надо под ней подписать, чтоб задать количество"жизней" ну то есть степень целости? Далее, апдейт спавне через бинд.сталкер, но прилепил к нему проверку на if spawn_item.load_variable("spawn_item",false)==false then spawn_item.brona_on_levels() spawn_item.save_variable("spawn_item",true) end (взято из фака Меченого(стрелка) по нпс) вопрос в следующем, вот заспавнился этот предмет, его номер или что там сохранился , если его продать, он исчезнет из игрового мира? или перейдет в оффлайн? и останется ли запись о том что он уже был? т.е повторного спавна не будет? Что-то кончается, что-то начинается... Ссылка на комментарий
sapsan 336 Опубликовано 26 Октября 2009 Поделиться Опубликовано 26 Октября 2009 (изменено) Вопрос №1: Объекты созданные так: for a=1,65535,1 do local obj = alife():object(a) if obj then проходят проверки: 1. IsStalker(obj) 2. obj:alive() При попытке получить используемый бронежилет local outfitMain = obj:get_current_outfit() получаю ошибку: [error]Arguments : LUA error: ....t.a.l.k.e.r\gamedata\scripts\sak_off_corpses.script:629: attempt to call method 'get_current_outfit' (a nil value) При попытке пройтись по инвентарю с помощью obj:inventory_for_each(function(item) local section = item:section() end) ошибка: [error]Arguments : LUA error: ....t.a.l.k.e.r\gamedata\scripts\sak_off_corpses.script:353: attempt to call method 'inventory_for_each' (a nil value) c iterate_inventory() - аналогично... Что делать? Это obj не правильный ? P.S. Пробовал также использовать item_in_slot(6) - тот же результат. Я так понимаю, что эта функция только для ГГ. Вопрос №2: функция cost() возвращает значение с учётом condition() или нужно делать так: cost() * condition() ? P.P.S. Как я понял - зря я парюсь с определением текущего бронежилета у непися, если, как я понял, у непися какой визуал - такой и бронежилет и в рюкзаке у него нету этого самого текущего броневизуала вообще Изменено 26 Октября 2009 пользователем sapsan Ссылка на комментарий
Гость max_max_08 Опубликовано 26 Октября 2009 Поделиться Опубликовано 26 Октября 2009 Вопрос про тч. Через алл.spаwn создал нпс, как сделать что-бы он появился после получения поршна? Ссылка на комментарий
Shadowman 939 Опубликовано 26 Октября 2009 Поделиться Опубликовано 26 Октября 2009 max_max_08, в аллспавн-е в секции непися, которого спавнить по поршню, пишешь: [spawner] cond = {+<твой поршень>} (без <>). Как только ГГ получит поршень, непись спавнится как ты в аллспавн пропишешь. Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64 Ссылка на комментарий
Гость max_max_08 Опубликовано 26 Октября 2009 Поделиться Опубликовано 26 Октября 2009 Спасибо, с этим понятно, обнаружил такой баг, спавню скриптом тайник на кирпичной стене, а он проваливается до земли, менял координаты раза 3 не помогает. Ссылка на комментарий
Arhara 32 Опубликовано 26 Октября 2009 Поделиться Опубликовано 26 Октября 2009 P.P.S. Как я понял - зря я парюсь с определением текущего бронежилета у непися, если, как я понял, у непися какой визуал - такой и бронежилет и в рюкзаке у него нету этого самого текущего броневизуала вообще Светлая мысль Добавлено через 4 мин.: max_max_08, Всё просто. Либо не попал с точкой, либо стена - не часть карты. Проверить просто - взять простой рюкзак и выкинуть его в нужном месте. Останется на стене - замерить координаты, нет - тогда есть другой способ. Можно рюкзак заспавнить и на уровне полёта верух - было бы желание. Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка Ссылка на комментарий
Гость max_max_08 Опубликовано 28 Октября 2009 Поделиться Опубликовано 28 Октября 2009 Где-то на форуме видел функцию спавна, там можно спавнить нпс и сразу присвоить ему файл с логикой, скиньте кто-нибудь ее сюда, а то найти не могу. Ссылка на комментарий
Vano_Santuri 33 Опубликовано 30 Октября 2009 Поделиться Опубликовано 30 Октября 2009 Парни вырцчайие, а можн ли динамически(через скрипт) заспавнить точку на карте( как в вейтах в аллспаун) , если да, то где можно посмотреть функцию, в каком файлике. Если нет, тотогда вопрос, если спавнишь мостра, ему можно приписать логику как и нпс, т.е function ....... цфг = путь к крнфигу логики енд Получит ли монстр логику? и куда она сохранится? вернее запись о ней будет сохранена? чтоб при загрузке уровня монстр использовал эту логику? Что-то кончается, что-то начинается... Ссылка на комментарий
arkawa 0 Опубликовано 1 Ноября 2009 Поделиться Опубликовано 1 Ноября 2009 (изменено) max_max_08, вот: function NPC_spawn() local obj=alife():create("NPC_name",vector():set(-2.1258702278137,9.3212881088257,-4.601375579834),2410,1109) local params=amk.read_stalker_params(obj) params.custom="[logic]\ncfg=scripts\\NPC_logic.ltx" - логика params.sid=65531 amk.write_stalker_params(params,obj) end Изменено 1 Ноября 2009 пользователем arkawa Не соответствует. N6260 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти