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 Ссылка на комментарий
_Призрак_ 11 Опубликовано 16 Августа 2011 Поделиться Опубликовано 16 Августа 2011 for i=1,65535 do local obj = alife():object(i) if obj then if IsStalker(obj) or IsMonster(obj) then get_console():execute("NAME_IS_"..obj:name()) end end end Freedom Ссылка на комментарий
Real Wolf 34 Опубликовано 16 Августа 2011 Поделиться Опубликовано 16 Августа 2011 Кто-нибудь знает, как можно удалить болт? Стандартно не получается. Ссылка на комментарий
Charsi 440 Опубликовано 16 Августа 2011 Поделиться Опубликовано 16 Августа 2011 Удалить и не получится,т.к. у болта нет серверной части.Но можно выкинуть и телепортировать,чтобы под ногами не валялся. local bolt=db.actor:object("bolt") if bolt then db.actor:drop_item_and_teleport(bolt,vector():set(0,0,0)) end Но если сделать сохранение,когда в инвентаре нет объекта на классе болта,то такое сохранение потом не загрузится. Чтобы этого избежать, прежде чем болт выкидывать, нужно другой болт заспавнить в инвентарь. Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
strelok200 0 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 Как заспавнить вёртолет? Причём не в начале игры, а после диалога Создаю глобальный мод с новыми локациямЭ Ссылка на комментарий
Prozone97 0 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 Может кто-нибудь выложить оригинальный аллспавн ТЧ 1.0004? То я свой кажется "Засрал".. Добавлено через 1 мин.: Как заспавнить вёртолет? Причём не в начале игры, а после диалога Попробуй через скрипт) Ссылка на комментарий
strelok200 0 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 вылетает с логом [error]Expression : motion_ID.valid() [error]Function : CKinematicsAnimated::ID_Cycle [error]File : E:\stalker\patch_1_0004\xr_3da\SkeletonAnimated.cpp [error]Line : 136 [error]Description : ! MODEL: can't find cycle: [error]Arguments : $editor Создаю глобальный мод с новыми локациямЭ Ссылка на комментарий
Bartolomyu 4 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 Prozone97, вот, держи allspawn. "Сталкер, защити мир от Зоны, вступи в Долг!" Ссылка на комментарий
Prozone97 0 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 вылетает с логом [error]Expression : motion_ID.valid() [error]Function : CKinematicsAnimated::ID_Cycle [error]File : E:\stalker\patch_1_0004\xr_3da\SkeletonAnimated.cpp [error]Line : 136 [error]Description : ! MODEL: can't find cycle: [error]Arguments : $editor А ты как спавнил? Напиши функцию. И у тебя есть аи вертолета? Ссылка на комментарий
singapur22 14 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 strelok200, При спавне вертолёта через скрипт, обязательно требуется перепаковка net_packet, с переназначением параметров: skeleton_name = idle startup_animation = idle Опаа-а!!! Ливер вылез! Ссылка на комментарий
strelok200 0 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 и как перепаковать net_paket Создаю глобальный мод с новыми локациямЭ Ссылка на комментарий
*Shoker* 322 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 Заспавни вертолёт через all.spawn, и напиши ему в логике чтобы до определённого момента он сидел за картой и не шумел (engine_sound = false) Так в GSC делали, иначе придётся познать чудесный мир lua-скриптов. Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Ulman 5 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 Мне кажется лучше установить АИ вертолётов и не парится, как по мне лучший выбор. И ещё, ребята, дайте пожалуйста ссылку(и) на учебник(и) по LUA, только что бы нормальные были, так что бы от самого начала и по возможности до конца, а то надоело собирать по кускам. Ссылка на комментарий
singapur22 14 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 (изменено) strelok200, Юзай net_utils.script из Симбиона (наиболее полная версия менеджера net_packet объектов игры) Перепаковка, в данном случае будет занимать минимальное количество строк: local sobj = alife():create("helicopter", ... if sobj then local tbl = net_utils.Get_Data_Helicopter(sobj) --//считываем данные net_packet объекта tbl.skeleton_name = "idle" --//переопределяем требуемые параметры tbl.startup_animation = "idle" net_utils.Set_Data_Helicopter(tbl, sobj) --//перезаписываем net_packet объекта end Изменено 17 Августа 2011 пользователем singapur22 Опаа-а!!! Ливер вылез! Ссылка на комментарий
*Shoker* 322 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 (изменено) Ulman http://www.lua.ru/doc/5.6.html Функции сталкера смотри в соответствующей теме на этом форуме, там их очень хорошо разобрали. Изменено 17 Августа 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Stalkersof 185 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 Господа у меня вот такой вопрос. Вопрос скорее по логике задания. Я собираюсь отправить ГГ в забег по телепортам. Телепорты помимо того еще и перебрасывают ГГ на другии локации. Все места необетованные в обычной игре ГГ туда некогда не пройдет. На каждой локации два этапа в последнем телепорте(через рестриктор) он отправляется на следующую локу и т.д. Вот возник вопрос как заселить эти места. Идея такая в конце каждого этапа(на локе из двух подэтапов) есть спейс_рестриктор который и активирует переход на другую локацию. Хочу его использовать и для заселения локации на которую отправится гг и подчищистки (удаления) все го того что было наспавненно на первой локе. Если ГГ пробежит в телепорт и оставит кого нибуть в живых чтоб потом небыло вопросов. Все сделано скриптами. Как лучше реализовать поэтапное заселение чтоб перед телепортацией заселить ту локу куда отправимся и удалить то что осталось на первом этапе? Freeplay Graphic Mod(FGM) Ссылка на комментарий
*Shoker* 322 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 (изменено) Самый простой вариант, т.к заселение скриптами, просто сделай свои секции персонажей (тока в ltx, профили менять не надо) и к началу\концу каждой секции припиши какой нибудь "ключь", например sim_default_stalker_0_portal_npc А дальше в момент телепортации просто делай перебор по iD\ или по db.storage и ищи через string.finde() те секции персонажей, у которых есть в названии _portal_npc и удаляй их Ну и ещё в АМК-скрипте есть возможность сохранять в сейв таблицы. Можешь взять от туда функцию и записывать ID каждого заспавненного тобой НПС, а потом просто перебор этой таблицы и удаление по ID Изменено 17 Августа 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Виталкер 0 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 (изменено) Юзал поиск, но ничего не нашёл...Подскажите как заспавнить ранненого НПС, а точнее какую ему логику писать? Я вот написал но она не работает, нпс просто стоит под гулагом, но ранненого никак не изображает... [smart_terrains] none = true [logic] active = walker [walker] path_walk = vano_help_walk path_look = vano_help_look wounded = wounded meet = no_meet on_info = {+agr_wounded_stalker_heal} walker@2 [walker@2] path_walk = vano_way [wounded] hp_state = 30|help_me@help|29|wounded_heavy@help_heavy hp_state_see = 30|wounded@help_see|29|wounded_heavy@help_heavy psy_state = 50|{=best_pistol}psy_armed,psy_pain@wounded_psy|20| {=best_pistol}psy_shoot,psy_pain@{=best_pistol}wounded_psy_shoot,wounded_psy hp_victim = 30|nil|10|nil hp_cover = 30|true|29|false hp_fight = 30|true|29|false syndata = wounded@help help_dialog = vano_help_dialog Изменено 17 Августа 2011 пользователем Виталкер ВИТ@/\|{ЕР Ссылка на комментарий
Painter 3 463 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 ...какую ему логику писать? Если делаешь на ЗП, то попробуй воспользоваться моим методом: [logic] active = remark [remark] wounded = wounded combat_ignore_cond = true combat_ignore_keep_when_attacked = true gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false meet = no_meet [wounded] hp_state = 101|wounded_heavy@nil hp_state_see = 101|wounded_heavy@nil hp_victim = 101|actor hp_cover = 101|false hp_fight = 101|false autoheal = false not_for_help = false P.S. Вот, самое основное. Дальше сам допиливай... Портфолио Ссылка на комментарий
Виталкер 0 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 Jurok я на ТЧ ВИТ@/\|{ЕР Ссылка на комментарий
Виталкер 0 Опубликовано 17 Августа 2011 Поделиться Опубликовано 17 Августа 2011 (изменено) Хотел спросить, вот есть три вида спавна, all.spawn,скрипт и level.spawn. Короче я через алл.спавн заспавнил разбитую машину, но она "дерётся" - тоесть когда гг к ней прикосается она наносит ему удар и тот умирает...А если в неё стрильнуть, а потом подойти, то всё нормально...Так вот скажите если я через level.spawn заспавню туже машину она будет стоять как "вкопаная"? Изменено 17 Августа 2011 пользователем Виталкер ВИТ@/\|{ЕР Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти