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/
Graff46 621 Опубликовано 2 Февраля 2018 Поделиться Опубликовано 2 Февраля 2018 Только что, qwertyuiop сказал: cannot find clsid for class buddy_psevdopup Нет ассоциации класса серверного с клсидом, нужно настраивать... Папку config от мода в папку acdc скопируйте. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1152346
qwertyuiop 16 Опубликовано 2 Февраля 2018 Поделиться Опубликовано 2 Февраля 2018 problems occurred while scanning config.. try again.и зависает. Известен ли специальный распаковщик для Солянки-2016? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1152347
Graff46 621 Опубликовано 2 Февраля 2018 Поделиться Опубликовано 2 Февраля 2018 Только что, qwertyuiop сказал: Известен ли специальный распаковщик для Солянки-2016? Я не нашёл Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1152348
nasar75 3 873 Опубликовано 3 Февраля 2018 Поделиться Опубликовано 3 Февраля 2018 6 часов назад, qwertyuiop сказал: распаковщик для Солянки-2016 https://www.amk-team.ru/forum/topic/13511-dieticheskaya-solyanka-2016/?do=findComment&comment=1145839 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1152358
Ali_Babai_45 19 Опубликовано 3 Февраля 2018 Поделиться Опубликовано 3 Февраля 2018 Всем Ку! Такая проблема. У одного камрада поломался НС+DMX. Умер квестовый НПС, труп уборщик не прибирает, а при приближении к трупу происходит вылет: Expression : e_parent Function : xrServer::Process_event_reject File : E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_process_event_reject.cpp Line : 11 Description : parent not found. id_parent=64529 id_entity=64522 frame=38558 По этому поводу такие вопросы: 1 Как можно удалить этот труп? 2 Как узнать какие квестовые предметы могут заспавниться в рюкзаке этого трупа? 3 Подойдет ли для НС этот метод спавна через ui_main_menu.script elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then alife():create("Предмет",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1152360
qwertyuiop 16 Опубликовано 3 Февраля 2018 Поделиться Опубликовано 3 Февраля 2018 Спасибо,распаковалось. Quote [1303] ; cse_abstract properties section_name = stalker name = bar_zastava_commander_1 position = 227.857559204102, -0.0100178448483348, -2.56606030464172 direction = 3.13111279126588e-008, -3.04658879233307e-014, 1.20878965503834e-007 version = 118 script_version = 6 spawn_id = 3174 Так как его спавнить, чтобы он стал Киценко, если у него секция - stalker? alife():create принимает координаты, уровень и секцию. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1152415
nasar75 3 873 Опубликовано 3 Февраля 2018 Поделиться Опубликовано 3 Февраля 2018 Спавнить 3174. Не забыть удалить дохлый труп (bar_zastava_commander_1). Подробнее тут: https://www.amk-team.ru/forum/topic/12839-kovyryaem-op-2/?do=findComment&comment=868701 https://www.amk-team.ru/forum/topic/12839-kovyryaem-op-2/?do=findComment&comment=891393 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1152424
qwertyuiop 16 Опубликовано 3 Февраля 2018 Поделиться Опубликовано 3 Февраля 2018 Quote function perespawn(name,spawn_id) local obj for i=1,65534 do obj = alife():object(i) if obj then --dist_to_stalker(obj) if obj:name() == name then printf("nps deleted %s",name) alife():release(obj) break end end end alife():create(spawn_id) end perespawn("Киценко",3174) Не находит Киценко и спавнит рядового без квеста и со случайным именем. Вместо "Киценко" пробовал разные варианты - тоже не работает. Quote function dist_to_stalker(obj) if IAmAStalker[obj:clsid()] then local pos = obj:position() local dist = math.sqrt(pos.x*pos.x+pos.z*pos.z) if dist < 10 and pos.y < -0.1 then printf("stalker horizontal distance %s %f",obj:name(),dist) end end end Пробовал найти имя трупа Киценко перечислением сталкеров, которые близко ко мне - вылетает на obj:position(). Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1152431
nasar75 3 873 Опубликовано 3 Февраля 2018 Поделиться Опубликовано 3 Февраля 2018 @qwertyuiop function perespawn() local obj for i=1,65534 do obj = alife():object(i) if obj and obj:name() == "bar_zastava_commander_1" then -- имя секции из аll.spawn alife():release(obj) break end end alife():create(3174) -- номер секции из аll.spawn end Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1152437
qwertyuiop 16 Опубликовано 3 Февраля 2018 Поделиться Опубликовано 3 Февраля 2018 (изменено) Quote perespawn("bar_zastava_guard_3",3173) А он, оказывается, не командир,замаскировался.Перечислил трупы, используя фильтры перебором подходящих,, и нашел его.В файл писать нельзя, потому длинный список нельзя весь посмотреть.Или у меня сломалась игра, потому что в config\gameplay\character_desc_bar.xml: Quote <specific_character id="bar_zastava_commander_1" team_default = "1"> <name>bar_kicenko_name</name> Quote function name_dead_stalker(obj) if IAmAStalker[obj:clsid()] and not obj:alive() then local name = obj:name() if name and string.find(name,"zastava") --[[and string.find(name,"dolg") and not string.find(name,"ammo") and not string.find(name,"wpn") and not string.find(name,"respawn") and not string.find(name,"bunker") and not string.find(name,"regular") and not string.find(name,"blokpost") ]]-- then printf("dead stalker %s",name) end end end Теперь вопрос, как его переименовать и всучить диалог "Киценко убили, я вместо него", а то некрасиво получается.Скриптами без патчения all.spawn. Изменено 3 Февраля 2018 пользователем qwertyuiop Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1152450
Graff46 621 Опубликовано 3 Февраля 2018 Поделиться Опубликовано 3 Февраля 2018 (изменено) Только что, qwertyuiop сказал: Теперь вопрос, как его переименовать и всучить диалог "Киценко убили, я вместо него", а то некрасиво получается.Скриптами без патчения all.spawn. Что вы мучаетесь! В spawn_sections.ltx создайте секцию Криценко на основе данных из олл.спавна, если надо логику в отдельный файл скопируйте и в поле custom_data ссылку на файл поставте, и спавните скриптом этого Криценко сколько угодно. Изменено 3 Февраля 2018 пользователем Graff46 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1152454
qwertyuiop 16 Опубликовано 11 Февраля 2018 Поделиться Опубликовано 11 Февраля 2018 (изменено) Пытаюсь изменить отношение группировки к ГГ Quote function set_friend(community) local obj for i=1,65534 do obj = alife():object(i) if obj and IAmAStalker[obj:clsid()] and obj:alive() then if obj.community ~= nil and obj:community() == community then printf("stalker %s",obj:name()) rel = obj:relation(db.actor) s = "????" if rel == game_object.neutral then s = "neutral" elseif rel == game_object.friend then s = "friend" elseif rel == game_object.enemy then s = "enemy" end printf("relation %s",s) end end end end Вылетает по relation== nil. Это как сталкер есть, живой, в группировке, а relation() не существует? set_relation тоже у всех nil. Изменено 11 Февраля 2018 пользователем qwertyuiop Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1154016
dsh 3 824 Опубликовано 11 Февраля 2018 Поделиться Опубликовано 11 Февраля 2018 @qwertyuiop потому, что это методы клиентского объекта, а ты тут перебираешь серверные объекты. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1154028
Dennis_Chikin 3 665 Опубликовано 17 Февраля 2018 Поделиться Опубликовано 17 Февраля 2018 Перезарядку оружия у актора, как я понимаю, отследить невозможно ? В смысле, что анимка выполняется ? Только факт, что патроны появились ? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1155289
dsh 3 824 Опубликовано 18 Февраля 2018 Поделиться Опубликовано 18 Февраля 2018 @Dennis_Chikin в x-ray extensions возможно. Там можно получить текущее состояние худовой модели. Одно из них - перезарядка. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1155303
Dennis_Chikin 3 665 Опубликовано 18 Февраля 2018 Поделиться Опубликовано 18 Февраля 2018 Да как бы и черт бы с ним, кривизну моделей скриптами лечить... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1155338
Возрождённый 356 Опубликовано 18 Февраля 2018 Поделиться Опубликовано 18 Февраля 2018 В 03.02.2018 в 00:29, Graff46 сказал: В ТЧ свободовцам монстры друзья... Есть ли лечение? Может ты хотел сказать "монолитовцам"? Монстры за обе щеки уплетают "анархистов". Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1155350
Graff46 621 Опубликовано 19 Февраля 2018 Поделиться Опубликовано 19 Февраля 2018 (изменено) Есть ли способ получить из коллбека сохранения имя сейва, или другим способом, но при условии, что сейв делается через консоль, т. е. имя сейва не в какие поля не вводилось? Изменено 19 Февраля 2018 пользователем Graff46 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1155642
dsh 3 824 Опубликовано 19 Февраля 2018 Поделиться Опубликовано 19 Февраля 2018 @Graff46 можно взять список сейвов, отсортировать их по дате и первый, всегда будет самый свежий. В диалоге загрузки сейва так делается. А вот в какой момент так делать, уже тебе решать. Например, из bind_stalker.save. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1155691
Dennis_Chikin 3 665 Опубликовано 19 Февраля 2018 Поделиться Опубликовано 19 Февраля 2018 Кстати, о птичках - напомните, как отлавливается квик-сэйв/квик-лоад ? То есть, перехатить попытку, и успеть что-нибудь сделать, "пока не началочась" ? Коллбэк актора - это уже поздно. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/448/#findComment-1155717
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти