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

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

Тема для обсуждения скриптов всего и всех в серии игр 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
Ссылка на комментарий

@Kober(BRUC)

Всё зависит от того, будешь ли ты использовать объекты созданных нпс и как.
Если нет (скорее всего пока не будешь :)), то как вариант

-- тут таблица с координатами

function spawn_z_escape_1(section, count)
    local data = math.random(#pos_tbl)
    count = count or 1
    for i = 1, count do
        alife():create(section, vector():set(unpack(data.pos)), data.lvid, data.gvid)
    end
end

function r_zombie_1()
    spawn_z_escape_1("zombie_new_k_1", 2)
end 
Изменено пользователем Nazgool
  • Спасибо 1
Ссылка на комментарий

 

 

2) благодаря этой строчке:

О чем я говорил десяток постов назад.

У меня просто терпение кончается, глядя на такое. Снимаю шляпу перед терпеливостью @Nazgool,

  • Нравится 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

Вопрос такой - существует ли код для определения типа патронов, заряженных в оружии? Если да, неплохо бы на него глянуть.

Здесь могла быть ваша реклама.

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

@mole venomous, получить нетпакет оружия, взять из него ammo_type, прочитать из его конфига ammo_class, выбрать из списка боеприпасов тот, который указан в ammo_type.
Остались вопросы? Чтот народ совсем обленился, на каждую хотелку готовое решение просят.


 

 

потребует ли он кардинальной правки?

Не считая того что там нет даже попыток ковыряния нетпакетов. Я бы все равно переделал - непонятно зачем два раза писать одни и те же блоки кода для 1-го и для 2-го слота.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий
код для определения типа патронов, заряженных в оружии?
function Get_ammo_type(wpn_id) -- wpn_id - id ствола --
     local sobj = alife():object(wpn_id)
     if not sobj then
          return nil 
     end

     local np = net_packet()
     sobj:STATE_Write(np)
     local size = np:w_tell()
     np:r_seek(size - 1)
     return np:r_u8() -- 0 - 1-й тип боеприпасов, 1 - 2-й тип боеприпасов и т.д. (из конфига ствола) --
end

Это для ТЧ.

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

Не, народ не обленился. Исправно и стабильно ищет выход из сложившейся непростой ситуации. Пытался я "поймать" ammo_type сам, защёл в тупик и только тогда обратился за советом. Однако же, спасибо.

  • Согласен 1

Здесь могла быть ваша реклама.

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

Ну пардон. Тогда вот так.

function get_wpn_ammotype(wpn_id, wpn_section)
local sobj = alife():object(wpn_id)
            if not sobj then return nil end
            local packet = m_net_utils.Get_NetPacket(sobj)
            local ammo_class = ui_wpn_params.GetAmmos(wpn_section) -- возвращает список боеприпасов этого ствола в виде таблицы
            local ammo_type = packet.ammo_type
            local used_ammo = ammo_class[ammo_type + 1] -- текущие БП
            return used_ammo
end

Если уж давать код, то я бы поостерегся ковыряния нетпакета "на коленке". а то человек же туда залезет и начнет там чего-то менять, не понимая.

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

А если без левых функций, то можно так:

function get_current_ammo(wpn)
     if not wpn then return nil end

     local sobj = alife():object(wpn:id())
     if not sobj then return nil end

     local pk = net_packet()
     sobj:STATE_Write(pk)
     pk:r_seek(pk:w_tell() - 1)
     local ammo_type = pk:r_u8()

     local ammo = {}
     local str = system_ini():r_string(wpn:section(), "ammo_class")
     for s in string.gfind(str, "[%w%-%._]+") do
          ammo[#ammo+1] = s
     end

     return ammo[ammo_type+1]
end

 

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

Здравствуйте. Можно ли сделать через спейсрестриктор (или по другому) изменение звука выстрела оружия. То есть на улице проигрывается по дефолту (например ak_shot_1), а в доме ak_shot_2. Хотелось бы продвинуть сталкер в данной теме. А то звуки сделал, а внедрить не получается). И еще как сделать стрео звук природы в ТЧ по примеру эмбиента (с каналами _l и _r).

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

 

 

численное значение текущего cam_fov

 

А какое оно еще может быть? Возможно ты имеешь ввиду db.actor:get_camera_fov()

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

 

 

Уже есть тема

это не то. Мне нужно принудительно изменение звука (уже заготовленного), а не изменение реверберацией. Так во всех шутерах.
Ссылка на комментарий

 

 

Мне нужно принудительно изменение звука

Если я не ошибаюсь, без ковыряний в движке это никак не сделать.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

Доброго времени суток, подскажите пожалуйста функцию увеличения скорости спринта ГГ.

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

 

 

в чистой игре нет такого.

Может тогда имеется функция подмены actor.ltx ?

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

@Romann, может с помощью X-Ray Extensions, вроде там есть возможность "хакнуть" параметр бега.

... А наше дело маленькое - с ружьём да по болотам. (с)

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

С помощью XE можно, но особо не поувеличиваешь. Например, ту скорость, что стоит в ОП-2 по умолчанию, увеличивать уже и некуда. Максимум, на десяток процентов, а далее ГГ начинает стукаться о воздух.

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

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

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

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

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

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

Войти

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

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

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