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

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

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

@Zander_driver, нужно было отследить сразу 2 события: сначала ПКМ и сразу ЛКМ, когда ПКМ еще нажато. Но уже справился, все работает, спасибо :)

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

@Norman Eisenherz

Ну наверное поиск рулит. Я исходники ТЧ брал давным-давно со Сталкерин, но там сейчас ссылку на скачивание убрали. Еще можно спросить в разделе Редактирование движка и Ищу файлы\моды....

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

Здрасьте.

 

Как проверить, что дождь не только идет в данный момент, но и попадает на ГГ (ГГ не находится в здании)? Версия игры любая без движковых правок.

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
Только что, Norman Eisenherz сказал:

ГГ не находится в здании... без движковых правок.

Никак.

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

Есть ли над ГГ крыша, не найдется ли в ту сторону бетонной стены... это скриптам было неведомо.

  • Согласен 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.

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

@Zander_driver, как вариант, наверно, можно расставить в каждом помещении по рестриктору, и делать проверку на нахождение в нем. Ну и проверять текущую погоду. Если дождь, и ГГ вне рестриктора, то... Ещё то извращение, но без правок вижу только такую ситуацию.

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

В ЧН часто есть готовые рестрикторы – укрытия от выброса, но у них нет внешних конфигов логики. Можно ли без перебора [all.spawn] определить, что ГГ находится в рестрикторе с именем "(level)_vibros_#"?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

@Norman Eisenherz

 

function func()
  local lvl = level.name()
  local pos = db.actor:position()
  local n = 1
  local name, obj
  while true do
    name = string.format( "%s_vibros_%s", lvl, n )
    obj = db.zone_by_name [ name ]
    if obj then
      if obj:inside( pos ) then
        return true
      end
    else
      return false
    end
    n = n + 1
  end
end

Это если имена с нумерацией от 1 и по возрастанию. Если вразброс, то придётся всю zone_by_name перебирать в поисках нужных рестрикторов.

Изменено пользователем naxac
  • Полезно 1

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

naxac.gif

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

@naxac Нашел перебор укрытий в [xr_surge_hide.script]:

Spoiler

		local board = sim_board.get_sim_board()
		local hide_tbl = {}
		local n = 0
		for k,v in pairs(board.smarts) do
			if v.smrt.actor_hides~=nil then
				for kk,vv in pairs(v.smrt.actor_hides) do
					local obj = alife():object(vv)
					if(obj) then
						n = n + 1
						hide_tbl[n] = obj
					end
				end
			end
		end

 

После этого как раз выполняется проверка через inside.

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

Прошу помощи скриптёров.
Поигрываю в мод-сборку на основе FreeplayStart 1.21, но с изменённой оружейкой, добавленными мутантами, АИ-паком и прочими вкусностями от Alex5773
Сборка очень нравится, но у неё есть серьёзный недостаток - спустя непродолжительное время начинают наглухо ломаться сейвы с логом вылета, что под спойлером.

Скрытый текст

 

FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : .\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: d:\games\soc\gamedata\scripts\rgr.script:378: attempt to index local 'dead_otf' (a nil value)
 

stack trace:

 

К сожалению, автор данной сборки не помог с исправлением данного вылета, да и не заходит на АМК уже с августа.
Возможно, кто-то из скриптеров поможет исправить данный баг, возможно даже небезвозмездно, в разумных пределах, конечно :)  
Сам в скриптовании Сталкера не шарю.
Прилагаю сам мод и сломанный сейв: 
https://dropmefiles.com/jR5Fi

Ссылка на комментарий
8 часов назад, otani-san сказал:

Прошу помощи скриптёров.

Привет, тебе нужно изменить пару строк в файле rgr.script 

ищи 374 строку      --Ставим кондишн броников с трупов, пока рандомно

и вот это:

Скрытый текст

  if select_string=="dead_otf" then
    local dead_otf
		dead_otf = level.object_by_id(tonumber(params_string))
		dead_otf:set_condition((math.random(65)+25)/100)
	end

 

 

меняй на это:

Скрытый текст

	if select_string == "dead_otf" then
		local dead_otf = level.object_by_id(tonumber(params_string))
		if dead_otf then
			dead_otf:set_condition((math.random(65)+25)/100)
		end
	end

 

 

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

@Марка демченков, в файле "_g.script" измени значение переменной "dev_debug", в оригинале строка 37.

dev_debug = true

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

S.T.A.L.K.E.R. CoP Objects (upd 15.11.24)

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

У меня такой вопрос(возможно не в ту тему обратился, поправьте). Играю в ОП 2.1, установлены правки. Столкнулся с такой проблемой: не отображается в инвентаре несколько ед. оружия(пустое место со шкалой прочности и хар-кой), вижу его только держа в руках. То, что обнаружил - это Неизвестное оружие(квестовое - Охотник и добыча), FN "Hostel" и McMillan CS5 после покраски его у Долговязого. Самостоятельно найти где что исправить я не в состоянии. Нужна помощь. Да и если опишите, что и как изменить, просьба указать полный путь к необходимому файлу от корневой папки. Заранее благодарю.

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

Доброго времени! Подскажите пожалуйста, каким образом можно сделать проверку, видит ли вражеский NPC нашего ГГ в процессе перестрелки? А также каким образом можно сделать проверку, что наш ГГ - приоритетный текущий враг для NPC?

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

@_Sk8_AsTeR_

if npc:see(db.actor) then -- он его видит...
  
local enemy = npc:get_enemy() -- это тот кого нпс хочет убить
if enemy and enemy:section() == 'actor' then -- оказывается, это актор...

 

Изменено пользователем Zander_driver
  • Спасибо 1
  • Нравится 2
  • Полезно 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.

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

Вообщем писал я в этой теме где то месяц назад! Была у меня проблемы с модом такие как: пропадала анимация бега, сброс визуала и т.п искал проблему почти меся) т.к много файлов подключено в моде. Оказалось это из-за скрипта не помню от кого НА РЕСПАВН АРТЕФАКТОВ какие там ошибки не знаю, ковыряться не стал. Откл. скрипт и все заработало/бред. Может кто посмотрит его! https://yadi.sk/d/7tHdc9vjT7BfSQ

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

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

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

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

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

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

Войти

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

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

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