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 Ссылка на комментарий
AndreySol 215 Опубликовано 5 Ноября 2011 Поделиться Опубликовано 5 Ноября 2011 (изменено) тогда добавь ещё один "слешь"Помогло, спасибо. Изменено 5 Ноября 2011 пользователем AndreySol Ссылка на комментарий
Desertir 202 Опубликовано 5 Ноября 2011 Поделиться Опубликовано 5 Ноября 2011 Почитай раздел Синтаксис строки форматирования. Мне очень помогло. На счет "не работает". В основном числовые значения в Сталкере имеют тип float или integer. Так что попробуй заменить "%.02d" на "%.02f". По крайней мере у меня при записи в пстор нормально оставалось 2 знака после запятой. ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
strelok200 0 Опубликовано 5 Ноября 2011 Поделиться Опубликовано 5 Ноября 2011 У меня вопрос. Заспавнил НПС function spawn_mutantul() local obj = alife():create("mutantul",vector():set(-66.405685424805,20.100961685181,78.71656036377),1001885,4386) local params = amk.read_stalker_params(sobj) params.custom = "[logic]\ncfg = scripts\\gorizont\\mutantul.ltx" params.sid = 110050 amk.write_stalker_params(params,obj) end Зарегiстрировал sid в game_story_ids. Но на ПДА его метка не отображается. ЧТо неправильно? Создаю глобальный мод с новыми локациямЭ Ссылка на комментарий
Charsi 440 Опубликовано 5 Ноября 2011 Поделиться Опубликовано 5 Ноября 2011 strelok200, ты на него метку поставил? local obj = alife():create("mutantul",vector():set(-66.405685424805,20.100961685181,78.71656036377),1001885,4386) amk.add_spot_on_map(obj.id,"green_location","Mutantul") Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
Ulman 5 Опубликовано 5 Ноября 2011 Поделиться Опубликовано 5 Ноября 2011 Всем доброго времени суток. У меня вопрос по моду ARC 1.0 Lite. Там есть такая проблема, если в контейнере есть артефакт, то после загрузке сейва, при открытии этого контейнера, такой вылет: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...1.0004\gamedata\scripts\arc_ui_container_menu.script:343: attempt to compare number with nil Что делать тут, я ума не приложу. Помогите, заранее спасибо. Ссылка на комментарий
Darkscape 0 Опубликовано 5 Ноября 2011 Поделиться Опубликовано 5 Ноября 2011 Ulman, в 343 строчке скрипта arc_ui_container_menu.script сравнение числа с nil Ссылка на комментарий
strelok200 0 Опубликовано 5 Ноября 2011 Поделиться Опубликовано 5 Ноября 2011 Charsi, да. Так что делать? Создаю глобальный мод с новыми локациямЭ Ссылка на комментарий
Ulman 5 Опубликовано 5 Ноября 2011 Поделиться Опубликовано 5 Ноября 2011 Darkscape, ну значения лога мне не надо, я их и так знаю, мне надо выяснить почему теряется значение после сейва. Если что, вот ссылка на мод. Ссылка на комментарий
7.9 174 Опубликовано 5 Ноября 2011 Поделиться Опубликовано 5 Ноября 2011 Ulman, ну тогда напиши в 337 строке "local t = 0", но это - не очень, попробуй лучше так: в 343 строке "if t or t>0 then ..." Если такие заплатки не помогут -дорабатывай алгоритм. всё легко Ссылка на комментарий
ХОВАН 3 Опубликовано 5 Ноября 2011 Поделиться Опубликовано 5 Ноября 2011 Здравствуйте, проблема с респавном сквадов монстров в ЗП Как делаю: 1. Создал смарт [smart_terrain];esc_b1 squad_id = 2 max_population = 4 respawn_params = respawn@esc_b1 [respawn@esc_b1] boar_respawn [boar_respawn] spawn_squads = simulation_boar_b1 spawn_num = 4 2. Описал в simulation_objects_props.ltx [esc_b1]:default lair = 1 territory = 1 sim_avail = true 3. Ну и сквад [simulation_boar_b1]:online_offline_group faction = monster_vegetarian npc_random = boar_normal, boar_normal, boar_normal, boar_strong npc_in_squad = 2, 3 И вот такие вылеты получаю: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ... - Cia I?eiyoe\gamedata\scripts\smart_terrain.script:584: attempt to index local 'job_data' (a nil value) Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ... - Cia I?eiyoe\gamedata\scripts\xr_reach_task.script:117: attempt to index field '?' (a nil value) При спавне через start_position и удалении строк о респавне - сквад успешно спавниться Также, респавн неписей на другом смарте проходит нормально. Пожалуйста помогите, а то я уже 4ый час висну тут... Также извиняюсь, если вопрос уже звучал в этой теме, но по поиску (респавн +мутантов) ничего не нашел. Заранее спасибо С Уважением, XOBAH Ссылка на комментарий
7.9 174 Опубликовано 5 Ноября 2011 Поделиться Опубликовано 5 Ноября 2011 (изменено) Ulman, ошибочка - не "if t or t>0 then ..." а "if t and t>0 then ..." Изменено 5 Ноября 2011 пользователем 7.9 всё легко Ссылка на комментарий
_Призрак_ 11 Опубликовано 5 Ноября 2011 Поделиться Опубликовано 5 Ноября 2011 (изменено) Немного странный вопрос, но все же. Каким способом можно заставить зависнуть алайф? Оффтопить, плз, -> в соотв.топики, или же потрудись сформулировать вопрос имеющий смысл и в соответствии с темой топика. --/ Artos [x] Изменено 5 Ноября 2011 пользователем Artos Freedom Ссылка на комментарий
Ulman 5 Опубликовано 5 Ноября 2011 Поделиться Опубликовано 5 Ноября 2011 (изменено) _Призрак_, если я правильно понял, то у меня такое было, когда около 100 НПС перешли в онлайн, но может можно и меньше. Достаточно ясно было сказано насчет оффтопика. Согласно правилам форума - оффтопик наказуем. --/ Artos Добавлено через 20 мин.: 7.9, сделал я так ещё в одной строке, заработало, но теперь при попытке вытянуть арт из контейнера в рюкзак получается такой вылет: [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ....k.e.r\gamedata\scripts\arc_ui_container_menu.script:312: attempt to perform arithmetic on field '?' (a nil value) Изменено 5 Ноября 2011 пользователем Artos Ссылка на комментарий
7.9 174 Опубликовано 6 Ноября 2011 Поделиться Опубликовано 6 Ноября 2011 (изменено) Ulman, если мелких заплаток не хватило, значит - "всё серьёзно" - "косяк" где-то в алгоритме (или в адаптации) - в этом случае, подсказать не смогу... Лучше откатиться к первому вылету... Изменено 6 Ноября 2011 пользователем 7.9 всё легко Ссылка на комментарий
ХОВАН 3 Опубликовано 6 Ноября 2011 Поделиться Опубликовано 6 Ноября 2011 По поводу "Сообщение #3134" Проблему решил, точнее, понял из-за чего она. Неписи в кол-ве 20 штук идут с первого смарта, на проблемный, вследствие чего им катастрофически не хватает работ. Но я не понимаю, почему неписи с 1го смарта начали ходить на b1... Ссылок на esc_b1 в gamedata нет Ссылка на комментарий
AndreySol 215 Опубликовано 6 Ноября 2011 Поделиться Опубликовано 6 Ноября 2011 amk.add_spot_on_map(obj.id,"green_location","Mutantul") а как без АМК установку метки сделать ? Ссылка на комментарий
demover123 0 Опубликовано 6 Ноября 2011 Поделиться Опубликовано 6 Ноября 2011 (изменено) Попробуй так function spawn_mutantul(sid,id) local obj = alife():create("mutantul",vector():set(-66.405685424805,20.100961685181,78.71656036377),1001885,4386) local params = amk.read_stalker_params(sobj) if sid==""сюда пишешь ид" then level.map_add_object_spot(id, "green_location","Mutantul") params.custom = "[logic]\ncfg = scripts\\gorizont\\mutantul.ltx" params.sid = 110050 amk.write_stalker_params(params,obj) end Изменено 6 Ноября 2011 пользователем demover123 Ссылка на комментарий
_Призрак_ 11 Опубликовано 6 Ноября 2011 Поделиться Опубликовано 6 Ноября 2011 Вы не правильно делаете. Делается это так: local obj = alife():create(......) level.map_add_object_spot_ser(obj.id,"green_location","Mutantul") Freedom Ссылка на комментарий
MIDERY 0 Опубликовано 6 Ноября 2011 Поделиться Опубликовано 6 Ноября 2011 Здравствуйте, появился вопрос - как заспавнить раненного непися и сделать так, чтобы с ним можно было поговорить, но он при этом не вставал? Пытался анимацией wounded, но при приближении ГГ к нему, он встает. Ссылка на комментарий
ХОВАН 3 Опубликовано 6 Ноября 2011 Поделиться Опубликовано 6 Ноября 2011 По поводу постов: 3134, 3139 Разобрался: Неверно прописал смарты в simulation_objects_props.ltx Смарты были связаны симуляцией по территории... Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти