Перейти к содержанию
Авторизация  
P1ckw1ck

Резисты.

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

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

Даже когда сонг кидаю все равно ефект только от 1 бафнутого скила идет.

Изменено пользователем P1ckw1ck

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


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

а тем скилом что бете, вы уверены что у него атака тьмой?

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


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

ну если исходники есть, в чем проблема то?

 

поизучай класс StatFunctions на тему того, корректно ли делаются арифметические операции с атрибутами.

больше как-то никаких идей почему так может происходить у меня лично нет

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


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

formulas скорее всего.

Та кого метода там нету.

Изменено пользователем P1ckw1ck

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


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

Помойму нашел формулы резистов.

 

в моем сурсе. за 2012 год.

public static double calcElemental(L2Character attacker, L2Character target, L2Skill skill)
	{
		if (skill != null)
		{
			final byte element = skill.getElement();
			if (element >= 0)
			{
				// power is basically put to 20
				int calcPower = 20;
				int calcDefen = target.getDefenseElementValue(element);
				
				/*if (attacker.getAttackElement() == element) FIXME implementation elemental to a skill.
					calcPower += attacker.getAttackElementValue(element);*/
				
				int calcTotal = calcPower - calcDefen;
				if (calcTotal > 0)
				{
					if (calcTotal < 75)
						return 1 + calcTotal * 0.0052;
					else if (calcTotal < 150)
						return 1.4;
					else if (calcTotal < 290)
						return 1.7;
					else if (calcTotal < 300)
						return 1.8;
					else
						return 2.0;
				}
			}
		}

сурс 345 ревы ацис

public static double calcElemental(L2Character attacker, L2Character target, L2Skill skill)
	{
		if (skill != null)
		{
			final byte element = skill.getElement();
			if (element > 0)
				return 1 + ((attacker.getAttackElementValue(element) / 10.0 - target.getDefenseElementValue(element)) / 100.0);
			
			return 1;
		}
		
		double elemDamage = 0;
		for (byte i = 1; i < 7; i++)
		{
			final int attackerBonus = attacker.getAttackElementValue(i);
			elemDamage += Math.max(0, (attackerBonus - (attackerBonus * (target.getDefenseElementValue(i) / 100.0))));
		}
		return elemDamage;
	}

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


Ссылка на сообщение
Поделиться на другие сайты
public static double calcElemental(L2Character attacker, L2Character target, L2Skill skill)
	{
		int calcPower = 0;
		int calcDefen = 0;
		int calcTotal = 0;
		double result = 1.0;
		byte element;
		
		if (skill != null)
		{
			element = skill.getElement();
			if (element >= 0)
			{
				calcPower = skill.getElementPower();
				calcDefen = target.getDefenseElementValue(element);
				
				if (attacker.getAttackElement() == element)
				{
					calcPower += attacker.getAttackElementValue(element);
				}
				
				calcTotal = calcPower - calcDefen;
				if (calcTotal > 0)
				{
					if (calcTotal < 50)
					{
						result += calcTotal * 0.003948;
					}
					else if (calcTotal < 150)
					{
						result = 1.1974;
					}
					else if (calcTotal < 300)
					{
						result = 1.3973;
					}
					else
					{
						result = 1.6963;
					}
				}
				
				if (Config.DEVELOPER)
				{
					_log.info(skill.getName() + ": " + calcPower + ", " + calcDefen + ", " + result);
				}
			}
		}
		else
		{
			element = attacker.getAttackElement();
			if (element >= 0)
			{
				calcTotal = Math.max(attacker.getAttackElementValue(element) - target.getDefenseElementValue(element), 0);
				
				if (calcTotal < 50)
				{
					result += calcTotal * 0.003948;
				}
				else if (calcTotal < 150)
				{
					result = 1.1974;
				}
				else if (calcTotal < 300)
				{
					result = 1.3973;
				}
				else
				{
					result = 1.6963;
				}
				
				if (Config.DEVELOPER)
				{
					_log.info("Hit: " + calcPower + ", " + calcDefen + ", " + result);
				}
			}
		}
		return result;
	}

Вот так этот метод реализован в лыже.

Сравни логику.

  • Upvote 1

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


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

Как решил подскажешь? 

Изменено пользователем sdendy

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


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

 

Помойму нашел формулы резистов.

 

в моем сурсе. за 2012 год.

public static double calcElemental(L2Character attacker, L2Character target, L2Skill skill)
	{
		if (skill != null)
		{
			final byte element = skill.getElement();
			if (element >= 0)
			{
				// power is basically put to 20
				int calcPower = 20;
				int calcDefen = target.getDefenseElementValue(element);
				
				/*if (attacker.getAttackElement() == element) FIXME implementation elemental to a skill.
					calcPower += attacker.getAttackElementValue(element);*/
				
				int calcTotal = calcPower - calcDefen;
				if (calcTotal > 0)
				{
					if (calcTotal < 75)
						return 1 + calcTotal * 0.0052;
					else if (calcTotal < 150)
						return 1.4;
					else if (calcTotal < 290)
						return 1.7;
					else if (calcTotal < 300)
						return 1.8;
					else
						return 2.0;
				}
			}
		}

сурс 345 ревы ацис

public static double calcElemental(L2Character attacker, L2Character target, L2Skill skill)
	{
		if (skill != null)
		{
			final byte element = skill.getElement();
			if (element > 0)
				return 1 + ((attacker.getAttackElementValue(element) / 10.0 - target.getDefenseElementValue(element)) / 100.0);
			
			return 1;
		}
		
		double elemDamage = 0;
		for (byte i = 1; i < 7; i++)
		{
			final int attackerBonus = attacker.getAttackElementValue(i);
			elemDamage += Math.max(0, (attackerBonus - (attackerBonus * (target.getDefenseElementValue(i) / 100.0))));
		}
		return elemDamage;
	}

Заменил свой метод на тот который с 345 ревизии.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

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