Скриптование - Страница 536 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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

Тема для обсуждения скриптов всего и всех в серии игр 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
Ссылка на комментарий
https://www.amk-team.ru/forum/topic/6185-skriptovanie/
Только что, mole venomous сказал:

Вот проверка наличия брони в слоте

Возможно не все брутально - есть функция get_current_outfit()

9 часов назад, Libery сказал:

У гг в начале игры брони нету а функция все равно проигрывается.

При старте игры и инфопорций тоже никаких нету. Поэтому одна из функций обязательно будет проиграна.

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

@AndreySol, Она работает. Но вот появляешься на кордоне, старт игры, темный экран в бункере сидоровича, после проигрываешься функция ПОЧЕМУ-ТО ведь у Гг нет костюма. А играешь дальше все нормально работает при каждом снятии и одевание брони срабатывает функция, можно ли как то при старте это убрать?

Или я так понимаю ни как? Функция не работоспособная получаеться!

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

@Libery

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

 

@Марка демченков

Например, вызывать нужную ф-цию из апдейта актерского биндера.

3 часа назад, AndreySol сказал:

 

Например, вызывать нужную ф-цию из апдейта актерского биндера

а как ее вызвать?

@Марка демченков, Зависит от Вашего желания/методики использования нужных схем в составе кода.

Только что, Марка демченков сказал:

а как ее вызвать?

Методы есть не только апдейть - это не единствиный способ.

@Марка демченков

Ну это элементарные основы скриптов.

К примеру, для биндера актера, это файл bind_stalker.script

function actor_binder:update(delta)
    object_binder.update(self, delta)
    local time = time_global()
    
    game_stats.update(delta, self.object)

......
......

game_stats.update(...) - из файла game_stats.script вызывается ф-ция update.

При отсутствии в оллспаун указанных для объекта путей получаю зависание объекта и сообщение в лог:

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

Scheduler tried update object <имя_объекта>

Возможно ли в этот момент отловить косяк и проинформировать сообщением на худ?

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

@mole venomous

Данное сообщение движковое, какого либо кэллбэка для обработчика ошибки не предусмотрено.

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

Данное сообщение движковое

Я так и думал. Ф-ии abort и правки xr_logic в лучшем случае позволяют получать СМС при сохранении...

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

Можно ещё в различные схемы ставить проверки на наличие путей, так сделали в зп для волкеров (xr_walker.script):

function set_scheme
	...
	st.path_walk = utils.cfg_get_string(ini, section, "path_walk", npc, true, gulag_name)
	-- сразу проверка
	if not level.patrol_path_exists(st.path_walk) then
		abort("there is no patrol path %s", st.path_walk)
	end
	...

 

  • Полезно 2

Мужики подскажите функцию, что бы через каждые 5 мин воспроизводился звук. И можно ли как то проверить заражен ли ГГ радиацией или нет. ТЧ 1.0006

Изменено пользователем Libery
4 минуты назад, Libery сказал:

можно ли как то проверить заражен ли ГГ радиацией или нет

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

	if db.actor.radiation > 0.1 then
		return true
	end

 

 

5 минут назад, Libery сказал:

что бы через каждые 5 мин воспроизводился звук.

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

local timer1 = 0

function start_sound()
	local timer2 = time_global()
	if timer1 < timer2 then
    	-- тут вставить воспроизведение звука
		timer1 = timer2 + 300000
    end
end

 

 

  • Нравится 1

@ted.80, Извиняюсь спросить, а на проверку радиации это через апдейт? Просто мне через скрипт нужно проверить.

15 минут назад, Libery сказал:

а на проверку радиации это через апдейт?

Ну так тебе виднее, что ты хочешь от этой проверки.

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

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

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

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

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

Войти

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

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

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