Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 1
Sign in to follow this  
XenoZD

Снова PPEffects

Читал вот эту тему 

Вкратце перескажу, у человека была проблема с вызовом эффекта на экране. Предполагалось, что сам эффект он прописал и при должном вызове он бы сработал. У меня же вопрос другого плана: как я понял, богемы успели обновить всю механику визуальных эффектов, появились (либо я только сейчас заметил) классы типа PPERequesterBank и прочее. Есть ли у кого актуальный способ/пример, как добавить в игру сам эффект? (допустим, банальный эффект сатурации с другим колоритом, без возни с материалами и т.д.)? Как его включить на игроке я уж разберусь, проблема именно в регистрации эффекта

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Руки дойдут - мб гайд напишу, хотя сам эффект оказался лишь верхушкой айсберга
Вкратце:
1. Нужен свой класс (далее - реквестер) от PPERequester_GamePlayBase, примеры лежат в 3_Game/PPEManager/Requesters. Если это вкл/выкл эффект, нужен только override OnStart(), иначе - кастомная функция, которая влияет на какой-то эффект
Основные функции для управления эффектами - SetTargetValueFloat() и SetTargetValueColor() (до конца не понял - либо первое для эффектов типа размытия, а второе для колоризации, либо обе функции могут относиться к одному эффекту, но у меня так не получилось)
Параметры функций: первые два - уточнение самого эффекта (см. примеры и копай от них), далее для SetTargetValueFloat() флаг, отвечающий за относительность изменений (0.5 буквально или 0.5 от текущего) и следом сам значение условной "силы" эффекта, для SetTargetValueColor() без флага сразу цвет эффекта ({R, G, B, четвёртый должен быть A но я не увидел его импакта на игру}, ОТНОСИТЕЛЕН (0..1), числа выше 1 мне ничего не дали), далее (важно) - приоритет эффекта. Приоритет - int, в примерах используются константы для удобства, момента когда это решает что-то я не нашёл, однако забывать не стоит (как я понял, желательно найти использование этого же эффекта в примерах и выставить такой же приоритет), и последнее - оператор. Для примера - оператор SET сотрёт бывший эффект и запишет новый (например, размытие экрана станет ровно такой силы, какой поставите), ADD добавит к текущему (было 0.2, в функции 0.5 - станет 0.7). Поиск по операторам и найдёте где они все находятся, названия говорят за себя.

2. Реквестер нужно добавить в PPERequesterBank, так же по образу и подобию уже туда добавленных. Тут проблем нет
(Далее дисклеймер - я говорю на своём примере. Данное сообщение всё равно не гайд, а ответ на мой же вопрос, так что понимайте как хотите)

3. Реквестер - часть клиента, потому с теми же эффектами при болезнях нельзя просто взять и добавить реквестер в ModifiersManager (ибо он есть только на сервере). Лучший вариант по-моему через симптомы и StateManager. Пример нынче лежит в 4_World/Classes/PlayerSymptoms/Symptoms/Secondary: BloodLoss.c для понимания управления эффектом в зависимости от чего-то (заодно сразу Classes/TransferValues.c или RPC запросы можете смотреть, если какой-то инфы вдруг не будет на клиенте), Fever.c для понимания управления эффектом от своей переменной (например, времени). И там и там показано как прикрепить эффект к симптому и как его выключить. Соответственно Classes/PlayerSymptoms/StateManager.c для добавления нового симптома в общий список (прочие нюансы по типу идентификтора для симптома надеюсь все уже знают, если нет - вам гайд нужен попроще)

4. В таком виде эффект готов, вызвать его можно включив у игрока симптом. Подбираете нужные для себя условия и

player.GetSymptomManager().QueueUpSecondarySymptom(NewSymptomIDs.MY_SPECIAL_EFFECT)



Надеюсь, ничего не забыл и кому-то ещё это пригодится. Я спать.

Share this post


Link to post
Share on other sites



Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.