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 Ссылка на комментарий
Kondr48 314 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 CRAZY_STALKER666, так такого и нет) это движковые функции. 1 Ссылка на комментарий
Sla-Sla 43 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 @CRAZY_STALKER666, проще кат-сцену в сдк сделать с анимацией камеры. Ссылка на комментарий
Overfirst 637 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 У меня на компьютере нет level.script, может кто скинет? Это пространство имён. Ранее был известен под ником BoBaH_671. Ссылка на комментарий
kmsk 2 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 Приветствую товарищи, объясните мне недалекому человеку: Есть две одинаковые секции в рюкзаке ГГ. ---это в апдейте local slot_1local slot_2local full_slots local tab = { --- таблица с секциями "...",} if slot_1 ~= nil and slot_2 ~= nil thenfull_slots = trueelsefull_slots = falseend----- раздаем id for _, section in pairs (tab) do local item = db.actor:object(section) if item then if full_slots == false then if slot_1 == nil then slot_1 = item:id() db.actor:give_game_news("Слот 1 занят", "ui\\ui_pda_news", Frect():set(0,300,180,100), 0, 10000) end if slot_2 == nil and item:id() ~= slot_1 then -- ПОЧЕМУ ПРИ НАЛИЧИИ ОДНОГО ПРЕДМЕТА СРАБАТЫВАЕТ И ЭТО??? slot_2 = item:id() db.actor:give_game_news("Слот 2 занят", "ui\\ui_pda_news", Frect():set(0,300,180,100), 0, 10000) end else if item:id() ~= slot_1 and item:id() ~= slot_2 then alife():release(alife():object(item:id()), true) end end end end Мне нужно чтобы если при нахождении у гг третьего предмета с одинаковой секцией, удолялся именно последний а не хрен пойми какой... Спасибо за понимание... Вообще, можно ли присвоить предмету индивидуальный номер, и по этому номеру удалить предмет??? Ссылка на комментарий
Kondr48 314 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 (изменено) kmsk, ничего не нужно присваивать, ID это и есть уникальный номер) Изменено 28 Февраля 2016 пользователем Kondr48 Ссылка на комментарий
hi_flyer 75 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 Подскажите, как можно скриптово закрыть окно ПДА? Ссылка на комментарий
Kondr48 314 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 level.start_stop_menu(self, true) У меня кнопка выключения закрывает так) Ссылка на комментарий
kmsk 2 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 Kondr48,тогда почему при нахождении одного предмета, срабатывает как два? Ссылка на комментарий
Kondr48 314 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 (изменено) kmsk, if slot_2 == nil and item:id() ~= slot_1 then Потому что item:id() будет давать одно и то же число, при выполнении цикла для каждого отдельного элемента вашей таблицы, то есть: 1 item - item:id() = постоянное id что бы вы там не присваивали 2 item - аналогично, только id уже другой. Изменено 28 Февраля 2016 пользователем Kondr48 Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 @Sla-Sla, не имею возможности и навыков) Ну ладно, будем пробовать. Не соответствует правилам. Ссылка на комментарий
FonSwong 33 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 (изменено) Как можно сделать динамическм указание [[путь\]], то есть к [[]] добавить окончание из переменной со строковым значением perem_string = "дин.окончание пути"? Изменено 28 Февраля 2016 пользователем FonSwong Ссылка на комментарий
naxac 2 477 Опубликовано 29 Февраля 2016 Поделиться Опубликовано 29 Февраля 2016 (изменено) к [[]] добавить окончание из переменной со строковым значениемТак же, как и к любой другой строке:[[string1]]..'string2' почему при нахождении одного предмета, срабатывает как два?Потому что ты пытаешься получить объект из инвентаря по секции и функция возвращает один и тот же объект.Используй либо iterate_inventory, либо цикл "for i=0, db.actor:object_count()-1 do...". Изменено 29 Февраля 2016 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
FonSwong 33 Опубликовано 29 Февраля 2016 Поделиться Опубликовано 29 Февраля 2016 (изменено) Извиняюсь за глупый вопрос, просто первый раз к звукам притронулся. Так вот, а зачем пути к звукам используют как [[abc/def]] ? А не просто строкой "abc/def" ? И ещё один вопрос в догонку, реально ли сделать так, чтобы при прокрутке игрового времени, допустим во время сна, чтобы вокруг(на тек. левеле) все действия ускорялись- то есть нпс быстрее бегали, физика ускоряла движения объектов и т.д и т.п., чтобы после того же сна, мы видели что было реальное увеличение скорости течения времени(а не как сейчас- всего лишь прокрутка циферок времени) Понятное дело, что для этого придётся изменять двиг+ такое кратковременное ускорение течения времени повлечёт в такие моменты колоссальную нагрузку Изменено 29 Февраля 2016 пользователем FonSwong Ссылка на комментарий
Malandrinus 615 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 @FonSwong, обычно так пишут, когда в пути имеется "бэкслэш", т.е. символ "\". Этот символ специальный, в комбинации со следующим за ним он имеет определённый эффект. Например "\n" - это перевод строки, "\t" - символ табуляции и т.д. Набери в гугле "escape последовательности" и узнаешь больше. Так вот эти специальные комбинации в Lua работают только если строка заключена в кавычки. Чтобы не использовать эти специальные комбинации, а трактовать каждый символ строго как он есть в Lua можно заключить строку в двойные квадратные скобки. Для путей, где обратные слэши встречаются постоянно, это особенно удобно. По второму вопросу. Нет, как ты хочешь не сделать. Кстати, и обратное тоже не сделать, т.е. замедлить все процессы, физику, анимацию, партиклы и т.п., тоже не получится. Т.е. сломо, буллеттайм и т.п. на текущем движке не выйдет. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Dennis_Chikin 3 661 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 Уточню: офлайн-события вполне можно ускорить. То есть, неписи, которые куда-то бегут в офлайне - добегут, стэйты гулагов изменятся, и т.д. В онлайне - отработают те события, которые привязаны к game_time. Передвижения неписей в онлайне и бои между ними - нет. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Space.Marine 466 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 Приветствую уважаемых специалистов. Сам ни разу не скриптёр\программер. Поэтому прошу помощи. Есть мод на ТЧ - "Ремкомплект" - там три скрипта: https://cloud.mail.ru/public/EzpC/A5f3UbsKV Хотел уменьшить количество деталей после "разборки" стволов, но не смог. Я так понял, что кол-во деталей зависит от кондиции ствола. Но не нашёл ту дельту которую нужно уменьшать. Буду очень признателен за помощь. Ссылка на комментарий
Charsi 440 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 @Space.Marine, расчет количества деталей смотри в строке 449 в repair.script. 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
Eugen81 1 008 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 @FonSwong, так же можно использовать и путь в кавычках, только экранируя спец. символ "бэкслэш" еще одним "бэкслэшем": строки из sound_theme.script ph_snd_themes["prapor_music"] = {"characters_voice\\scenario\\prapor\\prapor_music_1", "characters_voice\\scenario\\prapor\\prapor_music_2", ...} ph_snd_themes["dolg_speech"] = {[[characters_voice\scenario\bar\barman_megafon\megaphone_barman_1]], [[characters_voice\scenario\megafon\megafon_music_1]], ... Т.е. "characters_voice\\scenario..." идентичен [[characters_voice\scenario...]] 1 Ссылка на комментарий
Kondr48 314 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 Как постоянно обновлять статик в скриптовом окне? Время например? Ссылка на комментарий
Charsi 440 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 @Kondr48, можно добавить в класс окна метод обновления. function class_name:Update() CUIScriptWnd.Update(self) local h = level.get_time_hours() local m = level.get_time_minutes() self.st_time:SetText(string.format("%02d:%02d", h, m)) end 1 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти