Жалко, что "в стол" работаете! А некоторые, вообще как Гоголь, черновики сжигают ;( Написали-бы статью: Полный разбор системы клиент-серверных приложений на основе ММОРПГ Aion. И вопросов бы небыло многих
С такими идеями пора уже свой след оставить. Форум как раз существует для того, чтоб другие и новички могли так сказать что то взять и на чем то тренироваться/научится. Как то не разумно обучать "вождению" на собственной машине P,S тему зря зафлудил, возможно что то интересное почерпнул бы в процессе(если бы автор дальше стал развивать по существующим ответам и вопросам). Думаю чистить никто не будет.
я выше писал. Please login or register to view links значит действительно ТС это не нужно. Там есть ответ(ещё выше), пусть отключит и не заморочивается
Прошу прощения, не могу сюда зайти. Сборка 4.9 . То есть просто нужно найти этот пакет Ox16D и закомпилить в свою сборку?НАпример найду его в другой сборке такой же версии и всё?Вопрос будет решён получается?Буду активно отвечать!Извините,форс мажор обстоятельства!И спасибо за помощь!
Нет,сборка aion-lighting. Вообщем ситуация какая - нпс из данжа "Военная база Сауро" "Офицер инспектор Ованка" В момент,когда наступает 98% хп ,оноа использует skill1. И всё как бы работает,но если в момент использования этого скилла Ованкой дать урон по радиусу(в котором она находится) то появляется вот эта ошибка в теме,что не найден пакет Ox16D .(Вы просили показать момент, когда вылетает ошибка.).И хочу заметить, что в общем все работает так же, даже если вылетает ошибка(не найден пакет).Но ошибка вылетает не просто так. Код: /** * This file is part of Aion-Lightning <aion-lightning.org>. * * Aion-Lightning is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Aion-Lightning is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Aion-Lightning. * If not, see <http://www.gnu.org/licenses/>. */ package ai.instance.sauroSupplyBase; import ai.AggressiveNpcAI2; import com.aionemu.gameserver.ai2.AIName; import com.aionemu.gameserver.model.gameobjects.Creature; import com.aionemu.gameserver.model.gameobjects.Npc; import com.aionemu.gameserver.model.gameobjects.VisibleObject; import com.aionemu.gameserver.model.gameobjects.player.Player; import com.aionemu.gameserver.services.NpcShoutsService; import com.aionemu.gameserver.skillengine.SkillEngine; import com.aionemu.gameserver.utils.ThreadPoolManager; import com.aionemu.gameserver.ai2.manager.EmoteManager; import com.aionemu.gameserver.model.EmotionType; import com.aionemu.gameserver.ai2.handler.AggroEventHandler; import com.aionemu.gameserver.ai2.AIState; import com.aionemu.gameserver.ai2.AISubState; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * @author Alcapwnd */ @AIName("ovanka") public class TheOfficerInspectorOvankaAI2 extends AggressiveNpcAI2 { private boolean canThink = true; private List<Integer> percents = new ArrayList<Integer>(); @Override protected void handleSpawned() { addPercent(); VritraBless(3000); super.handleSpawned(); } @Override public boolean canThink() { return canThink; } @Override protected void handleAttack(Creature creature) { super.handleAttack(creature); checkPercentage(getLifeStats().getHpPercentage()); } private void checkPercentage(int hpPercentage) { if (hpPercentage > 98 && percents.size() < 11) { addPercent(); } for (Integer percent : percents) { if (hpPercentage <= percent) { switch (percent) { case 98: shout_start(); skill1(); break; case 95: skill2(); break; case 80: shout2(); spawn_support(); break; case 70: skill3(); break; case 60: skill4(); break; case 50: shout2(); spawn_support(); break; case 40: skill2(); break; case 30: shout1(); skill5(); break; case 20: skill6(); break; case 10: shout2(); spawn_support(); break; case 5: shout_died(); skill6(); break; } percents.remove(percent); break; } } } private void skill1() { VisibleObject target = getTarget(); if (target != null && target instanceof Player) { SkillEngine.getInstance().getSkill(getOwner(), 20251, 65, getOwner()).useNoAnimationSkill(); EmoteManager.emoteStopAttacking(getOwner()); ThreadPoolManager.getInstance().schedule(new Runnable() { @Override public void run() { WorldMapInstance instance = getPosition().getWorldMapInstance(); deleteNpcs(instance.getNpcs(233256)); ThreadPoolManager.getInstance().schedule(new Runnable() { @Override public void run() { stage0(); getRandomTarget(); ThreadPoolManager.getInstance().schedule(new Runnable() { @Override public void run() { Npc ovanka = getPosition().getWorldMapInstance().getNpc(233256); ovanka.getLifeStats().setCurrentHp(1304762); private void stage0() { ThreadPoolManager.getInstance().schedule(new Runnable() { @Override public void run() { float targetX = getOwner().getTarget().getPosition().getX(); float targetY = getOwner().getTarget().getPosition().getY(); float targetZ = getOwner().getTarget().getPosition().getZ(); int targetH = getOwner().getTarget().getPosition().getHeading(); spawn(233256, targetX, targetY, targetZ, (byte) targetH); } }, 12000); }