Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 09/28/22 in all areas

  1. 4 points
    initial_delay - через сколько тиков после входа в зону в первый раз проверять наличие скилла на игроке unit_tick - с какой периодичностью в тиках проверять наличие скилла на игроке в зоне skill_prob - шанс наложения скилла при проверках выше тики могут быть разной длительности, в зависимости от сборки, но в основном используется период в 1с, но может быть и более близкий к оффу 666мс. --- Ну и наложение с снятием при выходе лучше всего делать через листенер, навешанный на нужные зоны и именно в нем делать наложение/снятие скилла при входе/выходе. Ну или вот как раз доработать, при наличии исходников ядра, обработку зон типа instant_skill, чтобы снимали скиллы наложенные при выходе из зоны
  2. 1 point
    Когда-нибудь, я открою свою закладку в блокноте с громким именем "id" (чтобы занимала мало места), где ждут своего часа все копи-пасты постов Gaikotsu, и всё её содержимое издам как отдельную книгу. В итоге мне принесут лично в руки много миллионов денег, и я заживу счастливо, а люди наконец-то начнут делать качественные сервера. Жаль, что увиденного придется проснуться узреть новые-старые вопросы про люцеру 1.7 и п софт.
  3. 1 point
    Чисто вот как пример - AI для нпс, на время своего существования создающий вокруг себя круглую зону с листенером, который при входе в эту зону вешает определенный скилл, а при выходе - снимает его. Я таких нпс юзаю для работы тотемов дающих бафф, ну тех что можно юзать у Антараса/Валакаса. package ai; import l2p.commons.collections.StatsSet; import l2p.commons.geometry.Circle; import l2p.gameserver.ai.DefaultAI; import l2p.gameserver.data.holder.SkillHolder; import l2p.gameserver.enums.ZoneType; import l2p.gameserver.holders.world.ZoneTemplate; import l2p.gameserver.listener.zone.OnZoneEnterLeaveListener; import l2p.gameserver.model.Creature; import l2p.gameserver.model.Territory; import l2p.gameserver.model.World; import l2p.gameserver.model.Zone; import l2p.gameserver.model.instances.NpcInstance; import l2p.gameserver.model.skills.Skill; import l2p.gameserver.utils.Strings; /** * AI, создающее на время круглую зону, при вхождении в которую на игроков накладывается заданное умение, а при выходе - снимается. * Радиус зоны берется из накладываемого умения. * * @author Gaikotsu */ public class CastSkillZone extends DefaultAI { private Skill _skill = null; private Zone _zone = null; private ZoneListener _listener = null; public CastSkillZone(NpcInstance actor) { super(actor); } @Override public boolean isGlobalAI() { return true; } @Override protected void onEvtSpawn() { super.onEvtSpawn(); NpcInstance actor = getActor(); i_ai0 = actor.getParameter("lifeTime", 0); i_ai1 = actor.getParameter("castPeriod", 0); addTimer(1001, i_ai0 * 1000L); addTimer(1002, i_ai1 * 1000L); String[] skill = actor.getParameter("castSkill", "0,0").split(","); if (skill.length != 2) return; _skill = SkillHolder.getInstance().getSkill(Integer.valueOf(skill[0]), Integer.valueOf(skill[1])); if (_skill == null) return; int radius = _skill.getAffectRange(); Circle c = new Circle(actor.getLoc(), radius); int z = actor.getLoc().getZ(); c.setMaxZ(z + radius); c.setMinZ(z - radius); StatsSet set = new StatsSet(); set.set("name", Strings.EMPTY); set.set("type", ZoneType.dummy); set.set("territory", new Territory().add(c)); _listener = new ZoneListener(); _zone = new Zone(new ZoneTemplate(set)); _zone.setReflection(actor.getReflection()); _zone.addListener(_listener); _zone.setActive(true); } @Override public void onEvtDespawn() { super.onEvtDespawn(); _zone.setActive(false); _zone.removeListener(_listener); _zone = null; } @Override protected void onEvtTimer(int timerId, Object arg1, Object arg2) { NpcInstance actor = getActor(); if (actor == null) return; if (timerId == 1001) { actor.deleteMe(); } else if (timerId == 1002) { if (_skill == null) return; World.getAroundPlayables(actor, _skill.getAffectRange(), _skill.getAffectRange()).stream().filter(cha -> cha != null && !cha.isDead()).forEach(cha -> _skill.getEffects(actor, cha, false)); addTimer(1002, i_ai1 * 1000L); } } private class ZoneListener implements OnZoneEnterLeaveListener { @Override public void onEnter(Zone zone, Creature actor) { if (!actor.isPlayable()) return; if (actor.getEffectList().checkEffectsBySkill(_skill)) return; _skill.getEffects(getActor(), actor, false); } @Override public void onLeave(Zone zone, Creature actor) { if (!actor.isPlayable()) return; if (!actor.getEffectList().checkEffectsBySkill(_skill)) return; actor.getEffectList().stopEffect(_skill); } } }
  4. 1 point
    Ту систему генерации ауг что существует в большинстве сборок проще нафиг выкинуть и написать по человечески, примерно так как это в офф-сервере делается - при этом реализация будет намного проще и понятнее чем эта фигня в виде существующей реализации... В итоге можно будет например нормально расписывать списки ауг и их шансы индивидуально для всех камней.
  5. 1 point
    При попытке зайти на аккаунт, логин выдает такую ошибку, где копать?
  6. 1 point
    Автор темы это бессмертный феникс, его банят но он возрождается вновь и вновь )))
  7. 1 point
    Всем привет! Есть желание организовать и дополнить каталог чистых/оригинальных игровых клиентов, которые скопились у меня за время работы. Все клиенты строго оригинальные, с gameguard/frost, нерабочие на win10 ниже грации парт 2 и т.д. Что касается новых/актуальных клиентов, которые доступны для загрузки с офф-сайтов, они загружаются и добавляются на сайт ежедневно автоматически. Сам каталог находится вот тут: http://akumu.ru/lineage2/ Там же можно найти таблицу с ссылками по протоколам и названию хроник, но она пока не полная. Все клиент можно скачать как торрентом, так и по-файлово с сайта. Если у вас если, чем дополнить эту коллекцию - напишите пожалуйста в ПМ или на почту me@akumu.ru Сейчас активно ищу: Valliance / Epeisodion 578-596, Grand Crusade (RU) 109-110, Salvation (NA) 140, Fafurion NA 166 и RU 196, Prelude of War (RU) 228-236, Homunculus (RU) 272.
  8. 1 point
    Кому-то может пригодится Новые анимации персонажей который очень похож на нижнем видео. Вытащил из буржуйского патча СКАЧАТЬ P.S: Сорри за видео... Было лень снять и другого не нашёл.
×
×
  • Create New...