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

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

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

Как считывать параметр из секции? Пытаюсь вот так:

system_ini():r_string(object:section(), "sections_name")

Но что брать за object? Мне нужно открыть конкретный файл.

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

Так вполне удобно:

function ReadString(iSec,sLin,fIni)
if not fIni then fIni=system_ini() end
return fIni:r_string(iSec,sLin)
end
local object = ReadString("section","param",ini_file("filename.ltx"))
  • Спасибо 1

Ранее был известен под ником BoBaH_671.

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

Как считывать параметр из секции? ... Мне нужно открыть конкретный файл.

local ini = ini_file("конкретный\\файл.ltx")

return ini:r_string("section", "line")

  • Спасибо 2
  • Полезно 1

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

naxac.gif

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

Есть функция увеличения проигрывания интенсивности звука в зависимости от расстояния до аномалии:

 

function anomaly_detector(anomaly)
anomaly.tim_beep = 0
local dist = db.actor:position():distance_to_sqr(anomaly:position())
local snd = xr_sound_soc.get_safe_sound_object("путь_до_звука")
if dist < 200 and dist < time_global() - anomaly.tim_beep  then
if not snd:playing() then
anomaly.tim_beep = time_global()
snd:play_no_feedback(db.actor,sound_object.s2d, 0, vector():set(0, 0, 0), 1.0)
end
end
end

 
Только вот пиликанье при dist < 200 начинается очень интенсивно и становится ещё более интенсивнее если подходить ближе. 
Можно ли как-то сделать интенсивность пиликанья при dist <= 200 примерно как у движковых детекторов? Что для этого нужно сделать?
Ссылка на комментарий

@advisor890, попробуй так

local snd = xr_sound_soc.get_safe_sound_object("путь_до_звука")

function anomaly_detector(anomaly)
  if anomaly.tim_beep == nil then anomaly.tim_beep = 0 return end

  local dist = db.actor:position():distance_to_sqr(anomaly:position())
  if dist < 200 and math.max(dist, 50) < time_global() - anomaly.tim_beep then
    if not snd:playing() then
      anomaly.tim_beep = time_global()
      snd:play_no_feedback(db.actor,sound_object.s2d, 0, vector():set(0, 0, 0), 1.0)
    end
  end
end

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

naxac.gif

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

Здраасте, в сталкере можно сделать скрипт через ui_main_menu, что бы при нажатии клавиши, выполнялись какие-то команды, а можно сделать такой скрипт, что бы при нажатии кнопки писалась команда в консоль?

Добавлено Eugen81,

get_console():execute("команда значение")


Пример смены уровня сложности на "Мастер":

get_console():execute("g_game_difficulty gd_master")

Добавлено  HellRatz,

Перемещено.

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

Народ, помогите разобраться с двумя xr_meet. Первый с моими правками и правами Bak-а, второй - не знаю откуда, в комментах есть только описание правок:

-- Сталкеры не пялятся на ГГ по пол-часа, и, соответственно, не застревают в проходах, если не пялиться на них
-- Если смотреть в сторону - через 5 секунд продолжат заниматься своими делами
-- Если увеличить радиус взятия предметов - актора не заклинивает при попытке начать разговор
-- с расстояния более 2-х метров - разговор просто не начинается
-- Кроме Сидоровича, которому надо еще биндер править
-- Тормоза исправлены

Там столько отличий, что я "ниасилил" сравнение и адаптацию всего, что полезно:

http://rgho.st/private/6QMVjp7n5/b5d729301a6bfa0acd03b0b868e76cd3

 

@Eugen81, за источник скрипта, конечно спасибо, но главное для меня адаптация этих двух версий в одну.

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

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

[helmet]:identity_immunities


$spawn = "equipment\_base"
cform = skeleton
class = II_ATTCH
GroupControlSection = spawn_group
discovery_dependency =

default_to_ruck = true
stay_after_death = true
auto_attach = true

cost = 0
inv_weight = 0.0

inv_name = metro_helmet
inv_name_short = metro_helmet
description = metro_helmet_desc

inv_grid_width = 1
inv_grid_height = 1
inv_grid_x = 21
inv_grid_y = 8
visual = dynamics\outfit\metro_helmet.ogf
attach_position_offset = -0.037, 0.0, -0.038
attach_angle_offset = 0.39030798062349, 0.0, 1.5580030633778
attach_bone_name = bip01_head

Всем добрый день. Пытаюсь реализовать динамические шлемы на НПС, не правкой модели, а выдавая скриптом предмет на классе II_ATTCH. Предмет выдается, но не отображается на НПС. Не подскажете, в чем проблема? И да, в конфиге m_stalker.ltx в строке attachable_items секция предмета прописана.
 

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

Можно ли скриптом собрать смарты на локации и узнать их координаты?

какие свойства смарта можно узнать скриптом?

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

Есть готовый инструментарий для отладки смарт-террейнов на локации:

http://www.gsc-game.ru/index.php?t=community&s=forums&s_game_type=xr&thm_page=4&thm_id=12408&sec_id=14&offset=-180

 

Указываются ли там их координаты, точно не скажу - не помню, давно не пользовался. Но вещь полезная. Можно использовать как основу для чего-то большего.

  • Полезно 1

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

 

 

какие свойства смарта можно узнать скриптом?

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

 

 

 

как в ЗП скриптом получить путь к модели НПС?

 

 

Что значит путь?

Я думаю, имелось в виду имя файла и папка в которой он лежит. Если да - то ответ чуть выше.

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

 

 

Есть готовый инструментарий для отладки смарт-террейнов на локации:

А ссылка на том сайте битая...

  • Согласен 1

Сталкер - наше всё!

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

 

 

Не подскажете, в чем проблема?

Прежде чем подсказывать объясни мне почему ты пошел таким путем? Допустим я здесь вижу ряд взаимоисключающих вещей, которые неизбежно приведут к ошибкам.

 

 

 

Можно ли скриптом собрать смарты на локации и узнать их координаты?

Можно.

 

 

какие свойства смарта можно узнать скриптом?

Какие угодно.

 

 

 

UnLoaded, на какой странице хоть?

Предположу, что он про нет-пакет. Но тут он явно не прав, потому что в ЗП есть лаконичный метод:

    function get_visual_name() const;
Ссылка на комментарий

@AndrewMor, У меня сайт вообще не работает.

 

Можно.

ххахах... очень полезный и детальный ответ.

Изменено пользователем TIGER_VLAD
  • Согласен 1
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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