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

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

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

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

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
DonFalkone

Не есть ни пить при помехе на лице

Всем привет) Да вот возник вопрос о устранении одной нелепости в DayZ, всё жду пока сделают разработчики, ну да это у ни не в приоретете, ну да ладно, вот о чём речь, возможно ли сделать так, что бы персонаж не мог кушать и пить если на лице повязка(но пока они не надеваются), маска, мотоциклетный шлем, вообщем помеха которая не позволяет это делать по логике?!

 

 

 

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


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

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

  • 0

Чет я маху дал Find же точное значение ищет? Надо через цикл пустить.

foreach(string item : items)
	if(Mask.GetType().Contains(item) || HeadGear.GetType().Contains(item))
		condition = true;

 

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

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


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



  • 0

BorizzK  у меня памяти на сервере 64гига че мне этот 1кб

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

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


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

BorizzK накой переносить?

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


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

Equadro ну сколько взаимодействий столько и килобайт )))

 

foreach(string item : items)
	if(Mask.GetType().Contains(item) || HeadGear.GetType().Contains(item))
		condition = true;
		break;

НО! У тебя может либо Mask либо HeadGear быть NULL и ошибки в логах

что не есть гуд

 

modded class ActionContinuousBaseCB : ActionBaseCB
{	
	bool m_ActionsDebug = true;

	override bool CancelCondition()
	{
		if ( !m_ActionData )
		{
			return DefaultCancelCondition();
		}

		string strAction = ActionContinuousBase.Cast(m_ActionData.m_Action).ToString();
		if (strAction.Contains("ActionDrink") || strAction.Contains("ActionEat") || strAction.Contains("ActionForceDrink") || strAction.Contains("ActionForceFeed"))
		{
			PlayerBase player = NULL;
			if (!m_ActionData.m_Target.GetObject())
			{
				player = m_ActionData.m_Player;
			}
			else
			{
				player = PlayerBase.Cast(m_ActionData.m_Target.GetObject());
			}
			
			if (CheckMaskHeadGear(player))
			{
				m_ActionData.m_Callback.Interrupt();
				return false;
			}
		}
		return super.CancelCondition();
	}
	
	bool CheckMaskHeadGear(PlayerBase player)
	{
		ItemBase MaskHeadGear = NULL;
		bool condition = false;
		
		MaskHeadGear = player.GetHumanInventory().FindAttachment(InventorySlots.MASK);
		if (MaskHeadGear)
		{
			if (MaskHeadGear.GetType().Contains("Mask")) condition = true;
		}
		if (!condition) 
		{
			MaskHeadGear = player.GetHumanInventory().FindAttachment(InventorySlots.HEADGEAR);
			if (MaskHeadGear) 
			{
				if (MaskHeadGear.GetType().Contains("Moto") || MaskHeadGear.GetType().Contains("GreatHelm") || MaskHeadGear.GetType().Contains("Tactical_Helmet")) condition = true;
			}
		}
		
		return condition;
	}
}

 

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


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

Equadro Давай по болезням что у тебя поподробнее

Вываливай сюда что там не так

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


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

На 1.04 есть рабочий вариант?

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


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

Есть и работает
Но не до конца корректно

Как раз сейчас разбираюсь

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


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

BorizzK да все работает же как часы. Вот по поводу NULL логи чистые, это же не какая-то там критическая чтобы в логи выводить. Это раз, второе чтобы получить null его нужно куда-нибудь выводить? например в чат, а тут мы просто сверяем и получаем результат. У себя проверь и покажи мне логи, потому что мои чистые.

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


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

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

modded class ActionEatFruit: ActionEat
{
	override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
	{	
		Edible_Base food_item = Edible_Base.Cast( item );
		
		if( food_item.IsFruit() )
		{
			if(food_item.IsFoodRaw())
			{
				int action_chance = Math.RandomIntInclusive(1,10);
				if (action_chance <= 1)//10%
					player.InsertAgent(eAgents.SALMONELLA, 1);
			}
			//if ( item.GetTemperature() > 80 )
			return true;
		}

		return false;
	}
	
	override void OnEndAnimationLoopServer( ActionData action_data )
    {
        Edible_Base food_item = Edible_Base.Cast( action_data.m_MainItem );
        if (food_item.IsFoodRaw())
        {
			int end_action_chance = Math.RandomIntInclusive(1,10);
			if (end_action_chance <= 3)//30%
			{
				action_data.m_Player.InsertAgent(eAgents.SALMONELLA, 1);
			}
        }
    }	
}

 

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


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

Equadro Вот потому я и заваял себе на основе старых наработок теплую ламповую админку )))

там есть все что нужно и да же больше

 

А разве в этом классе есть функция OnEndAnimationLoopServer???

 

Гляжу в нативный файл - нет такого
 

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


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

BorizzK не было, стало.

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


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

BorizzK В ActionEatMeat нет кондишина. Добавил, так сейчас только губешками к мясу притронешься получишь сальмонеллу.

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


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

BorizzK админка не через чат случаем?

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


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

Equadro А те если прописать то оно заработает

Оч любопытно

 

Админка через чат

Я ее развил

Управляю из нее в тч AirDrop'ом который то же чисто серверный )))

Обьекты спавню-двигаю вращаю

наблюдение и фрикамера при этом перс админа пропадает с того места где стоял

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

 

но все как в линуксе через командную строку - да

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


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

Все чудесатей и чудесатей

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


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

BorizzK ввод команд же игроки увидят. 

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


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

Equadro  OnEndAnimationLoopServer добавил то же работает?

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


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

Equadro Ввод команд - я накатал чистилку ))) они ничего не увидят

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


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

if( food_item.IsFruit() ) че у тебя в мясе делает?
 

И еще лучше так

 

 if (food_item.IsFoodRaw() || food_item.IsFoodRotten())

 

ну типа сырое ели гнилое - и если гнилое повысить шанс

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

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


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

BorizzK у меня гнилья нет, а спавнить уже гнилое бред, вот если бы продукты по времени сами гнили тогда другое дело. Меня больше интересует реализация отображения убийства игрока которое выводится после респавна. Муторно же это все сохранять много букаф. У меня почему-то перестало перематываться время.

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

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


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

Equadro OnEndAnimationLoopServer ты добавил в класс поедания масца

И оно подцкпилось и работает? Точно?

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


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

Кстати, а по болезням что

Тема протухла

Я писал-писал - и чет-както грохнул все

 

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


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

BorizzK чтобы не жрали кишки и сало у себя я сделал нечто подобное 
override void OnConsume(float amount, PlayerBase consumer)
    
    {
        
        {
        
        consumer.GetStatWater().Add(consumer.GetStatWater().GetMax() / -50);
        consumer.GetStatEnergy().Add(consumer.GetStatEnergy().GetMax() / -200);
        consumer.InsertAgent(eAgents.SALMONELLA, 1000);
        consumer.InsertAgent(eAgents.CHOLERA, 1000);
        consumer.InsertAgent(eAgents.WOUND_AGENT, 1000);
        consumer.InsertAgent(eAgents.INFLUENZA, 1000);
        consumer.InsertAgent(eAgents.FOOD_POISON, 1000);
        consumer.InsertAgent(eAgents.CHEMICAL_POISON, 1000);
        consumer.InsertAgent(eAgents.BRAIN, 1000);
        
    }
    }

Так вот берешь сало подходишь к челу в маске и да, анимация обрывается но ему агенты впуливаются сразу же

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

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


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

YadRotcod Консумер у нас кто? Таргет

Ну и проверочку на намордник туда

И делофф

 

Меня больше водопой интерисует

Никак не догоню как проверить вода из реки или нет

 

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


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

BorizzK 

modded class ActionDrink: ActionConsume
{
	override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
	{
		if( item.GetLiquidType() == LIQUID_RIVERWATER )
			player.InsertAgent(eAgents.CHOLERA, 1);
		
		return true;
	}
};

 

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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