Como Adicionar Nex Para Seu Server De Runescape Privado

Olá Pessoal da Bomba Games, Esse guia serve para como adicionar nex para seu server de runescape privado como o titulo do falava, esse guia so funciona para servervidos com a versao 718/734+, antes que voce pergunte o codigo foi feito por min, se achar um diferente nao diga que esta errado pois cada Developer faz seus tipos de Codigos Diferentes

Bom Vamos Comecar. (Obs : Se achar dificil achar os lugares baixe o Eclipse, Para o Source nao para o Client.

Primeiro Abra Nex.java, e procure por :

CÓDIGO:
setNextForceTalk(new ForceTalk("NOW, THE POWER OF ZAROS!"));


Substitua isso Por :

CÓDIGO:
setNextAnimation(new Animation(17410));


Agora vá para NexCombat.java e tiro tudo oque esta lá e Ponha :

CÓDIGO:
package com.rs.game.npc.combat.impl;
 
import java.util.ArrayList;
import java.util.HashMap;
 
import com.rs.cache.loaders.NPCDefinitions;
import com.rs.game.Animation;
import com.rs.game.Entity;
import com.rs.game.ForceMovement;
import com.rs.game.ForceTalk;
import com.rs.game.Graphics;
import com.rs.game.Hit;
import com.rs.game.Hit.HitLook;
import com.rs.game.World;
import com.rs.game.WorldObject;
import com.rs.game.WorldTile;
import com.rs.game.npc.NPC;
import com.rs.game.npc.combat.CombatScript;
import com.rs.game.npc.combat.NPCCombatDefinitions;
import com.rs.game.npc.godwars.zaros.Nex;
import com.rs.game.player.Player;
import com.rs.game.player.cutscenes.NexCutScene;
import com.rs.game.tasks.WorldTask;
import com.rs.game.tasks.WorldTasksManager;
import com.rs.utils.Utils;
 
public class NexCombat extends CombatScript {
 
    @Override
    public Object[] getKeys() {
        return new Object[] {
            "Nex"
        };
    }
 
    public WorldTile[] NO_ESCAPE_TELEPORTS = {
        new WorldTile(2924, 5213, 0), // north
        new WorldTile(2934, 5202, 0), // east,
        new WorldTile(2924, 5192, 0), // south
        new WorldTile(2913, 5202, 0),
    }; // west
 
    @Override
    public int attack(final NPC npc, final Entity target) {
        final NPCCombatDefinitions defs = npc.getCombatDefinitions();
        final Nex nex = (Nex) npc;
        int size = npc.getSize();
        // attacks close only
        if (nex.isFollowTarget()) {
            int distanceX = target.getX() - npc.getX();
            int distanceY = target.getY() - npc.getY();
            if (distanceX > size || distanceX < -1 || distanceY > size || distanceY < -1) return 0;
            nex.setFollowTarget(Utils.getRandom(1) == 0);
            // first stage close attacks
            if (nex.getAttacksStage() == 0) {
                // virus 1/3 probability every 1min
                if (nex.getLastVirus() < Utils.currentTimeMillis() && Utils.getRandom(2) == 0) {
                    nex.setLastVirus(Utils.currentTimeMillis() + 60000);
                    npc.setNextForceTalk(new ForceTalk("Let the virus flow through you."));
                    nex.playSound(3296, 2);
                    npc.setNextAnimation(new Animation(17413));
                    nex.sendVirusAttack(new ArrayList < Entity > (),
                    npc.getPossibleTargets(), target);
                    return defs.getAttackDelay();
                }
            }
            // no escape, 1/10 probability doing it
            if (Utils.getRandom(nex.getStage() == 4 ? 5 : 10) == 0) {
                npc.setNextForceTalk(new ForceTalk("There is..."));
                nex.playSound(3294, 2);
                npc.setCantInteract(true);
                npc.getCombat().removeTarget();
                final int idx = Utils.random(NO_ESCAPE_TELEPORTS.length);
                final WorldTile dir = NO_ESCAPE_TELEPORTS[idx];
                final WorldTile center = new WorldTile(2924, 5202, 0);
                WorldTasksManager.schedule(new WorldTask() {
                    private int count;
 
                    @Override
                    public void run() {
                        if (count == 0) {
                            npc.setNextAnimation(new Animation(17411));
                            npc.setNextGraphics(new Graphics(1216));
                        } else if (count == 1) {
                            nex.setNextWorldTile(dir);
                            nex.setNextForceTalk(new ForceTalk("NO ESCAPE!"));
                            nex.playSound(3292, 2);
                            nex.setNextForceMovement(new ForceMovement(dir, 1,
                            center, 3, idx == 3 ? 1 : idx == 2 ? 0 : idx == 1 ? 3 : 2));
                            for (Entity entity: nex.calculatePossibleTargets(
                            center, dir, idx == 0 || idx == 2)) {
                                if (entity instanceof Player) {
                                    Player player = (Player) entity;
                                    player.getCutscenesManager().play(
                                    new NexCutScene(dir, idx));
                                    player.applyHit(new Hit(
                                    npc,
                                    Utils.getRandom(nex.getStage() == 4 ? 800 : 650),
                                    HitLook.REGULAR_DAMAGE));
                                    player.setNextAnimation(new Animation(17408));
                                    player.setNextForceMovement(new ForceMovement(
                                    player, 1, idx == 3 ? 3 : idx == 2 ? 2 : idx == 1 ? 1 : 0));
                                }
                            }
                        } else if (count == 3) {
                            nex.setNextWorldTile(center);
                        } else if (count == 4) {
                            nex.setTarget(target);
                            npc.setCantInteract(false);
                            stop();
                        }
                        count++;
                    }
                }, 0, 1);
                return defs.getAttackDelay();
            }
            // normal melee attack
            int damage = getRandomMaxHit(npc, defs.getMaxHit(),
            NPCCombatDefinitions.MELEE, target);
            delayHit(npc, 0, target, getMeleeHit(npc, damage));
            npc.setNextAnimation(new Animation(defs.getAttackEmote()));
            return defs.getAttackDelay();
            // far attacks
        } else {
            nex.setFollowTarget(Utils.getRandom(1) == 0);
            // drag a player to center
            if (Utils.getRandom(15) == 0) {
                int distance = 0;
                Entity settedTarget = null;
                for (Entity t: npc.getPossibleTargets()) {
                    if (t instanceof Player) {
                        int thisDistance = Utils.getDistance(t.getX(),
                        t.getY(), npc.getX(), npc.getY());
                        if (settedTarget == null || thisDistance > distance) {
                            distance = thisDistance;
                            settedTarget = t;
                        }
                    }
                }
                if (settedTarget != null && distance > 10) {
                    final Player player = (Player) settedTarget;
                    player.lock(3);
                    player.setNextAnimation(new Animation(17408));
                    player.setNextForceMovement(new ForceMovement(nex, 2, Utils.getMoveDirection(
                    npc.getCoordFaceX(player.getSize()) - player.getX(),
                    npc.getCoordFaceY(player.getSize()) - player.getY())));
                    npc.setNextAnimation(new Animation(17414));
                    npc.setTarget(player);
                    player.setNextAnimation(new Animation(17408));
                    WorldTasksManager.schedule(new WorldTask() {@Override
                        public void run() {
                            player.setNextWorldTile(nex);
                            player.getPackets()
                                .sendGameMessage("You've been injured and you can't use protective curses!");
                            player.setPrayerDelay(Utils.getRandom(20000) + 5); // random
                            // 20
                            // seconds
                            player.getPackets().sendGameMessage("You're stunned.");
                        }
                    });
                    return defs.getAttackDelay();
                }
            }
            // first stage close attacks
            if (nex.getAttacksStage() == 0) {
                npc.setNextAnimation(new Animation(17413));
                for (Entity t: npc.getPossibleTargets()) {
                    World.sendProjectile(npc, t, 471, 41, 16, 41, 35, 16, 0);
                    int damage = getRandomMaxHit(npc, defs.getMaxHit(),
                    NPCCombatDefinitions.MAGE, t);
                    delayHit(npc, 1, t, getMagicHit(npc, damage));
                    if (damage > 0 && Utils.getRandom(5) == 0) // 1/6
                    // probability
                    // poisoning
                    t.getPoison().makePoisoned(80);
                }
                return defs.getAttackDelay();
            } else if (nex.getAttacksStage() == 1) {
                if (!nex.isEmbracedShadow()) {
                    nex.setEmbracedShadow(true);
                    npc.setNextForceTalk(new ForceTalk("Embrace darkness!"));
                    nex.playSound(3322, 2);
                    npc.setNextAnimation(new Animation(17412));
                    npc.setNextGraphics(new Graphics(1217));
                    WorldTasksManager.schedule(new WorldTask() {@Override
                        public void run() {
                            if (nex.getAttacksStage() != 1 || nex.hasFinished()) {
                                for (Entity entity: nex.getPossibleTargets()) {
                                    if (entity instanceof Player) {
                                        Player player = (Player) entity;
                                        player.getPackets().sendGlobalConfig(
                                        1435, 255);
                                    }
                                }
                                stop();
                                return;
                            }
                            if (Utils.getRandom(2) == 0) {
                                for (Entity entity: nex.getPossibleTargets()) {
                                    if (entity instanceof Player) {
                                        Player player = (Player) entity;
                                        int distance = Utils.getDistance(
                                        player.getX(), player.getY(),
                                        npc.getX(), npc.getY());
                                        if (distance > 30) distance = 30;
                                        player.getPackets().sendGlobalConfig(
                                        1435, (distance * 255 / 30));
                                    }
                                }
                            }
                        }
                    }, 0, 0);
                    return defs.getAttackDelay();
                }
                if (!nex.isTrapsSettedUp() && Utils.getRandom(2) == 0) {
                    nex.setTrapsSettedUp(true);
                    npc.setNextForceTalk(new ForceTalk("Fear the Shadow!"));
                    nex.playSound(3314, 2);
                    npc.setNextAnimation(new Animation(17407));
                    npc.setNextGraphics(new Graphics(1215));
                    ArrayList < Entity > possibleTargets = nex.getPossibleTargets();
                    final HashMap < String, int[] > tiles = new HashMap < String, int[] > ();
                    for (Entity t: possibleTargets) {
                        String key = t.getX() + "_" + t.getY();
                        if (!tiles.containsKey(t.getX() + "_" + t.getY())) {
                            tiles.put(key, new int[] {
                                t.getX(), t.getY()
                            });
                            World.spawnTemporaryObject(new WorldObject(57261,
                            10, 0, t.getX(), t.getY(), 0), 2400);
                        }
                    }
                    WorldTasksManager.schedule(new WorldTask() {
                        private boolean firstCall;
 
                        @Override
                        public void run() {
                            if (!firstCall) {
                                ArrayList < Entity > possibleTargets = nex.getPossibleTargets();
                                for (int[] tile: tiles.values()) {
                                    World.sendGraphics(null, new Graphics(383),
                                    new WorldTile(tile[0], tile[1], 0));
                                    for (Entity t: possibleTargets)
                                    if (t.getX() == tile[0] && t.getY() == tile[1]) t.applyHit(new Hit(npc, Utils.getRandom(400) + 400,
                                    HitLook.REGULAR_DAMAGE));
                                }
                                firstCall = true;
                            } else {
                                nex.setTrapsSettedUp(false);
                                stop();
                            }
                        }
 
                    }, 3, 3);
                    return defs.getAttackDelay();
                }
                npc.setNextAnimation(new Animation(17413));
                for (final Entity t: npc.getPossibleTargets()) {
                    int distance = Utils.getDistance(t.getX(), t.getY(),
                    npc.getX(), npc.getY());
                    if (distance <= 10) {
                        int damage = 800 - (distance * 800 / 11);
                        World.sendProjectile(npc, t, 380, 41, 16, 41, 35, 16, 0);
                        delayHit(
                        npc,
                        1,
                        t,
                        getRangeHit(
                        npc,
                        getRandomMaxHit(npc, damage,
                        NPCCombatDefinitions.RANGE, t)));
                        WorldTasksManager.schedule(new WorldTask() {@Override
                            public void run() {
                                t.setNextGraphics(new Graphics(471));
                            }
                        }, 1);
                    }
                }
                return defs.getAttackDelay();
            } else if (nex.getAttacksStage() == 2) {
                if (Utils.getRandom(4) == 0 && target instanceof Player) {
                    npc.setNextForceTalk(new ForceTalk("I demand a blood sacrifice!"));
                    nex.playSound(3293, 2);
                    final Player player = (Player) target;
                    player.getAppearence().setGlowRed(true);
                    player.getPackets().sendGameMessage("Nex has marked you as a sacrifice, RUN!");
                    final int x = player.getX();
                    final int y = player.getY();
                    WorldTasksManager.schedule(new WorldTask() {@Override
                        public void run() {
                            player.getAppearence().setGlowRed(false);
                            if (x == player.getX() && y == player.getY()) {
                                player.getPackets()
                                    .sendGameMessage("You didn't make it far enough in time - Nex fires a punishing attack!");
                                npc.setNextAnimation(new Animation(17413));
                                for (final Entity t: npc.getPossibleTargets()) {
                                    World.sendProjectile(npc, t, 374, 41, 16,
                                    41, 35, 16, 0);
                                    final int damage = getRandomMaxHit(npc,
                                    290, NPCCombatDefinitions.MAGE, t);
                                    delayHit(npc, 1, t,
                                    getMagicHit(npc, damage));
                                    WorldTasksManager.schedule(new WorldTask() {@Override
                                        public void run() {
                                            t.setNextGraphics(new Graphics(376));
                                            nex.heal(damage / 4);
                                            if (t instanceof Player) {
                                                Player p = (Player) t;
                                                p.getPrayer()
                                                    .drainPrayerOnHalf();
                                            }
                                        }
                                    }, 1);
                                }
                            }
                        }
                    }, defs.getAttackDelay());
                    return defs.getAttackDelay() * 2;
                }
                if (nex.getLastSiphon() < Utils.currentTimeMillis() && npc.getHitpoints() <= 18000 && Utils.getRandom(2) == 0) {
                    nex.setLastSiphon(Utils.currentTimeMillis() + 30000);
                    nex.killBloodReavers();
                    npc.setNextForceTalk(new ForceTalk("A siphon will solve this!"));
                    nex.playSound(3317, 2);
                    npc.setNextAnimation(new Animation(17409));
                    npc.setNextGraphics(new Graphics(1201));
                    nex.setDoingSiphon(true);
                    int bloodReaverSize = NPCDefinitions.getNPCDefinitions(13458).size;
                    int respawnedBloodReaverCount = 0;
                    int maxMinions = Utils.getRandom(3);
                    if (maxMinions != 0) {
                        int[][] dirs = Utils.getCoordOffsetsNear(bloodReaverSize);
                        for (int dir = 0; dir < dirs[0].length; dir++) {
                            final WorldTile tile = new WorldTile(new WorldTile(
                            target.getX() + dirs[0][dir], target.getY() + dirs[1][dir], target.getPlane()));
                            if (World.canMoveNPC(tile.getPlane(), tile.getX(),
                            tile.getY(), bloodReaverSize)) { // if found
                                // done
                                nex.getBloodReavers()[respawnedBloodReaverCount++] = new NPC(
                                13458, tile, - 1, true, true);
                                if (respawnedBloodReaverCount == maxMinions) break;
                            }
                        }
                    }
                    WorldTasksManager.schedule(new WorldTask() {@Override
                        public void run() {
                            nex.setDoingSiphon(false);
                        }
                    }, 8);
                    return defs.getAttackDelay();
                }
                npc.setNextAnimation(new Animation(17414));
                World.sendProjectile(npc, target, 374, 41, 16, 41, 35, 16, 0);
                delayHit(
                npc,
                1,
                target,
                getMagicHit(
                npc,
                getRandomMaxHit(npc, defs.getMaxHit(),
                NPCCombatDefinitions.MAGE, target)));
                return defs.getAttackDelay();
            } else if (nex.getAttacksStage() == 3) {
                npc.setNextAnimation(new Animation(17414));
                for (final Entity t: npc.getPossibleTargets()) {
                    World.sendProjectile(npc, t, 362, 41, 16, 41, 35, 16, 0);
                    int damage = getRandomMaxHit(npc, defs.getMaxHit(),
                    NPCCombatDefinitions.MAGE, t);
                    delayHit(npc, 1, t, getMagicHit(npc, damage));
                    if (damage > 0 && Utils.getRandom(5) == 0) { // 1/6
                        // probability
                        // freezing
                        WorldTasksManager.schedule(new WorldTask() {@Override
                            public void run() {
                                t.addFreezeDelay(18000);
                                t.setNextGraphics(new Graphics(369));
                            }
                        }, 2);
 
                    }
                }
                return defs.getAttackDelay();
            } else if (nex.getAttacksStage() == 4) {
                npc.setNextAnimation(new Animation(17413));
                for (Entity t: npc.getPossibleTargets()) {
                    World.sendProjectile(npc, t, 471, 41, 16, 41, 35, 16, 0);
                    int damage = getRandomMaxHit(npc, defs.getMaxHit(),
                    NPCCombatDefinitions.MAGE, t);
                    delayHit(npc, 1, t, getMagicHit(npc, damage));
                }
                return defs.getAttackDelay();
            }
        }
        return defs.getAttackDelay();
    }
}


Agora va Para ZarosGodwars e substitua tudo por :

CÓDIGO:
package com.rs.game.minigames;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.TimeUnit;
 
import com.rs.cores.CoresManager;
import com.rs.game.Animation;
import com.rs.game.Entity;
import com.rs.game.ForceTalk;
import com.rs.game.Graphics;
import com.rs.game.World;
import com.rs.game.WorldTile;
import com.rs.game.npc.godwars.zaros.Nex;
import com.rs.game.npc.godwars.zaros.NexMinion;
import com.rs.game.player.Player;
import com.rs.game.tasks.WorldTask;
import com.rs.game.tasks.WorldTasksManager;
import com.rs.utils.Utils;
 
public final class ZarosGodwars {
 
    private static final List < Player > playersOn = Collections.synchronizedList(new ArrayList < Player > ());
    // private static final Object LOCK = new Object();
 
    public static Nex nex;
    public static NexMinion fumus;
    public static NexMinion umbra;
    public static NexMinion cruor;
    public static NexMinion glacies;
 
    public static int getPlayersCount() {
        return playersOn.size();
    }
 
    public static void breakFumusBarrier() {
        // synchronized(LOCK) {
        if (fumus == null) return;
        fumus.breakBarrier();
        // }
    }
 
    public static void breakUmbraBarrier() {
        // synchronized(LOCK) {
        if (umbra == null) return;
        umbra.breakBarrier();
        // }
    }
 
    public static void breakCruorBarrier() {
        // synchronized(LOCK) {
        if (cruor == null) return;
        cruor.breakBarrier();
        // }
    }
 
    public static void breakGlaciesBarrier() {
        // synchronized(LOCK) {
        if (glacies == null) return;
        glacies.breakBarrier();
        // }
    }
 
    public static void addPlayer(Player player) {
        // synchronized(LOCK) {
        if (playersOn.contains(player)) {
            // System.out.println("ERROR DOUBLE ENTRY!");
            return;
        }
        playersOn.add(player);
        startWar();
        // }
    }
 
    public static void removePlayer(Player player) {
        // synchronized(LOCK) {
        playersOn.remove(player);
        cancelWar();
        // }
    }
 
    public static void deleteNPCS() {
        if (nex != null) {
            nex.killBloodReavers();
            nex.finish();
            nex = null;
        }
        if (fumus != null) {
            fumus.finish();
            fumus = null;
        }
        if (umbra != null) {
            umbra.finish();
            umbra = null;
        }
        if (cruor != null) {
            cruor.finish();
            cruor = null;
        }
        if (glacies != null) {
            glacies.finish();
            glacies = null;
        }
    }
 
    private static void cancelWar() {
        if (getPlayersCount() == 0) deleteNPCS();
    }
 
    public static ArrayList < Entity > getPossibleTargets() {
        // synchronized(LOCK) {
        ArrayList < Entity > possibleTarget = new ArrayList < Entity > (
        playersOn.size());
        for (Player player: playersOn) {
            if (player == null || player.isDead() || player.hasFinished() || !player.isRunning()) continue;
            possibleTarget.add(player);
            /*
            * if (player.getFamiliar() != null &&
            * player.getFamiliar().isAgressive())
            * possibleTarget.add(player.getFamiliar());
            */
        }
        return possibleTarget;
        // }
    }
 
    public static void moveNextStage() {
        // synchronized(LOCK) {
        if (nex == null) return;
        nex.moveNextStage();
        // }
    }
 
    public static void endWar() {
        // synchronized(LOCK) {
        deleteNPCS();
        CoresManager.slowExecutor.schedule(new Runnable() {
 
            @Override
            public void run() {
                startWar();
            }
 
        }, 1, TimeUnit.MINUTES);
        // }
    }
 
    private static void startWar() {
        if (getPlayersCount() >= 1) {
            if (nex == null) {
                World.spawnNPC(13447, new WorldTile(2924, 5202, 0), - 1, true,
                true);
                WorldTasksManager.schedule(new WorldTask() {
                    private int count = 0;
 
                    @Override
                    public void run() {
                        // synchronized(LOCK) {
                        if (nex == null) {
                            stop();
                            return;
                        }
                        if (count == 1) {
                            nex.setNextForceTalk(new ForceTalk("AT LAST!"));
                            nex.setNextAnimation(new Animation(17412));
                            nex.setNextGraphics(new Graphics(1217));
                            nex.playSound(3295, 2);
                        } else if (count == 3) {
                            World.spawnNPC(13451, new WorldTile(2913, 5215, 0), - 1, true, true);
                            fumus.setDirection(Utils.getFaceDirection(1, - 1));
                            nex.setNextFaceWorldTile(new WorldTile(fumus.getCoordFaceX(fumus.getSize()), fumus.getCoordFaceY(fumus.getSize()), 0));
                            nex.setNextForceTalk(new ForceTalk("Fumus!"));
                            nex.setNextAnimation(new Animation(17413));
                            World.sendProjectile(fumus, nex, 2244, 18, 18, 60,
                            30, 0, 0);
                            nex.playSound(3325, 2);
                        } else if (count == 5) {
                            World.spawnNPC(13452, new WorldTile(2937, 5215, 0), - 1, true, true);
                            umbra.setDirection(Utils.getFaceDirection(-1, - 1));
                            nex.setNextFaceWorldTile(new WorldTile(umbra.getCoordFaceX(umbra.getSize()), umbra.getCoordFaceY(umbra.getSize()), 0));
                            nex.setNextForceTalk(new ForceTalk("Umbra!"));
                            nex.setNextAnimation(new Animation(17413));
                            World.sendProjectile(umbra, nex, 2244, 18, 18, 60,
                            30, 0, 0);
                            nex.playSound(3313, 2);
                        } else if (count == 7) {
                            World.spawnNPC(13453, new WorldTile(2937, 5191, 0), - 1, true, true);
                            cruor.setDirection(Utils.getFaceDirection(-1, 1));
                            nex.setNextFaceWorldTile(new WorldTile(cruor.getCoordFaceX(cruor.getSize()), cruor.getCoordFaceY(cruor.getSize()), 0));
                            nex.setNextForceTalk(new ForceTalk("Cruor!"));
                            nex.setNextAnimation(new Animation(17413));
                            World.sendProjectile(cruor, nex, 2244, 18, 18, 60,
                            30, 0, 0);
                            nex.playSound(3299, 2);
                        } else if (count == 9) {
                            World.spawnNPC(13454, new WorldTile(2913, 5191, 0), - 1, true, true);
                            glacies.setNextFaceWorldTile(new WorldTile(glacies.getCoordFaceX(glacies.getSize()), glacies.getCoordFaceY(glacies.getSize()), 0));
                            glacies.setDirection(Utils.getFaceDirection(1, 1));
                            nex.setNextFaceWorldTile(new WorldTile(glacies.getCoordFaceX(glacies.getSize()), glacies.getCoordFaceY(glacies.getSize()), 0));
                            nex.setNextForceTalk(new ForceTalk("Glacies!"));
                            nex.setNextAnimation(new Animation(17413));
                            World.sendProjectile(glacies, nex, 2244, 18, 18,
                            60, 30, 0, 0);
                            nex.playSound(3304, 2);
                        } else if (count == 11) {
                            nex.setNextForceTalk(new ForceTalk("Fill my soul with smoke!"));
                            World.sendProjectile(fumus, nex, 2244, 18, 18, 60,
                            30, 0, 0);
 
                            nex.playSound(3310, 2);
                        } else if (count == 13) {
                            nex.setCantInteract(false);
                            stop();
                            return;
                        }
                        count++;
                    }
                    // }
                }, 0, 1);
            }
        }
    }
 
    private ZarosGodwars() {
 
    }
}


Estamos Quase Lá!, Va para NPCCombat.java e procure por :

CÓDIGO:
tile.getY() - npc.getY())));


Abaixo Disso ponha :

CÓDIGO:
npc.setNextAnimation(new Animation(17408));


Caso Nao tenho os Anim do Nex, Geralmente tera mas caso nao tenha va para unpackedCombatDefinitionsList.txt e ponha isso :

CÓDIGO:
//Nex - 1001
 13447 - 30000 17407 17406 17415 5 3 150 369 SPECIAL -1 -1 AGRESSIVE
//Nex - 1001
 13448 - 30000 17407 17406 17415 5 3 150 369 SPECIAL -1 -1 AGRESSIVE
//Nex - 1001
 13449 - 30000 17407 17406 17415 5 3 150 369 SPECIAL -1 -1 AGRESSIVE
//Nex -1001
 13450 - 30000 17407 17406 17415 5 3 150 369 SPECIAL -1 -1 AGRESSIVE


Delete o combate packed definitions nao o unpacked e clique para run seu server e o packed voltara com o Nex e seus anims

Antes que postem algo, nao fiz esse code hoje, nao e copia de ninguem e meu pois ja tive meu private server, e futuramente estarei postando mas coisas de Servervido Privado de runescape, estava acabando a roleta maluca mas estou com um bug na interface.

Bom E isso Ai, Valeu Pessoal.

20 de dez. de 2012

Como Adicionar Nex Para Seu Server De Runescape Privado


Olá Pessoal da Bomba Games, Esse guia serve para como adicionar nex para seu server de runescape privado como o titulo do falava, esse guia so funciona para servervidos com a versao 718/734+, antes que voce pergunte o codigo foi feito por min, se achar um diferente nao diga que esta errado pois cada Developer faz seus tipos de Codigos Diferentes

Bom Vamos Comecar. (Obs : Se achar dificil achar os lugares baixe o Eclipse, Para o Source nao para o Client.

Primeiro Abra Nex.java, e procure por :

CÓDIGO:
setNextForceTalk(new ForceTalk("NOW, THE POWER OF ZAROS!"));


Substitua isso Por :

CÓDIGO:
setNextAnimation(new Animation(17410));


Agora vá para NexCombat.java e tiro tudo oque esta lá e Ponha :

CÓDIGO:
package com.rs.game.npc.combat.impl;
 
import java.util.ArrayList;
import java.util.HashMap;
 
import com.rs.cache.loaders.NPCDefinitions;
import com.rs.game.Animation;
import com.rs.game.Entity;
import com.rs.game.ForceMovement;
import com.rs.game.ForceTalk;
import com.rs.game.Graphics;
import com.rs.game.Hit;
import com.rs.game.Hit.HitLook;
import com.rs.game.World;
import com.rs.game.WorldObject;
import com.rs.game.WorldTile;
import com.rs.game.npc.NPC;
import com.rs.game.npc.combat.CombatScript;
import com.rs.game.npc.combat.NPCCombatDefinitions;
import com.rs.game.npc.godwars.zaros.Nex;
import com.rs.game.player.Player;
import com.rs.game.player.cutscenes.NexCutScene;
import com.rs.game.tasks.WorldTask;
import com.rs.game.tasks.WorldTasksManager;
import com.rs.utils.Utils;
 
public class NexCombat extends CombatScript {
 
    @Override
    public Object[] getKeys() {
        return new Object[] {
            "Nex"
        };
    }
 
    public WorldTile[] NO_ESCAPE_TELEPORTS = {
        new WorldTile(2924, 5213, 0), // north
        new WorldTile(2934, 5202, 0), // east,
        new WorldTile(2924, 5192, 0), // south
        new WorldTile(2913, 5202, 0),
    }; // west
 
    @Override
    public int attack(final NPC npc, final Entity target) {
        final NPCCombatDefinitions defs = npc.getCombatDefinitions();
        final Nex nex = (Nex) npc;
        int size = npc.getSize();
        // attacks close only
        if (nex.isFollowTarget()) {
            int distanceX = target.getX() - npc.getX();
            int distanceY = target.getY() - npc.getY();
            if (distanceX > size || distanceX < -1 || distanceY > size || distanceY < -1) return 0;
            nex.setFollowTarget(Utils.getRandom(1) == 0);
            // first stage close attacks
            if (nex.getAttacksStage() == 0) {
                // virus 1/3 probability every 1min
                if (nex.getLastVirus() < Utils.currentTimeMillis() && Utils.getRandom(2) == 0) {
                    nex.setLastVirus(Utils.currentTimeMillis() + 60000);
                    npc.setNextForceTalk(new ForceTalk("Let the virus flow through you."));
                    nex.playSound(3296, 2);
                    npc.setNextAnimation(new Animation(17413));
                    nex.sendVirusAttack(new ArrayList < Entity > (),
                    npc.getPossibleTargets(), target);
                    return defs.getAttackDelay();
                }
            }
            // no escape, 1/10 probability doing it
            if (Utils.getRandom(nex.getStage() == 4 ? 5 : 10) == 0) {
                npc.setNextForceTalk(new ForceTalk("There is..."));
                nex.playSound(3294, 2);
                npc.setCantInteract(true);
                npc.getCombat().removeTarget();
                final int idx = Utils.random(NO_ESCAPE_TELEPORTS.length);
                final WorldTile dir = NO_ESCAPE_TELEPORTS[idx];
                final WorldTile center = new WorldTile(2924, 5202, 0);
                WorldTasksManager.schedule(new WorldTask() {
                    private int count;
 
                    @Override
                    public void run() {
                        if (count == 0) {
                            npc.setNextAnimation(new Animation(17411));
                            npc.setNextGraphics(new Graphics(1216));
                        } else if (count == 1) {
                            nex.setNextWorldTile(dir);
                            nex.setNextForceTalk(new ForceTalk("NO ESCAPE!"));
                            nex.playSound(3292, 2);
                            nex.setNextForceMovement(new ForceMovement(dir, 1,
                            center, 3, idx == 3 ? 1 : idx == 2 ? 0 : idx == 1 ? 3 : 2));
                            for (Entity entity: nex.calculatePossibleTargets(
                            center, dir, idx == 0 || idx == 2)) {
                                if (entity instanceof Player) {
                                    Player player = (Player) entity;
                                    player.getCutscenesManager().play(
                                    new NexCutScene(dir, idx));
                                    player.applyHit(new Hit(
                                    npc,
                                    Utils.getRandom(nex.getStage() == 4 ? 800 : 650),
                                    HitLook.REGULAR_DAMAGE));
                                    player.setNextAnimation(new Animation(17408));
                                    player.setNextForceMovement(new ForceMovement(
                                    player, 1, idx == 3 ? 3 : idx == 2 ? 2 : idx == 1 ? 1 : 0));
                                }
                            }
                        } else if (count == 3) {
                            nex.setNextWorldTile(center);
                        } else if (count == 4) {
                            nex.setTarget(target);
                            npc.setCantInteract(false);
                            stop();
                        }
                        count++;
                    }
                }, 0, 1);
                return defs.getAttackDelay();
            }
            // normal melee attack
            int damage = getRandomMaxHit(npc, defs.getMaxHit(),
            NPCCombatDefinitions.MELEE, target);
            delayHit(npc, 0, target, getMeleeHit(npc, damage));
            npc.setNextAnimation(new Animation(defs.getAttackEmote()));
            return defs.getAttackDelay();
            // far attacks
        } else {
            nex.setFollowTarget(Utils.getRandom(1) == 0);
            // drag a player to center
            if (Utils.getRandom(15) == 0) {
                int distance = 0;
                Entity settedTarget = null;
                for (Entity t: npc.getPossibleTargets()) {
                    if (t instanceof Player) {
                        int thisDistance = Utils.getDistance(t.getX(),
                        t.getY(), npc.getX(), npc.getY());
                        if (settedTarget == null || thisDistance > distance) {
                            distance = thisDistance;
                            settedTarget = t;
                        }
                    }
                }
                if (settedTarget != null && distance > 10) {
                    final Player player = (Player) settedTarget;
                    player.lock(3);
                    player.setNextAnimation(new Animation(17408));
                    player.setNextForceMovement(new ForceMovement(nex, 2, Utils.getMoveDirection(
                    npc.getCoordFaceX(player.getSize()) - player.getX(),
                    npc.getCoordFaceY(player.getSize()) - player.getY())));
                    npc.setNextAnimation(new Animation(17414));
                    npc.setTarget(player);
                    player.setNextAnimation(new Animation(17408));
                    WorldTasksManager.schedule(new WorldTask() {@Override
                        public void run() {
                            player.setNextWorldTile(nex);
                            player.getPackets()
                                .sendGameMessage("You've been injured and you can't use protective curses!");
                            player.setPrayerDelay(Utils.getRandom(20000) + 5); // random
                            // 20
                            // seconds
                            player.getPackets().sendGameMessage("You're stunned.");
                        }
                    });
                    return defs.getAttackDelay();
                }
            }
            // first stage close attacks
            if (nex.getAttacksStage() == 0) {
                npc.setNextAnimation(new Animation(17413));
                for (Entity t: npc.getPossibleTargets()) {
                    World.sendProjectile(npc, t, 471, 41, 16, 41, 35, 16, 0);
                    int damage = getRandomMaxHit(npc, defs.getMaxHit(),
                    NPCCombatDefinitions.MAGE, t);
                    delayHit(npc, 1, t, getMagicHit(npc, damage));
                    if (damage > 0 && Utils.getRandom(5) == 0) // 1/6
                    // probability
                    // poisoning
                    t.getPoison().makePoisoned(80);
                }
                return defs.getAttackDelay();
            } else if (nex.getAttacksStage() == 1) {
                if (!nex.isEmbracedShadow()) {
                    nex.setEmbracedShadow(true);
                    npc.setNextForceTalk(new ForceTalk("Embrace darkness!"));
                    nex.playSound(3322, 2);
                    npc.setNextAnimation(new Animation(17412));
                    npc.setNextGraphics(new Graphics(1217));
                    WorldTasksManager.schedule(new WorldTask() {@Override
                        public void run() {
                            if (nex.getAttacksStage() != 1 || nex.hasFinished()) {
                                for (Entity entity: nex.getPossibleTargets()) {
                                    if (entity instanceof Player) {
                                        Player player = (Player) entity;
                                        player.getPackets().sendGlobalConfig(
                                        1435, 255);
                                    }
                                }
                                stop();
                                return;
                            }
                            if (Utils.getRandom(2) == 0) {
                                for (Entity entity: nex.getPossibleTargets()) {
                                    if (entity instanceof Player) {
                                        Player player = (Player) entity;
                                        int distance = Utils.getDistance(
                                        player.getX(), player.getY(),
                                        npc.getX(), npc.getY());
                                        if (distance > 30) distance = 30;
                                        player.getPackets().sendGlobalConfig(
                                        1435, (distance * 255 / 30));
                                    }
                                }
                            }
                        }
                    }, 0, 0);
                    return defs.getAttackDelay();
                }
                if (!nex.isTrapsSettedUp() && Utils.getRandom(2) == 0) {
                    nex.setTrapsSettedUp(true);
                    npc.setNextForceTalk(new ForceTalk("Fear the Shadow!"));
                    nex.playSound(3314, 2);
                    npc.setNextAnimation(new Animation(17407));
                    npc.setNextGraphics(new Graphics(1215));
                    ArrayList < Entity > possibleTargets = nex.getPossibleTargets();
                    final HashMap < String, int[] > tiles = new HashMap < String, int[] > ();
                    for (Entity t: possibleTargets) {
                        String key = t.getX() + "_" + t.getY();
                        if (!tiles.containsKey(t.getX() + "_" + t.getY())) {
                            tiles.put(key, new int[] {
                                t.getX(), t.getY()
                            });
                            World.spawnTemporaryObject(new WorldObject(57261,
                            10, 0, t.getX(), t.getY(), 0), 2400);
                        }
                    }
                    WorldTasksManager.schedule(new WorldTask() {
                        private boolean firstCall;
 
                        @Override
                        public void run() {
                            if (!firstCall) {
                                ArrayList < Entity > possibleTargets = nex.getPossibleTargets();
                                for (int[] tile: tiles.values()) {
                                    World.sendGraphics(null, new Graphics(383),
                                    new WorldTile(tile[0], tile[1], 0));
                                    for (Entity t: possibleTargets)
                                    if (t.getX() == tile[0] && t.getY() == tile[1]) t.applyHit(new Hit(npc, Utils.getRandom(400) + 400,
                                    HitLook.REGULAR_DAMAGE));
                                }
                                firstCall = true;
                            } else {
                                nex.setTrapsSettedUp(false);
                                stop();
                            }
                        }
 
                    }, 3, 3);
                    return defs.getAttackDelay();
                }
                npc.setNextAnimation(new Animation(17413));
                for (final Entity t: npc.getPossibleTargets()) {
                    int distance = Utils.getDistance(t.getX(), t.getY(),
                    npc.getX(), npc.getY());
                    if (distance <= 10) {
                        int damage = 800 - (distance * 800 / 11);
                        World.sendProjectile(npc, t, 380, 41, 16, 41, 35, 16, 0);
                        delayHit(
                        npc,
                        1,
                        t,
                        getRangeHit(
                        npc,
                        getRandomMaxHit(npc, damage,
                        NPCCombatDefinitions.RANGE, t)));
                        WorldTasksManager.schedule(new WorldTask() {@Override
                            public void run() {
                                t.setNextGraphics(new Graphics(471));
                            }
                        }, 1);
                    }
                }
                return defs.getAttackDelay();
            } else if (nex.getAttacksStage() == 2) {
                if (Utils.getRandom(4) == 0 && target instanceof Player) {
                    npc.setNextForceTalk(new ForceTalk("I demand a blood sacrifice!"));
                    nex.playSound(3293, 2);
                    final Player player = (Player) target;
                    player.getAppearence().setGlowRed(true);
                    player.getPackets().sendGameMessage("Nex has marked you as a sacrifice, RUN!");
                    final int x = player.getX();
                    final int y = player.getY();
                    WorldTasksManager.schedule(new WorldTask() {@Override
                        public void run() {
                            player.getAppearence().setGlowRed(false);
                            if (x == player.getX() && y == player.getY()) {
                                player.getPackets()
                                    .sendGameMessage("You didn't make it far enough in time - Nex fires a punishing attack!");
                                npc.setNextAnimation(new Animation(17413));
                                for (final Entity t: npc.getPossibleTargets()) {
                                    World.sendProjectile(npc, t, 374, 41, 16,
                                    41, 35, 16, 0);
                                    final int damage = getRandomMaxHit(npc,
                                    290, NPCCombatDefinitions.MAGE, t);
                                    delayHit(npc, 1, t,
                                    getMagicHit(npc, damage));
                                    WorldTasksManager.schedule(new WorldTask() {@Override
                                        public void run() {
                                            t.setNextGraphics(new Graphics(376));
                                            nex.heal(damage / 4);
                                            if (t instanceof Player) {
                                                Player p = (Player) t;
                                                p.getPrayer()
                                                    .drainPrayerOnHalf();
                                            }
                                        }
                                    }, 1);
                                }
                            }
                        }
                    }, defs.getAttackDelay());
                    return defs.getAttackDelay() * 2;
                }
                if (nex.getLastSiphon() < Utils.currentTimeMillis() && npc.getHitpoints() <= 18000 && Utils.getRandom(2) == 0) {
                    nex.setLastSiphon(Utils.currentTimeMillis() + 30000);
                    nex.killBloodReavers();
                    npc.setNextForceTalk(new ForceTalk("A siphon will solve this!"));
                    nex.playSound(3317, 2);
                    npc.setNextAnimation(new Animation(17409));
                    npc.setNextGraphics(new Graphics(1201));
                    nex.setDoingSiphon(true);
                    int bloodReaverSize = NPCDefinitions.getNPCDefinitions(13458).size;
                    int respawnedBloodReaverCount = 0;
                    int maxMinions = Utils.getRandom(3);
                    if (maxMinions != 0) {
                        int[][] dirs = Utils.getCoordOffsetsNear(bloodReaverSize);
                        for (int dir = 0; dir < dirs[0].length; dir++) {
                            final WorldTile tile = new WorldTile(new WorldTile(
                            target.getX() + dirs[0][dir], target.getY() + dirs[1][dir], target.getPlane()));
                            if (World.canMoveNPC(tile.getPlane(), tile.getX(),
                            tile.getY(), bloodReaverSize)) { // if found
                                // done
                                nex.getBloodReavers()[respawnedBloodReaverCount++] = new NPC(
                                13458, tile, - 1, true, true);
                                if (respawnedBloodReaverCount == maxMinions) break;
                            }
                        }
                    }
                    WorldTasksManager.schedule(new WorldTask() {@Override
                        public void run() {
                            nex.setDoingSiphon(false);
                        }
                    }, 8);
                    return defs.getAttackDelay();
                }
                npc.setNextAnimation(new Animation(17414));
                World.sendProjectile(npc, target, 374, 41, 16, 41, 35, 16, 0);
                delayHit(
                npc,
                1,
                target,
                getMagicHit(
                npc,
                getRandomMaxHit(npc, defs.getMaxHit(),
                NPCCombatDefinitions.MAGE, target)));
                return defs.getAttackDelay();
            } else if (nex.getAttacksStage() == 3) {
                npc.setNextAnimation(new Animation(17414));
                for (final Entity t: npc.getPossibleTargets()) {
                    World.sendProjectile(npc, t, 362, 41, 16, 41, 35, 16, 0);
                    int damage = getRandomMaxHit(npc, defs.getMaxHit(),
                    NPCCombatDefinitions.MAGE, t);
                    delayHit(npc, 1, t, getMagicHit(npc, damage));
                    if (damage > 0 && Utils.getRandom(5) == 0) { // 1/6
                        // probability
                        // freezing
                        WorldTasksManager.schedule(new WorldTask() {@Override
                            public void run() {
                                t.addFreezeDelay(18000);
                                t.setNextGraphics(new Graphics(369));
                            }
                        }, 2);
 
                    }
                }
                return defs.getAttackDelay();
            } else if (nex.getAttacksStage() == 4) {
                npc.setNextAnimation(new Animation(17413));
                for (Entity t: npc.getPossibleTargets()) {
                    World.sendProjectile(npc, t, 471, 41, 16, 41, 35, 16, 0);
                    int damage = getRandomMaxHit(npc, defs.getMaxHit(),
                    NPCCombatDefinitions.MAGE, t);
                    delayHit(npc, 1, t, getMagicHit(npc, damage));
                }
                return defs.getAttackDelay();
            }
        }
        return defs.getAttackDelay();
    }
}


Agora va Para ZarosGodwars e substitua tudo por :

CÓDIGO:
package com.rs.game.minigames;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.TimeUnit;
 
import com.rs.cores.CoresManager;
import com.rs.game.Animation;
import com.rs.game.Entity;
import com.rs.game.ForceTalk;
import com.rs.game.Graphics;
import com.rs.game.World;
import com.rs.game.WorldTile;
import com.rs.game.npc.godwars.zaros.Nex;
import com.rs.game.npc.godwars.zaros.NexMinion;
import com.rs.game.player.Player;
import com.rs.game.tasks.WorldTask;
import com.rs.game.tasks.WorldTasksManager;
import com.rs.utils.Utils;
 
public final class ZarosGodwars {
 
    private static final List < Player > playersOn = Collections.synchronizedList(new ArrayList < Player > ());
    // private static final Object LOCK = new Object();
 
    public static Nex nex;
    public static NexMinion fumus;
    public static NexMinion umbra;
    public static NexMinion cruor;
    public static NexMinion glacies;
 
    public static int getPlayersCount() {
        return playersOn.size();
    }
 
    public static void breakFumusBarrier() {
        // synchronized(LOCK) {
        if (fumus == null) return;
        fumus.breakBarrier();
        // }
    }
 
    public static void breakUmbraBarrier() {
        // synchronized(LOCK) {
        if (umbra == null) return;
        umbra.breakBarrier();
        // }
    }
 
    public static void breakCruorBarrier() {
        // synchronized(LOCK) {
        if (cruor == null) return;
        cruor.breakBarrier();
        // }
    }
 
    public static void breakGlaciesBarrier() {
        // synchronized(LOCK) {
        if (glacies == null) return;
        glacies.breakBarrier();
        // }
    }
 
    public static void addPlayer(Player player) {
        // synchronized(LOCK) {
        if (playersOn.contains(player)) {
            // System.out.println("ERROR DOUBLE ENTRY!");
            return;
        }
        playersOn.add(player);
        startWar();
        // }
    }
 
    public static void removePlayer(Player player) {
        // synchronized(LOCK) {
        playersOn.remove(player);
        cancelWar();
        // }
    }
 
    public static void deleteNPCS() {
        if (nex != null) {
            nex.killBloodReavers();
            nex.finish();
            nex = null;
        }
        if (fumus != null) {
            fumus.finish();
            fumus = null;
        }
        if (umbra != null) {
            umbra.finish();
            umbra = null;
        }
        if (cruor != null) {
            cruor.finish();
            cruor = null;
        }
        if (glacies != null) {
            glacies.finish();
            glacies = null;
        }
    }
 
    private static void cancelWar() {
        if (getPlayersCount() == 0) deleteNPCS();
    }
 
    public static ArrayList < Entity > getPossibleTargets() {
        // synchronized(LOCK) {
        ArrayList < Entity > possibleTarget = new ArrayList < Entity > (
        playersOn.size());
        for (Player player: playersOn) {
            if (player == null || player.isDead() || player.hasFinished() || !player.isRunning()) continue;
            possibleTarget.add(player);
            /*
            * if (player.getFamiliar() != null &&
            * player.getFamiliar().isAgressive())
            * possibleTarget.add(player.getFamiliar());
            */
        }
        return possibleTarget;
        // }
    }
 
    public static void moveNextStage() {
        // synchronized(LOCK) {
        if (nex == null) return;
        nex.moveNextStage();
        // }
    }
 
    public static void endWar() {
        // synchronized(LOCK) {
        deleteNPCS();
        CoresManager.slowExecutor.schedule(new Runnable() {
 
            @Override
            public void run() {
                startWar();
            }
 
        }, 1, TimeUnit.MINUTES);
        // }
    }
 
    private static void startWar() {
        if (getPlayersCount() >= 1) {
            if (nex == null) {
                World.spawnNPC(13447, new WorldTile(2924, 5202, 0), - 1, true,
                true);
                WorldTasksManager.schedule(new WorldTask() {
                    private int count = 0;
 
                    @Override
                    public void run() {
                        // synchronized(LOCK) {
                        if (nex == null) {
                            stop();
                            return;
                        }
                        if (count == 1) {
                            nex.setNextForceTalk(new ForceTalk("AT LAST!"));
                            nex.setNextAnimation(new Animation(17412));
                            nex.setNextGraphics(new Graphics(1217));
                            nex.playSound(3295, 2);
                        } else if (count == 3) {
                            World.spawnNPC(13451, new WorldTile(2913, 5215, 0), - 1, true, true);
                            fumus.setDirection(Utils.getFaceDirection(1, - 1));
                            nex.setNextFaceWorldTile(new WorldTile(fumus.getCoordFaceX(fumus.getSize()), fumus.getCoordFaceY(fumus.getSize()), 0));
                            nex.setNextForceTalk(new ForceTalk("Fumus!"));
                            nex.setNextAnimation(new Animation(17413));
                            World.sendProjectile(fumus, nex, 2244, 18, 18, 60,
                            30, 0, 0);
                            nex.playSound(3325, 2);
                        } else if (count == 5) {
                            World.spawnNPC(13452, new WorldTile(2937, 5215, 0), - 1, true, true);
                            umbra.setDirection(Utils.getFaceDirection(-1, - 1));
                            nex.setNextFaceWorldTile(new WorldTile(umbra.getCoordFaceX(umbra.getSize()), umbra.getCoordFaceY(umbra.getSize()), 0));
                            nex.setNextForceTalk(new ForceTalk("Umbra!"));
                            nex.setNextAnimation(new Animation(17413));
                            World.sendProjectile(umbra, nex, 2244, 18, 18, 60,
                            30, 0, 0);
                            nex.playSound(3313, 2);
                        } else if (count == 7) {
                            World.spawnNPC(13453, new WorldTile(2937, 5191, 0), - 1, true, true);
                            cruor.setDirection(Utils.getFaceDirection(-1, 1));
                            nex.setNextFaceWorldTile(new WorldTile(cruor.getCoordFaceX(cruor.getSize()), cruor.getCoordFaceY(cruor.getSize()), 0));
                            nex.setNextForceTalk(new ForceTalk("Cruor!"));
                            nex.setNextAnimation(new Animation(17413));
                            World.sendProjectile(cruor, nex, 2244, 18, 18, 60,
                            30, 0, 0);
                            nex.playSound(3299, 2);
                        } else if (count == 9) {
                            World.spawnNPC(13454, new WorldTile(2913, 5191, 0), - 1, true, true);
                            glacies.setNextFaceWorldTile(new WorldTile(glacies.getCoordFaceX(glacies.getSize()), glacies.getCoordFaceY(glacies.getSize()), 0));
                            glacies.setDirection(Utils.getFaceDirection(1, 1));
                            nex.setNextFaceWorldTile(new WorldTile(glacies.getCoordFaceX(glacies.getSize()), glacies.getCoordFaceY(glacies.getSize()), 0));
                            nex.setNextForceTalk(new ForceTalk("Glacies!"));
                            nex.setNextAnimation(new Animation(17413));
                            World.sendProjectile(glacies, nex, 2244, 18, 18,
                            60, 30, 0, 0);
                            nex.playSound(3304, 2);
                        } else if (count == 11) {
                            nex.setNextForceTalk(new ForceTalk("Fill my soul with smoke!"));
                            World.sendProjectile(fumus, nex, 2244, 18, 18, 60,
                            30, 0, 0);
 
                            nex.playSound(3310, 2);
                        } else if (count == 13) {
                            nex.setCantInteract(false);
                            stop();
                            return;
                        }
                        count++;
                    }
                    // }
                }, 0, 1);
            }
        }
    }
 
    private ZarosGodwars() {
 
    }
}


Estamos Quase Lá!, Va para NPCCombat.java e procure por :

CÓDIGO:
tile.getY() - npc.getY())));


Abaixo Disso ponha :

CÓDIGO:
npc.setNextAnimation(new Animation(17408));


Caso Nao tenho os Anim do Nex, Geralmente tera mas caso nao tenha va para unpackedCombatDefinitionsList.txt e ponha isso :

CÓDIGO:
//Nex - 1001
 13447 - 30000 17407 17406 17415 5 3 150 369 SPECIAL -1 -1 AGRESSIVE
//Nex - 1001
 13448 - 30000 17407 17406 17415 5 3 150 369 SPECIAL -1 -1 AGRESSIVE
//Nex - 1001
 13449 - 30000 17407 17406 17415 5 3 150 369 SPECIAL -1 -1 AGRESSIVE
//Nex -1001
 13450 - 30000 17407 17406 17415 5 3 150 369 SPECIAL -1 -1 AGRESSIVE


Delete o combate packed definitions nao o unpacked e clique para run seu server e o packed voltara com o Nex e seus anims

Antes que postem algo, nao fiz esse code hoje, nao e copia de ninguem e meu pois ja tive meu private server, e futuramente estarei postando mas coisas de Servervido Privado de runescape, estava acabando a roleta maluca mas estou com um bug na interface.

Bom E isso Ai, Valeu Pessoal.

0 comentários: