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
  • 0
XenoZD

CAContinuousRepeat

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 градусов температуры) накладывается. Как поставить действию время выполнения и добавить цикличность? (будет здорово если туда можно будет запихать условие прекращения действия)

Edited by XenoZD (see edit history)

Share this post


Link to post
Share on other sites

13 answers to this question

Recommended Posts

  • 0

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

 

Share this post


Link to post
Share on other sites



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

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

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

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

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

Share this post


Link to post
Share on other sites
  • 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 имеет такой же результат

Share this post


Link to post
Share on other sites
  • 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)
Если у кого-то есть ещё идеи - буду рад послушать

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

Edited by XenoZD (see edit history)

Share this post


Link to post
Share on other sites
  • 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 - игра это съела и не подавилась. Вообще перестал понимать что происходит. Мод читает т.к. основной функционал работает

Share this post


Link to post
Share on other sites
  • 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 - игра это съела и не подавилась. Вообще перестал понимать что происходит. Мод читает т.к. основной функционал работает

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

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0
4 часа назад, 123new сказал:

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


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

 

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

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


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

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

Edited by XenoZD (see edit history)

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, XenoZD сказал:


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

 

 

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

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, 123new сказал:

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


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

 

Share this post


Link to post
Share on other sites
  • 0
2 часа назад, XenoZD сказал:


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

 

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

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

×
×
  • 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.