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 Ссылка на комментарий
Real Wolf 34 Опубликовано 18 Июля 2010 Поделиться Опубликовано 18 Июля 2010 Через таймер рэндомно выводить сообщения. Ссылка на комментарий
stalker_monolith 0 Опубликовано 18 Июля 2010 Поделиться Опубликовано 18 Июля 2010 А можешь как можно подробнее расписать как это? Прост в скриптах я новичек. Ссылка на комментарий
ZeeK 57 Опубликовано 18 Июля 2010 Поделиться Опубликовано 18 Июля 2010 У меня может странный вопрос, но все же... Нельзя ли сделать что бы после сна Гг игра сохронялась и тут же загружалась? И если можно то как? Не соответствует. N6260 Ссылка на комментарий
Darien 0 Опубликовано 18 Июля 2010 Поделиться Опубликовано 18 Июля 2010 (изменено) ZeeK Ищешь, где у тебя вызов сна и пишешь что-то вроде того: ... game.start_tutorial("название сна") -- это у тебя уже есть get_console():execute("save 1") -- '1' - название сейва get_console():execute("load 1") ... Scarabay Только через нет пакет. Изменено 19 Июля 2010 пользователем Darien Ссылка на комментарий
Scarabay 98 Опубликовано 19 Июля 2010 Поделиться Опубликовано 19 Июля 2010 Подскажите пожалуйста, как определить визуал монстра/нпс/итема (т.е. название модели которую он юзает)? Заранее спасибо. Мой YouTube-канал Ссылка на комментарий
ФеНиКс 2 Опубликовано 19 Июля 2010 Поделиться Опубликовано 19 Июля 2010 Как будет выглядеть функция удаления опред. ствола и всех патронов опред. класса? Ссылка на комментарий
DiXares 1 Опубликовано 19 Июля 2010 Поделиться Опубликовано 19 Июля 2010 ФеНиКс, походу дела это надо запомнить id заспавненного ствола и уже потом определяем ствол по id и патроны читаем у него из секции(ammo_class), и уже удаляем всё что нужно, тока не могу запомнить, как разделить патроны на несколько, если там в строке ammo_class их несколько... Ссылка на комментарий
Darien 0 Опубликовано 19 Июля 2010 Поделиться Опубликовано 19 Июля 2010 (изменено) Нужна помощь. Считал через нет пакет параметры ствола, но во 1-ых невесть откуда позиция чтения у апдейт пакета стала на 5 байт дальше позиции записи (переписывал код несколько раз, а так же пробовал скрипт АМК - там тоже самое). А во 2-ых консоль выдаёт странный результат: ... get_console():execute("load # sp: "..sp:w_tell().." "..sp:r_tell()) get_console():execute("load # up: "..up:w_tell().." "..up:r_tell()) get_console():execute("load # "..tostring(up:r_eof())) ... Показывает: ... ! Cannot find saved game # sp: 61 61 ! Cannot find saved game # up: 27 32 ! Cannot find saved game # true ... Откуда тут true, если r_eof() возвращает true, когда r_tell < w_tell (а у меня наоборот, r_tell на 5 больше). В общем, прошу знающих людей подсказать. Если надо, выложу сам скрипт. Изменено 19 Июля 2010 пользователем Darien Ссылка на комментарий
bill_gates 1 Опубликовано 20 Июля 2010 Поделиться Опубликовано 20 Июля 2010 (изменено) На движке ЗП пытаюсь записать в файл значение level_vertex/game_vertex. Как можно реализовать запись этих двух значений в две разных строки? function main_menu:save_to_file() if level.present() and (db.actor ~= nil) and db.actor:alive() then local lvid, gvid = db.actor:level_vertex_id(), db.actor:game_vertex_id() local file = io.open("C:\\file.ltx", "w") file:write(tostring("game_vertex = "..gvid)) file:write(tostring("level_vertex = "..lvid)) file:close() end end Запись в файл идет нормально, но проблема в том, что два значения записываются в одну строку. А еще при повторном запуске функции содержимое первой строки заменяется новым результатом... RvP, спасибо. Изменено 20 Июля 2010 пользователем bill_gates Ссылка на комментарий
RvP 1 Опубликовано 20 Июля 2010 Поделиться Опубликовано 20 Июля 2010 bill_gates, "r":режим чтения (используется по умолчанию); "w":режим записи; "a": режим дозаписи в конец файла; "r": режим изменения, все ранее хранившиеся данные сохраняются; "w": режим изменения, все ранее хранившиеся данные сохраняются; "a": режим изменения с дозаписью в конец, все ранее хранившиеся данные защищены, запись разрешена только в конец файла. file:lines () Возвращает функцию-итератор, которая при каждом вызове возвращает новую строку из файла. Т.о. код for line in file:lines() do body end обработает все строки файла. (В отличие от io.lines , эта функция не закрывает файл по окончании цикла (т.е. достижении конца файла).) стандартный ввод-вывод работает с одной строкой Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
ФеНиКс 2 Опубликовано 20 Июля 2010 Поделиться Опубликовано 20 Июля 2010 (изменено) как будет выглядеть функция удаления опред. кол-ва предметов с условием если их больше чем н-ое кол-во, то удаляем, но оставляем один предмет. ... ---------------- и всё же как удалить допустим 300 патронов? Изменено 20 Июля 2010 пользователем ФеНиКс Ссылка на комментарий
DiXares 1 Опубликовано 21 Июля 2010 Поделиться Опубликовано 21 Июля 2010 Здравствуйте! Каким методом можно выключить фонарик у ГГ скриптом? Пробовал: DeviceTorchItem = db.actor:object("device_torch") DeviceTorchItem:get_hanging_lamp():turn_off() - не работает, вылет. И как сделать процентное выполнение скрипта? Типа с 30 % вероятностью выполнить stok() Ссылка на комментарий
Darien 0 Опубликовано 21 Июля 2010 Поделиться Опубликовано 21 Июля 2010 (изменено) TREWKO Простым рандомом if math.random(1, 3) == 1 then stok() Изменено 21 Июля 2010 пользователем Darien Ссылка на комментарий
RvP 1 Опубликовано 21 Июля 2010 Поделиться Опубликовано 21 Июля 2010 TREWKO, вот класс фонарика C++ class CTorch : CGameObject { CTorch (); function Visual(); function _construct(); function getEnabled() const; function net_Import(net_packet&); function net_Export(net_packet&); function getVisible() const; function net_Spawn(cse_abstract*); function use(CGameObject*); }; Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
RvP 1 Опубликовано 21 Июля 2010 Поделиться Опубликовано 21 Июля 2010 Darien, исходя из синтаксиса в lua_help.script получается надо использовать глобальную ф-цию CTorch () Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
DiXares 1 Опубликовано 21 Июля 2010 Поделиться Опубликовано 21 Июля 2010 RvP. attempt to call method 'CTorch' (a nil value) Ссылка на комментарий
RvP 1 Опубликовано 21 Июля 2010 Поделиться Опубликовано 21 Июля 2010 TREWKO, тебе, вот: torch = db.actor:object("device_torch") torch:enable_attachable_item(false) Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Malandrinus 615 Опубликовано 21 Июля 2010 Поделиться Опубликовано 21 Июля 2010 (изменено) RvP, вот класс фонарика C++ class CTorch... Этот класс недоступен, как и большинство остальных из этого разряда. torch = db.actor:object("device_torch") torch:enable_attachable_item(false) У меня не сработало. Изменено 21 Июля 2010 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
RvP 1 Опубликовано 21 Июля 2010 Поделиться Опубликовано 21 Июля 2010 malandrinus, local light = false local torch = stalker:object("device_torch") torch:enable_attachable_item(light) из sr_light.script Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Unnamed Black Wolf 4 Опубликовано 21 Июля 2010 Поделиться Опубликовано 21 Июля 2010 (изменено) Так и что? разницы сильно не являет, если только у malandrinus определение у актера сразу идет. а у тя из сталкера, который наверно переменной числиться передаваемой.. Хмм, продублировал получается функцию. С другой стороны, м.б. это работает только у нпс? Хотя знаю как отрубить фонарик надетый, и врубить.. но вот убрать... Изменено 21 Июля 2010 пользователем Unnamed Black Wolf Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти