Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package server.model.players;
- import server.Config;
- import server.Server;
- import server.model.npcs.NPCHandler;
- import server.util.Misc;
- import server.world.map.*;
- import java.util.Properties;
- import server.model.players.PlayerSave;
- import java.io.*;
- import java.util.GregorianCalendar;
- import java.util.Calendar;
- import server.event.*;
- import server.model.minigames.CastleWars;
- public class PlayerAssistant{
- private Client c;
- public PlayerAssistant(Client Client) {
- this.c = Client;
- }
- int tmpNWCX[] = new int[50];
- int tmpNWCY[] = new int[50];
- public static int[] eggs = new int[] {7928, 7929, 7930, 7931, 7932, 7933};
- public int randEgg()
- {
- return eggs[(int)(Math.random()*eggs.length)];
- }
- public void getDragonClawHits(Client c, int i) {
- c.clawHit[0] = i+Misc.random(10)+1;
- c.clawHit[1] = c.clawHit[0]/2;
- c.clawHit[2] = c.clawHit[1]/2;
- c.clawHit[3] = (c.clawHit[1]-c.clawHit[2]);
- c.sendMessage(""+c.clawHit[0]+","+c.clawHit[1]+","+c.clawHit[2]+","+c.clawHit[3]+".");
- }
- public void hitDragonClaws(final Client c, int damage) {
- if(!c.usingClaws) {
- return;
- }
- if(c.clawHit[0] <= 0) {
- getDragonClawHits(c, damage);
- }
- if(c.npcIndex > 0) {
- c.getCombat().applyNpcMeleeDamage(c.npcIndex, 1, c.clawHit[0]);
- c.getCombat().applyNpcMeleeDamage(c.npcIndex, 2, c.clawHit[1]);
- } else if(c.playerIndex > 0) {
- c.getCombat().applyPlayerMeleeDamage(c.playerIndex, 1, c.clawHit[0]);
- c.getCombat().applyPlayerMeleeDamage(c.playerIndex, 2, c.clawHit[1]);
- }
- CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
- @Override
- public void execute(CycleEventContainer container) {
- if(c.npcIndex > 0) {
- c.getCombat().applyNpcMeleeDamage(c.npcIndex, 1, c.clawHit[2]);
- c.getCombat().applyNpcMeleeDamage(c.npcIndex, 2, c.clawHit[3]);
- } else if(c.playerIndex > 0) {
- c.getCombat().applyPlayerMeleeDamage(c.playerIndex, 1, c.clawHit[2]);
- c.getCombat().applyPlayerMeleeDamage(c.playerIndex, 2, c.clawHit[3]);
- }
- resetDragonHits(c);
- container.stop();
- }
- @Override
- public void stop() {
- }
- }, 1);
- }
- public void resetDragonHits(Client c) {
- for(int i = 0; i < 4; i++) {
- c.clawHit[i] = -1;
- }
- c.usingClaws = false;
- }
- public boolean isEgg(int i)
- {
- for (int e : eggs)
- if (i == e)
- return true;
- return false;
- }
- public void fmwalkto(int i, int j)
- {
- c.newWalkCmdSteps = 0;
- if(++c.newWalkCmdSteps > 50)
- c.newWalkCmdSteps = 0;
- int k = c.absX + i;
- k -= c.mapRegionX * 8;
- c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = tmpNWCX[0] = tmpNWCY[0] = 0;
- int l = c.absY + j;
- l -= c.mapRegionY * 8;
- //c.isRunning2 = false;
- //c.isRunning = false;
- c.getNewWalkCmdX()[0] += k;
- c.getNewWalkCmdY()[0] += l;
- c.poimiY = l;
- c.poimiX = k;
- }
- public boolean isDupeLogged(String user)
- {
- String filePath = "./Data/DupeLogs/list.txt";
- String filePath2 = "./Data/DupeLogs/iplist.txt";
- BufferedReader in = null;
- boolean found = false;
- try
- {
- in = new BufferedReader(new FileReader(filePath));
- String s = "";
- while ((s = in.readLine())!=null)
- {
- if (user.equalsIgnoreCase(s))
- found = true;
- }
- in.close();
- Client c2 = null;
- for (int j = 0; j < Server.playerHandler.players.length; j++) {
- if (Server.playerHandler.players[j] != null && Server.playerHandler.players[j].playerName.equalsIgnoreCase(user)) {
- c2 = (Client)Server.playerHandler.players[j];
- }
- }
- if (c2 == null)
- return false;
- in = new BufferedReader(new FileReader(filePath2));
- s = "";
- while ((s = in.readLine())!=null)
- {
- if (c2.connectedFrom.equalsIgnoreCase(s))
- found = true;
- }
- in.close();
- }
- catch (Exception e)
- {
- }
- finally
- {
- if (in != null)
- {
- try
- {
- in.close();
- }
- catch (IOException ioe2)
- {
- }
- }
- }
- return found;
- }
- public void addDuper(String user)
- {
- String filePath = "./Data/DupeLogs/list.txt";
- BufferedWriter bw = null;
- try
- {
- bw = new BufferedWriter(new FileWriter(filePath, true));
- bw.write(user);
- bw.newLine();
- bw.flush();
- bw.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- finally
- {
- if (bw != null)
- {
- try
- {
- bw.close();
- }
- catch (IOException ioe2)
- {
- }
- }
- }
- }
- public void addDuperIP(String user)
- {
- String filePath = "./Data/DupeLogs/iplist.txt";
- BufferedWriter bw = null;
- try
- {
- bw = new BufferedWriter(new FileWriter(filePath, true));
- bw.write(user);
- bw.newLine();
- bw.flush();
- bw.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- finally
- {
- if (bw != null)
- {
- try
- {
- bw.close();
- }
- catch (IOException ioe2)
- {
- }
- }
- }
- }
- public void dupePacketLog(String user, String s)
- {
- String filePath = "./Data/DupeLogs/"+user+".txt";
- BufferedWriter bw = null;
- try
- {
- bw = new BufferedWriter(new FileWriter(filePath, true));
- bw.write("[" + c.date + "]" + "-" + "[" + c.currentTime + " " + checkTimeOfDay() + "]: "
- + "["+user+"]: "+s);
- bw.newLine();
- bw.flush();
- bw.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- finally
- {
- if (bw != null)
- {
- try
- {
- bw.close();
- }
- catch (IOException ioe2)
- {
- }
- }
- }
- }
- public void writeCommandLog(String command)
- {
- checkDateAndTime();
- String filePath = "./Data/Commands2.txt";
- BufferedWriter bw = null;
- try
- {
- bw = new BufferedWriter(new FileWriter(filePath, true));
- bw.write("[" + c.date + "]" + "-" + "[" + c.currentTime + " " + checkTimeOfDay() + "]: "
- + "[" + c.playerName + "]: " + "[" + c.connectedFrom + "] "
- + "::" + command);
- bw.newLine();
- bw.flush();
- }
- catch (IOException ioe)
- {
- ioe.printStackTrace();
- }
- finally
- {
- if (bw != null)
- {
- try
- {
- bw.close();
- }
- catch (IOException ioe2)
- {
- }
- }
- }
- }
- public String checkTimeOfDay()
- {
- Calendar cal = new GregorianCalendar();
- int TIME_OF_DAY = cal.get(Calendar.AM_PM);
- if (TIME_OF_DAY > 0)
- return "PM";
- else
- return "AM";
- }
- public void checkDateAndTime()
- {
- Calendar cal = new GregorianCalendar();
- int YEAR = cal.get(Calendar.YEAR);
- int MONTH = cal.get(Calendar.MONTH) + 1;
- int DAY = cal.get(Calendar.DAY_OF_MONTH);
- int HOUR = cal.get(Calendar.HOUR_OF_DAY);
- int MIN = cal.get(Calendar.MINUTE);
- int SECOND = cal.get(Calendar.SECOND);
- String day = "";
- String month = "";
- String hour = "";
- String minute = "";
- String second = "";
- if (DAY < 10)
- day = "0" + DAY;
- else
- day = "" + DAY;
- if (MONTH < 10)
- month = "0" + MONTH;
- else
- month = "" + MONTH;
- if (HOUR < 10)
- hour = "0" + HOUR;
- else
- hour = "" + HOUR;
- if (MIN < 10)
- minute = "0" + MIN;
- else
- minute = "" + MIN;
- if (SECOND < 10)
- second = "0" + SECOND;
- else
- second = "" + SECOND;
- c.date = day + "/" + month + "/" + YEAR;
- c.currentTime = hour + ":" + minute + ":" + second;
- }
- Properties p = new Properties();
- public void loadAnnouncements()
- {
- try
- {
- loadIni();
- if (p.getProperty("announcement1").length() > 0) {
- c.sendMessage(p.getProperty("announcement1"));
- }
- if (p.getProperty("announcement2").length() > 0) {
- c.sendMessage(p.getProperty("announcement2"));
- }
- if (p.getProperty("announcement3").length() > 0) {
- c.sendMessage(p.getProperty("announcement3"));
- }
- }
- catch (Exception e)
- {
- }
- }
- private void loadIni()
- {
- try
- {
- p.load(new FileInputStream("./Announcements.ini"));
- }
- catch (Exception e)
- {
- }
- }
- public int CraftInt, Dcolor, FletchInt;
- /**
- * MulitCombat icon
- * @param i1 0 = off 1 = on
- */
- public void multiWay(int i1) {
- //synchronized(c) {
- c.outStream.createFrame(61);
- c.outStream.writeByte(i1);
- c.updateRequired = true;
- c.setAppearanceUpdateRequired(true);
- //}
- }
- public void clearClanChat() {
- c.clanId = -1;
- c.getPA().sendFrame126("Talking in: ", 18139);
- c.getPA().sendFrame126("Owner: ", 18140);
- for (int j = 18144; j < 18244; j++)
- c.getPA().sendFrame126("", j);
- }
- public void resetAutocast() {
- c.autocastId = 0;
- c.autocasting = false;
- c.getPA().sendFrame36(108, 0);
- }
- public void sendFrame126(String s, int id) {
- // synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrameVarSizeWord(126);
- c.getOutStream().writeString(s);
- c.getOutStream().writeWordA(id);
- c.getOutStream().endFrameVarSizeWord();
- c.flushOutStream();
- }
- //}
- }
- public void sendLink(String s) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrameVarSizeWord(187);
- c.getOutStream().writeString(s);
- }
- //}
- }
- public void setSkillLevel(int skillNum, int currentLevel, int XP) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(134);
- c.getOutStream().writeByte(skillNum);
- c.getOutStream().writeDWord_v1(XP);
- c.getOutStream().writeByte(currentLevel);
- c.flushOutStream();
- }
- //}
- }
- public void sendFrame106(int sideIcon) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(106);
- c.getOutStream().writeByteC(sideIcon);
- c.flushOutStream();
- requestUpdates();
- }
- //}
- }
- public void sendFrame107() {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(107);
- c.flushOutStream();
- }
- //}
- }
- public void sendFrame36(int id, int state) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(36);
- c.getOutStream().writeWordBigEndian(id);
- c.getOutStream().writeByte(state);
- c.flushOutStream();
- }
- //}
- }
- public void sendFrame185(int Frame) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(185);
- c.getOutStream().writeWordBigEndianA(Frame);
- c.flushOutStream();
- }
- //}
- }
- public void showInterface(int interfaceid) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(97);
- c.getOutStream().writeWord(interfaceid);
- c.flushOutStream();
- }
- //}
- }
- public void sendFrame248(int MainFrame, int SubFrame) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(248);
- c.getOutStream().writeWordA(MainFrame);
- c.getOutStream().writeWord(SubFrame);
- c.flushOutStream();
- }
- //}
- }
- public void sendFrame246(int MainFrame, int SubFrame, int SubFrame2) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(246);
- c.getOutStream().writeWordBigEndian(MainFrame);
- c.getOutStream().writeWord(SubFrame);
- c.getOutStream().writeWord(SubFrame2);
- c.flushOutStream();
- }
- //}
- }
- public void sendFrame171(int MainFrame, int SubFrame) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(171);
- c.getOutStream().writeByte(MainFrame);
- c.getOutStream().writeWord(SubFrame);
- c.flushOutStream();
- }
- //}
- }
- public void sendFrame200(int MainFrame, int SubFrame) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(200);
- c.getOutStream().writeWord(MainFrame);
- c.getOutStream().writeWord(SubFrame);
- c.flushOutStream();
- }
- //}
- }
- public void sendFrame70(int i, int o, int id) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(70);
- c.getOutStream().writeWord(i);
- c.getOutStream().writeWordBigEndian(o);
- c.getOutStream().writeWordBigEndian(id);
- c.flushOutStream();
- }
- //}
- }
- public void sendFrame75(int MainFrame, int SubFrame) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(75);
- c.getOutStream().writeWordBigEndianA(MainFrame);
- c.getOutStream().writeWordBigEndianA(SubFrame);
- c.flushOutStream();
- }
- //}
- }
- public void sendFrame164(int Frame) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(164);
- c.getOutStream().writeWordBigEndian_dup(Frame);
- c.flushOutStream();
- }
- //}
- }
- public void setPrivateMessaging(int i) { // friends and ignore list status
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(221);
- c.getOutStream().writeByte(i);
- c.flushOutStream();
- }
- //}
- }
- public void setChatOptions(int publicChat, int privateChat, int tradeBlock) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(206);
- c.getOutStream().writeByte(publicChat);
- c.getOutStream().writeByte(privateChat);
- c.getOutStream().writeByte(tradeBlock);
- c.flushOutStream();
- }
- //}
- }
- public void sendFrame87(int id, int state) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(87);
- c.getOutStream().writeWordBigEndian_dup(id);
- c.getOutStream().writeDWord_v1(state);
- c.flushOutStream();
- }
- //}
- }
- public void sendPM(long name, int rights, byte[] chatmessage, int messagesize) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrameVarSize(196);
- c.getOutStream().writeQWord(name);
- c.getOutStream().writeDWord(c.lastChatId++);
- c.getOutStream().writeByte(rights);
- c.getOutStream().writeBytes(chatmessage, messagesize, 0);
- c.getOutStream().endFrameVarSize();
- c.flushOutStream();
- String chatmessagegot = Misc.textUnpack(chatmessage, messagesize);
- String target = Misc.longToPlayerName(name);
- }
- //}
- }
- public void createPlayerHints(int type, int id) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(254);
- c.getOutStream().writeByte(type);
- c.getOutStream().writeWord(id);
- c.getOutStream().write3Byte(0);
- c.flushOutStream();
- }
- // }
- }
- public void createObjectHints(int x, int y, int height, int pos) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(254);
- c.getOutStream().writeByte(pos);
- c.getOutStream().writeWord(x);
- c.getOutStream().writeWord(y);
- c.getOutStream().writeByte(height);
- c.flushOutStream();
- }
- //}
- }
- public void loadPM(long playerName, int world) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- if(world != 0) {
- world += 9;
- } else if(!Config.WORLD_LIST_FIX) {
- world += 1;
- }
- c.getOutStream().createFrame(50);
- c.getOutStream().writeQWord(playerName);
- c.getOutStream().writeByte(world);
- c.flushOutStream();
- }
- //}
- }
- public void removeAllWindows() {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getPA().resetVariables();
- c.getOutStream().createFrame(219);
- c.flushOutStream();
- }
- //}
- }
- public void closeAllWindows() {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(219);
- c.flushOutStream();
- c.isBanking = false;
- }
- //}
- }
- public void sendFrame34(int id, int slot, int column, int amount) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.outStream.createFrameVarSizeWord(34); // init item to smith screen
- c.outStream.writeWord(column); // Column Across Smith Screen
- c.outStream.writeByte(4); // Total Rows?
- c.outStream.writeDWord(slot); // Row Down The Smith Screen
- c.outStream.writeWord(id+1); // item
- c.outStream.writeByte(amount); // how many there are?
- c.outStream.endFrameVarSizeWord();
- }
- //}
- }
- public void walkableInterface(int id) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(208);
- c.getOutStream().writeWordBigEndian_dup(id);
- c.flushOutStream();
- }
- //}
- }
- public int mapStatus = 0;
- public void sendFrame99(int state) { // used for disabling map
- //synchronized(c) {
- if(c.getOutStream() != null) {
- if(mapStatus != state) {
- mapStatus = state;
- c.getOutStream().createFrame(99);
- c.getOutStream().writeByte(state);
- c.flushOutStream();
- }
- }
- //}
- }
- public void sendCrashFrame() { // used for crashing cheat clients
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(123);
- c.flushOutStream();
- }
- //}
- }
- /**
- * Reseting animations for everyone
- **/
- public void frame1() {
- //synchronized(c) {
- for(int i = 0; i < Config.MAX_PLAYERS; i++) {
- if(Server.playerHandler.players[i] != null) {
- Client person = (Client)Server.playerHandler.players[i];
- if(person != null) {
- if(person.getOutStream() != null && !person.disconnected) {
- if(c.distanceToPoint(person.getX(), person.getY()) <= 25){
- person.getOutStream().createFrame(1);
- person.flushOutStream();
- person.getPA().requestUpdates();
- }
- }
- }
- }
- }
- //}
- }
- /**
- * Creating projectile
- **/
- public void createProjectile(int x, int y, int offX, int offY, int angle, int speed, int gfxMoving, int startHeight, int endHeight, int lockon, int time) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(85);
- c.getOutStream().writeByteC((y - (c.getMapRegionY() * 8)) - 2);
- c.getOutStream().writeByteC((x - (c.getMapRegionX() * 8)) - 3);
- c.getOutStream().createFrame(117);
- c.getOutStream().writeByte(angle);
- c.getOutStream().writeByte(offY);
- c.getOutStream().writeByte(offX);
- c.getOutStream().writeWord(lockon);
- c.getOutStream().writeWord(gfxMoving);
- c.getOutStream().writeByte(startHeight);
- c.getOutStream().writeByte(endHeight);
- c.getOutStream().writeWord(time);
- c.getOutStream().writeWord(speed);
- c.getOutStream().writeByte(16);
- c.getOutStream().writeByte(64);
- c.flushOutStream();
- }
- //}
- }
- public void createProjectile2(int x, int y, int offX, int offY, int angle, int speed, int gfxMoving, int startHeight, int endHeight, int lockon, int time, int slope) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(85);
- c.getOutStream().writeByteC((y - (c.getMapRegionY() * 8)) - 2);
- c.getOutStream().writeByteC((x - (c.getMapRegionX() * 8)) - 3);
- c.getOutStream().createFrame(117);
- c.getOutStream().writeByte(angle);
- c.getOutStream().writeByte(offY);
- c.getOutStream().writeByte(offX);
- c.getOutStream().writeWord(lockon);
- c.getOutStream().writeWord(gfxMoving);
- c.getOutStream().writeByte(startHeight);
- c.getOutStream().writeByte(endHeight);
- c.getOutStream().writeWord(time);
- c.getOutStream().writeWord(speed);
- c.getOutStream().writeByte(slope);
- c.getOutStream().writeByte(64);
- c.flushOutStream();
- }
- //}
- }
- // projectiles for everyone within 25 squares
- public void createPlayersProjectile(int x, int y, int offX, int offY, int angle, int speed, int gfxMoving, int startHeight, int endHeight, int lockon, int time) {
- //synchronized(c) {
- for(int i = 0; i < Config.MAX_PLAYERS; i++) {
- Player p = Server.playerHandler.players[i];
- if(p != null) {
- Client person = (Client)p;
- if(person != null) {
- if(person.getOutStream() != null) {
- if(person.distanceToPoint(x, y) <= 25){
- if (p.heightLevel == c.heightLevel)
- person.getPA().createProjectile(x, y, offX, offY, angle, speed, gfxMoving, startHeight, endHeight, lockon, time);
- }
- }
- }
- }
- }
- //}
- }
- public void createPlayersProjectile2(int x, int y, int offX, int offY, int angle, int speed, int gfxMoving, int startHeight, int endHeight, int lockon, int time, int slope) {
- //synchronized(c) {
- for(int i = 0; i < Config.MAX_PLAYERS; i++) {
- Player p = Server.playerHandler.players[i];
- if(p != null) {
- Client person = (Client)p;
- if(person != null) {
- if(person.getOutStream() != null) {
- if(person.distanceToPoint(x, y) <= 25){
- person.getPA().createProjectile2(x, y, offX, offY, angle, speed, gfxMoving, startHeight, endHeight, lockon, time, slope);
- }
- }
- }
- }
- }
- //}
- }
- /**
- ** GFX
- **/
- public void stillGfx(int id, int x, int y, int height, int time) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(85);
- c.getOutStream().writeByteC(y - (c.getMapRegionY() * 8));
- c.getOutStream().writeByteC(x - (c.getMapRegionX() * 8));
- c.getOutStream().createFrame(4);
- c.getOutStream().writeByte(0);
- c.getOutStream().writeWord(id);
- c.getOutStream().writeByte(height);
- c.getOutStream().writeWord(time);
- c.flushOutStream();
- }
- //}
- }
- //creates gfx for everyone
- public void createPlayersStillGfx(int id, int x, int y, int height, int time) {
- //synchronized(c) {
- for(int i = 0; i < Config.MAX_PLAYERS; i++) {
- Player p = Server.playerHandler.players[i];
- if(p != null) {
- Client person = (Client)p;
- if(person != null) {
- if(person.getOutStream() != null) {
- if(person.distanceToPoint(x, y) <= 25){
- person.getPA().stillGfx(id, x, y, height, time);
- }
- }
- }
- }
- // }
- }
- }
- /**
- * Objects, add and remove
- **/
- public void object(int objectId, int objectX, int objectY, int face, int objectType) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(85);
- c.getOutStream().writeByteC(objectY - (c.getMapRegionY() * 8));
- c.getOutStream().writeByteC(objectX - (c.getMapRegionX() * 8));
- c.getOutStream().createFrame(101);
- c.getOutStream().writeByteC((objectType<<2) + (face&3));
- c.getOutStream().writeByte(0);
- if (objectId != -1) { // removing
- c.getOutStream().createFrame(151);
- c.getOutStream().writeByteS(0);
- c.getOutStream().writeWordBigEndian(objectId);
- c.getOutStream().writeByteS((objectType<<2) + (face&3));
- }
- c.flushOutStream();
- }
- //}
- }
- public void checkObjectSpawn(int objectId, int objectX, int objectY, int face, int objectType) {
- if (c.distanceToPoint(objectX, objectY) > 60)
- return;
- //synchronized(c) {
- if(c.getOutStream() != null) {
- c.getOutStream().createFrame(85);
- c.getOutStream().writeByteC(objectY - (c.getMapRegionY() * 8));
- c.getOutStream().writeByteC(objectX - (c.getMapRegionX() * 8));
- c.getOutStream().createFrame(101);
- c.getOutStream().writeByteC((objectType<<2) + (face&3));
- c.getOutStream().writeByte(0);
- if (objectId != -1) { // removing
- c.getOutStream().createFrame(151);
- c.getOutStream().writeByteS(0);
- c.getOutStream().writeWordBigEndian(objectId);
- c.getOutStream().writeByteS((objectType<<2) + (face&3));
- }
- c.flushOutStream();
- }
- //}
- }
- /**
- * Show option, attack, trade, follow etc
- **/
- public String optionType = "null";
- public void showOption(int i, int l, String s, int a) {
- //synchronized(c) {
- if(c.getOutStream() != null) {
- if(!optionType.equalsIgnoreCase(s)) {
- optionType = s;
- c.getOutStream().createFrameVarSize(104);
- c.getOutStream().writeByteC(i);
- c.getOutStream().writeByteA(l);
- c.getOutStream().writeString(s);
- c.getOutStream().endFrameVarSize();
- c.flushOutStream();
- }
- }
- //}
- }
- /**
- * Open bank
- **/
- public void openUpBank(){
- //synchronized(c) {
- if(c.inWild() && !c.safeZone())
- {
- c.sendMessage("You can't bank in the wilderness!");
- return;
- }
- if(c.getOutStream() != null) {
- c.isBanking = true;
- c.getItems().resetItems(5064);
- c.getItems().rearrangeBank();
- c.getItems().resetBank();
- c.getItems().resetTempItems();
- c.getOutStream().createFrame(248);
- c.getOutStream().writeWordA(5292);
- c.getOutStream().writeWord(5063);
- c.flushOutStream();
- }
- //}
- }
- /**
- * Private Messaging
- **/
- public void logIntoPM() {
- setPrivateMessaging(2);
- for(int i1 = 0; i1 < Config.MAX_PLAYERS; i1++) {
- Player p = Server.playerHandler.players[i1];
- if(p != null && p.isActive) {
- Client o = (Client)p;
- if(o != null) {
- o.getPA().updatePM(c.playerId, 1);
- }
- }
- }
- boolean pmLoaded = false;
- for(int i = 0; i < c.friends.length; i++) {
- if(c.friends[i] != 0) {
- for(int i2 = 1; i2 < Config.MAX_PLAYERS; i2++) {
- Player p = Server.playerHandler.players[i2];
- if (p != null && p.isActive && Misc.playerNameToInt64(p.playerName) == c.friends[i]) {
- Client o = (Client)p;
- if(o != null) {
- if (c.playerRights >= 2 || p.privateChat == 0 || (p.privateChat == 1 && o.getPA().isInPM(Misc.playerNameToInt64(c.playerName)))) {
- loadPM(c.friends[i], 1);
- pmLoaded = true;
- }
- break;
- }
- }
- }
- if(!pmLoaded) {
- loadPM(c.friends[i], 0);
- }
- pmLoaded = false;
- }
- for(int i1 = 1; i1 < Config.MAX_PLAYERS; i1++) {
- Player p = Server.playerHandler.players[i1];
- if(p != null && p.isActive) {
- Client o = (Client)p;
- if(o != null) {
- o.getPA().updatePM(c.playerId, 1);
- }
- }
- }
- }
- }
- public void updatePM(int pID, int world) { // used for private chat updates
- Player p = Server.playerHandler.players[pID];
- if(p == null || p.playerName == null || p.playerName.equals("null")){
- return;
- }
- Client o = (Client)p;
- if(o == null) {
- return;
- }
- long l = Misc.playerNameToInt64(Server.playerHandler.players[pID].playerName);
- if (p.privateChat == 0) {
- for (int i = 0; i < c.friends.length; i++) {
- if (c.friends[i] != 0) {
- if (l == c.friends[i]) {
- loadPM(l, world);
- return;
- }
- }
- }
- } else if (p.privateChat == 1) {
- for (int i = 0; i < c.friends.length; i++) {
- if (c.friends[i] != 0) {
- if (l == c.friends[i]) {
- if (o.getPA().isInPM(Misc.playerNameToInt64(c.playerName))) {
- loadPM(l, world);
- return;
- } else {
- loadPM(l, 0);
- return;
- }
- }
- }
- }
- } else if (p.privateChat == 2) {
- for (int i = 0; i < c.friends.length; i++) {
- if (c.friends[i] != 0) {
- if (l == c.friends[i] && c.playerRights < 2) {
- loadPM(l, 0);
- return;
- }
- }
- }
- }
- }
- public boolean isInPM(long l) {
- for (int i = 0; i < c.friends.length; i++) {
- if (c.friends[i] != 0) {
- if (l == c.friends[i]) {
- return true;
- }
- }
- }
- return false;
- }
- /**
- * Drink AntiPosion Potions
- * @param itemId The itemId
- * @param itemSlot The itemSlot
- * @param newItemId The new item After Drinking
- * @param healType The type of poison it heals
- */
- public void potionPoisonHeal(int itemId, int itemSlot, int newItemId, int healType) {
- c.attackTimer = c.getCombat().getAttackDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
- if(c.duelRule[5]) {
- c.sendMessage("Potions has been disabled in this duel!");
- return;
- }
- if(!c.isDead && System.currentTimeMillis() - c.foodDelay > 2000) {
- if(c.getItems().playerHasItem(itemId, 1, itemSlot)) {
- c.sendMessage("You drink the "+c.getItems().getItemName(itemId).toLowerCase()+".");
- c.foodDelay = System.currentTimeMillis();
- // Actions
- if(healType == 1) {
- //Cures The Poison
- } else if(healType == 2) {
- //Cures The Poison + protects from getting poison again
- }
- c.startAnimation(0x33D);
- c.getItems().deleteItem(itemId, itemSlot, 1);
- c.getItems().addItem(newItemId, 1);
- requestUpdates();
- }
- }
- }
- /**
- * Magic on items
- **/
- public void magicOnItems(int slot, int itemId, int spellId) {
- if(itemId == 9813 || itemId == 9814)
- return;
- switch(spellId) {
- case 1162: // low alch
- if (Misc.random(75) == 0) {
- c.randomEvent();
- return;
- }
- if(System.currentTimeMillis() - c.alchDelay > 1000) {
- if(!c.getCombat().checkMagicReqs(49)) {
- break;
- }
- if(itemId == 995) {
- c.sendMessage("You can't alch coins");
- break;
- }
- c.getItems().deleteItem(itemId, slot, 1);
- c.getItems().addItem(995, c.getShops().getItemShopValue(itemId)/3);
- c.startAnimation(c.MAGIC_SPELLS[49][2]);
- c.gfx100(c.MAGIC_SPELLS[49][3]);
- c.alchDelay = System.currentTimeMillis();
- sendFrame106(6);
- addSkillXP(c.MAGIC_SPELLS[49][7] * Config.MAGIC_EXP_RATE, 6);
- refreshSkill(6);
- }
- break;
- case 1178: // high alch
- if (Misc.random(75) == 0) {
- c.randomEvent();
- return;
- }
- if (c.inRandom)
- return;
- if(System.currentTimeMillis() - c.alchDelay > 2000) {
- if(!c.getCombat().checkMagicReqs(50)) {
- break;
- }
- if(itemId == 995) {
- c.sendMessage("You can't alch coins");
- break;
- }
- c.getItems().deleteItem(itemId, slot, 1);
- c.getItems().addItem(995, (int)(c.getShops().getItemShopValue(itemId)*.75));
- c.startAnimation(c.MAGIC_SPELLS[50][2]);
- c.gfx100(c.MAGIC_SPELLS[50][3]);
- c.alchDelay = System.currentTimeMillis();
- sendFrame106(6);
- addSkillXP(c.MAGIC_SPELLS[50][7] * Config.MAGIC_EXP_RATE, 6);
- refreshSkill(6);
- }
- break;
- }
- }
- /**
- * Dieing
- **/
- public String killedLast = "";
- public void handlePKP(String name) {
- int base = 5;
- if (c.inWild() && !c.isInArd() && !c.isInFala())
- {
- base *= 5;
- }
- c.pkp+=base;
- killedLast = name;
- c.sendMessage("You gain "+base+" PK points. You now have "+c.pkp+" PK points.");
- }
- public void handlePKRating(String name) {
- int base = 5;
- if (c.inWild() && !c.isInArd() && !c.isInFala())
- {
- base *= 5;
- }
- c.pkRating+=base;
- killedLast = name;
- c.sendMessage("You gain "+base+" pk rating points. You rate at "+c.pkRating+" points.");
- }
- public void applyDead() {
- int weapon = c.playerEquipment[c.playerWeapon];
- c.respawnTimer = 15;
- c.isDead = false;
- c.killerId = findKiller();
- Client o = (Client) Server.playerHandler.players[c.killerId];
- if(c.duelStatus != 6) {
- //c.killerId = c.getCombat().getKillerId(c.playerId);
- if(o != null) {
- if (c.killerId != c.playerId)
- {
- if (c.duelStatus <= 4) {
- if (CastleWars.isInCw(c)) {
- c.cwDeaths += 1;
- o.cwKills += 1;
- }
- o.pcPoints += 1;
- o.getPA().handlePKP(c.playerName);
- o.getPA().handlePKRating(c.playerName);
- c.pkRating-=10;
- c.sendMessage("You lose 10 rating points for dieing.");
- o.playerKills++;
- if (Math.random() <= .25)
- {
- c.pkp -= 25;
- c.sendMessage("You lose 25 pkp points");
- if (c.pkp < 0)
- c.pkp = 0;
- c.sendMessage("You now have "+c.pkp+" pkp points");
- }
- }
- }
- if (weapon == CastleWars.SARA_BANNER || weapon == CastleWars.ZAMMY_BANNER) {
- c.getItems().removeItem(weapon, 3);
- c.getItems().deleteItem2(weapon, 1);
- CastleWars.dropFlag(c, weapon);
- }
- c.playerKilled = c.playerId;
- if(o.duelStatus == 5) {
- o.duelStatus++;
- }
- }
- }
- c.playerDeaths++;
- c.faceUpdate(0);
- EventManager.getSingleton().addEvent(new Event() {
- public void execute(EventContainer b) {
- c.npcIndex = 0;
- c.playerIndex = 0;
- b.stop();
- }
- }, 2500);
- c.stopMovement();
- if(c.duelStatus <= 4) {
- c.sendMessage("Oh dear you are dead!");
- } else if(c.duelStatus != 6) {
- c.sendMessage("You have lost the duel!");
- }
- resetDamageDone();
- c.specAmount = 10;
- c.getItems().addSpecialBar(c.playerEquipment[c.playerWeapon]);
- c.lastVeng = 0;
- c.vengOn = false;
- resetFollowers();
- c.attackTimer = 10;
- }
- public void resetDamageDone() {
- for (int i = 0; i < PlayerHandler.players.length; i++) {
- if (PlayerHandler.players[i] != null) {
- PlayerHandler.players[i].damageTaken[c.playerId] = 0;
- }
- }
- }
- /*
- *Vengeance
- */
- public void castVeng() {
- if(c.playerLevel[6] < 94) {
- c.sendMessage("You need a magic level of 94 to cast this spell.");
- return;
- }
- if(c.playerLevel[1] < 40) {
- c.sendMessage("You need a defence level of 40 to cast this spell.");
- return;
- }
- if(!c.getItems().playerHasItem(9075, 4) || !c.getItems().playerHasItem(557, 10) || !c.getItems().playerHasItem(560, 2)) {
- c.sendMessage("You don't have the required runes to cast this spell.");
- return;
- }
- if(System.currentTimeMillis() - c.lastCast < 30000) {
- c.sendMessage("You can only cast vengeance every 30 seconds.");
- return;
- }
- if(c.vengOn) {
- c.sendMessage("You already have vengeance casted.");
- return;
- }
- c.startAnimation(4410);
- c.gfx0(604);//Just use c.gfx100
- c.getItems().deleteItem2(9075, 4);
- c.getItems().deleteItem2(557, 10);//For these you need to change to deleteItem(item, itemslot, amount);.
- c.getItems().deleteItem2(560, 2);
- addSkillXP(10000, 6);
- refreshSkill(6);
- c.vengOn = true;
- c.lastCast = System.currentTimeMillis();
- }
- public void vengMe() {
- if (System.currentTimeMillis() - c.lastVeng > 30000) {
- if (c.getItems().playerHasItem(557,10) && c.getItems().playerHasItem(9075,4) && c.getItems().playerHasItem(560,2)) {
- c.vengOn = true;
- c.lastVeng = System.currentTimeMillis();
- c.startAnimation(4410);
- c.gfx100(726);
- c.getItems().deleteItem(557,c.getItems().getItemSlot(557),10);
- c.getItems().deleteItem(560,c.getItems().getItemSlot(560),2);
- c.getItems().deleteItem(9075,c.getItems().getItemSlot(9075),4);
- } else {
- c.sendMessage("You do not have the required runes to cast this spell. (9075 for astrals)");
- }
- } else {
- c.sendMessage("You must wait 30 seconds before casting this again.");
- }
- }
- public void resetTb() {
- c.teleBlockLength = 0;
- c.teleBlockDelay = 0;
- }
- public void handleStatus(int i, int i2, int i3) {
- }
- public void resetFollowers() {
- for (int j = 0; j < Server.playerHandler.players.length; j++) {
- if (Server.playerHandler.players[j] != null) {
- if (Server.playerHandler.players[j].followId == c.playerId) {
- Client c = (Client)Server.playerHandler.players[j];
- c.getPA().resetFollow();
- }
- }
- }
- }
- public void giveLife() {
- c.isDead = false;
- c.faceUpdate(-1);
- c.freezeTimer = 0;
- if(c.duelStatus <= 4 && !c.getPA().inPitsWait()) { // if we are not in a duel we must be in wildy so remove items
- if(!CastleWars.isInCw(c) && !c.inPits && !c.inFightCaves()) {
- c.getItems().resetKeepItems();
- if((c.playerRights == 2 && Config.ADMIN_DROP_ITEMS) || c.playerRights != 2) {
- if(!c.isSkulled) { // what items to keep
- c.getItems().keepItem(0, true);
- c.getItems().keepItem(1, true);
- c.getItems().keepItem(2, true);
- }
- if((c.prayerActive[10] && System.currentTimeMillis() - c.lastProtItem > 700)) {
- c.getItems().keepItem(3, true);
- }
- c.getItems().dropAllItems(); // drop all items
- c.getItems().deleteAllItems(); // delete all items
- if(!c.isSkulled) { // add the kept items once we finish deleting and dropping them
- for (int i1 = 0; i1 < 3; i1++) {
- if(c.itemKeptId[i1] > 0) {
- c.getItems().addItem(c.itemKeptId[i1], 1);
- }
- }
- }
- if(c.prayerActive[10]) { // if we have protect items
- if(c.itemKeptId[3] > 0) {
- c.getItems().addItem(c.itemKeptId[3], 1);
- }
- }
- }
- c.getItems().resetKeepItems();
- } else if (c.inPits) {
- Server.fightPits.removePlayerFromPits(c.playerId);
- c.pitsStatus = 1;
- }
- }
- c.getCombat().resetPrayers();
- for (int i = 0; i < 20; i++) {
- c.playerLevel[i] = getLevelForXP(c.playerXP[i]);
- c.getPA().refreshSkill(i);
- }
- if (CastleWars.isInCw(c)) {
- if (CastleWars.getTeamNumber(c) == 1) {
- c.getPA().movePlayer(2426 + Misc.random(3), 3076 - Misc.random(3), 1);
- } else {
- c.getPA().movePlayer(2373 + Misc.random(3), 3131 - Misc.random(3), 1);
- }
- } else if (c.pitsStatus == 1) {
- movePlayer(2399, 5173, 0);
- } else if(c.duelStatus <= 4) { // if we are not in a duel repawn to wildy
- movePlayer(Config.RESPAWN_X, Config.RESPAWN_Y, 0);
- c.isSkulled = false;
- c.skullTimer = 0;
- c.attackedPlayers.clear();
- } else if (c.inFightCaves()) {
- c.getPA().resetTzhaar();
- } else { // we are in a duel, respawn outside of arena
- Client o = (Client) Server.playerHandler.players[c.duelingWith];
- if(o != null) {
- o.getPA().createPlayerHints(10, -1);
- if(o.duelStatus == 6) {
- o.getTradeAndDuel().duelVictory();
- o.pcPoints += 1;
- o.sendMessage("You have gained 1 Soul Split Points for winning a duel");
- }
- }
- movePlayer(Config.DUELING_RESPAWN_X+(Misc.random(Config.RANDOM_DUELING_RESPAWN)), Config.DUELING_RESPAWN_Y+(Misc.random(Config.RANDOM_DUELING_RESPAWN)), 0);
- if(c.duelStatus != 6) { // if we have won but have died, don't reset the duel status.
- c.getTradeAndDuel().resetDuel();
- }
- }
- //PlayerSaving.getSingleton().requestSave(c.playerId);
- PlayerSave.saveGame(c);
- c.getCombat().resetPlayerAttack();
- resetAnimation();
- c.startAnimation(65535);
- frame1();
- resetTb();
- c.isSkulled = false;
- c.attackedPlayers.clear();
- c.headIconPk = -1;
- c.skullTimer = -1;
- c.damageTaken = new int[Config.MAX_PLAYERS];
- c.getPA().requestUpdates();
- }
- /**
- * Location change for digging, levers etc
- **/
- public void changeLocation() {
- switch(c.newLocation) {
- case 1:
- sendFrame99(2);
- movePlayer(3578,9706,-1);
- break;
- case 2:
- sendFrame99(2);
- movePlayer(3568,9683,-1);
- break;
- case 3:
- sendFrame99(2);
- movePlayer(3557,9703,-1);
- break;
- case 4:
- sendFrame99(2);
- movePlayer(3556,9718,-1);
- break;
- case 5:
- sendFrame99(2);
- movePlayer(3534,9704,-1);
- break;
- case 6:
- sendFrame99(2);
- movePlayer(3546,9684,-1);
- break;
- }
- c.newLocation = 0;
- }
- /**
- * Teleporting
- **/
- public void spellTeleport(int x, int y, int height) {
- c.getPA().startTeleport(x, y, height, c.playerMagicBook == 1 ? "ancient" : "modern");
- if (CastleWars.isInCw(c)) {
- c.sendMessage("You cannot tele from a Castle Wars Game!");
- return;
- }
- c.teleAction = 0;
- }
- public void startMovement(int x, int y, int height) {
- if(c.duelStatus == 5) {
- c.sendMessage("You can't teleport during a duel!");
- return;
- }
- if (CastleWars.isInCw(c)) {
- c.sendMessage("You cannot tele from a Castle Wars Game!");
- return;
- }
- if(c.inWild() && c.wildLevel > Config.NO_TELEPORT_WILD_LEVEL) {
- c.sendMessage("You can't teleport above level "+Config.NO_TELEPORT_WILD_LEVEL+" in the wilderness.");
- return;
- }
- if(System.currentTimeMillis() - c.teleBlockDelay < c.teleBlockLength) {
- c.sendMessage("You are teleblocked and can't teleport.");
- return;
- }
- if(!c.isDead && c.teleTimer == 0 && c.respawnTimer == -6) {
- if (c.playerIndex > 0 || c.npcIndex > 0)
- c.getCombat().resetPlayerAttack();
- c.stopMovement();
- removeAllWindows();
- c.teleX = x;
- c.teleY = y;
- c.npcIndex = 0;
- c.playerIndex = 0;
- c.faceUpdate(0);
- c.teleHeight = height;
- }
- }
- public void startTeleport(int x, int y, int height, String teleportType) {
- if(c.duelStatus == 5) {
- c.sendMessage("You can't teleport during a duel!");
- return;
- }
- if (CastleWars.isInCw(c)) {
- c.sendMessage("You cannot tele from a Castle Wars Game!");
- return;
- }
- if(c.inWild() && c.wildLevel > Config.NO_TELEPORT_WILD_LEVEL) {
- c.sendMessage("You can't teleport above level "+Config.NO_TELEPORT_WILD_LEVEL+" in the wilderness.");
- return;
- }
- if(System.currentTimeMillis() - c.teleBlockDelay < c.teleBlockLength) {
- c.sendMessage("You are teleblocked and can't teleport.");
- return;
- }
- if(!c.isDead && c.teleTimer == 0 && c.respawnTimer == -6) {
- if (c.playerIndex > 0 || c.npcIndex > 0)
- c.getCombat().resetPlayerAttack();
- c.stopMovement();
- removeAllWindows();
- c.teleX = x;
- c.teleY = y;
- c.npcIndex = 0;
- c.playerIndex = 0;
- c.faceUpdate(0);
- c.teleHeight = height;
- if(teleportType.equalsIgnoreCase("modern")) {
- c.startAnimation(714);
- c.teleTimer = 11;
- c.teleGfx = 308;
- c.teleEndAnimation = 715;
- }
- if(teleportType.equalsIgnoreCase("ancient")) {
- c.startAnimation(1979);
- c.teleGfx = 0;
- c.teleTimer = 9;
- c.teleEndAnimation = 0;
- c.gfx0(392);
- }
- }
- }
- public void startTeleport2(int x, int y, int height) {
- if(c.duelStatus == 5) {
- c.sendMessage("You can't teleport during a duel!");
- return;
- }
- if (CastleWars.isInCw(c)) {
- c.sendMessage("You cannot tele from a Castle Wars Game!");
- return;
- }
- if(System.currentTimeMillis() - c.teleBlockDelay < c.teleBlockLength) {
- c.sendMessage("You are teleblocked and can't teleport.");
- return;
- }
- if(!c.isDead && c.teleTimer == 0) {
- c.stopMovement();
- removeAllWindows();
- c.teleX = x;
- c.teleY = y;
- c.npcIndex = 0;
- c.playerIndex = 0;
- c.faceUpdate(0);
- c.teleHeight = height;
- c.startAnimation(714);
- c.teleTimer = 11;
- c.teleGfx = 308;
- c.teleEndAnimation = 715;
- }
- }
- public void processTeleport() {
- c.teleportToX = c.teleX;
- c.teleportToY = c.teleY;
- c.heightLevel = c.teleHeight;
- if(c.teleEndAnimation > 0) {
- c.startAnimation(c.teleEndAnimation);
- }
- }
- public void movePlayer(int x, int y, int h) {
- c.resetWalkingQueue();
- c.teleportToX = x;
- c.teleportToY = y;
- c.heightLevel = h;
- requestUpdates();
- }
- /**
- * Following
- **/
- /*public void Player() {
- if(Server.playerHandler.players[c.followId] == null || Server.playerHandler.players[c.followId].isDead) {
- c.getPA().resetFollow();
- return;
- }
- if(c.freezeTimer > 0) {
- return;
- }
- int otherX = Server.playerHandler.players[c.followId].getX();
- int otherY = Server.playerHandler.players[c.followId].getY();
- boolean withinDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
- boolean hallyDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
- boolean bowDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 6);
- boolean rangeWeaponDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
- boolean sameSpot = (c.absX == otherX && c.absY == otherY);
- if(!c.goodDistance(otherX, otherY, c.getX(), c.getY(), 25)) {
- c.followId = 0;
- c.getPA().resetFollow();
- return;
- }
- c.faceUpdate(c.followId+32768);
- if ((c.usingBow || c.mageFollow || c.autocastId > 0 && (c.npcIndex > 0 || c.playerIndex > 0)) && bowDistance && !sameSpot) {
- c.stopMovement();
- return;
- }
- if (c.usingRangeWeapon && rangeWeaponDistance && !sameSpot && (c.npcIndex > 0 || c.playerIndex > 0)) {
- c.stopMovement();
- return;
- }
- if(c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1) && !sameSpot) {
- return;
- }
- c.outStream.createFrame(174);
- boolean followPlayer = c.followId > 0;
- if (c.freezeTimer <= 0)
- if (followPlayer)
- c.outStream.writeWord(c.followId);
- else
- c.outStream.writeWord(c.followId2);
- else
- c.outStream.writeWord(0);
- if (followPlayer)
- c.outStream.writeByte(1);
- else
- c.outStream.writeByte(0);
- if (c.usingBow && c.playerIndex > 0)
- c.followDistance = 5;
- else if (c.usingRangeWeapon && c.playerIndex > 0)
- c.followDistance = 3;
- else if (c.spellId > 0 && c.playerIndex > 0)
- c.followDistance = 5;
- else
- c.followDistance = 1;
- c.outStream.writeWord(c.followDistance);
- }*/
- public void followPlayer() {
- if(Server.playerHandler.players[c.followId] == null || Server.playerHandler.players[c.followId].isDead) {
- c.followId = 0;
- return;
- }
- if(c.freezeTimer > 0) {
- return;
- }
- if (c.isDead || c.playerLevel[3] <= 0)
- return;
- int otherX = Server.playerHandler.players[c.followId].getX();
- int otherY = Server.playerHandler.players[c.followId].getY();
- boolean withinDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
- boolean goodDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1);
- boolean hallyDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
- boolean bowDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 8);
- boolean rangeWeaponDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 4);
- boolean sameSpot = c.absX == otherX && c.absY == otherY;
- if(!c.goodDistance(otherX, otherY, c.getX(), c.getY(), 25)) {
- c.followId = 0;
- return;
- }
- if(c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1)) {
- if (otherX != c.getX() && otherY != c.getY()) {
- stopDiagonal(otherX, otherY);
- return;
- }
- }
- if((c.usingBow || c.mageFollow || (c.playerIndex > 0 && c.autocastId > 0)) && bowDistance && !sameSpot) {
- return;
- }
- if(c.getCombat().usingHally() && hallyDistance && !sameSpot) {
- return;
- }
- if(c.usingRangeWeapon && rangeWeaponDistance && !sameSpot) {
- return;
- }
- c.faceUpdate(c.followId+32768);
- if (otherX == c.absX && otherY == c.absY) {
- int r = Misc.random(3);
- switch (r) {
- case 0:
- walkTo(0,-1);
- break;
- case 1:
- walkTo(0,1);
- break;
- case 2:
- walkTo(1,0);
- break;
- case 3:
- walkTo(-1,0);
- break;
- }
- } else if(c.isRunning2 && !withinDistance) {
- if(otherY > c.getY() && otherX == c.getX()) {
- walkTo(0, getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
- } else if(otherY < c.getY() && otherX == c.getX()) {
- walkTo(0, getMove(c.getY(), otherY + 1) + getMove(c.getY(), otherY + 1));
- } else if(otherX > c.getX() && otherY == c.getY()) {
- walkTo(getMove(c.getX(), otherX - 1) + getMove(c.getX(), otherX - 1), 0);
- } else if(otherX < c.getX() && otherY == c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), 0);
- } else if(otherX < c.getX() && otherY < c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY + 1) + getMove(c.getY(), otherY + 1));
- } else if(otherX > c.getX() && otherY > c.getY()) {
- walkTo(getMove(c.getX(), otherX - 1) + getMove(c.getX(), otherX - 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
- } else if(otherX < c.getX() && otherY > c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
- } else if(otherX > c.getX() && otherY < c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
- }
- } else {
- if(otherY > c.getY() && otherX == c.getX()) {
- walkTo(0, getMove(c.getY(), otherY - 1));
- } else if(otherY < c.getY() && otherX == c.getX()) {
- walkTo(0, getMove(c.getY(), otherY + 1));
- } else if(otherX > c.getX() && otherY == c.getY()) {
- walkTo(getMove(c.getX(), otherX - 1), 0);
- } else if(otherX < c.getX() && otherY == c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1), 0);
- } else if(otherX < c.getX() && otherY < c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY + 1));
- } else if(otherX > c.getX() && otherY > c.getY()) {
- walkTo(getMove(c.getX(), otherX - 1), getMove(c.getY(), otherY - 1));
- } else if(otherX < c.getX() && otherY > c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY - 1));
- } else if(otherX > c.getX() && otherY < c.getY()) {
- walkTo(getMove(c.getX(), otherX - 1), getMove(c.getY(), otherY + 1));
- }
- }
- c.faceUpdate(c.followId+32768);
- }
- public void followNpc() {
- if(Server.npcHandler.npcs[c.followId2] == null || Server.npcHandler.npcs[c.followId2].isDead) {
- c.followId2 = 0;
- return;
- }
- if(c.freezeTimer > 0) {
- return;
- }
- if (c.isDead || c.playerLevel[3] <= 0)
- return;
- int otherX = Server.npcHandler.npcs[c.followId2].getX();
- int otherY = Server.npcHandler.npcs[c.followId2].getY();
- boolean withinDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
- boolean goodDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1);
- boolean hallyDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
- boolean bowDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 8);
- boolean rangeWeaponDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 4);
- boolean sameSpot = c.absX == otherX && c.absY == otherY;
- if(!c.goodDistance(otherX, otherY, c.getX(), c.getY(), 25)) {
- c.followId2 = 0;
- return;
- }
- if(c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1)) {
- if (otherX != c.getX() && otherY != c.getY()) {
- stopDiagonal(otherX, otherY);
- return;
- }
- }
- if((c.usingBow || c.mageFollow || (c.npcIndex > 0 && c.autocastId > 0)) && bowDistance && !sameSpot) {
- return;
- }
- if(c.getCombat().usingHally() && hallyDistance && !sameSpot) {
- return;
- }
- if(c.usingRangeWeapon && rangeWeaponDistance && !sameSpot) {
- return;
- }
- c.faceUpdate(c.followId2);
- if (otherX == c.absX && otherY == c.absY) {
- int r = Misc.random(3);
- switch (r) {
- case 0:
- walkTo(0,-1);
- break;
- case 1:
- walkTo(0,1);
- break;
- case 2:
- walkTo(1,0);
- break;
- case 3:
- walkTo(-1,0);
- break;
- }
- } else if(c.isRunning2 && !withinDistance) {
- if(otherY > c.getY() && otherX == c.getX()) {
- walkTo(0, getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
- } else if(otherY < c.getY() && otherX == c.getX()) {
- walkTo(0, getMove(c.getY(), otherY + 1) + getMove(c.getY(), otherY + 1));
- } else if(otherX > c.getX() && otherY == c.getY()) {
- walkTo(getMove(c.getX(), otherX - 1) + getMove(c.getX(), otherX - 1), 0);
- } else if(otherX < c.getX() && otherY == c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), 0);
- } else if(otherX < c.getX() && otherY < c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY + 1) + getMove(c.getY(), otherY + 1));
- } else if(otherX > c.getX() && otherY > c.getY()) {
- walkTo(getMove(c.getX(), otherX - 1) + getMove(c.getX(), otherX - 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
- } else if(otherX < c.getX() && otherY > c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
- } else if(otherX > c.getX() && otherY < c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
- }
- } else {
- if(otherY > c.getY() && otherX == c.getX()) {
- walkTo(0, getMove(c.getY(), otherY - 1));
- } else if(otherY < c.getY() && otherX == c.getX()) {
- walkTo(0, getMove(c.getY(), otherY + 1));
- } else if(otherX > c.getX() && otherY == c.getY()) {
- walkTo(getMove(c.getX(), otherX - 1), 0);
- } else if(otherX < c.getX() && otherY == c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1), 0);
- } else if(otherX < c.getX() && otherY < c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY + 1));
- } else if(otherX > c.getX() && otherY > c.getY()) {
- walkTo(getMove(c.getX(), otherX - 1), getMove(c.getY(), otherY - 1));
- } else if(otherX < c.getX() && otherY > c.getY()) {
- walkTo(getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY - 1));
- } else if(otherX > c.getX() && otherY < c.getY()) {
- walkTo(getMove(c.getX(), otherX - 1), getMove(c.getY(), otherY + 1));
- }
- }
- c.faceUpdate(c.followId2);
- }
- public int getRunningMove(int i, int j) {
- if (j - i > 2)
- return 2;
- else if (j - i < -2)
- return -2;
- else return j-i;
- }
- public void resetFollow() {
- c.followId = 0;
- c.followId2 = 0;
- c.mageFollow = false;
- c.outStream.createFrame(174);
- c.outStream.writeWord(0);
- c.outStream.writeByte(0);
- c.outStream.writeWord(1);
- }
- public void walkTo(int i, int j) {
- c.newWalkCmdSteps = 0;
- if(++c.newWalkCmdSteps > 50)
- c.newWalkCmdSteps = 0;
- int k = c.getX() + i;
- k -= c.mapRegionX * 8;
- c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = 0;
- int l = c.getY() + j;
- l -= c.mapRegionY * 8;
- for(int n = 0; n < c.newWalkCmdSteps; n++) {
- c.getNewWalkCmdX()[n] += k;
- c.getNewWalkCmdY()[n] += l;
- }
- }
- public void walkTo2(int i, int j) {
- if (c.freezeDelay > 0)
- return;
- c.newWalkCmdSteps = 0;
- if(++c.newWalkCmdSteps > 50)
- c.newWalkCmdSteps = 0;
- int k = c.getX() + i;
- k -= c.mapRegionX * 8;
- c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = 0;
- int l = c.getY() + j;
- l -= c.mapRegionY * 8;
- for(int n = 0; n < c.newWalkCmdSteps; n++) {
- c.getNewWalkCmdX()[n] += k;
- c.getNewWalkCmdY()[n] += l;
- }
- }
- public void stopDiagonal(int otherX, int otherY) {
- if (c.freezeDelay > 0)
- return;
- c.newWalkCmdSteps = 1;
- int xMove = otherX - c.getX();
- int yMove = 0;
- if (xMove == 0)
- yMove = otherY - c.getY();
- /*if (!clipHor) {
- yMove = 0;
- } else if (!clipVer) {
- xMove = 0;
- }*/
- int k = c.getX() + xMove;
- k -= c.mapRegionX * 8;
- c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = 0;
- int l = c.getY() + yMove;
- l -= c.mapRegionY * 8;
- for(int n = 0; n < c.newWalkCmdSteps; n++) {
- c.getNewWalkCmdX()[n] += k;
- c.getNewWalkCmdY()[n] += l;
- }
- }
- public void walkToCheck(int i, int j) {
- if (c.freezeDelay > 0)
- return;
- c.newWalkCmdSteps = 0;
- if(++c.newWalkCmdSteps > 50)
- c.newWalkCmdSteps = 0;
- int k = c.getX() + i;
- k -= c.mapRegionX * 8;
- c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = 0;
- int l = c.getY() + j;
- l -= c.mapRegionY * 8;
- for(int n = 0; n < c.newWalkCmdSteps; n++) {
- c.getNewWalkCmdX()[n] += k;
- c.getNewWalkCmdY()[n] += l;
- }
- }
- public int getMove(int place1,int place2) {
- if (System.currentTimeMillis() - c.lastSpear < 4000)
- return 0;
- if ((place1 - place2) == 0) {
- return 0;
- } else if ((place1 - place2) < 0) {
- return 1;
- } else if ((place1 - place2) > 0) {
- return -1;
- }
- return 0;
- }
- public void destroyInterface(int itemId) {
- String itemName = c.getItems().getItemName(itemId);
- String[][] info = {{"Are you sure you want to destroy this item?", "14174"}, {"Yes.", "14175"}, {"No.", "14176"}, {"", "14177"}, {"You can't get it back", "14182"},
- {"Really, it's gone forever.", "14183"}, {itemName, "14184"}};
- sendFrame34(itemId, 0, 14171, 1);
- for (int i = 0; i < info.length; i++)
- sendFrame126(info[i][0], Integer.parseInt(info[i][1]));
- c.destroyItem = itemId;
- sendFrame164(14170);
- }
- public void destroyItem(int itemId) {
- String itemName = c.getItems().getItemName(itemId);
- c.getItems().deleteItem(itemId, 1);
- c.sendMessage("Your " + itemName + " vanishes as you drop it on the ground.");
- c.destroyItem = 0;
- }
- public boolean fullVeracs() {
- boolean hHat, hWep, hTop, hLegs;
- hHat = hWep = hTop = hLegs = false;
- int[] hat = new int[] {4976, 4981};
- if (c.playerEquipment[c.playerHat] >= hat[0] && c.playerEquipment[c.playerHat] <= hat[1])
- hHat = true;
- int[] wep = new int[] {4982, 4987};
- if (c.playerEquipment[c.playerWeapon] >= wep[0] && c.playerEquipment[c.playerWeapon] <= wep[1])
- hWep = true;
- int[] top = new int[] {4988, 4993};
- if (c.playerEquipment[c.playerChest] >= top[0] && c.playerEquipment[c.playerChest] <= top[1])
- hTop = true;
- int[] legs = new int[] {4994, 4999};
- if (c.playerEquipment[c.playerLegs] >= legs[0] && c.playerEquipment[c.playerLegs] <= legs[1])
- hLegs = true;
- if (c.playerEquipment[c.playerHat] == 4753)
- hHat = true;
- if (c.playerEquipment[c.playerWeapon] == 4755)
- hWep = true;
- if (c.playerEquipment[c.playerChest] == 4757)
- hTop = true;
- if (c.playerEquipment[c.playerLegs] == 4759)
- hLegs = true;
- if (hHat && hWep && hTop && hLegs)
- return true;
- return false;
- }
- public boolean fullGuthans() {
- return c.playerEquipment[c.playerHat] == 4724 && c.playerEquipment[c.playerChest] == 4728 && c.playerEquipment[c.playerLegs] == 4730 && c.playerEquipment[c.playerWeapon] == 4726;
- }
- public boolean inPartyRoom() {
- return c.absX >= 2726 && c.absY <= 3480 && c.absX <= 2749 && c.absY >= 3458;
- }
- public boolean inPartyRoom(int x, int y) {
- return x >= 2726 && y <= 3480 && x <= 2749 && y >= 3458;
- }
- /**
- * reseting animation
- **/
- public void resetAnimation() {
- c.getCombat().getPlayerAnimIndex(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
- c.startAnimation(c.playerStandIndex);
- requestUpdates();
- }
- public void requestUpdates() {
- c.updateRequired = true;
- c.setAppearanceUpdateRequired(true);
- }
- public void levelUp(int skill) {
- int totalLevel = c.totalLevel();
- sendFrame126("Total Lvl: "+totalLevel, 3984);
- switch(skill) {
- case 0:
- sendFrame126("Congratulations, you just advanced an attack level!", 6248);
- sendFrame126("Your attack level is now "+getLevelForXP(c.playerXP[skill])+".", 6249);
- c.sendMessage("Congratulations, you just advanced an attack level.");
- sendFrame164(6247);
- break;
- case 1:
- sendFrame126("Congratulations, you just advanced a defence level!", 6254);
- sendFrame126("Your defence level is now "+getLevelForXP(c.playerXP[skill])+".", 6255);
- c.sendMessage("Congratulations, you just advanced a defence level.");
- sendFrame164(6253);
- break;
- case 2:
- sendFrame126("Congratulations, you just advanced a strength level!", 6207);
- sendFrame126("Your strength level is now "+getLevelForXP(c.playerXP[skill])+".", 6208);
- c.sendMessage("Congratulations, you just advanced a strength level.");
- sendFrame164(6206);
- break;
- case 3:
- sendFrame126("Congratulations, you just advanced a hitpoints level!", 6217);
- sendFrame126("Your hitpoints level is now "+getLevelForXP(c.playerXP[skill])+".", 6218);
- c.sendMessage("Congratulations, you just advanced a hitpoints level.");
- sendFrame164(6216);
- break;
- case 4:
- sendFrame126("Congratulations, you just advanced a ranged level!", 5453);
- sendFrame126("Your ranged level is now "+getLevelForXP(c.playerXP[skill])+".", 6114);
- c.sendMessage("Congratulations, you just advanced a ranging level.");
- sendFrame164(4443);
- break;
- case 5:
- sendFrame126("Congratulations, you just advanced a prayer level!", 6243);
- sendFrame126("Your prayer level is now "+getLevelForXP(c.playerXP[skill])+".", 6244);
- c.sendMessage("Congratulations, you just advanced a prayer level.");
- sendFrame164(6242);
- break;
- case 6:
- sendFrame126("Congratulations, you just advanced a magic level!", 6212);
- sendFrame126("Your magic level is now "+getLevelForXP(c.playerXP[skill])+".", 6213);
- c.sendMessage("Congratulations, you just advanced a magic level.");
- sendFrame164(6211);
- break;
- case 7:
- sendFrame126("Congratulations, you just advanced a cooking level!", 6227);
- sendFrame126("Your cooking level is now "+getLevelForXP(c.playerXP[skill])+".", 6228);
- c.sendMessage("Congratulations, you just advanced a cooking level.");
- sendFrame164(6226);
- break;
- case 8:
- sendFrame126("Congratulations, you just advanced a woodcutting level!", 4273);
- sendFrame126("Your woodcutting level is now "+getLevelForXP(c.playerXP[skill])+".", 4274);
- c.sendMessage("Congratulations, you just advanced a woodcutting level.");
- sendFrame164(4272);
- break;
- case 9:
- sendFrame126("Congratulations, you just advanced a fletching level!", 6232);
- sendFrame126("Your fletching level is now "+getLevelForXP(c.playerXP[skill])+".", 6233);
- c.sendMessage("Congratulations, you just advanced a fletching level.");
- sendFrame164(6231);
- break;
- case 10:
- sendFrame126("Congratulations, you just advanced a fishing level!", 6259);
- sendFrame126("Your fishing level is now "+getLevelForXP(c.playerXP[skill])+".", 6260);
- c.sendMessage("Congratulations, you just advanced a fishing level.");
- sendFrame164(6258);
- break;
- case 11:
- sendFrame126("Congratulations, you just advanced a fire making level!", 4283);
- sendFrame126("Your firemaking level is now "+getLevelForXP(c.playerXP[skill])+".", 4284);
- c.sendMessage("Congratulations, you just advanced a fire making level.");
- sendFrame164(4282);
- break;
- case 12:
- sendFrame126("Congratulations, you just advanced a crafting level!", 6264);
- sendFrame126("Your crafting level is now "+getLevelForXP(c.playerXP[skill])+".", 6265);
- c.sendMessage("Congratulations, you just advanced a crafting level.");
- sendFrame164(6263);
- break;
- case 13:
- sendFrame126("Congratulations, you just advanced a smithing level!", 6222);
- sendFrame126("Your smithing level is now "+getLevelForXP(c.playerXP[skill])+".", 6223);
- c.sendMessage("Congratulations, you just advanced a smithing level.");
- sendFrame164(6221);
- break;
- case 14:
- sendFrame126("Congratulations, you just advanced a mining level!", 4417);
- sendFrame126("Your mining level is now "+getLevelForXP(c.playerXP[skill])+".", 4438);
- c.sendMessage("Congratulations, you just advanced a mining level.");
- sendFrame164(4416);
- break;
- case 15:
- sendFrame126("Congratulations, you just advanced a herblore level!", 6238);
- sendFrame126("Your herblore level is now "+getLevelForXP(c.playerXP[skill])+".", 6239);
- c.sendMessage("Congratulations, you just advanced a herblore level.");
- sendFrame164(6237);
- break;
- case 16:
- sendFrame126("Congratulations, you just advanced a agility level!", 4278);
- sendFrame126("Your agility level is now "+getLevelForXP(c.playerXP[skill])+".", 4279);
- c.sendMessage("Congratulations, you just advanced an agility level.");
- sendFrame164(4277);
- break;
- case 17:
- sendFrame126("Congratulations, you just advanced a thieving level!", 4263);
- sendFrame126("Your theiving level is now "+getLevelForXP(c.playerXP[skill])+".", 4264);
- c.sendMessage("Congratulations, you just advanced a thieving level.");
- sendFrame164(4261);
- break;
- case 18:
- sendFrame126("Congratulations, you just advanced a slayer level!", 12123);
- sendFrame126("Your slayer level is now "+getLevelForXP(c.playerXP[skill])+".", 12124);
- c.sendMessage("Congratulations, you just advanced a slayer level.");
- sendFrame164(12122);
- break;
- case 20:
- sendFrame126("Congratulations, you just advanced a runecrafting level!", 4268);
- sendFrame126("Your runecrafting level is now "+getLevelForXP(c.playerXP[skill])+".", 4269);
- c.sendMessage("Congratulations, you just advanced a runecrafting level.");
- sendFrame164(4267);
- break;
- }
- c.dialogueAction = 0;
- c.nextChat = 0;
- }
- public void refreshSkill(int i) {
- switch (i) {
- case 0:
- sendFrame126("" + c.playerLevel[0] + "", 4004);
- sendFrame126("" + getLevelForXP(c.playerXP[0]) + "", 4005);
- sendFrame126("" + c.playerXP[0] + "", 4044);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[0]) + 1) + "", 4045);
- break;
- case 1:
- sendFrame126("" + c.playerLevel[1] + "", 4008);
- sendFrame126("" + getLevelForXP(c.playerXP[1]) + "", 4009);
- sendFrame126("" + c.playerXP[1] + "", 4056);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[1]) + 1) + "", 4057);
- break;
- case 2:
- sendFrame126("" + c.playerLevel[2] + "", 4006);
- sendFrame126("" + getLevelForXP(c.playerXP[2]) + "", 4007);
- sendFrame126("" + c.playerXP[2] + "", 4050);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[2]) + 1) + "", 4051);
- break;
- case 3:
- sendFrame126("" + c.playerLevel[3] + "", 4016);
- sendFrame126("" + getLevelForXP(c.playerXP[3]) + "", 4017);
- sendFrame126("" + c.playerXP[3] + "", 4080);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[3])+1) + "", 4081);
- break;
- case 4:
- sendFrame126("" + c.playerLevel[4] + "", 4010);
- sendFrame126("" + getLevelForXP(c.playerXP[4]) + "", 4011);
- sendFrame126("" + c.playerXP[4] + "", 4062);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[4]) + 1) + "", 4063);
- break;
- case 5:
- sendFrame126("" + c.playerLevel[5] + "", 4012);
- sendFrame126("" + getLevelForXP(c.playerXP[5]) + "", 4013);
- sendFrame126("" + c.playerXP[5] + "", 4068);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[5]) + 1) + "", 4069);
- sendFrame126("" +c.playerLevel[5]+"/"+getLevelForXP(c.playerXP[5])+"", 687);//Prayer frame
- break;
- case 6:
- sendFrame126("" + c.playerLevel[6] + "", 4014);
- sendFrame126("" + getLevelForXP(c.playerXP[6]) + "", 4015);
- sendFrame126("" + c.playerXP[6] + "", 4074);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[6]) + 1) + "", 4075);
- break;
- case 7:
- sendFrame126("" + c.playerLevel[7] + "", 4034);
- sendFrame126("" + getLevelForXP(c.playerXP[7]) + "", 4035);
- sendFrame126("" + c.playerXP[7] + "", 4134);
- sendFrame126("" +getXPForLevel(getLevelForXP(c.playerXP[7]) + 1) + "", 4135);
- break;
- case 8:
- sendFrame126("" + c.playerLevel[8] + "", 4038);
- sendFrame126("" + getLevelForXP(c.playerXP[8]) + "", 4039);
- sendFrame126("" + c.playerXP[8] + "", 4146);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[8]) + 1) + "", 4147);
- break;
- case 9:
- sendFrame126("" + c.playerLevel[9] + "", 4026);
- sendFrame126("" + getLevelForXP(c.playerXP[9]) + "", 4027);
- sendFrame126("" + c.playerXP[9] + "", 4110);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[9]) + 1) + "", 4111);
- break;
- case 10:
- sendFrame126("" + c.playerLevel[10] + "", 4032);
- sendFrame126("" + getLevelForXP(c.playerXP[10]) + "", 4033);
- sendFrame126("" + c.playerXP[10] + "", 4128);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[10]) + 1) + "", 4129);
- break;
- case 11:
- sendFrame126("" + c.playerLevel[11] + "", 4036);
- sendFrame126("" + getLevelForXP(c.playerXP[11]) + "", 4037);
- sendFrame126("" + c.playerXP[11] + "", 4140);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[11]) + 1) + "", 4141);
- break;
- case 12:
- sendFrame126("" + c.playerLevel[12] + "", 4024);
- sendFrame126("" + getLevelForXP(c.playerXP[12]) + "", 4025);
- sendFrame126("" + c.playerXP[12] + "", 4104);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[12]) + 1) + "", 4105);
- break;
- case 13:
- sendFrame126("" + c.playerLevel[13] + "", 4030);
- sendFrame126("" + getLevelForXP(c.playerXP[13]) + "", 4031);
- sendFrame126("" + c.playerXP[13] + "", 4122);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[13]) + 1) + "", 4123);
- break;
- case 14:
- sendFrame126("" + c.playerLevel[14] + "", 4028);
- sendFrame126("" + getLevelForXP(c.playerXP[14]) + "", 4029);
- sendFrame126("" + c.playerXP[14] + "", 4116);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[14]) + 1)+ "", 4117);
- break;
- case 15:
- sendFrame126("" + c.playerLevel[15] + "", 4020);
- sendFrame126("" + getLevelForXP(c.playerXP[15]) + "", 4021);
- sendFrame126("" + c.playerXP[15] + "", 4092);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[15]) + 1) + "", 4093);
- break;
- case 16:
- sendFrame126("" + c.playerLevel[16] + "", 4018);
- sendFrame126("" + getLevelForXP(c.playerXP[16]) + "", 4019);
- sendFrame126("" + c.playerXP[16] + "", 4086);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[16]) + 1) + "", 4087);
- break;
- case 17:
- sendFrame126("" + c.playerLevel[17] + "", 4022);
- sendFrame126("" + getLevelForXP(c.playerXP[17]) + "", 4023);
- sendFrame126("" + c.playerXP[17] + "", 4098);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[17]) + 1) + "", 4099);
- break;
- case 18:
- sendFrame126("" + c.playerLevel[18] + "", 12166);
- sendFrame126("" + getLevelForXP(c.playerXP[18]) + "", 12167);
- sendFrame126("" + c.playerXP[18] + "", 12171);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[18]) + 1) + "", 12172);
- break;
- case 19:
- sendFrame126("" + c.playerLevel[19] + "", 13926);
- sendFrame126("" + getLevelForXP(c.playerXP[19]) + "", 13927);
- sendFrame126("" + c.playerXP[19] + "", 13921);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[19]) + 1) + "", 13922);
- break;
- case 20:
- sendFrame126("" + c.playerLevel[20] + "", 4152);
- sendFrame126("" + getLevelForXP(c.playerXP[20]) + "", 4153);
- sendFrame126("" + c.playerXP[20] + "", 4157);
- sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[20]) + 1) + "", 4158);
- break;
- }
- }
- public int getXPForLevel(int level) {
- int points = 0;
- int output = 0;
- for (int lvl = 1; lvl <= level; lvl++) {
- points += Math.floor((double)lvl + 300.0 * Math.pow(2.0, (double)lvl / 7.0));
- if (lvl >= level)
- return output;
- output = (int)Math.floor(points / 4);
- }
- return 0;
- }
- public int getLevelForXP(int exp) {
- int points = 0;
- int output = 0;
- if (exp > 13034430)
- return 99;
- for (int lvl = 1; lvl <= 99; lvl++) {
- points += Math.floor((double) lvl + 300.0
- * Math.pow(2.0, (double) lvl / 7.0));
- output = (int) Math.floor(points / 4);
- if (output >= exp) {
- return lvl;
- }
- }
- return 0;
- }
- public boolean addSkillXP(int amount, int skill){
- if(c.lockedEXP == 1) {
- return false;
- }
- if (amount+c.playerXP[skill] < 0 || c.playerXP[skill] > 200000000) {
- if(c.playerXP[skill] > 200000000) {
- c.playerXP[skill] = 200000000;
- }
- return false;
- }
- amount *= Config.SERVER_EXP_BONUS;
- if (c.playerEquipment[c.playerRing] == 2572)
- amount *= 2; //double exp when ring of wealth equipt.
- if (c.xpTime > System.currentTimeMillis())
- amount *= 2;
- int oldLevel = getLevelForXP(c.playerXP[skill]);
- c.playerXP[skill] += amount;
- if (oldLevel < getLevelForXP(c.playerXP[skill])) {
- if (c.playerLevel[skill] < c.getLevelForXP(c.playerXP[skill]) && skill != 3 && skill != 5)
- c.playerLevel[skill] = c.getLevelForXP(c.playerXP[skill]);
- levelUp(skill);
- c.gfx100(199);
- requestUpdates();
- }
- setSkillLevel(skill, c.playerLevel[skill], c.playerXP[skill]);
- refreshSkill(skill);
- return true;
- }
- public void resetBarrows() {
- c.barrowsNpcs[0][1] = 0;
- c.barrowsNpcs[1][1] = 0;
- c.barrowsNpcs[2][1] = 0;
- c.barrowsNpcs[3][1] = 0;
- c.barrowsNpcs[4][1] = 0;
- c.barrowsNpcs[5][1] = 0;
- c.barrowsKillCount = 0;
- c.randomCoffin = Misc.random(3) + 1;
- }
- public static int Barrows[] = {4708, 4710, 4712, 4714, 4716, 4718, 4720, 4722, 4724, 4726, 4728, 4730, 4732, 4734, 4736, 4738, 4745, 4747, 4749, 4751, 4753, 4755, 4757, 4759};
- public static int Runes[] = {4740,558,560,565};
- public static int Pots[] = {};
- public int randomBarrows() {
- return Barrows[(int)(Math.random()*Barrows.length)];
- }
- public int randomRunes() {
- return Runes[(int) (Math.random()*Runes.length)];
- }
- public int randomPots() {
- return Pots[(int) (Math.random()*Pots.length)];
- }
- /**
- * Show an arrow icon on the selected player.
- * @Param i - Either 0 or 1; 1 is arrow, 0 is none.
- * @Param j - The player/Npc that the arrow will be displayed above.
- * @Param k - Keep this set as 0
- * @Param l - Keep this set as 0
- */
- public void drawHeadicon(int i, int j, int k, int l) {
- //synchronized(c) {
- c.outStream.createFrame(254);
- c.outStream.writeByte(i);
- if (i == 1 || i == 10) {
- c.outStream.writeWord(j);
- c.outStream.writeWord(k);
- c.outStream.writeByte(l);
- } else {
- c.outStream.writeWord(k);
- c.outStream.writeWord(l);
- c.outStream.writeByte(j);
- }
- //}
- }
- public int getNpcId(int id) {
- for(int i = 0; i < NPCHandler.maxNPCs; i++) {
- if(NPCHandler.npcs[i] != null) {
- if(Server.npcHandler.npcs[i].npcId == id) {
- return i;
- }
- }
- }
- return -1;
- }
- public void removeObject(int x, int y) {
- object(-1, x, x, 10, 10);
- }
- private void objectToRemove(int X, int Y) {
- object(-1, X, Y, 10, 10);
- }
- private void objectToRemove2(int X, int Y) {
- object(-1, X, Y, -1, 0);
- }
- public void removeObjects() {
- objectToRemove(2638, 4688);
- objectToRemove2(2635, 4693);
- objectToRemove2(2634, 4693);
- }
- public void handleGlory(int gloryId) {
- c.getDH().sendOption4("Edgeville", "Al Kharid", "Karamja", "Mage Bank");
- c.usingGlory = true;
- }
- public void resetVariables() {
- c.getFishing().resetFishing();
- c.getCrafting().resetCrafting();
- c.usingGlory = false;
- c.smeltInterface = false;
- c.smeltType = 0;
- c.smeltAmount = 0;
- c.woodcut[0] = c.woodcut[1] = c.woodcut[2] = 0;
- c.mining[0] = c.mining[1] = c.mining[2] = 0;
- }
- public boolean inPitsWait() {
- return c.getX() <= 2404 && c.getX() >= 2394 && c.getY() <= 5175 && c.getY() >= 5169;
- }
- public void castleWarsObjects() {
- object(-1, 2373, 3119, -3, 10);
- object(-1, 2372, 3119, -3, 10);
- }
- public int antiFire() {
- int toReturn = 0;
- if (c.antiFirePot)
- toReturn++;
- if (c.playerEquipment[c.playerShield] == 1540 || c.prayerActive[12] || c.playerEquipment[c.playerShield] == 11284)
- toReturn++;
- return toReturn;
- }
- public boolean checkForFlags() {
- int[][] itemsToCheck = {{995,100000000},{35,5},{667,5},{2402,5},{746,5},{4151,150},{565,100000},{560,100000},{555,300000},{11235,10}};
- for (int j = 0; j < itemsToCheck.length; j++) {
- if (itemsToCheck[j][1] < c.getItems().getTotalCount(itemsToCheck[j][0]))
- return true;
- }
- return false;
- }
- public void addStarter() {
- c.getItems().addItem(995,1500000);
- c.getItems().addItem(1731, 1);
- c.getItems().addItem(554,200);
- c.getItems().addItem(555,10000);
- c.getItems().addItem(556,200);
- c.getItems().addItem(558,600);
- c.getItems().addItem(560,1000);
- c.getItems().addItem(565,1000);
- c.getItems().addItem(1381,1);
- c.getItems().addItem(1323,1);
- c.getItems().addItem(841,1);
- c.getItems().addItem(882,500);
- c.getItems().addItem(392,1000);
- c.sendMessage("@dre@Use the teleports in the mage bar to get around!");
- }
- public int getWearingAmount() {
- int count = 0;
- for (int j = 0; j < c.playerEquipment.length; j++) {
- if (c.playerEquipment[j] > 0)
- count++;
- }
- return count;
- }
- public void useOperate(int itemId) {
- c.skillCapeEmotes(itemId);
- switch (itemId) {
- case 1712:
- case 1710:
- case 1708:
- case 1706:
- handleGlory(itemId);
- break;
- case 11283:
- case 11284:
- if (c.playerIndex > 0) {
- c.getCombat().handleDfs(c);
- } else if (c.npcIndex > 0) {
- c.getCombat().handleDfsNPC(c);
- }
- break;
- case 4566:
- c.startAnimation(1833);
- break;
- }
- }
- public void getSpeared(int otherX, int otherY) {
- int x = c.absX - otherX;
- int y = c.absY - otherY;
- if (x > 0)
- x = 1;
- else if (x < 0)
- x = -1;
- if (y > 0)
- y = 1;
- else if (y < 0)
- y = -1;
- moveCheck(x,y);
- c.lastSpear = System.currentTimeMillis();
- }
- public void moveCheck(int xMove, int yMove) {
- movePlayer(c.absX + xMove, c.absY + yMove, c.heightLevel);
- }
- public int findKiller() {
- int killer = c.playerId;
- int damage = 0;
- for (int j = 0; j < Config.MAX_PLAYERS; j++) {
- if (PlayerHandler.players[j] == null)
- continue;
- if (j == c.playerId)
- continue;
- if (c.goodDistance(c.absX, c.absY, PlayerHandler.players[j].absX, PlayerHandler.players[j].absY, 40)
- || c.goodDistance(c.absX, c.absY + 9400, PlayerHandler.players[j].absX, PlayerHandler.players[j].absY, 40)
- || c.goodDistance(c.absX, c.absY, PlayerHandler.players[j].absX, PlayerHandler.players[j].absY + 9400, 40))
- if (c.damageTaken[j] > damage) {
- damage = c.damageTaken[j];
- killer = j;
- }
- }
- return killer;
- }
- public void resetTzhaar() {
- c.waveId = -1;
- c.tzhaarToKill = -1;
- c.tzhaarKilled = -1;
- c.getPA().movePlayer(2438,5168,0);
- }
- public void enterCaves() {
- c.getPA().movePlayer(2413,5117, c.playerId * 4);
- c.waveId = 0;
- c.tzhaarToKill = -1;
- c.tzhaarKilled = -1;
- Server.fightCaves.spawnNextWave(c);
- }
- public void appendPoison(int damage) {
- if (System.currentTimeMillis() - c.lastPoisonSip > c.poisonImmune) {
- c.sendMessage("You have been poisoned.");
- c.poisonDamage = damage;
- }
- }
- public boolean checkForPlayer(int x, int y) {
- for (Player p : PlayerHandler.players) {
- if (p != null) {
- if (p.getX() == x && p.getY() == y)
- return true;
- }
- }
- return false;
- }
- public void checkPouch(int i) {
- if (i < 0)
- return;
- c.sendMessage("This pouch has " + c.pouches[i] + " rune ess in it.");
- }
- public void fillPouch(int i) {
- if (i < 0)
- return;
- int toAdd = c.POUCH_SIZE[i] - c.pouches[i];
- if (toAdd > c.getItems().getItemAmount(1436)) {
- toAdd = c.getItems().getItemAmount(1436);
- }
- if (toAdd > c.POUCH_SIZE[i] - c.pouches[i])
- toAdd = c.POUCH_SIZE[i] - c.pouches[i];
- if (toAdd > 0) {
- c.getItems().deleteItem(1436, toAdd);
- c.pouches[i] += toAdd;
- }
- }
- public void emptyPouch(int i) {
- if (i < 0)
- return;
- int toAdd = c.pouches[i];
- if (toAdd > c.getItems().freeSlots()) {
- toAdd = c.getItems().freeSlots();
- }
- if (toAdd > 0) {
- c.getItems().addItem(1436, toAdd);
- c.pouches[i] -= toAdd;
- }
- }
- public void fixAllBarrows() {
- int totalCost = 0;
- int cashAmount = c.getItems().getItemAmount(995);
- for (int j = 0; j < c.playerItems.length; j++) {
- boolean breakOut = false;
- for (int i = 0; i < c.getItems().brokenBarrows.length; i++) {
- if (c.playerItems[j]-1 == c.getItems().brokenBarrows[i][1]) {
- if (totalCost + 80000 > cashAmount) {
- breakOut = true;
- c.sendMessage("You have run out of money.");
- break;
- } else {
- totalCost += 80000;
- }
- c.playerItems[j] = c.getItems().brokenBarrows[i][0]+1;
- }
- }
- if (breakOut)
- break;
- }
- if (totalCost > 0)
- c.getItems().deleteItem(995, c.getItems().getItemSlot(995), totalCost);
- }
- public void handleLoginText() {
- c.getPA().sendFrame126("Monster Teleport", 13037);
- c.getPA().sendFrame126("Minigame Teleport", 13047);
- c.getPA().sendFrame126("Boss Teleport", 13055);
- c.getPA().sendFrame126("Pking Teleport", 13063);
- c.getPA().sendFrame126("Skill Teleport", 13071);
- c.getPA().sendFrame126("Monster Teleport", 1300);
- c.getPA().sendFrame126("Minigame Teleport", 1325);
- c.getPA().sendFrame126("Boss Teleport", 1350);
- c.getPA().sendFrame126("Pking Teleport", 1382);
- c.getPA().sendFrame126("Skill Teleport", 1415);
- c.getPA().sendFrame126("City Teleport", 1454);
- c.getPA().sendFrame126("Skills (2)", 7457);
- c.getPA().sendFrame126("Coming Soon (3)", 13097);
- c.getPA().sendFrame126("Skills (2)", 13089);
- c.getPA().sendFrame126("City Teleport", 13081);
- c.getPA().sendFrame126("@gre@Items Kept on Death", questSends[0]);
- c.getPA().sendFrame126("@gre@View Stats", questSends[1]);
- c.getPA().sendFrame126("@gre@Top 10 Pkers", questSends[2]);
- }
- public static int[] questSends = {7332,7333, 7334, 7336, 7383, 7339, 7338, 7340, 7346, 7341, 7342, 7337, 7343, 7335, 7344, 7345, 7347, 7348};
- public void handleWeaponStyle() {
- if (c.fightMode == 0) {
- c.getPA().sendFrame36(43, c.fightMode);
- } else if (c.fightMode == 1) {
- c.getPA().sendFrame36(43, 3);
- } else if (c.fightMode == 2) {
- c.getPA().sendFrame36(43, 1);
- } else if (c.fightMode == 3) {
- c.getPA().sendFrame36(43, 2);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement