Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
class ActionCoolItemCB : ActionContinuousBaseCB
{
	override void CreateActionComponent()
	{
		m_ActionData.m_ActionComponent = new CAContinuousRepeat(3.5);
	}
};

class ActionCoolItem: ActionContinuousBase
{
	void ActionCoolItem()
	{
		m_CallbackClass = ActionCoolItemCB;
		m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_BLOWFIREPLACE;
		m_FullBody = true;
		m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH;
	}

	override string GetText()
	{
		return "Остудить";
	}
	
	override typename GetInputType()
	{
		return ContinuousInteractActionInput;
	}
	
	override void CreateConditionComponents()  
	{
		m_ConditionItem = new CCINone;
    }
	
	override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
	{	
        Edible_Base targetEB = Edible_Base.Cast(target.GetObject());
        if (targetEB && !targetEB.IsKindOf("BottleBase") && targetEB.GetTemperature() > 10)
        {
            return true;
        }
		return false;
	}
	
	override void OnEndAnimationLoopServer( ActionData action_data )
	{
	    super.OnEndAnimationLoopServer(action_data);
        Edible_Base targetEB = Edible_Base.Cast(action_data.m_Target.GetObject());
        targetEB.AddTemperature(-10);
	}
};

Действие есть, выполнять начинает но мгновенно заканчивает. Эффект (-10 градусов температуры) накладывается. Как поставить действию время выполнения и добавить цикличность? (будет здорово если туда можно будет запихать условие прекращения действия)

Изменено пользователем XenoZD (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

  • 0

Да ну быть не может что никто подобные действия не мутил

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах





  • 0
m_ActionData.m_ActionComponent = new CAContinuousRepeat(3.5);

в скобках время действия в секундах

CAContinuousTime - насколько понял это просто действие

CAInteractLoop - действие с повтором.

согу ошибаться

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
17 минут назад, 123new сказал:

m_ActionData.m_ActionComponent = new CAContinuousRepeat(3.5);


m_ActionData.m_ActionComponent = new CAContinuousRepeat(3.5);

в скобках время действия в секундах

CAContinuousTime - насколько понял это просто действие

CAInteractLoop - действие с повтором.

согу ошибаться


Можешь
CAContinuousRepeat используется для того же питья воды из пруда, так что с этим проблем быть не должно
Interact вообще сам по себе для взаимодействия с объектами мира (насколько я понял), для предметов Continuous вполне подойдёт
CAInteractLoop имеет такой же результат

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@XenoZD попробуй

m_ActionData.m_ActionComponent = new CAContinuousTime( 0.5 );

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
20 минут назад, Joker420 сказал:

@XenoZD попробуй

m_ActionData.m_ActionComponent = new CAContinuousTime( 0.5 );


m_ActionData.m_ActionComponent = new CAContinuousTime( 0.5 );

 


Игре понравилось, мне не очень
Проблема НЕ в ActionComponent, ибо этот выдал точно такой же результат

Что-то прекращает действие сразу после того как оно началось (будто время действия 0.0 секунд, хотя выставлено 3.5)
Если у кого-то есть ещё идеи - буду рад послушать

П.с. меня больше всего пугает что при этом предмет ОСТЫВАЕТ

Изменено пользователем XenoZD (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Вопрос стал в два раза актуальнее
 

class ActionWashItemWaterCB : ActionContinuousBaseCB
{
    override void CreateActionComponent()
	{
		m_ActionData.m_ActionComponent = new CAContinuousRepeat(UATimeSpent.WASH_HANDS);
	}
};

class ActionWashItemWater: ActionContinuousBase
{
	void ActionWashItemWater()
	{
		m_CallbackClass 	= ActionWashItemWaterCB;
		m_CommandUID		= DayZPlayerConstants.CMD_ACTIONFB_WASHHANDSPOND;
		m_FullBody			= true;
		m_StanceMask		= DayZPlayerConstants.STANCEMASK_CROUCH;
	}

	override string GetText()
	{
		return "Помыть";
	}

	override void CreateConditionComponents()  
	{		
	}

	override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
	{
        return true;
    }
	
	override void OnFinishProgressServer( ActionData action_data )
	{
        action_data.m_MainItem.RemoveAllAgents();
	}
};

Для теста убрал все условия, которые нашёл, просто чтобы хоть что-то увидеть - действия нет.
(В конструктор оба действия добавлены и игроку тоже)
P.S. один раз случайно забыл добавить return true; в ActionCondition - игра это съела и не подавилась. Вообще перестал понимать что происходит. Мод читает т.к. основной функционал работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 часа назад, XenoZD сказал:

Вопрос стал в два раза актуальнее
 

class ActionWashItemWaterCB : ActionContinuousBaseCB { override void CreateActionComponent() { m_ActionData.m_ActionComponent = new CAContinuousRepeat(UATimeSpent.WASH_HANDS); } }; class ActionWashItemWater: ActionContinuousBase { void ActionWashItemWater() { m_CallbackClass = ActionWashItemWaterCB; m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_WASHHANDSPOND; m_FullBody = true; m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH; } override string GetText() { return "Помыть"; } override void CreateConditionComponents() { } override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item ) { return true; } override void OnFinishProgressServer( ActionData action_data ) { action_data.m_MainItem.RemoveAllAgents(); } };


class ActionWashItemWaterCB : ActionContinuousBaseCB
{
    override void CreateActionComponent()
	{
		m_ActionData.m_ActionComponent = new CAContinuousRepeat(UATimeSpent.WASH_HANDS);
	}
};

class ActionWashItemWater: ActionContinuousBase
{
	void ActionWashItemWater()
	{
		m_CallbackClass 	= ActionWashItemWaterCB;
		m_CommandUID		= DayZPlayerConstants.CMD_ACTIONFB_WASHHANDSPOND;
		m_FullBody			= true;
		m_StanceMask		= DayZPlayerConstants.STANCEMASK_CROUCH;
	}

	override string GetText()
	{
		return "Помыть";
	}

	override void CreateConditionComponents()  
	{		
	}

	override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
	{
        return true;
    }
	
	override void OnFinishProgressServer( ActionData action_data )
	{
        action_data.m_MainItem.RemoveAllAgents();
	}
};

Для теста убрал все условия, которые нашёл, просто чтобы хоть что-то увидеть - действия нет.
(В конструктор оба действия добавлены и игроку тоже)
P.S. один раз случайно забыл добавить return true; в ActionCondition - игра это съела и не подавилась. Вообще перестал понимать что происходит. Мод читает т.к. основной функционал работает

клиент-серверным надеюсь тестируешь?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Чисто клиент :thinking:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Если съела и не подавилась с ошибкой напрашивается нескромный вопрос - а сам pbo рабочий?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
4 часа назад, 123new сказал:

Если съела и не подавилась с ошибкой напрашивается нескромный вопрос - а сам pbo рабочий?


Как тут цитировать
А, нашёл

 

23 часа назад, XenoZD сказал:

Мод читает т.к. основной функционал работает


П.с. я потом специально набрал рандомных символов в строчку - он начал ругаться. Ничего другого в это время не менял

Не обещаю, но если я когда-нибудь разберусь нормально с темой экшенов напишу гайд по ним

Изменено пользователем XenoZD (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 минуту назад, XenoZD сказал:


Как тут цитировать
А, нашёл

 

 

тогда быть такого не может что в функции с возвратом значения и без return ошибки не возникло. Это антилогично впринципе и противоречит всем здравым смыслам вселенной

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 минуту назад, 123new сказал:

тогда быть такого не может что в функции с возвратом значения и без return ошибки не возникло. Это антилогично впринципе и противоречит всем здравым смыслам вселенной


Я знаю.. но всё что в этом моде есть работает без перебоев, а действий этих нет

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 часа назад, XenoZD сказал:


Я знаю.. но всё что в этом моде есть работает без перебоев, а действий этих нет

 

скинь свою пбо в таком случае

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

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

Зарегистрируйтесь для получения аккаунта. Это просто!

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

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.