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 Ссылка на комментарий
Push85 4 Опубликовано 18 Марта 2010 Поделиться Опубликовано 18 Марта 2010 кровоSTALKER, а сам то как думаешь? У тебяж в руках огромный справочник в виде оригинальных скриптов, ты там хоть в одном месте такой ужас видел? Сначала меня удивило then в конце, а потом я еще и второй return увидел, почитай статьи по lua... з.ы. через условие делай и возвращай true или false в зависимости от ситуации. Возможно всё, ну или почти всё. Ссылка на комментарий
iDreD 5 Опубликовано 18 Марта 2010 Поделиться Опубликовано 18 Марта 2010 function have_tema_eda2() return sak.have_item_namber("bread",20) ~= false or sak.have_item_namber("konserva",10) ~= false end end Так? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
Malandrinus 615 Опубликовано 18 Марта 2010 Поделиться Опубликовано 18 Марта 2010 кровоSTALKER, Есть тег code. Его использование + форматирование кода - это элементарное уважение к людям на форуме. Это не считая того, что аккуратное форматирование - на самом деле серьёзное средство выявления ошибок, типа лишних или недостающих end-ов. function have_tema_eda2() return sak.have_item_namber("bread",20) or sak.have_item_namber("konserva",10) end Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
dimka.qwer 0 Опубликовано 18 Марта 2010 Поделиться Опубликовано 18 Марта 2010 Решил сделать в ТЧ небольшую базу одиночек на кордоне и сразу же столкнулся с проблемой спауна. Связываться с all.spawn мне не особо хочется и хотелось бы заспаунить нпс на базе через скрипт. Но тут я столкнулся со следующей проблемой: для спавна к примеру 8 разных нпс я так понял придется писать 8 функций спавна, но беда не в этом. Эти функции как-то нужно вызывать, а вот в этом и главная проблема. Вызывать через диалоги - значит наблюдать очень нехилые подвисания и тормоза. Если вызывать через db.script то получится слишком большое его "замусоривание". Для 8 нпс уже требуется немало места - а для нескольких баз и того больше. Ссылка на комментарий
DiXares 1 Опубликовано 18 Марта 2010 Поделиться Опубликовано 18 Марта 2010 Сталкеры! Есть функция воспроизведения звука, только вот громкость не настраивается. function s_stop() end function s_play(path) snd_obj2 = xr_sound.get_safe_sound_object(path) snd_obj2:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d) end function random_sound_amb() local sounds = { [[special_amb\bdog_howling_1]], [[special_amb\bdog_howling_2]], [[special_amb\crow1]]} s_play(table.getn(sounds)) end function volume01() snd_obj2.volume() = 0.1 end function volume02() snd_obj2.volume() = 0.2 end function volume03() snd_obj2.volume() = 0.3 end function volume04() snd_obj2.volume() = 0.4 end function volume05() snd_obj2.volume() = 0.5 end function volume06() snd_obj2.volume() = 0.6 end Где кот зарылся? Ссылка на комментарий
Malandrinus 615 Опубликовано 18 Марта 2010 Поделиться Опубликовано 18 Марта 2010 TREWKO, для начала, volume - это вроде не функция, а свойство. так что snd_obj.volume = ... (работает или нет не проверял). Далее, зачем тебе несколько функций установки громкости? Зачем вообще паковать в функцию действие из всего одной однотипной строки? Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
DiXares 1 Опубликовано 18 Марта 2010 Поделиться Опубликовано 18 Марта 2010 Нет, я просто делаю динамический амбиент из звуков зоны(крики, стрельба в дали), и в определённые моменты звук должен заглушаться. Ссылка на комментарий
Atempad 2 Опубликовано 18 Марта 2010 Поделиться Опубликовано 18 Марта 2010 TREWKO Ммм... И в чем тут рандом - s_play(table.getn(sounds))? Что-то мне подсказывает, что задумывалось все, ну примерно, вот так - s_play(sounds[math.random(table.getn(sounds))]). Suum cuique… Ссылка на комментарий
DiXares 1 Опубликовано 19 Марта 2010 Поделиться Опубликовано 19 Марта 2010 Atempad, нет, просто у меня берётся всё суётся в биндер актора, и функция тащится по кругу, постоянно выбирая рандомную мелодию. Ссылка на комментарий
Atempad 2 Опубликовано 19 Марта 2010 Поделиться Опубликовано 19 Марта 2010 TREWKO Не знаю, что и где у тебя там суется... Но зачем в качестве аргумента, в функцию s_play(path), передаешь размер таблицы, если нужно путь? Suum cuique… Ссылка на комментарий
DiXares 1 Опубликовано 19 Марта 2010 Поделиться Опубликовано 19 Марта 2010 Ыыы. Жесть, не знал, спасибо, только вот, как она у меня работает? В смысле звук врубает, работают звуки рандомно? Ссылка на комментарий
dimka.qwer 0 Опубликовано 19 Марта 2010 Поделиться Опубликовано 19 Марта 2010 Таак... С назначением и содержимым файла npc_profile.xml худо-бедно я разобрался. Но вот файл spawn_sections.ltx для меня пока - темный лес. Судя по моим тестам, он нужен только при спавне скриптом, ибо через алл спавн все спавнится отлично и без него. Прав ли я? :ny_mellow: Ссылка на комментарий
Malandrinus 615 Опубликовано 19 Марта 2010 Поделиться Опубликовано 19 Марта 2010 dimka.qwer, похоже на то, поскольку в all.spawn везде используется только секция stalker Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Phantom1305 0 Опубликовано 19 Марта 2010 Поделиться Опубликовано 19 Марта 2010 Вообще советую спаунить через алл спаун смартами особенно если речь идет о заселении новых локаций, добавляете тудда просто респаун сталкеров и получаете замечательный результат, а так придется по одному спаунить Lost World Mod Ссылка на комментарий
Gektor 0 Опубликовано 19 Марта 2010 Поделиться Опубликовано 19 Марта 2010 Народ, столкнулся с проблемой - поставил бтр на кордоне и заложил маршрут а бтр зараза ни куда не едет- че делать. как заставить это ведро на колесах не только стрелять но и ездить? (бензин вроде есть... :ny_biggrin: ) Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу. Ссылка на комментарий
Atempad 2 Опубликовано 19 Марта 2010 Поделиться Опубликовано 19 Марта 2010 Phantom1305 Если речь идет о заселении новых локаций, то вообще лучше все это делать через SDK и не извращаться. Suum cuique… Ссылка на комментарий
dimka.qwer 0 Опубликовано 20 Марта 2010 Поделиться Опубликовано 20 Марта 2010 Вообще советую спаунить через алл спаун смартами Есть ли какой-нибудь тутор по такому спавну ? Ссылка на комментарий
AKKK1 6 Опубликовано 20 Марта 2010 Поделиться Опубликовано 20 Марта 2010 Таак... С назначением и содержимым файла npc_profile.xml худо-бедно я разобрался. Но вот файл spawn_sections.ltx для меня пока - темный лес. Судя по моим тестам, он нужен только при спавне скриптом, ибо через алл спавн все спавнится отлично и без него. Прав ли я? :ny_mellow: Уточню файл spawn_sections.ltx используется респаунами из алл спавна [2130] ; cse_abstract properties section_name = respawn name = gar_bandit_respawn_1 position = -255.842391967773,0.402019500732422,-16.2054500579834 direction = -0.020167512819171,3.69857480109204e-005,0.00183404912240803 ; cse_alife_object properties game_vertex_id = 309 distance = 9.09999942779541 level_vertex_id = 7422 object_flags = 0xffffff3e custom_data = <<END [respawn] conditions = 0 respawn_section = gar_bandit_respawn_1,3,gar_bandit_respawn_2,2 имена секций из файла spawn_sections.ltx ;max_count = 12 ;min_count = 5 max_spawn = 2 idle_spawn = medium END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 1 ; cse_alife_space_restrictor properties restrictor_type = 0 ; se_respawn properties Ссылка на комментарий
dimka.qwer 0 Опубликовано 20 Марта 2010 Поделиться Опубликовано 20 Марта 2010 (изменено) Ага, теперь понятно Т.е при спавне нпс "поштучно" возиться с этим файлом нет смысла. Вопрос о спавне смартом пока открыт) Изменено 20 Марта 2010 пользователем dimka.qwer Ссылка на комментарий
Phantom1305 0 Опубликовано 20 Марта 2010 Поделиться Опубликовано 20 Марта 2010 Phantom1305 Если речь идет о заселении новых локаций, то вообще лучше все это делать через SDK и не извращаться. У меня к сожалению СДК отсутствует и я думаю что я тут не один такой, поэтому лучше через алл спаун смартами)))) Lost World Mod Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти