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

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

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

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

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

Рана

Собственно вопрос. Думаю многим будет интересено.
В скрипте "удары от зомби" прописано, что при ударе с шансом, даёт рану. При этом с шансом даёт заразу... Но, проблема в том, что заразу даёт вне зависимости, повесил ли зомби рану или нет.. Можете подсказать, что не так...
 

	override void ProcessHit(float damage, EntityAI source, int component, string zone, string ammo, vector modelPos)
	{
		float dmg_max = m_Player.GetMaxHealth(zone, "Blood");
		float dmg = damage;
		float bleed_threshold = GetGame().ConfigGetFloat( "CfgAmmo " + ammo + " DamageApplied " + "bleedThreshold" );
		bool is_source_animal = false;
		bool is_source_wildanimal = false;


		bleed_threshold = Math.Clamp(bleed_threshold,0,1);

		foreach(string animal : m_InfectedAnimals)
		{
			if (source.IsKindOf(animal))
			{
				is_source_animal = true;
				break;
			}
		}

		foreach(string wildanimal : m_WildAnimals)
		{
			if (source.IsKindOf(wildanimal))
			{
				is_source_wildanimal = true;
				break;
			}
		}
		if (source.IsZombie())
		{
			float chance = (float)MAGlobals.Get().g_ZombieBleedChance / 100;
			if (Math.RandomFloat01() < chance)
			{
				AttemptAddBleedingSource(component);
				if (Math.RandomFloat01() < 0.40)
				{
					m_Player.InsertAgent(eAgents.WOUND_AGENT, 100);
				}

				if (Math.RandomFloat01() < 0.05)
				{
					m_Player.InsertAgent(eAgents.BRAIN, 20);
				}

				if (Math.RandomFloat01() < 0.40)
				{
					m_Player.InsertAgent(RE_Agents.RAGEVIRUS, 20);
				}
			}
		}

		else if (is_source_animal)
		{
			float chance1 = 0.5;
			if (Math.RandomFloat01() < chance1)
			{
				AttemptAddBleedingSource(component);
				if (Math.RandomFloat01() < 0.30)
				{
					m_Player.InsertAgent(RE_Agents.RAGEVIRUS, 20);
				}

				if (Math.RandomFloat01() < 0.10)
				{
					m_Player.InsertAgent(eAgents.BRAIN, 20);
				}
			}
		}
	}

 

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

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


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

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

Нет ответов на вопрос

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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