Перейти к контенту

Рекомендуемые сообщения

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

 
 

Stalkerin. Там есть много хороших статей касательно данной темы.
Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения.

 

Справочное руководство по языку Lua 5.1
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru
Справочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены.

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

 

Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу.

 

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.
-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.
Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов?
В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос.

И последнее: очень рекомендовано к прочтению Правила форума
 


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий

У меня может странный вопрос, но все же...

Нельзя ли сделать что бы после сна Гг игра сохронялась и тут же загружалась?

И если можно то как?

Не соответствует. N6260

Ссылка на комментарий

ZeeK

Ищешь, где у тебя вызов сна и пишешь что-то вроде того:

...
game.start_tutorial("название сна") -- это у тебя уже есть
get_console():execute("save 1") -- '1' - название сейва
get_console():execute("load 1")
...

 

Scarabay

Только через нет пакет.

Изменено пользователем Darien
Ссылка на комментарий

Подскажите пожалуйста, как определить визуал монстра/нпс/итема (т.е. название модели которую он юзает)? Заранее спасибо.

Ссылка на комментарий

ФеНиКс, походу дела это надо запомнить id заспавненного ствола и уже потом определяем ствол по id и патроны читаем у него из секции(ammo_class), и уже удаляем всё что нужно, тока не могу запомнить, как разделить патроны на несколько, если там в строке ammo_class их несколько...

Ссылка на комментарий

Нужна помощь. Считал через нет пакет параметры ствола, но во 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 больше).

В общем, прошу знающих людей подсказать. Если надо, выложу сам скрипт.

Изменено пользователем Darien
Ссылка на комментарий

На движке ЗП пытаюсь записать в файл значение 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, спасибо.

Изменено пользователем bill_gates
Ссылка на комментарий

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

Ссылка на комментарий

как будет выглядеть функция удаления опред. кол-ва предметов с условием если их больше чем н-ое кол-во, то удаляем, но оставляем один предмет. ...

----------------

и всё же как удалить допустим 300 патронов?

Изменено пользователем ФеНиКс
87728-stalker.gif
Ссылка на комментарий

Здравствуйте!

Каким методом можно выключить фонарик у ГГ скриптом?

Пробовал:

DeviceTorchItem = db.actor:object("device_torch")

DeviceTorchItem:get_hanging_lamp():turn_off() - не работает, вылет.

 

И как сделать процентное выполнение скрипта?

Типа с 30 % вероятностью выполнить stok()

Ссылка на комментарий

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,

вот класс фонарика

C++ class CTorch...

Этот класс недоступен, как и большинство остальных из этого разряда.

 

torch = db.actor:object("device_torch")
torch:enable_attachable_item(false)

У меня не сработало.

 

Изменено пользователем malandrinus
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Так и что? разницы сильно не являет, если только у malandrinus определение у актера сразу идет.

а у тя из сталкера, который наверно переменной числиться передаваемой.. Хмм, продублировал получается функцию.

 

С другой стороны, м.б. это работает только у нпс?

Хотя знаю как отрубить фонарик надетый, и врубить.. но вот убрать...

Изменено пользователем Unnamed Black Wolf
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...