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

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

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

  Информация (Показать)

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

  Читать рекомендуется. (Показать)

И последнее: очень рекомендовано к прочтению Правила форума
 


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

@_Sk8_AsTeR_, объявить таковую в одном скрипте и обратиться в другом. Объявлять без служебного слова local. Пример - db.script с известным множеством таблиц, которые много откуда читаются и используются в некоторых целях.

 

Объявление:

zone_by_name = {}

А в каком-нибудь xr_conditions.script:

function actor_in_zone(actor, npc, p)
    local zone = db.zone_by_name[p[1]]
    return utils.npc_in_zone(db.actor, zone)
end

 

Изменено пользователем Overfirst
  • Спасибо 1

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

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

@_Sk8_AsTeR_, можно ещё написать ф-цию которая возвращает значение нужной переменной, в другом скрипте создаете переменную с приравниванием к вызову ф-ции.

  Показать

 

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

@mole venomous
Закрыть инвентарь при использовании чего-либо можно так:
 

  Код (Показать)

 

  • Полезно 1

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

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

Всем привет, вот такой словил ЛОГ вылета на Сталкер ЧН, думаю что из-за "не найденных анимаций" в HD Моделе NPC
 

Expression    : motion_ID.valid()
Function      : CKinematicsAnimated::ID_Cycle
File          : E:\priquel\sources\engine\Layers\xrRender\SkeletonAnimated.cpp
Line          : 208
Description   : ! MODEL: can't find cycle: 
Arguments     : idle

Нужна помощь как можно решить, или в чем проблема

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

Подскажите пожалуйста, возможно ли такое реализовать на движке COP/COC, и если да, то какие могут быть подводные камни?

У меня появилась идея усложнить систему фаст тревала, когда ГГ может попросить НПС-проводника провести его к определенной точке. А именно: ГГ с проводником могут попасть в засаду реальных НПС и мутантов, которые находились "по маршруту" фаст тревела.

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

Пример: ГГ в деревне новичков просит НПС сопроводить его до определенного места в темной долине. В это время на АТП находятся бандиты, которые враждебны ГГ. ГГ и проводник телепортятся возле АТП и вступают в бой с бандитами

--

зы: язык Lua для меня новый и я только собираюсь его начать изучать, чтобы реализовать подобный скрипт

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

Здрасьте.

 

Слепил уборщик бесхозного оружия:

• вызов из [scripts\bind_stalker.script] actor_binder:net_spawn(data);

• удалять все, кроме списка исключений;

• на текущей локации удалять, если рядом нет трупов;

• на других локациях удалять просто так.

 

Проблема: если вызывать скрипт каким-нибудь триггером (сброс бинта, например) в уже прогруженной локации, то ближайшие трупы учитываются и пушки, соответственно, лежат на месте. При вызове из "net_spawn" трупы в процессе прогрузки не обнаруживаются.

Вариант 1: https://drive.google.com/open?id=1-K5gPW3q3AUPN1bGXfEjBZ1Uj8kecjwh

 

Добавил задержку запуска через level.client_spawn_manager: трупы обнаруживаются и при вызове из "net_spawn", хотя задержка всего ничего.

Вариант 2: https://drive.google.com/open?id=1eEcuoF9Daw150FPWxpsAkXodliqAE2x1

 

Выходит, трупы на текущей локации загружаются чуть позже ГГ. Как это обойти без костылей?

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

Шпаргалка

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

Ребят, вопрос - загадка. С вашей помощью огромной наваял скриптец, благодаря которому через нетпакеты будут перебираться реально существующие НПС, их имена записаться в таблицу, и в итоге от их имени будут сообщения в чат приходить. И так случилось, что практически в начале игры (успел только АТП зачистить вначале) мне отписался Фанат. Официально он появляется после х-18, но он у меня отписался намного раньше.

  Сама ф-ция (Показать)

Так вот вопрос, игра где-то спавнит Фаната намного раньше, или я не понимаю как работает моя ф-ция? Помогите разобраться, ибо интрига!

Ссылка на комментарий
  03.05.2019 в 15:17, Norman Eisenherz сказал:

Как это обойти без костылей?

Попробуй в апдейте биндера:

if device().precache_frame <= 1 then

     ....тут вызывай свой уборщик....

end

  03.05.2019 в 21:02, _Sk8_AsTeR_ сказал:

Официально он появляется после х-18, но он у меня отписался намного раньше.

Фанат прописан в all.spawn, по этому спавнится с самого начала НИ, но до момента "Х" сидит в офф-лайне. А в чем проблема? Типа, до появления в качестве замены Волку в ДН, Фанат лежит в анабиозе в секретной лаборатории? И по тому не может писать сообщения, как любой другой сталкер?

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

@Norman Eisenherz, делай проверку не по клиентским объектам, а по серверным.

Я смотрю, у тебя получается в цикле на 65535 ещё один цикл на 65535, это же аццкий ад какой-то. Не лучше будет пройтись один раз по всем объектам, разложив их по таблицам, а потом по этим таблицам уже проверять расстояния, паренты и т.д.?..

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

naxac.gif

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

@naxac Старый уборщик всего и вся от мифического Сяка так и сделан, и я тоже планирую добраться до такой схемы. Но вопрос с загрузкой трупов остается.

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

Шпаргалка

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

Проблема: к серверному объекту невозможно применить проверку if not obj:alive(), хотя такая проверка есть в коде от Сяка.

 

Код оригинального уборщика (солянка 2010):

  Код (Показать)

 

Мой код:

  Код (Показать)

 

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

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

Шпаргалка

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

Попробовал проверку через свойство вместо метода:

if IsStalker(obj) and not obj.alive and obj_lv == act_lv

Обнаруживается единственный труп – сам Меченый. Настоящие трупы и еще живые NPC в список не попадают. Меченый – вампир? :shok2:

  • Смешно 2

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

Шпаргалка

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

к серверному объекту невозможно применить проверку if not obj:alive()

Почему это? Она вполне работает. Например переделанном уборщике для ОП-2: https://github.com/naxac/CP2_AddOn/blob/master/gamedata/scripts/sak_off_corpses.script

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

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

naxac.gif

Ссылка на комментарий
  03.05.2019 в 23:30, Norman Eisenherz сказал:

от мифического Сяка

С чего это "мифический" вдруг? Вполне реальный человек.

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

Доброго дня! Подскажите пожалуйста вот с чем...

Имеем мод на динамический костер "dynamic campfire".

Так вот, там многих, так сказать, бочек с кострами нету. Каким образом можно получить название лагеря? Надеюсь правильно вопрос задал.

  Пример: (Показать)

 

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

@naxac То, что в другом коде работает, я знаю, но я ловлю вылет с ошибкой "attempt to call method 'alive' (a nil value)". Может, вообще не в этой проверке ошибка? Вот последняя версия (пока что "not obj.alive"): https://drive.google.com/open?id=1-K5gPW3q3AUPN1bGXfEjBZ1Uj8kecjwh

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

Шпаргалка

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

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

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

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

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

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

Войти

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

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

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