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

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

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

@naxac, Спасибо. Но я снова косячу, походу :(...

 

Я прописал в xr_motivator.script следующее:

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

 

    --' Делаем салкеров-одиночек бессмертными
    function superresistance( self.object )
    if self.object:character_community() == "stalker" then
    self.object:health = 1
    end

 

Вылетаю. Пробовал прописывать в конец файла после последней функции, пробовал в начале, после class "motivator_binder" (object_binder)

Пробовал сделать не отдельной функцией, а вставить в function motivator_binder:net_spawn(sobject) просто "проверку условия - выполнение "health = 1" - энд", типа скрипта "Для зомбированных чуваков говорим что аномалий не существует"...

Не туда вставляю? Или снова не правильно создал функцию? Или ее вызов все же еще где-то нужно прописывать, в каком-то другом файле? Сорри за тупость, уже стыдно спрашивать, но помогите :)!

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

@F.Constantine, в функцию motivator_binder:update(delta) добавь:

	if self.object:character_community() == "stalker" then
		self.object.health = 1
	end

 

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

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

naxac.gif

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

@naxac, Огромнейшее тебе спасибо, добрый человек :)! Все работает теперь, как часики :)!!!

Погляжу, насколько эта штука поможет против умирания сталкеров вдали от ГлавГероя, но по крайней мере на глазах у меня собаки и дешевая шпана с ПМ-мами их больше не убивает.

:good2:

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

Кто-нибудь знает где прописана логика по Круглову? Нужно знать где прописаны по нему анимации и какие.

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

Подскажите, ищу с помощью цикла

for k = 1, 65535 do
local s_obj = alife():object(k)

end

обьект на локации. Как определить лежит ли он на земле или где то в инвентаре(в мертвом нпс, тайнике, ящике)?

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

.parent_id

0 - актор, 65535 - земля.

 

Как только что писал - "все равно никто не читает".

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

Всем привет. Есть ли возможность привязать секцию [spawner] к логике физического объекта? Или это априори не поддерживается движком и работает только монстров/сталкеров?

Ссылка на комментарий
2 minutes ago, Дмитрий Зверев said:

физического объекта

Это что такое в вашем понимании?

Привязать например к артефакту или аптечке можно - просто регистрируем скриптовый класс новый (если еще нету) для нужного класса предметов и делаем примерно тоже, как spawner обрабатывается в se_stalker

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

Это что такое в вашем понимании?

Привязать например к артефакту или аптечке можно - просто регистрируем скриптовый класс новый (если еще нету) для нужного класса предметов и делаем примерно тоже, как spawner обрабатывается в se_stalker

В моём понимании это все объекты с секцией physic_object и соответствующей логикой ("ph") в all.spawn. Мои извинения, если я сразу неправильно выразился -- что-то совсем забыл про аптечки и артефакты. Мне нужно к стационарному радио привязать, чтобы имитировать сцену, в которой непись будет его "чинить", стоя спиной к игроку, а затем подходить к столу и "ставить" его (т.е. он тупо заспавнится при соответствующем условии). Вот и пытаюсь придумать, как подобное реализовать -- через [spawner] разобраться или попытаться задать логику объекту, спавнящемуся скриптом. За совет спасибо, попробую.

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

Понял, lа, так доже будет работать. Я делал для ящиков и прочего. 

В целом, (насколько я видел) обработка [spawner] это чисто скриптовая фишка - пока условие не выполнено - объекту нельзя переходить в online

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

Всем привет, нужна помощь насчет анимации смерти для НПС (тч). Анимации сами уже есть. Подскажите пожалуйста, как в коллбэке на смерть нпс проиграть анимацию после его смерти ? Ну или во время его смерти

jpwsa5byp73nyaufrbis15dcci1y.png
 

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

В чистом ТЧ - скорее никак, чем как-то. Происходит замена тушки живого непися на тушку дохлого.

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

@Dennis_Chikin понятно. А возможна ли реализация своеобразного эффекта критического ранения ? Например если ХП на уровне 0.005, или в этом роде, проигрывается скриптом анимация смерти, после чего НПС автоматически умирает ?

jpwsa5byp73nyaufrbis15dcci1y.png
 

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

Да, в on_hit() проверяем, говорим state_manager отыгрыть анимацию, и вызываем kill(), если анимаций не осталось.

Или сами наносим еще один хит по кости, чтобы анимация игралась автомагчески, потом, опять же - kill()

 

вариант - в xr_wound реакцию на ранения допилить по тому же принципу.

 

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

Так в самой схеме раненого предусмотрено.

[wounded]

hp_state = HP|anim@sound|HP|anim@sound

Поставить тот же ХП на уровне 0.005 и прописать нужную анимку со звуком --- Ыыы.

Вопрос - можно ли его добить прямо из схемы))

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

Без доработки - непись так и будет вечно в этой анимации. Добить из схемы - почему б нет?

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

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

jpwsa5byp73nyaufrbis15dcci1y.png
 

Ссылка на комментарий
7 minutes ago, DoberBull said:

я поставлю одну из анимок смерти ЗП

В ЗП есть отдельные анимации для смерти?

А как там они работают? Может проще их перенести в движок?

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

В ЗП есть отдельные анимации для смерти?

Конечно)) И их там в omf полно, несколько десятков. В зависимости от калибра оружия, направления стрельбы и части тела. Есть для хедшота из снапы, для выстрела в корпус из снапы, для отлета от дробовика и т.д. Конечно перенести можно, исходники ЗП же есть давно. Работают просто, вызов происходит в движке. В конфиге m_stalker и т.д есть настройка для этого, перечисление этих анимок через запятую. Сами названия анимок начинаются с ragdoll_. Да и переносить сами анимки под тч модели не нужно, они есть в анимациях от @Mirage2000

  • Полезно 1

jpwsa5byp73nyaufrbis15dcci1y.png
 

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

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

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

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

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

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

Войти

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

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

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