Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package server.model.players;
- import java.util.LinkedList;
- import java.util.Queue;
- import server.event.CycleEventHandler;
- import java.util.concurrent.Future;
- import org.apache.mina.common.IoSession;
- import server.Config;
- import server.event.EventManager;
- import server.model.players.ObjectDef;
- import server.model.players.Region;
- import server.Server;
- import server.model.items.ItemAssistant;
- import server.model.shops.ShopAssistant;
- import server.model.players.packets.PvPHandler;
- import server.model.players.Specials;
- import server.model.players.CombatAssistant;
- import server.net.HostList;
- import server.net.Packet;
- import server.net.StaticPacketBuilder;
- import server.model.players.ActionHandler;
- import server.world.ObjectHandler;
- import server.util.Misc;
- import server.util.Stream;
- import server.model.players.skills.*;
- import server.event.Event;
- import server.event.EventContainer;
- public class Client extends Player {
- public byte buffer[] = null;
- public Stream inStream = null, outStream = null;
- private IoSession session;
- private ItemAssistant itemAssistant = new ItemAssistant(this);
- private ShopAssistant shopAssistant = new ShopAssistant(this);
- private PvPHandler pvpHandler = new PvPHandler(this);
- private TradeAndDuel tradeAndDuel = new TradeAndDuel(this);
- private PlayerAssistant playerAssistant = new PlayerAssistant(this);
- private Specials specials = new Specials(this);
- private CombatAssistant combatAssistant = new CombatAssistant(this);
- private ActionHandler actionHandler = new ActionHandler(this);
- private DialogueHandler dialogueHandler = new DialogueHandler(this);
- private Queue<Packet> queuedPackets = new LinkedList<Packet>();
- private Potions potions = new Potions(this);
- private PotionMixing potionMixing = new PotionMixing(this);
- private Food food = new Food(this);
- /**
- * Skill instances
- */
- private Slayer slayer = new Slayer(this);
- private Runecrafting runecrafting = new Runecrafting(this);
- private Woodcutting woodcutting = new Woodcutting(this);
- private Mining mine = new Mining(this);
- private Agility agility = new Agility(this);
- private Cooking cooking = new Cooking(this);
- private Fishing fish = new Fishing(this);
- private Crafting crafting = new Crafting(this);
- private Smithing smith = new Smithing(this);
- private Prayer prayer = new Prayer(this);
- private Fletching fletching = new Fletching(this);
- private SmithingInterface smithInt = new SmithingInterface(this);
- private Farming farming = new Farming(this);
- private Thieving thieving = new Thieving(this);
- private Firemaking firemaking = new Firemaking(this);
- private Herblore herblore = new Herblore(this);
- private ObjectHandler object = new ObjectHandler();
- public ObjectHandler getObject() {
- return object;
- }
- public Specials getSA() {
- return specials;
- }
- public boolean WildernessWarning = false;
- private int somejunk;
- public int lowMemoryVersion = 0;
- public int timeOutCounter = 0;
- public int returnCode = 2;
- private Future<?> currentTask;
- public Client(IoSession s, int _playerId) {
- super(_playerId);
- this.session = s;
- synchronized(this) {
- outStream = new Stream(new byte[Config.BUFFER_SIZE]);
- outStream.currentOffset = 0;
- }
- inStream = new Stream(new byte[Config.BUFFER_SIZE]);
- inStream.currentOffset = 0;
- buffer = new byte[Config.BUFFER_SIZE];
- }
- public void clearPlayersInterface() {
- for (int i = 8147; i < 8348; i++) {
- getPA().sendFrame126("",i);
- }
- };
- public void flushOutStream() {
- if(disconnected || outStream.currentOffset == 0) return;
- synchronized(this) {
- StaticPacketBuilder out = new StaticPacketBuilder().setBare(true);
- byte[] temp = new byte[outStream.currentOffset];
- System.arraycopy(outStream.buffer, 0, temp, 0, temp.length);
- out.addBytes(temp);
- session.write(out.toPacket());
- outStream.currentOffset = 0;
- }
- }
- public void applyFollowing()
- {
- if (follow2 > 0)
- {
- //Client p = Server.playerHandler.client[followId];
- Client p = (Client) Server.playerHandler.players[follow2];
- if (p != null)
- {
- if (isDead)
- {
- follow(0, 3, 1);
- return;
- }
- if (!goodDistance(p.absX, p.absY, absX, absY, 25))
- {
- follow(0, 3, 1);
- return;
- }
- }
- else if (p == null)
- {
- follow(0, 3, 1);
- }
- }
- else if (follow2 > 0)
- {
- //Server.npcHandler.npcs.NPC npc = Server.npcHandler.npcs[followId2];
- if (Server.npcHandler.npcs[followId2] != null)
- {
- if (Server.npcHandler.npcs[followId2].isDead)
- {
- follow(0, 3, 1);
- return;
- }
- if (!goodDistance(Server.npcHandler.npcs[followId2].absX, Server.npcHandler.npcs[followId2].absY, absX, absY, 25))
- {
- follow(0, 3, 1);
- return;
- }
- }
- else if (Server.npcHandler.npcs[followId2] == null)
- {
- follow(0, 3, 1);
- }
- }
- }
- public int followDistance = 0;
- public void follow(int slot, int type, int distance)
- {
- if (slot > 0 && slot == follow2 && type == 1 && follow2 > 0 && followDistance != distance && (/*usingOtherRangeWeapons || */usingBow || usingMagic))
- return;
- else if (slot > 0 && slot == followId2 && type == 0 && followId2 > 0 && followDistance >= distance && distance != 1)
- return;
- //else if (type == 3 && followId2 == 0 && follow2 == 0)
- //return;
- outStream.createFrame(174);
- if (freezeTimer > 0) {
- outStream.writeWord(0);
- } else {
- outStream.writeWord(slot);
- if (type == 0) {
- follow2 = 0;
- followId2 = slot;
- faceUpdate(followId2);
- } else if (type == 1) {
- followId2 = 0;
- follow2 = slot;
- faceUpdate(32768 + follow2);
- } else if (type == 3) {
- followId2 = 0;
- follow2 = 0;
- followDistance = 0;
- faceUpdate(65535);
- }
- followDistance = distance;
- }
- outStream.writeByte(type);
- outStream.writeWord(distance);
- }
- public void pvpWarning() {
- getPA().sendFrame126("WARNING!", 6940);
- //Edit the below if you want to change the text, and delete the slashes.
- getPA().sendFrame126("Beyond this point is Multi Danger zone!\nExtreme caution is advised. This is a very dangerous area where other players can attack you!", 6939);
- //getPA().sendFrame126("The further north you go the more dangerous it becomes, but there is more\ntreasure to be found.", 6941);
- //getPA().sendFrame126("In the wilderness an indicator at the bottom-right of the screen\nwill show the current level of danger.", 6942);
- getPA().showInterface(1908);
- }
- public void sendClan(String name, String message, String clan, int rights) {
- outStream.createFrameVarSizeWord(217);
- outStream.writeString(name);
- outStream.writeString(message);
- outStream.writeString(clan);
- outStream.writeWord(rights);
- outStream.endFrameVarSize();
- }
- public static final int PACKET_SIZES[] = {
- 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, //0
- 0, 0, 0, 0, 8, 0, 6, 2, 2, 0, //10
- 0, 2, 0, 6, 0, 12, 0, 0, 0, 0, //20
- 0, 0, 0, 0, 0, 8, 4, 0, 0, 2, //30
- 2, 6, 0, 6, 0, -1, 0, 0, 0, 0, //40
- 0, 0, 0, 12, 0, 0, 0, 8, 8, 12, //50
- 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, //60
- 6, 0, 2, 2, 8, 6, 0, -1, 0, 6, //70
- 0, 0, 0, 0, 0, 1, 4, 6, 0, 0, //80
- 0, 0, 0, 0, 0, 3, 0, 0, -1, 0, //90
- 0, 13, 0, -1, 0, 0, 0, 0, 0, 0,//100
- 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, //110
- 1, 0, 6, 0, 0, 0, -1, 0, 2, 6, //120
- 0, 4, 6, 8, 0, 6, 0, 0, 0, 2, //130
- 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, //140
- 0, 0, 1, 2, 0, 2, 6, 0, 0, 0, //150
- 0, 0, 0, 0, -1, -1, 0, 0, 0, 0,//160
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //170
- 0, 8, 0, 3, 0, 2, 0, 0, 8, 1, //180
- 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, //190
- 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, //200
- 4, 0, 0, 0, 7, 8, 0, 0, 10, 0, //210
- 0, 0, 0, 0, 0, 0, -1, 0, 6, 0, //220
- 1, 0, 0, 0, 6, 0, 6, 8, 1, 0, //230
- 0, 4, 0, 0, 0, 0, -1, 0, -1, 4,//240
- 0, 0, 6, 6, 0, 0, 0 //250
- };
- public void destruct() {
- if(session == null)
- return;
- CycleEventHandler.getSingleton().stopEvents(this);
- //PlayerSaving.getSingleton().requestSave(playerId);
- getPA().removeFromCW();
- if (inPits)
- Server.fightPits.removePlayerFromPits(playerId);
- if (clanId >= 0)
- Server.clanChat.leaveClan(playerId, clanId);
- Misc.println("[Logged OFF]: "+playerName+"");
- HostList.getHostList().remove(session);
- disconnected = true;
- session.close();
- session = null;
- inStream = null;
- outStream = null;
- isActive = false;
- buffer = null;
- super.destruct();
- }
- public void sendMessage(String s) {
- synchronized (this) {
- if(getOutStream() != null) {
- outStream.createFrameVarSize(253);
- outStream.writeString(s);
- outStream.endFrameVarSize();
- }
- }
- }
- public void setSidebarInterface(int menuId, int form) {
- synchronized (this) {
- if(getOutStream() != null) {
- outStream.createFrame(71);
- outStream.writeWord(form);
- outStream.writeByteA(menuId);
- }
- }
- }
- public void initialize() {
- //Staff message on login
- //End of staff message
- getPA().sendFrame126("@yel@Zombie Kills: + c.zombieKills ", 13136);
- getPA().sendFrame126("", 673);
- getPA().sendFrame126("", 7332);
- getPA().sendFrame126("", 7333);
- getPA().sendFrame126("", 7334);
- getPA().sendFrame126("", 7336);
- getPA().sendFrame126("", 7383);
- getPA().sendFrame126("", 7339);
- getPA().sendFrame126("", 7338);
- getPA().sendFrame126("", 7340);
- getPA().sendFrame126("", 7346);
- getPA().sendFrame126("", 7341);
- getPA().sendFrame126("", 7342);
- getPA().sendFrame126("", 7337);
- getPA().sendFrame126("", 7343);
- getPA().sendFrame126("", 7335);
- getPA().sendFrame126("", 7344);
- getPA().sendFrame126("", 7345);
- getPA().sendFrame126("", 7347);
- getPA().sendFrame126("", 7348);
- /*Members Quests*/
- getPA().sendFrame126("", 12772);
- getPA().sendFrame126("", 7352);
- getPA().sendFrame126("", 12129);
- getPA().sendFrame126("", 8438);
- getPA().sendFrame126("", 18517);
- getPA().sendFrame126("", 15847);
- getPA().sendFrame126("", 15487);
- getPA().sendFrame126("", 12852);
- getPA().sendFrame126("", 7354);
- getPA().sendFrame126("", 7355);
- getPA().sendFrame126("", 7356);
- getPA().sendFrame126("", 8679);
- getPA().sendFrame126("", 7459);
- getPA().sendFrame126("", 7357);
- getPA().sendFrame126("", 14912);
- getPA().sendFrame126("", 249);
- getPA().sendFrame126("", 6024);
- getPA().sendFrame126("", 191);
- getPA().sendFrame126("", 15235);
- getPA().sendFrame126("", 15592);
- getPA().sendFrame126("", 6987);
- getPA().sendFrame126("", 15098);
- getPA().sendFrame126("", 15352);
- getPA().sendFrame126("", 18306);
- getPA().sendFrame126("", 15499);
- getPA().sendFrame126("", 668);
- getPA().sendFrame126("", 18684);
- getPA().sendFrame126("", 6027);
- getPA().sendFrame126("", 18157);
- getPA().sendFrame126("", 15847);
- getPA().sendFrame126("", 16128);
- getPA().sendFrame126("", 12836);
- getPA().sendFrame126("", 16149);
- getPA().sendFrame126("", 15841);
- getPA().sendFrame126("", 7353);
- getPA().sendFrame126("", 7358);
- getPA().sendFrame126("", 17510);
- getPA().sendFrame126("", 7359);
- getPA().sendFrame126("", 14169);
- getPA().sendFrame126("", 10115);
- getPA().sendFrame126("", 14604);
- getPA().sendFrame126("", 7360);
- getPA().sendFrame126("", 12282);
- getPA().sendFrame126("", 13577);
- getPA().sendFrame126("", 12839);
- getPA().sendFrame126("", 7361);
- getPA().sendFrame126("", 11857);
- getPA().sendFrame126("", 7362);
- getPA().sendFrame126("", 7363);
- getPA().sendFrame126("", 7364);
- getPA().sendFrame126("", 10135);
- getPA().sendFrame126("", 4508);
- getPA().sendFrame126("", 11907);
- getPA().sendFrame126("", 7365);
- getPA().sendFrame126("", 7366);
- getPA().sendFrame126("", 7367);
- getPA().sendFrame126("", 13389);
- getPA().sendFrame126("", 7368);
- getPA().sendFrame126("", 11132);
- getPA().sendFrame126("", 7369);
- getPA().sendFrame126("", 12389);
- getPA().sendFrame126("", 13974);
- getPA().sendFrame126("", 7370);
- getPA().sendFrame126("", 8137);
- getPA().sendFrame126("", 7371);
- getPA().sendFrame126("", 12345);
- getPA().sendFrame126("", 7372);
- getPA().sendFrame126("", 8115);
- getPA().sendFrame126("", 8576);
- getPA().sendFrame126("", 12139);
- getPA().sendFrame126("", 7373);
- getPA().sendFrame126("", 7374);
- getPA().sendFrame126("", 8969);
- getPA().sendFrame126("", 7375);
- getPA().sendFrame126("", 7376);
- getPA().sendFrame126("", 1740);
- getPA().sendFrame126("", 3278);
- getPA().sendFrame126("", 7378);
- getPA().sendFrame126("", 6518);
- getPA().sendFrame126("", 7379);
- getPA().sendFrame126("", 7380);
- getPA().sendFrame126("", 7381);
- getPA().sendFrame126("", 11858);
- getPA().sendFrame126("", 9927);
- getPA().sendFrame126("", 7349);
- getPA().sendFrame126("", 7350);
- getPA().sendFrame126("", 7351);
- getPA().sendFrame126("", 13356);
- /*END OF ALL QUESTS*/
- Messages();
- synchronized (this) {
- clearPlayersInterface();
- outStream.createFrame(249);
- outStream.writeByteA(1); // 1 for members, zero for free
- outStream.writeWordBigEndianA(playerId);
- for (int j = 0; j < Server.playerHandler.players.length; j++) {
- if (j == playerId)
- continue;
- if (Server.playerHandler.players[j] != null) {
- if (Server.playerHandler.players[j].playerName.equalsIgnoreCase(playerName))
- disconnected = true;
- }
- }
- for (int i = 0; i < 25; i++) {
- getPA().setSkillLevel(i, playerLevel[i], playerXP[i]);
- getPA().refreshSkill(i);
- }
- for(int p = 0; p < PRAYER.length; p++) { // reset prayer glows
- prayerActive[p] = false;
- getPA().sendFrame36(PRAYER_GLOW[p], 0);
- }
- //if (playerName.equalsIgnoreCase("Sanity")) {
- getPA().sendCrashFrame();
- //}
- getPA().handleWeaponStyle();
- getPA().handleLoginText();
- accountFlagged = getPA().checkForFlags();
- //getPA().sendFrame36(43, fightMode-1);
- getPA().sendFrame36(108, 0);//resets autocast button
- getPA().sendFrame36(172, 1);
- getPA().sendFrame107(); // reset screen
- getPA().setChatOptions(0, 0, 0); // reset private messaging options
- setSidebarInterface(1, 3917);
- setSidebarInterface(2, 638);
- setSidebarInterface(3, 3213);
- setSidebarInterface(4, 1644);
- setSidebarInterface(5, 5608);
- if(playerMagicBook == 0) {
- setSidebarInterface(6, 1151); //modern
- }else {
- if(playerMagicBook == 2) {
- setSidebarInterface(6, 29999); //lunar
- }else {
- setSidebarInterface(6, 12855); // ancient
- }
- }
- correctCoordinates();
- setSidebarInterface(7, 18128);
- setSidebarInterface(8, 5065);
- setSidebarInterface(9, 5715);
- setSidebarInterface(10, 2449);
- //setSidebarInterface(11, 4445); // wrench tab
- setSidebarInterface(11, 904); // wrench tab
- setSidebarInterface(12, 147); // run tab
- setSidebarInterface(13, -1);
- setSidebarInterface(0, 2423);
- sendMessage("Welcome to Project Z @blu@[Alpha build] 1.04 ");
- sendMessage("Please read the book in the inventory");
- sendMessage("@blu@-----@bla@ Latest Updates @blu@-----");
- sendMessage("@blu@#@bla@ Bosses added (info appears in chatbox randomly)");
- //sendMessage("@blu@#@bla@ ");
- sendMessage("@blu@#@bla@ Sailing has been added.");
- //sen("@blu@#@bla@ Boss Banana's added!");
- sendMessage("@blu@#@bla@ Bosses have multiple attack styles");
- //sendMessage("");
- getPA().showOption(4, 0,"@ora@Trade With", 3);
- getPA().showOption(5, 0,"@ora@Follow", 4);
- safeTimer = 0;
- getItems().resetItems(3214);
- getItems().sendWeapon(playerEquipment[playerWeapon], getItems().getItemName(playerEquipment[playerWeapon]));
- getItems().resetBonus();
- getItems().getBonus();
- getItems().writeBonus();
- getItems().setEquipment(playerEquipment[playerHat],1,playerHat);
- getItems().setEquipment(playerEquipment[playerCape],1,playerCape);
- getItems().setEquipment(playerEquipment[playerAmulet],1,playerAmulet);
- getItems().setEquipment(playerEquipment[playerArrows],playerEquipmentN[playerArrows],playerArrows);
- getItems().setEquipment(playerEquipment[playerChest],1,playerChest);
- getItems().setEquipment(playerEquipment[playerShield],1,playerShield);
- getItems().setEquipment(playerEquipment[playerLegs],1,playerLegs);
- getItems().setEquipment(playerEquipment[playerHands],1,playerHands);
- getItems().setEquipment(playerEquipment[playerFeet],1,playerFeet);
- getItems().setEquipment(playerEquipment[playerRing],1,playerRing);
- getItems().setEquipment(playerEquipment[playerWeapon],playerEquipmentN[playerWeapon],playerWeapon);
- getCombat().getPlayerAnimIndex(getItems().getItemName(playerEquipment[playerWeapon]).toLowerCase());
- getPA().logIntoPM();
- getItems().addSpecialBar(playerEquipment[playerWeapon]);
- saveTimer = Config.SAVE_TIMER;
- saveCharacter = true;
- Misc.println("[Logged IN]: "+playerName+"");
- handler.updatePlayer(this, outStream);
- handler.updateNPC(this, outStream);
- flushOutStream();
- getPA().clearClanChat();
- if (addStarter)
- getPA().addStarter();
- if (autoRet == 1)
- getPA().sendFrame36(172, 1);
- else
- getPA().sendFrame36(172, 0);
- }
- }
- public void update() {
- synchronized (this) {
- handler.updatePlayer(this, outStream);
- handler.updateNPC(this, outStream);
- flushOutStream();
- }
- }
- public Client getClient(int index) {
- return ((Client) PlayerHandler.players[index]);
- }
- public boolean validClient(int index) {
- Client p = (Client) PlayerHandler.players[index];
- if ((p != null) && !p.disconnected) {
- return true;
- }
- return false;
- }
- public void Messages() {
- EventManager.getSingleton().addEvent(new Event() {
- public void execute(EventContainer c) {
- int Message = 0;
- Message = Misc.random(7);
- if (Message == 0) {
- sendMessage("@blu@Skeleton Mage has just appeared near Draynor Mansion");
- } else if (Message == 1) {
- sendMessage("@blu@Zombies Champion has just appeared in the@red@ Falador Park");
- } else if (Message == 2) {
- sendMessage("@bla@ # @red@The Reaper has just appeared in the mage arena @bla@#");
- } else if (Message == 3) {
- sendMessage("Some Gypsy Trader has crashed near the @red@Al-Kharid mining site");
- } else if (Message == 4) {
- sendMessage("Someone at @red@Port Sarim Docks @bla@is offering to fix barrows equipment.");
- } else if (Message == 5) {
- sendMessage("@red@Vydja the mage has taken over Draynor Village!.");
- } else if (Message == 6) {
- sendMessage("@blu@The Cranky Fisherman's corpse came back to life at @red@Brimhaven!.");
- }
- }
- }, 160000); //Milliseconds
- };
- public void logout() {
- synchronized (this) {
- if(System.currentTimeMillis() - logoutDelay > 10000) {
- CycleEventHandler.getSingleton().stopEvents(this);
- outStream.createFrame(109);
- properLogout = true;
- } else {
- sendMessage("You must wait 10 seconds from being out of combat to logout.");
- }
- }
- }
- public int packetSize = 0, packetType = -1;
- public int donatorPoints = 0;
- public void process() {
- getPA().sendFrame126("Survivors Alive:@yel@ "+PlayerHandler.getPlayerCount(), 640);
- if (inMulti() == true && WildernessWarning == false) {
- resetWalkingQueue();
- pvpWarning();
- WildernessWarning = true;
- }
- applyFollowing();
- if(followId > 0) {
- getPA().followPlayer();
- } else if (followId2 > 0) {
- getPA().followNpc();
- }
- if (isRunning && getRunningEnergy() <= 0) {
- isRunning = false;
- isRunning2 = false;
- getPA().sendFrame36(173, 0);
- }
- if (dir2 != -1)
- setRunningEnergy(getRunningEnergy() - 0.88);
- if (getRunningEnergy() < 100)
- setRunningEnergy(getRunningEnergy() + 0.25);
- if(inPvP()) {
- getPA().sendFrame126("@red@DANGEROUS", 199);
- }
- if (miningTimer > 0 && mining[0] > 0) {
- miningTimer--;
- } else if (miningTimer == 0 && mining[0] > 0) {
- getMining().mineOre();
- } else if (smeltTimer > 0 && smeltType > 0) {
- smeltTimer--;
- } else if (smeltTimer == 0 && smeltType > 0) {
- getSmithing().smelt(smeltType);
- } else if (fishing && fishTimer > 0) {
- fishTimer--;
- } else if (fishing && fishTimer == 0) {
- getFishing().catchFish();
- }
- if (System.currentTimeMillis() - lastPoison > 20000 && poisonDamage > 0) {
- int damage = poisonDamage/2;
- if (damage > 0) {
- sendMessage("Applying poison damage.");
- if (!getHitUpdateRequired()) {
- setHitUpdateRequired(true);
- setHitDiff(damage);
- updateRequired = true;
- poisonMask = 1;
- } else if (!getHitUpdateRequired2()) {
- setHitUpdateRequired2(true);
- setHitDiff2(damage);
- updateRequired = true;
- poisonMask = 2;
- }
- lastPoison = System.currentTimeMillis();
- poisonDamage--;
- dealDamage(damage);
- } else {
- poisonDamage = -1;
- sendMessage("You are no longer poisoned.");
- }
- }
- if(System.currentTimeMillis() - duelDelay > 800 && duelCount > 0) {
- if(duelCount != 1) {
- forcedChat(""+(--duelCount));
- duelDelay = System.currentTimeMillis();
- } else {
- damageTaken = new int[Config.MAX_PLAYERS];
- forcedChat("FIGHT!");
- duelCount = 0;
- }
- }
- if(System.currentTimeMillis() - specDelay > Config.INCREASE_SPECIAL_AMOUNT) {
- specDelay = System.currentTimeMillis();
- if(specAmount < 10) {
- specAmount += .5;
- if (specAmount > 10)
- specAmount = 10;
- getItems().addSpecialBar(playerEquipment[playerWeapon]);
- }
- }
- if(clickObjectType > 0 && goodDistance(objectX + objectXOffset, objectY + objectYOffset, getX(), getY(), objectDistance)) {
- if(clickObjectType == 1) {
- getActions().firstClickObject(objectId, objectX, objectY);
- }
- if(clickObjectType == 2) {
- getActions().secondClickObject(objectId, objectX, objectY);
- }
- if(clickObjectType == 3) {
- getActions().thirdClickObject(objectId, objectX, objectY);
- }
- }
- if((clickNpcType > 0) && Server.npcHandler.npcs[npcClickIndex] != null) {
- if(goodDistance(getX(), getY(), Server.npcHandler.npcs[npcClickIndex].getX(), Server.npcHandler.npcs[npcClickIndex].getY(), 1)) {
- if(clickNpcType == 1) {
- turnPlayerTo(Server.npcHandler.npcs[npcClickIndex].getX(), Server.npcHandler.npcs[npcClickIndex].getY());
- Server.npcHandler.npcs[npcClickIndex].facePlayer(playerId);
- getActions().firstClickNpc(npcType);
- }
- if(clickNpcType == 2) {
- turnPlayerTo(Server.npcHandler.npcs[npcClickIndex].getX(), Server.npcHandler.npcs[npcClickIndex].getY());
- Server.npcHandler.npcs[npcClickIndex].facePlayer(playerId);
- getActions().secondClickNpc(npcType);
- }
- if(clickNpcType == 3) {
- turnPlayerTo(Server.npcHandler.npcs[npcClickIndex].getX(), Server.npcHandler.npcs[npcClickIndex].getY());
- Server.npcHandler.npcs[npcClickIndex].facePlayer(playerId);
- getActions().thirdClickNpc(npcType);
- }
- }
- }
- if(walkingToItem) {
- if(getX() == pItemX && getY() == pItemY || goodDistance(getX(), getY(), pItemX, pItemY,1)) {
- walkingToItem = false;
- Server.itemHandler.removeGroundItem(this, pItemId, pItemX, pItemY, true);
- }
- }
- if(followId > 0) {
- getPA().followPlayer();
- } else if (followId2 > 0) {
- getPA().followNpc();
- }
- getCombat().handlePrayerDrain();
- if(System.currentTimeMillis() - singleCombatDelay > 3300) {
- underAttackBy = 0;
- }
- if (System.currentTimeMillis() - singleCombatDelay2 > 3300) {
- underAttackBy2 = 0;
- }
- if(System.currentTimeMillis() - restoreStatsDelay > 60000) {
- restoreStatsDelay = System.currentTimeMillis();
- for (int level = 0; level < playerLevel.length; level++) {
- if (playerLevel[level] < getLevelForXP(playerXP[level])) {
- if(level != 5) { // prayer doesn't restore
- playerLevel[level] += 1;
- getPA().setSkillLevel(level, playerLevel[level], playerXP[level]);
- getPA().refreshSkill(level);
- }
- } else if (playerLevel[level] > getLevelForXP(playerXP[level])) {
- playerLevel[level] -= 1;
- getPA().setSkillLevel(level, playerLevel[level], playerXP[level]);
- getPA().refreshSkill(level);
- }
- }
- }
- if(System.currentTimeMillis() - teleGrabDelay > 1550 && usingMagic) {
- usingMagic = false;
- if(Server.itemHandler.itemExists(teleGrabItem, teleGrabX, teleGrabY)) {
- Server.itemHandler.removeGroundItem(this, teleGrabItem, teleGrabX, teleGrabY, true);
- }
- }
- if (!inPvP() && safeTimer > 0) {
- getPA().sendFrame126("@red@DANGEROUS", 21403);
- pvpHandler.pvpLevels();
- } else if (inPvP()) {
- wildLevel = 12;
- pvpHandler.pvpLevels();
- getPA().sendFrame126("@red@DANGEROUS", 199);
- } else if (inSafeZone()) {
- pvpHandler.pvpLevels();
- getPA().sendFrame126("@gre@SAFE", 199);
- } else if (inDuelArena()) {
- if(duelStatus == 5) {
- getPA().showOption(3, 0, "Attack", 1);
- } else {
- getPA().showOption(3, 0, "Challenge", 1);
- }
- } else if(inBarrows()){
- getPA().sendFrame99(2);
- getPA().sendFrame126("@red@Kill Count: "+barrowsKillCount, 4536);
- getPA().walkableInterface(4535);
- } else if (inCwGame || inPits) {
- getPA().showOption(3, 0, "Attack", 1);
- } else if (getPA().inPitsWait()) {
- getPA().showOption(3, 0, "Null", 1);
- }else if (!inCwWait) {
- getPA().sendFrame99(0);
- getPA().walkableInterface(-1);
- getPA().showOption(3, 0, "Null", 1);
- }
- if(!hasMultiSign && inMulti()) {
- hasMultiSign = true;
- getPA().multiWay(1);
- }
- if(hasMultiSign && !inMulti()) {
- hasMultiSign = false;
- getPA().multiWay(-1);
- }
- if(skullTimer > 0) {
- skullTimer--;
- if(skullTimer == 1) {
- isSkulled = false;
- attackedPlayers.clear();
- headIconPk = -1;
- skullTimer = -1;
- getPA().requestUpdates();
- }
- }
- if(isDead && respawnTimer == -6) {
- getPA().applyDead();
- }
- if(respawnTimer == 7) {
- respawnTimer = -6;
- getPA().giveLife();
- } else if(respawnTimer == 12) {
- respawnTimer--;
- startAnimation(0x900);
- poisonDamage = -1;
- }
- if(respawnTimer > -6) {
- respawnTimer--;
- }
- if(freezeTimer > -6) {
- freezeTimer--;
- if (frozenBy > 0) {
- if (Server.playerHandler.players[frozenBy] == null) {
- freezeTimer = -1;
- frozenBy = -1;
- } else if (!goodDistance(absX, absY, Server.playerHandler.players[frozenBy].absX, Server.playerHandler.players[frozenBy].absY, 20)) {
- freezeTimer = -1;
- frozenBy = -1;
- }
- }
- }
- if(hitDelay > 0) {
- hitDelay--;
- }
- if(teleTimer > 0) {
- teleTimer--;
- if (!isDead) {
- if(teleTimer == 1 && newLocation > 0) {
- teleTimer = 0;
- getPA().changeLocation();
- }
- if(teleTimer == 5) {
- teleTimer--;
- getPA().processTeleport();
- }
- if(teleTimer == 9 && teleGfx > 0) {
- teleTimer--;
- gfx100(teleGfx);
- }
- } else {
- teleTimer = 0;
- }
- }
- if(hitDelay == 1) {
- if(oldNpcIndex > 0) {
- getCombat().delayedHit(oldNpcIndex);
- }
- if(oldPlayerIndex > 0) {
- getCombat().playerDelayedHit(oldPlayerIndex);
- }
- }
- if(attackTimer > 0) {
- attackTimer--;
- }
- if(attackTimer == 1){
- if(npcIndex > 0 && clickNpcType == 0) {
- getCombat().attackNpc(npcIndex);
- }
- if(playerIndex > 0) {
- getCombat().attackPlayer(playerIndex);
- }
- } else if (attackTimer <= 0 && (npcIndex > 0 || playerIndex > 0)) {
- if (npcIndex > 0) {
- attackTimer = 0;
- getCombat().attackNpc(npcIndex);
- } else if (playerIndex > 0) {
- attackTimer = 0;
- getCombat().attackPlayer(playerIndex);
- }
- }
- if(timeOutCounter > Config.TIMEOUT) {
- disconnected = true;
- }
- timeOutCounter++;
- if(inTrade && tradeResetNeeded){
- Client o = (Client) Server.playerHandler.players[tradeWith];
- if(o != null){
- if(o.tradeResetNeeded){
- getTradeAndDuel().resetTrade();
- o.getTradeAndDuel().resetTrade();
- }
- }
- }
- }
- public void setCurrentTask(Future<?> task) {
- currentTask = task;
- }
- public Future<?> getCurrentTask() {
- return currentTask;
- }
- public synchronized Stream getInStream() {
- return inStream;
- }
- public synchronized int getPacketType() {
- return packetType;
- }
- public synchronized int getPacketSize() {
- return packetSize;
- }
- public synchronized Stream getOutStream() {
- return outStream;
- }
- public ItemAssistant getItems() {
- return itemAssistant;
- }
- public PlayerAssistant getPA() {
- return playerAssistant;
- }
- public DialogueHandler getDH() {
- return dialogueHandler;
- }
- public ShopAssistant getShops() {
- return shopAssistant;
- }
- public TradeAndDuel getTradeAndDuel() {
- return tradeAndDuel;
- }
- public CombatAssistant getCombat() {
- return combatAssistant;
- }
- public ActionHandler getActions() {
- return actionHandler;
- }
- public IoSession getSession() {
- return session;
- }
- public Potions getPotions() {
- return potions;
- }
- public PotionMixing getPotMixing() {
- return potionMixing;
- }
- public Food getFood() {
- return food;
- }
- /**
- * Skill Constructors
- */
- public Slayer getSlayer() {
- return slayer;
- }
- public Runecrafting getRunecrafting() {
- return runecrafting;
- }
- public Woodcutting getWoodcutting() {
- return woodcutting;
- }
- public Mining getMining() {
- return mine;
- }
- public Cooking getCooking() {
- return cooking;
- }
- public Agility getAgility() {
- return agility;
- }
- public Fishing getFishing() {
- return fish;
- }
- public Crafting getCrafting() {
- return crafting;
- }
- public Smithing getSmithing() {
- return smith;
- }
- public Farming getFarming() {
- return farming;
- }
- public Thieving getThieving() {
- return thieving;
- }
- public Herblore getHerblore() {
- return herblore;
- }
- public Firemaking getFiremaking() {
- return firemaking;
- }
- public SmithingInterface getSmithingInt() {
- return smithInt;
- }
- public Prayer getPrayer() {
- return prayer;
- }
- public Fletching getFletching() {
- return fletching;
- }
- /**
- * End of Skill Constructors
- */
- public void queueMessage(Packet arg1) {
- synchronized(queuedPackets) {
- //if (arg1.getId() != 41)
- queuedPackets.add(arg1);
- //else
- //processPacket(arg1);
- }
- }
- public synchronized boolean processQueuedPackets() {
- Packet p = null;
- synchronized(queuedPackets) {
- p = queuedPackets.poll();
- }
- if(p == null) {
- return false;
- }
- inStream.currentOffset = 0;
- packetType = p.getId();
- packetSize = p.getLength();
- inStream.buffer = p.getData();
- if(packetType > 0) {
- //sendMessage("PacketType: " + packetType);
- PacketHandler.processPacket(this, packetType, packetSize);
- }
- timeOutCounter = 0;
- return true;
- }
- public synchronized boolean processPacket(Packet p) {
- synchronized (this) {
- if(p == null) {
- return false;
- }
- inStream.currentOffset = 0;
- packetType = p.getId();
- packetSize = p.getLength();
- inStream.buffer = p.getData();
- if(packetType > 0) {
- //sendMessage("PacketType: " + packetType);
- PacketHandler.processPacket(this, packetType, packetSize);
- }
- timeOutCounter = 0;
- return true;
- }
- }
- public void correctCoordinates() {
- if (inPcGame()) {
- getPA().movePlayer(2657, 2639, 0);
- }
- if (inFightCaves()) {
- getPA().movePlayer(absX, absY, playerId * 4);
- sendMessage("Your wave will start in 10 seconds.");
- EventManager.getSingleton().addEvent(new Event() {
- public void execute(EventContainer c) {
- Server.fightCaves.spawnNextWave((Client)Server.playerHandler.players[playerId]);
- c.stop();
- }
- }, 10000);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement