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

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

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

@DibokDibokin, попробуй так:

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

local is_box = { 
    ["dynamics\\box\\box_wood_01"] = true,
    ["dynamics\\box\\box_metall_01"] = true,
    ["dynamics\\box\\box_paper"] = true,
}

function show_boxes()
    for i=1,65535 do
		local s_obj = alife():object(i)
		if s_obj ~= nil then
			local c_obj = level.object_by_id(s_obj.id)
			if (c_obj and is_box[c_obj:get_visual_name()]) then
				level.map_add_object_spot_ser(s_obj.id, "warfare_stalker_spot", "box")
			end
		end
    end
end

 

 

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

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

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

@WinCap@DibokDibokin

Если есть таблица, из которой мы выдергиваем признак того, что объект у нас инв.ящик, так может правильнее сделать таким признаком story_id? Т.е. вместо перебора 65тыщ объектов перебрать несколько объектов из таблицы, получая объект по его story_id?

 

Просмотрел несколько страниц назад, не нашел изначальный вопрос @DibokDibokin. Из обсуждения понятно, что надо поставить метку на объект, но вот условия, когда ее надо ставить?

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

@WinCap, Среди объектов иногда бывают такие, у которых нету визуала. Смарты например. Попытка с колес использовать его "визуал" в качестве ключа таблицы, к нехорошим последствиям привести может :rolleyes:

 

@DibokDibokin


local is_box = { 
    ["dynamics\\box\\box_wood_01"] = true,
    ["dynamics\\box\\box_metall_01"] = true,
    ["dynamics\\box\\box_paper"] = true,
}

function show_boxes()
	printf("show_boxes run")
    for i=1,65535 do
		local s_obj = alife():object(i)
		if s_obj ~= nil then
			local c_obj = level.object_by_id(s_obj.id)
			if (c_obj) then
				local visual = c_obj:get_visual_name()
				if (visual and visual ~= "" and is_box[visual]) then
					printf(string.format("box object [%s:%i] detected. visual=%s", c_obj:section(), s_obj.id, visual))
					level.map_add_object_spot_ser(s_obj.id, "warfare_stalker_spot", "box")
				end
			end
		end
    end
	printf("show_boxes complete")
end

Готовый вариант, безопасный с точки зрения работы с таблицами, и снабженный выводами в лог, емнип, не требующими подключения сторонних библиотек к оригиналу. printf ведь работает в оригинале? :crazy2: кто помнит.

 

  • Спасибо 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, вот и проверит, если будут вылет с руганью на эту строчку, значит не работает:crazy2:.

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий
2 часа назад, AndreySol сказал:

может правильнее сделать таким признаком story_id? Т.е. вместо перебора 65тыщ объектов

Из вопросов @DibokDibokin, по-моему, никак не следует, что интересующие ящики вообще story_id имеют.

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

Только что, UriZzz сказал:

если будут вылет

Его-то точно не будет. Куча printf-ов есть в скриптах оригинала, не закомментированных. Другое дело, они там в лог пишут или молча игнорируются... я не помню. Помню что на заре моддинга зачем-то строились монструозные костыли для вывода инфы в логи через консоль. А зачем и почему это делалось, уже не помню, хоть убейте.

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

Ссылка на комментарий
56 минут назад, Zander_driver сказал:

А зачем и почему это делалось, уже не помню, хоть убейте.

Затем, что принтф не работает в оригиналах :)

  • Спасибо 1
  • Согласен 1
Ссылка на комментарий
2 часа назад, abramcumner сказал:

принтф не работает в оригиналах

Ужас. И всякие log_что-нибудь тоже.

Давно там не ковырялся, успел позабыть, насколько все было плохо)

А ведь пожалуй, OGSR движок вообще любому начинающему ковыряльщику рекомендовать можно, дружелюбнее он к разработчику. Особенно начинающему.

@DibokDibokin, возьми на заметку)

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

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

@Kirgudu, про ЧН это слишком. Там я и еще пара пасонов.

Вот в ЗП - это возможно.

 

И еще, зачем вы в ОГСМ ГГ убили? Вы на ГГ, еще одного ГГ навесили? :biggrin:

Изменено пользователем Опричник

andreyholkin.gif

rod_cccp.gif

 

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

Никто не подскажет, что за интересное написание логики непися в поинте (ЗП) - ""wp00|a=sit_ass""? Первый раз встретил такое, это чей-то мод небольшой, старенький.

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

@Expropriator, я не об этом, это понятно, я про двойные скобки.

ПыСы. Самое интересное, что этот мод работает.

Изменено пользователем mdm64
  • Сочувствую 1
Ссылка на комментарий

@mdm64, может потому, что там один вейпоинт вообще, а не цепь.

Что то даже не знаю.

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

andreyholkin.gif

rod_cccp.gif

 

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

@Expropriator, Там плотно заселённые средних размеров две локации плюс полный ЗП. На каждой локе несколько смартов, в общей сложности десятка два отрядов плюс мутанты.... и на каждый отряд своя точка спавна, почти все неписи спавнятся через поинты, кроме уников.

Да, такой вопрос - можно ли управлять в ЗП отрядом, используя цепочку поинтов, как для одно сталкера? Помнится, в ТЧ это было возможно, а в ЗП что-то не видел нигде. Если можно, то как?

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

@mdm64, наверно можно. Твой теза mkdm в последних модах (Припять точка отсчета) такое вытворял Там группу нужно было сопровождать, что бы их не убили.

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

andreyholkin.gif

rod_cccp.gif

 

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

@Expropriator, Ага, вспомнил, вроде такое было в SGM, когда Дегтярёв сопровождал группу учёных на Юпитере от учёного бункера до вентиляционного комплекса. Только вот проблемка - не могу распаковать ни одну из локаций СГМ, декомпилятор валится стабильно с критическими ошибками. а так посмотрел бы, конечно...

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

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

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

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

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

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

Войти

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

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

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