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

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

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

@Rietmon

По твоей логике.

1. Враждебность к актеру.

actor_enemy ...

ценность данного предусловия по моим скромным наблюдениям стремится к нулю.

Попробуй лучше использовать fighting_actor.

Угум...И все эти дела скорее относятся к проверке враждебности актора, чем к установке на его убийство.

Потому я делаю так %=killactor%

2. По вылету.

Поршень явно срабатывает, и персонаж переходит в следующую секцию.

Секция имеет схему walker.

А где в таком случае пути?

Кстати - логика случаем не для ЗП?

corpse_detection_enabled - это что?

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

Здравствуйте! Как через ALL.SPAWN сделать нпс бессмертным? Например Волка. Пробовал ставить ему секцию Сахарова - не помогает. Подскажите

Важнейшая задача цивилизации - научить человека мыслить.

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

@Rietmon

corpse_detection_enabled - это что?

Блин, дружище, спасибо! Никогда бы не додумался, что проблема в walker (не сарказм)! В таком случае, что такое meet в логике? И какую схему лучше использовать просто для того, что-бы ГГ не помогал раненым, не брал вещи и т.д.? 

 

4 часа назад, _Val_ сказал:

corpse_detection_enabled - это что?

А это запрет на лут трупов.

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

что такое meet

Ну в зависимости от того, как его применять.

Если просто - meet = no_meet, то это запрет на разговор с ГГ.

Если в отдельных секциях пишешь допустим - meet = meet@stalk, meet = meet@kamp - то это дает возможность прописывать разные диалоги и\или разную реакцию непися на действия ГГ.

Чтобы ГГ не промогал раненым и т.д...Никакая схема не поможет. Это в мозгу у игрока. Не - ну можно забацать конечно логику - когда непись начнет материть ГГ после получения аптечки. А оно надо?

 

 

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

Просто диалог на аптечку неписю убрать, и ага. Опять же, hp_state, hp_state_see, чтоб не орал.

 

Но наличие смысла это запрещать - таки да.

 

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

и ага

В смысле? Тогда нужно вообще запретить неписю быть раненым))

Там кстати еще интересный пунктик был.

Цитата

что-бы ГГ ... не брал вещи

А это как сделать? Убрать вещи из игры, сделать их неберущимися...Чёт у меня фантазия разыгралась вплоть до запрета ГГ играть в Сталкера, чё уж.

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

Ну, есть же у нас неписи с регеном и фэйкдесом... Полежал-полежал, и дальше пошел.

  • Нравится 1
Ссылка на комментарий
44 минуты назад, Dennis_Chikin сказал:

Опять же, hp_state, hp_state_see, чтоб не орал.

Проще заглушки на звуковые файлы воткнуть....

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

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

Так тогда все раненые перестанут орать))

Имелось в виду очевидно вот это:
Имеем

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

  Преобразуем в молчащего раненого

hp_state = HP|anim|HP|anim

Хотя можно сделать проще:

[wounded]
hp_state = 0|wounded_heavy@help_heavy
hp_state_see = 0|wounded_heavy@help_heavy
hp_victim = 0|nil
hp_fight = 0|false
hp_cover = 0|false

 

Ссылка на комментарий
11 часов назад, _Val_ сказал:

Так тогда все раненые перестанут орать))

Ну да, перестанут. Орать в Зоне, оказавшись раненым - себе дороже. Еще придет кто-нито на обед :)

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

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

Подскажите, в ТЧ можно ли как-то определить тип хита который получил НПС? (Ожог, удар, взрыв...).

И еще, что мы имеем на сегодня для того чтобы заставить НПС обходить физические предметы? Когда то на эту тему был разговор, про реализацию этого с помощью каких то флагов, "отключении" лодов под объектами и тд...

Изменено пользователем Graff46
Ссылка на комментарий
5 часов назад, Graff46 сказал:

"отключении" лодов под объектами и тд

Под объектами не должно быть нодов аи-сетки. Правится вручную при помощи СДК. Причём тут скриптование?

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

Изменено пользователем _Val_
Ссылка на комментарий
16 минут назад, _Val_ сказал:

Под объектами не должно быть нодов аи-сетки.

Это не относится к динамическим объектам. Вопрос даже более чем к скриптованию/движку как раз таки.

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

Как раз единственное осмысленное применение рестрикторов - динамически добавлять ограничения на вход/выход в указанную область.

Ну а заранее - да, тип нодов и маска в terrains = - по каким ходить можно, по каким - нет.

 

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

@Graff46 в x-ray extensions есть коллбек, вызываемый перед обработкой хита. В него передается структура, в которой есть, в том числе, и тип хита. Вот только я не помню, есть расшифровка этой структуры в XE или это уже из ogse.dll.

 

Ссылка на комментарий
6 часов назад, _Val_ сказал:

Говорилось - физические предметы. Что хочешь, то и понимай))

Физические спавн объекты, всякие бочки, ящики, машины и тд...

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

Из луаХелп

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

C++ class CSpaceRestrictor : CGameObject {
    CSpaceRestrictor ();

    function Visual();
    function _construct();
    function getEnabled() const;
    function net_Import(net_packet&);
    function net_Export(net_packet&);
    function getVisible() const;
    function net_Spawn(cse_abstract*);
    function use(CGameObject*);
};

 

Как понимать функции: Visual(), getVisable() и use() для рестрикторов?

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

Какой функцией можно заспавнить вещь в рюкзак-тайник? Все должно быть как-то так: после диалога в нем должен заспавниться калаш - забрал. Потом снова поговорил с НПС - вновь заспавнился калаш, и так до бесконечности. 

Изменено пользователем Dennis_Chikin
шрифт
Ссылка на комментарий
xr_effects.spawn_object_in(nil, nil, {"section", "story_id"})

 

Добавлено Overfirst,

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

  • Согласен 1
  • Сомнительно 1

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

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

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

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

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

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

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

Войти

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

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

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