Перейти к публикации
djeims7

ТХ в тяж сете... прыгающий баф... фикс имбы.

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

Че все про тх, да про войнов,луков. А маги элементальные могут че вообще?))

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

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

Чем больше пишешь - тем больше ржу xD

ШТРАФ ЗА НОШЕНИЕ НОЖА У ТАНКА АХАХАХАХАХА ЧТОООО.

Я наверное тебя удивлю если скажу что у оружия разного типа разные характеристики скорости атаки, крит рейта, точности и даже дальности атаки? и у кинжала просто точность ниже чем у меча, нет никаких штрафов.

 

Я кажется понял, ты выше ИЛ не играл видимо и не знаешь про команду .whoami, жаль ее тут почему то тоже нет.

Сейчас наверное вновь тебя удивлю: крит дамаг - лимит 2000% !!! на П/М атаку, скорость бега, атаки и каста - тоже стоят лимиты!

Лимит на защиту от крит дамага 50% просто поверь и смирись. Обосновать можно хотя бы тем что если будет больше 50%, то если тебя фул забафаного будет бить не бафнутый персонаж то его Крит удар будет меньше простого удара, старанно будет не правда ли?

 

Разница будет в как минимум в скилах, у Танка скилы на увеличение защиты с щитом, УД и т.п., а разницу в защите от крита ты получишь без премиум бафа или на оли.

 

Доходчиво, ничего не смыслящий в механике ла2 ты наш?

.whoaimi реализована на java.

[spoiler=Пруф]

package org.mmocore.gameserver.handler.voicecommands.impl;

import java.text.NumberFormat;
import java.util.Locale;

import org.mmocore.gameserver.data.htm.HtmCache;
import org.mmocore.gameserver.handler.voicecommands.IVoicedCommandHandler;
import org.mmocore.gameserver.model.Creature;
import org.mmocore.gameserver.model.GameObject;
import org.mmocore.gameserver.model.Player;
import org.mmocore.gameserver.model.base.Element;
import org.mmocore.gameserver.model.items.ItemInstance;
import org.mmocore.gameserver.network.l2.components.HtmlMessage;
import org.mmocore.gameserver.stats.Formulas;
import org.mmocore.gameserver.stats.Stats;
import org.mmocore.gameserver.templates.item.WeaponTemplate.WeaponType;

public class WhoAmI implements IVoicedCommandHandler
{
   private final String[] _commandList = new String[] { "whoami", "whoiam" };

   @Override
   public String[] getVoicedCommandList()
   {
       return _commandList;
   }

   @Override
   public boolean useVoicedCommand(String command, Player player, String args)
   {
       final GameObject object = player.getTarget();
       final Creature target = object != null && object.isCreature() ? (Creature) object : null;

       //TODO [G1ta0] добавить рефлекты
       double hpRegen = Formulas.calcHpRegen(player);
       double cpRegen = Formulas.calcCpRegen(player);
       double mpRegen = Formulas.calcMpRegen(player);
       double hpDrain = player.calcStat(Stats.ABSORB_DAMAGE_PERCENT, 0., target, null);
       double mpDrain = player.calcStat(Stats.ABSORB_DAMAGEMP_PERCENT, 0., target, null);
       double hpGain = player.calcStat(Stats.HEAL_EFFECTIVNESS, 100., target, null);
       double mpGain = player.calcStat(Stats.MANAHEAL_EFFECTIVNESS, 100., target, null);
       double critPerc = player.calcStat(Stats.CRITICAL_DAMAGE, target, null);
       double critStatic = player.calcStat(Stats.CRITICAL_DAMAGE_STATIC, target, null);
       double mCritRate = player.calcStat(Stats.MCRITICAL_RATE, target, null);
       double blowRate = player.calcStat(Stats.FATALBLOW_RATE, target, null);

       ItemInstance shld = player.getSecondaryWeaponInstance();
       boolean shield = shld != null && shld.getItemType() == WeaponType.NONE;

       double shieldDef = shield ? player.calcStat(Stats.SHIELD_DEFENCE, player.getTemplate().baseShldDef, target, null) : 0.;
       double shieldRate = shield ? player.calcStat(Stats.SHIELD_RATE, target, null) : 0.;

       double xpRate = player.getRateExp();
       double spRate = player.getRateSp();
       double dropRate = player.getRateItems();
       double adenaRate = player.getRateAdena();
       double spoilRate = player.getRateSpoil();

       double fireResist = player.calcStat(Element.FIRE.getDefence(), 0., target, null);
       double windResist = player.calcStat(Element.WIND.getDefence(), 0., target, null);
       double waterResist = player.calcStat(Element.WATER.getDefence(), 0., target, null);
       double earthResist = player.calcStat(Element.EARTH.getDefence(), 0., target, null);
       double holyResist = player.calcStat(Element.HOLY.getDefence(), 0., target, null);
       double unholyResist = player.calcStat(Element.UNHOLY.getDefence(), 0., target, null);

       double bleedPower = player.calcStat(Stats.BLEED_POWER, 100., target, null) - 100.;
       double bleedResist = player.calcStat(Stats.BLEED_RESIST, 100., target, null) - 100.;
       double poisonPower = player.calcStat(Stats.POISON_POWER, 100., target, null) - 100.;
       double poisonResist = player.calcStat(Stats.POISON_RESIST, 100., target, null) - 100.;
       double stunPower = player.calcStat(Stats.STUN_POWER, 100., target, null) - 100.;
       double stunResist = player.calcStat(Stats.STUN_RESIST, 100., target, null) - 100.;
       double rootPower = player.calcStat(Stats.ROOT_POWER, 100., target, null) - 100.;
       double rootResist = player.calcStat(Stats.ROOT_RESIST, 100., target, null) - 100.;
       double sleepPower = player.calcStat(Stats.SLEEP_POWER, 100., target, null) - 100.;
       double sleepResist = player.calcStat(Stats.SLEEP_RESIST, 100., target, null) - 100.;
       double paralyzePower = player.calcStat(Stats.PARALYZE_POWER, 100., target, null) - 100.;
       double paralyzeResist = player.calcStat(Stats.PARALYZE_RESIST, 100., target, null) - 100.;
       double mentalPower = player.calcStat(Stats.MENTAL_POWER, 100., target, null) - 100.;
       double mentalResist = player.calcStat(Stats.MENTAL_RESIST, 100., target, null) - 100.;
       double debuffPower = player.calcStat(Stats.DEBUFF_POWER, 100., target, null) - 100.;
       double debuffResist = player.calcStat(Stats.DEBUFF_RESIST, 100., target, null) - 100.;
       double cancelPower = player.calcStat(Stats.CANCEL_POWER, target, null);
       double cancelResist = player.calcStat(Stats.CANCEL_RESIST, target, null);

       double swordResist = 100. - player.calcStat(Stats.SWORD_WPN_VULNERABILITY, target, null);
       double dualResist = 100. - player.calcStat(Stats.DUAL_WPN_VULNERABILITY, target, null);
       double bluntResist = 100. - player.calcStat(Stats.BLUNT_WPN_VULNERABILITY, target, null);
       double daggerResist = 100. - player.calcStat(Stats.DAGGER_WPN_VULNERABILITY, target, null);
       double bowResist = 100. - player.calcStat(Stats.BOW_WPN_VULNERABILITY, target, null);
       double crossbowResist = 100. - player.calcStat(Stats.CROSSBOW_WPN_VULNERABILITY, target, null);
       double poleResist = 100. - player.calcStat(Stats.POLE_WPN_VULNERABILITY, target, null);
       double fistResist = 100. - player.calcStat(Stats.FIST_WPN_VULNERABILITY, target, null);

       double critChanceResist = 100. - player.calcStat(Stats.CRIT_CHANCE_RECEPTIVE, target, null);
       double critDamResistStatic = player.calcStat(Stats.CRIT_DAMAGE_RECEPTIVE, target, null);
       double critDamResist = 100. - 100 * (player.calcStat(Stats.CRIT_DAMAGE_RECEPTIVE, 1., target, null) - critDamResistStatic);

       NumberFormat df = NumberFormat.getInstance(Locale.ENGLISH);
       df.setMaximumFractionDigits(1);
       df.setMinimumFractionDigits(1);

       HtmlMessage msg = new HtmlMessage(5);
       msg.setHtml(HtmCache.getInstance().getHtml("command/whoami.htm", player));
       msg.replace("%hpRegen%", df.format(hpRegen));
       msg.replace("%cpRegen%", df.format(cpRegen));
       msg.replace("%mpRegen%", df.format(mpRegen));
       msg.replace("%hpDrain%", df.format(hpDrain));
       msg.replace("%mpDrain%", df.format(mpDrain));
       msg.replace("%hpGain%", df.format(hpGain));
       msg.replace("%mpGain%", df.format(mpGain));
       msg.replace("%critPerc%", df.format(critPerc));
       msg.replace("%critStatic%", df.format(critStatic));
       msg.replace("%mCritRate%", df.format(mCritRate));
       msg.replace("%blowRate%", df.format(blowRate));
       msg.replace("%shieldDef%", df.format(shieldDef));
       msg.replace("%shieldRate%", df.format(shieldRate));
       msg.replace("%xpRate%", df.format(xpRate));
       msg.replace("%spRate%", df.format(spRate));
       msg.replace("%dropRate%", df.format(dropRate));
       msg.replace("%adenaRate%", df.format(adenaRate));
       msg.replace("%spoilRate%", df.format(spoilRate));
       msg.replace("%fireResist%", df.format(fireResist));
       msg.replace("%windResist%", df.format(windResist));
       msg.replace("%waterResist%", df.format(waterResist));
       msg.replace("%earthResist%", df.format(earthResist));
       msg.replace("%holyResist%", df.format(holyResist));
       msg.replace("%darkResist%", df.format(unholyResist));
       msg.replace("%bleedPower%", df.format(bleedPower));
       msg.replace("%bleedResist%", df.format(bleedResist));
       msg.replace("%poisonPower%", df.format(poisonPower));
       msg.replace("%poisonResist%", df.format(poisonResist));
       msg.replace("%stunPower%", df.format(stunPower));
       msg.replace("%stunResist%", df.format(stunResist));
       msg.replace("%rootPower%", df.format(rootPower));
       msg.replace("%rootResist%", df.format(rootResist));
       msg.replace("%sleepPower%", df.format(sleepPower));
       msg.replace("%sleepResist%", df.format(sleepResist));
       msg.replace("%paralyzePower%", df.format(paralyzePower));
       msg.replace("%paralyzeResist%", df.format(paralyzeResist));
       msg.replace("%mentalPower%", df.format(mentalPower));
       msg.replace("%mentalResist%", df.format(mentalResist));
       msg.replace("%debuffPower%", df.format(debuffPower));
       msg.replace("%debuffResist%", df.format(debuffResist));
       msg.replace("%cancelPower%", df.format(cancelPower));
       msg.replace("%cancelResist%", df.format(cancelResist));
       msg.replace("%swordResist%", df.format(swordResist));
       msg.replace("%dualResist%", df.format(dualResist));
       msg.replace("%bluntResist%", df.format(bluntResist));
       msg.replace("%daggerResist%", df.format(daggerResist));
       msg.replace("%bowResist%", df.format(bowResist));
       msg.replace("%crossbowResist%", df.format(crossbowResist));
       msg.replace("%fistResist%", df.format(fistResist));
       msg.replace("%poleResist%", df.format(poleResist));
       msg.replace("%critChanceResist%", df.format(critChanceResist));
       msg.replace("%critDamResist%", df.format(critDamResist));
       player.sendPacket(msg);

       return true;
   }
}

 

 

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

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

Ну у магов же есть сильные скилы которые на ил с сидами, и с ними слабоваты?))

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

Че все про тх, да про войнов,луков. А маги элементальные могут че вообще?))

Маги вата. Против танка есть шанс только если замедлить его, против лука есть шанс только если третьепрофные нюки кританут и ты ударишь первым, ибо крит фра заканчивается фрагом а против ножей хорошо срабатывает бсое, правда только если тебе не дали бек на 8к из хайда) против саммонов хватает только на убийство пета, дальше судорожное выхиливание и по новой битва с петом, к самому саммонеру вряд ли подойдёшь, правда если второпрофных петов так же порезали на кд до 30сек, тогда есть шансик...

  • ToriBlack

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

Ну у магов же есть сильные скилы которые на ил с сидами, и с ними слабоваты?))
ну откат 5 минут, выходит что раз в 5 минут ты сильный ) как то так )
Ссылка на сообщение
Поделиться на других сайтах

Одевал пв в дк лайт +6, уклонение +-160. Не, ну рили, зачем носить лайт, если от него нет толку.

Я о чем и говорю - от лайта никакого профита. Разве что Лукам в лайт МЖ +8% к П.атаке.

На самом деле ситуация изменилась в Classic 2.5 там при заточке сетов вкусные плюшки... ну а пока - встречайте Даггеров в тяже! ;)

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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...