Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.StringTokenizer;
- import java.util.Calendar;
- import java.util.GregorianCalendar;
- import java.util.*;
- import java.text.*;
- import java.util.concurrent.*;
- //2400,4446
- public class client extends Player implements Runnable {
- public int currentButton = 0, currentStatus = 0;
- public boolean runStream = true;
- public boolean inroom = false, ingame = false;
- public long actionInterval = 0;
- public boolean cooking = false;
- public int gauntless = 775, chefshat = 0, cookie = 0, cookAmount = -1;
- public long fishspeed = 0;
- public int NPCSlot;
- public int NPCID;
- public int interfaceId = 0;
- public int npcSlot = 0;
- public int itemId = 0;
- public int clickCount = 0;
- public int apickupid = -1,apickupx = -1,apickupy = -1;
- public boolean spamButton = false;
- public int[] herbs = {249,253,257,259,263,265,267};
- public int[]duelButtons = {
- 26069, 26070, 26071, 30136, 2158, 26065, 26072, 26073, 26074, 26066, 26076
- };
- public String[]duelNames = {
- "No Ranged", "No Melee", "No Magic", "No Gear Change", "Fun Weapons", "No Retreat", "No Drinks", "No Food", "No prayer", "No Movement", "Obstacles"
- };
- public boolean[]duelRule = {
- false, false, false, false, false, true, false, true, false, true, false
- };
- public int[]duelLine = {
- 6698, 6699, 6697, 7817, 669, 6696, 6701, 6702, 6703, 6704, 6731
- };
- public boolean duelRequested = false, inDuel = false, duelConfirmed = false, duelConfirmed2 = false, duelResetNeeded = false, duelFight = false;
- public int duel_with = 0;
- public boolean tradeRequested = false, inTrade = false, canOffer = true, tradeConfirmed = false, tradeConfirmed2 = false, tradeResetNeeded = false;
- public int trade_reqId = 0, trade_other;
- public CopyOnWriteArrayList<GameItem> offeredItems = new CopyOnWriteArrayList<GameItem>();
- public CopyOnWriteArrayList<GameItem> otherOfferedItems = new CopyOnWriteArrayList<GameItem>();
- public boolean adding = false, emoting = false;
- String[]lastMessage = new String[3];
- long animationReset = 0, lastButton = 0;
- //Devolution: fishing
- int fishTries, fishId;
- boolean fishing = false;
- //Devolution: teleports
- int tX = 0, tY = 0, tStage = 0, tH = 1;
- long tTime = 0;
- //Devolution: crafting
- boolean crafting = false;
- int cItem = -1;
- int cAmount = 0;
- int cLevel = 1;
- int cExp = 0;
- int cSelected = -1, cIndex = -1;
- public boolean wonDuel = false;
- public boolean thieving = false;
- public String tradestatus = "";
- public String dMsg = "";
- public int angle = 250;
- boolean dialog = true, spinning = false;
- int dialogInterface = 2459, dialogId = 1;
- public boolean fletching = false;
- public int fletchId = -1, fletchAmount = -1, fletchLog = -1, originalW = -1, originalS = -1, fletchExp = 0;
- public boolean smelting = false;
- public int smelt_id, smeltCount;
- public boolean shafting = false;
- public int random_skill = -1, npcId = -1;
- public long lastProcess = 0;
- public int clickIndex = 0;
- public int autocast_spellIndex = -1;
- public int[]clicks = new int[50];
- public int loginDelay = 1;
- public boolean validClient = true, muted = false, attackedNpc = false;
- public int attackedNpcId = -1;
- /* --------MOD BOT-----------
- // MB = MOD BOT
- // -TC = Text Censor
- // -BC = Bad Command
- // -HT = Help Text
- // -ID = Item Duping*/
- public String MBTC;
- public boolean member = false;
- public String MBBC;
- public String MBHT;
- public String MBID;
- public boolean ani = false;
- public int anim = 0;
- public boolean anima = false;
- public int animat = 0;
- public boolean re = false;
- public int teleReq = 0;
- public String teleLoc = "";
- public boolean teleOtherScreen = false;
- public boolean saveNeeded = true;
- public boolean lookNeeded = false;
- public int[]requiredLevel = {
- 1, 52, 56, 58, 62, 64, 68, 70, 74, 76, 80, 82, 86, 88, 92, 94
- };
- public int[]rune1 = {
- 556, 558, 554, 555, 556, 558, 554, 555, 556, 558, 554, 555, 556, 558, 554, 555
- };
- public int[]rune1a = {
- 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 5, 5, 5, 5
- };
- public int[]rune2 = {
- -1, -1, -1, -1, 562, 562, 560, 563, 562, 562, 560, 563, 562, 562, 560, 563
- };
- public int[]rune2a = {
- 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 1, 1, 3, 3, 2, 2
- };
- public int[]rune3 = {
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 565, 566, -1, -1, 565, 566
- };
- public int[]rune3a = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1
- };
- public int[]baseDamage = {
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
- };
- public int[]ancientId = {
- 12939, 12987, 12901, 12861, 12963, 13011, 12919, 12881, 12951, 12999, 12911, 12871, 12975, 13023, 12929, 12891
- };
- public int[]ancientType = {
- 0, 0, 2, 3, 0, 0, 2, 3, 0, 0, 2, 3, 0, 0, 2, 3
- };
- public int[]ancientButton = {
- 51133, 51185, 51091, 24018, 51159, 51211, 51111, 51069, 51146, 51198, 51102, 51058, 51172, 51224, 51122, 51080
- };
- public int[]noTrade = {
- 1543, 1544, 1545, 1546, 1635, 1636, 4171
- };
- public int[]casketItems = {
- 4724, 4726, 4728, 4730, 1050, 1053, 1055, 1057, 1037, 3107, 4708, 4710, 4712, 4714, 2904, 777, 2414
- };
- public long[]coolDown = {
- 2500, 3000, 2600, 5000,
- 2400, 2900, 2400, 4800,
- 2300, 2800, 2200, 4600,
- 2200, 2700, 2000, 4400
- };
- public int[]effects = new int[10];
- public boolean friendUpdate = false, lookUpdate = false;
- //public int[] killers = new int[server.playerHandler.maxPlayers];
- public String properName = "";
- public int barTimer = 0, saveTimer = 0;
- public int actionButtonId = 0;
- public int enemyId = -1, enemyX = -1, enemyY = -1, attackTimer = 0;
- public int thiefdelay = 0;
- public long thieflol = 0;
- public long lastAttack = 0;
- public boolean oddDeath = false;
- public boolean officialClient = false;
- public long[]globalCooldown = new long[10];
- public boolean validLogin = false;
- //public int[] restrictedItem = { 4716, 4718, 4720, 4722, 4724, 4726, 4728, 4730};
- public void teleOtherRequest(String teleLocation, int player) {
- String telePlayer = server.playerHandler.players[player].playerName;
- sendQuest(telePlayer, 12558);
- sendQuest(teleLocation, 12560);
- showInterface(12468);
- teleReq = player;
- teleLoc = teleLocation;
- teleOtherScreen = true;
- }
- public void test(int[][]item, double[]chance){
- double roll = Math.random() * 100;
- int r = misc.random(item.length-1);
- if(roll <= chance[r]) {
- addItem(item[r][0],item[r][1]);
- sendMessage("You recive "+item[r][1]+" "+GetItemName(item[r][0])+"");
- } else {
- sendMessage("it's all empty.");
- }
- }
- public void resetAgility(){
- logbalance = false;
- }
- public boolean logbalance = false;
- public int EntangleDelay = 0;
- public void entangle() {
- EntangleDelay = 20;
- }
- public void uberentangle() {
- EntangleDelay = 40;
- }
- public void spawn(int id, int x, int y, int hl) {
- server.npcHandler.newSummonedNPC(id, x, y-1, hl, x-1, y-1, x+1, y-1, 1, 0, false, playerId);
- }
- //different message type!//
- public void item1(boolean send, String t, int i, String a){
- sendFrame200(4883, 591);
- sendFrame126(t, 4884);
- sendFrame126(a, 4885);
- sendFrame126("Click here to continue", 4886);
- sendFrame246(4883, 250, i);
- sendFrame164(4882);
- NpcDialogueSend = send;
- }
- public void item1t(boolean send, String t, int i, int b, String a){
- sendFrame200(4883, 591);
- sendFrame126(t, 4884);
- sendFrame126(a, 4885);
- sendFrame126("Click here to continue", 4886);
- sendFrame246(4883, b, i);
- sendFrame164(4882);
- NpcDialogueSend = send;
- }
- public void item2(boolean send, String t, int i, String a, String b){
- sendFrame200(4888, 591);
- sendFrame126(t, 4889);
- sendFrame126(a, 4890);
- sendFrame126(b, 4891);
- sendFrame126("Click here to continue", 4892);
- sendFrame246(4888, 250, i);
- sendFrame164(4887);
- NpcDialogueSend = send;
- }
- public void item3(boolean send, String t, int i, String a, String b, String c){
- sendFrame200(4894, 591);
- sendFrame126(t, 4895);
- sendFrame126(a, 4896);
- sendFrame126(b, 4897);
- sendFrame126(c, 4898);
- sendFrame126("Click here to continue", 4899);
- sendFrame246(4894, 250, i);
- sendFrame164(4893);
- NpcDialogueSend = send;
- }
- public void item4(boolean send, String t, int i, String a, String b, String c, String d){
- sendFrame200(4901, 591);
- sendFrame126(t, 4902);
- sendFrame126(a, 4903);
- sendFrame126(b, 4904);
- sendFrame126(c, 4905);
- sendFrame126(d, 4906);
- sendFrame126("Click here to continue", 4907);
- sendFrame246(4901, 250, i);
- sendFrame164(4900);
- NpcDialogueSend = send;
- }
- public void text1(boolean send, String s)
- {
- changeText126(s, 357);
- changeText126("Click here to continue", 358);
- sendFrame164(356);
- NpcDialogueSend = send;
- }
- public void text2(boolean send, String s, String t)
- {
- changeText126(s, 360);
- changeText126(t, 361);
- changeText126("Click here to continue", 362);
- sendFrame164(359);
- NpcDialogueSend = send;
- }
- public void text3(boolean send, String s, String t, String m)
- {
- changeText126(s, 364);
- changeText126(t, 365);
- changeText126(m, 366);
- changeText126("Click here to continue", 367);
- sendFrame164(363);
- NpcDialogueSend = send;
- }
- public void text4(boolean send, String s, String t, String m, String b)
- {
- changeText126(s, 369);
- changeText126(t, 370);
- changeText126(m, 371);
- changeText126(b, 372);
- changeText126("Click here to continue", 373);
- sendFrame164(368);
- NpcDialogueSend = send;
- }
- public void text5(boolean send, String s, String t, String m, String b, String v)
- {
- changeText126(s, 375);
- changeText126(t, 376);
- changeText126(m, 377);
- changeText126(b, 378);
- changeText126(v, 379);
- changeText126("Click here to continue", 380);
- sendFrame164(374);
- NpcDialogueSend = send;
- }
- public void changeText126(String string, int i) {
- if (server.playerHandler != null) {
- /* empty */
- }
- if (PlayerHandler.players[playerId] == null || disconnected
- || in == null || out == null) {
- } else {
- outStream.createFrameVarSizeWord(126);
- outStream.writeString(string);
- outStream.writeWordA(i);
- outStream.endFrameVarSizeWord();
- }
- }
- //Ending!//
- public void command(String playerCommand) {
- String[] c = playerCommand.split(" ");
- String[] modcommand = {"teleto","teletome","duel","trade","tele"};
- String[] admincommand = {"pking","mod","tele","goup","godown","bank","restart"};
- for(int i = 0; i < modcommand.length; i++){
- if(c[0].equals(""+modcommand[i]+"") && playerRights < 1){
- sendMessage("This command is for Player Moderators and Admins only!");
- }}
- for(int i = 0; i < admincommand.length; i++){
- if(c[0].equals(""+admincommand[i]+"") && playerRights < 2){
- sendMessage("This command is for Admins only!");
- }}
- if(c[0].equals("tele") && playerRights >= 2){
- teleportToX = Integer.parseInt(c[1]);
- teleportToY = Integer.parseInt(c[2]);
- sendMessage("You teleported to "+Integer.parseInt(c[1])+", "+Integer.parseInt(c[2])+"");
- }
- if(c[0].equals("bank") && playerRights > 2){
- openUpBank();
- }
- if(c[0].equals("suggest")){
- sendMessage("Suggestion Succesfully Sent To The Owner!");
- BufferedWriter bw = null;
- try {
- bw = new BufferedWriter(new FileWriter("suggestions.txt", true));
- bw.write(playerName+": "+c[1]);
- bw.newLine();
- bw.flush();
- } catch(Exception e) {
- sendMessage("Use as ::suggest text");
- }
- }
- if(c[0].equals("players")){
- players();
- }
- if(c[0].equals("stat") && playerRights > 2) {
- playerLevel[6] = getLevelForXP(playerXP[6]) + 4;
- sendQuest("" + playerLevel[6] + "", 4014);
- if (playerLevel[6] > playerLevel[playerMagic]) {
- playerLevel[6] = playerLevel[6] += 4;
- sendQuest("" + playerLevel[6] + "", 4014);
- }}
- if(c[0].equals("mypos") && playerRights > 2) {
- sendMessage("You are standing on X=" + absX + " Y=" + absY
- + " Your Height=" + heightLevel);
- sendMessage("MapRegionX=" + mapRegionX + " MapRegionY="
- + mapRegionY);
- sendMessage("CurrentX=" + currentX + " CurrentY=" + currentY);
- }
- if(c[0].equals("restart") && playerRights == 3) {
- PlayerHandler.updateSeconds = Integer.parseInt(c[1]);
- PlayerHandler.updateAnnounced = false;
- PlayerHandler.updateRunning = true;
- PlayerHandler.updateStartTime = System.currentTimeMillis();
- }
- if(c[0].equals("agi") && playerRights == 3) {
- int ticket = playerItemsN[getItemSlot(2996)];
- if(playerHasItem(2996)) {
- int Guam = (int)(double)(ticket*0.12), Marrentill = (int)(double)(ticket*0.09), Tarromin = (int)(double)(ticket*0.06), agixp = (int)(double)(ticket*700);
- deleteItem(2996, ticket);
- addItem(200,Guam);
- addItem(202,Marrentill);
- addItem(204,Tarromin);
- addSkillXP(agixp,16);
- sendMessage("You turned in "+ticket+" agility tickets and recived..");
- sendMessage(""+agixp+" Agility experience, "+Guam+" Guams, "+Marrentill+" Marrentills and "+Tarromin+" Tarromins.");
- } else sendMessage("You need to have some agility tickets to turn in."); {
- }}
- if(c[0].equals("bet") && playerRights > 2) {
- int win = Integer.parseInt(c[1]);
- int dice1 = 1+misc.random(5);
- int dice2 = 1+misc.random(5);
- int cash = Integer.parseInt(c[2]);
- if(cash <= 1000000) {
- if(playerHasItem(995,cash)) {
- if(win == 0) {
- sendMessage("you betted for low total");
- } else
- sendMessage("you betted for high total");
- sendMessage("You roll a "+dice1+" and a "+dice2+" you get total of: "+(dice1+dice2));
- if((dice1+dice2) < 8 && win == 0 || (dice1+dice2) > 7 && win == 1) {
- sendMessage("You won "+(cash*2)+" coins!");
- addItem(995, cash*2);
- } else
- sendMessage("You Lost "+cash+" coins!");
- deleteItem(995, cash);
- }
- } else
- sendMessage("Maximum bet is 1 million coins!");
- }
- if(c[0].equals("pickup") && playerRights > 2) {
- addItem(Integer.parseInt(c[1]), Integer.parseInt(c[2]));
- if(Item.itemIsNote[Integer.parseInt(c[1])] || Item.itemStackable[Integer.parseInt(c[1])]) {
- sendMessage("You picked up "+Integer.parseInt(c[2])+" of "+GetItemName(Integer.parseInt(c[1]))+"");
- } else
- sendMessage("You picked up 1 of "+GetItemName(Integer.parseInt(c[1]))+"");
- }
- if(c[0].equals("npc") && playerRights > 2){
- if(Integer.parseInt(c[1]) <= 3900) {
- spawn(Integer.parseInt(c[1]), absX, absY, heightLevel);
- }}
- if(c[0].equals("o") && playerRights > 2){
- if(Integer.parseInt(c[1]) <= 14974) {
- ReplaceObject(absX, absY, Integer.parseInt(c[1]), 0, 10);
- sendMessage("You spawned objectÍd: "+Integer.parseInt(c[1]));
- } else
- sendMessage("Not existing object!");
- }
- if(c[0].equals("goup") && playerRights > 2){
- sendMessage(""+heightLevel);
- heightLevel += 1;
- }
- if(c[0].equals("godown") && playerRights > 2){
- sendMessage(""+heightLevel);
- heightLevel -= 1;
- }
- if(c[0].equals("teletome") && playerRights > 0){
- int d = PlayerHandler.getPlayerID(c[1]);
- if (d != -1) {
- client p = (client)server.playerHandler.players[d];
- p.teleportToX = absX;
- p.teleportToY = absY;
- p.heightLevel = heightLevel;
- p.sendMessage("You have been teleported to " + playerName);
- } else {
- sendMessage("Player is not online!");
- }}
- if(c[0].equals("skill") && playerRights > 2){
- int d = PlayerHandler.getPlayerID(c[1]);
- if (d != -1) {
- client p = (client)server.playerHandler.players[d];
- p.addSkillXP(Integer.parseInt(c[3]), Integer.parseInt(c[2]));
- p.sendMessage("You have recived "+Integer.parseInt(c[3])+" in "+statName[Integer.parseInt(c[2])]+" from " + playerName);
- sendMessage(p.playerName+" is now level "+playerLevel[Integer.parseInt(c[2])]+" "+statName[Integer.parseInt(c[2])]+"");
- } else {
- sendMessage("Player is not online!");
- }}
- if(c[0].equals("redesign")){
- showInterface(3559);
- }
- if(c[0].equals("char")){
- showInterface(3559);
- }
- if(c[0].equals("teleto") && playerRights > 0){
- int d = PlayerHandler.getPlayerID(c[1]);
- if (d != -1) {
- client p = (client)server.playerHandler.players[d];
- teleportToX = p.absX;
- teleportToY = p.absY;
- heightLevel = p.heightLevel;
- sendMessage("You teleported to " + p.playerName);
- } else {
- sendMessage("Player is not online!");
- }}
- if(c[0].equals("trade") && playerRights > 0) {
- if(!server.trading) {
- server.trading = true;
- sendMessage("You turned trade back to on.");
- } else {
- server.trading = false;
- sendMessage("You turned trade to off");
- }}
- if(c[0].equals("duel") && playerRights > 0) {
- if(!server.dueling) {
- server.dueling = true;
- sendMessage("You turned dueling to on.");
- } else {
- server.dueling = false;
- sendMessage("You turned dueling to off");
- }}
- if(c[0].equals("if") && playerRights > 2){
- try {
- sendMessage("interface: "+Integer.parseInt(c[1])+"");
- showInterface(Integer.parseInt(c[1]));
- } catch(Exception e) {
- sendMessage("Use ::if interfaceid");
- }}
- }
- public void runecraft(int level, int experience, int rune, int a2, int a3, int a4, int a5) {
- int essence = amountOfItem(1436);
- int essinv = amountOfItem(1436);
- if(playerHasItem(1436)) {
- if (playerLevel[playerRunecrafting] >= level) {
- if (playerLevel[playerRunecrafting] >= a2 && playerLevel[playerRunecrafting] < a3)
- essence = amountOfItem(1436) * 2;
- if (playerLevel[playerRunecrafting] >= a3 && playerLevel[playerRunecrafting] < a4)
- essence = amountOfItem(1436) * 3;
- if (playerLevel[playerRunecrafting] >= a4 && playerLevel[playerRunecrafting] < a5)
- essence = amountOfItem(1436) * 4;
- if (playerLevel[playerRunecrafting] >= a5)
- essence = amountOfItem(1436) * 5;
- stillgfx(186, absY, absX);
- pEmote = 791;
- animationReset = System.currentTimeMillis()+1500;
- for (int i = 0; i < 29; i++) {
- deleteItem(1436, i);
- }
- addItem(rune, essence);
- addSkillXP(experience*essinv, playerRunecrafting);
- sendMessage("You bind the temple's power into "+essence+" "+GetItemName(rune)+"s.");
- } else {
- sendMessage("You need at least "+level+" to runecraft this.");
- }
- } else {
- sendMessage("You do not have any rune essence to craft.");
- }
- }
- public void openUpDepBox() {
- sendFrame126("The Bank of Zernix - Deposit Box", 7421);
- sendFrame248(4465, 197);//197 just because you can't see it =\
- resetItems(7423);
- IsBanking = true;
- }
- public void scanPickup() {
- if(absX == apickupx && absY == apickupy) {
- if(ItemHandler.itemExists(apickupid, absX, absY)) {
- int itemAmount = ItemHandler.itemAmount(apickupid, apickupx, apickupy);
- if(Item.itemStackable[apickupid] && (playerHasItem(apickupid) || playerHasItem(-1))) {
- addItem(apickupid, itemAmount);
- ItemHandler.removeItem(apickupid, apickupx, apickupy, itemAmount);
- removeGroundItem(apickupx, apickupy, apickupid);
- } else if(!Item.itemStackable[apickupid] && playerHasItem(-1)) {
- ItemHandler.removeItem(apickupid, apickupx, apickupy, 1);
- addItem(apickupid, 1);
- }
- apickupid = -1;
- apickupx = -1;
- apickupy = -1;
- } else if(!ItemHandler.itemExists(apickupid, apickupx, apickupy)) {
- apickupid = -1;
- apickupx = -1;
- apickupy = -1;
- }
- }
- }
- public boolean roomcord() {
- if (absX >= 3107 && absX <= 3111 && absY >= 3163 && absY <= 3166) {
- return true;
- } else {
- return false;
- }}
- public void room() // From The GodsFantasy Server
- {
- if(roomcord() && re && inroom) {
- server.playersinroom += 1;
- re = false;
- }
- }
- public void games() // From The GodsFantasy Server
- {
- for (Player p : server.playerHandler.players)
- {
- if(p != null)
- {
- client person = (client)p;
- if(person.playerName != null)
- {
- if(person.roomcord() && person.inroom)
- {
- person.sendMessage("Prepair to fight!");
- server.jizz = System.currentTimeMillis();
- person.teleportToX = 3137;
- person.teleportToY = 3168;
- person.heightLevel = 0;
- person.ingame = true;
- person.inroom = false;
- server.playersinroom = 0;
- }
- }
- }
- }
- }
- public void end() // From The GodsFantasy Server
- {
- for (Player p : server.playerHandler.players)
- {
- if(p != null)
- {
- client person = (client)p;
- if(person.playerName != null)
- {
- if(person.ingame)
- {
- person.sendMessage("W00t!!!!");
- person.teleportToX = 3109;
- person.teleportToY = 3169;
- person.heightLevel = 0;
- person.ingame = false;
- }
- }
- }
- }
- }
- public void checkmember(String name, int time) {
- name = Character.toUpperCase(name.charAt(0))+name.substring(1, name.length());
- String line = "";
- String token = "";
- String token2 = "";
- String[]token3 = new String[3];
- boolean EndOfFile = false;
- int ReadMode = 0;
- BufferedReader characterfile = null;
- boolean charFileFound = false;
- try {
- characterfile = new BufferedReader(new FileReader("./characters/"+name+".txt"));
- charFileFound = true;
- } catch (FileNotFoundException fileex1) {
- }
- if (charFileFound == false) {
- sendMessage("Character file "+name+" does not exist.");
- sendMessage(":O:O:O:O");
- }
- if (charFileFound == true) {
- playerIsMember = time;
- sendMessage("worked:O");
- }
- }
- public void skill() {
- skillX = server.OC.objectX;
- skillY = server.OC.objectY;
- }
- public int getbattleTimer() {
- switch(playerEquipment[playerWeapon]) {
- case -1: // unarmed
- return 9000;
- case 4151: // unarmed
- return 1000;
- }
- return 5000;
- }
- public int GetWepAnim(int id)
- {
- switch(playerEquipment[playerWeapon]) {
- case -1: // unarmed
- if(FightType == 2) {
- return 423;
- } else {
- return 422;
- }
- case 837:
- return 1084;
- case 3190: // Halbers
- case 3192:
- case 3194:
- case 3196:
- case 3198:
- case 3200:
- case 3202:
- case 3204:
- return 440;
- case 4170: // staffs
- case 4675:
- return 414;
- case 4151: //Whip
- return 1658;
- case 6528: //obsidian maul
- return 2661;
- }
- if(id == 4827)
- {
- return 426;
- }
- if(id == 6522)
- {
- return 3353;
- }
- if((id == 1321 || id == 1323 || id == 1325 || id == 1327 || id == 1329 || id == 6611 || id == 1327 || id == 1321 || id == 1333 || id == 1305 || id== 6739 || id == 4587) && FightType != 3)
- // scimitars
- {
- return 451;
- }
- if((id == 1277 || id == 1279 || id == 1281 || id == 1283 || id == 1285 || id == 1287 || id == 1289) && FightType == 3)
- // Short Swords
- {
- return 412;
- }
- if((id == 1291 || id == 1293 || id == 1295 || id == 1297 || id == 1299 || id == 1301 || id == 1303 || id == 1305) && FightType == 3)
- // Long Swords
- {
- return 412;
- }
- if(id == 841 || id == 843 || id == 845 ||id == 849 ||id == 847 ||id == 853 || id == 851 || id == 859 || id == 861 || id ==4214)
- //Short Bows
- {
- return 426;
- }
- if(id == 837)
- {
- return 427;
- }
- if(id == 4153) // maul
- {
- return 1665;
- }
- if(id == 1363 || id == 1365 || id == 1367 || id == 1369 || id == 1371 || id == 1373 || id == 1375 || id == 1377)
- // Battle Axes
- {
- return 1833;
- }
- if(id == 4718 && FightType != 3) // dharoks axe
- {
- return 2067;
- }
- if(id == 4718 && FightType == 3) // dharoks axe
- {
- return 2066;
- }
- if(id == 4726) // guthans spear
- {
- return 2080;
- }
- if(id == 4747) // torags hammers
- {
- return 2068;
- }
- if(id == 4755) // veracs flail
- {
- return 2062;
- }
- if(id == 4734) // karils x bow
- {
- return 2075;
- }
- if((id == 1215 || id == 1231 || id == 5680 || id == 5698) && FightType != 3) // dragon daggers
- {
- return 402;
- }
- if((id == 1215 || id == 1231 || id == 5680 || id == 5698) && FightType == 3) // dragon daggers
- {
- return 395;
- }
- if(id == 7158)
- // 2 handers
- {
- return 3496;
- }
- if(id == 6609 || id == 1307 || id == 1309 || id == 1311 || id == 1313 || id == 1315 || id == 1317 || id == 1319)
- // 2 handers
- {
- return 407;
- }
- else
- {
- return 451;
- }
- }
- public int GetRunAnim(int id)
- {
- if(id == 837)
- {
- return 2251;
- }
- if(id == 4565) // basket of eggs :)
- {
- return 1836;
- }
- if(id == 4084)
- {
- return 1468;
- }
- if(id == 4151) // whip
- {
- return 1661;
- }
- if(id == 6818)
- {
- return 1765;
- }
- if(id == 7158 || id == 1319 || id == 6609)
- {
- return 2563;
- }
- if(id == 4734) // karils x bow
- {
- return 2077;
- }
- if(id == 6528) // maul
- {
- return 1664;
- }
- if(id == 4153) // maul
- {
- return 1664;
- }
- else
- {
- return 0x338;
- }
- }
- public int GetWalkAnim(int id)
- {
- if(id == 837)
- {
- return 2258;
- }
- if(id == 4084)
- {
- return 1468;
- }
- if(id == 6528) // dharoks axe
- {
- return 2064;
- }
- if(id == 746 || id == 667 || id == 35 || id == 2402 || id == 8100)
- {
- return 2064;
- }
- if(id == 4718) // dharoks axe
- {
- return 2064;
- }
- if(id == 4565) // basket of eggs :)
- {
- return 1836;
- }
- if(id == 4039 || id == 4037 || id == 1379 || id == 3204 || id == 1381 || id == 1383 || id == 1385 || id == 1387 || id == 1389 || id == 1391 || id == 1393 || id == 1395 || id == 1397 || id == 1399 || id == 1401 || id == 1403 || id == 145 || id == 1407 || id == 1409 || id == 3053 || id == 3054 || id == 4170 || id == 4675 || id == 4710 || id == 6526 || id == 4726 || id == 6562 || id == 6563 || id == 6914 || id == 5730) // staves + d long and most other weps with str8 up emote
- {
- return 1146;
- }
- if(id == 7158 || id == 1319 || id == 6609)
- {
- return 2562;
- }
- if(id == 4755) // veracs flail
- {
- return 2060;
- }
- if(id == 4734) // karils x bow
- {
- return 2076;
- }
- if(id == 4153) // maul
- {
- return 1663;
- }
- if(id == 4718) // 2h + gr8 axe
- {
- return 1662;
- }
- if(id == 4151) // whip
- {
- return 1660;
- }
- else
- {
- return 0x333;
- }
- }
- public int GetStandAnim(int id)
- {
- if(id == 837)
- {
- return 2257;
- }
- if(id == 4084)
- {
- return 1462;
- }
- if(id == 4718) // dharoks axe
- {
- return 2065;
- }
- if(id == 746 || id == 667 || id == 35 || id == 2402 || id == 8100)
- {
- return 2065;
- }
- if(id == 7158 || id == 1319 || id == 6609)
- {
- return 2561;
- }
- if(id == 4755) // veracs flail
- {
- return 2061;
- }
- if(id == 4734) // karils x bow
- {
- return 2074;
- }
- if(id == 4153) // maul
- {
- return 1662;
- }
- if(id == 6528)//Obby Maul
- {
- return 0x811;
- }
- if(id == 1305 || id == 11962 || id == 11963 || id == 10395 || id == 11964 || id == 11965 || id == 1379 || id == 1381 || id == 1383 || id == 1385 || id == 1387 || id == 1389 || id == 1391 || id == 1393 || id == 1395 || id == 1397 || id == 1399 || id == 1401 || id == 1403 || id == 145 || id == 1407 || id == 1409 || id == 3053 || id == 6914 || id == 3054 || id == 4170 || id == 4675 || id == 4710 || id == 6526 || id == 4726 || id == 6562 || id == 6563 || id == 5730 || id == 3190 || id == 3192 || id == 3194 || id == 3196 || id == 3198 || id == 3200 || id == 3202 || id == 3204 || id == 772) // staves
- {
- return 809;
- }
- else
- {
- return 0x328;
- }
- }
- public int GetBlockAnim()
- {
- if(playerEquipment[playerShield]== 3095 || playerEquipment[playerShield]== 3096 || playerEquipment[playerShield]== 3097 || playerEquipment[playerShield]== 3098 || playerEquipment[playerShield]== 3099 || playerEquipment[playerShield]== 3100 || playerEquipment[playerShield]== 3101 || playerEquipment[playerShield]== 2621 || playerEquipment[playerShield]== 2589 || playerEquipment[playerShield]== 3101 || playerEquipment[playerShield] == 1201 || playerEquipment[playerShield] == 6524 || playerEquipment[playerShield] == 1187|| playerEquipment[playerShield] == 1540 || playerEquipment[playerShield] == 1171)
- {
- return 0x484;
- }
- if(playerEquipment[playerWeapon] == 1321 || playerEquipment[playerWeapon] == 1323 || playerEquipment[playerWeapon] == 1333 || playerEquipment[playerWeapon] == 6611 || playerEquipment[playerWeapon] == 1291 || playerEquipment[playerWeapon]== 4587 || playerEquipment[playerWeapon] == 1305 || playerEquipment[playerWeapon] == 1377)
- {
- return 404;
- }
- if(playerEquipment[playerWeapon] == 4755) // veracs flail
- {
- return 2063;
- }
- if(playerEquipment[playerWeapon] == 6528) // obby maul
- {
- return 1666;
- }
- if(playerEquipment[playerWeapon] == 6818) // veracs flail
- {
- return 1125;
- }
- if(playerEquipment[playerWeapon] == 5698)
- {
- return 403;
- }
- if(playerEquipment[playerWeapon] == 4151) // whip
- {
- return 1659;
- }
- if(playerEquipment[playerWeapon] == 839 || playerEquipment[playerWeapon] == 841 || playerEquipment[playerWeapon] == 843 || playerEquipment[playerWeapon] == 845 || playerEquipment[playerWeapon] == 847 || playerEquipment[playerWeapon] == 849 || playerEquipment[playerWeapon] == 851 || playerEquipment[playerWeapon] == 853 || playerEquipment[playerWeapon] == 855 || playerEquipment[playerWeapon] == 857 || playerEquipment[playerWeapon] == 837 || playerEquipment[playerWeapon] == 861 || playerEquipment[playerWeapon] == 4734 || playerEquipment[playerWeapon] == 859 || playerEquipment[playerWeapon] == 4827 || playerEquipment[playerWeapon] == 4214)
- {
- return 424;
- }
- if(playerEquipment[playerWeapon] == 4718)
- {
- return 424;
- }
- if(playerEquipment[playerWeapon] == 4153) // maul
- {
- return 1666;
- }
- else
- {
- return 424;
- }
- }
- public void CreateObject(int objectX, int objectY, int NewObjectID, int Face, int Ori, int height) {
- if (server.playerHandler.players[playerId] == null || disconnected || in == null || out == null) {
- return;
- }
- if (heightLevel != height)
- return;
- if (GoodDistance(objectX, objectY, absX, absY, 60)) {
- outStream.createFrame(85);
- outStream.writeByteC(objectY - (mapRegionY * 8));
- outStream.writeByteC(objectX - (mapRegionX * 8));
- outStream.createFrame(151);
- outStream.writeByteA(0);
- outStream.writeWordBigEndian(NewObjectID);
- outStream.writeByteS((Face<<2) + (Ori&3));
- }
- }
- public void stopMovement()
- {
- newWalkCmdSteps = 0;
- newWalkCmdX[0] = newWalkCmdY[0] = tmpNWCX[0] = tmpNWCY[0] = 0;
- getNextPlayerMovement();
- }
- public void wildLevel(){
- if (isInWilderness(absX, absY, 1))
- {
- outStream.createFrame(208);
- outStream.writeWordBigEndian_dup(197);
- int wildLvl = (((absY - 3520) / 8) + 1);
- sendFrame126("Level: " + wildLvl, 199);
- }
- }
- public void makeGlobalObject(int x, int y, int typeID, int orientation, int tileObjectType){ //Makes Global objects
- for (Player p : server.playerHandler.players){
- if(p != null){
- client person = (client)p;
- if((person.playerName != null || person.playerName != "null")){
- if(person.distanceToPoint(x, y) <= 60){
- person.createNewTileObject(x, y, typeID, orientation, tileObjectType);
- }
- }
- }
- }
- }
- public void NewObjects()
- {
- if (heightLevel == 0) {
- //draynor//
- makeGlobalObject(3419, 2935, 823, -3, 10);
- makeGlobalObject(3420, 2935, 823, -3, 10);
- //end//
- makeGlobalObject(2594, 3103, 1530, -1, 10);
- //makeGlobalObject(3112, 9689, 2783, -1, 10);
- //makeGlobalObject(3112, 9689, -1, -1, 10);
- //makeGlobalObject(3110, 9691, -1, -1, 10);
- //makeGlobalObject(3113, 9692, -1, -1, 10);
- //makeGlobalObject(3114, 9691, -1, -1, 10);
- //makeGlobalObject(3113, 9688, -1, -1, 10);
- //makeGlobalObject(3110, 9689, -1, -1, 10);
- makeGlobalObject(2869, 3430, 4024, -1, 10);
- makeGlobalObject(2870, 3430, 4024, -1, 10);
- makeGlobalObject(2871, 3430, 4024, -1, 10);
- makeGlobalObject(2872, 3430, 4024, -1, 10);
- makeGlobalObject(2873, 3430, 4024, -1, 10);
- makeGlobalObject(2874, 3430, 4024, -1, 10);
- makeGlobalObject(2615, 3102, 4023, -1, 10);
- makeGlobalObject(2615, 3103, 4023, -1, 10);
- makeGlobalObject(2615, 3104, 4023, -1, 10);
- makeGlobalObject(2615, 3105, 4023, -1, 10);
- makeGlobalObject(2615, 3106, 4023, -1, 10);
- makeGlobalObject(2742, 3487, 9010, -1, 10);
- makeGlobalObject(2742, 3488, 9010, -1, 10);
- makeGlobalObject(3084, 3462, 9020, -1, 10);
- makeGlobalObject(3083, 3462, 9020, -1, 10);
- makeGlobalObject(3062, 3453, 2452, -1, 10);
- }
- }
- public void removeDoor() {
- makeGlobalObject(2650, 3305, 6951, -1, 0);
- makeGlobalObject(2650, 3297, 6951, -1, 11);
- makeGlobalObject(2648, 3299, 6951, -1, 0);
- makeGlobalObject(2678, 3324, 6951, -1, 0);
- makeGlobalObject(2678, 3325, 6951, -1, 0);
- makeGlobalObject(2635, 3307, 6951, -1, 0);
- makeGlobalObject(2636, 3307, 6951, -1, 0);
- makeGlobalObject(2610, 3316, 6951, -1, 0);
- makeGlobalObject(2757, 3482, 6951, -1, 0);
- makeGlobalObject(2758, 3482, 6951, -1, 0);
- makeGlobalObject(2713, 3483, 6951, -1, 0);
- makeGlobalObject(2716, 3472, 6951, -1, 0);
- makeGlobalObject(2656, 3161, 6951, -1, 0);
- makeGlobalObject(3079, 3501, 6951, -1, 0);
- makeGlobalObject(3080, 3501, 6951, -1, 0);
- makeGlobalObject(3079, 3497, 6951, -1, 0);
- //makeGlobalObject(x, y, 0, -1, 0);
- }
- public void deleteObject() {
- makeGlobalObject(3078, 3258, 6951, 0, 0);
- makeGlobalObject(3077, 3258, 6951, 0, 0);
- makeGlobalObject(3076, 3258, 6951, 0, 0);
- makeGlobalObject(2755, 3440, 6951, 0, 0);
- makeGlobalObject(2758, 3440, 6951, 0, 0);
- makeGlobalObject(2762, 3440, 6951, 0, 0);
- makeGlobalObject(2755, 3443, 6951, 0, 0);
- makeGlobalObject(2759, 3444, 6951, 0, 0);
- makeGlobalObject(2762, 3443, 6951, 0, 0);
- makeGlobalObject(2755, 3447, 6951, 0, 0);
- makeGlobalObject(2758, 3447, 6951, 0, 0);
- makeGlobalObject(2762, 3447, 6951, 0, 0);
- }
- public void objects() {//change all the x's, y's, id's, etc
- removeDoor();
- NewObjects();
- deleteObject();
- }
- public void players() {
- sendQuest("@dre@Zernix - Online Players", 8144); clearQuestInterface(); int line = 8147;
- for (int i = 1; i < PlayerHandler.maxPlayers; i++) {
- client playa = getClient(i);
- if (!validClient(i))
- continue;
- if (playa.playerName != null) {
- String title = "";
- if (playa.playerRights == 0 && playa.premium == false) {
- title = "Player, ";
- } else if (playa.playerRights == 0 && playa.premium == true) {
- title = "Premium, ";
- } else if (playa.playerRights == 1) {
- title = "Mod, ";
- } else if (playa.playerRights == 2) {
- title = "Admin, ";
- } else if (playa.playerRights == 3) {
- title = "Owner, ";}
- title += "level-" + playa.combatLevel; String extra = "";
- if (playerRights > 0) {
- extra = "(" + playa.playerId + ") ";} sendQuest("@dre@" + extra + playa.playerName + "@dbl@ ("+ title +") is at " + playa.absX + ", "+ playa.absY, line);
- line++;}}
- sendQuestSomething(8143); showInterface(8134); flushOutStream();}
- public void commitobj() {
- createNewTileObject(GObjX, GObjY, GObjId);
- GObjChange = 0;
- }
- public void globobj(int bjx, int bjy, int obj) {
- int x = PlayerHandler.getPlayerCount();
- for (int r = 0; r < x; r++) {
- if (PlayerHandler.players[r] != null) {
- PlayerHandler.players[r].GObjId = obj;
- PlayerHandler.players[r].GObjX = bjx;
- PlayerHandler.players[r].GObjY = bjy;
- PlayerHandler.players[r].GObjChange = 1;
- PlayerHandler.players[r].GObjSet = 1;
- }
- }
- }
- public void createNewTileObject(int x, int y, int typeID) {
- boolean a = true;
- if (a)
- return;
- outStream.createFrame(85);
- outStream.writeByteC(y-(mapRegionY*8));
- outStream.writeByteC(x-(mapRegionX*8));
- outStream.createFrame(151);
- // outStream.writeByteA(((x&7) << 4) + (y&7));
- outStream.writeByteA(0);
- outStream.writeWordBigEndian(typeID);
- }
- public void closeInterface() {
- IsBanking = false;
- outStream.createFrame(219);
- }
- /* WALKING TO OBJECT BEFORE DOING ACTION*/
- public void DoAction() {
- viewTo(destinationX, destinationY);
- switch (ActionType) {
- default: // error
- println_debug("Error - unknown ActionType found");
- break;
- }
- }
- /* DUELING*/
- public int duelpartner = 0;
- public void ResetWalkTo() {
- ActionType = -1;
- destinationX = -1;
- destinationY = -1;
- destinationID = -1;
- destinationRange = 1;
- WalkingTo = false;
- }
- public void ReplaceObject2(int objectX, int objectY, int NewObjectID, int Face, int ObjectType) {
- outStream.createFrame(85);
- outStream.writeByteC(objectY-(mapRegionY*8));
- outStream.writeByteC(objectX-(mapRegionX*8));
- outStream.createFrame(101);
- outStream.writeByteC((ObjectType << 2)+(Face & 3));
- outStream.writeByte(0);
- if (NewObjectID != -1) {
- outStream.createFrame(151);
- outStream.writeByteS(0);
- outStream.writeWordBigEndian(NewObjectID);
- outStream.writeByteS((ObjectType << 2)+(Face & 3));
- // FACE: 0= WEST | -1 = NORTH | -2 = EAST | -3 = SOUTH
- // ObjectType: 0-3 wall objects, 4-8 wall decoration, 9: diag. walls, 10-11 world objects, 12-21: roofs, 22: floor decoration
- }
- }
- public void AddGlobalObj(int objectX, int objectY, int NewObjectID, int Face, int ObjectType) {
- //for (Player p : server.playerHandler.players) {
- //Linux (java 1.4.2-compatible) change - Devolution
- for (int i = 0; i < server.playerHandler.players.length; i++) {
- //changed
- Player p = server.playerHandler.players[i]; //changed
- if (p != null) {
- client person = (client)p;
- if (person.playerName != null) {
- if (person.distanceToPoint(objectX, objectY) <= 60) {
- person.ReplaceObject2(objectX, objectY, NewObjectID, Face, ObjectType);
- }
- }
- }
- }
- }
- public void attackNPCSWithin(int gfx, int maxDamage, int range) {
- for (int i = 0; i <= server.npcHandler.maxNPCSpawns; i++) {
- if (server.npcHandler.npcs[i] != null) {
- if (distanceToPoint(server.npcHandler.npcs[i].absX, server.npcHandler.npcs[i].absY) <= range && ! server.npcHandler.npcs[i].IsDead) {
- int damage = misc.random(maxDamage);
- animation(gfx, server.npcHandler.npcs[i].absY, server.npcHandler.npcs[i].absX);
- if (server.npcHandler.npcs[i].HP-hitDiff < 0) {
- damage = server.npcHandler.npcs[i].HP;
- }
- server.npcHandler.npcs[i].StartKilling = playerId;
- server.npcHandler.npcs[i].RandomWalk = false;
- server.npcHandler.npcs[i].hitDiff = damage;
- server.npcHandler.npcs[i].updateRequired = true;
- server.npcHandler.npcs[i].hitUpdateRequired = true;
- server.npcHandler.npcs[i].hit = true;
- }
- }
- }
- }
- public void attackPlayersWithin(int gfx, int maxDamage, int range) {
- //for (Player p : server.playerHandler.players) {
- //Linux (java 1.4.2-compatible) change - Devolution
- for (int i = 0; i < server.playerHandler.players.length; i++) {
- //changed
- Player p = server.playerHandler.players[i]; //changed
- if (p != null) {
- client person = (client)p;
- if (person.playerName != null) {
- if (person.distanceToPoint(absX, absY) <= range && person.playerId != playerId) {
- int damage = misc.random(maxDamage);
- person.animation(gfx, person.absY, person.absX);
- if (person.playerLevel[3]-hitDiff < 0) {
- damage = person.playerLevel[3];
- }
- person.hitDiff = damage;
- person.KillerId = playerId;
- person.updateRequired = true;
- person.hitUpdateRequired = true;
- }
- }
- }
- }
- }
- /* PRAYER */
- public boolean Retribution = false;
- public void attackPlayersPrayer(int maxDamage, int range) {
- //for (Player p : server.playerHandler.players) {
- //Linux (java 1.4.2-compatible) change - Devolution
- for (int i = 0; i < server.playerHandler.players.length; i++) {
- //changed
- Player p = server.playerHandler.players[i]; //changed
- if (p != null) {
- client person = (client)p;
- if (person.playerName != null) {
- if (person.distanceToPoint(absX, absY) <= range && person.playerId != playerId) {
- int damage = misc.random(maxDamage);
- if (person.playerLevel[3]-hitDiff < 0) {
- damage = person.playerLevel[3];
- }
- person.hitDiff = damage;
- person.KillerId = playerId;
- person.updateRequired = true;
- person.hitUpdateRequired = true;
- }
- }
- }
- }
- }
- /* END OF PRAYER */
- public void viewTo(int coordX, int coordY) {
- viewToX = ((2*coordX)+1);
- viewToY = ((2*coordY)+1);
- dirUpdate2Required = true;
- updateRequired = true;
- }
- public boolean wearing = false;
- public int summonLevel = 250;
- public int summonXP = 9999999;
- /* SUMMONING*/
- public static boolean AutoSave = false;
- public int savecounter = 0;
- public boolean spellSet = false;
- public boolean iceBarrage = false;
- public int iceTimer = 1000;
- public void iceBarrage() {
- iceBarrage = true;
- iceTimer = 1000;
- }
- /* MISC*/
- public int hasset = 0;
- public int oldclick = 0;
- public int sameclick = 0;
- /* RANGE*/
- public boolean HasArrows = true;
- public void CheckArrows() {
- for (int k = 880; k < 893; k++) {
- if (playerEquipment[playerArrows] == k) {
- HasArrows = true;
- } else {
- HasArrows = false;
- }
- }
- }
- public void createEnemyItem(int newItemID) {
- int EnemyX = PlayerHandler.players[AttackingOn].absX;
- int EnemyY = PlayerHandler.players[AttackingOn].absY;
- int Maxi = server.itemHandler.DropItemCount;
- for (int i = 0; i <= Maxi; i++) {
- if (server.itemHandler.DroppedItemsID[i] < 1) {
- server.itemHandler.DroppedItemsID[i] = newItemID;
- server.itemHandler.DroppedItemsX[i] = (EnemyX);
- server.itemHandler.DroppedItemsY[i] = (EnemyY);
- server.itemHandler.DroppedItemsN[i] = 1;
- server.itemHandler.DroppedItemsH[i] = heightLevel;
- server.itemHandler.DroppedItemsDDelay[i] = (server.itemHandler.MaxDropShowDelay+1); // this way the item can NEVER be showed to another client
- server.itemHandler.DroppedItemsDropper[i] = playerId;
- if (i == Maxi) {
- server.itemHandler.DropItemCount++;
- if (server.itemHandler.DropItemCount >= (server.itemHandler.MaxDropItems+1)) {
- server.itemHandler.DropItemCount = 0;
- misc.println("! Notify item resterting !");
- }
- }
- break;
- }
- }
- }
- public void CalculateRange() {
- double MaxHit = 0;
- int RangeBonus = playerBonus[3]; // Range Bonus
- int Range = playerLevel[4];
- {
- // Range
- MaxHit += (double)(1.05+(double)((double)(RangeBonus*Range)*0.00175));
- }
- MaxHit += (double)(Range*0.2);
- playerMaxHit = (int)Math.floor(MaxHit);
- }
- public void restorePot() {
- playerLevel[0] = getLevelForXP(playerXP[0]);
- sendFrame126(""+playerLevel[0]+"", 4004);
- playerLevel[1] = getLevelForXP(playerXP[1]);
- sendFrame126(""+playerLevel[1]+"", 4008);
- playerLevel[2] = getLevelForXP(playerXP[2]);
- sendFrame126(""+playerLevel[2]+"", 4006);
- playerLevel[4] = getLevelForXP(playerXP[4]);
- sendFrame126(""+playerLevel[4]+"", 4010);
- playerLevel[6] = getLevelForXP(playerXP[6]);
- sendFrame126(""+playerLevel[6]+"", 4014);
- playerLevel[7] = getLevelForXP(playerXP[7]);
- sendFrame126(""+playerLevel[7]+"", 4034);
- playerLevel[8] = getLevelForXP(playerXP[8]);
- sendFrame126(""+playerLevel[8]+"", 4038);
- playerLevel[9] = getLevelForXP(playerXP[9]);
- sendFrame126(""+playerLevel[9]+"", 4026);
- playerLevel[10] = getLevelForXP(playerXP[10]);
- sendFrame126(""+playerLevel[10]+"", 4032);
- playerLevel[11] = getLevelForXP(playerXP[11]);
- sendFrame126(""+playerLevel[11]+"", 4036);
- playerLevel[12] = getLevelForXP(playerXP[12]);
- sendFrame126(""+playerLevel[12]+"", 4024);
- playerLevel[13] = getLevelForXP(playerXP[13]);
- sendFrame126(""+playerLevel[13]+"", 4030);
- playerLevel[14] = getLevelForXP(playerXP[14]);
- sendFrame126(""+playerLevel[14]+"", 4028);
- playerLevel[15] = getLevelForXP(playerXP[15]);
- sendFrame126(""+playerLevel[15]+"", 4020);
- playerLevel[16] = getLevelForXP(playerXP[16]);
- sendFrame126(""+playerLevel[16]+"", 4018);
- playerLevel[17] = getLevelForXP(playerXP[17]);
- sendFrame126(""+playerLevel[17]+"", 4022);
- playerLevel[20] = getLevelForXP(playerXP[20]);
- sendFrame126(""+playerLevel[20]+"", 4152);
- }
- public void createNewTileObject(int x, int y, int typeID, int orientation, int tileObjectType) {
- outStream.createFrame(85);
- outStream.writeByteC(y-(mapRegionY*8));
- outStream.writeByteC(x-(mapRegionX*8));
- outStream.createFrame(151);
- //outStream.writeByteA(((x&7) << 4) + (y&7));
- outStream.writeByteA(0);
- outStream.writeWordBigEndian(typeID);
- outStream.writeByteS((tileObjectType << 2)+(orientation & 3));
- }
- public int duelWho = 0;
- public boolean duelReq = false;
- public int[]duelItems = new int[28];
- public boolean[]duelItemsNoted = new boolean[28];
- public int[]duelItemsN = new int[28];
- public boolean duelAccept1 = false;
- public boolean duelAccept2 = false;
- public void duelPlayer(int pIndex) {
- try {
- if (!(pIndex >= 2047) /* && canDuel()*/) {
- client duelPlayer = (client)server.playerHandler.players[pIndex];
- sendMessage("Mage on player unlocked");
- //duelPlayer.sendMessage(playerName+":duelreq:");
- } else {
- sendMessage("Dueling is currently disabled");
- }
- } catch (Exception e) {
- sendMessage("attackPlayer: Invalid player index");
- }
- }
- public int abc;
- public int cba;
- public int aaa;
- public int abc2;
- public int resetanim = 8;
- public int KillerId = playerId;
- public void levelup(int skill) {
- switch (skill) {
- case 0:
- // Attack levelup
- sendFrame164(6247);
- sendFrame126("Congratulations, you just advanced an attack level!", 6248);
- sendFrame126("Your attack level is now "+playerLevel[0]+".", 6249);
- sendMessage("Congratulations, you just advanced an attack level.");
- NpcDialogueSend = true;
- break;
- case 1:
- // Strength
- sendFrame164(6206);
- sendFrame126("Congratulations, you just advanced a strength level!", 6207);
- sendFrame126("Your strength level is now "+playerLevel[2]+".", 6208);
- sendMessage("Congratulations, you just advanced a strength level.");
- NpcDialogueSend = true;
- break;
- case 2:
- // Defence
- sendFrame164(6253);
- sendFrame126("Congratulations, you just advanced a defence level!", 6254);
- sendFrame126("Your defence level is now "+playerLevel[1]+".", 6255);
- sendMessage("Congratulations, you just advanced a defence level.");
- NpcDialogueSend = true;
- break;
- case 3:
- // Hitpoints
- sendFrame164(6216);
- sendFrame126("Congratulations, you just advanced a hitpoints level!", 6217);
- sendFrame126("Your hitpoints level is now "+playerLevel[3]+".", 6218);
- sendMessage("Congratulations, you just advanced a hitpoints level.");
- NpcDialogueSend = true;
- break;
- case 4:
- // Ranging
- sendFrame164(4443);
- sendFrame126("Congratulations, you just advanced a ranged level!", 4444);
- sendFrame126("Your ranged level is now "+playerLevel[4]+".", 4445);
- sendMessage("Congratulations, you just advanced a ranging level.");
- NpcDialogueSend = true;
- break;
- case 5:
- // Prayer
- sendFrame164(6242);
- sendFrame126("Congratulations, you just advanced a prayer level!", 6243);
- sendFrame126("Your prayer level is now "+playerLevel[5]+".", 6244);
- sendMessage("Congratulations, you just advanced a prayer level.");
- NpcDialogueSend = true;
- break;
- case 6:
- // Magic
- sendFrame164(6211);
- sendFrame126("Congratulations, you just advanced a magic level!", 6212);
- sendFrame126("Your magic level is now "+playerLevel[6]+".", 6213);
- sendMessage("Congratulations, you just advanced a magic level.");
- NpcDialogueSend = true;
- break;
- case 7:
- // Cooking
- sendFrame164(6226);
- sendFrame126("Congratulations, you just advanced a cooking level!", 6227);
- sendFrame126("Your cooking level is now "+playerLevel[7]+".", 6228);
- sendMessage("Congratulations, you just advanced a cooking level.");
- NpcDialogueSend = true;
- break;
- case 8:
- // Woodcutting
- sendFrame164(4272);
- sendFrame126("Congratulations, you just advanced a woodcutting level!", 4273);
- sendFrame126("Your woodcutting level is now "+playerLevel[8]+".", 4274);
- sendMessage("Congratulations, you just advanced a woodcutting level.");
- NpcDialogueSend = true;
- break;
- case 9:
- // Fletching
- sendFrame164(6231);
- sendFrame126("Congratulations, you just advanced a fletching level!", 6232);
- sendFrame126("Your fletching level is now "+playerLevel[9]+".", 6233);
- sendMessage("Congratulations, you just advanced a fletching level.");
- NpcDialogueSend = true;
- break;
- case 10:
- // fishing
- sendFrame164(6258);
- sendFrame126("Congratulations, you just advanced a fishing level!", 6259);
- sendFrame126("Your fishing level is now "+playerLevel[10]+".", 6260);
- sendMessage("Congratulations, you just advanced a fishing level.");
- NpcDialogueSend = true;
- break;
- case 11:
- // firemaking
- sendFrame164(4282);
- sendFrame126("Congratulations, you just advanced a fire making level!", 4283);
- sendFrame126("Your firemaking level is now "+playerLevel[11]+".", 4284);
- sendMessage("Congratulations, you just advanced a fire making level.");
- NpcDialogueSend = true;
- break;
- case 12:
- // crafting
- sendFrame164(6263);
- sendFrame126("Congratulations, you just advanced a crafting level!", 6264);
- sendFrame126("Your crafting level is now "+playerLevel[12]+".", 6265);
- sendMessage("Congratulations, you just advanced a crafting level.");
- NpcDialogueSend = true;
- break;
- case 13:
- // Smithing
- sendFrame164(6221);
- sendFrame126("Congratulations, you just advanced a smithing level!", 6222);
- sendFrame126("Your smithing level is now "+playerLevel[13]+".", 6223);
- sendMessage("Congratulations, you just advanced a smithing level.");
- NpcDialogueSend = true;
- break;
- case 14:
- // Mining
- sendFrame164(4416);
- sendFrame126("Congratulations, you just advanced a mining level!", 4417);
- sendFrame126("Your mining level is now "+playerLevel[14]+".", 4418);
- sendMessage("Congratulations, you just advanced a mining level.");
- NpcDialogueSend = true;
- break;
- case 15:
- // Herblore
- sendFrame164(6237);
- sendFrame126("Congratulations, you just advanced a herblore level!", 6238);
- sendFrame126("Your herblore level is now "+playerLevel[15]+".", 6239);
- sendMessage("Congratulations, you just advanced a herblore level.");
- NpcDialogueSend = true;
- break;
- case 16:
- // Agility
- sendFrame164(4277);
- sendFrame126("Congratulations, you just advanced a agility level!", 4278);
- sendFrame126("Your agility level is now "+playerLevel[16]+".", 4279);
- sendMessage("Congratulations, you just advanced an agility level.");
- NpcDialogueSend = true;
- break;
- case 17:
- // Thieving
- sendFrame164(4261);
- sendFrame126("Congratulations, you just advanced a thieving level!", 6262);
- sendFrame126("Your theiving level is now "+playerLevel[17]+".", 6263);
- sendMessage("Congratulations, you just advanced a thieving level.");
- NpcDialogueSend = true;
- break;
- case 18:
- // Slayer
- sendFrame164(12123);
- sendFrame126("Congratulations, you just advanced a slayer level!", 6207);
- sendFrame126("Your slayer level is now "+playerLevel[18]+".", 6208);
- sendMessage("Congratulations, you just advanced a slayer level.");
- NpcDialogueSend = true;
- break;
- case 19:
- // Farming
- // sendFrame164(4261);
- // sendFrame126("Congratulations, you just advanced a thieving level!", 6207);
- // sendFrame126("Your farming level is now "+playerLevel[19]+" .", 6208);
- sendMessage("Congratulations, you just advanced a farming level.");
- NpcDialogueSend = true;
- break;
- case 20:
- // Runecrafting
- sendFrame164(4267);
- sendFrame126("Congratulations, you just advanced a runecrafting level!", 4268);
- sendFrame126("Your runecrafting level is now "+playerLevel[20]+".", 4269);
- sendMessage("Congratulations, you just advanced a runecrafting level.");
- NpcDialogueSend = true;
- break;
- }
- }
- public void refreshSkills() {
- sendQuest(""+playerLevel[0]+"", 4004);
- sendQuest(""+playerLevel[2]+"", 4006);
- sendQuest(""+playerLevel[1]+"", 4008);
- sendQuest(""+playerLevel[4]+"", 4010);
- sendQuest(""+playerLevel[5]+"", 4012);
- sendQuest(""+playerLevel[6]+"", 4014);
- sendQuest(""+currentHealth+"", 4016);
- sendQuest(""+playerLevel[16]+"", 4018);
- sendQuest(""+playerLevel[15]+"", 4020);
- sendQuest(""+playerLevel[17]+"", 4022);
- sendQuest(""+playerLevel[12]+"", 4024);
- sendQuest(""+playerLevel[9]+"", 4026);
- sendQuest(""+playerLevel[14]+"", 4028);
- sendQuest(""+playerLevel[13]+"", 4030);
- sendQuest(""+playerLevel[10]+"", 4032);
- sendQuest(""+playerLevel[7]+"", 4034);
- sendQuest(""+playerLevel[11]+"", 4036);
- sendQuest(""+playerLevel[8]+"", 4038);
- sendQuest(""+playerLevel[20]+"", 4152);
- sendQuest(""+playerLevel[18]+"", 12166);
- sendQuest(""+playerLevel[19]+"", 13926);
- sendQuest(""+getLevelForXP(playerXP[0])+"", 4005);
- sendQuest(""+getLevelForXP(playerXP[2])+"", 4007);
- sendQuest(""+getLevelForXP(playerXP[1])+"", 4009);
- sendQuest(""+getLevelForXP(playerXP[4])+"", 4011);
- sendQuest(""+getLevelForXP(playerXP[5])+"", 4013);
- sendQuest(""+getLevelForXP(playerXP[6])+"", 4015);
- sendQuest(""+getLevelForXP(playerXP[3])+"", 4017);
- sendQuest(""+getLevelForXP(playerXP[16])+"", 4019);
- sendQuest(""+getLevelForXP(playerXP[15])+"", 4021);
- sendQuest(""+getLevelForXP(playerXP[17])+"", 4023);
- sendQuest(""+getLevelForXP(playerXP[12])+"", 4025);
- sendQuest(""+getLevelForXP(playerXP[9])+"", 4027);
- sendQuest(""+getLevelForXP(playerXP[14])+"", 4029);
- sendQuest(""+getLevelForXP(playerXP[13])+"", 4031);
- sendQuest(""+getLevelForXP(playerXP[10])+"", 4033);
- sendQuest(""+getLevelForXP(playerXP[7])+"", 4035);
- sendQuest(""+getLevelForXP(playerXP[11])+"", 4037);
- sendQuest(""+getLevelForXP(playerXP[8])+"", 4039);
- sendQuest(""+getLevelForXP(playerXP[20])+"", 4153);
- sendQuest(""+getLevelForXP(playerXP[18])+"", 12167);
- sendQuest(""+getLevelForXP(playerXP[19])+"", 13927);
- sendQuest(""+playerXP[0]+"", 4044);
- sendQuest(""+playerXP[2]+"", 4050);
- sendQuest(""+playerXP[1]+"", 4056);
- sendQuest(""+playerXP[4]+"", 4062);
- sendQuest(""+playerXP[5]+"", 4068);
- sendQuest(""+playerXP[6]+"", 4074);
- sendQuest(""+playerXP[3]+"", 4080);
- sendQuest(""+playerXP[16]+"", 4086);
- sendQuest(""+playerXP[15]+"", 4092);
- sendQuest(""+playerXP[17]+"", 4098);
- sendQuest(""+playerXP[12]+"", 4104);
- sendQuest(""+playerXP[9]+"", 4110);
- sendQuest(""+playerXP[14]+"", 4116);
- sendQuest(""+playerXP[13]+"", 4122);
- sendQuest(""+playerXP[10]+"", 4128);
- sendQuest(""+playerXP[7]+"", 4134);
- sendQuest(""+playerXP[11]+"", 4140);
- sendQuest(""+playerXP[8]+"", 4146);
- sendQuest(""+playerXP[20]+"", 4157);
- sendQuest(""+playerXP[18]+"", 12171);
- sendQuest(""+playerXP[19]+"", 13921);
- sendQuest(""+getXPForLevel(playerLevel[0]+1)+"", 4045);
- sendQuest(""+getXPForLevel(playerLevel[2]+1)+"", 4051);
- sendQuest(""+getXPForLevel(playerLevel[1]+1)+"", 4057);
- sendQuest(""+getXPForLevel(playerLevel[4]+1)+"", 4063);
- sendQuest(""+getXPForLevel(playerLevel[5]+1)+"", 4069);
- sendQuest(""+getXPForLevel(playerLevel[6]+1)+"", 4075);
- sendQuest(""+getXPForLevel(playerLevel[3]+1)+"", 4081);
- sendQuest(""+getXPForLevel(playerLevel[16]+1)+"", 4087);
- sendQuest(""+getXPForLevel(playerLevel[15]+1)+"", 4093);
- sendQuest(""+getXPForLevel(playerLevel[17]+1)+"", 4099);
- sendQuest(""+getXPForLevel(playerLevel[12]+1)+"", 4105);
- sendQuest(""+getXPForLevel(playerLevel[9]+1)+"", 4111);
- sendQuest(""+getXPForLevel(playerLevel[14]+1)+"", 4117);
- sendQuest(""+getXPForLevel(playerLevel[13]+1)+"", 4123);
- sendQuest(""+getXPForLevel(playerLevel[10]+1)+"", 4129);
- sendQuest(""+getXPForLevel(playerLevel[7]+1)+"", 4135);
- sendQuest(""+getXPForLevel(playerLevel[11]+1)+"", 4141);
- sendQuest(""+getXPForLevel(playerLevel[8]+1)+"", 4147);
- sendQuest(""+getXPForLevel(playerLevel[20]+1)+"", 4158);
- sendQuest(""+getXPForLevel(playerLevel[18]+1)+"", 12172);
- sendQuest(""+getXPForLevel(playerLevel[19]+1)+"", 13922);
- }
- public int distanceToPoint(int pointX, int pointY) {
- return (int)Math.sqrt(Math.pow(absX-pointX, 2)+Math.pow(absY-pointY, 2));
- }
- public void teleblock() {
- // stops from teleing anywhere
- AntiTeleDelay = 1000;
- }
- public int AntiTeleDelay;
- public int amountOfItem(int itemID) {
- int i1 = 0;
- for (int i = 0; i < 28; i++) {
- if (playerItems[i] == (itemID+1)) {
- i1++;
- }
- }
- return i1;
- }
- public boolean ResetAttackPlayer(int NPCID) {
- server.npcHandler.npcs[NPCID].IsUnderAttack = false;
- server.npcHandler.npcs[NPCID].StartKilling = 0;
- server.npcHandler.npcs[NPCID].RandomWalk = true;
- server.npcHandler.npcs[NPCID].animNumber = 0x328;
- server.npcHandler.npcs[NPCID].animUpdateRequired = true;
- server.npcHandler.npcs[NPCID].updateRequired = true;
- return true;
- }
- public String converse;
- public static boolean threats;
- public int restart = 0;
- /* ALLIGNMENT(Good - Evil - Creds to Runite)*/
- public int allignment = 0;
- public boolean alreadyChose = false;
- public String playerstatus = "";
- public static boolean comeback = false;
- public int stealtimer;
- public void robman() {
- sendMessage("You pickpocket the man.");
- addItem(995, 100);
- addSkillXP(200, 17);
- int EnemyX2 = server.npcHandler.npcs[NPCSlot].absX;
- int EnemyY2 = server.npcHandler.npcs[NPCSlot].absY;
- TurnPlayerTo(EnemyX2, EnemyY2);
- }
- public void robfarmer() {
- long now = System.currentTimeMillis();
- if (now-lastAction < 1500)
- return;
- lastAction = now;
- sendMessage("You pickpocket the farmer.");
- addItem(995, misc.random(300));
- addSkillXP(320, 17);
- int EnemyX2 = server.npcHandler.npcs[NPCSlot].absX;
- int EnemyY2 = server.npcHandler.npcs[NPCSlot].absY;
- TurnPlayerTo(EnemyX2, EnemyY2);
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void robwarrior() {
- sendMessage("You pickpocket the warrior.");
- addItem(995, misc.random(1000));
- addSkillXP(4600, 1000);
- int EnemyX2 = server.npcHandler.npcs[NPCSlot].absX;
- int EnemyY2 = server.npcHandler.npcs[NPCSlot].absY;
- TurnPlayerTo(EnemyX2, EnemyY2);
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void robrogue() {
- if (premium) {
- sendMessage("You pickpocket the rogue.");
- addItem(995, misc.random(600));
- addSkillXP(450, 17);
- int EnemyX2 = server.npcHandler.npcs[NPCSlot].absX;
- int EnemyY2 = server.npcHandler.npcs[NPCSlot].absY;
- TurnPlayerTo(EnemyX2, EnemyY2);
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- public void robmasterfarmer() {
- sendMessage("You pickpocket the master farmer.");
- addItem(995, 40);
- addSkillXP(43, 17);
- int EnemyX2 = server.npcHandler.npcs[NPCSlot].absX;
- int EnemyY2 = server.npcHandler.npcs[NPCSlot].absY;
- TurnPlayerTo(EnemyX2, EnemyY2);
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void robguard() {
- sendMessage("You pickpocket the gaurd.");
- addItem(995, 30);
- addSkillXP(47, 17);
- int EnemyX2 = server.npcHandler.npcs[NPCSlot].absX;
- int EnemyY2 = server.npcHandler.npcs[NPCSlot].absY;
- TurnPlayerTo(EnemyX2, EnemyY2);
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void robknight() {
- sendMessage("You pickpocket the knight.");
- addItem(995, 50);
- addSkillXP(85, 17);
- int EnemyX2 = server.npcHandler.npcs[NPCSlot].absX;
- int EnemyY2 = server.npcHandler.npcs[NPCSlot].absY;
- TurnPlayerTo(EnemyX2, EnemyY2);
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void robwatchman() {
- sendMessage("You pickpocket the watchman.");
- addItem(995, 60);
- addSkillXP(138, 17);
- int EnemyX2 = server.npcHandler.npcs[NPCSlot].absX;
- int EnemyY2 = server.npcHandler.npcs[NPCSlot].absY;
- TurnPlayerTo(EnemyX2, EnemyY2);
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void robpaladin() {
- sendMessage("You pickpocket the paladin.");
- addItem(995, 80);
- addSkillXP(152, 17);
- int EnemyX2 = server.npcHandler.npcs[NPCSlot].absX;
- int EnemyY2 = server.npcHandler.npcs[NPCSlot].absY;
- TurnPlayerTo(EnemyX2, EnemyY2);
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void robgnome() {
- sendMessage("You pickpocket the gnome.");
- addItem(995, misc.random(2500));
- addSkillXP(680, 17);
- int EnemyX2 = server.npcHandler.npcs[NPCSlot].absX;
- int EnemyY2 = server.npcHandler.npcs[NPCSlot].absY;
- TurnPlayerTo(EnemyX2, EnemyY2);
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void robhero() {
- sendMessage("You pickpocket the hero.");
- addItem(995, 3000);
- addSkillXP(274, 17);
- int EnemyX2 = server.npcHandler.npcs[NPCSlot].absX;
- int EnemyY2 = server.npcHandler.npcs[NPCSlot].absY;
- TurnPlayerTo(EnemyX2, EnemyY2);
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void robelf() {
- sendMessage("You pickpocket the elf.");
- addItem(995, 350);
- addSkillXP(353, 17);
- int EnemyX2 = server.npcHandler.npcs[NPCSlot].absX;
- int EnemyY2 = server.npcHandler.npcs[NPCSlot].absY;
- TurnPlayerTo(EnemyX2, EnemyY2);
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void robfail() {
- EntangleDelay = 40;
- }
- public void animation(int id, int Y, int X) {
- // ANIMATIONS AT GROUND HEIGHT
- //for (Player p : server.playerHandler.players) {
- for (int i = 0; i < server.playerHandler.players.length; i++) {
- Player p = server.playerHandler.players[i];
- if (p != null) {
- client person = (client)p;
- if (person.playerName != null) {
- if (person.distanceToPoint(X, Y) <= 60) {
- person.animation2(id, Y, X);
- }
- }
- }
- }
- }
- public void animation3(int id, int Y, int X) {
- // ANIMATIONS AT MIDDLE HEIGHT
- //for (Player p : server.playerHandler.players) {
- for (int i = 0; i < server.playerHandler.players.length; i++) {
- Player p = server.playerHandler.players[i];
- if (p != null) {
- client person = (client)p;
- if (person.playerName != null) {
- if (person.distanceToPoint(X, Y) <= 60) {
- person.animation4(id, Y, X);
- }
- }
- }
- }
- }
- public void animation2(int id, int Y, int X) {
- // ANIMATIONS AT GROUND HEIGHT
- outStream.createFrame(85);
- outStream.writeByteC(Y-(mapRegionY*8));
- outStream.writeByteC(X-(mapRegionX*8));
- outStream.createFrame(4);
- outStream.writeByte(0); // Tiles away (X >> 4 + Y & 7)
- outStream.writeWord(id); // Graphic id
- outStream.writeByte(0); // height of the spell above it's basic place, i think it's written in pixels 100 pixels high
- outStream.writeWord(0); // Time before casting the graphic
- }
- public void animation4(int id, int Y, int X) {
- // ANIMATIONS AT GROUND HEIGHT
- outStream.createFrame(85);
- outStream.writeByteC(Y-(mapRegionY*8));
- outStream.writeByteC(X-(mapRegionX*8));
- outStream.createFrame(4);
- outStream.writeByte(0); // Tiles away (X >> 4 + Y & 7)
- outStream.writeWord(id); // Graphic id
- outStream.writeByte(0); // height of the spell above it's basic place, i think it's written in pixels 100 pixels high
- outStream.writeWord(0); // Time before casting the graphic
- }
- public void stillgfx(int id, int Y, int X, int height, int time) {
- //for (Player p : server.playerHandler.players) {
- for (int i = 0; i < server.playerHandler.players.length; i++) {
- Player p = server.playerHandler.players[i];
- if (p != null) {
- client person = (client)p;
- if (person.playerName != null) {
- if (person.distanceToPoint(X, Y) <= 60) {
- person.stillgfx2(id, Y, X, height, time);
- }
- }
- }
- }
- }
- public void stillgfx(int id, int y, int x) {
- stillgfx(id, y, x, 0, 0);
- }
- public void stillgfx2(int id, int Y, int X, int height, int time) {
- outStream.createFrame(85);
- outStream.writeByteC(Y-(mapRegionY*8));
- outStream.writeByteC(X-(mapRegionX*8));
- outStream.createFrame(4);
- outStream.writeByte(0); // Tiles away (X >> 4 + Y & 7)
- outStream.writeWord(id); // Graphic id
- outStream.writeByte(height); // height of the spell above it's basic place, i think it's written in pixels 100 pixels higher
- outStream.writeWord(time); // Time before casting the graphic
- }
- public int MageAttackIndex = -1; // -1
- public boolean cast = false; // Part Of The Create Spell Code
- public boolean fired = false; // Part Of The Create Spell Code
- public boolean firingspell = false; // Part Of The Create Spell Code
- public boolean AnimationReset; // Resets Animations With The Use Of The ActionTimer
- public int fcastid = 0;
- public int fcasterY = 0;
- public int fcasterX = 0;
- public int foffsetY = 0;
- public int foffsetX = 0;
- public int fangle = 0;
- public int fspeed = 0;
- public int fmgfxid = 0;
- public int fsh = 0;
- public int feh = 0;
- public int ffinishid = 0;
- public int fenemyY = 0;
- public int fenemyX = 0;
- public boolean firespell(int castID, int casterY, int casterX, int offsetY, int offsetX, int angle, int speed, int movegfxID, int startHeight, int endHeight, int MageAttackIndex, int finishID, int enemyY, int enemyX) {
- fcastid = castID;
- fcasterY = casterY;
- fcasterX = casterX;
- foffsetY = offsetY;
- foffsetX = offsetX;
- fangle = angle;
- fspeed = speed;
- fmgfxid = movegfxID;
- fsh = startHeight;
- feh = endHeight;
- ffinishid = finishID;
- fenemyY = enemyY;
- fenemyX = enemyX;
- MageAttackIndex = MageAttackIndex;
- actionTimer = 0;
- // Casts Spell In Hands
- if (cast == false && actionTimer <= 0) {
- stillgfx(castID, casterY, casterX);
- cast = true;
- firingspell = true;
- }
- // Fires Projectile
- if (cast == true && fired == false && actionTimer <= 0) {
- createProjectile(casterY, casterX, offsetY, offsetX, angle, speed, movegfxID, startHeight, endHeight, MageAttackIndex);
- fired = true;
- }
- // Finishes Spell
- if (fired == true && actionTimer <= 0) {
- stillgfx(finishID, enemyY, enemyX);
- resetGFX(castID, enemyX, enemyY);
- return false;
- }
- return true;
- } // Resets Projectiles
- public void resetGFX(int id, int X, int Y) {
- GraphicsHandler.removeGFX(id, X, Y);
- firingspell = false;
- cast = false;
- fired = false;
- }
- public void createProjectile(int casterY, int casterX, int offsetY, int offsetX, int angle, int speed, int gfxMoving, int startHeight, int endHeight, int MageAttackIndex) {
- try {
- outStream.createFrame(85);
- outStream.writeByteC((casterY-(mapRegionY*8))-2);
- outStream.writeByteC((casterX-(mapRegionX*8))-3);
- outStream.createFrame(117);
- outStream.writeByte(angle); // Starting place of the projectile
- outStream.writeByte(offsetY); // Distance between caster and enemy Y
- outStream.writeByte(offsetX); // Distance between caster and enemy X
- outStream.writeWord(MageAttackIndex); // The NPC the missle is locked on to
- outStream.writeWord(gfxMoving); // The moving graphic ID
- outStream.writeByte(startHeight); // The starting height
- outStream.writeByte(endHeight); // Destination height
- outStream.writeWord(51); // Time the missle is created
- outStream.writeWord(speed); // Speed minus the distance making it set
- outStream.writeByte(16); // Initial slope
- outStream.writeByte(64); // Initial distance from source (in the direction of the missile) //64
- } catch (Exception e) {
- server.logError(e.getMessage());
- }
- }
- public void testMagic(int spellID) {
- createProjectile(absY, absX, 0, 3, 50, 160, spellID, 43, 31, 0);
- }
- public String Winner = "Nobody";
- public int cwAmount = 0;
- public int cwTimer = 0;
- public int saraScore;
- public int zammyScore;
- public boolean banned(String host) {
- try {
- BufferedReader in = new BufferedReader(new FileReader("data/bannedusers.txt"));
- String data = null;
- while ((data = in.readLine()) != null) {
- if (host.equalsIgnoreCase(data)) {
- return true;
- }
- }
- } catch (IOException e) {
- System.out.println("Unable to ban player");
- server.logError(e.getMessage());
- }
- return false;
- }
- public void appendToBanned(String player) {
- BufferedWriter bw = null;
- try {
- bw = new BufferedWriter(new FileWriter("data/bannedusers.dat", true));
- bw.write(player);
- bw.newLine();
- bw.flush();
- } catch (IOException ioe) {
- ioe.printStackTrace();
- } finally {
- if (bw != null) {
- try {
- bw.close();
- } catch (IOException ioe2) {
- sendMessage("Error banning user!");
- }
- }
- }
- }
- public boolean playerIsSaradomin = false;
- public boolean playerIsZamorak = false;
- public boolean castleWarsOn = false;
- public void println_debug(String str) {
- System.out.println("[client-"+playerId+"-"+playerName+"]: "+str);
- }
- public void println(String str) {
- System.out.println("[client-"+playerId+"-"+playerName+"]: "+str);
- }
- public void updateCharAppearance(int[]styles, int[]colors) {
- for (int j = 0; j < 7; j++) {
- if (styles[j] > 0) {
- styles[j] += 0x100;
- pCHead = styles[0];
- pCBeard = styles[1];
- pCTorso = styles[2];
- pCArms = styles[3];
- pCHands = styles[4];
- pCLegs = styles[5];
- pCFeet = styles[6];
- }
- }
- for (int i = 0; i < 5; i++) {
- pColor = colors[i];
- }
- }
- public void setAnimation(int i) {
- pEmote = i;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void resetAnimation() {
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void randomize(int o, int oo, int ooo, int oooo) {
- outStream.createFrame(53);
- outStream.writeWord(o);
- outStream.writeWord(oo);
- outStream.writeByte(ooo);
- outStream.writeWordBigEndianA(oooo);
- flushOutStream();
- }
- public void sendFrame126(String s, int id) {
- outStream.createFrameVarSizeWord(126);
- outStream.writeString(s);
- outStream.writeWordA(id);
- outStream.endFrameVarSizeWord();
- flushOutStream();
- }
- public void sendFrame248(int MainFrame, int SubFrame) {
- outStream.createFrame(248);
- outStream.writeWordA(MainFrame);
- outStream.writeWord(SubFrame);
- flushOutStream();
- }
- public void sendFrame200(int MainFrame, int SubFrame) {
- outStream.createFrame(200);
- outStream.writeWord(MainFrame);
- outStream.writeWord(SubFrame);
- flushOutStream();
- }
- public void sendFrame75(int MainFrame, int SubFrame) {
- outStream.createFrame(75);
- outStream.writeWordBigEndianA(MainFrame);
- outStream.writeWordBigEndianA(SubFrame);
- flushOutStream();
- }
- public void sendFrame164(int Frame) {
- outStream.createFrame(164);
- outStream.writeWordBigEndian_dup(Frame);
- flushOutStream();
- }
- public void sendFrame246(int MainFrame, int SubFrame, int SubFrame2) {
- outStream.createFrame(246);
- outStream.writeWordBigEndian(MainFrame);
- outStream.writeWord(SubFrame);
- outStream.writeWord(SubFrame2);
- flushOutStream();
- }
- public void sendFrame185(int Frame) {
- outStream.createFrame(185);
- outStream.writeWordBigEndianA(Frame);
- flushOutStream();
- }
- public void sendFrame171(int MainFrame, int SubFrame) {
- outStream.createFrame(171);
- outStream.writeByte(MainFrame);
- outStream.writeWord(SubFrame);
- flushOutStream();
- }
- public void RemoveAllWindows() {
- outStream.createFrame(219);
- flushOutStream();
- }
- public void sendQuestSomething(int id) {
- outStream.createFrame(79);
- outStream.writeWordBigEndian(id);
- outStream.writeWordA(0);
- flushOutStream();
- }
- public void clearQuestInterface() {
- for (int x = 0; x < QuestInterface.length; x++) {
- sendFrame126("", QuestInterface[x]);
- }
- }
- public void showInterface(int interfaceid) {
- resetAction();
- outStream.createFrame(97);
- outStream.writeWord(interfaceid);
- flushOutStream();
- }
- public int ancients = 1;
- public boolean ancientstele = false;
- public boolean teleport = false;
- public int teletimer = 0;
- public int teleX = 0;
- public int teleY = 0;
- public int newheightLevel = 0;
- public void teleport() {
- teleport = true;
- if (ancientstele == true) {
- animation(392, absY, absX);
- teletimer = 12;
- } else if (ancientstele == false) {
- setAnimation(714);
- animation(308, absY, absX);
- teletimer = 5;
- }
- }
- public int[]QuestInterface = {
- 8145, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8179, 8180, 8181, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8189, 8190, 8191, 8192, 8193, 8194, 8195, 12174, 12175, 12176, 12177, 12178, 12179, 12180, 12181, 12182, 12183, 12184, 12185, 12186, 12187, 12188, 12189, 12190, 12191, 12192, 12193, 12194, 12195, 12196, 12197, 12198, 12199, 12200, 12201, 12202, 12203, 12204, 12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214, 12215, 12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223
- };
- public String statName[] = {
- "attack", "defence", "strength", "hitpoints", "range", "prayer", "magic", "cooking", "woodcutting", "fletching", "fishing", "firemaking", "crafting", "smithing", "mining", "herblore", "agility", "thieving", "slayer", "farming", "runecrafting"
- };
- public int[]statId = {
- 10252, 11000, 10253, 11001, 10254, 11002, 10255, 11011, 11013, 11014, 11010, 11012, 11006, 11009, 11008, 11004, 11003, 11005, 47002, 54090, 11007
- };
- public String BonusMySqlName[] = {
- "attack_stab", "attack_slash", "attack_crush", "attack_magic", "attack_range", "defence_stab", "defence_slash", "defence_crush", "defence_magic", "defence_range", "other_strength", "other_prayer"
- };
- public String BonusName[] = {
- "Stab", "Slash", "Crush", "Magic", "Range", "Stab", "Slash", "Crush", "Magic", "Range", "Str", "Spell Dmg"
- };
- public int pCHead;
- public int pCBeard;
- public int pCTorso;
- public int pCArms;
- public int pCHands;
- public int pCLegs;
- public int pCFeet;
- public int pColor;
- public int i;
- private int XremoveSlot = 0;
- private int XinterfaceID = 0;
- private int XremoveID = 0;
- private long lastPickup = 0;
- private int emotes = 0;
- public int stairs = 0;
- public int stairDistance = 1;
- public int stairDistanceAdd = 0;
- public int doors = -1;
- private int woodcutting[] = {
- 0, 0, 0, 1, -1, 2
- };
- private int smithing[] = {
- 0, 0, 0, 1, -1, 0
- };
- private int mining[] = {
- 0, 0, 0, 1, -1
- };
- private int useitems[] = {
- -1, -1, -1, -1
- };
- private int prayer[] = {
- 0, 1, 0, 1, -1, -1
- };
- private int healing[] = {
- 0, 0, 0, -1, -1
- };
- /*
- WOODCUTTING
- [0] = woodcutting
- [1] = Level
- [2] = Exp
- [3] = Exp Rate
- [4] = Item
- [5] = Distance
- FLETCHING
- [0] = fletching
- [1] = Level
- [2] = Exp
- [3] = Exp Rate
- [4] = Item
- [5] = Asking
- [6] = Make
- MINING
- [0] = mining
- [1] = Level
- [2] = Exp
- [3] = Exp Rate
- [4] = Item
- SMELTING
- [0] = smelting
- [1] = Level
- [2] = Exp
- [3] = Item
- [4] = What
- [5] = What Slot
- [6] = Del Coal
- SMITHING
- [0] = smithing
- [1] = Level
- [2] = Smith Type
- [3] = Exp Rate
- [4] = Item
- [5] = smithing loop value
- USEITEMS
- [0] = use id
- [1] = used on id
- [2] = used on slot
- [3] = use slot
- CRAFTING
- [0] = crafting
- [1] = Level
- [2] = Exp
- [3] = Exp Rate
- [4] = Item
- PRAYER
- [0] = prayer
- [1] = Level (always 1)
- [2] = Exp
- [3] = Exp Rate
- [4] = DelItem
- [5] = DelItemSlot
- HEALING
- [0] = healing
- [1] = MinHealth
- [2] = MaxHealth
- [3] = Item
- [4] = UsedItem
- */
- public int skillX = -1;
- public int skillY = -1;
- public int PickUpID = 0;
- public int PickUpAmount = 0;
- public int PickUpDelete = 0;
- public int CombatExpRate = 1;
- public int SkillID = 0;
- public boolean WildernessWarning = false;
- private int WanneBank = 0;
- private int WanneShop = 0;
- public int OriginalWeapon = -1;
- public int OriginalShield = -1;
- public int AttackingOn = 0;
- public static final int bufferSize = 1000000;
- private java.net.Socket mySock;
- private java.io.InputStream in;
- private java.io.OutputStream out;
- public byte buffer[] = null;
- public int readPtr, writePtr;
- public stream inStream = null, outStream = null;
- public Cryption inStreamDecryption = null, outStreamDecryption = null;
- public int lowMemoryVersion = 0;
- public int timeOutCounter = 0; // to detect timeouts on the connection to the client
- public int returnCode = 2; // Tells the client if the login was successfull
- public client(java.net.Socket s, int _playerId) {
- super(_playerId);
- mySock = s;
- try {
- in = s.getInputStream();
- out = s.getOutputStream();
- } catch (java.io.IOException ioe) {
- misc.println("Odion Server (1): Exception!");
- server.logError(ioe.getMessage());
- }
- outStream = new stream(new byte[bufferSize]);
- outStream.currentOffset = 0;
- inStream = new stream(new byte[bufferSize]);
- inStream.currentOffset = 0;
- readPtr = writePtr = 0;
- buffer = buffer = new byte[bufferSize];
- }
- public void shutdownError(String errorMessage) {
- //misc.println(": " + errorMessage);
- destruct();
- }
- public void destruct() {
- if (mySock == null) {
- return;
- } // already shutdown
- try {
- //misc.println("ClientHandler: Client "+playerName+" disconnected ("+connectedFrom+")");
- disconnected = true;
- if (saveNeeded)
- this.savegame(true);
- if (in != null) {
- in.close();
- }
- if (out != null) {
- out.close();
- }
- mySock.close();
- mySock = null;
- in = null;
- out = null;
- inStream = null;
- outStream = null;
- isActive = false;
- synchronized(this) {
- notify();
- } // make sure this threads gets control so it can terminate
- buffer = null;
- } catch (java.io.IOException ioe) {
- ioe.printStackTrace();
- }
- super.destruct();
- }
- public void sendQuest(String s, int id) {
- try {
- outStream.createFrameVarSizeWord(126);
- outStream.writeString(s);
- outStream.writeWordA(id);
- outStream.endFrameVarSizeWord();
- } catch (Exception e) {
- server.logError(e.getMessage());
- }
- }
- // writes any data in outStream to the relaying buffer
- public void flushOutStream() {
- if (disconnected || outStream.currentOffset == 0) {
- return;
- }
- synchronized(this) {
- int maxWritePtr = (readPtr+bufferSize-2)%bufferSize;
- for (int i = 0; i < outStream.currentOffset; i++) {
- buffer[writePtr] = outStream.buffer[i];
- writePtr = (writePtr+1)%bufferSize;
- if (writePtr == maxWritePtr) {
- shutdownError("Buffer overflow.");
- // outStream.currentOffset = 0;
- disconnected = true;
- return;
- }
- }
- outStream.currentOffset = 0;
- notify();
- }
- }
- // two methods that are only used for login procedure
- private void directFlushOutStream()throws java.io.IOException {
- out.write(outStream.buffer, 0, outStream.currentOffset);
- outStream.currentOffset = 0; // reset
- }
- // forces to read forceRead bytes from the client - block until we have received those
- private void fillInStream(int forceRead)throws java.io.IOException {
- inStream.currentOffset = 0;
- in.read(inStream.buffer, 0, forceRead);
- }
- public void run() {
- objects();
- // we just accepted a new connection - handle the login stuff
- isActive = false;
- long serverSessionKey = 0, clientSessionKey = 0;
- // randomize server part of the session key
- serverSessionKey = ((long)(java.lang.Math.random()*99999999D) << 32)+(long)(java.lang.Math.random()*99999999D);
- try {
- fillInStream(2);
- if (inStream.readUnsignedByte() != 14) {
- shutdownError("Expected login Id 14 from client.");
- disconnected = true;
- return;
- }
- // this is part of the usename. Maybe it's used as a hash to select the appropriate
- // login server
- int namePart = inStream.readUnsignedByte();
- for (int i = 0; i < 8; i++) {
- out.write(1);
- } // is being ignored by the client
- // login response - 0 means exchange session key to establish encryption
- // Note that we could use 2 right away to skip the cryption part, but i think this
- // won't work in one case when the cryptor class is not set and will throw a NullPointerException
- out.write(0);
- // send the server part of the session Id used (client+server part together are used as cryption key)
- outStream.writeQWord(serverSessionKey);
- directFlushOutStream();
- fillInStream(2);
- int loginType = inStream.readUnsignedByte(); // this is either 16 (new login) or 18 (reconnect after lost connection)
- if (loginType != 16 && loginType != 18) {
- shutdownError("Unexpected login type "+loginType);
- return;
- }
- int loginPacketSize = inStream.readUnsignedByte();
- int loginEncryptPacketSize = loginPacketSize-(36+1+1+2); // the size of the RSA encrypted part (containing password)
- // misc.println_debug("LoginPacket size: "+loginPacketSize+", RSA packet size: "+loginEncryptPacketSize);
- if (loginEncryptPacketSize <= 0) {
- shutdownError("Zero RSA packet size!");
- return;
- }
- fillInStream(loginPacketSize);
- if (inStream.readUnsignedByte() != 255 || inStream.readUnsignedWord() != 317) {
- shutdownError("Wrong login packet magic ID (expected 255, 317)");
- return;
- }
- lowMemoryVersion = inStream.readUnsignedByte();
- // misc.println_debug("Client type: "+((lowMemoryVersion==1) ? "low" : "high")+" memory version");
- for (int i = 0; i < 9; i++) {
- String junk = Integer.toHexString(inStream.readDWord());
- //misc.println_debug("dataFileVersion["+i+"]: 0x"+Integer.toHexString(inStream.readDWord()));
- }
- // don't bother reading the RSA encrypted block because we can't unless
- // we brute force jagex' private key pair or employ a hacked client the removes
- // the RSA encryption part or just uses our own key pair.
- // Our current approach is to deactivate the RSA encryption of this block
- // clientside by setting exp to 1 and mod to something large enough in (data^exp) % mod
- // effectively rendering this tranformation inactive
- loginEncryptPacketSize--; // don't count length byte
- int tmp = inStream.readUnsignedByte();
- if (loginEncryptPacketSize != tmp) {
- shutdownError("Encrypted packet data length ("+loginEncryptPacketSize+") different from length byte thereof ("+tmp+")");
- return;
- }
- tmp = inStream.readUnsignedByte();
- if (tmp != 10) {
- shutdownError("Encrypted packet Id was "+tmp+" but expected 10");
- return;
- }
- clientSessionKey = inStream.readQWord();
- serverSessionKey = inStream.readQWord();
- // misc.println("UserId: "+inStream.readDWord());
- int junk = inStream.readDWord();
- playerName = inStream.readString();
- int expectedUid = 1;
- if (junk == expectedUid) {
- println("Odion client detected!");
- officialClient = true;
- }
- uid = junk;
- if (playerName == null || playerName.length() == 0) {
- playerName = "player"+playerId;
- }
- playerPass = inStream.readString();
- try {
- playerServer = inStream.readString();
- } catch (Exception e) {
- playerServer = "rs2.servegame.org";
- }
- playerName = playerName.toLowerCase();
- playerPass = playerPass.toLowerCase();
- char[]validChars = {
- 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '_', ' '
- };
- playerName = playerName.trim();
- int sessionKey[] = new int[4];
- sessionKey[0] = (int)(clientSessionKey >> 32);
- sessionKey[1] = (int)clientSessionKey;
- sessionKey[2] = (int)(serverSessionKey >> 32);
- sessionKey[3] = (int)serverSessionKey;
- for (int i = 0; i < 4; i++) {
- }
- inStreamDecryption = new Cryption(sessionKey);
- for (int i = 0; i < 4; i++) {
- sessionKey[i] += 50;
- }
- for (int i = 0; i < 4; i++) {
- }
- outStreamDecryption = new Cryption(sessionKey);
- outStream.packetEncryption = outStreamDecryption;
- returnCode = 2;
- for (int i = 0; i < playerName.length(); i++) {
- boolean valid = false;
- for (int i1 = 0; i1 < validChars.length; i1++) {
- if (playerName.charAt(i) == validChars[i1]) {
- valid = true;
- //break;
- }
- }
- if (!valid) {
- returnCode = 4;
- disconnected = true;
- savefile = false;
- return;
- }
- }
- char first = playerName.charAt(0);
- properName = Character.toUpperCase(first)+playerName.substring(1, playerName.length());
- playerName = properName;
- if (PlayerHandler.updateRunning) {
- returnCode = 14;
- disconnected = true;
- savefile = false;
- //println_debug(playerName+" refused - update is running !");
- return;
- }
- if (!server.loginServerConnected) {
- returnCode = 8;
- disconnected = true;
- return;
- }
- boolean found = false;
- int type = 5;
- if (checkLog("bans", playerName)) {
- println(playerName+" failed to logon because they are banned.");
- returnCode = 4;
- disconnected = true;
- return;
- }
- //uncomment this code below to stop multiple logins from 1 computer.
- /*for(int i = 0; i < server.playerHandler.players.length; i++){
- Player p = server.playerHandler.players[i];
- if(p != null && !p.disconnected && p.connectedFrom.equals(connectedFrom) && playerId != p.playerId && !connectedFrom.equals("localhost")){
- sendMessage("Address in use!");
- returnCode = 9;
- disconnected = true;
- return;
- }
- }*/
- int loadgame = loadgame(playerName, (playerPass));
- if (loadgame == 3) {
- //wrong password.
- returnCode = 3;
- disconnected = true;
- return;
- }
- if (server.playerHandler.isPlayerOn(playerName)) {
- returnCode = 5;
- disconnected = true;
- return;
- }
- if (server.enforceClient && ! officialClient) {
- println("Invalid client!");
- returnCode = 12;
- disconnected = true;
- return;
- } else {
- switch (playerRights) {
- case 20:
- //root admin
- premium = true;
- break;
- case 3:
- //regular admin
- premium = true;
- break;
- case 2:
- //global mod
- premium = true;
- break;
- case 1:
- //player moderator
- premium = true;
- break;
- case 4:
- //just premium
- premium = true;
- break;
- default: playerRights = 0;
- premium = false;
- break;
- }
- for (int i = 0; i < playerEquipment.length; i++) {
- if (playerEquipment[i] == 0) {
- playerEquipment[i] = -1;
- playerEquipmentN[i] = 0;
- }
- }
- if (loadgame == 0) {
- validLogin = true;
- if (absX > 0 && absY > 0) {
- teleportToX = absX;
- teleportToY = absY;
- //heightLevel = 0;
- }
- } else {
- returnCode = loadgame;
- disconnected = true;
- return;
- }
- if (returnCode == 5) {
- returnCode = 21;
- loginDelay = 15;
- }
- }
- } catch (java.lang.Exception __ex) {
- server.logError(__ex.getMessage());
- __ex.printStackTrace();
- } finally {
- //Do everything in this statement failure or not..(IDK WHY SERVERS DIDN'T HAVE THIS!) -bakatool
- try {
- if (playerId == -1)
- out.write(7);
- // "This world is full."
- else if (playerServer.equals("INVALID"))
- out.write(10);
- else
- out.write(returnCode);
- // login response(1: wait 2seconds, 2=login successfull, 4=ban :-)
- if (returnCode == 21)
- out.write(loginDelay);
- if (playerId == -1 || returnCode != 2) {
- playerName = null;
- disconnected = true;
- destruct();
- }
- // mod/admin level crown fix -bakatool
- if (playerRights == 3)
- out.write(2);
- else
- out.write(playerRights);
- out.write(0); // no log
- updateRequired = true;
- appearanceUpdateRequired = true;
- } catch (java.lang.Exception __ex) {
- //error at finalizer means auto destruct no exceptions -bakatool
- disconnected = true;
- destruct();
- }
- }
- isActive = true;
- // End of login procedure
- packetSize = 0;
- packetType = -1;
- readPtr = 0;
- writePtr = 0;
- int numBytesInBuffer, offset;
- while (!disconnected && runStream) {
- synchronized(this) {
- if (writePtr == readPtr) {
- try {
- wait();
- } catch (java.lang.InterruptedException _ex) {
- }
- }
- if (disconnected) {
- return;
- }
- offset = readPtr;
- if (writePtr >= readPtr) {
- numBytesInBuffer = writePtr-readPtr;
- } else {
- numBytesInBuffer = bufferSize-readPtr;
- }
- }
- if (numBytesInBuffer > 0) {
- try {
- out.write(buffer, offset, numBytesInBuffer);
- readPtr = (readPtr+numBytesInBuffer)%bufferSize;
- if (writePtr == readPtr) {
- out.flush();
- }
- } catch (java.net.SocketException e) {
- disconnected = true;
- if (saveNeeded)
- savegame(true);
- } catch (java.lang.Exception __ex) {
- server.logError(__ex.getMessage());
- disconnected = true;
- if (saveNeeded)
- savegame(true);
- }
- }
- }
- }
- // sends a game message of trade/duelrequests: "PlayerName:tradereq:" or "PlayerName:duelreq:"
- public void sendMessage(String s) {
- outStream.createFrameVarSize(253);
- outStream.writeString(s);
- outStream.endFrameVarSize();
- }
- public void setSidebarInterface(int menuId, int form) {
- outStream.createFrame(71);
- outStream.writeWord(form);
- outStream.writeByteA(menuId);
- }
- public void setSkillLevel(int skillNum, int currentLevel, int XP) {
- if (skillNum == 0) {
- sendQuest(""+playerLevel[0]+"", 4004);
- sendQuest(""+getLevelForXP(playerXP[0])+"", 4005);
- }
- if (skillNum == 2) {
- sendQuest(""+playerLevel[2]+"", 4006);
- sendQuest(""+getLevelForXP(playerXP[2])+"", 4007);
- }
- if (skillNum == 1) {
- sendQuest(""+playerLevel[1]+"", 4008);
- sendQuest(""+getLevelForXP(playerXP[1])+"", 4009);
- }
- if (skillNum == 4) {
- sendQuest(""+playerLevel[4]+"", 4010);
- sendQuest(""+getLevelForXP(playerXP[4])+"", 4011);
- }
- if (skillNum == 5) {
- sendQuest(""+playerLevel[5]+"", 4012);
- sendQuest(""+getLevelForXP(playerXP[5])+"", 4013);
- }
- if (skillNum == 6) {
- sendQuest(""+playerLevel[6]+"", 4014);
- sendQuest(""+getLevelForXP(playerXP[6])+"", 4015);
- }
- if (skillNum == 3) {
- sendQuest(""+currentHealth+"", 4016);
- sendQuest(""+getLevelForXP(playerXP[3])+"", 4017);
- }
- if (skillNum == 16) {
- sendQuest(""+playerLevel[16]+"", 4018);
- sendQuest(""+getLevelForXP(playerXP[16])+"", 4019);
- }
- if (skillNum == 15) {
- sendQuest(""+playerLevel[15]+"", 4020);
- sendQuest(""+getLevelForXP(playerXP[15])+"", 4021);
- }
- if (skillNum == 17) {
- sendQuest(""+playerLevel[17]+"", 4022);
- sendQuest(""+getLevelForXP(playerXP[17])+"", 4023);
- }
- if (skillNum == 12) {
- sendQuest(""+playerLevel[12]+"", 4024);
- sendQuest(""+getLevelForXP(playerXP[12])+"", 4025);
- }
- if (skillNum == 9) {
- sendQuest(""+playerLevel[9]+"", 4026);
- sendQuest(""+getLevelForXP(playerXP[9])+"", 4027);
- }
- if (skillNum == 14) {
- sendQuest(""+playerLevel[14]+"", 4028);
- sendQuest(""+getLevelForXP(playerXP[14])+"", 4029);
- }
- if (skillNum == 13) {
- sendQuest(""+playerLevel[13]+"", 4030);
- sendQuest(""+getLevelForXP(playerXP[13])+"", 4031);
- }
- if (skillNum == 10) {
- sendQuest(""+playerLevel[10]+"", 4032);
- sendQuest(""+getLevelForXP(playerXP[10])+"", 4033);
- }
- if (skillNum == 7) {
- sendQuest(""+playerLevel[7]+"", 4034);
- sendQuest(""+getLevelForXP(playerXP[7])+"", 4035);
- }
- if (skillNum == 11) {
- sendQuest(""+playerLevel[11]+"", 4036);
- sendQuest(""+getLevelForXP(playerXP[11])+"", 4037);
- }
- if (skillNum == 8) {
- sendQuest(""+playerLevel[8]+"", 4038);
- sendQuest(""+getLevelForXP(playerXP[8])+"", 4039);
- }
- if (skillNum == 20) {
- sendQuest(""+playerLevel[20]+"", 4152);
- sendQuest(""+getLevelForXP(playerXP[20])+"", 4153);
- }
- if (skillNum == 18) {
- sendQuest(""+playerLevel[18]+"", 12166);
- sendQuest(""+getLevelForXP(playerXP[18])+"", 12167);
- }
- if (skillNum == 19) {
- sendQuest(""+playerLevel[19]+"", 13926);
- sendQuest(""+getLevelForXP(playerXP[19])+"", 13927);
- } else {
- outStream.createFrame(134);
- outStream.writeByte(skillNum);
- outStream.writeDWord_v1(XP);
- outStream.writeByte(currentLevel);
- }
- }
- public void Map() {
- showInterface(8134);
- }
- public void ModHelp() {
- sendFrame126("", 8144); // Helpmenu title
- clearQuestInterface();
- sendFrame126("", 8145);
- sendFrame126("", 8146);
- sendFrame126("", 8147);
- sendFrame126("", 8148);
- sendFrame126("", 8149);
- sendFrame126("", 8150);
- sendFrame126("", 8155);
- sendFrame126("", 8156);
- sendFrame126("", 8157);
- sendFrame126("", 8158);
- sendQuestSomething(8143);
- showInterface(8134);
- }
- public void addObject(int objectX, int objectY, int NewObjectID, int Face) {
- outStream.createFrameVarSizeWord(60);
- outStream.writeByte(objectY-(mapRegionY*8));
- outStream.writeByteC(objectX-(mapRegionX*8));
- /* CREATE OBJECT*/
- if (NewObjectID > -1) {
- outStream.writeByte(151);
- outStream.writeByteS(0);
- outStream.writeWordBigEndian(NewObjectID);
- outStream.writeByteA(Face); // 0= WEST | -1 = NORTH | -2 = EAST | -3 = SOUTH
- }
- outStream.endFrameVarSizeWord();
- }
- public void removeObject(int x, int y, int object) {
- // romoves obj from currentx,y
- outStream.createFrameVarSizeWord(60); // tells baseX and baseY to client
- outStream.writeByte(y-(mapRegionY*8));
- outStream.writeByteC(x-(mapRegionX*8));
- outStream.writeByte(101); // remove object
- outStream.writeByteC(0); // x and y from baseX
- outStream.writeByte(0); // ??
- outStream.endFrameVarSizeWord();
- }
- public void logout() {
- if(roomcord() && inroom) {
- inroom = false;
- server.playersinroom -= 1;
- teleportToX = 3109;
- teleportToY = 3167;
- }
- if (inCombat) {
- }
- if (validClient(duel_with) && duelFight) {
- getClient(duel_with).DuelVictory();
- } else {
- declineDuel();
- }
- sendMessage("Please wait... logging out may take time");
- sendQuest(" Please wait...", 2458);
- savegame(true);
- sendQuest("Click here to logout", 2458);
- //println("Logout");
- outStream.createFrame(109);
- }
- public int loadgame(String playerName, String playerPass) {
- for (Integer bUid: server.bannedUid) {
- if (uid == bUid.intValue()) {
- return 4;
- }
- }
- long start = System.currentTimeMillis();
- String line = "";
- String token = "";
- String token2 = "";
- String[]token3 = new String[3];
- boolean EndOfFile = false;
- int ReadMode = 0;
- BufferedReader characterfile = null;
- boolean charFileFound = false;
- int[]playerLooks = new int[19];
- try {
- characterfile = new BufferedReader(new FileReader("./characters/"+playerName+".txt"));
- charFileFound = true;
- } catch (FileNotFoundException fileex1) {
- }
- if (charFileFound == false) {
- misc.println(playerName+": character file not found.");
- //health//
- for (int i = 0; i < playerLevel.length; i++) {
- if (i == 3) {
- playerLevel[i] = 10;
- playerXP[i] = 1155;
- currentHealth = 10;
- maxHealth = 10;
- } else {
- playerLevel[i] = 1;
- playerXP[i] = 0;
- }
- }
- //Starting look//
- playerLook[0] = 1;
- playerLook[1] = 5;
- playerLook[2] = 5;
- playerLook[3] = 7;
- playerLook[4] = 3;
- playerLook[5] = 0;
- //health//
- for (int i = 0; i < playerLevel.length; i++) {
- if (i == 3) {
- playerLevel[i] = 10;
- playerXP[i] = 1155;
- currentHealth = 10;
- maxHealth = 10;
- }
- }
- //starting position
- teleportToX = 3434;
- teleportToY = 2891;
- heightLevel = 0;
- //inventory//
- //playerItems[i] = 0;
- //amount//
- //playerItemsN[i] = 0;
- //Equipt//
- playerEquipment[3] = 1291;
- playerEquipment[5] = 1171;
- //amount//
- playerEquipmentN[3] = 1;
- playerEquipmentN[5] = 1;
- //bank//
- bankItems[0] = 996;
- //amount//
- bankItemsN[0] = 10000;
- //end//
- return 0;
- }
- try {
- line = characterfile.readLine();
- } catch (IOException ioexception) {
- misc.println(playerName+": error loading file.");
- return 3;
- }
- while (EndOfFile == false && line != null) {
- line = line.trim();
- int spot = line.indexOf("=");
- if (spot > -1) {
- token = line.substring(0, spot);
- token = token.trim();
- token2 = line.substring(spot+1);
- token2 = token2.trim();
- token3 = token2.split("\t");
- switch (ReadMode) {
- case 1:
- if (token.equals("character-username")) {
- if (playerName.equalsIgnoreCase(token2)) {
- }
- else {
- saveNeeded = false;
- validClient = false;
- return 3;
- }
- }
- else if (token.equals("character-password")) {
- if (playerPass.equalsIgnoreCase(token2)) {
- }
- else {
- saveNeeded = false;
- validClient = false;
- return 3;
- }
- }
- break;
- case 2:
- if (token.equals("character-height")) {
- heightLevel = Integer.parseInt(token2);
- }
- else if (token.equals("character-posx")) {
- teleportToX = Integer.parseInt(token2);
- }
- else if (token.equals("character-posy")) {
- teleportToY = Integer.parseInt(token2);
- }
- else if (token.equals("character-rights")) {
- playerRights = Integer.parseInt(token2);
- }
- else if (token.equals("character-ismember")) {
- playerIsMember = Integer.parseInt(token2);
- }
- else if (token.equals("character-messages")) {
- playerMessages = Integer.parseInt(token2);
- }
- else if (token.equals("character-lastconnection")) {
- playerLastConnect = token2;
- }
- else if (token.equals("character-lastlogin")) {
- playerLastLogin = Integer.parseInt(token2);
- }
- else if (token.equals("character-energy")) {
- playerEnergy = Integer.parseInt(token2);
- }
- else if (token.equals("character-gametime")) {
- playerGameTime = Integer.parseInt(token2);
- }
- else if (token.equals("character-gamecount")) {
- playerGameCount = Integer.parseInt(token2);
- }
- else if (token.equals("character-ancients")) {
- ancients = Integer.parseInt(token2);
- }
- else if (token.equals("character-rating")) {
- rating = Integer.parseInt(token2);
- }
- else if (token.equals("character-FightType")) {
- FightType = Integer.parseInt(token2);
- }
- else if (token.equals("character-SkillID")) {
- SkillID = Integer.parseInt(token2);
- }
- break;
- case 3:
- if (token.equals("character-equip")) {
- playerEquipment[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
- playerEquipmentN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
- }
- break;
- case 4:
- if (token.equals("character-look")) {
- playerLooks[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
- }
- break;
- case 5:
- if (token.equals("character-skill")) {
- playerLevel[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
- playerXP[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
- int level = 0;
- if (playerXP[Integer.parseInt(token3[0])] > 13040000) {
- level = 99;
- }
- else {
- level = getLevelForXP(playerXP[Integer.parseInt(token3[0])]);
- }
- playerLevel[Integer.parseInt(token3[0])] = level;
- if(Integer.parseInt(token3[0]) != 3) {
- setSkillLevel(Integer.parseInt(token3[0]), level, playerXP[Integer.parseInt(token3[0])]);
- }
- if (Integer.parseInt(token3[0]) == 3) {
- currentHealth = Integer.parseInt(token3[1]);
- }
- }
- break;
- case 6:
- if (token.equals("character-item")) {
- playerItems[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
- playerItemsN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
- }
- break;
- case 7:
- if (token.equals("character-bank")) {
- bankItems[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]);
- bankItemsN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]);
- }
- break;
- case 8:
- if (token.equals("character-friend")) {
- friends[Integer.parseInt(token3[0])] = Long.parseLong(token3[1]);
- }
- break;
- case 9:
- if (token.equals("character-ignore")) {
- ignores[Integer.parseInt(token3[0])] = Long.parseLong(token3[1]);
- }
- break;
- }
- } else {
- if (line.equals("[ACCOUNT]"))
- ReadMode = 1;
- else if (line.equals("[CHARACTER]"))
- ReadMode = 2;
- else if (line.equals("[EQUIPMENT]"))
- ReadMode = 3;
- else if (line.equals("[LOOK]"))
- ReadMode = 4;
- else if (line.equals("[SKILLS]"))
- ReadMode = 5;
- else if (line.equals("[ITEMS]"))
- ReadMode = 6;
- else if (line.equals("[BANK]"))
- ReadMode = 7;
- else if (line.equals("[FRIENDS]"))
- ReadMode = 8;
- else if (line.equals("[IGNORES]"))
- ReadMode = 9;
- else if (line.equals("[EOF]")) {
- //end of file now do whatever you set.
- try {
- characterfile.close();
- } catch (IOException ioexception) {
- }
- setLook(playerLooks);
- updateRequired = true;
- appearanceUpdateRequired = true;
- long end = System.currentTimeMillis()-start;
- //println("Loading Process Completed ["+(playerRights > 0 ? "Has powers" : "Regular player")+", lag: "+end+" ms]");
- return 0;
- }
- }
- //Exception occured @ some line
- try {
- line = characterfile.readLine();
- } catch (IOException ioexception1) {
- EndOfFile = true;
- }
- }
- try {
- characterfile.close();
- } catch (IOException ioexception) {
- }
- println("Failed to load player: "+playerName);
- return 13;
- }
- public void savegame(boolean logout) {
- if (playerName == null || ! validClient) {
- saveNeeded = false;
- return;
- }
- if (logout) {
- if (fightId > 0) {
- client f = (client)server.playerHandler.players[fightId];
- if (f != null) {
- f.fighting = false;
- f.hits = 0;
- }
- }
- }
- if (logout && inTrade) {
- declineTrade();
- }
- BufferedWriter characterfile = null;
- try {
- characterfile = new BufferedWriter(new FileWriter("./characters/"+playerName+".txt"));
- /*ACCOUNT*/
- characterfile.write("[ACCOUNT]", 0, 9);
- characterfile.newLine();
- characterfile.write("character-username = ", 0, 21);
- characterfile.write(playerName, 0, playerName.length());
- characterfile.newLine();
- characterfile.write("character-password = ", 0, 21);
- characterfile.write((playerPass), 0, (playerPass).length());
- characterfile.newLine();
- characterfile.newLine();
- /*CHARACTER*/
- characterfile.write("[CHARACTER]", 0, 11);
- characterfile.newLine();
- characterfile.write("character-height = ", 0, 19);
- characterfile.write(Integer.toString(heightLevel), 0, Integer.toString(heightLevel).length());
- characterfile.newLine();
- characterfile.write("character-posx = ", 0, 17);
- characterfile.write(Integer.toString(absX), 0, Integer.toString(absX).length());
- characterfile.newLine();
- characterfile.write("character-posy = ", 0, 17);
- characterfile.write(Integer.toString(absY), 0, Integer.toString(absY).length());
- characterfile.newLine();
- characterfile.write("character-rights = ", 0, 19);
- characterfile.write(Integer.toString(playerRights), 0, Integer.toString(playerRights).length());
- characterfile.newLine();
- characterfile.write("character-ismember = ", 0, 21);
- characterfile.write(Integer.toString(playerIsMember), 0, Integer.toString(playerIsMember).length());
- characterfile.newLine();
- characterfile.write("character-messages = ", 0, 21);
- characterfile.write(Integer.toString(playerMessages), 0, Integer.toString(playerMessages).length());
- characterfile.newLine();
- characterfile.write("character-lastconnection = ", 0, 27);
- characterfile.write(playerLastConnect, 0, playerLastConnect.length());
- characterfile.newLine();
- characterfile.write("character-lastlogin = ", 0, 22);
- characterfile.write(Integer.toString(playerLastLogin), 0, Integer.toString(playerLastLogin).length());
- characterfile.newLine();
- characterfile.write("character-energy = ", 0, 19);
- characterfile.write(Integer.toString(playerEnergy), 0, Integer.toString(playerEnergy).length());
- characterfile.newLine();
- characterfile.write("character-gametime = ", 0, 21);
- characterfile.write(Integer.toString(playerGameTime), 0, Integer.toString(playerGameTime).length());
- characterfile.newLine();
- characterfile.write("character-gamecount = ", 0, 22);
- characterfile.write(Integer.toString(playerGameCount), 0, Integer.toString(playerGameCount).length());
- characterfile.newLine();
- characterfile.write("character-ancients = ", 0, 21);
- characterfile.write(Integer.toString(ancients), 0, Integer.toString(ancients).length());
- characterfile.newLine();
- characterfile.write("character-rating = ", 0, 19);
- characterfile.write(Integer.toString(rating), 0, Integer.toString(rating).length());
- characterfile.newLine();
- characterfile.write("character-FightType = ", 0, 22);
- characterfile.write(Integer.toString(FightType), 0, Integer.toString(FightType).length());
- characterfile.newLine();
- characterfile.write("character-SkillID = ", 0, 20);
- characterfile.write(Integer.toString(SkillID), 0, Integer.toString(SkillID).length());
- characterfile.newLine();
- characterfile.newLine();
- /*EQUIPMENT*/
- characterfile.write("[EQUIPMENT]", 0, 11);
- characterfile.newLine();
- for (int i = 0; i < playerEquipment.length; i++) {
- characterfile.write("character-equip = ", 0, 18);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(playerEquipment[i]), 0, Integer.toString(playerEquipment[i]).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(playerEquipmentN[i]), 0, Integer.toString(playerEquipmentN[i]).length());
- characterfile.write(" ", 0, 1);
- characterfile.newLine();
- }
- characterfile.newLine();
- /*LOOK*/
- characterfile.write("[LOOK]", 0, 6);
- characterfile.newLine();
- int[]Looks = getLook();
- for (int i = 0; i < Looks.length; i++) {
- characterfile.write("character-look = ", 0, 17);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(Looks[i]), 0, Integer.toString(Looks[i]).length());
- characterfile.newLine();
- }
- characterfile.newLine();
- /*SKILLS*/
- characterfile.write("[SKILLS]", 0, 8);
- characterfile.newLine();
- for (int i = 0; i < playerLevel.length; i++) {
- characterfile.write("character-skill = ", 0, 18);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- if(i == 3) {
- characterfile.write(Integer.toString(currentHealth), 0, Integer.toString(currentHealth).length());
- } else {
- characterfile.write(Integer.toString(playerLevel[i]), 0, Integer.toString(playerLevel[i]).length());
- }
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(playerXP[i]), 0, Integer.toString(playerXP[i]).length());
- characterfile.newLine();
- }
- characterfile.newLine();
- /*ITEMS*/
- characterfile.write("[ITEMS]", 0, 7);
- characterfile.newLine();
- for (int i = 0; i < playerItems.length; i++) {
- if (playerItems[i] > 0) {
- characterfile.write("character-item = ", 0, 17);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(playerItems[i]), 0, Integer.toString(playerItems[i]).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(playerItemsN[i]), 0, Integer.toString(playerItemsN[i]).length());
- characterfile.newLine();
- }
- }
- characterfile.newLine();
- /*BANK*/
- characterfile.write("[BANK]", 0, 6);
- characterfile.newLine();
- for (int i = 0; i < bankItems.length; i++) {
- if (bankItems[i] > 0) {
- characterfile.write("character-bank = ", 0, 17);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(bankItems[i]), 0, Integer.toString(bankItems[i]).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Integer.toString(bankItemsN[i]), 0, Integer.toString(bankItemsN[i]).length());
- characterfile.newLine();
- }
- }
- characterfile.newLine();
- /*FRIENDS*/
- characterfile.write("[FRIENDS]", 0, 9);
- characterfile.newLine();
- for (int i = 0; i < friends.length; i++) {
- if (friends[i] > 0) {
- characterfile.write("character-friend = ", 0, 19);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Long.toString(friends[i]), 0, Long.toString(friends[i]).length());
- characterfile.newLine();
- }
- }
- characterfile.newLine();
- /*IGNORES*/
- characterfile.write("[IGNORES]", 0, 9);
- characterfile.newLine();
- for (int i = 0; i < ignores.length; i++) {
- if (ignores[i] > 0) {
- characterfile.write("character-ignore = ", 0, 19);
- characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
- characterfile.write(" ", 0, 1);
- characterfile.write(Long.toString(ignores[i]), 0, Long.toString(ignores[i]).length());
- characterfile.newLine();
- }
- }
- characterfile.newLine();
- /*EOF*/
- characterfile.write("[EOF]", 0, 5);
- characterfile.newLine();
- characterfile.newLine();
- characterfile.close();
- } catch (IOException ioexception) {
- misc.println(playerName+": error writing file.");
- }
- saveNeeded = false;
- }
- public void saveStats(boolean logout) {
- String[]parts = new String[] {
- "pGender", "pHead", "pTorso", "pArms", "pHands", "pLegs", "pFeet", "pBeard", "pHairC", "pTorsoC", "pLegsC", "pFeetC", "pSkinC"
- };
- try {
- int[]look = {
- pGender, pHead, pBeard, pTorso, pArms, pHands, pLegs, pFeet, pHairC, pTorsoC, pLegsC, pFeetC, pSkinC, playerLook[0], playerLook[1], playerLook[2], playerLook[3], playerLook[4], playerLook[5]
- };
- boolean DoInsert = true;
- int ID = -1;
- int ID2 = -1;
- int test1 = -1;
- int test2 = -1;
- //mysql_connect();
- long allxp = 0;
- for (int i = 0; i < 21; i++) {
- if (i != 18) {
- allxp += playerXP[i];
- }
- }
- int totallvl = playerLevel[0]+playerLevel[1]+playerLevel[2]+playerLevel[3]+playerLevel[4]+playerLevel[5]+playerLevel[6]+playerLevel[7]+playerLevel[8]+playerLevel[9]+playerLevel[10]+playerLevel[11]+playerLevel[12]+playerLevel[13]+playerLevel[14]+playerLevel[15]+playerLevel[16]+playerLevel[17]+playerLevel[18]+playerLevel[19]+playerLevel[20];
- int combatLevel = (int)((double)playerLevel[0]*0.32707+(double)playerLevel[1]*0.249+(double)playerLevel[2]*0.324+(double)playerLevel[3]*0.25+(double)playerLevel[5]*0.124);
- String online = "online = 0";
- if (!logout)
- online = "online = "+server.world;
- else
- saveNeeded = false;
- } catch (Exception e) {
- }
- }
- public void fsBar(int id1, int id2, int id3) {
- outStream.createFrame(70);
- outStream.writeWord(id1);
- outStream.writeWordBigEndian(id2);
- outStream.writeWordBigEndian(id3);
- }
- public void l33thax(int id) {
- outStream.createFrame(171);
- outStream.writeByte(0);
- outStream.writeWord(id);
- flushOutStream();
- }
- public void writeLog(String data, String file) {
- //used for bans/mutes/chatlogs etc. -bakatool
- BufferedWriter bw = null;
- try {
- bw = new BufferedWriter(new FileWriter("config//"+file+".txt", true));
- bw.write(data);
- bw.newLine();
- bw.flush();
- } catch (IOException ioe) {
- ioe.printStackTrace();
- } finally {
- if (bw != null)
- try {
- bw.close();
- } catch (IOException ioe2) {
- System.out.println("Error writing system log.");
- ioe2.printStackTrace();
- }
- }
- }
- public boolean checkLog(String file, String playerName) {
- //check bans/mutes/chatlogs etc.. -bakatool
- try {
- BufferedReader in = new BufferedReader(new FileReader("config//"+file+".txt"));
- String data = null;
- while ((data = in.readLine()) != null) {
- if (playerName.equalsIgnoreCase(data)) {
- return true;
- }
- }
- } catch (IOException e) {
- System.out.println("Critical error while checking for data!");
- System.out.println(file+":"+playerName);
- e.printStackTrace();
- }
- return false;
- }
- public void fromBank(int itemID, int fromSlot, int amount) {
- if (!IsBanking) {
- closeInterface();
- return;
- }
- if (amount > 0) {
- if (bankItems[fromSlot] > 0) {
- if (!takeAsNote) {
- if (Item.itemStackable[bankItems[fromSlot]-1]) {
- if (bankItemsN[fromSlot] > amount) {
- if (addItem((bankItems[fromSlot]-1), amount)) {
- bankItemsN[fromSlot] -= amount;
- resetBank();
- resetItems(5064);
- }
- } else {
- if (addItem((bankItems[fromSlot]-1), bankItemsN[fromSlot])) {
- bankItems[fromSlot] = 0;
- bankItemsN[fromSlot] = 0;
- resetBank();
- resetItems(5064);
- }
- }
- } else {
- while (amount > 0) {
- if (bankItemsN[fromSlot] > 0) {
- if (addItem((bankItems[fromSlot]-1), 1)) {
- bankItemsN[fromSlot] += -1;
- amount--;
- } else {
- amount = 0;
- }
- } else {
- amount = 0;
- }
- }
- resetBank();
- resetItems(5064);
- }
- } else if (takeAsNote && Item.itemIsNote[bankItems[fromSlot]]) {
- // if (Item.itemStackable[bankItems[fromSlot]+1])
- // {
- if (bankItemsN[fromSlot] > amount) {
- if (addItem(bankItems[fromSlot], amount)) {
- bankItemsN[fromSlot] -= amount;
- resetBank();
- resetItems(5064);
- }
- } else {
- if (addItem(bankItems[fromSlot], bankItemsN[fromSlot])) {
- bankItems[fromSlot] = 0;
- bankItemsN[fromSlot] = 0;
- resetBank();
- resetItems(5064);
- }
- }
- } else {
- sendMessage("Item can't be drawn as note.");
- if (Item.itemStackable[bankItems[fromSlot]-1]) {
- if (bankItemsN[fromSlot] > amount) {
- if (addItem((bankItems[fromSlot]-1), amount)) {
- bankItemsN[fromSlot] -= amount;
- resetBank();
- resetItems(5064);
- }
- } else {
- if (addItem((bankItems[fromSlot]-1), bankItemsN[fromSlot])) {
- bankItems[fromSlot] = 0;
- bankItemsN[fromSlot] = 0;
- resetBank();
- resetItems(5064);
- }
- }
- } else {
- while (amount > 0) {
- if (bankItemsN[fromSlot] > 0) {
- if (addItem((bankItems[fromSlot]-1), 1)) {
- bankItemsN[fromSlot] += -1;
- amount--;
- } else {
- amount = 0;
- }
- } else {
- amount = 0;
- }
- }
- resetBank();
- resetItems(5064);
- }
- }
- }
- }
- }
- public int getItemSlot(int itemID) {
- for (int slot = 0; slot < playerItems.length; slot++) {
- if (playerItems[slot] == (itemID+1)) {
- return slot;
- }
- }
- return -1;
- }
- public boolean addSkillXP(int amount, int skill) {
- if (randomed) {
- sendMessage("You must answer the genie before you can gain experience!");
- return false;
- }
- if ((amount + playerXP[skill]) < 0 || amount + playerXP[skill] > 200000000 || playerXP[skill] >= 200000000) {
- playerXP[skill] = 200000000;
- refreshSkills();
- return false;
- }
- int oldLevel = getLevelForXP(playerXP[skill]);
- //int[] statId = {4004, 4008, 4006, 4016, 4010, 4012, 4014, 4034, 4038, 4026, 4032, 4036, 4024, 4030, 4028, 4020, 4018, 4022, 4152};
- playerXP[skill] += amount;
- if (oldLevel < getLevelForXP(playerXP[skill])) {
- //if(oldLevel >= 85)
- animation(199, absY, absX);
- playerLevel[skill] = getLevelForXP(playerXP[skill]);
- //stillgfx(623, absY, absX);
- //levelup(skill);
- updateRequired = true;
- appearanceUpdateRequired = true;
- sendMessage("Congratulations, you just advanced a "+statName[skill]+" level.");
- if(skill == 3 || skill == playerLevel[playerHitpoints]) {
- currentHealth += 1;
- if(currentHealth >= playerLevel[3]) {
- currentHealth = playerLevel[3];
- }
- }
- if (playerLevel[skill] > 84)
- yell(playerName+"'s "+statName[skill]+" level is now "+playerLevel[skill]+"!");
- //sendFrame126(playerName + " (" + combatLevel + ")", 6572);
- setSkillLevel(skill, playerLevel[skill], playerXP[skill]);
- }
- //setSkillLevel(skill, playerLevel[skill], playerXP[skill]);
- refreshSkills();
- if (skill == 2) {
- CalculateMaxHit();
- }
- return true;
- }
- 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 bankItem(int itemID, int fromSlot, int amount) {
- if(!IsBanking)
- return false;
- if (playerItemsN[fromSlot] <= 0) {
- return false;
- }
- if (!Item.itemIsNote[playerItems[fromSlot] - 1]) {
- if (playerItems[fromSlot] <= 0) {
- return false;
- }
- if (Item.itemStackable[playerItems[fromSlot] - 1]
- || playerItemsN[fromSlot] > 1) {
- int toBankSlot = 0;
- boolean alreadyInBank = false;
- for (int i = 0; i < playerBankSize; i++) {
- if (bankItems[i] == playerItems[fromSlot]) {
- if (playerItemsN[fromSlot] < amount) {
- amount = playerItemsN[fromSlot];
- }
- alreadyInBank = true;
- toBankSlot = i;
- i = playerBankSize + 1;
- }
- }
- if (!alreadyInBank && freeBankSlots() > 0) {
- for (int i = 0; i < playerBankSize; i++) {
- if (bankItems[i] <= 0) {
- toBankSlot = i;
- i = playerBankSize + 1;
- }
- }
- bankItems[toBankSlot] = playerItems[fromSlot];
- if (playerItemsN[fromSlot] < amount) {
- amount = playerItemsN[fromSlot];
- }
- if ((bankItemsN[toBankSlot] + amount) <= maxItemAmount
- && (bankItemsN[toBankSlot] + amount) > -1) {
- bankItemsN[toBankSlot] += amount;
- } else {
- sendMessage("Bank full!");
- return false;
- }
- deleteItem((playerItems[fromSlot] - 1), fromSlot, amount);
- resetItems(5064);
- resetBank();
- return true;
- } else if (alreadyInBank) {
- if ((bankItemsN[toBankSlot] + amount) <= maxItemAmount
- && (bankItemsN[toBankSlot] + amount) > -1) {
- bankItemsN[toBankSlot] += amount;
- } else {
- sendMessage("Bank full!");
- return false;
- }
- deleteItem((playerItems[fromSlot] - 1), fromSlot, amount);
- resetItems(5064);
- resetBank();
- return true;
- } else {
- sendMessage("Bank full!");
- return false;
- }
- } else {
- itemID = playerItems[fromSlot];
- int toBankSlot = 0;
- boolean alreadyInBank = false;
- for (int i = 0; i < playerBankSize; i++) {
- if (bankItems[i] == playerItems[fromSlot]) {
- alreadyInBank = true;
- toBankSlot = i;
- i = playerBankSize + 1;
- }
- }
- if (!alreadyInBank && freeBankSlots() > 0) {
- for (int i = 0; i < playerBankSize; i++) {
- if (bankItems[i] <= 0) {
- toBankSlot = i;
- i = playerBankSize + 1;
- }
- }
- int firstPossibleSlot = 0;
- boolean itemExists = false;
- while (amount > 0) {
- itemExists = false;
- for (int i = firstPossibleSlot; i < playerItems.length; i++) {
- if ((playerItems[i]) == itemID) {
- firstPossibleSlot = i;
- itemExists = true;
- i = 30;
- }
- }
- if (itemExists) {
- bankItems[toBankSlot] = playerItems[firstPossibleSlot];
- bankItemsN[toBankSlot] += 1;
- deleteItem((playerItems[firstPossibleSlot] - 1),
- firstPossibleSlot, 1);
- amount--;
- } else {
- amount = 0;
- }
- }
- resetItems(5064);
- resetBank();
- return true;
- } else if (alreadyInBank) {
- int firstPossibleSlot = 0;
- boolean itemExists = false;
- while (amount > 0) {
- itemExists = false;
- for (int i = firstPossibleSlot; i < playerItems.length; i++) {
- if ((playerItems[i]) == itemID) {
- firstPossibleSlot = i;
- itemExists = true;
- i = 30;
- }
- }
- if (itemExists) {
- bankItemsN[toBankSlot] += 1;
- deleteItem((playerItems[firstPossibleSlot] - 1),
- firstPossibleSlot, 1);
- amount--;
- } else {
- amount = 0;
- }
- }
- resetItems(5064);
- resetBank();
- return true;
- } else {
- sendMessage("Bank full!");
- return false;
- }
- }
- } else if (Item.itemIsNote[playerItems[fromSlot] - 1]
- && !Item.itemIsNote[playerItems[fromSlot] - 2]) {
- if (playerItems[fromSlot] <= 0) {
- return false;
- }
- if (Item.itemStackable[playerItems[fromSlot] - 1]
- || playerItemsN[fromSlot] > 1) {
- int toBankSlot = 0;
- boolean alreadyInBank = false;
- for (int i = 0; i < playerBankSize; i++) {
- if (bankItems[i] == (playerItems[fromSlot] - 1)) {
- if (playerItemsN[fromSlot] < amount) {
- amount = playerItemsN[fromSlot];
- }
- alreadyInBank = true;
- toBankSlot = i;
- i = playerBankSize + 1;
- }
- }
- if (!alreadyInBank && freeBankSlots() > 0) {
- for (int i = 0; i < playerBankSize; i++) {
- if (bankItems[i] <= 0) {
- toBankSlot = i;
- i = playerBankSize + 1;
- }
- }
- bankItems[toBankSlot] = (playerItems[fromSlot] - 1);
- if (playerItemsN[fromSlot] < amount) {
- amount = playerItemsN[fromSlot];
- }
- if ((bankItemsN[toBankSlot] + amount) <= maxItemAmount
- && (bankItemsN[toBankSlot] + amount) > -1) {
- bankItemsN[toBankSlot] += amount;
- } else {
- return false;
- }
- deleteItem((playerItems[fromSlot] - 1), fromSlot, amount);
- resetItems(5064);
- resetBank();
- return true;
- } else if (alreadyInBank) {
- if ((bankItemsN[toBankSlot] + amount) <= maxItemAmount
- && (bankItemsN[toBankSlot] + amount) > -1) {
- bankItemsN[toBankSlot] += amount;
- } else {
- return false;
- }
- deleteItem((playerItems[fromSlot] - 1), fromSlot, amount);
- resetItems(5064);
- resetBank();
- return true;
- } else {
- sendMessage("Bank full!");
- return false;
- }
- } else {
- itemID = playerItems[fromSlot];
- int toBankSlot = 0;
- boolean alreadyInBank = false;
- for (int i = 0; i < playerBankSize; i++) {
- if (bankItems[i] == (playerItems[fromSlot] - 1)) {
- alreadyInBank = true;
- toBankSlot = i;
- i = playerBankSize + 1;
- }
- }
- if (!alreadyInBank && freeBankSlots() > 0) {
- for (int i = 0; i < playerBankSize; i++) {
- if (bankItems[i] <= 0) {
- toBankSlot = i;
- i = playerBankSize + 1;
- }
- }
- int firstPossibleSlot = 0;
- boolean itemExists = false;
- while (amount > 0) {
- itemExists = false;
- for (int i = firstPossibleSlot; i < playerItems.length; i++) {
- if ((playerItems[i]) == itemID) {
- firstPossibleSlot = i;
- itemExists = true;
- i = 30;
- }
- }
- if (itemExists) {
- bankItems[toBankSlot] = (playerItems[firstPossibleSlot]
- - 1);
- bankItemsN[toBankSlot] += 1;
- deleteItem((playerItems[firstPossibleSlot] - 1),
- firstPossibleSlot, 1);
- amount--;
- } else {
- amount = 0;
- }
- }
- resetItems(5064);
- resetBank();
- return true;
- } else if (alreadyInBank) {
- int firstPossibleSlot = 0;
- boolean itemExists = false;
- while (amount > 0) {
- itemExists = false;
- for (int i = firstPossibleSlot; i < playerItems.length; i++) {
- if ((playerItems[i]) == itemID) {
- firstPossibleSlot = i;
- itemExists = true;
- i = 30;
- }
- }
- if (itemExists) {
- bankItemsN[toBankSlot] += 1;
- deleteItem((playerItems[firstPossibleSlot] - 1),
- firstPossibleSlot, 1);
- amount--;
- } else {
- amount = 0;
- }
- }
- resetItems(5064);
- resetBank();
- return true;
- } else {
- sendMessage("Bank full!");
- return false;
- }
- }
- } else {
- sendMessage("Item not supported " + (playerItems[fromSlot] - 1));
- return false;
- }
- }
- public void createItem(int newItemID) {
- int Maxi = server.itemHandler.DropItemCount;
- for (int i = 0; i <= Maxi; i++) {
- if (server.itemHandler.DroppedItemsID[i] < 1) {
- server.itemHandler.DroppedItemsID[i] = newItemID;
- server.itemHandler.DroppedItemsX[i] = (absX);
- server.itemHandler.DroppedItemsY[i] = (absY);
- server.itemHandler.DroppedItemsN[i] = 1;
- server.itemHandler.DroppedItemsH[i] = heightLevel;
- server.itemHandler.DroppedItemsDDelay[i] = (server.itemHandler.MaxDropShowDelay+1); // this way the item can NEVER be showed to another client
- server.itemHandler.DroppedItemsDropper[i] = playerId;
- if (i == Maxi) {
- server.itemHandler.DropItemCount++;
- if (server.itemHandler.DropItemCount >= (server.itemHandler.MaxDropItems+1)) {
- server.itemHandler.DropItemCount = 0;
- misc.println("! Notify item resterting !");
- }
- }
- break;
- }
- }
- }
- public void createItem(int newItemID, int amount) {
- int Maxi = server.itemHandler.DropItemCount;
- for (int i = 0; i <= Maxi; i++) {
- if (server.itemHandler.DroppedItemsID[i] < 1) {
- server.itemHandler.DroppedItemsID[i] = newItemID;
- server.itemHandler.DroppedItemsX[i] = (absX);
- server.itemHandler.DroppedItemsY[i] = (absY);
- server.itemHandler.DroppedItemsN[i] = amount;
- server.itemHandler.DroppedItemsH[i] = heightLevel;
- server.itemHandler.DroppedItemsDDelay[i] = (server.itemHandler.MaxDropShowDelay+1); // this way the item can NEVER be showed to another client
- server.itemHandler.DroppedItemsDropper[i] = playerId;
- if (i == Maxi) {
- server.itemHandler.DropItemCount++;
- if (server.itemHandler.DropItemCount >= (server.itemHandler.MaxDropItems+1)) {
- server.itemHandler.DropItemCount = 0;
- misc.println("! Notify item resterting !");
- }
- }
- break;
- }
- }
- }
- public void createItemForAll(int newItemID, int amount, int X, int Y) {
- int Maxi = server.itemHandler.DropItemCount;
- for (int i = 0; i <= Maxi; i++) {
- if (server.itemHandler.DroppedItemsID[i] < 1) {
- server.itemHandler.DroppedItemsID[i] = newItemID;
- server.itemHandler.DroppedItemsX[i] = X;
- server.itemHandler.DroppedItemsY[i] = Y;
- server.itemHandler.DroppedItemsN[i] = amount;
- server.itemHandler.DroppedItemsH[i] = heightLevel;
- server.itemHandler.DroppedItemsDDelay[i] = (server.itemHandler.MaxDropShowDelay+1); // this way the item can NEVER be showed to another client
- server.itemHandler.DroppedItemsDropper[i] = playerId;
- if (i == Maxi) {
- server.itemHandler.DropItemCount++;
- if (server.itemHandler.DropItemCount >= (server.itemHandler.MaxDropItems+1)) {
- server.itemHandler.DropItemCount = 0;
- misc.println("! Notify item resterting !");
- }
- }
- break;
- }
- }
- }
- public void removeAllItems() {
- for (int i = 0; i < playerItems.length; i++) {
- playerItems[i] = 0;
- }
- for (int i = 0; i < playerItemsN.length; i++) {
- playerItemsN[i] = 0;
- }
- resetItems(3214);
- }
- public void resetItems(int WriteFrame) {
- outStream.createFrameVarSizeWord(53);
- outStream.writeWord(WriteFrame);
- outStream.writeWord(playerItems.length);
- for (int i = 0; i < playerItems.length; i++) {
- if (playerItemsN[i] > 254) {
- outStream.writeByte(255); // item's stack count. if over 254, write byte 255
- outStream.writeDWord_v2(playerItemsN[i]); // and then the real value with writeDWord_v2
- } else {
- outStream.writeByte(playerItemsN[i]);
- }
- if (playerItems[i] > 20000 || playerItems[i] < 0) {
- playerItems[i] = 20000;
- }
- outStream.writeWordBigEndianA(playerItems[i]); // item id
- }
- outStream.endFrameVarSizeWord();
- }
- public void SendWeapon(int Weapon, String WeaponName) {
- String WeaponName2 = WeaponName.replaceAll("Bronze", "");
- WeaponName2 = WeaponName2.replaceAll("Iron", "");
- WeaponName2 = WeaponName2.replaceAll("Steel", "");
- WeaponName2 = WeaponName2.replaceAll("Scythe", "");
- WeaponName2 = WeaponName2.replaceAll("Black", "");
- WeaponName2 = WeaponName2.replaceAll("Mithril", "");
- WeaponName2 = WeaponName2.replaceAll("Adamant", "");
- WeaponName2 = WeaponName2.replaceAll("Rune", "");
- WeaponName2 = WeaponName2.replaceAll("Granite", "");
- WeaponName2 = WeaponName2.replaceAll("Dragon", "");
- WeaponName2 = WeaponName2.replaceAll("Crystal", "");
- WeaponName2 = WeaponName2.trim();
- if (WeaponName.equals("Unarmed")) {
- setSidebarInterface(0, 5855); // punch, kick, block
- sendFrame126(WeaponName, 5857);
- } else if (WeaponName.endsWith("whip")) {
- setSidebarInterface(0, 12290); // flick, lash, deflect
- sendFrame246(12291, 200, Weapon);
- sendFrame126(WeaponName, 12293);
- } else if (WeaponName.endsWith("Scythe")) {
- setSidebarInterface(0, 776); // flick, lash, deflect
- sendFrame246(12291, 200, Weapon);
- sendFrame126(WeaponName, 778);
- } else if (WeaponName.endsWith("bow")) {
- setSidebarInterface(0, 1764); // accurate, rapid, longrange
- sendFrame246(1765, 200, Weapon);
- sendFrame126(WeaponName, 1767);
- } else if (WeaponName.endsWith("bow full")) {
- setSidebarInterface(0, 1764); // accurate, rapid, longrange
- sendFrame246(1765, 200, Weapon);
- sendFrame126(WeaponName, 1767);
- } else if (WeaponName.startsWith("Staff") || WeaponName.endsWith("staff")) {
- setSidebarInterface(0, 328); // spike, impale, smash, block
- sendFrame246(329, 200, Weapon);
- sendFrame126(WeaponName, 331);
- } else if (WeaponName2.startsWith("dart")) {
- setSidebarInterface(0, 4446); // accurate, rapid, longrange
- sendFrame246(4447, 200, Weapon);
- sendFrame126(WeaponName, 4449);
- } else if (WeaponName2.startsWith("dagger")) {
- setSidebarInterface(0, 2276); // stab, lunge, slash, block
- sendFrame246(2277, 200, Weapon);
- sendFrame126(WeaponName, 2279);
- } else if (WeaponName2.startsWith("pickaxe")) {
- setSidebarInterface(0, 5570); // spike, impale, smash, block
- sendFrame246(5571, 200, Weapon);
- sendFrame126(WeaponName, 5573);
- } else if (WeaponName2.startsWith("axe") || WeaponName2.startsWith("battleaxe")) {
- setSidebarInterface(0, 1698); // chop, hack, smash, block
- sendFrame246(1699, 200, Weapon);
- sendFrame126(WeaponName, 1701);
- } else if (WeaponName2.startsWith("Axe") || WeaponName2.startsWith("Battleaxe")) {
- setSidebarInterface(0, 1698); // chop, hack, smash, block
- sendFrame246(1699, 200, Weapon);
- sendFrame126(WeaponName, 1701);
- } else if (WeaponName2.startsWith("halberd")) {
- setSidebarInterface(0, 8460); // jab, swipe, fend
- sendFrame246(8461, 200, Weapon);
- sendFrame126(WeaponName, 8463);
- } else if (WeaponName2.startsWith("spear")) {
- setSidebarInterface(0, 4679); // lunge, swipe, pound, block
- sendFrame246(4680, 200, Weapon);
- sendFrame126(WeaponName, 4682);
- } else {
- setSidebarInterface(0, 2423); // chop, slash, lunge, block
- sendFrame246(2424, 200, Weapon);
- sendFrame126(WeaponName, 2426);
- }
- }
- public void resetOTItems(int WriteFrame) {
- client other = getClient(trade_reqId);
- if (!validClient(trade_reqId))
- return;
- outStream.createFrameVarSizeWord(53);
- outStream.writeWord(WriteFrame);
- int len = other.offeredItems.toArray().length;
- int current = 0;
- outStream.writeWord(len);
- for (GameItem item: other.offeredItems) {
- if (item.amount > 254) {
- outStream.writeByte(255); // item's stack count. if over 254, write byte 255
- outStream.writeDWord_v2(item.amount); // and then the real value with writeDWord_v2
- } else {
- outStream.writeByte(item.amount);
- }
- outStream.writeWordBigEndianA(item.id+1); // item id
- current++;
- }
- if (current < 27) {
- for (int i = current; i < 28; i++) {
- outStream.writeByte(1);
- outStream.writeWordBigEndianA(-1);
- }
- }
- outStream.endFrameVarSizeWord();
- }
- public void resetTItems(int WriteFrame) {
- outStream.createFrameVarSizeWord(53);
- outStream.writeWord(WriteFrame);
- int len = offeredItems.toArray().length;
- int current = 0;
- outStream.writeWord(len);
- for (GameItem item: offeredItems) {
- if (item.amount > 254) {
- outStream.writeByte(255); // item's stack count. if over 254, write byte 255
- outStream.writeDWord_v2(item.amount); // and then the real value with writeDWord_v2
- } else {
- outStream.writeByte(item.amount);
- }
- outStream.writeWordBigEndianA(item.id+1); // item id
- current++;
- }
- if (current < 27) {
- for (int i = current; i < 28; i++) {
- outStream.writeByte(1);
- outStream.writeWordBigEndianA(-1);
- }
- }
- outStream.endFrameVarSizeWord();
- }
- public void resetShop(int ShopID) {
- int TotalItems = 0;
- for (int i = 0; i < server.shopHandler.MaxShopItems; i++) {
- if (server.shopHandler.ShopItems[ShopID][i] > 0) {
- TotalItems++;
- }
- }
- if (TotalItems > server.shopHandler.MaxShopItems) {
- TotalItems = server.shopHandler.MaxShopItems;
- }
- outStream.createFrameVarSizeWord(53);
- outStream.writeWord(3900);
- outStream.writeWord(TotalItems);
- int TotalCount = 0;
- for (int i = 0; i < server.shopHandler.ShopItems.length; i++) {
- if (server.shopHandler.ShopItems[ShopID][i] > 0 || i <= server.shopHandler.ShopItemsStandard[ShopID]) {
- if (server.shopHandler.ShopItemsN[ShopID][i] > 254) {
- outStream.writeByte(255); // item's stack count. if over 254, write byte 255
- outStream.writeDWord_v2(server.shopHandler.ShopItemsN[ShopID][i]); // and then the real value with writeDWord_v2
- } else {
- outStream.writeByte(server.shopHandler.ShopItemsN[ShopID][i]);
- }
- if (server.shopHandler.ShopItems[ShopID][i] > 20000 || server.shopHandler.ShopItems[ShopID][i] < 0) {
- server.shopHandler.ShopItems[ShopID][i] = 20000;
- }
- outStream.writeWordBigEndianA(server.shopHandler.ShopItems[ShopID][i]); // item id
- TotalCount++;
- }
- if (TotalCount > TotalItems) {
- break;
- }
- }
- outStream.endFrameVarSizeWord();
- }
- public void resetBank() {
- outStream.createFrameVarSizeWord(53);
- outStream.writeWord(5382); // bank
- outStream.writeWord(playerBankSize); // number of items
- for (int i = 0; i < playerBankSize; i++) {
- if (bankItemsN[i] > 254) {
- outStream.writeByte(255);
- outStream.writeDWord_v2(bankItemsN[i]);
- } else {
- outStream.writeByte(bankItemsN[i]); // amount
- }
- if (bankItemsN[i] < 1) {
- bankItems[i] = 0;
- }
- if (bankItems[i] > 20000 || bankItems[i] < 0) {
- bankItems[i] = 20000;
- }
- outStream.writeWordBigEndianA(bankItems[i]); // itemID
- }
- outStream.endFrameVarSizeWord();
- }
- public void moveItems(int from, int to, int moveWindow) {
- if (moveWindow == 3724) {
- int tempI;
- int tempN;
- tempI = playerItems[from];
- tempN = playerItemsN[from];
- playerItems[from] = playerItems[to];
- playerItemsN[from] = playerItemsN[to];
- playerItems[to] = tempI;
- playerItemsN[to] = tempN;
- }
- if (moveWindow == 34453 && from >= 0 && to >= 0 && from < playerBankSize && to < playerBankSize) {
- int tempI;
- int tempN;
- tempI = bankItems[from];
- tempN = bankItemsN[from];
- bankItems[from] = bankItems[to];
- bankItemsN[from] = bankItemsN[to];
- bankItems[to] = tempI;
- bankItemsN[to] = tempN;
- }
- if (moveWindow == 34453) {
- resetBank();
- } else if (moveWindow == 18579) {
- resetItems(5064);
- } else if (moveWindow == 3724) {
- resetItems(3214);
- }
- }
- public int itemAmount(int itemID) {
- int tempAmount = 0;
- for (int i = 0; i < playerItems.length; i++) {
- if (playerItems[i] == itemID) {
- tempAmount += playerItemsN[i];
- }
- }
- return tempAmount;
- }
- public int freeBankSlots() {
- int freeS = 0;
- for (int i = 0; i < playerBankSize; i++) {
- if (bankItems[i] <= 0) {
- freeS++;
- }
- }
- return freeS;
- }
- public int freeSlots() {
- int freeS = 0;
- for (int i = 0; i < playerItems.length; i++) {
- if (playerItems[i] <= 0) {
- freeS++;
- }
- }
- return freeS;
- }
- public boolean pickUpItem(int item, int amount) {
- if (!Item.itemStackable[item] || amount < 1) {
- amount = 1;
- }
- if (!canUse(item)) {
- sendMessage("You must be a premium member to pickup this item");
- return false;
- }
- if (freeSlots() > 0 && poimiY == currentY && poimiX == currentX)
- // actionAmount++;
- // if (actionTimer == 0)
- {
- // The following 6 rows delete the item from the ground
- /* outStream.createFrame(85); //setting the location
- outStream.writeByteC(currentY);
- outStream.writeByteC(currentX);
- outStream.createFrame(156); //remove item frame
- outStream.writeByteS(0); //x(4 MSB) y(LSB) coords
- outStream.writeWord(item); // itemid*/
- // actionTimer = 20;
- for (int i = 0; i < playerItems.length; i++) {
- if (playerItems[i] == (item+1) && Item.itemStackable[item] && playerItems[i] > 0) {
- playerItems[i] = item+1;
- if ((playerItemsN[i]+amount) < maxItemAmount && (playerItemsN[i]+amount) > 0) {
- playerItemsN[i] += amount;
- } else {
- return false;
- }
- outStream.createFrameVarSizeWord(34);
- outStream.writeWord(3214);
- outStream.writeByte(i);
- outStream.writeWord(playerItems[i]);
- if (playerItemsN[i] > 254) {
- outStream.writeByte(255);
- outStream.writeDWord(playerItemsN[i]);
- } else {
- outStream.writeByte(playerItemsN[i]); // amount
- }
- outStream.endFrameVarSizeWord();
- i = 30;
- return true;
- }
- }
- for (int i = 0; i < playerItems.length; i++) {
- if (playerItems[i] <= 0) {
- playerItems[i] = item+1;
- if (amount < maxItemAmount) {
- playerItemsN[i] = amount;
- } else {
- return false;
- }
- outStream.createFrameVarSizeWord(34);
- outStream.writeWord(3214);
- outStream.writeByte(i);
- outStream.writeWord(playerItems[i]);
- if (playerItemsN[i] > 254) {
- outStream.writeByte(255);
- outStream.writeDWord_v2(playerItemsN[i]);
- } else {
- outStream.writeByte(playerItemsN[i]); // amount
- }
- outStream.endFrameVarSizeWord();
- i = 30;
- return true;
- }
- }
- return true;
- } else {
- return false;
- }
- }
- public void openUpBank() {
- sendFrame248(5292, 5063);
- resetItems(5064);
- IsBanking = true;
- }
- public void openUpShop(int ShopID) {
- sendFrame126(server.shopHandler.ShopName[ShopID], 3901);
- sendFrame248(3824, 3822);
- resetItems(3823);
- resetShop(ShopID);
- IsShopping = true;
- MyShopID = ShopID;
- }
- public void openUpPinSettings() {
- sendFrame126("Customers are reminded", 15038);
- sendFrame126("that they should NEVER", 15039);
- sendFrame126("tell anyone their Bank", 15040);
- sendFrame126("PINs or passwords, nor", 15041);
- sendFrame126("should they ever enter", 15042);
- sendFrame126("their PINs on any website", 15043);
- sendFrame126("from.", 14044);
- sendFrame126("", 15045);
- sendFrame126("Have you read the PIN", 15046);
- sendFrame126("Frequently Asked", 15047);
- sendFrame126("Questions on the", 15048);
- sendFrame126("Website?", 15049);
- sendFrame126("No PIN set", 15105);
- sendFrame126("3 days", 15107);
- sendFrame171(0, 15074);
- sendFrame171(1, 15077);
- sendFrame171(1, 15081);
- sendFrame171(1, 15108);
- showInterface(14924);
- }
- public boolean addItem(int item, int amount) {
- if (item >= Item.itemStackable.length) {
- return false;
- }
- if (item < 0 || amount < 1) {
- return true;
- }
- if (!Item.itemStackable[item] || amount < 1) {
- amount = 1;
- }
- if ((freeSlots() >= amount && ! Item.itemStackable[item]) || freeSlots() > 0) {
- for (int i = 0; i < playerItems.length; i++) {
- if (playerItems[i] == (item+1) && Item.itemStackable[item] && playerItems[i] > 0) {
- playerItems[i] = (item+1);
- if ((playerItemsN[i]+amount) < maxItemAmount && (playerItemsN[i]+amount) > -1) {
- playerItemsN[i] += amount;
- } else {
- playerItemsN[i] = maxItemAmount;
- }
- outStream.createFrameVarSizeWord(34);
- outStream.writeWord(3214);
- outStream.writeByte(i);
- outStream.writeWord(playerItems[i]);
- if (playerItemsN[i] > 254) {
- outStream.writeByte(255);
- outStream.writeDWord(playerItemsN[i]);
- } else {
- outStream.writeByte(playerItemsN[i]); // amount
- }
- outStream.endFrameVarSizeWord();
- i = 30;
- return true;
- }
- }
- for (int i = 0; i < playerItems.length; i++) {
- if (playerItems[i] <= 0) {
- playerItems[i] = item+1;
- if (amount < maxItemAmount && amount > -1) {
- playerItemsN[i] = amount;
- } else {
- playerItemsN[i] = maxItemAmount;
- }
- outStream.createFrameVarSizeWord(34);
- outStream.writeWord(3214);
- outStream.writeByte(i);
- outStream.writeWord(playerItems[i]);
- if (playerItemsN[i] > 254) {
- outStream.writeByte(255);
- outStream.writeDWord(playerItemsN[i]);
- } else {
- outStream.writeByte(playerItemsN[i]); // amount
- }
- outStream.endFrameVarSizeWord();
- i = 30;
- return true;
- }
- }
- return false;
- } else {
- sendMessage("Not enough space in your inventory.");
- return false;
- }
- }
- public void dropItem(int droppedItem, int slot) {
- // misc.printlnTag("droppeditem ["+playerItems[slot]+"] which is ["+(droppedItem+1)+"]");
- boolean a = true;
- if (!canUse(droppedItem)) {
- sendMessage("You must be a premium member to drop this item");
- return;
- }
- if (playerItemsN[slot] != 0 && droppedItem != -1 && playerItems[slot] == droppedItem+1) {
- for (int i = 0; i < noTrade.length; i++) {
- if (droppedItem == noTrade[i]) {
- sendMessage("You can't drop this item");
- return;
- }
- }
- ItemHandler.addItem(playerItems[slot]-1, absX, absY, playerItemsN[slot], playerId, false);
- // createGroundItem(droppedItem, absX, absY, c);
- deleteItem(droppedItem, slot, playerItemsN[slot]);
- updateRequired = true;
- }
- }
- public void createGroundItem(int itemID, int itemX, int itemY, int itemAmount) {
- // Phate: Omg fucking sexy! creates item at absolute X and Y
- outStream.createFrame(85); // Phate: Spawn ground item
- outStream.writeByteC((itemY-8*mapRegionY));
- outStream.writeByteC((itemX-8*mapRegionX));
- outStream.createFrame(44);
- outStream.writeWordBigEndianA(itemID);
- outStream.writeWord(itemAmount);
- outStream.writeByte(0); // x(4 MSB) y(LSB) coords
- // System.out.println("CreateGroundItem "+itemID+" "+(itemX - 8 * mapRegionX)+","+(itemY - 8 * mapRegionY)+" "+itemAmount);
- }
- public void removeGroundItem(int itemX, int itemY, int itemID) {
- // Phate: Omg fucking sexy! remoevs an item from absolute X and Y
- outStream.createFrame(85); // Phate: Item Position Frame
- outStream.writeByteC((itemY-8*mapRegionY));
- outStream.writeByteC((itemX-8*mapRegionX));
- outStream.createFrame(156); // Phate: Item Action: Delete
- outStream.writeByteS(0); // x(4 MSB) y(LSB) coords
- outStream.writeWord(itemID); // Phate: Item ID
- // misc.printlnTag("RemoveGroundItem "+itemID+" "+(itemX - 8 * mapRegionX)+","+(itemY - 8 * mapRegionY));
- }
- public void deleteItem(int id, int amount) {
- deleteItem(id, GetItemSlot(id), amount);
- }
- public void deleteItem(int id, int slot, int amount) {
- if (slot > -1 && slot < playerItems.length) {
- if ((playerItems[slot]-1) == id) {
- if (playerItemsN[slot] > amount) {
- playerItemsN[slot] -= amount;
- } else {
- playerItemsN[slot] = 0;
- playerItems[slot] = 0;
- }
- resetItems(3214);
- }
- } else {
- //sendMessage("Item Alched");
- }
- }
- public void setEquipment(int wearID, int amount, int targetSlot) {
- int Stat = playerDefence;
- if (targetSlot == playerWeapon) {
- Stat = playerAttack;
- }
- if(wearID == 4151 && FightType == 2){
- FightType = 3;
- SkillID = 3;
- }
- outStream.createFrameVarSizeWord(34);
- outStream.writeWord(1688);
- outStream.writeByte(targetSlot);
- outStream.writeWord((wearID+1));
- if (amount > 254) {
- outStream.writeByte(255);
- outStream.writeDWord(amount);
- } else {
- outStream.writeByte(amount); // amount
- }
- outStream.endFrameVarSizeWord();
- if ((targetSlot == playerWeapon) && (wearID >= 0)) {
- SendWeapon(wearID, GetItemName(wearID));
- playerSE = GetStandAnim(wearID);
- playerSEW = GetWalkAnim(wearID);
- playerSER = GetRunAnim(wearID);
- playerSEA = 0x326;
- }
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public boolean wear(int wearID, int slot) {
- if (duelFight && duelRule[3]) {
- sendMessage("Equipment changing has been disabled in this duel");
- return false;
- }
- if(wearID == 4151 && FightType == 2){
- FightType = 3;
- SkillID = 3;
- }
- int targetSlot = 0;
- targetSlot = itemType(wearID);
- int[]two_hand = {
- 1319, 4718, 4726, 1409, 4710, 7158
- };
- for (int a = 0; a < two_hand.length; a++) {
- if (wearID == two_hand[a] && playerEquipment[playerShield] > 0) {
- if (playerHasItem(-1)) {
- addItem(playerEquipment[playerShield], 1);
- playerEquipment[playerShield] = -1;
- } else {
- sendMessage("You can't wear this weapon with a shield");
- return false;
- }
- }
- if (itemType(wearID) == playerShield && playerEquipment[playerWeapon] == two_hand[a]) {
- if (playerHasItem(-1)) {
- addItem(playerEquipment[playerWeapon], 1);
- playerEquipment[playerWeapon] = -1;
- } else {
- sendMessage("You can't wear a shield with this weapon");
- return false;
- }
- }
- if (!canUse(wearID)) {
- sendMessage("You must be a premium member to use this item");
- return false;
- }
- }
- if ((playerItems[slot]-1) == wearID) {
- targetSlot = itemType(wearID);
- int CLAttack = GetCLAttack(wearID);
- int CLDefence = GetCLDefence(wearID);
- int CLStrength = GetCLStrength(wearID);
- int CLMagic = GetCLMagic(wearID);
- int CLRanged = GetCLRanged(wearID);
- boolean GoFalse = false;
- if (CLAttack > playerLevel[playerAttack]) {
- sendMessage("You need "+CLAttack+" "+statName[playerAttack]+" to equip this item.");
- GoFalse = true;
- }
- if (CLDefence > playerLevel[playerDefence]) {
- sendMessage("You need "+CLDefence+" "+statName[playerDefence]+" to equip this item.");
- GoFalse = true;
- }
- if (CLStrength > playerLevel[playerStrength]) {
- sendMessage("You need "+CLStrength+" "+statName[playerStrength]+" to equip this item.");
- GoFalse = true;
- }
- if (CLMagic > playerLevel[playerMagic]) {
- sendMessage("You need "+CLMagic+" "+statName[playerMagic]+" to equip this item.");
- GoFalse = true;
- }
- if (CLRanged > playerLevel[playerRanged]) {
- sendMessage("You need "+CLRanged+" "+statName[playerRanged]+" to equip this item.");
- GoFalse = true;
- }
- if (GoFalse == true) {
- return false;
- }
- int wearAmount = playerItemsN[slot];
- if (wearAmount < 1) {
- return false;
- }
- if (slot >= 0 && wearID >= 0) {
- deleteItem(wearID, slot, wearAmount);
- if (playerEquipment[targetSlot] != wearID && playerEquipment[targetSlot] >= 0) {
- addItem(playerEquipment[targetSlot], playerEquipmentN[targetSlot]);
- } else if (Item.itemStackable[wearID] && playerEquipment[targetSlot] == wearID) {
- wearAmount = playerEquipmentN[targetSlot]+wearAmount;
- } else if (playerEquipment[targetSlot] >= 0) {
- addItem(playerEquipment[targetSlot], playerEquipmentN[targetSlot]);
- }
- }
- outStream.createFrameVarSizeWord(34);
- outStream.writeWord(1688);
- outStream.writeByte(targetSlot);
- outStream.writeWord(wearID+1);
- if (wearAmount > 254) {
- outStream.writeByte(255);
- outStream.writeDWord(wearAmount);
- } else {
- outStream.writeByte(wearAmount); // amount
- }
- outStream.endFrameVarSizeWord();
- playerEquipment[targetSlot] = wearID;
- playerEquipmentN[targetSlot] = wearAmount;
- if (targetSlot == playerWeapon && playerEquipment[playerShield] != -1 && Item.itemTwoHanded[wearID] == true) {
- remove(playerEquipment[playerShield], playerShield);
- }
- if (targetSlot == playerWeapon) {
- SendWeapon(wearID, GetItemName(wearID));
- playerSE = GetStandAnim(wearID);
- playerSEW = GetWalkAnim(wearID);
- playerSER = GetRunAnim(wearID);
- playerSEA = 0x326;
- pEmote = playerSE;
- }
- ResetBonus();
- GetBonus();
- wearing = false;
- WriteBonus();
- updateRequired = true;
- appearanceUpdateRequired = true;
- return true;
- }
- return false;
- }
- public int itemType(int item) {
- for (int i = 0; i < Item.capes.length; i++) {
- if (item == Item.capes[i]) {
- return playerCape;
- }
- }
- for (int i = 0; i < Item.hats.length; i++) {
- if (item == Item.hats[i]) {
- return playerHat;
- }
- }
- for (int i = 0; i < Item.boots.length; i++) {
- if (item == Item.boots[i]) {
- return playerFeet;
- }
- }
- for (int i = 0; i < Item.gloves.length; i++) {
- if (item == Item.gloves[i]) {
- return playerHands;
- }
- }
- for (int i = 0; i < Item.shields.length; i++) {
- if (item == Item.shields[i]) {
- return playerShield;
- }
- }
- for (int i = 0; i < Item.amulets.length; i++) {
- if (item == Item.amulets[i]) {
- return playerAmulet;
- }
- }
- for (int i = 0; i < Item.arrows.length; i++) {
- if (item == Item.arrows[i]) {
- return playerArrows;
- }
- }
- for (int i = 0; i < Item.rings.length; i++) {
- if (item == Item.rings[i]) {
- return playerRing;
- }
- }
- for (int i = 0; i < Item.body.length; i++) {
- if (item == Item.body[i]) {
- return playerChest;
- }
- }
- for (int i = 0; i < Item.legs.length; i++) {
- if (item == Item.legs[i]) {
- return playerLegs;
- }
- }
- // Default
- return playerWeapon;
- }
- public void remove(int wearID, int slot) {
- if (duelFight && duelRule[3]) {
- sendMessage("Equipment changing has been disabled in this duel!");
- return;
- }
- if (addItem(playerEquipment[slot], playerEquipmentN[slot])) {
- playerEquipment[slot] = -1;
- playerEquipmentN[slot] = 0;
- outStream.createFrame(34);
- outStream.writeWord(6);
- outStream.writeWord(1688);
- outStream.writeByte(slot);
- outStream.writeWord(0);
- outStream.writeByte(0);
- ResetBonus();
- GetBonus();
- WriteBonus();
- if (slot == playerWeapon) {
- SendWeapon(-1, "Unarmed");
- }
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- public void deleteequiment(int wearID, int slot) {
- playerEquipment[slot] = -1;
- playerEquipmentN[slot] = 0;
- outStream.createFrame(34);
- outStream.writeWord(6);
- outStream.writeWord(1688);
- outStream.writeByte(slot);
- outStream.writeWord(0);
- outStream.writeByte(0);
- ResetBonus();
- GetBonus();
- WriteBonus();
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void TeleTo(String s, int level) {
- if (duelStatus == 3) {
- sendMessage("You can't move during a duel!");
- return;
- }
- if (actionTimer == 0) {
- teleX = absX;
- teleY = absY;
- newheightLevel = heightLevel;
- closeInterface();
- teleport();
- actionTimer = 10;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- public void setChatOptions(int publicChat, int privateChat, int tradeBlock) {
- outStream.createFrame(206);
- outStream.writeByte(publicChat); // On = 0, Friends = 1, Off = 2, Hide = 3
- outStream.writeByte(privateChat); // On = 0, Friends = 1, Off = 2
- outStream.writeByte(tradeBlock); // On = 0, Friends = 1, Off = 2
- }
- public void openWelcomeScreen(int recoveryChange, boolean memberWarning, int messages, int lastLoginIP, int lastLogin) {
- outStream.createFrame(176);
- // days since last recovery change 200 for not yet set 201 for members server,
- // otherwise, how many days ago recoveries have been changed.
- outStream.writeByteC(recoveryChange);
- outStream.writeWordA(messages); // # of unread messages
- outStream.writeByte(memberWarning ? 1 : 0); // 1 for member on non-members world warning
- outStream.writeDWord_v2(lastLoginIP); // ip of last login
- outStream.writeWord(lastLogin); // days
- }
- public void setClientConfig(int id, int state) {
- outStream.createFrame(36);
- outStream.writeWordBigEndian(id);
- outStream.writeByte(state);
- }
- public void initializeClientConfiguration() {
- // TODO: this is sniffed from a session (?), yet have to figure out what each of these does.
- setClientConfig(18, 1);
- setClientConfig(19, 0);
- setClientConfig(25, 0);
- setClientConfig(43, 0);
- setClientConfig(44, 0);
- setClientConfig(75, 0);
- setClientConfig(83, 0);
- setClientConfig(84, 0);
- setClientConfig(85, 0);
- setClientConfig(86, 0);
- setClientConfig(87, 0);
- setClientConfig(88, 0);
- setClientConfig(89, 0);
- setClientConfig(90, 0);
- setClientConfig(91, 0);
- setClientConfig(92, 0);
- setClientConfig(93, 0);
- setClientConfig(94, 0);
- setClientConfig(95, 0);
- setClientConfig(96, 0);
- setClientConfig(97, 0);
- setClientConfig(98, 0);
- setClientConfig(99, 0);
- setClientConfig(100, 0);
- setClientConfig(101, 0);
- setClientConfig(104, 0);
- setClientConfig(106, 0);
- setClientConfig(108, 0);
- setClientConfig(115, 0);
- setClientConfig(143, 0);
- setClientConfig(153, 0);
- setClientConfig(156, 0);
- setClientConfig(157, 0);
- setClientConfig(158, 0);
- setClientConfig(166, 0);
- setClientConfig(167, 0);
- setClientConfig(168, 0);
- setClientConfig(169, 0);
- setClientConfig(170, 0);
- setClientConfig(171, 0);
- setClientConfig(172, 0);
- setClientConfig(173, 0);
- setClientConfig(174, 0);
- setClientConfig(203, 0);
- setClientConfig(210, 0);
- setClientConfig(211, 0);
- setClientConfig(261, 0);
- setClientConfig(262, 0);
- setClientConfig(263, 0);
- setClientConfig(264, 0);
- setClientConfig(265, 0);
- setClientConfig(266, 0);
- setClientConfig(268, 0);
- setClientConfig(269, 0);
- setClientConfig(270, 0);
- setClientConfig(271, 0);
- setClientConfig(280, 0);
- setClientConfig(286, 0);
- setClientConfig(287, 0);
- setClientConfig(297, 0);
- setClientConfig(298, 0);
- setClientConfig(301, 01);
- setClientConfig(304, 01);
- setClientConfig(309, 01);
- setClientConfig(311, 01);
- setClientConfig(312, 01);
- setClientConfig(313, 01);
- setClientConfig(330, 01);
- setClientConfig(331, 01);
- setClientConfig(342, 01);
- setClientConfig(343, 01);
- setClientConfig(344, 01);
- setClientConfig(345, 01);
- setClientConfig(346, 01);
- setClientConfig(353, 01);
- setClientConfig(354, 01);
- setClientConfig(355, 01);
- setClientConfig(356, 01);
- setClientConfig(361, 01);
- setClientConfig(362, 01);
- setClientConfig(363, 01);
- setClientConfig(377, 01);
- setClientConfig(378, 01);
- setClientConfig(379, 01);
- setClientConfig(380, 01);
- setClientConfig(383, 01);
- setClientConfig(388, 01);
- setClientConfig(391, 01);
- setClientConfig(393, 01);
- setClientConfig(399, 01);
- setClientConfig(400, 01);
- setClientConfig(406, 01);
- setClientConfig(408, 01);
- setClientConfig(414, 01);
- setClientConfig(417, 01);
- setClientConfig(423, 01);
- setClientConfig(425, 01);
- setClientConfig(427, 01);
- setClientConfig(433, 01);
- setClientConfig(435, 01);
- setClientConfig(436, 01);
- setClientConfig(437, 01);
- setClientConfig(439, 01);
- setClientConfig(440, 01);
- setClientConfig(441, 01);
- setClientConfig(442, 01);
- setClientConfig(443, 01);
- setClientConfig(445, 01);
- setClientConfig(446, 01);
- setClientConfig(449, 01);
- setClientConfig(452, 01);
- setClientConfig(453, 01);
- setClientConfig(455, 01);
- setClientConfig(464, 01);
- setClientConfig(465, 01);
- setClientConfig(470, 01);
- setClientConfig(482, 01);
- setClientConfig(486, 01);
- setClientConfig(491, 01);
- setClientConfig(492, 01);
- setClientConfig(493, 01);
- setClientConfig(496, 01);
- setClientConfig(497, 01);
- setClientConfig(498, 01);
- setClientConfig(499, 01);
- setClientConfig(502, 01);
- setClientConfig(503, 01);
- setClientConfig(504, 01);
- setClientConfig(505, 01);
- setClientConfig(506, 01);
- setClientConfig(507, 01);
- setClientConfig(508, 01);
- setClientConfig(509, 01);
- setClientConfig(510, 01);
- setClientConfig(511, 01);
- setClientConfig(512, 01);
- setClientConfig(515, 01);
- setClientConfig(518, 01);
- setClientConfig(520, 01);
- setClientConfig(521, 01);
- setClientConfig(524, 01);
- setClientConfig(525, 01);
- setClientConfig(531, 01);
- }
- public int GetLastLogin(int Date) {
- Calendar cal = new GregorianCalendar();
- int day = cal.get(Calendar.DAY_OF_MONTH);
- int month = cal.get(Calendar.MONTH);
- int year = cal.get(Calendar.YEAR);
- int calc = ((year*10000)+(month*100)+day);
- return (calc-Date);
- }
- // upon connection of a new client all the info has to be sent to client prior to starting the regular communication
- public void initialize() {
- objects();
- // first packet sent
- outStream.createFrame(249);
- outStream.writeByteA(playerIsMember); // 1 for members, zero for free
- outStream.writeWordBigEndianA(playerId);
- // here is the place for seting up the UI, stats, etc...
- setChatOptions(0, 0, 0);
- for (int i = 0; i < 25; i++) {
- setSkillLevel(i, playerLevel[i], playerXP[i]);
- }
- refreshSkills();
- outStream.createFrame(107); // resets something in the client
- setSidebarInterface(0, 2423); // attack tab
- setSidebarInterface(1, 3917); // skills tab
- setSidebarInterface(2, 638); // quest tab
- setSidebarInterface(3, 3213); // backpack tab
- setSidebarInterface(4, 1644); // items wearing tab
- setSidebarInterface(5, 5608); // pray tab
- setSidebarInterface(6, 12855); // magic tab (ancient = 12855)
- setSidebarInterface(7, -1); // ancient magicks
- setSidebarInterface(8, 5065); // friend
- setSidebarInterface(9, 5715); // ignore
- setSidebarInterface(10, 2449); // logout tab
- setSidebarInterface(11, 4445); // wrench tab
- setSidebarInterface(12, 147); // run tab
- setSidebarInterface(13, 1); // harp tab
- // add player commands...
- int dots = 0;
- int start[] = {
- 0, 0, 0, 0
- };
- int IPPart1 = 127;
- int IPPart2 = 0;
- int IPPart3 = 0;
- int IPPart4 = 1;
- if (playerLastConnect.length() < 7) {
- playerLastConnect = connectedFrom;
- }
- if (playerLastConnect.length() <= 15) {
- for (int j = 0; j <= playerLastConnect.length(); j++) {
- if ((j+1) <= playerLastConnect.length()) {
- if (playerLastConnect.substring(j, (j+1)).equals(".")) {
- start[dots] = j;
- dots++;
- }
- if (dots == 3) {
- break;
- }
- }
- }
- if (dots == 3) {
- IPPart1 = Integer.parseInt(playerLastConnect.substring(0, start[0]));
- IPPart2 = Integer.parseInt(playerLastConnect.substring((start[0]+1), start[1]));
- IPPart3 = Integer.parseInt(playerLastConnect.substring((start[1]+1), start[2]));
- IPPart4 = Integer.parseInt(playerLastConnect.substring((start[2]+1)));
- }
- } else {
- for (int j = 0; j <= playerLastConnect.length(); j++) {
- if ((j+1) <= playerLastConnect.length()) {
- if (playerLastConnect.substring(j, (j+1)).equals("-")) {
- start[dots] = j;
- dots++;
- }
- if (dots == 4) {
- break;
- }
- }
- }
- if (dots == 4) {
- try {
- IPPart1 = Integer.parseInt(playerLastConnect.substring(0, start[0]));
- IPPart2 = Integer.parseInt(playerLastConnect.substring((start[0]+1), start[1]));
- IPPart3 = Integer.parseInt(playerLastConnect.substring((start[1]+1), start[2]));
- IPPart4 = Integer.parseInt(playerLastConnect.substring((start[2]+1), (start[3])));
- } catch (NumberFormatException e) {
- }
- }
- }
- setClientConfig(108, 0);
- sendMessage("Welcome to Zernix!");
- if (premium) {
- sendMessage("Your account has premium member status");
- } else {
- sendMessage("You are not a premium member.");
- }
- if (playerMessages > 0)
- sendMessage("You have "+playerMessages+" new messages. Check your inbox at Odion.com to view them.");
- // FACE: 0= WEST | -1 = NORTH | -2 = EAST | -3 = SOUTH
- updateRating();
- //setSidebarInterface(6, 1151);
- sendFrame126(""+playerLevel[0]+"", 4004);
- sendFrame126(""+getLevelForXP(playerXP[0])+"", 4005);
- sendFrame126(""+playerLevel[1]+"", 4008);
- sendFrame126(""+getLevelForXP(playerXP[1])+"", 4009);
- sendFrame126(""+playerLevel[2]+"", 4006);
- sendFrame126(""+getLevelForXP(playerXP[2])+"", 4007);
- sendFrame126(""+currentHealth+"", 4016);
- sendFrame126(""+getLevelForXP(playerXP[3])+"", 4017);
- sendFrame126(""+playerLevel[4]+"", 4010);
- sendFrame126(""+getLevelForXP(playerXP[4])+"", 4011);
- sendFrame126(""+playerLevel[5]+"", 4012);
- sendFrame126(""+getLevelForXP(playerXP[5])+"", 4013);
- sendFrame126(""+playerLevel[6]+"", 4014);
- sendFrame126(""+getLevelForXP(playerXP[6])+"", 4015);
- sendFrame126(""+playerLevel[7]+"", 4034);
- sendFrame126(""+getLevelForXP(playerXP[7])+"", 4035);
- sendFrame126(""+playerLevel[8]+"", 4038);
- sendFrame126(""+getLevelForXP(playerXP[8])+"", 4039);
- sendFrame126(""+playerLevel[9]+"", 4026);
- sendFrame126(""+getLevelForXP(playerXP[9])+"", 4027);
- sendFrame126(""+playerLevel[10]+"", 4032);
- sendFrame126(""+getLevelForXP(playerXP[10])+"", 4033);
- sendFrame126(""+playerLevel[11]+"", 4036);
- sendFrame126(""+getLevelForXP(playerXP[11])+"", 4037);
- sendFrame126(""+playerLevel[12]+"", 4024);
- sendFrame126(""+getLevelForXP(playerXP[12])+"", 4025);
- sendFrame126(""+playerLevel[13]+"", 4030);
- sendFrame126(""+getLevelForXP(playerXP[13])+"", 4031);
- sendFrame126(""+playerLevel[14]+"", 4028);
- sendFrame126(""+getLevelForXP(playerXP[14])+"", 4029);
- sendFrame126(""+playerLevel[15]+"", 4020);
- sendFrame126(""+getLevelForXP(playerXP[15])+"", 4021);
- sendFrame126(""+playerLevel[16], 4018);
- sendFrame126(""+getLevelForXP(playerXP[16]), 4019);
- sendFrame126(""+playerLevel[17], 4022);
- sendFrame126(""+getLevelForXP(playerXP[17]), 4023);
- sendFrame126(""+playerLevel[20], 4152);
- sendFrame126(""+getLevelForXP(playerXP[20]), 4153);
- if (playerPass.equals("")) {
- sendMessage("No password set! Use ::pass [PASSWORD] to set one.");
- }
- WriteEnergy();
- //sendFrame126("Project16", 2451);
- sendFrame126("", 6067);
- sendFrame126("", 6071);
- SendWeapon(-1, "Unarmed");
- handler.updatePlayer(this, outStream);
- handler.updateNPC(this, outStream);
- setEquipment(playerEquipment[playerHat], playerEquipmentN[playerHat], playerHat);
- setEquipment(playerEquipment[playerCape], playerEquipmentN[playerCape], playerCape);
- setEquipment(playerEquipment[playerAmulet], playerEquipmentN[playerAmulet], playerAmulet);
- setEquipment(playerEquipment[playerArrows], playerEquipmentN[playerArrows], playerArrows);
- setEquipment(playerEquipment[playerChest], playerEquipmentN[playerChest], playerChest);
- setEquipment(playerEquipment[playerShield], playerEquipmentN[playerShield], playerShield);
- setEquipment(playerEquipment[playerLegs], playerEquipmentN[playerLegs], playerLegs);
- setEquipment(playerEquipment[playerHands], playerEquipmentN[playerHands], playerHands);
- setEquipment(playerEquipment[playerFeet], playerEquipmentN[playerFeet], playerFeet);
- setEquipment(playerEquipment[playerRing], playerEquipmentN[playerRing], playerRing);
- setEquipment(playerEquipment[playerWeapon], playerEquipmentN[playerWeapon], playerWeapon);
- resetItems(3214);
- resetBank();
- ResetBonus();
- GetBonus();
- WriteBonus();
- //objects
- /*ReplaceObject(2090, 3267, 3430, 0, 22);
- ReplaceObject(2094, 3268, 3431, 0, 22);
- ReplaceObject(2092, 3269, 3431, 0, 22);
- removeObject(2735, 3449, 8173);
- removeObject(2723, 3454, 8173);
- removeObject(2783, 2613, 3081);
- removeObject(2613, 3078, 2783);
- removeObject(2721, 3459, 8173);*/
- for (int c = 0; c < server.objectHandler.ObjectID.length; c++) {
- if (server.objectHandler.ObjectID[c] == -1)
- continue;
- addObject(server.objectHandler.ObjectX[c], server.objectHandler.ObjectY[c], server.objectHandler.ObjectID[c], server.objectHandler.ObjectFace[c]);
- }
- pmstatus(2);
- boolean pmloaded = false;
- for (int i = 0; i < friends.length; i++) {
- if (friends[i] != 0) {
- for (int i2 = 1; i2 < handler.maxPlayers; i2++) {
- if (handler.players[i2] != null && handler.players[i2].isActive && misc.playerNameToInt64(handler.players[i2].playerName) == friends[i]) {
- if (playerRights >= 2 || handler.players[i2].Privatechat == 0 || (handler.players[i2].Privatechat == 1 && handler.players[i2].isinpm(misc.playerNameToInt64(playerName)))) {
- loadpm(friends[i], GetWorld(i2));
- pmloaded = true;
- }
- break;
- }
- }
- if (!pmloaded) {
- loadpm(friends[i], 0);
- }
- pmloaded = false;
- }
- }
- for (int i1 = 1; i1 < handler.maxPlayers; i1++) {
- if (handler.players[i1] != null && handler.players[i1].isActive == true) {
- handler.players[i1].pmupdate(playerId, GetWorld(playerId));
- }
- }
- // Objects
- for (int i = 0; i < server.objectHandler.MaxObjects; i++) {
- if (server.objectHandler.ObjectID[i] > -1) {
- if (server.objectHandler.ObjectOpen[i] != server.objectHandler.ObjectOriOpen[i]) {
- ChangeDoor(i);
- }
- }
- }
- //start of free quests
- sendQuest("Zernix Quests", 640);
- sendQuest("", 663);
- sendQuest("", 7332);
- sendQuest("", 7331);
- sendQuest("", 7332);
- sendQuest("", 7333);
- sendQuest("", 7334);
- sendQuest("", 7336);
- sendQuest("", 7383);
- sendQuest("", 7339);
- sendQuest("", 7338);
- sendQuest("", 7340);
- sendQuest("", 7346);
- sendQuest("", 7341);
- sendQuest("", 7342);
- sendQuest("", 7337);
- sendQuest("", 7343);
- sendQuest("", 7335);
- sendQuest("", 7344);
- sendQuest("", 7345);
- sendQuest("", 7346);
- sendQuest("", 7347);
- sendQuest("", 7348);
- sendQuest("", 12772);
- sendQuest("", 673);
- sendQuest("", 7352);
- sendQuest("", 17510);
- sendQuest("", 7353);
- sendQuest("", 12129);
- sendQuest("", 8438);
- sendQuest("", 12852);
- sendQuest("", 15841);
- sendQuest("", 7354);
- sendQuest("", 7355);
- sendQuest("", 7356);
- sendQuest("", 8679);
- sendQuest("", 7459);
- sendQuest("", 16149);
- sendQuest("", 6987);
- sendQuest("", 7357);
- sendQuest("", 12836);
- sendQuest("", 7358);
- sendQuest("", 7359);
- sendQuest("", 14169);
- sendQuest("", 10115);
- sendQuest("", 14604);
- sendQuest("", 7360);
- sendQuest("", 12282);
- sendQuest("", 13577);
- sendQuest("", 12839);
- sendQuest("", 7361);
- sendQuest("", 16128);
- sendQuest("", 11857);
- sendQuest("", 7362);
- sendQuest("", 7363);
- sendQuest("", 7364);
- sendQuest("", 10135);
- sendQuest("", 4508);
- sendQuest("", 18517);
- sendQuest("", 11907);
- sendQuest("", 7365);
- sendQuest("", 7366);
- sendQuest("", 7367);
- sendQuest("", 13389);
- sendQuest("", 15487);
- sendQuest("", 7368);
- sendQuest("", 11132);
- sendQuest("", 7369);
- sendQuest("", 12389);
- sendQuest("", 13974);
- sendQuest("", 6027);
- sendQuest("", 7370);
- sendQuest("", 8137);
- sendQuest("", 7371);
- sendQuest("", 12345);
- sendQuest("", 7372);
- sendQuest("", 8115);
- sendQuest("", 18684);
- sendQuest("", 15499);
- sendQuest("", 18306);
- sendQuest("", 668);
- sendQuest("", 8576);
- sendQuest("", 12139);
- sendQuest("", 14912);
- sendQuest("", 7373);
- sendQuest("", 7374);
- sendQuest("", 8969);
- sendQuest("", 15352);
- sendQuest("", 7375);
- sendQuest("", 7376);
- sendQuest("", 15098);
- sendQuest("", 15592);
- sendQuest("", 249);
- sendQuest("", 1740);
- sendQuest("", 15235);
- sendQuest("", 3278);
- sendQuest("", 7378);
- sendQuest("", 6518);
- sendQuest("", 7379);
- sendQuest("", 7380);
- sendQuest("", 7381);
- sendQuest("", 11858);
- sendQuest("", 191);
- sendQuest("", 9927);
- sendQuest("", 6024);
- sendQuest("", 7349);
- sendQuest("", 7351);
- sendQuest("", 7350);
- sendQuest("", 13356);
- sendQuest("Accept Aid", 12585);
- sendQuest("Zernix, always use the", 2451);
- sendQuest("", 682);
- sendQuest("", 6294);
- sendQuest("", 6295);
- sendQuest("", 6296);
- sendQuest("", 6300);
- sendQuest("", 6301);
- sendQuest("", 6302);
- sendQuest("", 6303);
- sendQuest("", 6304);
- sendQuest("", 6305);
- sendQuest("", 6306);
- sendQuest("", 6307);
- //End of quests
- sendQuest("Nardan Teleport", 13037);
- sendQuest("Teleport back home", 13038);
- sendQuest("@gre@0/0", 13042);
- sendQuest("@gre@0/0", 13043);
- sendQuest("@gre@0/0", 13044);
- sendQuest("Ardourgne Teleport", 13047);
- sendQuest("Ardourgne", 13048);
- sendQuest("@gre@0/0", 13051);
- sendQuest("@gre@0/0", 13052);
- sendQuest("Camelot Teleport", 13055);
- sendQuest("Camelot", 13056);
- sendQuest("@gre@0/0", 13059);
- sendQuest("@gre@0/0", 13060);
- sendQuest("Port Khazard Teleport", 13063);
- sendQuest("Port Khazard", 13064);
- sendQuest("@gre@0/0", 13067);
- sendQuest("@gre@0/0", 13068);
- sendQuest("Lletya Teleport", 13071);
- sendQuest("Lletya", 13072);
- sendQuest("@gre@0/0", 13076);
- sendQuest("@gre@0/0", 13077);
- sendQuest("@gre@0/0", 13078);
- sendQuest("Grand Tree Teleport", 13081);
- sendQuest("Grand Tree", 13082);
- sendQuest("@gre@0/0", 13085);
- sendQuest("@gre@0/0", 13086);
- sendQuest("Crandor Teleport", 13089);
- sendQuest("Crandor", 13090);
- sendQuest("@gre@0/0", 13093);
- sendQuest("@gre@0/0", 13094);
- sendQuest("Monastery Teleport", 13097);
- sendQuest("Monastery", 13098);
- sendQuest("@gre@0/0", 13101);
- sendQuest("@gre@0/0", 13102);
- sendQuest("@gre@0/0", 12947); //smoke rush
- sendQuest("@gre@0/0", 12948); //smoke rush
- sendQuest("@gre@0/0", 12949); //smoke rush
- sendQuest("@gre@0/0", 12950); //smoke rush
- sendQuest("@gre@0/0", 12998); //shadow rush
- sendQuest("@gre@0/0", 12997); //shadow rush
- sendQuest("@gre@0/0", 12996); //shadow rush
- sendQuest("@gre@0/0", 12995); //shadow rush
- sendQuest("@gre@0/0", 12908); //blood rush
- sendQuest("@gre@0/0", 12909); //blood rush
- sendQuest("@gre@0/0", 12910); //blood rush
- sendQuest("@gre@0/0", 12868); //ice rush
- sendQuest("@gre@0/0", 12869); //ice rush
- sendQuest("@gre@0/0", 12870); //ice rush
- sendQuest("@gre@0/0", 12974); //smoke burst
- sendQuest("@gre@0/0", 12973); //smoke burst
- sendQuest("@gre@0/0", 12971); //smoke burst
- sendQuest("@gre@0/0", 12972); //smoke burst
- sendQuest("@gre@0/0", 13022); //shadow burst
- sendQuest("@gre@0/0", 13021); //shadow burst
- sendQuest("@gre@0/0", 13019); //shadow burst
- sendQuest("@gre@0/0", 13020); //shadow burst
- sendQuest("@gre@0/0", 12927); //blood burst
- sendQuest("@gre@0/0", 12928); //blood burst
- sendQuest("@gre@0/0", 12926); //blood burst
- sendQuest("@gre@0/0", 12889); //ice burst
- sendQuest("@gre@0/0", 12890); //ice burst
- sendQuest("@gre@0/0", 12888); //ice burst
- sendQuest("@gre@0/0", 12959); //smoke blitz
- sendQuest("@gre@0/0", 12960); //smoke blitz
- sendQuest("@gre@0/0", 12961); //smoke blitz
- sendQuest("@gre@0/0", 12962); //smoke blitz
- sendQuest("@gre@0/0", 13007); //shadow blitz
- sendQuest("@gre@0/0", 13008); //shadow blitz
- sendQuest("@gre@0/0", 13009); //shadow blitz
- sendQuest("@gre@0/0", 13010); //shadow blitz
- sendQuest("@gre@0/0", 12917); //blood blitz
- sendQuest("@gre@0/0", 12918); //blood blitz
- sendQuest("@gre@0/0", 12879); //ice blitz
- sendQuest("@gre@0/0", 12880); //ice blitz
- sendQuest("@gre@0/0", 12878); //ice blitz
- sendQuest("@gre@0/0", 12986); //smoke barrage
- sendQuest("@gre@0/0", 12985); //smoke barrage
- sendQuest("@gre@0/0", 12983); //smoke barrage
- sendQuest("@gre@0/0", 12984); //smoke barrage
- sendQuest("@gre@0/0", 13031); //shadow barrage
- sendQuest("@gre@0/0", 13032); //shadow barrage
- sendQuest("@gre@0/0", 13033); //shadow barrage
- sendQuest("@gre@0/0", 13034); //shadow barrage
- sendQuest("@gre@0/0", 12937); //blood barrage
- sendQuest("@gre@0/0", 12938); //blood barrage
- sendQuest("@gre@0/0", 12936); //blood barrage
- sendQuest("@gre@0/0", 12899); //ice barrage
- sendQuest("@gre@0/0", 12898); //ice barrage
- sendQuest("@gre@0/0", 12900); //ice barrage
- int[] lol = {
- 13199, 13200, 13201,
- 13250, 13251, 13252, 13253,
- 13155, 13156, 13157,
- //missing line//
- 13224, 13225, 13226, 13227,
- 13276, 13277, 13278, 13279,
- 13175, 13176, 13177,
- 13133, 13134, 13135,
- 13211, 13212, 13213, 13214,
- 13263, 13264, 13265, 13266,
- 13165, 13166,
- 13122, 13123, 13124,
- 13237, 13238, 13239, 13240,
- 13289, 13290, 13291, 13292,
- 13186, 13187, 13188,
- 13144, 13145, 13146
- };
- for(int auto = 0; auto < lol.length; auto++) {
- sendQuest("@gre@0/0", lol[auto]);
- }
- //main
- playerLastConnect = connectedFrom;
- sendQuest("Using this will send a notification to all online mods", 5967);
- sendQuest("@yel@Then click below to indicate which of our rules is being broken.", 5969);
- sendQuest("4: Bug abuse (includes noclip)", 5974);
- sendQuest("5: Odion staff impersonation", 5975);
- sendQuest("6: Monster luring or abuse", 5976);
- sendQuest("8: Item Duplication", 5978);
- sendQuest("10: Misuse of yell channel", 5980);
- sendQuest("12: Possible duped items", 5982);
- /*openWelcomeScreen(201, true, playerMessages,
- ((IPPart1 << 24) + (IPPart2 << 16) + (IPPart3 << 8)
- + IPPart4),
- GetLastLogin(playerLastLogin));*/
- }
- public void update() {
- handler.updatePlayer(this, outStream);
- handler.updateNPC(this, outStream);
- flushOutStream();
- }
- public static final int packetSizes[] = {
- 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, 0, 0, // 50
- 0, 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 int packetSize = 0, packetType = -1;
- public boolean process() {
- objects();
- scanPickup();
- if (inroom && System.currentTimeMillis()-server.fuck >= 80000) {
- server.fuck = System.currentTimeMillis();
- games();
- }
- if (ingame && System.currentTimeMillis()-server.jizz >= 50000) {
- end();
- }
- room();
- wildLevel();
- thiefdelay--;
- clickCount--;
- if(ani == true) {
- anim ++;
- setClientConfig(anim, 1);
- sendMessage("config: "+anim+"");
- }
- if(anima == true) {
- animat ++;
- setClientConfig(animat, 0);
- sendMessage("config: "+animat+"");
- }
- if(currentHealth >= playerLevel[3]) {
- currentHealth = playerLevel[3];
- }
- if (clickCount > 0) {
- runStream = false;
- sendMessage("no try!");
- }
- //if(IsCutting) {
- //sendMessage(""+(System.currentTimeMillis() - lastAction)+"");
- //}
- // is being called regularily every 500ms
- /*for(int i = 0; i < server.npcHandler.npcs.length; i++){
- if(server.npcHandler.npcs[i] != null){
- int xDiff = Math.abs(absX - server.npcHandler.npcs[i].absX);
- int yDiff = Math.abs(absY - server.npcHandler.npcs[i].absY);
- if(xDiff >= server.npcHandler.npcs[i].aggroRadius || yDiff >= server.npcHandler.npcs[i].aggroRadius){
- IsAttackingNPC = true;
- attacknpc = i;
- }
- }
- }*/
- if (spamButton && System.currentTimeMillis()-lastButton > 1100) {
- lastButton = System.currentTimeMillis();
- if (currentButton >= 700) {
- currentButton = 1;
- currentStatus++;
- }
- if (currentStatus >= 255) {
- spamButton = false;
- }
- println("sending button "+currentButton+", "+currentStatus);
- frame36(currentButton, currentStatus);
- currentButton++;
- }
- if (animationReset > 0 && System.currentTimeMillis() >= animationReset) {
- animationReset = 0;
- resetAnimation();
- if (originalS > 0) {
- wear(originalS, playerShield);
- }
- }
- if (emoting && System.currentTimeMillis()-lastAction > 300) {
- lastAction = System.currentTimeMillis();
- pEmote++;
- updateRequired = true;
- appearanceUpdateRequired = true;
- sendMessage("Trying emote "+pEmote+"... ");
- }
- if(ingame) {
- long tits = ((50000-(System.currentTimeMillis()-server.jizz))/1000);
- sendFrame126("Time left: "+tits+" Seconds", 6570);
- setInterfaceWalkable(6673);
- } else if(inroom) {
- long tits = ((80000-(System.currentTimeMillis()-server.fuck))/1000);
- sendFrame126("Time left: "+tits+" Seconds", 6570);
- //sendFrame126("Players In room: "+server.playersinroom, 6572);
- setInterfaceWalkable(6673);
- } else {
- sendFrame126("Zernix ("+PlayerHandler.getPlayerCount()+" online)", 6570);
- sendFrame126("", 6572);
- sendFrame126("", 6664);
- setInterfaceWalkable(6673);
- }
- if (hitDiff > 0) {
- sendQuest(""+currentHealth, 4016);
- }
- if (inTrade && tradeResetNeeded) {
- client o = getClient(trade_reqId);
- if (o.tradeResetNeeded) {
- resetTrade();
- o.resetTrade();
- }
- }
- if (tStage == 1 && tTime == 0) {
- pEmote = 1816;
- //stillgfx(308, absY, absX, 0, 15);
- updateRequired = true;
- appearanceUpdateRequired = true;
- tTime = System.currentTimeMillis();
- tStage = 2;
- }
- if (tStage == 2 && System.currentTimeMillis()-tTime >= 900) {
- teleportToX = tX;
- teleportToY = tY;
- heightLevel = tH;
- updateRequired = true;
- appearanceUpdateRequired = true;
- tStage = 0;
- tTime = 0;
- resetAnimation();
- }
- /*long now = System.currentTimeMillis();
- if(now - lastProcess <= 490){
- for(int i = 0; i < ancientId.length; i++){
- if(coolDown[i] > 0){
- coolDown[i]--;
- }
- }
- for(int i = 0; i < effects.length; i++){
- if(effects[i] > 0){
- effects[i]--;
- }
- }
- }
- lastProcess = now;*/
- long current = System.currentTimeMillis();
- if (inCombat && current-lastCombat >= 20000) {
- inCombat = false;
- }
- if((playerEquipment[playerCape] == 9747) && playerLevel[playerAttack] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 Attack to weild this cape");
- }
- if((playerEquipment[playerCape] == 9798) && playerLevel[playerFishing] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 Fishing to weild this cape");
- }
- if((playerEquipment[playerCape] == 9756) && playerLevel[playerRanged] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 Range to weild this cape");
- }
- if((playerEquipment[playerCape] == 9759) && playerLevel[playerPrayer] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 prayer to weild this cape");
- }
- if((playerEquipment[playerCape] == 9771) && playerLevel[playerAgility] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 agility to weild this cape");
- }
- if((playerEquipment[playerCape] == 9774) && playerLevel[playerHerblore] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 herblore to weild this cape");
- }
- if((playerEquipment[playerCape] == 9753) && playerLevel[playerDefence] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 defence to weild this cape");
- }
- if((playerEquipment[playerCape] == 9795) && playerLevel[playerSmithing] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 smithing to weild this cape");
- }
- if((playerEquipment[playerCape] == 9786) && playerLevel[playerSlayer] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 slayer to weild this cape");
- }
- if((playerEquipment[playerCape] == 9807) && playerLevel[playerWoodcutting] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 woodcutting to weild this cape");
- }
- if((playerEquipment[playerCape] == 9750) && playerLevel[playerStrength] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 strength to weild this cape");
- }
- if((playerEquipment[playerCape] == 9762) && playerLevel[playerMagic] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 magic to weild this cape");
- }
- if((playerEquipment[playerCape] == 9810) && playerLevel[playerFarming] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 farming to weild this cape");
- }
- if((playerEquipment[playerCape] == 9792) && playerLevel[playerMining] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 mining to weild this cape");
- }
- if((playerEquipment[playerCape] == 9780) && playerLevel[playerCrafting] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 crafting to weild this cape");
- }
- if((playerEquipment[playerCape] == 9768) && playerLevel[playerHitpoints] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 hitpoints to weild this cape");
- }
- if((playerEquipment[playerCape] == 9804) && playerLevel[playerFiremaking] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 firemaking to weild this cape");
- }
- if((playerEquipment[playerCape] == 9801) && playerLevel[playerCooking] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 cooking to weild this cape");
- }
- if((playerEquipment[playerCape] == 9765) && playerLevel[playerRunecrafting] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 runecrafting to weild this cape");
- }
- if((playerEquipment[playerCape] == 9783) && playerLevel[playerFletching] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 fletching to weild this cape");
- }
- if((playerEquipment[playerCape] == 9777) && playerLevel[playerThieving] <= 98) {
- remove(playerEquipment[playerCape], playerCape);
- sendMessage("You must have 99 Thieving to weild this cape");
- }
- barTimer++;
- if (barTimer >= 100) {
- barTimer = 0;
- }
- if (server.ShutDown && System.currentTimeMillis() - PlayerHandler.updateStartTime > (PlayerHandler.updateSeconds*1000 + 20000)) {
- savegame(true);
- }
- if (startDuel && duelChatTimer <= 0) {
- startDuel = false;
- }
- if (GObjChange == 1 && GObjSet == 1) {
- commitobj();
- GObjChange = 0;
- }
- EntangleDelay -= 1;
- teletimer -= 1;
- if (teleport == true && teletimer >= 0) {
- teleportToX = absX;
- teleportToY = absY;
- }
- if (teleport == true && teletimer <= 0) {
- if (ancientstele == false) {
- setAnimation(715);
- }
- teleportToX = teleX;
- teleportToY = teleY;
- heightLevel = newheightLevel;
- teleport = false;
- teleX = 0;
- teleY = 0;
- newheightLevel = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- iceTimer -= 1;
- if (iceBarrage == true && iceTimer <= 0) {
- iceBarrage = false;
- }
- if (iceBarrage == true) {
- teleportToX = absX;
- teleportToY = absY;
- }
- if (resetanim <= 0) {
- resetAnimation();
- resetanim = 8;
- }
- EntangleDelay -= 1;
- stealtimer -= 1;
- if (AnimationReset == true && actionTimer <= 0) {
- resetAnimation();
- AnimationReset = false;
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- if (actionAmount < 0) {
- actionAmount = 0;
- }
- if (actionTimer > 0) {
- actionTimer -= 1;
- }
- if (attackTimer > 0) {
- attackTimer -= 1;
- }
- if (actionAmount > 4) {
- }
- AddDroppedItems();
- // GameTime
- // Shop
- if (UpdateShop == true) {
- resetItems(3823);
- resetShop(MyShopID);
- }
- // Energy
- if (playerEnergy < 100) {
- if (playerEnergyGian >= server.EnergyRegian) {
- playerEnergy += 1;
- playerEnergyGian = 0;
- }
- playerEnergyGian++;
- if (playerEnergy >= 0) {
- WriteEnergy();
- }
- }
- //cooking check
- if (cooking && System.currentTimeMillis()-lastAction >= 2000) {
- lastAction = System.currentTimeMillis();
- startCooking();
- }
- // wilderness check
- if(!inDuel) {
- outStream.createFrameVarSize(104);
- outStream.writeByteC(3);
- outStream.writeByteA(0);
- outStream.writeString("null");
- outStream.endFrameVarSize();
- outStream.createFrameVarSize(104);
- outStream.writeByteC(2); // command slot (does it matter which one?)
- outStream.writeByteA(0); // 0 or 1; 0 if command should be placed on top in context menu
- outStream.writeString("Duel");
- outStream.endFrameVarSize();
- outStream.createFrameVarSize(104);
- outStream.writeByteC(1); // command slot
- outStream.writeByteA(0); // 0 or 1; 1 if command should be placed on top in context menu
- outStream.writeString("Trade with");
- outStream.endFrameVarSize();
- }
- if(inDuel) {
- outStream.createFrameVarSize(104);
- outStream.writeByteC(3);
- outStream.writeByteA(1);
- outStream.writeString("Attack");
- outStream.endFrameVarSize();
- outStream.createFrameVarSize(104);
- outStream.writeByteC(2); // command slot (does it matter which one?)
- outStream.writeByteA(0); // 0 or 1; 0 if command should be placed on top in context menu
- outStream.writeString("null");
- outStream.endFrameVarSize();
- outStream.createFrameVarSize(104);
- outStream.writeByteC(1); // command slot
- outStream.writeByteA(0); // 0 or 1; 1 if command should be placed on top in context menu
- outStream.writeString("null");
- outStream.endFrameVarSize();
- }
- // Crackers
- if (CrackerMsg == true) {
- crackCracker();
- }
- // check stairs
- if (stairs > 0) {
- if (GoodDistance(skillX, skillY, absX, absY, stairDistance) == true) {
- stairs(stairs, absX, absY);
- }
- }
- // objects
- if (doors > -1) {
- if (GoodDistance2(skillX, skillY, absX, absY, 1) == true) {
- ChangeDoor(doors);
- doors = -1;
- }
- }
- // check banking
- if (WanneBank > 0) {
- if (GoodDistance(skillX, skillY, absX, absY, WanneBank) == true) {
- openUpBank();
- WanneBank = 0;
- }
- }
- // check shopping
- if (WanneShop > 0) {
- if (GoodDistance(skillX, skillY, absX, absY, 1) == true) {
- openUpShop(WanneShop);
- WanneShop = 0;
- }
- }
- // woodcutting check
- if (woodcutting[0] > 0) {
- if (GoodDistance(skillX, skillY, absX, absY, woodcutting[5]) == true) {
- closeInterface();
- woodcutting();
- }
- }
- // Pick Up Item Check
- if (WannePickUp == true && IsUsingSkill == false) {
- if (pickUpItem(PickUpID, PickUpAmount) == true) {
- PickUpID = 0;
- PickUpAmount = 0;
- PickUpDelete = 0;
- WannePickUp = false;
- }
- }
- // Attacking in wilderness
- long thisTime = System.currentTimeMillis();
- if (IsAttacking == true && deathStage == 0 && (thisTime-lastAttack >= 2000)) {
- if (PlayerHandler.players[AttackingOn] != null) {
- if (PlayerHandler.players[AttackingOn].currentHealth > 0) {
- Attack();
- } else {
- ResetAttack();
- //if(duelStatus == 3)
- //DuelVictory(p.absX, p.absY);
- }
- } else {
- ResetAttack();
- }
- }
- // Attacking range in wilderness
- /*
- if (IsAttacking == true && IsDead == false && (thisTime - lastAttack >= 2000)) {
- if (PlayerHandler.players[AttackingOn] != null) {
- if (PlayerHandler.players[AttackingOn].IsDead == false) {
- if ((playerEquipment[playerWeapon] == 859)
- || (playerEquipment[playerWeapon] == 839)
- || (playerEquipment[playerWeapon] == 841)
- || (playerEquipment[playerWeapon] == 843)
- || (playerEquipment[playerWeapon] == 845)
- || (playerEquipment[playerWeapon] == 847)
- || (playerEquipment[playerWeapon] == 849)
- || (playerEquipment[playerWeapon] == 851)
- || (playerEquipment[playerWeapon] == 853)
- || (playerEquipment[playerWeapon] == 855)
- || (playerEquipment[playerWeapon] == 857)
- || (playerEquipment[playerWeapon] == 861)
- || (playerEquipment[playerWeapon] == 4214)
- || (playerEquipment[playerWeapon] == 4734)
- && (playerEquipmentN[playerArrows] == 0)) {
- Attackrange();
- }
- } else {
- ResetAttack();
- sendMessage("You only need a bow to train range, no arrows needed");
- }
- } else {
- ResetAttack();
- }
- }*/
- if (currentHealth == 0) {
- deathStage = 1;
- }
- // Attacking an NPC
- if (IsAttackingNPC == true && deathStage == 0) {
- if (server.npcHandler.npcs[attacknpc] != null) {
- if (server.npcHandler.npcs[attacknpc].IsDead == false && server.npcHandler.npcs[attacknpc].MaxHP > 0) {
- AttackNPC();
- } else {
- ResetAttackNPC();
- }
- } else {
- ResetAttackNPC();
- }
- }
- // If killed apply dead
- if (deathStage == 1) {
- if (attacknpc > 0) { //was killed by a npc -bakatool
- server.npcHandler.ResetAttackPlayer(attacknpc);
- }
- ResetAttack();
- ResetAttackNPC();
- deathStage = 2;
- client p = getClient(duel_with);
- if (duel_with > 0 && validClient(duel_with) && inDuel && duelFight) {
- //p.killedPlayer(p.playerName, p.combatLevel);
- //p.ResetAttack();
- p.DuelVictory();
- //duelStatus = 4;
- //p.duelStatus = 4;
- }
- if (fightId > 0) {
- client f = (client)server.playerHandler.players[fightId];
- if (f != null) {
- f.fighting = false;
- f.hits = 0;
- }
- }
- fighting = false;
- hits = 0;
- sendMessage("Oh dear, you have died!");
- pEmote = 2820;
- updateRequired = true;
- appearanceUpdateRequired = true;
- deathTimer = System.currentTimeMillis();
- currentHealth = playerLevel[playerHitpoints];
- }
- if (deathStage == 2 && System.currentTimeMillis()-deathTimer >= 2500) {
- teleportToX = 3430;
- teleportToY = 2917;
- heightLevel = 0;
- currentHealth = playerLevel[playerHitpoints];
- deathStage = 0;
- resetAnimation();
- }
- // mining check
- if (mining[0] > 0) {
- if (GoodDistance(skillX, skillY, absX, absY, 1) == true) {
- mining();
- }
- }
- // smithing check
- if (smithing[0] > 0) {
- updateRequired = true;
- appearanceUpdateRequired = true;
- resetAnimation();
- resetSM();
- RemoveAllWindows();
- }
- // prayer check
- if (prayer[0] > 0) {
- prayer();
- }
- // healing check
- if (healing[0] > 0) {
- healing();
- }
- //Devolution: smelting
- if (smelting && System.currentTimeMillis()-lastAction >= 1500) {
- lastAction = System.currentTimeMillis();
- smelt(smelt_id);
- } else if (shafting && System.currentTimeMillis()-lastAction >= 1500) {
- lastAction = System.currentTimeMillis();
- shaft();
- } else if (fletching && System.currentTimeMillis()-lastAction >= 1900) {
- lastAction = System.currentTimeMillis();
- fletchBow();
- } else if (spinning && System.currentTimeMillis()-lastAction >= 2100) {
- lastAction = System.currentTimeMillis();
- spinflax();
- } else if (spinning && System.currentTimeMillis()-lastAction >= 1900) {
- lastAction = System.currentTimeMillis();
- spinwool();
- } else if (crafting && System.currentTimeMillis()-lastAction >= 1500) {
- lastAction = System.currentTimeMillis();
- craft();
- } else if (fishing && System.currentTimeMillis()-lastAction >= fishspeed) {
- lastAction = System.currentTimeMillis();
- startfishing(fishId);
- }
- // Snowing
- if (IsSnowing == 1) {
- outStream.createFrame(208);
- outStream.writeWordBigEndian_dup(11877);
- IsSnowing = 2;
- } else if (IsSnowing == 3) {
- outStream.createFrame(208);
- outStream.writeWordBigEndian_dup(65535);
- IsSnowing = 0;
- }
- // Npc Talking
- if (NpcWanneTalk == 2) {
- // Bank Booth
- if (GoodDistance2(absX, absY, skillX, skillY, 1) == true) {
- NpcDialogue = 1;
- NpcTalkTo = GetNPCID(skillX, (skillY-1));
- NpcWanneTalk = 0;
- }
- } else if (NpcWanneTalk > 0) {
- if (GoodDistance2(absX, absY, skillX, skillY, 2) == true) {
- NpcDialogue = NpcWanneTalk;
- NpcTalkTo = GetNPCID(skillX, skillY);
- NpcWanneTalk = 0;
- }
- }
- if (NpcDialogue > 0 && NpcDialogueSend == false) {
- UpdateNPCChat();
- }
- if (isKicked) {
- disconnected = true;
- if (saveNeeded)
- savegame(true);
- outStream.createFrame(109);
- }
- if (globalMessage.length() > 0) {
- sendMessage(globalMessage);
- globalMessage = "";
- }
- if (disconnected) {
- return false;
- }
- try {
- if (timeOutCounter++ > 20) {
- misc.println("Client lost connection: timeout");
- disconnected = true;
- if (saveNeeded)
- savegame(true);
- return false;
- }
- if (in == null) {
- return false;
- }
- int avail = in.available();
- if (avail == 0) {
- return false;
- }
- if (packetType == -1) {
- packetType = in.read() & 0xff;
- if (inStreamDecryption != null) {
- packetType = packetType-inStreamDecryption.getNextKey() & 0xff;
- }
- packetSize = packetSizes[packetType];
- avail--;
- }
- if (packetSize == -1) {
- if (avail > 0) {
- // this is a variable size packet, the next byte containing the length of said
- packetSize = in.read() & 0xff;
- avail--;
- } else {
- return false;
- }
- }
- if (avail < packetSize) {
- return false;
- } // packet not completely arrived here yet
- fillInStream(packetSize);
- timeOutCounter = 0; // reset
- parseIncomingPackets(); // method that does actually interprete these packets
- packetType = -1;
- } catch (java.lang.Exception __ex) {
- __ex.printStackTrace();
- System.out.println("Odion [fatal] - exception");
- savegame(true);
- disconnected = true;
- }
- return true;
- }
- public void AddDroppedItems() {
- if (IsDropping == true) {
- IsDropping = true;
- int tmpX = 0;
- int tmpY = 0;
- int calcX = 0;
- int calcY = 0;
- for (int i = 0; i < server.itemHandler.DropItemCount; i++) {
- if (server.itemHandler.DroppedItemsID[i] > -1) {
- tmpX = server.itemHandler.DroppedItemsX[i];
- tmpY = server.itemHandler.DroppedItemsY[i];
- calcX = tmpX-absX;
- calcY = tmpY-absY;
- if (calcX >= -16 && calcX <= 15 && calcY >= -16 && calcY <= 15 && MustDelete[i] == false && server.itemHandler.DroppedItemsH[i] == heightLevel) {
- if (IsDropped[i] == false && (server.itemHandler.DroppedItemsDDelay[i] <= 0 || server.itemHandler.DroppedItemsDropper[i] == playerId)) {
- IsDropped[i] = true;
- outStream.createFrame(85);
- outStream.writeByteC((server.itemHandler.DroppedItemsY[i]-8*mapRegionY));
- outStream.writeByteC((server.itemHandler.DroppedItemsX[i]-8*mapRegionX));
- outStream.createFrame(44); // create item frame
- outStream.writeWordBigEndianA(server.itemHandler.DroppedItemsID[i]);
- outStream.writeWord(server.itemHandler.DroppedItemsN[i]); // amount
- outStream.writeByte(0); // x(4 MSB) y(LSB) coords
- }
- } else if (IsDropped[i] == true || MustDelete[i] == true) {
- outStream.createFrame(85);
- outStream.writeByteC((server.itemHandler.DroppedItemsY[i]-8*mapRegionY));
- outStream.writeByteC((server.itemHandler.DroppedItemsX[i]-8*mapRegionX));
- outStream.createFrame(156); // remove item frame
- outStream.writeByteS(0); // x(4 MSB) y(LSB) coords
- outStream.writeWord(server.itemHandler.DroppedItemsID[i]);
- int LastPlayerInList = -1;
- int TotalPlayers = 0;
- for (int j = 1; j < PlayerHandler.maxPlayers; j++) {
- if (PlayerHandler.players[j] != null) {
- LastPlayerInList = j;
- TotalPlayers++;
- }
- }
- if (MustDelete[i] == true) {
- MustDelete[i] = false;
- server.itemHandler.DroppedItemsDeletecount[i]++;
- if ((LastPlayerInList == playerId || LastPlayerInList == -1) && server.itemHandler.DroppedItemsDeletecount[i] == TotalPlayers) {
- if (server.itemHandler.DroppedItemsAlwaysDrop[i] == true) {
- server.itemHandler.DroppedItemsDropper[i] = -1;
- server.itemHandler.DroppedItemsDDelay[i] = server.itemHandler.SDID;
- } else {
- server.itemHandler.ResetItem(i);
- }
- for (int j = 1; j < PlayerHandler.maxPlayers; j++) {
- if (PlayerHandler.players[j] != null) {
- PlayerHandler.players[j].IsDropped[i] = false;
- }
- }
- }
- } else {
- IsDropped[i] = false;
- }
- }
- }
- }
- IsDropping = false;
- }
- }
- private boolean packetProcess() {
- if (disconnected) {
- return false;
- }
- try {
- if (timeOutCounter++ > 20) {
- actionReset();
- disconnected = true;
- runStream = false;
- if (saveNeeded)
- savegame(true);
- return false;
- }
- if (in == null) {
- return false;
- }
- int avail = in.available();
- if (avail == 0) {
- return false;
- }
- if (packetType == -1) {
- packetType = in.read() & 0xff;
- if (inStreamDecryption != null) {
- packetType = packetType-inStreamDecryption.getNextKey() & 0xff;
- }
- packetSize = packetSizes[packetType];
- avail--;
- }
- if (packetSize == -1) {
- if (avail > 0) {
- packetSize = in.read() & 0xff;
- avail--;
- } else {
- return false;
- }
- }
- if (avail < packetSize) {
- return false;
- }
- fillInStream(packetSize);
- timeOutCounter = 0;
- parseIncomingPackets();
- packetType = -1;
- } catch (java.lang.Exception __ex) {
- server.logError(__ex.getMessage());
- disconnected = true;
- System.out.println("Odion [fatal] - exception");
- savegame(true);
- }
- return true;
- }
- public void actionReset() {
- actionName = "";
- }
- public void parseIncomingPackets() {
- objects();
- int i;
- int junk;
- int junk2;
- int junk3;
- lastPacket = System.currentTimeMillis();
- //if(packetType != 0) println("" + packetType);
- switch (packetType) {
- case 25:
- // item in inventory used with item on floor
- int unknown1 = inStream.readSignedWordBigEndian(); // interface id of item
- int unknown2 = inStream.readUnsignedWordA(); // item in bag id
- int floorID = inStream.readUnsignedByte();
- int floorY = inStream.readUnsignedWordA();
- int unknown3 = inStream.readUnsignedWordBigEndianA();
- int floorX = inStream.readUnsignedByte();
- System.out.println("Unknown1 = "+unknown1);
- System.out.println("Unknown2 = "+unknown2);
- System.out.println("FloorID = "+floorID);
- System.out.println("FloorY = "+floorY);
- System.out.println("Unknown3 = "+unknown3);
- System.out.println("FloorX = "+floorX);
- break;
- case 57:
- itemId = inStream.readUnsignedWordA();
- npcSlot = inStream.readUnsignedWordA();
- int unknown = inStream.readUnsignedWordA();
- interfaceId = inStream.readUnsignedWordA();
- NPC npc = server.npcHandler.npcs[npcSlot];
- if (interfaceId == 3214 && GoodDistance(absX, absY, npc.absX, npc.absY, 3)){
- switch(npc.npcType) {
- case 43:
- if (itemId == 1735){
- setAnimation(883);
- if (misc.random(10) >= 5){
- sendMessage("You shear the wool off the sheep.");
- addItem(1737, 1);
- npc.sheepDelay = 10;
- } else {
- sendMessage("The sheep smacks you off.");
- }
- }
- break;
- default:
- sendMessage("Nothing Interesting Happens");
- }
- }
- break;
- case 0:
- break; // idle packet - keeps on reseting timeOutCounter
- case 202:
- // idle logout packet - ignore for now
- //logout();
- break;
- case 45:
- //flagged account data
- // inStream.readBytes(pmchatText, pmchatTextSize, 0);
- int blah = inStream.readUnsignedByte();
- int part2 = -1, part3 = -1, part4 = -1;
- try {
- part2 = inStream.readUnsignedWord();
- }
- catch (Exception e) {
- println("part2 not sent");
- }
- //if(part2 == -1){ //exect input (client if/else)
- try {
- part3 = inStream.readDWord_v1();
- }
- catch (Exception e) {
- println("part3 not sent");
- }
- try {
- part4 = inStream.readDWord();
- }
- catch (Exception e) {
- println("part4 not sent");
- }
- //}
- println("blah="+blah+", "+"part2="+part2+", part3="+part3+", part4="+part4);
- break;
- case 210:
- // loads new area
- break;
- case 40:
- if(NpcDialogueSend) {
- NpcDialogue += 1;
- NpcDialogueSend = false;
- } else {
- closeInterface();
- NpcDialogue = -1;
- }
- //println_debug("Unhandled packet ["+packetType+", InterFaceId: "+inStream.readUnsignedWordA()+", size="+packetSize+"]: ]"+misc.Hex(inStream.buffer, 1, packetSize)+"[");
- //println_debug("Action Button: "+misc.HexToInt(inStream.buffer, 0, packetSize));
- break;
- case 192:
- // Use an item on an object
- junk = inStream.readSignedWordBigEndianA();
- int UsedOnObjectID = inStream.readUnsignedWordBigEndian();
- int UsedOnY = inStream.readSignedWordBigEndianA();
- int ItemSlot = (inStream.readSignedWordBigEndianA()-128);
- int UsedOnX = inStream.readUnsignedWordBigEndianA();
- int ItemID = inStream.readUnsignedWord();
- //if (!playerHasItem(ItemID))
- server.OC.useobject(playerId, UsedOnObjectID, UsedOnY, UsedOnX, ItemID);
- break;
- case 218:
- String abuser = misc.longToPlayerName(inStream.readQWord());
- int rule = inStream.readUnsignedByte();
- int mute = inStream.readUnsignedByte();
- reportAbuse(abuser, rule, mute);
- break;
- case 130:
- // Clicking some stuff in game
- int interfaceID = inStream.readSignedByte();
- //if(actionButtonId == 26018) {
- if (inDuel && !duelFight) {
- declineDuel();
- }
- if (duelFight && wonDuel == true) {
- if (System.currentTimeMillis() - lastButton < 1000) {
- lastButton = System.currentTimeMillis();
- break;
- } else {
- lastButton = System.currentTimeMillis();
- }
- //println("Valid click..");
- client other = getClient(duel_with);
- for (GameItem item : otherOfferedItems) {
- //println("otherDuelItems = " + item.id);
- if ((item.id > 0) && (item.amount > 0)) {
- if (Item.itemStackable[item.id]) {
- if (!addItem(item.id, item.amount))
- ItemHandler.addItem(item.id, enemyX, enemyY,
- item.amount, playerId, false);
- } else {
- int amount = item.amount;
- //for (int a = 1; a <= amount; a++) {
- if (!addItem(item.id, 1))
- ItemHandler.addItem(item.id, enemyX,
- enemyY, 1, playerId, false);
- }
- }
- }
- for (GameItem item : offeredItems) {
- if ((item.id > 0) && (item.amount > 0))
- addItem(item.id, item.amount);
- }
- resetDuel();
- savegame(false);
- if (validClient(duel_with)) {
- other.resetDuel();
- other.savegame(false);
- }
- } else {
- // sM("You didn't win the duel!");
- }
- if (inTrade && System.currentTimeMillis()-lastButton > 1000) {
- lastButton = System.currentTimeMillis();
- declineTrade();
- }
- if (IsShopping == true) {
- IsShopping = false;
- MyShopID = 0;
- UpdateShop = false;
- }
- if (IsBanking == true) {
- IsBanking = false;
- }
- if (misc.HexToInt(inStream.buffer, 0, packetSize) != 63363 && misc.HexToInt(inStream.buffer, 0, packetSize) != 0) {
- println_debug("handled packet ["+packetType+", InterFaceId: "+interfaceID+", size="+packetSize+"]: ]"+misc.Hex(inStream.buffer, 1, packetSize)+"[");
- println_debug("Action Button: "+misc.HexToInt(inStream.buffer, 0, packetSize));
- }
- break;
- case 155:
- // first Click npc
- NPCSlot = (misc.HexToInt(inStream.buffer, 0, packetSize) / 1000);
- NPCID = server.npcHandler.npcs[NPCSlot].npcType;
- int NX = server.npcHandler.npcs[NPCSlot].absX;
- int NY = server.npcHandler.npcs[NPCSlot].absY;
- boolean PutNPCCoords = false;
- NPCSlot = inStream.readSignedWordBigEndian();
- if (GoodDistance(NX, NY, absX, absY, 3) == true) {
- server.npcHandler.npcs[NPCSlot].TurnNPCTo(absX, absY);
- server.npcHandler.npcs[NPCSlot].FocusUpdateRequired = true;
- server.npcHandler.npcs[NPCSlot].updateRequired = true;
- }
- if (GoodDistance(NX, NY, absX, absY, 1) == true) {
- TurnPlayerTo(NX,NY);
- switch(NPCID) {
- case 944:
- nt4(false, NPCID, 605, "Try hit the dummy for experience! Maximum level is 15","Punch - Attack Experience","Kick - Strength Experience","Block - Defence Experience");
- break;
- }
- }
- if (NPCID == 804) {
- openTan();
- }
- if (NPCID == 1596) {
- nt1(false, 1596, 617, "Slayer is gay!");
- }
- if (NPCID == 70) {
- nt1(false, 70, 616, "Slayer is gay!");
- }
- if (NPCID == 316) {
- if(System.currentTimeMillis()-lastAction >= 2000) {
- lastAction = System.currentTimeMillis();
- startfishing(316);
- }
- }
- if (NPCID == 312) {
- if(System.currentTimeMillis()-lastAction >= 2000) {
- lastAction = System.currentTimeMillis();
- startfishing(312);
- }
- }
- if (NPCID == 1177) {
- if(System.currentTimeMillis()-lastAction >= 2000) {
- lastAction = System.currentTimeMillis();
- startfishing(1177);
- }
- }
- if (NPCID == 1176) {
- if(System.currentTimeMillis()-lastAction >= 2000) {
- lastAction = System.currentTimeMillis();
- startfishing(1176);
- }
- }
- //if (NPCID == 321) {
- // startfishing(321);
- //}
- else if (NPCID == 494 || NPCID == 495 || NPCID == 496 || NPCID == 497 || NPCID == 2354 || NPCID == 2355 || NPCID == 2619 || NPCID == 3198) {
- /* Banking*/
- skillX = server.npcHandler.npcs[NPCSlot].absX;
- skillY = server.npcHandler.npcs[NPCSlot].absY;
- NpcWanneTalk = 1;
- }
- else if (NPCID == 599) {
- /*Make-Over Mage*/
- showInterface(3559);
- }
- else if (NPCID == 553) {
- /* Aubury*/
- NpcWanneTalk = 3;
- NpcDialogue = 3;
- }
- else if (NPCID == 2291) {
- NpcWanneTalk = 10;
- NpcDialogue = 10;
- }
- if (NPCID == 2) {
- //skillX = server.npcHandler.npcs[NPCSlot].absX;
- //skillY = server.npcHandler.npcs[NPCSlot].absY;
- NpcDialogue = 7;
- //NpcWanneTalk = 7;
- }
- else if (NPCID == 1597) {
- skillX = server.npcHandler.npcs[NPCSlot].absX;
- skillY = server.npcHandler.npcs[NPCSlot].absY;
- NpcWanneTalk = 9;
- }
- else if (NPCID == 398) {
- skillX = server.npcHandler.npcs[NPCSlot].absX;
- skillY = server.npcHandler.npcs[NPCSlot].absY;
- NpcWanneTalk = 398;
- sendFrame200(4883, 398);
- sendFrame126(GetNpcName(398), 4884);
- if (premium) {
- sendFrame126("Welcome to the Guild of Legends", 4885);
- }
- else {
- sendFrame126("You must be a premium member to enter", 4885);
- sendFrame126("Visit Odion.com to subscribe", 4886);
- }
- sendFrame75(398, 4883);
- sendFrame164(4882);
- NpcDialogueSend = true;
- if (premium) {
- ReplaceObject(2728, 3349, 2391, 0, 0);
- ReplaceObject(2729, 3349, 2392, -2, 0);
- }
- }
- else {
- println_debug("atNPC 1: "+NPCID);
- }
- if (PutNPCCoords == true) {
- skillX = server.npcHandler.npcs[NPCSlot].absX;
- skillY = server.npcHandler.npcs[NPCSlot].absY;
- }
- break;
- case 17:
- // second Click npc
- NPCSlot = inStream.readUnsignedWordBigEndianA();
- if (NPCSlot < 0 || NPCSlot >= server.npcHandler.npcs.length || server.npcHandler.npcs[NPCSlot] == null)
- break;
- NPCID = server.npcHandler.npcs[NPCSlot].npcType;
- long time = System.currentTimeMillis();
- if (time-globalCooldown[0] <= 50) {
- sendMessage("Action throttled... please wait longer before acting!");
- break;
- }
- globalCooldown[0] = time;
- int npcX = server.npcHandler.npcs[NPCSlot].absX;
- int npcY = server.npcHandler.npcs[NPCSlot].absY;
- if (Math.abs(absX-npcX) > 50 || Math.abs(absY-npcY) > 50) {
- sendMessage("Client hack detected!");
- break;
- }
- if (server.npcHandler.npcs[NPCSlot].IsDead) {
- sendMessage("That monster has been killed!");
- break;
- }
- PutNPCCoords = false;
- if (NPCID == 494 || NPCID == 495 || NPCID == 496 || NPCID == 497 || NPCID == 2354 || NPCID == 2355 || NPCID == 2619 || NPCID == 3198) {
- /* Banking*/
- WanneBank = 2;
- }
- if (NPCID == 1780) {
- // Nardan Weapon Shop
- PutNPCCoords = true;
- WanneShop = 5;
- }
- if (NPCID == 577) {
- // Crafting shop
- PutNPCCoords = true;
- WanneShop = 4;
- }
- if (NPCID == 553) {
- // Aubury
- PutNPCCoords = true;
- WanneShop = 1;
- }
- else if (NPCID == 520 || NPCID == 521) {
- // Nardan general
- PutNPCCoords = true;
- WanneShop = 2; // Lumbridge General Store
- }
- else if (NPCID == 682) {
- // Nardan Archery
- PutNPCCoords = true;
- WanneShop = 3; // Aaron's Archery Appendages
- }
- else if (NPCID == 1 || NPCID ==2 || NPCID == 3 || NPCID == 4 || NPCID == 5 || NPCID == 6) {
- // THEIVING MAN & WOMEN
- if (stealtimer < 0 && EntangleDelay < 0) {
- robman();
- EntangleDelay = 6;
- stealtimer = 5;
- // snaretimer = 5;
- actionTimer = 4;
- setAnimation(881);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- else if (NPCID == 7) {
- // THEIVING farmer
- if (playerLevel[17] < 10) {
- sendMessage("You need 10 theiving to pickpocket farmers.");
- }
- else {
- if (stealtimer < 0 && EntangleDelay < 0) {
- robfarmer();
- EntangleDelay = 6;
- stealtimer = 5;
- // snaretimer = 5;
- actionTimer = 4;
- setAnimation(881);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- }
- else if (NPCID == 15 || NPCID == 18 || NPCID == 1318) {
- // THEIVING warrior
- if (playerLevel[17] < 25) {
- sendMessage("You need 25 theiving to pickpocket warriors.");
- }
- else {
- if (stealtimer < 0 && EntangleDelay < 0) {
- robwarrior();
- EntangleDelay = 6;
- stealtimer = 15;
- // snaretimer = 5;
- actionTimer = 4;
- setAnimation(881);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- }
- else if (NPCID == 187) {
- // THEIVING rogue
- if (playerLevel[17] < 32) {
- sendMessage("You need 32 theiving to pickpocket rogues.");
- }
- else {
- if (stealtimer < 0 && EntangleDelay < 0) {
- robrogue();
- EntangleDelay = 6;
- stealtimer = 15;
- // snaretimer = 5;
- actionTimer = 4;
- setAnimation(881);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- }
- else if (NPCID == 2234 || NPCID == 2235) {
- // THEIVING master farmer
- if (playerLevel[17] < 38) {
- sendMessage("You need 38 theiving to pickpocket master farmers.");
- }
- else {
- if (stealtimer < 0 && EntangleDelay < 0) {
- robmasterfarmer();
- EntangleDelay = 6;
- stealtimer = 15;
- // snaretimer = 5;
- actionTimer = 4;
- setAnimation(881);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- }
- else if (NPCID == 9 || NPCID == 10 || NPCID == 32 || NPCID == 334 || NPCID == 335 || NPCID == 336 || NPCID == 368 || NPCID == 678 || NPCID == 812 || NPCID == 887) {
- // THEIVING guard
- if (playerLevel[17] < 40) {
- sendMessage("You need 40 theiving to pickpocket gaurds.");
- }
- else {
- if (stealtimer < 0 && EntangleDelay < 0) {
- robguard();
- EntangleDelay = 6;
- stealtimer = 15;
- // snaretimer = 5;
- actionTimer = 4;
- setAnimation(881);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- }
- else if (NPCID == 23) {
- // THEIVING knight
- if (playerLevel[17] < 55) {
- sendMessage("You need 55 theiving to pickpocket knights.");
- }
- else {
- if (stealtimer < 0 && EntangleDelay < 0) {
- robknight();
- EntangleDelay = 6;
- stealtimer = 15;
- // snaretimer = 5;
- actionTimer = 4;
- setAnimation(881);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- }
- else if (NPCID == 34) {
- // THEIVING watchmen
- if (playerLevel[17] < 65) {
- sendMessage("You need 65 theiving to pickpocket watchmen.");
- }
- else {
- if (stealtimer < 0 && EntangleDelay < 0) {
- robwatchman();
- EntangleDelay = 6;
- stealtimer = 15;
- // snaretimer = 5;
- actionTimer = 4;
- setAnimation(881);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- }
- else if (NPCID == 20) {
- // THEIVING paladin
- if (playerLevel[17] < 70) {
- sendMessage("You need 70 theiving to pickpocket paladins.");
- }
- else {
- if (stealtimer < 0 && EntangleDelay < 0) {
- robpaladin();
- EntangleDelay = 6;
- stealtimer = 15;
- // snaretimer = 5;
- actionTimer = 4;
- setAnimation(881);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- }
- else if (NPCID == 66 || NPCID == 67 || NPCID == 68) {
- // THEIVING gnome
- if (playerLevel[17] < 75) {
- sendMessage("You need 75 theiving to pickpocket gnomes.");
- }
- else {
- if (stealtimer < 0 && EntangleDelay < 0) {
- robgnome();
- EntangleDelay = 6;
- stealtimer = 15;
- // snaretimer = 5;
- actionTimer = 4;
- setAnimation(881);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- }
- else if (NPCID == 21) {
- // THEIVING hero
- if (playerLevel[17] < 80) {
- sendMessage("You need 80 theiving to pickpocket heros.");
- }
- else {
- if (stealtimer < 0 && EntangleDelay < 0) {
- robhero();
- EntangleDelay = 6;
- stealtimer = 15;
- // snaretimer = 5;
- actionTimer = 4;
- setAnimation(881);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- }
- else if (NPCID == 2359 || NPCID == 2360 || NPCID == 2361 || NPCID == 2362) {
- // THEIVING elf
- if (playerLevel[17] < 85) {
- sendMessage("You need 85 theiving to pickpocket elves.");
- }
- else {
- if (stealtimer < 0 && EntangleDelay < 0) {
- robelf();
- EntangleDelay = 6;
- stealtimer = 15;
- // snaretimer = 5;
- actionTimer = 4;
- setAnimation(881);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- }
- }
- else if (stealtimer > 0 && EntangleDelay < 0) {
- // snaretimer = 3;
- robfail();
- animation(348, absY, absX);
- actionTimer = 4;
- setAnimation(424);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- sendMessage("Pickpocket attempt Failed!");
- }
- else {
- println_debug("atNPC 2: "+NPCID);
- }
- if (PutNPCCoords == true) {
- skillX = server.npcHandler.npcs[NPCSlot].absX;
- skillY = server.npcHandler.npcs[NPCSlot].absY;
- }
- break;
- case 21:
- // Thirth Click npc
- NPCSlot = inStream.readSignedWord();
- NPCID = server.npcHandler.npcs[NPCSlot].npcType;
- if (NPCID < server.npcHandler.npcs.length && NPCID > 0) {
- if (NPCID == 553) {
- /* Air Altar Tele */
- triggerTele(2910+misc.random(1), 4831+misc.random(1), 0, false);
- }
- } else {
- println_debug("atNPC 3: "+NPCID);
- }
- break;
- case 72:
- // Click to attack
- if (System.currentTimeMillis()-lastAttack > 1500 && deathStage < 1) {
- attacknpc = inStream.readUnsignedWordA();
- if (attacknpc >= 0 && attacknpc < server.npcHandler.maxNPCSpawns) {
- IsAttackingNPC = true;
- if (server.npcHandler.npcs[attacknpc].StartKilling == 0) {
- server.npcHandler.npcs[attacknpc].StartKilling = playerId;
- }
- server.npcHandler.npcs[attacknpc].RandomWalk = false;
- server.npcHandler.npcs[attacknpc].IsUnderAttack = true;
- actionTimer = 5;
- }
- else {
- sendMessage("Exception catched, npc id was invalid.");
- ResetAttackNPC();
- }
- }
- break;
- case 121:
- objects();
- break;
- case 122:
- // Call for burying bones
- junk = inStream.readSignedWordBigEndianA();
- ItemSlot = inStream.readUnsignedWordA();
- ItemID = inStream.readUnsignedWordBigEndian();
- if (System.currentTimeMillis()-lastAction >= 850) {
- buryItem(ItemID, ItemSlot);
- lastAction = System.currentTimeMillis();
- actionTimer = 10;
- }
- break;
- case 253:
- // call for burning fires
- skillX = inStream.readSignedWordBigEndian();
- skillY = inStream.readSignedWordBigEndianA();
- ItemID = inStream.readUnsignedWordA();
- println("packet 253: skillX="+skillX+", skillY="+skillY);
- if (IsUsingSkill == false && CheckForSkillUse4(ItemID) == true) {
- IsUsingSkill = true;
- }
- break;
- case 53:
- // Use item on item
- int usedWithSlot = inStream.readUnsignedWord();
- int itemUsedSlot = inStream.readUnsignedWordA();
- //int useWith = inStream.readUnsignedWordBigEndianA();
- int interface1284 = inStream.readUnsignedWord();
- //int itemUsed = inStream.readSignedWordBigEndian();
- int interfacek = inStream.readUnsignedWord();
- //usedWithSlot += 1;
- //itemUsedSlot += 1;
- int useWith = playerItems[usedWithSlot]-1;
- int itemUsed = playerItems[itemUsedSlot]-1;
- if (!playerHasItem(itemUsed) || ! playerHasItem(useWith)) {
- break;
- }
- int otherItem = playerItems[usedWithSlot]-1;
- //println("itemUsed=" + itemUsed + ", usedWithSlot=" + usedWithSlot + ", otherItem=" + otherItem);
- if ((itemUsed == 1733 || otherItem == 1733) && (itemUsed == 1741 || otherItem == 1741)) {
- showInterface(2311);
- break;
- }
- int[][] Gems = {{1623,1607,20, 460}, {1621, 1605, 27, 690}, {1619, 1603, 34, 920}, { 1617, 1601, 43, 1150}};
- for(int gem = 0; gem < Gems.length; gem++) {
- if ((itemUsed == 1755 || otherItem == 1755) && (itemUsed == Gems[gem][0] || otherItem == Gems[gem][0])) {
- if(playerLevel[playerCrafting] < Gems[gem][2]) {
- sendMessage("You need +Gems[gem][2]+ crafting to cut this gem.");
- return;
- }
- setAnimation(885);
- deleteItem(Gems[gem][0], 1);
- addItem(Gems[gem][1], 1);
- addSkillXP(Gems[gem][3], 12);
- sendMessage("You cut the gem.");
- }
- }
- if (playerHasItem(314, 15) && playerHasItem(52, 15) && (itemUsed == 314 || otherItem == 314) && (itemUsed == 52 || otherItem == 52)) {
- if (playerHasItem(-1)) {
- deleteItem(314, 15);
- deleteItem(52, 15);
- addItem(53, 15);
- }
- else {
- sendMessage("Inventory is full!");
- }
- }
- for(int herb = 0; herb < herbs.length; herb++) {
- int[] herbxp = {10, 20, 30, 40, 50, 60, 70};
- int[] herblv = {1, 12, 30, 45, 55, 66, 72};
- if ((itemUsed == herbs[herb] || otherItem == herbs[herb]) && (itemUsed == 227 || otherItem == 227)) {
- if(playerLevel[playerHerblore] >= herblv[herb]) {
- deleteItem(herbs[herb], 1);
- deleteItem(227, 1);
- addItem(herbs[herb]-158,1);
- addSkillXP(herbxp[herb],playerHerblore);
- } else {
- sendMessage("You need level "+herblv[herb]+" herblore to mix this potion!");
- }
- }
- int[] herbxpnd = {100, 200, 300, 400, 500, 600, 700};
- int[] herblvnd = {1, 12, 30, 45, 55, 66, 72};
- int[] secondIng = {221, 225, 239, 221, 225, 239, 221};
- int[] finishPot = {2428, 113, 2432, 2436, 2440, 2442, 2444};
- if ((itemUsed == (herbs[herb]-158) || otherItem == (herbs[herb]-158)) && (itemUsed == secondIng[herb] || otherItem == secondIng[herb])) {
- if(playerLevel[playerHerblore] >= herblvnd[herb]) {
- deleteItem((herbs[herb]-158), 1);
- deleteItem(secondIng[herb], 1);
- addItem(finishPot[herb],1);
- addSkillXP(herbxpnd[herb],playerHerblore);
- } else {
- sendMessage("You need level "+herblvnd[herb]+" herblore to mix this potion!");
- }
- }
- }
- if ((itemUsed == 5605 || otherItem == 5605) && (itemUsed == 1511 || otherItem == 1511)) {
- shaft();
- }
- int[]heads = {
- 39, 40, 41, 42, 43, 44
- }
- ;
- int[]arrows = {
- -1
- }
- ;
- int[]required = {
- 1, 5, 25, 50, 75, 99
- }
- ;
- for (int h = 0; h < heads.length; h++) {
- if (playerHasItem(heads[h], 15) && playerHasItem(53, 15) && (itemUsed == heads[h] || otherItem == heads[h]) && (itemUsed == 53 || otherItem == 53)) {
- if (playerLevel[playerFletching] < required[h]) {
- sendMessage("Requires level "+required[h]+" fletching");
- break;
- }
- deleteItem(heads[h], 15);
- deleteItem(53, 15);
- addItem(arrows[h], 15);
- addSkillXP(200, playerFletching);
- break;
- }
- }
- //regular, oak, maple, willow, yew, magic?
- for (int id = 0; id < logs.length; id++) {
- if ((itemUsed == logs[id] || otherItem == logs[id]) && (itemUsed == 5605 || otherItem == 5605)) {
- //emote 885 (funny=3129)
- dialog = true;
- dialogInterface = 2459;
- dialogId = 1;
- fletchLog = id;
- sendFrame126("Select a bow", 8879);
- sendFrame246(8870, 250, longbows[id]); // right picture
- sendFrame246(8869, 250, shortbows[id]); //left picture
- sendFrame126(GetItemName(shortbows[id]), 8871);
- sendFrame126(GetItemName(shortbows[id]), 8874);
- sendFrame126(GetItemName(longbows[id]), 8878);
- sendFrame126(GetItemName(longbows[id]), 8875);
- sendFrame164(8866);
- break;
- }
- }
- int[] log = {1511,1521,1519,1517,1515,1513}; //{1521,1519,1517,1515,1513};
- int[][] fire = {{1,50},{15,100},{30,200},{45,300},{60,400},{75,500}};
- for(int fires = 0; fires < log.length; fires++) {
- if ((itemUsed == log[fires] || otherItem == log[fires]) && (itemUsed == 590 || otherItem == 590)) {
- if(playerLevel[playerFiremaking] >= fire[fires][0]) {
- deleteItem(log[fires], 1);
- addSkillXP(fire[fires][1], playerFiremaking);
- } else {
- sendMessage("You need a firemaking level of "+fire[fires][0]+" to light this log!");
- }
- }
- }
- for (int id1 = 0; id1 < shortbow.length; id1++) {
- if ((itemUsed == shortbows[id1] || otherItem == shortbows[id1]) && (itemUsed == 1777 || otherItem == 1777)) {
- deleteItem(shortbows[id1], 1);
- deleteItem(1777, 1);
- addItem(shortbow[id1], 1);
- }
- }
- for (int b2 = 0; b2 < shortbow.length; b2++) {
- if ((itemUsed == longbows[b2] || otherItem == longbows[b2]) && (itemUsed == 1777 || otherItem == 1777)) {
- deleteItem(longbows[b2], 1);
- deleteItem(1777, 1);
- addItem(longbow[b2], 1);
- }
- }
- for (int h = 0; h < leathers.length; h++) {
- if ((itemUsed == 1733 || otherItem == 1733) && (itemUsed == leathers[h] || otherItem == leathers[h])) {
- craftMenu(h);
- cIndex = h;
- }
- }
- if (itemUsed == 233 && useWith == 237) {
- deleteItem(237, getItemSlot(237), 1);
- addItem(235, 1);
- }
- break;
- // walkTo commands
- case 248:
- // map walk (has additional 14 bytes added to the end with some junk data)
- packetSize -= 14; // ignore the junk
- case 164:
- // regular walk
- case 98:
- // walk on command
- if (randomed)
- break;
- if (inTrade)
- break;
- resetAction();
- if (!validClient) {
- sendMessage("You can't move on this account");
- break;
- }
- if(cooking || fishing) {
- cooking = false;
- fishing = false;
- }
- if (duelFight && (duelRule[5] || duelRule[9])) {
- sendMessage("You cannot retreat during this duel!");
- break;
- }
- if (fighting) {
- client enemy = (client)handler.players[fightId];
- //sendMessage("attack=" + fightId + ", hits=" + hits + ", fighting=" + fighting);
- if (fightId > 0 && enemy != null && hits < 3 && enemy.hits < 3 && inRange(enemy.absX, enemy.absY)) {
- sendMessage("You cannot retreat during the first 3 rounds of combat!");
- break;
- }
- else if ((fightId > 0 && enemy != null && fighting) || (!inRange(enemy.absX, enemy.absY))) {
- fighting = false;
- enemy.fighting = false;
- hits = 0;
- enemy.hits = 0;
- }
- else {
- fighting = false;
- hits = 0;
- }
- }
- IsAttackingNPC = false;
- attacknpc = -1;
- closeInterface();
- resetAnimation();
- if (deathStage == 0) {
- newWalkCmdSteps = packetSize-5;
- if (newWalkCmdSteps%2 != 0) {
- println_debug("Warning: walkTo("+packetType+") command malformed: "+misc.Hex(inStream.buffer, 0, packetSize));
- }
- newWalkCmdSteps /= 2;
- if (++newWalkCmdSteps > walkingQueueSize) {
- println_debug("Warning: walkTo("+packetType+") command contains too many steps ("+newWalkCmdSteps+").");
- newWalkCmdSteps = 0;
- break;
- }
- int firstStepX = inStream.readSignedWordBigEndianA();
- int tmpFSX = firstStepX;
- firstStepX -= mapRegionX*8;
- for (i = 1; i < newWalkCmdSteps; i++) {
- newWalkCmdX[i] = inStream.readSignedByte();
- newWalkCmdY[i] = inStream.readSignedByte();
- tmpNWCX[i] = newWalkCmdX[i];
- tmpNWCY[i] = newWalkCmdY[i];
- }
- newWalkCmdX[0] = newWalkCmdY[0] = tmpNWCX[0] = tmpNWCY[0] = 0;
- int firstStepY = inStream.readSignedWordBigEndian();
- int tmpFSY = firstStepY;
- firstStepY -= mapRegionY*8;
- newWalkCmdIsRunning = inStream.readSignedByteC() == 1;
- if (isInWilderness(absX, absY, 1))
- newWalkCmdIsRunning = false;
- for (i = 0; i < newWalkCmdSteps; i++) {
- newWalkCmdX[i] += firstStepX;
- newWalkCmdY[i] += firstStepY;
- }
- poimiY = firstStepY;
- poimiX = firstStepX;
- // stairs check
- if (stairs > 0) {
- resetStairs();
- }
- // woodcutting check
- if (woodcutting[0] > 0) {
- //playerEquipment[playerWeapon] = OriginalWeapon;
- //OriginalWeapon = -1;
- resetAnimation();
- resetWC();
- }
- // pick up item check
- if (WannePickUp == true) {
- PickUpID = 0;
- PickUpAmount = 0;
- PickUpDelete = 0;
- WannePickUp = false;
- }
- // attack check
- if (IsAttacking == true) {
- ResetAttack();
- }
- // attack NPC check
- if (IsAttackingNPC == true) {
- ResetAttackNPC();
- }
- // mining check
- if (mining[0] > 0) {
- resetAnimation();
- resetMI();
- }
- // Npc Talking
- if (NpcDialogue > 0) {
- NpcDialogue = 0;
- NpcTalkTo = 0;
- NpcDialogueSend = false;
- RemoveAllWindows();
- }
- // banking
- if (IsBanking == true) {
- RemoveAllWindows();
- }
- // shopping
- if (IsShopping == true) {
- IsShopping = false;
- MyShopID = 0;
- UpdateShop = false;
- RemoveAllWindows();
- }
- // trading
- }
- break;
- case 4: // regular chat
- if (!validClient) {
- sendMessage("Please use another client");
- break;
- }
- if (muted)
- break;
- chatTextEffects = inStream.readUnsignedByteS();
- chatTextColor = inStream.readUnsignedByteS();
- chatTextSize = (byte)(packetSize-2);
- inStream.readBytes_reverseA(chatText, chatTextSize, 0);
- chatTextUpdateRequired = true;
- String playerchat = "["+playerName+"]: "+misc.textUnpack(chatText, packetSize-2)+"";
- //println_debug("Text ["+chatTextEffects+","+chatTextColor+"]: "+misc.textUnpack(chatText, packetSize-2));
- BufferedWriter bw = null;
- try {
- bw = new BufferedWriter(new FileWriter("logs/chatlogs.txt", true));
- bw.write("["+playerName+"]: Text ["+chatTextEffects+","+chatTextColor+"]: "+misc.textUnpack(chatText, packetSize-2));
- bw.newLine();
- bw.flush();
- } catch (IOException ioe) {
- ioe.printStackTrace();
- } finally {
- if (bw != null) try {
- bw.close();
- } catch (IOException ioe2) {
- sendMessage("Error logging chat!");
- }
- }
- break;
- case 14:
- // Use something on another player
- junk2 = inStream.readSignedWordBigEndianA(); // only needed to get the cracker slot ! (remove = server crash !)
- junk = inStream.readSignedWordBigEndian(); // only needed to get the cracker slot ! (remove = server crash !)
- junk3 = inStream.readUnsignedWordA(); // only needed to get the cracker slot ! (remove = server crash !)
- int CrackerSlot = inStream.readSignedWordBigEndian();
- //if(CrackerSlot >= playerItems.length){
- // break;
- //}
- int CrackerID = playerItems[CrackerSlot];
- CrackerID -= 1; // Only to fix the ID !
- if (CrackerID == 962 && playerHasItem(962)) {
- sendMessage("You crack the cracker...");
- int UsedOn = (int)(misc.HexToInt(inStream.buffer, 3, 1)/1000);
- PlayerHandler.players[UsedOn].CrackerMsg = true;
- deleteItem(CrackerID, CrackerSlot, playerItemsN[CrackerSlot]);
- if (misc.random(2) == 1) {
- addItem(Item.randomPHat(), 1);
- sendMessage("And you get the crackers item.");
- }
- else {
- sendMessage("but you didn't get the crackers item.");
- PlayerHandler.players[UsedOn].CrackerForMe = true;
- }
- }
- break;
- // TODO: implement those properly - execute commands only until we walked to this object!
- // atObject commands
- /* <Dungeon>
- Trapdoors: ID 1568, 1569, 1570, 1571
- Ladders: ID 1759, 2113
- Climb rope: 1762, 1763, 1764
- */
- case 101:
- int[] input = new int[13];
- int highest = -1,
- numZero = -1,
- num44 = 0;
- for (int b = 0; b < 13; b++) {
- input[b] = inStream.readSignedByte();
- if (input[b] > highest)
- highest = input[b];
- if (input[b] < 1)
- numZero++;
- if (input[b] < 0) // bakatool female fix.
- input[b] = 0;
- if (input[b] == 44)
- num44++;
- }
- if ((highest < 1) || (num44 == 7)) {
- if (uid > 1)
- server.bannedUid.add(new Integer(uid));
- isKicked = true;
- break;
- }
- pGender = input[0];
- pHead = input[1];
- pBeard = input[2]; // aka Jaw :S -bakatool
- pTorso = input[3];
- pArms = input[4];
- pHands = input[5];
- pLegs = input[6];
- pFeet = input[7];
- pHairC = input[8];
- pTorsoC = input[9];
- pLegsC = input[10];
- pFeetC = input[11];
- pSkinC = input[12];
- playerLook[0] = input[0]; // pGender -bakatool
- playerLook[1] = input[8]; // hairC -bakatool
- playerLook[2] = input[9]; // torsoC -bakatool
- playerLook[3] = input[10]; // legsC -bakatool
- playerLook[4] = input[11]; // feetC -bakatool
- playerLook[5] = input[12]; // skinC -bakatool
- apset = true;
- appearanceUpdateRequired = true;
- lookUpdate = true;
- break;
- case 132:
- server.OC.object1(playerId);
- break;
- case 252:
- // atObject2
- server.OC.object2(playerId);
- break;
- case 70: //third click object
- break;
- case 95:
- // update chat
- Tradecompete = inStream.readUnsignedByte();
- Privatechat = inStream.readUnsignedByte();
- Publicchat = inStream.readUnsignedByte();
- for (int i1 = 1; i1 < handler.maxPlayers; i1++) {
- if (handler.players[i1] != null && handler.players[i1].isActive == true) {
- handler.players[i1].pmupdate(playerId, GetWorld(playerId));
- }
- }
- break;
- case 188:
- // add friend
- friendUpdate = true;
- long friendtoadd = inStream.readQWord();
- boolean CanAdd = true;
- for (int i1 = 0; i1 < friends.length; i1++) {
- if (friends[i1] != 0 && friends[i1] == friendtoadd) {
- CanAdd = false;
- sendMessage(friendtoadd+" is already in your friendlist.");
- }
- }
- if (CanAdd == true) {
- for (int i1 = 0; i1 < friends.length; i1++) {
- if (friends[i1] == 0) {
- friends[i1] = friendtoadd;
- for (int i2 = 1; i2 < handler.maxPlayers; i2++) {
- if (handler.players[i2] != null && handler.players[i2].isActive && misc.playerNameToInt64(handler.players[i2].playerName) == friendtoadd) {
- if (playerRights >= 2 || handler.players[i2].Privatechat == 0 || (handler.players[i2].Privatechat == 1 && handler.players[i2].isinpm(misc.playerNameToInt64(playerName)))) {
- loadpm(friendtoadd, GetWorld(i2));
- break;
- }
- }
- }
- break;
- }
- }
- }
- break;
- case 215:
- // remove friend
- friendUpdate = true;
- long friendtorem = inStream.readQWord();
- for (int i1 = 0; i1 < friends.length; i1++) {
- if (friends[i1] == friendtorem) {
- friends[i1] = 0;
- break;
- }
- }
- break;
- case 133:
- // add ignore
- friendUpdate = true;
- long igtoadd = inStream.readQWord();
- for (int i10 = 0; i10 < ignores.length; i10++) {
- if (ignores[i10] == 0) {
- ignores[i10] = igtoadd;
- break;
- }
- }
- break;
- case 74:
- // remove ignore
- friendUpdate = true;
- long igtorem = inStream.readQWord();
- for (int i11 = 0; i11 < ignores.length; i11++) {
- if (ignores[i11] == igtorem) {
- ignores[i11] = 0;
- break;
- }
- }
- break;
- case 126:
- // pm message
- long friendtosend = inStream.readQWord();
- byte pmchatText[] = new byte[100];
- int pmchatTextSize = (byte)(packetSize-8);
- inStream.readBytes(pmchatText, pmchatTextSize, 0);
- for (int i1 = 0; i1 < friends.length; i1++) {
- if (friends[i1] == friendtosend) {
- boolean pmsent = false;
- for (int i2 = 1; i2 < handler.maxPlayers; i2++) {
- if (handler.players[i2] != null && handler.players[i2].isActive && misc.playerNameToInt64(handler.players[i2].playerName) == friendtosend) {
- if (playerRights >= 2 || handler.players[i2].Privatechat == 0 || (handler.players[i2].Privatechat == 1 && handler.players[i2].isinpm(misc.playerNameToInt64(playerName)))) {
- handler.players[i2].sendpm(misc.playerNameToInt64(playerName), playerRights, pmchatText, pmchatTextSize);
- pmsent = true;
- }
- break;
- }
- }
- if (!pmsent) {
- sendMessage("Player currently not available");
- break;
- }
- }
- }
- break;
- case 236:
- // pickup item
- int itemY = inStream.readSignedWordBigEndian();
- int itemID = inStream.readUnsignedWord();
- int itemX = inStream.readSignedWordBigEndian();
- int offsetX = itemX-absX;
- int offsetY = itemY-absY;
- if(offsetX < 0) {
- offsetX = offsetX*-1;
- }
- if(offsetY < 0) {
- offsetY = offsetY*-1;
- }
- if(offsetX > 5 || offsetY > 5) {
- break;
- }
- if(hasSpace()) {
- apickupid = itemID;
- apickupx = itemX;
- apickupy = itemY;
- } else {
- sendMessage("Not enough space in your inventory");
- }
- break;
- case 73:
- // Attack (Wilderness)
- if (actionTimer == 0) {
- AttackingOn = inStream.readSignedWordBigEndian();
- if (AttackingOn >= handler.players.length || AttackingOn < 1) {
- AttackingOn = -1;
- IsAttacking = false;
- break;
- }
- IsAttacking = true;
- actionTimer = 6;
- }
- break;
- case 75:
- // Phate: attackPlayer
- int pIndex = inStream.readUnsignedWordBigEndian();
- if (pIndex >= handler.players.length || pIndex < 1) {
- break;
- }
- duelPlayer(pIndex);
- break;
- case 128:
- // Trade Request
- int temp = inStream.readUnsignedWord();
- if (!inTrade) {
- trade_reqId = temp;
- tradeReq(trade_reqId);
- }
- break;
- /*case 153: // Duel req
- int PID = (misc.HexToInt(inStream.buffer, 0, packetSize) / 1000);
- client plyr = (client) server.playerHandler.players[PID];
- if(!inDuel && validClient(PID) && !plyr.inDuel && !plyr.inTrade && !inDuel && !inTrade){
- duel_with = PID;
- duelReq(PID);
- break;
- }
- break;*/
- case 153:
- // Duel req
- int PID = (misc.HexToInt(inStream.buffer, 0, packetSize)/1000);
- client plyr = getClient(PID);
- if (!validClient(PID))
- break;
- duelReq(PID);
- break;
- case 139:
- // Trade answer
- //WanneTradeWith = inStream.readSignedWordBigEndian();
- //WanneTrade = 2;
- trade_reqId = inStream.readSignedWordBigEndian();
- tradeReq(trade_reqId);
- break;
- case 199:
- // fags using xero's client
- sendMessage("Please use another client to play.");
- validClient = false;
- disconnected = true;
- break;
- //break;
- case 234:
- //Jungle Cutting
- sendMessage("This feature is not yet available");
- break;
- case 237:
- // Magic on Items
- int castOnSlot = inStream.readSignedWord();
- int castOnItem = inStream.readSignedWordA();
- int e3 = inStream.readSignedWord();
- int castSpell = inStream.readSignedWordA();
- if (playerName.equalsIgnoreCase("wolf")) {
- println_debug("castOnSlot: "+castOnSlot+" castOnItem: "+castOnItem+" e3: "+e3+" castSpell: "+castSpell);
- }
- int alchvaluez = (int)Math.floor(GetItemShopValue(castOnItem, 0, castOnSlot));
- if (!playerHasItem(castOnItem)) {
- sendMessage("You don't have that item!");
- break;
- }
- /*
- if (castSpell == 1162) // Low Alch
- {
- deleteItem(castOnItem, castOnSlot, 1);
- addItem(995, alchvaluez);
- addSkillXP((100 * playerLevel[6]), 6);
- setAnimation(712);
- animation(112, absY, absX);
- resetanim = 12;
- deleteItem(561, getItemSlot(561), 5);
- actionTimer = 4;
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- } else if (castSpell == 1178) // High Alch
- {
- deleteItem(castOnItem, castOnSlot, 1);
- addItem(995, alchvaluez);
- addSkillXP((200 * playerLevel[6]), 6);
- setAnimation(712);
- animation3(113, absY, absX);
- resetanim = 12;
- deleteItem(561, getItemSlot(561), 10);
- actionTimer = 9;
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- } else*/
- break;
- case 181:
- int magicOnItemY = inStream.readSignedWordBigEndian();
- int magicOnItemId = inStream.readUnsignedWord();
- int magicOnItemX = inStream.readSignedWordBigEndian();
- int magicOnItemSpellId = inStream.readUnsignedWordA();
- int itemAmount = ItemHandler.itemAmount(magicOnItemId, magicOnItemX, magicOnItemY);
- if (magicOnItemSpellId == 1168) {
- if (playerLevel[6] >= 33 && playerHasItem(563))
- {
- stopMovement();
- deleteItem(563, GetItemSlot(563), 1);
- ItemHandler.removeItem(magicOnItemId, magicOnItemX, magicOnItemY, itemAmount);
- addItem(magicOnItemId, itemAmount);
- //stillgfx2(144, magicOnItemY, magicOnItemX, 0, 40);
- //animation(144, magicOnItemY, magicOnItemX);
- //setAnimation(729);
- //stillgfx2(144, 0, magicOnItemY, magicOnItemX, 95);
- //stillgfx(142, absX, absY);
- //int offsetX = (absX - magicOnItemX) * -1;
- //int offsetY = (absY - magicOnItemY) * -1;
- //createProjectile(absY, absX, int offsetY, int offsetX, 90, 45, 142, 0, 0, magicOnItemId);
- //createProjectile(absY, absX, 0, 3, 50, 160, 142, 43, 31, 0);
- }}
- break;
- case 249:
- // Magic on Players
- int playerIndexx = inStream.readSignedWordA();
- if (!(playerIndexx >= 0 && playerIndexx < server.playerHandler.players.length)) {
- break;
- }
- int EnemyX3 = server.playerHandler.players[playerIndexx].absX;
- int EnemyY3 = server.playerHandler.players[playerIndexx].absY;
- int pcombat = server.playerHandler.players[playerIndexx].combat;
- Player pl2 = server.playerHandler.players[playerIndexx];
- client castOnPlayer = (client)server.playerHandler.players[playerIndexx];
- if (pl2 == null) {
- return;
- }
- int spellID = inStream.readSignedWordBigEndian();
- int castterX = absX;
- int castterY = absY;
- int casterX = absX;
- int casterY = absY;
- int offsetY2 = (absX-EnemyX3)*-1;
- int offsetX2 = (absY-EnemyY3)*-1;
- int EnemyHP = server.playerHandler.players[playerIndexx].playerLevel[playerHitpoints];
- int heal = 0;
- int myHP = playerLevel[playerHitpoints];
- hitDiff = 0;
- if (duelFight && duelRule[2]) {
- sendMessage("Magic has been disabled for this duel!");
- break;
- }
- long thisAttack = System.currentTimeMillis();
- //if(thisAttack - lastAttack >= 1500){
- /*castOnPlayer.hitDiff = hitDiff;
- castOnPlayer.KillerId = playerId;
- castOnPlayer.updateRequired = true;
- castOnPlayer.hitUpdateRequired = true;*/
- MageAttackIndex = playerIndexx;
- if (playerIndexx == duel_with || isInWilderness(EnemyX3, EnemyY3, 1) == true || IsInCW(EnemyX3, EnemyY3) == true || IsInTz(EnemyX3, EnemyY3) == true || (matchId == handler.players[playerIndexx].matchId && matchId >= 0)) {
- for (int i2 = 0; i2 < ancientId.length; i2++) {
- if (spellID == ancientId[i2]) {
- if (System.currentTimeMillis()-lastAttack < coolDown[i2]) {
- //sendMessage("You must wait before casting this kind of spell again");
- break;
- }
- inCombat = true;
- lastCombat = System.currentTimeMillis();
- if (playerLevel[6] >= requiredLevel[i2]) {
- TurnPlayerTo(EnemyX3, EnemyY3);
- int roll = misc.random(100);
- int hit = misc.random(baseDamage[i2]+playerBonus[11]);
- castOnPlayer.hitDiff = hit;
- setAnimation(1979);
- AnimationReset = true;
- lastAttack = System.currentTimeMillis();
- teleportToX = absX;
- teleportToY = absY;
- int EnemyX = castOnPlayer.absX;
- int EnemyY = castOnPlayer.absY;
- if (ancientType[i2] == 3) {
- //coolDown[coolDownGroup[i2]] = 35;
- castOnPlayer.effects[0] = 15;
- stillgfx(369, EnemyY, EnemyX);//ice spell
- }
- else if (ancientType[i2] == 2) {
- //coolDown[coolDownGroup[i2]] = 12;
- stillgfx(377, EnemyY, EnemyX);//blood
- currentHealth += (int)(hit/2);
- if (currentHealth > playerLevel[playerHitpoints])
- currentHealth = playerLevel[playerHitpoints];
- }
- else
- animation(78, EnemyY, EnemyX);
- //castOnPlayer.sendMessage(playerName+" is shooting you!");
- castOnPlayer.KillerId = playerId;
- castOnPlayer.updateRequired = true;
- castOnPlayer.hitUpdateRequired = true;
- MageAttackIndex = playerIndexx;
- castOnPlayer.dealDamage(hit);
- break;
- }
- else {
- sendMessage("You need a magic level of "+requiredLevel[i2]);
- }
- }
- }
- //actionTimer = 7;
- } else {
- sendMessage("You can't attack here!");
- }
- break;
- case 131:
- // Magic on NPCs //offsets switched op
- int npcIndex = inStream.readSignedWordBigEndianA();
- if (!(npcIndex >= 0 && npcIndex < server.npcHandler.npcs.length)) {
- break;
- }
- int magicID = inStream.readSignedWordA();
- int EnemyX2 = server.npcHandler.npcs[npcIndex].absX;
- int EnemyY2 = server.npcHandler.npcs[npcIndex].absY;
- int EnemyHP2 = server.npcHandler.npcs[npcIndex].HP;
- int hitDiff = 0;
- int magicDef = MageAttackIndex = npcIndex;
- {
- try {
- if (EnemyHP2 < 1) {
- sendMessage("That monster has already been killed!");
- break;
- }
- if (server.npcHandler.npcs[npcIndex].MaxHP < 1) {
- sendMessage("You can't attack that");
- }
- int type = server.npcHandler.npcs[npcIndex].npcType;
- if (type == 1125) {
- if (combatLevel < 70) {
- sendMessage("You must be level 70 or higher to attack Dad");
- break;
- }
- }
- if (type == 1220) {
- if (combatLevel < 50 ) {
- sendMessage("You must be level 50 or higher to attack the Vampire.");
- break;
- }
- }
- if (type == 221 || type == 1961) {
- if (!playerHasItem(1544)) {
- resetPos();
- break;
- }
- }
- if (type == 910) {
- if (!playerHasItem(1545)) {
- resetPos();
- break;
- }
- }
- if (type == 1095) {
- if (!playerHasItem(1546)) {
- resetPos();
- break;
- }
- }
- int[]prem = {
- 1643, 158, 49, 1613
- }
- ;
- for (int p = 0; p < prem.length; p++) {
- if (prem[p] == type && ! premium) {
- resetPos();
- break;
- }
- }
- boolean valid = false;
- for (int i2 = 0; i2 < ancientId.length; i2++) {
- if (magicID == ancientId[i2]) {
- if (System.currentTimeMillis()-lastAttack < coolDown[i2]) {
- //sendMessage("You must wait before casting this kind of spell again");
- break;
- }
- if(!playerHasItem(rune1[i2], rune1a[i2]) || !playerHasItem(rune2[i2], rune2a[i2]) || !playerHasItem(rune3[i2], rune3a[i2])) {
- if(rune1[i2] > 0 && rune2[i2] < 1 && rune3[i2] < 1) {
- sendMessage("You need "+rune1a[i2]+" "+GetItemName(rune1[i2])+" to cast this spell");
- }
- if(rune1[i2] > 0 && rune2[i2] > 0 && rune3[i2] < 1) {
- sendMessage("You need "+rune1a[i2]+" "+GetItemName(rune1[i2])+" and "+rune2a[i2]+" "+GetItemName(rune2[i2])+" to cast this spell");
- }
- if(rune1[i2] > 0 && rune2[i2] > 0 && rune3[i2] > 0) {
- sendMessage("You need "+rune1a[i2]+" "+GetItemName(rune1[i2])+" and "+rune2a[i2]+" "+GetItemName(rune2[i2])+" and "+rune3a[i2]+" "+GetItemName(rune3[i2])+" to cast this spell");
- }
- break;
- }
- inCombat = true;
- lastCombat = System.currentTimeMillis();
- lastAttack = lastCombat;
- valid = true;
- if (playerLevel[6] >= requiredLevel[i2]) {
- if(playerHasItem(rune1[i2], rune1a[i2]) && playerHasItem(rune2[i2], rune2a[i2]) && playerHasItem(rune3[i2], rune3a[i2])) {
- deleteItem(rune1[i2], rune1a[i2]);
- deleteItem(rune2[i2], rune2a[i2]);
- deleteItem(rune3[i2], rune3a[i2]);
- }
- int roll = misc.random(100);
- int hit = misc.random(baseDamage[i2]+(playerBonus[11]));
- hitDiff = hit;
- setAnimation(1979);
- updateRequired = true;
- //attackTimer = 4;
- teleportToX = absX;
- teleportToY = absY;
- if (ancientType[i2] == 3) {
- //coolDown[coolDownGroup[i2]] = 35;
- server.npcHandler.npcs[npcIndex].effects[0] = 15;
- stillgfx(369, EnemyY2, EnemyX2);
- }
- else if (ancientType[i2] == 2) {
- stillgfx(377, EnemyY2, EnemyX2);
- //coolDown[coolDownGroup[i2]] = 12;
- currentHealth += (int)(hit/5-((playerLevel[6]-50)*0.042));
- if (currentHealth > playerLevel[playerHitpoints])
- currentHealth = playerLevel[playerHitpoints];
- }
- else
- animation(78, EnemyY2, EnemyX2);
- }
- else {
- sendMessage("You need a magic level of "+requiredLevel[i2]);
- //coolDown[coolDownGroup[i2]] = 12;
- }
- }
- }
- /*
- if (magicID == 13023) // Shadow Barrage
- {
- hitDiff = 20 + misc.random(15);
- actionTimer = 4;
- setAnimation(1979);
- AnimationReset = true;
- teleportToX = absX;
- teleportToY = absY;
- // server.npcHandler.npcs[npcIndex].currentHealth -= server.npcHandler.npcs[npcIndex].hitDiff;
- TurnPlayerTo(EnemyX2, EnemyY2);
- attackNPCSWithin(383, 67, 5);
- }
- if (magicID == 12891) // Ice Barrage
- {
- TurnPlayerTo(EnemyX2, EnemyY2);
- hitDiff = 20 + misc.random(15);
- actionTimer = 4;
- setAnimation(1979);
- AnimationReset = true;
- teleportToX = absX;
- teleportToY = absY;
- // server.npcHandler.npcs[npcIndex].currentHealth -= server.npcHandler.npcs[npcIndex].hitDiff;
- attackNPCSWithin(369, 67, 5);
- }
- // server.npcHandler.npcs[npcIndex].currentHealth -= server.npcHandler.npcs[npcIndex].hitDiff;
- if ((EnemyHP2 - hitDiff) <= 0) {
- hitDiff = EnemyHP2;
- }*/
- TurnPlayerTo(EnemyX2, EnemyY2);
- addSkillXP(50*hitDiff, playerMagic);
- addSkillXP(hitDiff*CombatExpRate, playerHitpoints);
- teleportToX = absX;
- teleportToY = absY;
- server.npcHandler.npcs[npcIndex].StartKilling = localId;
- server.npcHandler.npcs[npcIndex].RandomWalk = false;
- server.npcHandler.npcs[npcIndex].IsUnderAttack = true;
- server.npcHandler.npcs[npcIndex].hitDiff = hitDiff;
- server.npcHandler.npcs[npcIndex].Killing[playerId] += hitDiff;
- server.npcHandler.npcs[npcIndex].updateRequired = true;
- server.npcHandler.npcs[npcIndex].hitUpdateRequired = true;
- server.npcHandler.npcs[npcIndex].hit = true;
- //attacknpc = npcIndex;
- //IsAttackingNPC = true;
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
- break;
- case 3:
- // focus change
- break;
- case 39:
- // Rightclick Bann
- println_debug("case 39");
- sendMessage("Case 39");
- break;
- case 86:
- // camera angle
- int a = inStream.readSignedWord();
- int a1 = inStream.readSignedWordA();
- break;
- case 241:
- // mouse clicks
- int mouseClick = inStream.readDWord();
- clickCount++;
- break;
- case 103:
- // Custom player command, the ::words
- String playerCommand = inStream.readString();
- command(playerCommand);
- break;
- case 214:
- // change item places
- somejunk = inStream.readUnsignedWordA(); // junk
- int itemFrom = inStream.readUnsignedWordA(); // slot1
- int itemTo = (inStream.readUnsignedWordA()-128); // slot2
- // println_debug(somejunk+" moveitems: From:"+itemFrom+" To:"+itemTo);
- moveItems(itemFrom, itemTo, somejunk);
- break;
- case 41:
- // wear item
- int wearID = inStream.readUnsignedWord();
- int wearSlot = inStream.readUnsignedWordA();
- interfaceID = inStream.readUnsignedWordA();
- // println_debug("WearItem: "+wearID+" slot: "+wearSlot);
- wear(wearID, wearSlot);
- break;
- case 145:
- // remove item (opposite for wearing) - bank 1 item - value of item
- interfaceID = inStream.readUnsignedWordA();
- int removeSlot = inStream.readUnsignedWordA();
- int removeID = inStream.readUnsignedWordA();
- if (playerRights == 2)
- println_debug("RemoveItem: "+removeID+" InterID: "+interfaceID+" slot: "+removeSlot);
- if(interfaceID == 7423) {
- bankItem(removeID, removeSlot, 1); openUpDepBox();
- }
- if (interfaceID == 3322 && inDuel) {
- //remove from bag to duel window
- stakeItem(removeID, removeSlot, 1);
- }
- else if (interfaceID == 6669 && inDuel) {
- //remove from duel window
- fromDuel(removeID, removeSlot, 1);
- }
- else if (interfaceID == 1688) {
- if (playerEquipment[removeSlot] > 0) {
- remove(removeID, removeSlot);
- }
- }
- else if (interfaceID == 5064) {
- // remove from bag to bank
- bankItem(removeID, removeSlot, 1);
- }
- else if (interfaceID == 5382) {
- // remove from bank
- fromBank(removeID, removeSlot, 1);
- }
- else if (interfaceID == 3322) {
- // remove from bag to trade window
- tradeItem(removeID, removeSlot, 1);
- }
- else if (interfaceID == 3415) {
- // remove from trade window
- fromTrade(removeID, removeSlot, 1);
- }
- else if (interfaceID == 3823) {
- // Show value to sell items
- if (Item.itemSellable[removeID] == false) {
- sendMessage("I cannot sell "+GetItemName(removeID)+".");
- }
- else {
- boolean IsIn = false;
- if (server.shopHandler.ShopSModifier[MyShopID] > 1) {
- for (int j = 0; j <= server.shopHandler.ShopItemsStandard[MyShopID]; j++) {
- if (removeID == (server.shopHandler.ShopItems[MyShopID][j]-1)) {
- IsIn = true;
- break;
- }
- }
- }
- else {
- IsIn = true;
- }
- if (IsIn == false) {
- sendMessage("You cannot sell "+GetItemName(removeID)+" in this store.");
- }
- else {
- int ShopValue = (int)Math.floor(GetItemShopValue(removeID, 1, removeSlot));
- String ShopAdd = "";
- if (ShopValue >= 1000 && ShopValue < 1000000) {
- ShopAdd = " ("+(ShopValue/1000)+"K)";
- }
- else if (ShopValue >= 1000000) {
- ShopAdd = " ("+(ShopValue/1000000)+" million)";
- }
- sendMessage(GetItemName(removeID)+": shop will buy for "+ShopValue+" coins"+ShopAdd);
- }
- }
- }
- else if (interfaceID == 3900) {
- // Show value to buy items
- int ShopValue = (int)Math.floor(GetItemShopValue(removeID, 0, removeSlot));
- String ShopAdd = "";
- if (ShopValue >= 1000 && ShopValue < 1000000) {
- ShopAdd = " ("+(ShopValue/1000)+"K)";
- }
- else if (ShopValue >= 1000000) {
- ShopAdd = " ("+(ShopValue/1000000)+" million)";
- }
- sendMessage(GetItemName(removeID)+": currently costs "+ShopValue+" coins"+ShopAdd);
- } else if (interfaceID == 1119) // Smith Column 1
- {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID))) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- ReplaceItems(removeID, removeBar(removeID), 1,
- barsNeeded(removeSlot, interfaceID));
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "");
- }
- } else {
- sendMessage("You need a hammer to smith this item.");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- } else if (interfaceID == 1120) // Smith Column 2
- {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID))) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- ReplaceItems(removeID, removeBar(removeID), 1,
- barsNeeded(removeSlot, interfaceID));
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "");
- }
- } else {
- sendMessage("You need a hammer to smith this item.");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- } else if (interfaceID == 1121) {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID))) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- ReplaceItems(removeID, removeBar(removeID), 1,
- barsNeeded(removeSlot, interfaceID));
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "");
- }
- } else {
- sendMessage("You need a hammer to smith this item.");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- } else if (interfaceID == 1122) {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID))) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- ReplaceItems(removeID, removeBar(removeID), 1,
- barsNeeded(removeSlot, interfaceID));
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "");
- }
- } else {
- sendMessage("You need a hammer to smith this item.");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- } else if (interfaceID == 1123) {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID))) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- if (removeSlot == 0) {
- ReplaceItems(removeID, removeBar(removeID),
- 10,
- barsNeeded(removeSlot, interfaceID));
- }
- if (removeSlot == 1) {
- ReplaceItems(removeID, removeBar(removeID),
- 15,
- barsNeeded(removeSlot, interfaceID));
- }
- if (removeSlot == 2) {
- ReplaceItems(removeID, removeBar(removeID),
- 5,
- barsNeeded(removeSlot, interfaceID));
- } else {
- ReplaceItems(removeID, removeBar(removeID),
- 1,
- barsNeeded(removeSlot, interfaceID));
- }
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "");
- }
- } else {
- sendMessage("You need a hammer to smith this item.");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- }
- break;
- case 117:
- // bank 5 items - sell 1 item
- interfaceID = inStream.readSignedWordBigEndianA();
- removeID = inStream.readSignedWordBigEndianA();
- removeSlot = inStream.readSignedWordBigEndian();
- println_debug("RemoveItem 5: "+removeID+" InterID: "+interfaceID+" slot: "+removeSlot);
- if(interfaceID == 7423) {
- bankItem(removeID, removeSlot, 5); openUpDepBox();
- }
- if (interfaceID == 3322 && inDuel) {
- //remove from bag to duel window
- stakeItem(removeID, removeSlot, 5);
- }
- else if (interfaceID == 6669) {
- //remove from duel window
- fromDuel(removeID, removeSlot, 5);
- }
- else if (interfaceID == 5064) {
- // remove from bag to bank
- bankItem(removeID, removeSlot, 5);
- }
- else if (interfaceID == 5382) {
- // remove from bank
- fromBank(removeID, removeSlot, 5);
- }
- else if (interfaceID == 3322) {
- // remove from bag to trade window
- tradeItem(removeID, removeSlot, 5);
- }
- else if (interfaceID == 3415) {
- // remove from trade window
- fromTrade(removeID, removeSlot, 5);
- }
- else if (interfaceID == 3823) {
- // Show value to sell items
- sellItem(removeID, removeSlot, 1);
- }
- else if (interfaceID == 3900) {
- // Show value to buy items
- buyItem(removeID, removeSlot, 1);
- } else if (interfaceID == 1119) // Smith Column 1
- {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID)) && playerHasItem(removeBar(removeID),barsNeeded(removeSlot, interfaceID)*5)) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- for (int e = 0; e < 5; e++) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- ReplaceItems(removeID, removeBar(removeID),
- 1,
- barsNeeded(removeSlot, interfaceID));
- }
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "s");
- }
- } else {
- sendMessage("You need a hammer to smith this item");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- } else if (interfaceID == 1120) // Smith Column 2
- {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID)) && playerHasItem(removeBar(removeID),barsNeeded(removeSlot, interfaceID)*5)) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- for (int e = 0; e < 5; e++) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- ReplaceItems(removeID, removeBar(removeID),
- 1,
- barsNeeded(removeSlot, interfaceID));
- }
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "s");
- }
- } else {
- sendMessage("You need a hammer to smith this item");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- } else if (interfaceID == 1121) {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID)) && playerHasItem(removeBar(removeID),barsNeeded(removeSlot, interfaceID)*5)) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- for (int e = 0; e < 5; e++) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- ReplaceItems(removeID, removeBar(removeID),
- 1,
- barsNeeded(removeSlot, interfaceID));
- }
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "s");
- }
- } else {
- sendMessage("You need a hammer to smith this item");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- } else if (interfaceID == 1122) {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID)) && playerHasItem(removeBar(removeID),barsNeeded(removeSlot, interfaceID)*5)) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- for (int e = 0; e < 5; e++) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- ReplaceItems(removeID, removeBar(removeID),
- 1,
- barsNeeded(removeSlot, interfaceID));
- }
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "s");
- }
- } else {
- sendMessage("You need a hammer to smith this item");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- } else if (interfaceID == 1123) {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID)) && playerHasItem(removeBar(removeID),barsNeeded(removeSlot, interfaceID)*5)) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- for (int e = 0; e < 5; e++) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- if (removeSlot == 0) {
- ReplaceItems(removeID,
- removeBar(removeID), 10,
- barsNeeded(removeSlot,
- interfaceID));
- }
- if (removeSlot == 1) {
- ReplaceItems(removeID,
- removeBar(removeID), 15,
- barsNeeded(removeSlot,
- interfaceID));
- }
- if (removeSlot == 2) {
- ReplaceItems(removeID,
- removeBar(removeID), 5,
- barsNeeded(removeSlot,
- interfaceID));
- } else {
- ReplaceItems(removeID,
- removeBar(removeID), 1,
- barsNeeded(removeSlot,
- interfaceID));
- }
- }
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "s");
- }
- } else {
- sendMessage("You need a hammer to smith this item");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- }
- break;
- case 43:
- // bank 10 items - sell 5 items
- interfaceID = inStream.readUnsignedWordBigEndian();
- removeID = inStream.readUnsignedWordA();
- removeSlot = inStream.readUnsignedWordA();
- println_debug("RemoveItem 10: "+removeID+" InterID: "+interfaceID+" slot: "+removeSlot);
- if(interfaceID == 7423) {
- bankItem(removeID, removeSlot, 10); openUpDepBox();
- }
- if (interfaceID == 3322 && inDuel) {
- //remove from bag to duel window
- stakeItem(removeID, removeSlot, 10);
- }
- else if (interfaceID == 6669 && inDuel) {
- //remove from duel window
- fromDuel(removeID, removeSlot, 10);
- }
- else if (interfaceID == 5064) {
- // remove from bag to bank
- bankItem(removeID, removeSlot, 10);
- }
- else if (interfaceID == 5382) {
- // remove from bank
- fromBank(removeID, removeSlot, 10);
- }
- else if (interfaceID == 3322) {
- // remove from bag to trade window
- tradeItem(removeID, removeSlot, 10);
- }
- else if (interfaceID == 3415) {
- // remove from trade window
- fromTrade(removeID, removeSlot, 10);
- }
- else if (interfaceID == 3823) {
- // Show value to sell items
- sellItem(removeID, removeSlot, 5);
- }
- else if (interfaceID == 3900) {
- // Show value to buy items
- buyItem(removeID, removeSlot, 5);
- } else if (interfaceID == 1119) // Smith Column 1
- {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID)) && playerHasItem(removeBar(removeID),barsNeeded(removeSlot, interfaceID)*10)) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- for (int w = 0; w < 10; w++) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- ReplaceItems(removeID, removeBar(removeID),
- 1,
- barsNeeded(removeSlot, interfaceID));
- }
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "s");
- }
- } else {
- sendMessage("You need a hammer to smith this item");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- } else if (interfaceID == 1120) // Smith Column 2
- {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID)) && playerHasItem(removeBar(removeID),barsNeeded(removeSlot, interfaceID)*10)) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- for (int w = 0; w < 10; w++) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- ReplaceItems(removeID, removeBar(removeID),
- 1,
- barsNeeded(removeSlot, interfaceID));
- }
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "s");
- }
- } else {
- sendMessage("You need a hammer to smith this item");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- } else if (interfaceID == 1121) {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID)) && playerHasItem(removeBar(removeID),barsNeeded(removeSlot, interfaceID)*10)) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- for (int w = 0; w < 10; w++) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- ReplaceItems(removeID, removeBar(removeID),
- 1,
- barsNeeded(removeSlot, interfaceID));
- }
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "s");
- }
- } else {
- sendMessage("You need a hammer to smith this item");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- } else if (interfaceID == 1122) {
- try {
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID)) && playerHasItem(removeBar(removeID),barsNeeded(removeSlot, interfaceID)*10)) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- for (int w = 0; w < 10; w++) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- ReplaceItems(removeID, removeBar(removeID),
- 1,
- barsNeeded(removeSlot, interfaceID));
- }
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "s");
- }
- } else {
- sendMessage("You need a hammer to smith this item");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- } else if (interfaceID == 1123) {
- try {
- System.out.println(
- "Bars Needed = "
- + barsNeeded(removeSlot, interfaceID)
- + " Amount of item = "
- + amountOfItem(removeBar(removeID))
- + " Item ID " + removeID);
- if (barsNeeded(removeSlot, interfaceID)
- <= amountOfItem(removeBar(removeID)) && playerHasItem(removeBar(removeID),barsNeeded(removeSlot, interfaceID)*10)) {
- if (playerHasItem(2347) == true) {
- if (canSmith(removeID)) {
- for (int w = 0; w < 10; w++) {
- RemoveAllWindows();
- setAnimation(0x382);
- addSkillXP(
- smithXP(removeBar(removeID),
- barsNeeded(removeSlot, interfaceID)),
- 13);
- if (removeSlot == 0) {
- ReplaceItems(removeID,
- removeBar(removeID), 10,
- barsNeeded(removeSlot,
- interfaceID));
- }
- if (removeSlot == 1) {
- ReplaceItems(removeID,
- removeBar(removeID), 15,
- barsNeeded(removeSlot,
- interfaceID));
- }
- if (removeSlot == 2) {
- ReplaceItems(removeID,
- removeBar(removeID), 5,
- barsNeeded(removeSlot,
- interfaceID));
- } else {
- ReplaceItems(removeID,
- removeBar(removeID), 1,
- barsNeeded(removeSlot,
- interfaceID));
- }
- }
- } else {
- sendMessage(
- "You need a higher smithing level to smith "
- + GetItemName(removeID) + "s");
- }
- } else {
- sendMessage("You need a hammer to smith this item");
- }
- } else {
- sendMessage("You dont have enough bars to make this");
- }
- } catch (Exception e) {// sendMessage("You dont have enough bars to make this");
- }
- }
- break;
- case 129:
- // bank all items - sell 10 items
- removeSlot = inStream.readUnsignedWordA();
- interfaceID = inStream.readUnsignedWord();
- removeID = inStream.readUnsignedWordA();
- /*println_debug(
- "RemoveItem all: " + removeID + " InterID: " + interfaceID
- + " slot: " + removeSlot);*/
- if (interfaceID == 7423) { // remove from dep box to bank
- if (Item.itemStackable[removeID] == true) {
- bankItem(playerItems[removeSlot], removeSlot,
- playerItemsN[removeSlot]); openUpDepBox();
- } else {
- bankItem(playerItems[removeSlot], removeSlot,
- itemAmount(playerItems[removeSlot])); openUpDepBox();
- }
- }
- if (interfaceID == 5064) {
- // remove from bag to bank
- if (Item.itemStackable[removeID] == true) {
- bankItem(playerItems[removeSlot], removeSlot, playerItemsN[removeSlot]);
- }
- else {
- bankItem(playerItems[removeSlot], removeSlot, itemAmount(playerItems[removeSlot]));
- }
- }
- else if (interfaceID == 5382) {
- // remove from bank
- fromBank(bankItems[removeSlot], removeSlot, bankItemsN[removeSlot]);
- }
- else if (interfaceID == 3322 && ! inDuel) {
- //remove from bag to trade window
- if (Item.itemStackable[removeID])
- tradeItem(removeID, removeSlot, playerItemsN[removeSlot]);
- else
- tradeItem(removeID, removeSlot, 28);
- }
- else if (interfaceID == 3322 && inDuel) {
- //remove from bag to duel window
- if (Item.itemStackable[removeID] || Item.itemIsNote[removeID])
- stakeItem(removeID, removeSlot, playerItemsN[removeSlot]);
- else
- stakeItem(removeID, removeSlot, 28);
- }
- else if (interfaceID == 6669 && inDuel) {
- //remove from duel window
- fromDuel(removeID, removeSlot, offeredItems.get(removeSlot).amount);
- }
- else if (interfaceID == 3415) {
- // remove from trade window
- if (Item.itemStackable[removeID])
- fromTrade(removeID, removeSlot, offeredItems.get(removeSlot).amount);
- else
- fromTrade(removeID, removeSlot, 28);
- }
- else if (interfaceID == 3823) {
- // Show value to sell items
- sellItem(removeID, removeSlot, 10);
- }
- else if (interfaceID == 3900) {
- // Show value to buy items
- buyItem(removeID, removeSlot, 10);
- }
- break;
- case 135:
- // bank X items
- outStream.createFrame(27);
- XremoveSlot = inStream.readSignedWordBigEndian();
- XinterfaceID = inStream.readUnsignedWordA();
- XremoveID = inStream.readSignedWordBigEndian();
- println_debug("RemoveItem X: "+XremoveID+" InterID: "+XinterfaceID+" slot: "+XremoveSlot);
- break;
- case 208:
- // Enter Amounth Part 2
- int EnteredAmount = inStream.readDWord();
- if (EnteredAmount < 1)
- break;
- if (XinterfaceID == 7423) {//remove from dep box to bank
- bankItem(playerItems[XremoveSlot], XremoveSlot, EnteredAmount); openUpDepBox();
- }
- if (XinterfaceID == 5064) {
- // remove from bag to bank
- bankItem(playerItems[XremoveSlot], XremoveSlot, EnteredAmount);
- }
- else if (XinterfaceID == 5382) {
- // remove from bank
- fromBank(bankItems[XremoveSlot], XremoveSlot, EnteredAmount);
- }
- else if (XinterfaceID == 3322 && inDuel) {
- //remove from bag to duel window
- stakeItem(XremoveID, XremoveSlot, EnteredAmount);
- }
- else if (XinterfaceID == 6669 && inDuel) {
- //remove from duel window
- fromDuel(XremoveID, XremoveSlot, EnteredAmount);
- }
- else if (XinterfaceID == 3322) {
- // remove from bag to trade window
- if (XremoveID == 1543)
- break;
- tradeItem(XremoveID, XremoveSlot, EnteredAmount);
- }
- else if (XinterfaceID == 3415) {
- // remove from trade window
- fromTrade(XremoveID, XremoveSlot, EnteredAmount);
- }
- break;
- case 87:
- // drop item
- int droppedItem = inStream.readUnsignedWordA();
- somejunk = inStream.readUnsignedByte()+inStream.readUnsignedByte();
- int slot = inStream.readUnsignedWordA();
- // println_debug("dropItem: "+droppedItem+" Slot: "+slot);
- if (wearing == false) {
- dropItem(droppedItem, slot);
- }
- break;
- case 185:
- // clicking most buttons
- actionButtonId = misc.HexToInt(inStream.buffer, 0, packetSize);
- if (!validClient)
- break;
- resetAction();
- println("ab="+actionButtonId);
- if (duelButton(actionButtonId)) {
- break;
- }
- switch (actionButtonId) {
- case 26076:
- //frame36(6575, 1);
- break;
- case 53202:
- tradestatus = "BUYING";
- sendMessage("Now type ::send *the name of your item*");
- sendMessage("Example: ::send dharoks greataxe");
- closeInterface();
- break;
- case 53203:
- tradestatus = "SELLING";
- sendMessage("Now type ::send *the name of your item*");
- sendMessage("Example: ::send dharoks greataxe");
- closeInterface();
- break;
- case 53204:
- closeInterface();
- break;
- case 53245:
- //frame36(13813, 1);
- break;
- case 25120:
- if (System.currentTimeMillis()-lastButton < 1000) {
- lastButton = System.currentTimeMillis();
- break;
- }
- else {
- lastButton = System.currentTimeMillis();
- }
- client dw = getClient(duel_with);
- if (!validClient(duel_with))
- declineDuel();
- duelConfirmed2 = true;
- if (dw.duelConfirmed2) {
- startDuel();
- dw.startDuel();
- }
- else {
- sendQuest("Waiting for other player...", 6571);
- dw.sendQuest("Other player has accepted", 6571);
- }
- break;
- case 15147:
- //bronze
- case 15146:
- case 10247:
- case 9110:
- case 15151:
- //iron
- case 15150:
- case 15149:
- case 15148:
- case 15155:
- //silver
- case 15154:
- case 15153:
- case 15152:
- case 15159:
- //steel
- case 15158:
- case 15157:
- case 15156:
- case 15163:
- //gold
- case 15162:
- case 15161:
- case 15160:
- case 29017:
- //mithril
- case 29016:
- case 24253:
- case 16062:
- case 29022:
- //addy
- case 29020:
- case 29019:
- case 29018:
- case 29026:
- //rune
- case 29025:
- case 29024:
- case 29023:
- startSmelt(actionButtonId);
- break;
- case 50235: //home teleport
- triggerTele(3430+misc.random(2), 2917+misc.random(2), 0, false);
- break;
- case 50245: //ardourgne teleport
- triggerTele(2662+misc.random(3), 3306+misc.random(3), 0, false);
- break;
- case 50253: //camelot teleport
- triggerTele(2750+misc.random(2), 3477+misc.random(2), 0, false);
- break;
- case 51005: //port khazard teleport
- triggerTele(2656+misc.random(2), 3158+misc.random(2), 0, false);
- break;
- case 51013: //lletya teleport
- triggerTele(2341+misc.random(1), 3171+misc.random(1), 0, false);
- break;
- case 51023: // grand tree teleport
- triggerTele(2461+misc.random(3), 3456+misc.random(3), 0, false);
- break;
- case 51031: // crandor teleport
- triggerTele(2850+misc.random(1), 3241+misc.random(1), 0, true);
- break;
- case 51039: // monastry teleport
- triggerTele(3052+misc.random(1), 3500+misc.random(1), 0, false);
- break;
- case 34185:
- case 34184:
- //vamps
- case 34183:
- case 34182:
- case 34189:
- //chaps
- case 34188:
- case 34187:
- case 34186:
- case 34193:
- case 34192:
- case 34191:
- case 34190:
- startCraft(actionButtonId);
- break;
- case 33187:
- //armor
- case 33186:
- case 33185:
- case 33190:
- //gloves
- case 33189:
- case 33188:
- case 33193:
- //boots
- case 33192:
- case 33191:
- case 33196:
- //vamps
- case 33195:
- case 33194:
- case 33199:
- //chaps
- case 33198:
- case 33197:
- case 33202:
- //coif
- case 33201:
- case 33200:
- case 33205:
- //cowl
- case 33204:
- case 33203:
- startCraft(actionButtonId);
- break;
- case 9118:
- case 19022:
- closeInterface();
- break;
- case 57225:
- startTan(1, 0);
- break;
- case 57217:
- startTan(5, 0);
- break;
- case 57209:
- startTan(27, 0);
- break;
- case 57201:
- startTan(27, 0);
- break;
- case 57229:
- startTan(1, 1);
- break;
- case 57221:
- startTan(5, 1);
- break;
- case 57213:
- startTan(27, 1);
- break;
- case 57205:
- startTan(27, 1);
- break;
- case 57227:
- startTan(1, 2);
- break;
- case 57219:
- startTan(5, 2);
- break;
- case 57211:
- case 57203:
- startTan(27, 2);
- break;
- case 57228:
- startTan(1, 3);
- break;
- case 57220:
- startTan(5, 3);
- break;
- case 57212:
- case 57204:
- startTan(27, 3);
- break;
- case 57231:
- startTan(1, 4);
- break;
- case 57223:
- startTan(5, 4);
- break;
- case 57215:
- case 57207:
- startTan(27, 4);
- break;
- case 57232:
- startTan(1, 5);
- break;
- case 57224:
- startTan(5, 5);
- break;
- case 57216:
- case 57208:
- startTan(27, 5);
- break;
- case 34170:
- fletchBow(true, 1);
- break;
- case 34169:
- fletchBow(true, 5);
- break;
- case 34168:
- fletchBow(true, 10);
- break;
- case 34167:
- fletchBow(true, 27);
- break;
- case 34174:
- //1
- fletchBow(false, 1);
- break;
- case 34173:
- //5
- fletchBow(false, 5);
- break;
- case 34172:
- //10
- fletchBow(false, 10);
- break;
- case 34171:
- fletchBow(false, 27);
- break;
- case 10252:
- case 11000:
- case 10253:
- case 11001:
- case 10254:
- case 10255:
- case 11002:
- case 11011:
- case 11013:
- case 11014:
- case 11010:
- case 11012:
- case 11006:
- case 11009:
- case 11008:
- case 11004:
- case 11003:
- case 11005:
- case 47002:
- case 54090:
- case 11007:
- if (randomed && actionButtonId == statId[random_skill]) {
- randomed = false;
- closeInterface();
- addItem(995, misc.random(1200));
- }
- case 1097:
- if(premium) {
- setSidebarInterface(0, 1689);
- } else {
- sendMessage("You need to be premium to autocast.");
- }
- break;
- case 51133:
- case 51185:
- case 51091:
- case 24018:
- case 51159:
- case 51211:
- case 51111:
- case 51069:
- case 51146:
- case 51198:
- case 51102:
- case 51058:
- case 51172:
- case 51224:
- case 51122:
- case 51080:
- for (int index = 0; index < ancientButton.length; index++) {
- if (actionButtonId == ancientButton[index]) {
- autocast_spellIndex = index;
- setClientConfig(108, 1);
- SendWeapon(
- playerEquipment[playerWeapon],
- ItemHandler.ItemList[playerEquipment[playerWeapon] - 1].itemName);
- debug("autocast_spellIndex=" + autocast_spellIndex);
- }}
- break;
- case 1093:
- if(autocast_spellIndex > -1) {
- sendMessage("You turn Off the autocast.");
- autocast_spellIndex = -1;
- setClientConfig(108, 0);
- } else {
- sendMessage("Please select a spell before try turn it off.");
- }
- break;
- case 24017:
- SendWeapon(playerEquipment[playerWeapon], ItemHandler.ItemList[playerEquipment[playerWeapon]-1].itemName);
- break;
- case 2171:
- // Retribution
- if (Retribution == false) {
- Retribution = true;
- }
- else if (Retribution == true) {
- Retribution = false;
- }
- break;
- case 14067:
- appearanceUpdateRequired = true;
- updateRequired = true;
- closeInterface();
- RemoveAllWindows();
- break;
- case 153:
- if (playerEnergy > 0) {
- isRunning2 = true;
- }
- break;
- case 152:
- isRunning2 = false;
- break;
- case 130:
- // close interface
- //println_debug("Closing Interface");
- break;
- case 168:
- // yes emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x357;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 169:
- // no emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x358;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 162:
- // think emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x359;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 164:
- // bow emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x35A;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 165:
- // angry emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x35B;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 161:
- // cry emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x35C;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 170:
- // laugh emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x35D;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 171:
- // cheer emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x35E;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 163:
- // wave emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x35F;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 167:
- // beckon emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x360;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 172:
- // clap emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x361;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 166:
- // dance emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 920;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 52050:
- // panic emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x839;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 52051:
- // jig emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x83A;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 52052:
- // spin emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x83B;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 52053:
- // headbang emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x83C;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 52054:
- // joy jump emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x83D;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 52055:
- // rasp' berry emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x83E;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 52056:
- // yawn emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x83F;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 52057:
- // salute emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x840;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 52058:
- // shrug emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x841;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 43092:
- // blow kiss emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x558;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 2155:
- // glass box emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x46B;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 25103:
- // climb rope emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x46A;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 25106:
- // lean emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x469;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 2154:
- // glass wall emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x468;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 52071:
- // goblin bow emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x84F;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 52072:
- // goblin dance emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x850;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 52073:
- // zombie emote
- if (emotes == 0) {
- emotes = 1;
- pEmote = 0x3544;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- else {
- emotes = 0;
- pEmote = playerSE;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- break;
- case 22228:
- // punch (unarmed)
- case 9125:
- // Accurate
- case 48010:
- // flick (whip)
- case 21200:
- // spike (pickaxe)
- case 1080:
- // bash (staff)
- case 6168:
- // chop (axe)
- case 6236:
- // accurate (long bow)
- case 17102:
- // accurate (darts)
- case 8234:
- // stab (dagger)
- FightType = 1;
- SkillID = 0;
- break;
- case 22229:
- // block (unarmed)
- case 9126:
- // Defensive
- case 48008:
- // deflect (whip)
- case 21201:
- // block (pickaxe)
- case 1078:
- // focus - block (staff)
- case 6169:
- // block (axe)
- case 33019:
- // fend (hally)
- case 18078:
- // block (spear)
- case 8235:
- // block (dagger)
- FightType = 4;
- SkillID = 1;
- break;
- case 9127:
- // Controlled
- case 48009:
- // lash (whip)
- case 33018:
- // jab (hally)
- case 6234:
- // longrange (long bow)
- case 18077:
- // lunge (spear)
- case 18080:
- // swipe (spear)
- case 18079:
- // pound (spear)
- case 17100:
- // longrange (darts)
- FightType = 3;
- SkillID = 3;
- break;
- case 22230:
- // kick (unarmed)
- case 9128:
- // Aggressive
- case 21203:
- // impale (pickaxe)
- case 21202:
- // smash (pickaxe)
- case 1079:
- // pound (staff)
- case 6171:
- // hack (axe)
- case 6170:
- // smash (axe)
- case 33020:
- // swipe (hally)
- case 6235:
- // rapid (long bow)
- case 17101:
- // repid (darts)
- case 8237:
- // lunge (dagger)
- case 8236:
- // slash (dagger)
- FightType = 2;
- SkillID = 2;
- break;
- case 9154:
- // Log out
- //if(currentHealth > 0)
- logout();
- break;
- case 21011:
- takeAsNote = false;
- break;
- case 21010:
- takeAsNote = true;
- break;
- case 13092:
- if (System.currentTimeMillis()-lastButton < 1000) {
- lastButton = System.currentTimeMillis();
- break;
- }
- else {
- lastButton = System.currentTimeMillis();
- }
- if (inTrade && ! tradeConfirmed) {
- lastButton = System.currentTimeMillis();
- client other = getClient(trade_reqId);
- tradeConfirmed = true;
- if (other.tradeConfirmed) {
- confirmScreen();
- other.confirmScreen();
- break;
- }
- sendFrame126("Waiting for other player...", 3431);
- if (validClient(trade_reqId)) {
- other.sendFrame126("Other player has accepted", 3431);
- }
- }
- break;
- case 13218:
- client other = getClient(trade_reqId);
- if (!validClient(trade_reqId))
- break;
- if (System.currentTimeMillis()-lastButton < 1000) {
- lastButton = System.currentTimeMillis();
- break;
- }
- else {
- lastButton = System.currentTimeMillis();
- }
- lastButton = System.currentTimeMillis();
- if (inTrade && tradeConfirmed && other.tradeConfirmed && ! tradeConfirmed2) {
- lastButton = System.currentTimeMillis();
- tradeConfirmed2 = true;
- if (other.tradeConfirmed2) {
- giveItems();
- other.giveItems();
- break;
- }
- other.sendQuest("Other player has accepted.", 3535);
- sendQuest("Waiting for other player...", 3535);
- }
- break;
- case 9157:
- if (dialog) {
- switch (dialogId) {
- case 1:
- break;
- }
- }
- if (NpcDialogue == 2) {
- NpcDialogue = 0;
- NpcDialogueSend = false;
- openUpBank();
- }
- else if (NpcDialogue == 4) {
- // Aubury
- openUpShop(1);
- }
- else if (NpcDialogue == 11) {
- if(playerHasItem(995, 2500)) {
- // Rug Merchant
- triggerTele(3299+misc.random(2), 3023+misc.random(2), 0, false);
- deleteItem(995, 2500);
- closeInterface();
- sendMessage("You have been taken to the desert mining camp");
- } else {
- closeInterface();
- sendMessage("You need 2500gp to go here");
- }
- }
- break;
- case 9158:
- if (NpcDialogue == 2) {
- NpcDialogue = 0;
- NpcDialogueSend = false;
- openUpPinSettings();
- }
- else if (NpcDialogue == 4) {
- NpcDialogue = 5;
- NpcDialogueSend = false;
- }
- else if (NpcDialogue == 11) {
- // Rug Merchant
- closeInterface();
- }
- else if (NpcDialogue == 14) {
- //Runescape Guide
- closeInterface();
- }
- break;
- case 7212:
- setSidebarInterface(0, 328);
- break;
- case 26018:
- if (!inDuel || ! validClient(duel_with))
- break;
- client o = getClient(duel_with);
- if (System.currentTimeMillis()-lastButton < 1000) {
- lastButton = System.currentTimeMillis();
- break;
- }
- else {
- lastButton = System.currentTimeMillis();
- }
- duelConfirmed = true;
- if (duelConfirmed && o.duelConfirmed) {
- canOffer = false;
- confirmDuel();
- o.confirmDuel();
- }
- else {
- sendFrame126("Waiting for other player...", 6684);
- o.sendFrame126("Other player has accepted.", 6684);
- }
- break;
- default:
- // System.out.println("Player stands in: X="+absX+" Y="+absY);
- println_debug("Case 185: Action Button: "+actionButtonId);
- break;
- }
- break;
- // the following Ids are the reason why AR-type cheats are hopeless to make...
- // basically they're just there to make reversing harder
- case 226:
- case 78:
- case 148:
- case 183:
- case 230:
- case 136:
- case 189:
- case 152:
- case 200:
- case 85:
- case 165:
- case 238:
- case 150:
- case 36:
- case 246:
- case 77:
- break;
- // any packets we might have missed
- default: interfaceID = inStream.readUnsignedWordA();
- int actionButtonId1 = misc.HexToInt(inStream.buffer, 0, packetSize);
- println_debug("Unhandled packet ["+packetType+", InterFaceId: "+interfaceID+", size="+packetSize+"]: ]"+misc.Hex(inStream.buffer, 1, packetSize)+"[");
- println_debug("Action Button: "+actionButtonId1);
- break;
- }
- }
- private int somejunk;
- public void yell(String message) {
- for (Player p: handler.players) {
- if (message.indexOf("tradereq") > 0 || message.indexOf("duelreq") > 0)
- return;
- if (p == null || ! p.isActive)
- continue;
- client temp = (client)p;
- if (temp.absX > 0 && temp.absY > 0)
- if (temp != null && ! temp.disconnected && p.isActive)
- temp.sendMessage(message);
- }
- }
- /*
- [0] Varrock
- [1] Wizard Tower
- [2] Ardougne
- [3] Magic Guild
- */
- public boolean stairs(int stairs, int teleX, int teleY) {
- if (IsStair == false) {
- IsStair = true;
- if (stairs == 1) {
- heightLevel += 1;
- } else if (stairs == 2) {
- heightLevel -= 1;
- } else if (stairs == 21) {
- heightLevel += 1;
- } else if (stairs == 22) {
- heightLevel -= 1;
- }
- teleportToX = teleX;
- teleportToY = teleY;
- if (stairs == 3 || stairs == 5 || stairs == 9) {
- teleportToY += 6400;
- } else if (stairs == 4 || stairs == 6 || stairs == 10) {
- teleportToY -= 6400;
- } else if (stairs == 7) {
- teleportToX = 3104;
- teleportToY = 9576;
- } else if (stairs == 8) {
- teleportToX = 3105;
- teleportToY = 3162;
- } else if (stairs == 11) {
- teleportToX = 2856;
- teleportToY = 9570;
- } else if (stairs == 12) {
- teleportToX = 2857;
- teleportToY = 3167;
- } else if (stairs == 13) {
- heightLevel += 3;
- teleportToX = skillX;
- teleportToY = skillY;
- } else if (stairs == 15) {
- teleportToY += (6400-(stairDistance+stairDistanceAdd));
- } else if (stairs == 14) {
- teleportToY -= (6400-(stairDistance+stairDistanceAdd));
- } else if (stairs == 16) {
- teleportToX = 2828;
- teleportToY = 9772;
- } else if (stairs == 17) {
- teleportToX = 3494;
- teleportToY = 3465;
- } else if (stairs == 18) {
- teleportToX = 3477;
- teleportToY = 9845;
- } else if (stairs == 19) {
- teleportToX = 3543;
- teleportToY = 3463;
- } else if (stairs == 20) {
- teleportToX = 3549;
- teleportToY = 9865;
- } else if (stairs == 21) {
- teleportToY += (stairDistance+stairDistanceAdd);
- } else if (stairs == 22) {
- teleportToY -= (stairDistance+stairDistanceAdd);
- } else if (stairs == 23) {
- teleportToX = 2480;
- teleportToY = 5175;
- } else if (stairs == 24) {
- teleportToX = 2862;
- teleportToY = 9572;
- } else if (stairs == 27) {
- teleportToX = 2453;
- teleportToY = 4468;
- } else if (stairs == 28) {
- teleportToX = 3201;
- teleportToY = 3169;
- }
- if (stairs == 5 || stairs == 10) {
- teleportToX += (stairDistance+stairDistanceAdd);
- }
- if (stairs == 6 || stairs == 9) {
- teleportToX -= (stairDistance-stairDistanceAdd);
- }
- }
- resetStairs();
- return true;
- }
- public boolean resetStairs() {
- stairs = 0;
- skillX = -1;
- skillY = -1;
- stairDistance = 1;
- stairDistanceAdd = 0;
- IsUsingSkill = false;
- return true;
- }
- public boolean crackCracker() {
- sendMessage("Somone used a crackers on you...");
- CrackerMsg = false;
- if (CrackerForMe == true) {
- if (freeSlots() > 0) {
- addItem(Item.randomPHat(), 1);
- sendMessage("And you get the crackers item.");
- } else {
- sendMessage("but you don't have enough space in your inventory.");
- }
- CrackerForMe = false;
- } else {
- sendMessage("but you didn't get the crackers item.");
- }
- return true;
- }
- public boolean IsInCW(int coordX, int coordY) {
- if (coordY >= 3068 && coordY <= 3143 && coordX <= 2436 && coordX >= 2365) {
- return true;
- } else {
- return false;
- }
- }
- public boolean IsInTz(int coordX, int coordY) {
- if (coordY >= 5129 && coordY <= 5167 && coordX <= 2418 && coordX >= 2375) {
- return true;
- } else {
- return false;
- }
- }
- public boolean isInWilderness(int coordX, int coordY, int Type) {
- if (Type == 1) {
- if (coordY >= 3520 && coordY <= 3967 && coordX <= 3392 && coordX >= 2942) {
- return true;
- }
- } else if (Type == 2) {
- if (coordY >= 3512 && coordY <= 3967 && coordX <= 3392 && coordX >= 2942) {
- return true;
- }
- }
- return false;
- }
- public boolean checkWildRange(int pcombat)
- {
- int wildLvl = (((absY - 3520) / 8) + 1);
- return (pcombat >= combatLevel && combatLevel + wildLvl >= pcombat || pcombat < combatLevel && combatLevel - wildLvl <= pcombat || pcombat == combatLevel);
- }
- //pk: 2726 9193
- public boolean Attack() {
- if (!(AttackingOn > 0) || ! (AttackingOn < server.playerHandler.players.length)) {
- ResetAttack();
- return false;
- }
- if (playerId < 1) {
- sendMessage("Error: Your player id is invalid. Please try again or logout and back in");
- }
- if (AttackingOn > 0 && !server.pking) {
- sendMessage("Pking has been disabled ask Bman11293 to type ::enablepk");
- ResetAttack();
- return false;
- }
- boolean UseBow = false;
- if (playerEquipment[playerWeapon] == 4212) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 2883) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 6082) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 4214) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 767) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 837) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 841) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 843) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 849) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 853) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 857) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 861) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 839) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 845) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 847) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 851) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 855) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 859) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 4734) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 4214) {
- UseBow = true;
- }
- if (playerEquipment[playerWeapon] == 859) {
- UseBow = true;
- }
- if (UseBow) {
- if (!duelRule[0]) {
- teleportToX = absX;
- teleportToY = absY;
- CheckArrows();
- CalculateRange();
- hitDiff = misc.random(playerMaxHit);
- } else {
- sendMessage("You can't range in this duel!");
- return false;
- }
- }
- if (!UseBow && duelRule[1]) {
- sendMessage("You can't melee in this duel!");
- ResetAttack();
- return false;
- }
- int EnemyX = PlayerHandler.players[AttackingOn].absX;
- int EnemyY = PlayerHandler.players[AttackingOn].absY;
- int EnemyHP = PlayerHandler.players[AttackingOn].playerLevel[playerHitpoints];
- int EnemyHPExp = PlayerHandler.players[AttackingOn].playerXP[playerHitpoints];
- client AttackingOn2 = (client)server.playerHandler.players[AttackingOn];
- TurnPlayerTo(EnemyX, EnemyY);
- updateRequired = true;
- appearanceUpdateRequired = true;
- if (PlayerHandler.players[AttackingOn].playerEquipment[playerRing] == 2570) {
- //RingOfLife = true;
- }
- int hitDiff = 0;
- int aBonus = 0;
- int rand_att = misc.random(playerLevel[0]);
- int rand_def = (int)(0.65*misc.random(AttackingOn2.playerLevel[1]));
- if (FightType == 1)
- aBonus += (int)(playerBonus[1]/20);
- int random_u = misc.random(playerBonus[1]+aBonus)*2;
- int dBonus = 0;
- if (AttackingOn2.FightType == 4)
- dBonus += (int)(AttackingOn2.playerBonus[6]/20);
- int random_def = misc.random(AttackingOn2.playerBonus[6]+dBonus);
- if (random_u >= random_def && rand_att > rand_def) {
- hitDiff = misc.random(playerMaxHit);
- } else {
- hitDiff = 0;
- }
- if (FightType == 2)
- hitDiff = (int)(hitDiff*1.20);
- long thisAttack = System.currentTimeMillis();
- if (GoodDistance(EnemyX, EnemyY, absX, absY, 1) == true) {
- inCombat = true;
- lastCombat = System.currentTimeMillis();
- if (isInWilderness(EnemyX, EnemyY, 1) || (duelFight && AttackingOn == duel_with) || (matchId == handler.players[AttackingOn].matchId && matchId >= 0)) {
- if (duelFight && AttackingOn == duel_with) {
- enemyX = PlayerHandler.players[AttackingOn].absX;
- enemyY = PlayerHandler.players[AttackingOn].absY;
- }
- if (PlayerHandler.players[AttackingOn].deathStage > 0) {
- ResetAttack();
- sendMessage("That player is dead!");
- } else {
- if (!duelFight && inRange(EnemyX, EnemyY)) {
- if (thisAttack-lastAttack >= 5000)
- ((client)PlayerHandler.players[AttackingOn]).sendMessage("You are under attack!");
- PlayerHandler.players[AttackingOn].resetWalkingQueue();
- PlayerHandler.players[AttackingOn].hits++;
- PlayerHandler.players[AttackingOn].fighting = true;
- PlayerHandler.players[AttackingOn].fightId = localId;
- PlayerHandler.players[AttackingOn].IsAttacking = true;
- ((client)PlayerHandler.players[AttackingOn]).Attack();
- fightId = AttackingOn;
- fighting = true;
- resetWalkingQueue();
- }
- if (playerEquipment[playerWeapon] == 4151) {
- animation(341, EnemyY, EnemyX);
- }
- actionAmount++;
- setAnimation(GetWepAnim(playerEquipment[playerWeapon]));
- PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
- PlayerHandler.players[AttackingOn].updateRequired = true;
- PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
- if ((EnemyHP-hitDiff) < 0) {
- hitDiff = EnemyHP;
- }
- PlayerHandler.players[AttackingOn].dealDamage(hitDiff);
- PlayerHandler.players[AttackingOn].hitDiff = hitDiff;
- PlayerHandler.players[AttackingOn].killers[localId] += hitDiff;
- attackTimer = 7;
- lastAttack = System.currentTimeMillis();
- //sendMessage("You hit " + hitDiff + ", time=" + lastAttack);
- }
- return true;
- } else {
- sendMessage("This player is not in a Pking Zone!");
- ResetAttack();
- }
- }
- if (GoodDistance(EnemyX, EnemyY, absX, absY, 1) == false) {
- if (thisAttack-lastAttack >= 2000) {
- if (isInWilderness(EnemyX, EnemyY, 1) == true || IsInCW(EnemyX, EnemyY) == true || IsInTz(EnemyX, EnemyY) == true) {
- if (PlayerHandler.players[AttackingOn].deathStage > 0) {
- ResetAttack();
- } else if (playerEquipment[playerWeapon] == 4675) {
- TurnPlayerTo(EnemyX, EnemyY);
- PlayerHandler.players[AttackingOn].hitDiff = 0+misc.random(22);
- animation(369, EnemyY, EnemyX);
- AnimationReset = true;
- updateRequired = true;
- appearanceUpdateRequired = true;
- actionAmount++;
- teleportToX = absX;
- teleportToY = absY;
- actionTimer = 15;
- setAnimation(1979);
- AnimationReset = true;
- PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
- PlayerHandler.players[AttackingOn].updateRequired = true;
- PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
- if ((EnemyHP-hitDiff) <= 0) {
- hitDiff = EnemyHP;
- //animation(437, absY, absX);
- attackPlayersPrayer(15, 2);
- }
- } else if (UseBow) {
- actionAmount++;
- setAnimation(GetWepAnim(playerEquipment[playerWeapon]));
- PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
- PlayerHandler.players[AttackingOn].updateRequired = true;
- PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
- if ((EnemyHP-hitDiff) < 0) {
- hitDiff = EnemyHP;
- }
- PlayerHandler.players[AttackingOn].dealDamage(hitDiff);
- PlayerHandler.players[AttackingOn].hitDiff = hitDiff;
- attackTimer = 7;
- lastAttack = System.currentTimeMillis();
- }
- return true;
- } else {
- sendMessage("This player is not in a Pking Area/Match.");
- ResetAttack();
- }
- }
- }
- return false;
- }
- public boolean Attackrange() {
- client q = (client)server.playerHandler.players[AttackingOn];
- int EnemyX = PlayerHandler.players[AttackingOn].absX;
- int EnemyY = PlayerHandler.players[AttackingOn].absY;
- int EnemyHP = PlayerHandler.players[AttackingOn].playerLevel[playerHitpoints];
- int EnemyHPExp = PlayerHandler.players[AttackingOn].playerXP[playerHitpoints];
- boolean RingOfLife = false;
- if (PlayerHandler.players[AttackingOn].playerEquipment[playerRing] == 2570) {
- RingOfLife = true;
- }
- int hitDiff = 0;
- hitDiff = misc.random(playerMaxHit);
- if (GoodDistance(EnemyX, EnemyY, absX, absY, 20) == true) {
- teleportToX = absX;
- teleportToY = absY;
- if (actionTimer == 0) {
- if (isInWilderness(EnemyX, EnemyY, 1) == true) {
- if (false) {
- } else {
- if (PlayerHandler.players[AttackingOn].deathStage > 0) {
- ResetAttack();
- } else {
- actionAmount++;
- setAnimation(GetWepAnim(playerEquipment[playerWeapon]));
- PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
- PlayerHandler.players[AttackingOn].updateRequired = true;
- PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
- hitDiff = EnemyHP;
- PlayerHandler.players[AttackingOn].hitDiff = hitDiff;
- actionTimer = 7;
- }
- }
- return true;
- } else {
- sendMessage("This player is not in the Wilderness.");
- ResetAttack();
- }
- }
- }
- return false;
- }
- public boolean ResetAttack() {
- IsAttacking = false;
- AttackingOn = 0;
- resetAnimation();
- IsUsingSkill = false;
- return true;
- }
- public boolean CheckForSkillUse4(int Item) {
- boolean GoOn = true;
- switch (Item) {
- case 99999:
- break;
- default: sendMessage("Nothing interesting happens.");
- println_debug("Firemaking Usage - ItemID: "+Item);
- break;
- }
- if (prayer[0] > 0) {
- prayer();
- }
- return true;
- }
- public boolean IsItemInBag(int ItemID) {
- for (int i = 0; i < playerItems.length; i++) {
- if ((playerItems[i]-1) == ItemID) {
- return true;
- }
- }
- return false;
- }
- public boolean AreXItemsInBag(int ItemID, int Amount) {
- int ItemCount = 0;
- for (int i = 0; i < playerItems.length; i++) {
- if ((playerItems[i]-1) == ItemID) {
- ItemCount++;
- }
- if (ItemCount == Amount) {
- return true;
- }
- }
- return false;
- }
- public int GetItemSlot(int ItemID) {
- for (int i = 0; i < playerItems.length; i++) {
- if ((playerItems[i]-1) == ItemID) {
- return i;
- }
- }
- return -1;
- }
- public int GetXItemsInBag(int ItemID) {
- int ItemCount = 0;
- for (int i = 0; i < playerItems.length; i++) {
- if ((playerItems[i]-1) == ItemID) {
- ItemCount++;
- }
- }
- return ItemCount;
- }
- public void castleWarsScore() {
- String zammyColor;
- String saraColor;
- if (zammyScore > saraScore) {
- zammyColor = "@gre@";
- saraColor = "@red@";
- } else if (zammyScore < saraScore) {
- zammyColor = "@red@";
- saraColor = "@gre@";
- } else {
- zammyColor = "@yel@";
- saraColor = "@yel@";
- }
- sendQuest("@bla@.................Mage Wars Scores.............", 8144);
- clearQuestInterface();
- sendQuest("@or3@Zamorak: "+zammyColor+zammyScore, 8147);
- sendQuest("@or3@Saradomin: "+saraColor+saraScore, 8148);
- sendQuestSomething(8143);
- showInterface(8134);
- flushOutStream();
- }
- public int Tradecompete = 0;
- public int Publicchat = 0;
- public void pmstatus(int status) {
- // status: loading = 0 connecting = 1 fine = 2
- outStream.createFrame(221);
- outStream.writeByte(status);
- }
- public boolean playerHasItem(int itemID) {
- itemID++;
- for (int i = 0; i < playerItems.length; i++) {
- if (playerItems[i] == itemID) {
- return true;
- }
- }
- return false;
- }
- public boolean playerHasItem(int itemID, int amt) {
- itemID++;
- int found = 0;
- for (int i = 0; i < playerItems.length; i++) {
- if (playerItems[i] == itemID) {
- if (playerItemsN[i] >= amt)
- return true;
- else
- found++;
- }
- }
- if (found >= amt)
- return true;
- return false;
- }
- public boolean isinpm(long l) {
- for (int i = 0; i < friends.length; i++) {
- if (friends[i] != 0) {
- if (l == friends[i]) {
- return true;
- }
- }
- }
- return false;
- }
- public void pmupdate(int pmid, int world) {
- if (handler.players[pmid] == null || handler.players[pmid].playerName == null) {
- return;
- }
- long l = misc.playerNameToInt64(handler.players[pmid].playerName);
- if (handler.players[pmid].Privatechat == 0) {
- for (int i = 0; i < friends.length; i++) {
- if (friends[i] != 0) {
- if (l == friends[i]) {
- loadpm(l, world);
- return;
- }
- }
- }
- } else if (handler.players[pmid].Privatechat == 1) {
- for (int i1 = 0; i1 < friends.length; i1++) {
- if (friends[i] != 0) {
- if (l == friends[i1]) {
- if (handler.players[pmid].isinpm(misc.playerNameToInt64(playerName)) && playerRights > 2) {
- loadpm(l, world);
- return;
- } else {
- loadpm(l, 0);
- return;
- }
- }
- }
- }
- } else if (handler.players[pmid].Privatechat == 2) {
- for (int i2 = 0; i2 < friends.length; i2++) {
- if (friends[i] != 0) {
- if (l == friends[i2] && playerRights < 2) {
- loadpm(l, 0);
- return;
- }
- }
- }
- }
- }
- public void sendpm(long name, int rights, byte[]chatmessage, int messagesize) {
- outStream.createFrameVarSize(196);
- outStream.writeQWord(name);
- outStream.writeDWord(handler.lastchatid++); // must be different for each message
- outStream.writeByte(rights);
- outStream.writeBytes(chatmessage, messagesize, 0);
- outStream.endFrameVarSize();
- }
- public void loadpm(long name, int world) {
- if (world != 0) {
- world += 9;
- } else if (world == 0) {
- world += 1;
- }
- outStream.createFrame(50);
- outStream.writeQWord(name);
- outStream.writeByte(world);
- }
- public boolean AttackNPC() {
- int EnemyX = server.npcHandler.npcs[attacknpc].absX;
- int EnemyY = server.npcHandler.npcs[attacknpc].absY;
- int EnemyHP = server.npcHandler.npcs[attacknpc].HP;
- int hitDiff = 0;
- if (EnemyHP < 1) {
- sendMessage("You can't attack that monster!");
- return false;
- }
- int type = server.npcHandler.npcs[attacknpc].npcType;
- int[]staffs = {
- 2415,2416,2417,4170,4675
- };
- int[]arrowIds = {
- 882, 884, 886, 888, 890, 892
- };
- int[]arrowGfx = {
- 10, 9, 11, 12, 13, 15
- };
- int[]prem = {
- 1643, 158, 49, 1613
- };
- for (int i = 0; i < prem.length; i++) {
- if (prem[i] == type && ! premium) {
- resetPos();
- return false;
- }
- }
- if (type == 1125) {
- if (combatLevel < 70) {
- sendMessage("You must be level 70 or higher to attack Dad");
- resetPos();
- ResetAttackNPC();
- return false;
- }
- }
- if (type == 84) {
- if (combatLevel < 100) {
- sendMessage("You must be level 100 or higher to attack Barrows monsters.");
- resetPos();
- ResetAttackNPC();
- return false;
- }
- }
- if (type == 2060) {
- if (combatLevel < 100) {
- sendMessage("You must be level 100 or higher to attack Barrows monsters.");
- resetPos();
- ResetAttackNPC();
- return false;
- }
- }
- if (type == 3200) {
- if (combatLevel < 100) {
- sendMessage("You must be level 100 or higher to attack Barrows monsters.");
- resetPos();
- ResetAttackNPC();
- return false;
- }
- }
- if (type == 258) {
- if (combatLevel < 100) {
- sendMessage("You must be level 100 or higher to attack General Khazard.");
- resetPos();
- ResetAttackNPC();
- return false;
- }
- }
- if (type == 795) {
- if (combatLevel < 50) {
- sendMessage("You must be level 50 or higher to attack the Ice Queen.");
- resetPos();
- ResetAttackNPC();
- return false;
- }
- }
- if (type == 1220) {
- if (combatLevel < 50 ) {
- sendMessage("You must be level 50 or higher to attack the Vampire.");
- resetPos();
- ResetAttackNPC();
- return false;
- }
- }
- if (type == 110 || type == 936) {
- if (!playerHasItem(1543)) {
- resetPos();
- ResetAttackNPC();
- return false;
- }
- }
- if (type == 221 || type == 1961) {
- if (!playerHasItem(1544)) {
- resetPos();
- ResetAttackNPC();
- return false;
- }
- }
- if (type == 910) {
- if (!playerHasItem(1545)) {
- resetPos();
- ResetAttackNPC();
- return false;
- }
- }
- if (type == 1095) {
- if (!playerHasItem(1546)) {
- resetPos();
- ResetAttackNPC();
- return false;
- }
- }
- if ((type == 941 || type == 55) && ! premium) {
- resetPos();
- return false;
- }
- for (int element : staffs) {
- if ((playerEquipment[playerWeapon] == element)
- && (autocast_spellIndex >= 0)) {
- if (System.currentTimeMillis() - lastAttack < coolDown[autocast_spellIndex]) {
- return false;
- }
- inCombat = true;
- lastCombat = System.currentTimeMillis();
- lastAttack = System.currentTimeMillis();
- if (playerLevel[6] >= requiredLevel[autocast_spellIndex]) {
- if(!playerHasItem(rune1[autocast_spellIndex], rune1a[autocast_spellIndex]) || !playerHasItem(rune2[autocast_spellIndex], rune2a[autocast_spellIndex]) || !playerHasItem(rune3[autocast_spellIndex], rune3a[autocast_spellIndex])) {
- if(rune1[autocast_spellIndex] > 0 && rune2[autocast_spellIndex] < 1 && rune3[autocast_spellIndex] < 1) {
- sendMessage("You need "+rune1a[autocast_spellIndex]+" "+GetItemName(rune1[autocast_spellIndex])+" to cast this spell");
- }
- if(rune1[autocast_spellIndex] > 0 && rune2[autocast_spellIndex] > 0 && rune3[autocast_spellIndex] < 1) {
- sendMessage("You need "+rune1a[autocast_spellIndex]+" "+GetItemName(rune1[autocast_spellIndex])+" and "+rune2a[autocast_spellIndex]+" "+GetItemName(rune2[autocast_spellIndex])+" to cast this spell");
- }
- if(rune1[autocast_spellIndex] > 0 && rune2[autocast_spellIndex] > 0 && rune3[autocast_spellIndex] > 0) {
- sendMessage("You need "+rune1a[autocast_spellIndex]+" "+GetItemName(rune1[autocast_spellIndex])+" and "+rune2a[autocast_spellIndex]+" "+GetItemName(rune2[autocast_spellIndex])+" and "+rune3a[autocast_spellIndex]+" "+GetItemName(rune3[autocast_spellIndex])+" to cast this spell");
- }
- break;
- }
- int roll = misc.random(100);
- int hit = misc.random(baseDamage[autocast_spellIndex]
- + playerBonus[11]);
- hitDiff = hit;
- setAnimation(1979);
- updateRequired = true;
- // AnimationReset = true;
- // teleportToX = absX;
- // teleportToY = absY;
- resetWalkingQueue();
- if (ancientType[autocast_spellIndex] == 3) {
- // coolDown[coolDownGroup[autocast_spellIndex]] = 35;
- server.npcHandler.npcs[attacknpc].effects[0] = 15;
- stillgfx(369, EnemyY, EnemyX);
- } else if (ancientType[autocast_spellIndex] == 2) {
- stillgfx(377, EnemyY, EnemyX);
- // coolDown[coolDownGroup[autocast_spellIndex]] = 12;
- currentHealth += (int) (hit / 4);
- if (currentHealth > playerLevel[playerHitpoints])
- currentHealth = playerLevel[playerHitpoints];
- } else
- animation(78, EnemyY, EnemyX);
- } else {
- sendMessage("You need a magic level of "
- + requiredLevel[autocast_spellIndex]+" Or you don't have enough runes.");
- }
- // coolDown[coolDownGroup[autocast_spellIndex]] = 12;
- TurnPlayerTo(EnemyX, EnemyY);
- addSkillXP(50*hitDiff, playerMagic);
- addSkillXP(hitDiff * CombatExpRate, playerHitpoints);
- teleportToX = absX;
- teleportToY = absY;
- server.npcHandler.npcs[attacknpc].StartKilling = localId;
- server.npcHandler.npcs[attacknpc].RandomWalk = false;
- server.npcHandler.npcs[attacknpc].IsUnderAttack = true;
- server.npcHandler.npcs[attacknpc].hitDiff = hitDiff;
- server.npcHandler.npcs[attacknpc].Killing[playerId] += hitDiff;
- server.npcHandler.npcs[attacknpc].updateRequired = true;
- server.npcHandler.npcs[attacknpc].hitUpdateRequired = true;
- server.npcHandler.npcs[attacknpc].hit = true;
- // server.npcHandler.npcs[attacknpc].TurnNPCTo(absX,absY);
- // server.npcHandler.npcs[attacknpc].FocusUpdateRequired = true;
- if(playerHasItem(rune1[autocast_spellIndex], rune1a[autocast_spellIndex]) && playerHasItem(rune2[autocast_spellIndex], rune2a[autocast_spellIndex]) && playerHasItem(rune3[autocast_spellIndex], rune3a[autocast_spellIndex])) {
- deleteItem(rune1[autocast_spellIndex], rune1a[autocast_spellIndex]);
- deleteItem(rune2[autocast_spellIndex], rune2a[autocast_spellIndex]);
- deleteItem(rune3[autocast_spellIndex], rune3a[autocast_spellIndex]);
- return false;}}}
- long thisTime = System.currentTimeMillis();
- hitDiff = misc.random(playerMaxHit);
- if (FightType == 2)
- hitDiff = (int)(hitDiff*1.20);
- boolean UseBow = false;
- for (int i = 0; i < bows.length; i++) {
- if (playerEquipment[playerWeapon] == bows[i]) {
- UseBow = true;
- break;
- }
- }
- int arrowgfx = 10;
- for (int i1 = 0; i1 < arrowIds.length; i1++) {
- if (playerEquipment[playerArrows] == arrowIds[i1]) {
- arrowgfx = arrowGfx[i1];
- }
- }
- if (UseBow && thisTime-lastAttack >= getbattleTimer()) {
- teleportToX = absX;
- teleportToY = absY;
- CalculateRange();
- hitDiff = misc.random(maxRangeHit());
- if (DeleteArrow()) {
- int offsetX = (absY-EnemyY)*-1;
- int offsetY = (absX-EnemyX)*-1;
- for (int a = 0; a < handler.maxPlayers; a++) {
- client temp = (client)handler.players[a];
- if (temp != null && temp.absX > 0 && ! temp.disconnected && Math.abs(absX-temp.absX) < 60 && Math.abs(absY-temp.absY) < 60) {
- temp.createProjectile(absY, absX, offsetY, offsetX, 50, 90, arrowgfx, 43, 35, attacknpc+1);
- }
- }
- server.npcHandler.npcs[attacknpc].hitDiff = hitDiff;
- server.npcHandler.npcs[attacknpc].Killing[playerId] += hitDiff;
- server.npcHandler.npcs[attacknpc].updateRequired = true;
- server.npcHandler.npcs[attacknpc].hitUpdateRequired = true;
- server.npcHandler.npcs[attacknpc].hit = true;
- if (hitDiff == 0 && server.npcHandler.npcs[attacknpc].npcType == 941) {
- server.npcHandler.npcs[attacknpc].animNumber = 89;
- server.npcHandler.npcs[attacknpc].animUpdateRequired = true;
- server.npcHandler.npcs[attacknpc].updateRequired = true;
- }
- updateRequired = true;
- appearanceUpdateRequired = true;
- } else {
- ResetAttackNPC();
- sendMessage("You're out of arrows!");
- return false;
- }
- }
- if (thisTime-lastAttack >= getbattleTimer()) {
- inCombat = true;
- lastCombat = System.currentTimeMillis();
- } else if (thisTime-lastAttack >= 5000) {
- inCombat = true;
- lastCombat = System.currentTimeMillis();
- } else {
- return false;
- }
- if (UseBow || GoodDistance(EnemyX, EnemyY, absX, absY, 1) == true) {
- if (server.npcHandler.npcs[attacknpc].IsDead == true) {
- ResetAttackNPC();
- } else {
- if (playerEquipment[playerWeapon] == 4151) {
- animation(341, EnemyY, EnemyX);
- }
- TurnPlayerTo(EnemyX, EnemyY);
- updateRequired = true;
- appearanceUpdateRequired = true;
- actionAmount++;
- setAnimation(GetWepAnim(playerEquipment[playerWeapon]));
- if ((EnemyHP-hitDiff) <= 0) {
- hitDiff = EnemyHP;
- }
- server.npcHandler.npcs[attacknpc].hitDiff = hitDiff;
- server.npcHandler.npcs[attacknpc].Killing[playerId] += hitDiff;
- server.npcHandler.npcs[attacknpc].updateRequired = true;
- server.npcHandler.npcs[attacknpc].hitUpdateRequired = true;
- server.npcHandler.npcs[attacknpc].hit = true;
- if (hitDiff == 0 && server.npcHandler.npcs[attacknpc].npcType == 941) {
- server.npcHandler.npcs[attacknpc].animNumber = 89;
- server.npcHandler.npcs[attacknpc].animUpdateRequired = true;
- server.npcHandler.npcs[attacknpc].updateRequired = true;
- }
- attackedNpc = true;
- attackedNpcId = attacknpc;
- double TotalExp = 0;
- if (!UseBow)
- animationReset = System.currentTimeMillis()+1200;
- if (server.npcHandler.npcs[attacknpc].npcType != 1472) {
- if (UseBow) {
- TotalExp = (double)(50*hitDiff); //range
- TotalExp = (double)(TotalExp*CombatExpRate);
- addSkillXP((int)(TotalExp), 4);
- } else if (FightType != 3) {
- TotalExp = (double)(60*hitDiff); //Combat
- TotalExp = (double)(TotalExp*CombatExpRate);
- addSkillXP((int)(TotalExp), SkillID);
- } else {
- TotalExp = (double)(50*hitDiff); //Whip
- TotalExp = (double)(TotalExp*CombatExpRate);
- addSkillXP((int)(TotalExp), playerAttack);
- addSkillXP((int)(TotalExp), playerDefence);
- addSkillXP((int)(TotalExp), playerStrength);
- }
- TotalExp = (double)(25*hitDiff); //Hitpoints
- TotalExp = (double)(TotalExp*CombatExpRate);
- addSkillXP((int)(TotalExp), playerHitpoints);
- attackTimer = 7;
- if (debug)
- sendMessage("hitDiff="+hitDiff+", elapsed="+(thisTime-lastAttack));
- lastAttack = System.currentTimeMillis();
- }
- return true;
- }
- }
- return false;
- }
- public boolean DeleteArrow() {
- if (playerEquipmentN[playerArrows] == 0) {
- deleteequiment(playerEquipment[playerArrows], playerArrows);
- return false;
- }
- if (playerEquipment[playerWeapon] != 4214 && playerEquipmentN[playerArrows] > 0) {
- outStream.createFrameVarSizeWord(34);
- outStream.writeWord(1688);
- outStream.writeByte(playerArrows);
- outStream.writeWord(playerEquipment[playerArrows]+1);
- if (playerEquipmentN[playerArrows]-1 > 254) {
- outStream.writeByte(255);
- outStream.writeDWord(playerEquipmentN[playerArrows]-1);
- } else {
- outStream.writeByte(playerEquipmentN[playerArrows]-1); //amount
- }
- outStream.endFrameVarSizeWord();
- playerEquipmentN[playerArrows] -= 1;
- }
- updateRequired = true;
- appearanceUpdateRequired = true;
- return true;
- }
- public boolean ResetAttackNPC() {
- if (attacknpc > -1 && attacknpc < server.npcHandler.maxNPCSpawns) {
- server.npcHandler.npcs[attacknpc].IsUnderAttack = false;
- server.npcHandler.npcs[attacknpc].IsUnderAttack = false;
- server.npcHandler.npcs[attacknpc].StartKilling = 0;
- }
- //server.npcHandler.npcs[attacknpc].TurnNPCTo(server.npcHandler.npcs[attacknpc].absX, server.npcHandler.npcs[attacknpc].absY);
- //server.npcHandler.npcs[attacknpc].FocusUpdateRequired = true;
- IsAttackingNPC = false;
- attacknpc = -1;
- resetAnimation();
- return true;
- }
- public void ManipulateDirection() {
- // playerMD = misc.direction(absX, absY, skillX, skillY);
- if (playerMD != -1) {
- // playerMD >>= 1;
- updateRequired = true;
- dirUpdateRequired = true;
- }
- }
- public void ReplaceObject(int objectX, int objectY, int NewObjectID, int Face, int ObjectType) {
- outStream.createFrame(85);
- outStream.writeByteC(objectY-(mapRegionY*8));
- outStream.writeByteC(objectX-(mapRegionX*8));
- outStream.createFrame(101);
- outStream.writeByteC((ObjectType << 2)+(Face & 3));
- outStream.writeByte(0);
- if (NewObjectID != -1) {
- outStream.createFrame(151);
- outStream.writeByteS(0);
- outStream.writeWordBigEndian(NewObjectID);
- outStream.writeByteS((ObjectType << 2)+(Face & 3));
- // FACE: 0= WEST | -1 = NORTH | -2 = EAST | -3 = SOUTH
- // ObjectType: 0-3 wall objects, 4-8 wall decoration, 9: diag. walls, 10-11 world objects, 12-21: roofs, 22: floor decoration
- }
- }
- public int GetNPCID(int coordX, int coordY) {
- for (int i = 0; i < server.npcHandler.maxNPCSpawns; i++) {
- if (server.npcHandler.npcs[i] != null) {
- if (server.npcHandler.npcs[i].absX == coordX && server.npcHandler.npcs[i].absY == coordY) {
- return server.npcHandler.npcs[i].npcType;
- }
- }
- }
- return 1;
- }
- public String GetNpcName(int NpcID) {
- for (int i = 0; i < server.npcHandler.maxListedNPCs; i++) {
- if (server.npcHandler.NpcList[i] != null) {
- if (server.npcHandler.NpcList[i].npcId == NpcID) {
- return server.npcHandler.NpcList[i].npcName;
- }
- }
- }
- return "!! NOT EXISTING NPC !!! - ID:"+NpcID;
- }
- public String GetItemName(int ItemID) {
- for (int i = 0; i < server.itemHandler.MaxListedItems; i++) {
- if (server.itemHandler.ItemList[i] != null) {
- if (server.itemHandler.ItemList[i].itemId == ItemID) {
- return server.itemHandler.ItemList[i].itemName;
- }
- }
- }
- return "!! NOT EXISTING ITEM !!! - ID:"+ItemID;
- }
- public double GetItemShopValue(int ItemID, int Type, int fromSlot) {
- double ShopValue = 1;
- double Overstock = 0;
- double TotPrice = 0;
- for (int i = 0; i < server.itemHandler.MaxListedItems; i++) {
- if (server.itemHandler.ItemList[i] != null) {
- if (server.itemHandler.ItemList[i].itemId == ItemID) {
- ShopValue = server.itemHandler.ItemList[i].ShopValue;
- }
- }
- }
- /*Overstock = server.shopHandler.ShopItemsN[MyShopID][fromSlot]
- - server.shopHandler.ShopItemsSN[MyShopID][fromSlot];*/
- TotPrice = (ShopValue*1.26875); // Calculates price for 1 item, in db is stored for 0 items (strange but true)
- /*if (Overstock > 0) { // more then default -> cheaper
- TotPrice -= ((ShopValue / 100) * (1.26875 * Overstock));
- } else if (Overstock < 0) { // less then default -> exspensive
- TotPrice += ((ShopValue / 100) * (1.26875 * Overstock));
- }*/
- if (server.shopHandler.ShopBModifier[MyShopID] == 1) {
- TotPrice *= 1.25; // 25% more expensive (general stores only)
- if (Type == 1) {
- TotPrice *= 0.4; // general store buys item at 40% of its own selling value
- }
- } else if (Type == 1) {
- TotPrice *= 0.6; // other stores buy item at 60% of their own selling value
- }
- return TotPrice;
- }
- public int GetUnnotedItem(int ItemID) {
- int NewID = 0;
- String NotedName = "";
- for (int i = 0; i < server.itemHandler.MaxListedItems; i++) {
- if (server.itemHandler.ItemList[i] != null) {
- if (server.itemHandler.ItemList[i].itemId == ItemID) {
- NotedName = server.itemHandler.ItemList[i].itemName;
- }
- }
- }
- for (int i = 0; i < server.itemHandler.MaxListedItems; i++) {
- if (server.itemHandler.ItemList[i] != null) {
- if (server.itemHandler.ItemList[i].itemName == NotedName) {
- if (server.itemHandler.ItemList[i].itemDescription.startsWith("Swap this note at any bank for a") == false) {
- NewID = server.itemHandler.ItemList[i].itemId;
- break;
- }
- }
- }
- }
- return NewID;
- }
- public void WriteEnergy() {
- //if (playerRights < 3) {
- playerEnergy = 100;
- //}
- sendFrame126(playerEnergy+"%", 149);
- }
- public void ResetBonus() {
- for (int i = 0; i < playerBonus.length; i++) {
- playerBonus[i] = 0;
- }
- }
- public void GetBonus() {
- for (int i = 0; i < playerEquipment.length; i++) {
- if (playerEquipment[i] > -1) {
- for (int j = 0; j < 9999; j++) {
- if (server.itemHandler.ItemList[j] != null) {
- if (server.itemHandler.ItemList[j].itemId == playerEquipment[i]) {
- for (int k = 0; k < playerBonus.length; k++) {
- playerBonus[k] += server.itemHandler.ItemList[j].Bonuses[k];
- }
- break;
- }
- }
- }
- }
- }
- for (int i = 0; i < 5; i++) {
- playerBonus[i] += (int)(playerLevel[0]/10);
- }
- /*
- public String BonusName[] = {
- "Stab", "Slash", "Crush", "Magic", "Range",
- "Stab", "Slash", "Crush", "Magic", "Range", "Strength", "Prayer"
- };
- */
- playerBonus[5] += (int)(playerLevel[1]/5);
- playerBonus[6] += (int)(playerLevel[1]/5);
- playerBonus[7] += (int)(playerLevel[1]/5);
- playerBonus[8] += (int)(playerLevel[1]/5);
- playerBonus[9] += (int)(playerLevel[1]/5);
- playerBonus[10] += (int)(playerLevel[2]/5);
- //maxHealth = playerLevel[3];
- }
- public void GetBonus_old() {
- for (int i = 0; i < playerEquipment.length; i++) {
- if (playerEquipment[i] > -1) {
- for (int j = 0; j < server.itemHandler.MaxListedItems; j++) {
- if (server.itemHandler.ItemList[i] != null) {
- if (server.itemHandler.ItemList[j] == null)
- println("It's null");
- if (server.itemHandler.ItemList[j].itemId == playerEquipment[i]) {
- for (int k = 0; k < playerBonus.length; k++) {
- playerBonus[k] += server.itemHandler.ItemList[j].Bonuses[k];
- }
- break;
- }
- } else {
- println("Error: ItemList = null");
- }
- }
- }
- }
- }
- public void WriteBonus() {
- int offset = 0;
- String send = "";
- for (int i = 0; i < playerBonus.length; i++) {
- if (playerBonus[i] >= 0) {
- send = BonusName[i]+": +"+playerBonus[i];
- } else {
- send = BonusName[i]+": -"+java.lang.Math.abs(playerBonus[i]);
- }
- if (i == 10) {
- offset = 1;
- }
- if (i == 11) {
- send = "Spell Dmg: +"+playerBonus[i]+"";
- }
- sendFrame126(send, (1675+i+offset));
- }
- CalculateMaxHit();
- /* for (int i = 4000; i <= 7000; i++) {
- sendFrame126("T"+i, i);
- println_debug("Sended: Test"+i);
- }*/ // USED FOR TESTING INTERFACE NUMBERS !
- }
- public void CalculateMaxHit() {
- double MaxHit = 0;
- int StrBonus = playerBonus[10]; // Strength Bonus
- int Strength = playerLevel[playerStrength]; // Strength
- int RngBonus = playerBonus[4]; // Ranged Bonus
- int Range = playerLevel[playerRanged]; // Ranged
- if (FightType == 1 || FightType == 4) {
- // Accurate & Defensive
- MaxHit += (double)(1.05+(double)((double)(StrBonus*Strength)*0.00175));
- } else if (FightType == 2) {
- // Aggresive
- MaxHit += (double)(1.35+(double)((double)(StrBonus*Strength)*0.00175));
- } else if (FightType == 3) {
- // Controlled
- MaxHit += (double)(1.15+(double)((double)(StrBonus*Strength)*0.00175));
- }
- MaxHit += (double)(Strength*0.1);
- /*
- if (StrPotion == 1) { // Strength Potion
- MaxHit += (double) (Strength * 0.0014);
- } else if (StrPotion == 2) { // Super Strength Potion
- MaxHit += (double) (Strength * 0.0205);
- }*/
- if (StrPrayer == 1) {
- // Burst Of Strength
- MaxHit += (double)(Strength*0.005);
- } else if (StrPrayer == 2) {
- // Super Human Strength
- MaxHit += (double)(Strength*0.01);
- } else if (StrPrayer == 3) {
- // Ultimate Strength
- MaxHit += (double)(Strength*0.015);
- }
- if (FightType == 5 || FightType == 6) {
- // Accurate and Longranged
- MaxHit += (double)(1.05+(double)((double)(RngBonus*Range)*0.00075));
- } else if (FightType == 7) {
- // Rapid
- MaxHit += (double)(1.35+(double)((double)(RngBonus)*0.00025));
- }
- //MaxHit += (double) (Range * 0.03);
- playerMaxHit = (int)Math.floor(MaxHit);
- }
- public boolean GoodDistance(int objectX, int objectY, int playerX, int playerY, int distance) {
- for (int i = 0; i <= distance; i++) {
- for (int j = 0; j <= distance; j++) {
- if ((objectX+i) == playerX && ((objectY+j) == playerY || (objectY-j) == playerY || objectY == playerY)) {
- return true;
- } else if ((objectX-i) == playerX && ((objectY+j) == playerY || (objectY-j) == playerY || objectY == playerY)) {
- return true;
- } else if (objectX == playerX && ((objectY+j) == playerY || (objectY-j) == playerY || objectY == playerY)) {
- return true;
- }
- }
- }
- return false;
- }
- public boolean GoodDistance2(int objectX, int objectY, int playerX, int playerY, int distance) {
- for (int i = 0; i <= distance; i++) {
- for (int j = 0; j <= distance; j++) {
- if (objectX == playerX && ((objectY+j) == playerY || (objectY-j) == playerY || objectY == playerY)) {
- return true;
- } else if (objectY == playerY && ((objectX+j) == playerX || (objectX-j) == playerX || objectX == playerX)) {
- return true;
- }
- }
- }
- return false;
- }
- public void wc(int speed, int level, int xp, int item, int chance) {
- woodcutting[0] = speed;
- woodcutting[1] = level;
- woodcutting[2] = xp;
- woodcutting[4] = item;
- woodcutting[5] = chance;
- IsUsingSkill = true;
- skillX = server.OC.objectX;
- skillY = server.OC.objectY;
- }
- public void mine(int speed, int level, int xp, int item) {
- mining[0] = speed;
- mining[1] = level;
- mining[2] = xp;
- mining[4] = item;
- IsUsingSkill = true;
- skillX = server.OC.objectX;
- skillY = server.OC.objectY;
- }
- public void cookFish(int amount) {
- closeInterface();
- cooking = true;
- cookAmount = amount;
- }
- public void startCooking() {
- int[] fish = {317};
- String[] fishtext = {"Shrimp"};
- int[][] cooked = {{315,323}};//{cooked fish, burnt fish}
- int[][] cook = {{1,55,14,10,70}}; //{level,burnrate,level stop burning,level stop burning with gauntless,experience}
- for(int i = 0; i < fish.length; i++)
- {
- int cookie = (cook[i][1])+(playerLevel[playerCooking]/2);
- if (cookAmount < 1)
- {
- resetAction();
- return;
- }
- if(cookie > 100)
- {
- cookie = 100;
- }
- cookAmount--;
- //pEmote = 883;
- updateRequired = true;
- appearanceUpdateRequired = true;
- if (playerHasItem(fish[i]) && playerLevel[playerCooking] >= cook[i][0])
- {
- deleteItem(fish[i], 1);
- if(misc.random(100) <= cookie || playerLevel[playerCooking] >= cook[i][2] ||
- playerLevel[playerCooking] >= cook[i][3] && playerEquipment[playerHands] == gauntless ||
- playerEquipment[playerHands] == gauntless && misc.random(100) <= cookie+(cookie*0.2))
- {
- addItem(cooked[i][0], 1);
- addSkillXP(cook[i][4], playerCooking);
- sendMessage("You success to cook the "+fishtext[i]+".");
- }
- else
- {
- addItem(cooked[i][1], 1);
- sendMessage("Oh dear you burnt the "+fishtext[i]+"!");
- }
- }
- }
- }
- /* HEALING*/
- public boolean healing() {
- if (actionTimer == 0 && healing[0] == 1) {
- actionAmount++;
- actionTimer = 4;
- OriginalShield = playerEquipment[playerShield];
- OriginalWeapon = playerEquipment[playerWeapon];
- playerEquipment[playerShield] = -1;
- playerEquipment[playerWeapon] = -1;
- setAnimation(0x33D);
- healing[0] = 2;
- }
- if (actionTimer == 0 && healing[0] == 2) {
- deleteItem(healing[4], GetItemSlot(healing[4]), 1);
- int Heal = healing[1];
- int HealDiff = (healing[2]-healing[1]);
- if (HealDiff > 0) {
- Heal += misc.random(HealDiff);
- }
- if (healing[3] != -1) {
- addItem(healing[3], 1);
- }
- NewHP = (playerLevel[playerHitpoints]+Heal);
- if (NewHP > getLevelForXP(playerXP[playerHitpoints])) {
- NewHP = getLevelForXP(playerXP[playerHitpoints]);
- }
- sendMessage("You eat the "+GetItemName(healing[4])+".");
- playerEquipment[playerWeapon] = OriginalWeapon;
- playerEquipment[playerShield] = OriginalShield;
- OriginalWeapon = -1;
- OriginalShield = -1;
- resetAnimation();
- resetHE();
- }
- return true;
- }
- public boolean resetHE() {
- healing[0] = 0;
- healing[1] = 0;
- healing[2] = 0;
- healing[3] = -1;
- healing[4] = -1;
- IsUsingSkill = false;
- return true;
- }
- /* MINING*/
- public boolean mining() {
- int MIPickAxe = 0;
- if (IsMining == true) {
- MIPickAxe = 1; // If Mining -> Go trough loop, passby MICheckPickAxe to prevent originalweapon loss, 1 to tell you got pick axe, no function left for MIPickAxe if mining, so 1 is enough.
- } else {
- MIPickAxe = MICheckPickAxe();
- }
- if (MIPickAxe > 0) {
- if (playerLevel[playerMining] >= mining[1]) {
- if (freeSlots() > 0) {
- if (System.currentTimeMillis()-lastAction >= 1000 && IsMining == false) {
- lastAction = System.currentTimeMillis();
- sendMessage("You swing your pick axe at the rock...");
- setAnimation(0x554);
- IsMining = true;
- }
- if (System.currentTimeMillis()-lastAction >= mining[0] && IsMining == true) {
- lastAction = System.currentTimeMillis();
- addSkillXP((mining[2]*mining[3]*2), playerMining);
- if (freeSlots() > 0) {
- sendMessage("You get some ore.");
- addItem(mining[4], 1);
- } else {
- playerEquipment[playerWeapon] = OriginalWeapon;
- OriginalWeapon = -1;
- resetAnimation();
- IsMining = false;
- resetMI();
- }
- }
- } else {
- sendMessage("Not enough space in your inventory.");
- resetMI();
- return false;
- }
- } else {
- sendMessage("You need "+mining[1]+" "+statName[playerMining]+" to mine those ores.");
- resetMI();
- return false;
- }
- } else {
- sendMessage("You need a pick axe to mine ores.");
- resetMI();
- return false;
- }
- return true;
- }
- public boolean resetMI() {
- mining[0] = 0;
- mining[1] = 0;
- mining[2] = 0;
- mining[4] = 0;
- skillX = -1;
- skillY = -1;
- IsMining = false;
- IsUsingSkill = false;
- return true;
- }
- public int MICheckPickAxe() {
- int Hand;
- int Shield;
- int Bag;
- int PickAxe;
- Hand = playerEquipment[playerWeapon];
- Shield = playerEquipment[playerShield];
- PickAxe = 0;
- switch (Hand) {
- case 1265:
- // Bronze Pick Axe
- PickAxe = 1;
- break;
- case 1267:
- // Iron Pick Axe
- PickAxe = 2;
- break;
- case 1269:
- // Steel Pick Axe
- PickAxe = 3;
- break;
- case 1273:
- // Mithril Pick Axe
- PickAxe = 4;
- break;
- case 1271:
- // Adamant Pick Axe
- PickAxe = 5;
- break;
- case 1275:
- // Rune Pick Axe
- PickAxe = 6;
- break;
- }
- if (PickAxe > 0) {
- return PickAxe;
- }
- return 0;
- }
- /* PRAYER*/
- public boolean prayer() {
- if (actionTimer != 0)
- return false;
- if (playerLevel[playerPrayer] >= prayer[1]) {
- if (actionTimer == 0 && prayer[0] == 1) {
- //actionAmount++;
- actionTimer = 4;
- OriginalShield = playerEquipment[playerShield];
- OriginalWeapon = playerEquipment[playerWeapon];
- //playerEquipment[playerShield] = -1;
- //playerEquipment[playerWeapon] = -1;
- setAnimation(0x33B);
- prayer[0] = 2;
- }
- if (actionTimer == 0 && prayer[0] == 2 /* && playerHasItem(prayer[4])*/) {
- deleteItem(prayer[4], prayer[5], playerItemsN[prayer[5]]);
- addSkillXP((prayer[2]*prayer[3]), playerPrayer);
- sendMessage("You bury the bones");
- playerEquipment[playerWeapon] = OriginalWeapon;
- playerEquipment[playerShield] = OriginalShield;
- //OriginalWeapon = -1;
- //OriginalShield = -1;
- resetAnimation();
- resetPR();
- //actionAmount++;
- actionTimer = 4;
- }
- }
- return true;
- }
- public boolean resetPR() {
- prayer[0] = 0;
- prayer[1] = 0;
- prayer[2] = 0;
- prayer[4] = -1;
- prayer[5] = -1;
- IsUsingSkill = false;
- return true;
- }
- public boolean resetSM() {
- if (OriginalWeapon > -1) {
- playerEquipment[playerWeapon] = OriginalWeapon;
- OriginalWeapon = -1;
- playerEquipment[playerShield] = OriginalShield;
- OriginalShield = -1;
- }
- return true;
- }
- /* SMITHING*/
- public void ReplaceItems(int newID, int oldID, int newAmount, int oldAmount) {
- for (int i = 0; i < playerItems.length; i++) {
- if (playerItems[i] == oldID + 1 && oldAmount > 0) {
- playerItems[i] = 0;
- oldAmount--;
- resetItems(3214);
- }
- }
- if (oldAmount == 0) {
- addItem(newID, newAmount);
- }
- }
- public int removeBar(int removeID) {
- int[] smithitem = {
- 1205,1351,1422,1139,1277,4819,819,1321,39,1291,1155,864,1173,1337,1375,1103,1189,3095,1307,1087,1075,1117 //bronze
- //iron
- //steel
- //mithril
- //adamant
- //rune
- };
- int[] bar = {
- 2349,2349,2349,2349,2349,2349,2349,2349,2349,2349,2349,2349,2349,2349,2349,2349,2349,2349,2349,2349,2349,2349 //bronze
- //iron
- //steel
- //mithril
- //adamant
- //rune
- };
- for(int i = 0; i < smithitem.length; i++)
- if (removeID == smithitem[i]) {
- return bar[i];
- }
- return 0;
- }
- public int barsNeeded(int slot, int column) {
- if (column == 1119) {
- if (slot == 0 || slot == 1) {
- return 1;
- }
- if (slot == 2 || slot == 3) {
- return 2;
- }
- if (slot == 4) {
- return 3;
- }
- }
- if (column == 1120) {
- if (slot == 0 || slot == 1) {
- return 1;
- }
- if (slot == 2 || slot == 3) {
- return 3;
- }
- if (slot == 4) {
- return 2;
- }
- }
- if (column == 1121) {
- if (slot == 0 || slot == 1 || slot == 2) {
- return 3;
- }
- if (slot == 3) {
- return 5;
- }
- if (slot == 4) {
- return 1;
- }
- }
- if (column == 1122) {
- if (slot == 0 || slot == 4) {
- return 1;
- }
- if (slot == 1 || slot == 2) {
- return 2;
- }
- if (slot == 3) {
- return 3;
- }
- }
- if (column == 1123) {
- if (slot == 0 || slot == 1 || slot == 2 || slot == 3 || slot == 4) {
- return 1;
- }
- }
- return 0;
- }
- public int barsNeeded2(int slot, int column) {
- if (column == 1119) {
- if (slot == 0 || slot == 1) {
- return 5;
- }
- if (slot == 2 || slot == 3) {
- return 10;
- }
- if (slot == 4) {
- return 15;
- }
- }
- if (column == 1120) {
- if (slot == 0 || slot == 1) {
- return 5;
- }
- if (slot == 2 || slot == 3) {
- return 15;
- }
- if (slot == 4) {
- return 10;
- }
- }
- if (column == 1121) {
- if (slot == 0 || slot == 1 || slot == 2) {
- return 15;
- }
- if (slot == 3) {
- return 25;
- }
- if (slot == 4) {
- return 5;
- }
- }
- if (column == 1122) {
- if (slot == 0 || slot == 4) {
- return 5;
- }
- if (slot == 1 || slot == 2) {
- return 10;
- }
- if (slot == 3) {
- return 15;
- }
- }
- if (column == 1123) {
- if (slot == 0 || slot == 1 || slot == 2 || slot == 3 || slot == 4) {
- return 5;
- }
- }
- return 0;
- }
- public int barsNeeded3(int slot, int column) {
- if (column == 1119) {
- if (slot == 0 || slot == 1) {
- return 10;
- }
- if (slot == 2 || slot == 3) {
- return 20;
- }
- if (slot == 4) {
- return 30;
- }
- }
- if (column == 1120) {
- if (slot == 0 || slot == 1) {
- return 10;
- }
- if (slot == 2 || slot == 3) {
- return 30;
- }
- if (slot == 4) {
- return 20;
- }
- }
- if (column == 1121) {
- if (slot == 0 || slot == 1 || slot == 2) {
- return 30;
- }
- if (slot == 3) {
- return 50;
- }
- if (slot == 4) {
- return 10;
- }
- }
- if (column == 1122) {
- if (slot == 0 || slot == 4) {
- return 10;
- }
- if (slot == 1 || slot == 2) {
- return 20;
- }
- if (slot == 3) {
- return 30;
- }
- }
- if (column == 1123) {
- if (slot == 0 || slot == 1 || slot == 2 || slot == 3 || slot == 4) {
- return 10;
- }
- }
- return 0;
- }
- public int smithXP(int barType, int barAmount) {
- int[] bar = {2349,2351,2353,2359,2361,2363};
- int[] xp = {50,100,200,400,800,1400};
- for(int i = 0; i < bar.length; i++) {
- if (barType == bar[i]) {
- return barAmount * xp[i];
- }
- setAnimation(898);
- return 0;
- }
- return -1;
- }
- public boolean canSmith(int item) {
- int[] smithitem = {
- 1205,1351,1422,1139,1277,4819,819,1321,39,1291,1155,864,1173,1337,1375,1103,1189,3095,1307,1087,1075,1117 //bronze
- //iron
- //steel
- //mithril
- //adamant
- //rune
- };
- int[] smithlevel = {
- 1,1,2,3,4,4,4,5,5,6,7,7,8,9,10,11,12,13,14,16,16,18 //bronze
- //iron
- //steel
- //mithril
- //adamant
- //rune
- };
- for(int i = 0; i < smithitem.length; i++)
- if (item == smithitem[i] && playerLevel[13] >= smithlevel[i]) {
- return true;
- }
- return false;
- }
- public void addItemToSmith(int id, int slot, int column, int amount) {
- outStream.createFrameVarSizeWord(34); // init item to smith screen
- outStream.writeWord(column); // Column Across Smith Screen
- outStream.writeByte(4); // Total Rows?
- outStream.writeDWord(slot); // Row Down The Smith Screen
- outStream.writeWord(id + 1); // item
- outStream.writeByte(amount); // how many there are?
- outStream.endFrameVarSizeWord();
- }
- public void initSmithing(int barType) {
- outStream.createFrame(97);
- outStream.writeWord(994);
- if (amountOfItem(barType) < 5) {
- sendQuest("@red@5bars@red@", 1112);
- } else {
- sendQuest("@gre@5bars@gre@", 1112);
- }
- if (amountOfItem(barType) < 3) {
- sendQuest("@red@3bars@red@", 1109);
- sendQuest("@red@3bars@red@", 1110);
- sendQuest("@red@3bars@red@", 1118);
- sendQuest("@red@3bars@red@", 1111);
- sendQuest("@red@3bars@red@", 1095);
- sendQuest("@red@3bars@red@", 1115);
- sendQuest("@red@3bars@red@", 1090);
- } else {
- sendQuest("@gre@3bars@gre@", 1109);
- sendQuest("@gre@3bars@gre@", 1110);
- sendQuest("@gre@3bars@gre@", 1118);
- sendQuest("@gre@3bars@gre@", 1111);
- sendQuest("@gre@3bars@gre@", 1095);
- sendQuest("@gre@3bars@gre@", 1115);
- sendQuest("@gre@3bars@gre@", 1090);
- }
- if (amountOfItem(barType) < 2) {
- sendQuest("@red@2bars@red@", 1113);
- sendQuest("@red@2bars@red@", 1116);
- sendQuest("@red@2bars@red@", 1114);
- sendQuest("@red@2bars@red@", 1089);
- sendQuest("@red@2bars@red@", 8428);
- } else {
- sendQuest("@gre@2bars@gre@", 1113);
- sendQuest("@gre@2bars@gre@", 1116);
- sendQuest("@gre@2bars@gre@", 1114);
- sendQuest("@gre@2bars@gre@", 1089);
- sendQuest("@gre@2bars@gre@", 8428);
- }
- if (amountOfItem(barType) < 1) {
- sendQuest("@red@1bar@red@", 1125);
- sendQuest("@red@1bar@red@", 1126);
- sendQuest("@red@1bar@red@", 1127);
- sendQuest("@red@1bar@red@", 1124);
- sendQuest("@red@1bar@red@", 1128);
- sendQuest("@red@1bar@red@", 1129);
- sendQuest("@red@1bar@red@", 1130);
- sendQuest("@red@1bar@red@", 13357);
- sendQuest("@red@1bar@red@", 1131);
- sendQuest("@red@1bar@red@", 11459);
- } else {
- sendQuest("@gre@1bar@gre@", 1125);
- sendQuest("@gre@1bar@gre@", 1126);
- sendQuest("@gre@1bar@gre@", 1127);
- sendQuest("@gre@1bar@gre@", 1124);
- sendQuest("@gre@1bar@gre@", 1128);
- sendQuest("@gre@1bar@gre@", 1129);
- sendQuest("@gre@1bar@gre@", 1130);
- sendQuest("@gre@1bar@gre@", 13357);
- sendQuest("@gre@1bar@gre@", 1131);
- sendQuest("@gre@1bar@gre@", 11459);
- }
- if (barType == 2349) { // Bronze
- if (playerLevel[13] < 18) {
- sendQuest("@bla@Plate body@bla@", 1101);
- } else {
- sendQuest("@whi@Plate body@whi@", 1101);
- }
- if (playerLevel[13] < 16) {
- sendQuest("@bla@Plate legs@bla@", 1099);
- sendQuest("@bla@Plate skirt@bla@", 1100);
- } else {
- sendQuest("@whi@Plate legs@whi@", 1099);
- sendQuest("@whi@Plate skirt@whi@", 1100);
- }
- if (playerLevel[13] < 14) {
- sendQuest("@bla@2 hand sword@bla@", 1088);
- } else {
- sendQuest("@whi@2 hand sword@whi@", 1088);
- }
- if (playerLevel[13] < 13) {
- sendQuest("@bla@Claws@bla@", 8429);
- } else {
- sendQuest("@whi@Claws@whi@", 8429);
- }
- if (playerLevel[13] < 12) {
- sendQuest("@bla@Kite shield@bla@", 1105);
- } else {
- sendQuest("@whi@Kite shield@whi@", 1105);
- }
- if (playerLevel[13] < 11) {
- sendQuest("@bla@Chain body@bla@", 1098);
- } else {
- sendQuest("@whi@Chain body@whi@", 1098);
- }
- if (playerLevel[13] < 10) {
- sendQuest("@bla@Battle axe@bla@", 1092);
- } else {
- sendQuest("@whi@Battle axe@whi@", 1092);
- }
- if (playerLevel[13] < 9) {
- sendQuest("@bla@Warhammer@bla@", 1083);
- } else {
- sendQuest("@whi@Warhammer@whi@", 1083);
- }
- if (playerLevel[13] < 8) {
- sendQuest("@bla@Square shield@bla@", 1104);
- } else {
- sendQuest("@whi@Square shield@whi@", 1104);
- }
- if (playerLevel[13] < 7) {
- sendQuest("@bla@Full helm@bla@", 1103);
- sendQuest("@bla@Throwing knives@bla@", 1106);
- } else {
- sendQuest("@whi@Full helm@whi@", 1103);
- sendQuest("@whi@Throwing knives@whi@", 1106);
- }
- if (playerLevel[13] < 6) {
- sendQuest("@bla@Long sword@bla@", 1086);
- } else {
- sendQuest("@whi@Long sword@whi@", 1086);
- }
- if (playerLevel[13] < 5) {
- sendQuest("@bla@Scimitar@bla@", 1087);
- sendQuest("@bla@Arrowtips@bla@", 1108);
- } else {
- sendQuest("@whi@Scimitar@whi@", 1087);
- sendQuest("@whi@Arrowtips@whi@", 1108);
- }
- if (playerLevel[13] < 4) {
- sendQuest("@bla@Sword@bla@", 1085);
- sendQuest("@bla@Dart tips@bla@", 1107);
- sendQuest("@bla@Nails@bla@", 13358);
- } else {
- sendQuest("@whi@Sword@whi@", 1085);
- sendQuest("@whi@Dart tips@whi@", 1107);
- sendQuest("@whi@Nails@whi@", 13358);
- }
- if (playerLevel[13] < 3) {
- sendQuest("@bla@Medium helm@bla@", 1102);
- } else {
- sendQuest("@whi@Medium helm@whi@", 1102);
- }
- if (playerLevel[13] < 2) {
- sendQuest("@bla@Mace@bla@", 1093);
- } else {
- sendQuest("@whi@Mace@whi@", 1093);
- }
- if (playerLevel[13] < 1) {
- sendQuest("@bla@Dagger@bla@", 1094);
- sendQuest("@bla@Axe@bla@", 1091);
- } else {
- sendQuest("@whi@Dagger@whi@", 1094);
- sendQuest("@whi@Axe@whi@", 1091);
- }
- addItemToSmith(1205, 0, 1119, 1);
- addItemToSmith(1351, 0, 1120, 1);
- addItemToSmith(1103, 0, 1121, 1);
- addItemToSmith(1139, 0, 1122, 1);
- addItemToSmith(819, 0, 1123, 10);
- addItemToSmith(1277, 1, 1119, 1);
- addItemToSmith(1422, 1, 1120, 1);
- addItemToSmith(1075, 1, 1121, 1);
- addItemToSmith(1155, 1, 1122, 1);
- addItemToSmith(39, 1, 1123, 15);
- addItemToSmith(1321, 2, 1119, 1);
- addItemToSmith(1337, 2, 1120, 1);
- addItemToSmith(1087, 2, 1121, 1);
- addItemToSmith(1173, 2, 1122, 1);
- addItemToSmith(864, 2, 1123, 5);
- addItemToSmith(1291, 3, 1119, 1);
- addItemToSmith(1375, 3, 1120, 1);
- addItemToSmith(1117, 3, 1121, 1);
- addItemToSmith(1189, 3, 1122, 1);
- // addItemToSmith(0,3,1123);
- sendQuest("", 1132);
- sendQuest("", 1096);
- addItemToSmith(1307, 4, 1119, 1);
- addItemToSmith(3095, 4, 1120, 1);
- // addItemToSmith(1307,4,1121);
- sendQuest("", 11459);
- sendQuest("", 11461);
- addItemToSmith(4819, 4, 1122, 1);
- // addItemToSmith(1307,4,1123);
- sendQuest("", 1135);
- sendQuest("", 1134);
- }
- if (barType == 2351) { // Iron
- if (playerLevel[13] < 33) {
- sendQuest("@bla@Plate body@bla@", 1101);
- } else {
- sendQuest("@whi@Plate body@whi@", 1101);
- }
- if (playerLevel[13] < 31) {
- sendQuest("@bla@Plate legs@bla@", 1099);
- sendQuest("@bla@Plate skirt@bla@", 1100);
- } else {
- sendQuest("@whi@Plate legs@whi@", 1099);
- sendQuest("@whi@Plate skirt@whi@", 1100);
- }
- if (playerLevel[13] < 29) {
- sendQuest("@bla@2 hand sword@bla@", 1088);
- } else {
- sendQuest("@whi@2 hand sword@whi@", 1088);
- }
- if (playerLevel[13] < 28) {
- sendQuest("@bla@Claws@bla@", 8429);
- } else {
- sendQuest("@whi@Claws@whi@", 8429);
- }
- if (playerLevel[13] < 27) {
- sendQuest("@bla@Kite shield@bla@", 1105);
- } else {
- sendQuest("@whi@Kite shield@whi@", 1105);
- }
- if (playerLevel[13] < 26) {
- sendQuest("@bla@Chain body@bla@", 1098);
- sendQuest("@bla@Oil lantern frame@bla@", 11461);
- } else {
- sendQuest("@whi@Chain body@whi@", 1098);
- sendQuest("@whi@Oil lantern frame@whi@", 11461);
- }
- if (playerLevel[13] < 25) {
- sendQuest("@bla@Battle axe@bla@", 1092);
- } else {
- sendQuest("@whi@Battle axe@whi@", 1092);
- }
- if (playerLevel[13] < 24) {
- sendQuest("@bla@Warhammer@bla@", 1083);
- } else {
- sendQuest("@whi@Warhammer@whi@", 1083);
- }
- if (playerLevel[13] < 23) {
- sendQuest("@bla@Square shield@bla@", 1104);
- } else {
- sendQuest("@whi@Square shield@whi@", 1104);
- }
- if (playerLevel[13] < 22) {
- sendQuest("@bla@Full helm@bla@", 1103);
- sendQuest("@bla@Throwing knives@bla@", 1106);
- } else {
- sendQuest("@whi@Full helm@whi@", 1103);
- sendQuest("@whi@Throwing knives@whi@", 1106);
- }
- if (playerLevel[13] < 21) {
- sendQuest("@bla@Long sword@bla@", 1086);
- } else {
- sendQuest("@whi@Long sword@whi@", 1086);
- }
- if (playerLevel[13] < 20) {
- sendQuest("@bla@Scimitar@bla@", 1087);
- sendQuest("@bla@Arrowtips@bla@", 1108);
- } else {
- sendQuest("@whi@Scimitar@whi@", 1087);
- sendQuest("@whi@Arrowtips@whi@", 1108);
- }
- if (playerLevel[13] < 19) {
- sendQuest("@bla@Sword@bla@", 1085);
- sendQuest("@bla@Dart tips@bla@", 1107);
- sendQuest("@bla@Nails@bla@", 13358);
- } else {
- sendQuest("@whi@Sword@whi@", 1085);
- sendQuest("@whi@Dart tips@whi@", 1107);
- sendQuest("@whi@Nails@whi@", 13358);
- }
- if (playerLevel[13] < 18) {
- sendQuest("@bla@Medium helm@bla@", 1102);
- } else {
- sendQuest("@whi@Medium helm@whi@", 1102);
- }
- if (playerLevel[13] < 17) {
- sendQuest("@bla@Mace@bla@", 1093);
- } else {
- sendQuest("@whi@Mace@whi@", 1093);
- }
- if (playerLevel[13] < 16) {
- sendQuest("@bla@Axe@bla@", 1091);
- } else {
- sendQuest("@whi@Axe@whi@", 1091);
- }
- if (playerLevel[13] < 15) {
- sendQuest("@bla@Dagger@bla@", 1094);
- } else {
- sendQuest("@whi@Dagger@whi@", 1094);
- }
- addItemToSmith(1203, 0, 1119, 1);
- addItemToSmith(1349, 0, 1120, 1);
- addItemToSmith(1101, 0, 1121, 1);
- addItemToSmith(1137, 0, 1122, 1);
- addItemToSmith(820, 0, 1123, 10);
- addItemToSmith(1279, 1, 1119, 1);
- addItemToSmith(1420, 1, 1120, 1);
- addItemToSmith(1067, 1, 1121, 1);
- addItemToSmith(1153, 1, 1122, 1);
- addItemToSmith(40, 1, 1123, 15);
- addItemToSmith(1323, 2, 1119, 1);
- addItemToSmith(1335, 2, 1120, 1);
- addItemToSmith(1081, 2, 1121, 1);
- addItemToSmith(1175, 2, 1122, 1);
- addItemToSmith(863, 2, 1123, 5);
- addItemToSmith(1293, 3, 1119, 1);
- addItemToSmith(1363, 3, 1120, 1);
- addItemToSmith(1115, 3, 1121, 1);
- addItemToSmith(1191, 3, 1122, 1);
- // addItemToSmith(0,3,1123);
- sendQuest("", 1132);
- sendQuest("", 1096);
- addItemToSmith(1309, 4, 1119, 1);
- addItemToSmith(3096, 4, 1120, 1);
- addItemToSmith(4540, 4, 1121, 1);
- addItemToSmith(4820, 4, 1122, 1);
- // addItemToSmith(1307,4,1123);
- sendQuest("", 1135);
- sendQuest("", 1134);
- }
- if (barType == 2353) { // Steel
- if (playerLevel[13] < 49) {
- sendQuest("@bla@Bullseye lantern@bla@", 11461);
- } else {
- sendQuest("@whi@Bullseye lantern@whi@", 11461);
- }
- if (playerLevel[13] < 48) {
- sendQuest("@bla@Plate body@bla@", 1101);
- } else {
- sendQuest("@whi@Plate body@whi@", 1101);
- }
- if (playerLevel[13] < 46) {
- sendQuest("@bla@Plate legs@bla@", 1099);
- sendQuest("@bla@Plate skirt@bla@", 1100);
- } else {
- sendQuest("@whi@Plate legs@whi@", 1099);
- sendQuest("@whi@Plate skirt@whi@", 1100);
- }
- if (playerLevel[13] < 44) {
- sendQuest("@bla@2 hand sword@bla@", 1088);
- } else {
- sendQuest("@whi@2 hand sword@whi@", 1088);
- }
- if (playerLevel[13] < 43) {
- sendQuest("@bla@Claws@bla@", 8429);
- } else {
- sendQuest("@whi@Claws@whi@", 8429);
- }
- if (playerLevel[13] < 42) {
- sendQuest("@bla@Kite shield@bla@", 1105);
- } else {
- sendQuest("@whi@Kite shield@whi@", 1105);
- }
- if (playerLevel[13] < 41) {
- sendQuest("@bla@Chain body@bla@", 1098);
- } else {
- sendQuest("@whi@Chain body@whi@", 1098);
- }
- if (playerLevel[13] < 40) {
- sendQuest("@bla@Battle axe@bla@", 1092);
- } else {
- sendQuest("@whi@Battle axe@whi@", 1092);
- }
- if (playerLevel[13] < 39) {
- sendQuest("@bla@Warhammer@bla@", 1083);
- } else {
- sendQuest("@whi@Warhammer@whi@", 1083);
- }
- if (playerLevel[13] < 38) {
- sendQuest("@bla@Square shield@bla@", 1104);
- } else {
- sendQuest("@whi@Square shield@whi@", 1104);
- }
- if (playerLevel[13] < 37) {
- sendQuest("@bla@Full helm@bla@", 1103);
- sendQuest("@bla@Throwing knives@bla@", 1106);
- } else {
- sendQuest("@whi@Full helm@whi@", 1103);
- sendQuest("@whi@Throwing knives@whi@", 1106);
- }
- if (playerLevel[13] < 36) {
- sendQuest("@bla@Long sword@bla@", 1086);
- sendQuest("@bla@Studs@bla@", 1134);
- } else {
- sendQuest("@whi@Long sword@whi@", 1086);
- sendQuest("@whi@Studs@whi@", 1134);
- }
- if (playerLevel[13] < 35) {
- sendQuest("@bla@Scimitar@bla@", 1087);
- sendQuest("@bla@Arrowtips@bla@", 1108);
- } else {
- sendQuest("@whi@Scimitar@whi@", 1087);
- sendQuest("@whi@Arrowtips@whi@", 1108);
- }
- if (playerLevel[13] < 34) {
- sendQuest("@bla@Sword@bla@", 1085);
- sendQuest("@bla@Dart tips@bla@", 1107);
- sendQuest("@bla@Nails@bla@", 13358);
- } else {
- sendQuest("@whi@Sword@whi@", 1085);
- sendQuest("@whi@Dart tips@whi@", 1107);
- sendQuest("@whi@Nails@whi@", 13358);
- }
- if (playerLevel[13] < 33) {
- sendQuest("@bla@Medium helm@bla@", 1102);
- } else {
- sendQuest("@whi@Medium helm@whi@", 1102);
- }
- if (playerLevel[13] < 32) {
- sendQuest("@bla@Mace@bla@", 1093);
- } else {
- sendQuest("@whi@Mace@whi@", 1093);
- }
- if (playerLevel[13] < 31) {
- sendQuest("@bla@Axe@bla@", 1091);
- } else {
- sendQuest("@whi@Axe@whi@", 1091);
- }
- if (playerLevel[13] < 30) {
- sendQuest("@bla@Dagger@bla@", 1094);
- } else {
- sendQuest("@whi@Dagger@whi@", 1094);
- }
- addItemToSmith(1207, 0, 1119, 1);
- addItemToSmith(1353, 0, 1120, 1);
- addItemToSmith(1105, 0, 1121, 1);
- addItemToSmith(1141, 0, 1122, 1);
- addItemToSmith(821, 0, 1123, 10);
- addItemToSmith(1281, 1, 1119, 1);
- addItemToSmith(1424, 1, 1120, 1);
- addItemToSmith(1069, 1, 1121, 1);
- addItemToSmith(1157, 1, 1122, 1);
- addItemToSmith(41, 1, 1123, 15);
- addItemToSmith(1325, 2, 1119, 1);
- addItemToSmith(1339, 2, 1120, 1);
- addItemToSmith(1083, 2, 1121, 1);
- addItemToSmith(1177, 2, 1122, 1);
- addItemToSmith(865, 2, 1123, 5);
- addItemToSmith(1295, 3, 1119, 1);
- addItemToSmith(1365, 3, 1120, 1);
- addItemToSmith(1119, 3, 1121, 1);
- addItemToSmith(1193, 3, 1122, 1);
- sendQuest("", 1132);
- sendQuest("", 1096);
- addItemToSmith(1311, 4, 1119, 1);
- addItemToSmith(3097, 4, 1120, 1);
- addItemToSmith(4544, 4, 1121, 1);
- addItemToSmith(1539, 4, 1122, 1);
- addItemToSmith(2370, 4, 1123, 1);
- if (amountOfItem(barType) < 1) {
- sendQuest("@red@1bar@red@", 1135);
- } else {
- sendQuest("@gre@1bar@gre@", 1135);
- }
- }
- if (barType == 2359) { // Mith
- if (playerLevel[13] < 68) {
- sendQuest("@bla@Plate body@bla@", 1101);
- } else {
- sendQuest("@whi@Plate body@whi@", 1101);
- }
- if (playerLevel[13] < 66) {
- sendQuest("@bla@Plate legs@bla@", 1099);
- sendQuest("@bla@Plate skirt@bla@", 1100);
- } else {
- sendQuest("@whi@Plate legs@whi@", 1099);
- sendQuest("@whi@Plate skirt@whi@", 1100);
- }
- if (playerLevel[13] < 64) {
- sendQuest("@bla@2 hand sword@bla@", 1088);
- } else {
- sendQuest("@whi@2 hand sword@whi@", 1088);
- }
- if (playerLevel[13] < 63) {
- sendQuest("@bla@Claws@bla@", 8429);
- } else {
- sendQuest("@whi@Claws@whi@", 8429);
- }
- if (playerLevel[13] < 62) {
- sendQuest("@bla@Kite shield@bla@", 1105);
- } else {
- sendQuest("@whi@Kite shield@whi@", 1105);
- }
- if (playerLevel[13] < 61) {
- sendQuest("@bla@Chain body@bla@", 1098);
- } else {
- sendQuest("@whi@Chain body@whi@", 1098);
- }
- if (playerLevel[13] < 60) {
- sendQuest("@bla@Battle axe@bla@", 1092);
- } else {
- sendQuest("@whi@Battle axe@whi@", 1092);
- }
- if (playerLevel[13] < 59) {
- sendQuest("@bla@Warhammer@bla@", 1083);
- } else {
- sendQuest("@whi@Warhammer@whi@", 1083);
- }
- if (playerLevel[13] < 58) {
- sendQuest("@bla@Square shield@bla@", 1104);
- } else {
- sendQuest("@whi@Square shield@whi@", 1104);
- }
- if (playerLevel[13] < 57) {
- sendQuest("@bla@Full helm@bla@", 1103);
- sendQuest("@bla@Throwing knives@bla@", 1106);
- } else {
- sendQuest("@whi@Full helm@whi@", 1103);
- sendQuest("@whi@Throwing knives@whi@", 1106);
- }
- if (playerLevel[13] < 56) {
- sendQuest("@bla@Long sword@bla@", 1086);
- } else {
- sendQuest("@whi@Long sword@whi@", 1086);
- }
- if (playerLevel[13] < 55) {
- sendQuest("@bla@Scimitar@bla@", 1087);
- sendQuest("@bla@Arrowtips@bla@", 1108);
- } else {
- sendQuest("@whi@Scimitar@whi@", 1087);
- sendQuest("@whi@Arrowtips@whi@", 1108);
- }
- if (playerLevel[13] < 54) {
- sendQuest("@bla@Sword@bla@", 1085);
- sendQuest("@bla@Dart tips@bla@", 1107);
- sendQuest("@bla@Nails@bla@", 13358);
- } else {
- sendQuest("@whi@Sword@whi@", 1085);
- sendQuest("@whi@Dart tips@whi@", 1107);
- sendQuest("@whi@Nails@whi@", 13358);
- }
- if (playerLevel[13] < 53) {
- sendQuest("@bla@Medium helm@bla@", 1102);
- } else {
- sendQuest("@whi@Medium helm@whi@", 1102);
- }
- if (playerLevel[13] < 52) {
- sendQuest("@bla@Mace@bla@", 1093);
- } else {
- sendQuest("@whi@Mace@whi@", 1093);
- }
- if (playerLevel[13] < 51) {
- sendQuest("@bla@Axe@bla@", 1091);
- } else {
- sendQuest("@whi@Axe@whi@", 1091);
- }
- if (playerLevel[13] < 50) {
- sendQuest("@bla@Dagger@bla@", 1094);
- } else {
- sendQuest("@whi@Dagger@whi@", 1094);
- }
- addItemToSmith(1209, 0, 1119, 1);
- addItemToSmith(1355, 0, 1120, 1);
- addItemToSmith(1109, 0, 1121, 1);
- addItemToSmith(1143, 0, 1122, 1);
- addItemToSmith(822, 0, 1123, 10);
- addItemToSmith(1285, 1, 1119, 1);
- addItemToSmith(1355, 1, 1120, 1);
- addItemToSmith(1071, 1, 1121, 1);
- addItemToSmith(1159, 1, 1122, 1);
- addItemToSmith(42, 1, 1123, 15);
- addItemToSmith(1329, 2, 1119, 1);
- addItemToSmith(1343, 2, 1120, 1);
- addItemToSmith(1085, 2, 1121, 1);
- addItemToSmith(1181, 2, 1122, 1);
- addItemToSmith(866, 2, 1123, 5);
- addItemToSmith(1299, 3, 1119, 1);
- addItemToSmith(1369, 3, 1120, 1);
- addItemToSmith(1121, 3, 1121, 1);
- addItemToSmith(1197, 3, 1122, 1);
- sendQuest("", 1132);
- sendQuest("", 1096);
- addItemToSmith(1315, 4, 1119, 1);
- addItemToSmith(3099, 4, 1120, 1);
- addItemToSmith(4822, 4, 1122, 1);
- sendQuest("", 1135);
- sendQuest("", 1134);
- sendQuest("", 11461);
- sendQuest("", 11459);
- }
- if (barType == 2361) { // Addy
- if (playerLevel[13] < 88) {
- sendQuest("@bla@Plate body@bla@", 1101);
- } else {
- sendQuest("@whi@Plate body@whi@", 1101);
- }
- if (playerLevel[13] < 86) {
- sendQuest("@bla@Plate legs@bla@", 1099);
- sendQuest("@bla@Plate skirt@bla@", 1100);
- } else {
- sendQuest("@whi@Plate legs@whi@", 1099);
- sendQuest("@whi@Plate skirt@whi@", 1100);
- }
- if (playerLevel[13] < 84) {
- sendQuest("@bla@2 hand sword@bla@", 1088);
- } else {
- sendQuest("@whi@2 hand sword@whi@", 1088);
- }
- if (playerLevel[13] < 83) {
- sendQuest("@bla@Claws@bla@", 8429);
- } else {
- sendQuest("@whi@Claws@whi@", 8429);
- }
- if (playerLevel[13] < 82) {
- sendQuest("@bla@Kite shield@bla@", 1105);
- } else {
- sendQuest("@whi@Kite shield@whi@", 1105);
- }
- if (playerLevel[13] < 81) {
- sendQuest("@bla@Chain body@bla@", 1098);
- } else {
- sendQuest("@whi@Chain body@whi@", 1098);
- }
- if (playerLevel[13] < 80) {
- sendQuest("@bla@Battle axe@bla@", 1092);
- } else {
- sendQuest("@whi@Battle axe@whi@", 1092);
- }
- if (playerLevel[13] < 79) {
- sendQuest("@bla@Warhammer@bla@", 1083);
- } else {
- sendQuest("@whi@Warhammer@whi@", 1083);
- }
- if (playerLevel[13] < 78) {
- sendQuest("@bla@Square shield@bla@", 1104);
- } else {
- sendQuest("@whi@Square shield@whi@", 1104);
- }
- if (playerLevel[13] < 77) {
- sendQuest("@bla@Full helm@bla@", 1103);
- sendQuest("@bla@Throwing knives@bla@", 1106);
- } else {
- sendQuest("@whi@Full helm@whi@", 1103);
- sendQuest("@whi@Throwing knives@whi@", 1106);
- }
- if (playerLevel[13] < 76) {
- sendQuest("@bla@Long sword@bla@", 1086);
- } else {
- sendQuest("@whi@Long sword@whi@", 1086);
- }
- if (playerLevel[13] < 75) {
- sendQuest("@bla@Scimitar@bla@", 1087);
- sendQuest("@bla@Arrowtips@bla@", 1108);
- } else {
- sendQuest("@whi@Scimitar@whi@", 1087);
- sendQuest("@whi@Arrowtips@whi@", 1108);
- }
- if (playerLevel[13] < 74) {
- sendQuest("@bla@Sword@bla@", 1085);
- sendQuest("@bla@Dart tips@bla@", 1107);
- sendQuest("@bla@Nails@bla@", 13358);
- } else {
- sendQuest("@whi@Sword@whi@", 1085);
- sendQuest("@whi@Dart tips@whi@", 1107);
- sendQuest("@whi@Nails@whi@", 13358);
- }
- if (playerLevel[13] < 73) {
- sendQuest("@bla@Medium helm@bla@", 1102);
- } else {
- sendQuest("@whi@Medium helm@whi@", 1102);
- }
- if (playerLevel[13] < 72) {
- sendQuest("@bla@Mace@bla@", 1093);
- } else {
- sendQuest("@whi@Mace@whi@", 1093);
- }
- if (playerLevel[13] < 71) {
- sendQuest("@bla@Axe@bla@", 1091);
- } else {
- sendQuest("@whi@Axe@whi@", 1091);
- }
- if (playerLevel[13] < 70) {
- sendQuest("@bla@Dagger@bla@", 1094);
- } else {
- sendQuest("@whi@Dagger@whi@", 1094);
- }
- addItemToSmith(1211, 0, 1119, 1);
- addItemToSmith(1357, 0, 1120, 1);
- addItemToSmith(1111, 0, 1121, 1);
- addItemToSmith(1145, 0, 1122, 1);
- addItemToSmith(823, 0, 1123, 10);
- addItemToSmith(1287, 1, 1119, 1);
- addItemToSmith(1430, 1, 1120, 1);
- addItemToSmith(1073, 1, 1121, 1);
- addItemToSmith(1161, 1, 1122, 1);
- addItemToSmith(43, 1, 1123, 15);
- addItemToSmith(1331, 2, 1119, 1);
- addItemToSmith(1345, 2, 1120, 1);
- addItemToSmith(1091, 2, 1121, 1);
- addItemToSmith(1183, 2, 1122, 1);
- addItemToSmith(867, 2, 1123, 5);
- addItemToSmith(1301, 3, 1119, 1);
- addItemToSmith(1371, 3, 1120, 1);
- addItemToSmith(1123, 3, 1121, 1);
- addItemToSmith(1199, 3, 1122, 1);
- // addItemToSmith(0,3,1123);
- sendQuest("", 1132);
- sendQuest("", 1096);
- addItemToSmith(1317, 4, 1119, 1);
- addItemToSmith(3100, 4, 1120, 1);
- // addItemToSmith(4540,4,1121,1);
- addItemToSmith(4823, 4, 1122, 1);
- // addItemToSmith(1307,4,1123);
- sendQuest("", 1135);
- sendQuest("", 1134);
- sendQuest("", 11461);
- sendQuest("", 11459);
- }
- if (barType == 2363) { // Rune
- if (playerLevel[13] < 99) {
- sendQuest("@bla@Plate body@bla@", 1101);
- sendQuest("@bla@Plate legs@bla@", 1099);
- sendQuest("@bla@Plate skirt@bla@", 1100);
- sendQuest("@bla@2 hand sword@bla@", 1088);
- } else {
- sendQuest("@whi@Plate body@whi@", 1101);
- sendQuest("@whi@Plate legs@whi@", 1099);
- sendQuest("@whi@Plate skirt@whi@", 1100);
- sendQuest("@whi@2 hand sword@whi@", 1088);
- }
- if (playerLevel[13] < 98) {
- sendQuest("@bla@Claws@bla@", 8429);
- } else {
- sendQuest("@whi@Claws@whi@", 8429);
- }
- if (playerLevel[13] < 97) {
- sendQuest("@bla@Kite shield@bla@", 1105);
- } else {
- sendQuest("@whi@Kite shield@whi@", 1105);
- }
- if (playerLevel[13] < 96) {
- sendQuest("@bla@Chain body@bla@", 1098);
- } else {
- sendQuest("@whi@Chain body@whi@", 1098);
- }
- if (playerLevel[13] < 95) {
- sendQuest("@bla@Battle axe@bla@", 1092);
- } else {
- sendQuest("@whi@Battle axe@whi@", 1092);
- }
- if (playerLevel[13] < 94) {
- sendQuest("@bla@Warhammer@bla@", 1083);
- } else {
- sendQuest("@whi@Warhammer@whi@", 1083);
- }
- if (playerLevel[13] < 93) {
- sendQuest("@bla@Square shield@bla@", 1104);
- } else {
- sendQuest("@whi@Square shield@whi@", 1104);
- }
- if (playerLevel[13] < 92) {
- sendQuest("@bla@Full helm@bla@", 1103);
- sendQuest("@bla@Throwing knives@bla@", 1106);
- } else {
- sendQuest("@whi@Full helm@whi@", 1103);
- sendQuest("@whi@Throwing knives@whi@", 1106);
- }
- if (playerLevel[13] < 91) {
- sendQuest("@bla@Long sword@bla@", 1086);
- } else {
- sendQuest("@whi@Long sword@whi@", 1086);
- }
- if (playerLevel[13] < 90) {
- sendQuest("@bla@Scimitar@bla@", 1087);
- sendQuest("@bla@Arrowtips@bla@", 1108);
- } else {
- sendQuest("@whi@Scimitar@whi@", 1087);
- sendQuest("@whi@Arrowtips@whi@", 1108);
- }
- if (playerLevel[13] < 89) {
- sendQuest("@bla@Sword@bla@", 1085);
- sendQuest("@bla@Dart tips@bla@", 1107);
- sendQuest("@bla@Nails@bla@", 13358);
- } else {
- sendQuest("@whi@Sword@whi@", 1085);
- sendQuest("@whi@Dart tips@whi@", 1107);
- sendQuest("@whi@Nails@whi@", 13358);
- }
- if (playerLevel[13] < 88) {
- sendQuest("@bla@Medium helm@bla@", 1102);
- } else {
- sendQuest("@whi@Medium helm@whi@", 1102);
- }
- if (playerLevel[13] < 87) {
- sendQuest("@bla@Mace@bla@", 1093);
- } else {
- sendQuest("@whi@Mace@whi@", 1093);
- }
- if (playerLevel[13] < 86) {
- sendQuest("@bla@Axe@bla@", 1091);
- } else {
- sendQuest("@whi@Axe@whi@", 1091);
- }
- if (playerLevel[13] < 85) {
- sendQuest("@bla@Dagger@bla@", 1094);
- } else {
- sendQuest("@whi@Dagger@whi@", 1094);
- }
- addItemToSmith(1213, 0, 1119, 1);
- addItemToSmith(1359, 0, 1120, 1);
- addItemToSmith(1113, 0, 1121, 1);
- addItemToSmith(1147, 0, 1122, 1);
- addItemToSmith(824, 0, 1123, 10);
- addItemToSmith(1289, 1, 1119, 1);
- addItemToSmith(1432, 1, 1120, 1);
- addItemToSmith(1079, 1, 1121, 1);
- addItemToSmith(1163, 1, 1122, 1);
- addItemToSmith(44, 1, 1123, 15);
- addItemToSmith(1333, 2, 1119, 1);
- addItemToSmith(1347, 2, 1120, 1);
- addItemToSmith(1093, 2, 1121, 1);
- addItemToSmith(1185, 2, 1122, 1);
- addItemToSmith(868, 2, 1123, 5);
- addItemToSmith(1303, 3, 1119, 1);
- addItemToSmith(1373, 3, 1120, 1);
- addItemToSmith(1127, 3, 1121, 1);
- addItemToSmith(1201, 3, 1122, 1);
- sendQuest("", 1132);
- sendQuest("", 1096);
- addItemToSmith(1319, 4, 1119, 1);
- addItemToSmith(3101, 4, 1120, 1);
- addItemToSmith(4824, 4, 1122, 1);
- sendQuest("", 1135);
- sendQuest("", 1134);
- sendQuest("", 11461);
- sendQuest("", 11459);
- }
- }
- /* END OF SMITHING*/
- /* WOODCUTTING*/
- public boolean woodcutting() {
- int WCAxe = 0;
- if (IsCutting == true) {
- WCAxe = 1; // If Cutting -> Go trough loop, passby WCCheckAxe to prevent originalweapon loss, 1 to tell you got axe, no function left for WCAxe if cutting, so 1 is enough.
- } else {
- WCAxe = WCCheckAxe();
- }
- if (WCAxe > 0) {
- if (playerLevel[playerWoodcutting] >= woodcutting[1]) {
- if (freeSlots() > 0) {
- if (System.currentTimeMillis()-lastAction >= 1000 && IsCutting == false) {
- lastAction = System.currentTimeMillis();
- sendMessage("You swing your axe at the tree...");
- setAnimation(0x284);
- IsCutting = true;
- }
- if (System.currentTimeMillis()-lastAction >= woodcutting[0] && IsCutting == true) {
- lastAction = System.currentTimeMillis();
- addSkillXP((woodcutting[2]*woodcutting[3]*2), playerWoodcutting);
- if (freeSlots() > 0) {
- sendMessage("You get some logs.");
- addItem(woodcutting[4], 1);
- if (misc.random(1000) <= woodcutting[5]){
- addItem(5074, 1);
- sendMessage("You get a bird nest");
- }
- } else {
- playerEquipment[playerWeapon] = OriginalWeapon;
- OriginalWeapon = -1;
- resetAnimation();
- IsCutting = false;
- resetWC();
- }
- }
- } else {
- //createEnemyItem(woodcutting[4]);
- sendMessage("Not enough space in your inventory.");
- woodcutting[0] = -1;
- resetWC();
- return false;
- }
- } else {
- sendMessage("You need "+woodcutting[1]+" "+statName[playerWoodcutting]+" to cut those logs.");
- resetWC();
- return false;
- }
- } else {
- sendMessage("Equip your axe before cutting trees!");
- resetWC();
- return false;
- }
- return true;
- }
- public boolean resetWC() {
- woodcutting[0] = 0;
- woodcutting[1] = 0;
- woodcutting[2] = 0;
- woodcutting[4] = 0;
- woodcutting[5] = 2;
- skillX = -1;
- skillY = -1;
- IsCutting = false;
- IsUsingSkill = false;
- resetAnimation();
- return true;
- }
- public int WCCheckAxe() {
- int Hand;
- int Shield;
- int Bag;
- int Axe;
- Hand = playerEquipment[playerWeapon];
- Shield = playerEquipment[playerShield];
- Axe = 0;
- switch (Hand) {
- case 1351:
- // Bronze Axe
- Axe = 1;
- break;
- case 1349:
- // Iron Axe
- Axe = 2;
- break;
- case 1353:
- // Steel Axe
- Axe = 3;
- break;
- case 1361:
- // Black Axe
- Axe = 4;
- break;
- case 1355:
- // Mithril Axe
- Axe = 5;
- break;
- case 1357:
- // Adamant Axe
- Axe = 6;
- break;
- case 1359:
- // Rune Axe
- Axe = 7;
- break;
- /* case X: //Dragon Axe
- Axe = 8; break;*/
- }
- /*
- if (Axe > 0) {
- OriginalWeapon = Hand;
- OriginalShield = Shield;
- playerEquipment[playerShield] = -1;
- return Axe;
- }*/
- if (Axe > 0) {
- //OriginalWeapon = Hand;
- //OriginalShield = Shield;
- //playerEquipment[playerShield] = -1;
- //playerEquipment[playerWeapon] = Bag;
- }
- return Axe;
- }
- public boolean fromTrade(int itemID, int fromSlot, int amount) {
- if (System.currentTimeMillis()-lastButton > 800) {
- lastButton = System.currentTimeMillis();
- } else {
- return false;
- }
- try {
- client other = getClient(trade_reqId);
- if (!inTrade || ! validClient(trade_reqId) || ! canOffer) {
- declineTrade();
- return false;
- }
- if (!Item.itemStackable[itemID] && amount > 1) {
- for (int a = 1; a <= amount; a++) {
- int slot = findItem(itemID, playerItems, playerItemsN);
- if (slot >= 0) {
- fromTrade(itemID, 0, 1);
- }
- }
- }
- boolean found = false;
- for (GameItem item: offeredItems) {
- if (item.id == itemID) {
- if (!item.stackable) {
- offeredItems.remove(item);
- found = true;
- } else {
- if (item.amount > amount) {
- item.amount -= amount;
- found = true;
- } else {
- amount = item.amount;
- found = true;
- offeredItems.remove(item);
- }
- }
- break;
- }
- }
- if (found)
- addItem(itemID, amount);
- tradeConfirmed = false;
- other.tradeConfirmed = false;
- resetItems(3322);
- resetTItems(3415);
- other.resetOTItems(3416);
- sendFrame126("", 3431);
- other.sendFrame126("", 3431);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return true;
- }
- public boolean tradeItem(int itemID, int fromSlot, int amount) {
- if (System.currentTimeMillis()-lastButton > 800) {
- lastButton = System.currentTimeMillis();
- } else {
- return false;
- }
- if (!Item.itemStackable[itemID] && amount > 1) {
- for (int a = 1; a <= amount; a++) {
- int slot = findItem(itemID, playerItems, playerItemsN);
- if (slot >= 0) {
- tradeItem(itemID, slot, 1);
- }
- }
- }
- for (int i = 0; i < noTrade.length; i++) {
- if (itemID == noTrade[i] || itemID == noTrade[i]+1 || premiumItem(itemID)) {
- sendMessage("You can't trade that item");
- declineTrade();
- return false;
- }
- }
- client other = getClient(trade_reqId);
- if (!inTrade || ! validClient(trade_reqId) || ! canOffer) {
- declineTrade();
- return false;
- }
- if (!playerHasItem(itemID, amount)) {
- return false;
- }
- if (Item.itemStackable[itemID] || Item.itemIsNote[itemID]) {
- boolean inTrade = false;
- for (GameItem item: offeredItems) {
- if (item.id == itemID) {
- inTrade = true;
- item.amount += amount;
- break;
- }
- }
- if (!inTrade) {
- offeredItems.add(new GameItem(itemID, amount));
- }
- } else {
- offeredItems.add(new GameItem(itemID, 1));
- }
- deleteItem(itemID, fromSlot, amount);
- resetItems(3322);
- resetTItems(3415);
- other.resetOTItems(3416);
- sendFrame126("", 3431);
- other.sendFrame126("", 3431);
- return true;
- }
- /* Shops*/
- public boolean sellItem(int itemID, int fromSlot, int amount) {
- if (amount > 0 && itemID == (playerItems[fromSlot]-1)) {
- if (server.shopHandler.ShopSModifier[MyShopID] > 1) {
- boolean IsIn = false;
- for (int i = 0; i <= server.shopHandler.ShopItemsStandard[MyShopID]; i++) {
- if (itemID == (server.shopHandler.ShopItems[MyShopID][i]-1)) {
- IsIn = true;
- break;
- }
- }
- if (IsIn == false) {
- sendMessage("You cannot sell "+GetItemName(itemID)+" in this store.");
- return false;
- }
- }
- if (Item.itemSellable[(playerItems[fromSlot]-1)] == false) {
- sendMessage("I cannot sell "+GetItemName(itemID)+".");
- return false;
- }
- if (amount > playerItemsN[fromSlot] && (Item.itemIsNote[(playerItems[fromSlot]-1)] == true || Item.itemStackable[(playerItems[fromSlot]-1)] == true)) {
- amount = playerItemsN[fromSlot];
- } else if (amount > GetXItemsInBag(itemID) && Item.itemIsNote[(playerItems[fromSlot]-1)] == false && Item.itemStackable[(playerItems[fromSlot]-1)] == false) {
- amount = GetXItemsInBag(itemID);
- }
- double ShopValue;
- double TotPrice;
- int TotPrice2;
- int Overstock;
- for (int i = amount; i > 0; i--) {
- TotPrice2 = (int)Math.floor(GetItemShopValue(itemID, 1, fromSlot));
- if (freeSlots() >= 0 && playerHasItem(995) || freeSlots() > 0) {
- if (Item.itemIsNote[itemID] == false) {
- deleteItem(itemID, GetItemSlot(itemID), 1);
- } else {
- deleteItem(itemID, fromSlot, 1);
- }
- addItem(995, TotPrice2);
- addShopItem(itemID, 1);
- } else {
- sendMessage("Not enough space in your inventory.");
- break;
- }
- }
- resetItems(3823);
- resetShop(MyShopID);
- UpdatePlayerShop();
- return true;
- }
- return true;
- }
- public boolean buyItem(int itemID, int fromSlot, int amount) {
- if (amount > 0 && itemID == (server.shopHandler.ShopItems[MyShopID][fromSlot]-1)) {
- if (amount > server.shopHandler.ShopItemsN[MyShopID][fromSlot]) {
- amount = server.shopHandler.ShopItemsN[MyShopID][fromSlot];
- }
- double ShopValue;
- double TotPrice;
- int TotPrice2;
- int Overstock;
- int Slot = 0;
- if (!canUse(itemID)) {
- sendMessage("You must be a premium member to buy this item");
- sendMessage("Visit zernix.com to subscribe");
- return false;
- }
- for (int i = amount; i > 0; i--) {
- TotPrice2 = (int)Math.floor(GetItemShopValue(itemID, 0, fromSlot));
- Slot = GetItemSlot(995);
- if (Slot == -1) {
- sendMessage("You don't have enough coins.");
- break;
- }
- if (playerItemsN[Slot] >= TotPrice2) {
- if (freeSlots() > 0) {
- deleteItem(995, GetItemSlot(995), TotPrice2);
- addItem(itemID, 1);
- server.shopHandler.ShopItemsN[MyShopID][fromSlot] -= 1;
- server.shopHandler.ShopItemsDelay[MyShopID][fromSlot] = 0;
- if ((fromSlot+1) > server.shopHandler.ShopItemsStandard[MyShopID]) {
- server.shopHandler.ShopItems[MyShopID][fromSlot] = 0;
- }
- } else {
- sendMessage("Not enough space in your inventory.");
- break;
- }
- } else {
- sendMessage("You don't have enough coins.");
- break;
- }
- }
- resetItems(3823);
- resetShop(MyShopID);
- UpdatePlayerShop();
- return true;
- }
- return false;
- }
- public void UpdatePlayerShop() {
- for (int i = 1; i < PlayerHandler.maxPlayers; i++) {
- if (PlayerHandler.players[i] != null) {
- if (PlayerHandler.players[i].IsShopping == true && PlayerHandler.players[i].MyShopID == MyShopID && i != playerId) {
- PlayerHandler.players[i].UpdateShop = true;
- }
- }
- }
- }
- public boolean addShopItem(int itemID, int amount) {
- boolean Added = false;
- if (amount <= 0) {
- return false;
- }
- if (Item.itemIsNote[itemID] == true) {
- itemID = GetUnnotedItem(itemID);
- }
- for (int i = 0; i < server.shopHandler.ShopItems.length; i++) {
- if ((server.shopHandler.ShopItems[MyShopID][i]-1) == itemID) {
- server.shopHandler.ShopItemsN[MyShopID][i] += amount;
- Added = true;
- }
- }
- if (Added == false) {
- for (int i = 0; i < server.shopHandler.ShopItems.length; i++) {
- if (server.shopHandler.ShopItems[MyShopID][i] == 0) {
- server.shopHandler.ShopItems[MyShopID][i] = (itemID+1);
- server.shopHandler.ShopItemsN[MyShopID][i] = amount;
- server.shopHandler.ShopItemsDelay[MyShopID][i] = 0;
- break;
- }
- }
- }
- return true;
- }
- //options talk
- public void o2(boolean send, String option, String option1, String option2)
- {
- sendFrame171(1, 2465);
- sendFrame171(0, 2468);
- sendFrame126(option, 2460);
- sendFrame126(option1, 2461);
- sendFrame126(option2, 2462);
- sendFrame164(2459);
- NpcDialogueSend = send;
- }
- public void o3(boolean send, String option, String option1, String option2, String option3)
- {
- sendFrame171(1, 2476);
- sendFrame171(0, 2479);
- sendFrame126(option, 2470);
- sendFrame126(option1, 2471);
- sendFrame126(option2, 2472);
- sendFrame126(option3, 2473);
- sendFrame164(2469);
- NpcDialogueSend = send;
- }
- public void o4(boolean send, String option, String option1, String option2, String option3, String option4)
- {
- sendFrame171(1, 2488);
- sendFrame171(0, 2491);
- sendFrame126(option, 2481);
- sendFrame126(option1, 2481);
- sendFrame126(option2, 2482);
- sendFrame126(option3, 2483);
- sendFrame126(option4, 2484);
- sendFrame164(2480);
- NpcDialogueSend = send;
- }
- public void o5(boolean send, String option, String option1, String option2, String option3, String option4, String option5)
- {
- sendFrame171(1, 2501);
- sendFrame171(0, 2504);
- sendFrame126(option, 2493);
- sendFrame126(option1, 2494);
- sendFrame126(option2, 2495);
- sendFrame126(option3, 2496);
- sendFrame126(option4, 2497);
- sendFrame126(option5, 2498);
- sendFrame164(2492);
- NpcDialogueSend = send;
- }
- public void nt1(boolean send, int npc, int emote, String text)
- {
- sendFrame200(4883, emote);
- sendFrame126(GetNpcName(npc), 4884);
- sendFrame126(text, 4885);
- sendFrame126("Click here to continue", 4886);
- sendFrame75(npc, 4883);
- sendFrame164(4882);
- NpcDialogueSend = send;
- }
- public void nt2(boolean send, int npc, int emote, String text, String text2)
- {
- sendFrame200(4888, emote);
- sendFrame126(GetNpcName(npc), 4889);
- sendFrame126(text, 4890);
- sendFrame126(text2, 4891);
- sendFrame126("Click here to continue", 4892);
- sendFrame75(npc, 4888);
- sendFrame164(4887);
- NpcDialogueSend = send;
- }
- public void nt3(boolean send, int npc, int emote, String text, String text2, String text3)
- {
- sendFrame200(4894, emote);
- sendFrame126(GetNpcName(npc), 4895);
- sendFrame126(text, 4896);
- sendFrame126(text2, 4897);
- sendFrame126(text3, 4898);
- sendFrame126("Click here to continue", 4899);
- sendFrame75(npc, 4894);
- sendFrame164(4893);
- NpcDialogueSend = send;
- }
- public void nt4(boolean send, int npc, int emote, String text, String text2, String text3, String text4)
- {
- sendFrame200(4901, emote);
- sendFrame126(GetNpcName(npc), 4902);
- sendFrame126(text, 4903);
- sendFrame126(text2, 4904);
- sendFrame126(text3, 4905);
- sendFrame126(text4, 4906);
- sendFrame126("Click here to continue", 4907);
- sendFrame75(npc, 4901);
- sendFrame164(4900);
- NpcDialogueSend = send;
- }
- public void pt1(boolean send, int emote, String text)
- {
- sendFrame200(969, emote);
- sendFrame126(playerName, 970);
- sendFrame126(text, 971);
- sendFrame126("Click here to continue", 972);
- sendFrame185(969);
- sendFrame164(968);
- NpcDialogueSend = send;
- }
- public void pt2(boolean send, int emote, String text, String text2)
- {
- sendFrame200(974, emote);
- sendFrame126(playerName, 975);
- sendFrame126(text, 976);
- sendFrame126(text2, 977);
- sendFrame126("Click here to continue", 978);
- sendFrame185(974);
- sendFrame164(973);
- NpcDialogueSend = send;
- }
- public void pt3(boolean send, int emote, String text, String text2, String text3)
- {
- sendFrame200(980, emote);
- sendFrame126(playerName, 981);
- sendFrame126(text, 982);
- sendFrame126(text2, 983);
- sendFrame126(text3, 984);
- sendFrame126("Click here to continue", 985);
- sendFrame185(980);
- sendFrame164(979);
- NpcDialogueSend = send;
- }
- public void pt4(boolean send, int emote, String text, String text2, String text3, String text4)
- {
- sendFrame200(987, emote);
- sendFrame126(playerName, 988);
- sendFrame126(text, 989);
- sendFrame126(text2, 990);
- sendFrame126(text3, 991);
- sendFrame126(text4, 992);
- sendFrame126("Click here to continue", 993);
- sendFrame185(987);
- sendFrame164(986);
- NpcDialogueSend = send;
- }
- //end options talk
- /* NPC Talking*/
- public void UpdateNPCChat() {
- /* sendFrame126("", 4902);
- sendFrame126("", 4903);
- sendFrame126("", 4904);
- sendFrame126("", 4905);
- sendFrame126("", 4906);*/
- sendFrame126("", 976);
- switch (NpcDialogue) {
- case 3:
- nt1(true, 553, 600, "Do you want to buy some runes?");
- break;
- case 4:
- o2(true, "Want to see the shop?", "Yes please!", "No thank you!");
- break;
- case 5:
- pt1(true, 600, "Oh it's a rune shop. No thank you, then.");
- break;
- case 6:
- nt2(false, 553, 593, "Well, if you find somone who want some runes", "Could you please send them here.");
- break;
- case 7:
- nt2(true, 2, 597, "Well, if this was a banana,", "then I'm god.");
- break;
- case 8:
- pt1(true, 600, "Eh.. You dress stupid and I can see why now.");
- break;
- case 9:
- nt2(false, 2, 592, "Don't be mean!", "");
- break;
- case 10:
- nt1(true, 2291, 600, "Would you like to go to the Desert Mining Camp?");
- break;
- case 11:
- o2(true, "Want to fly to the Desert Camp?", "Yes please! (2500gp)", "No thank you!");
- break;
- case 12:
- pt1(true, 600, "Oh not right now thank-you. ");
- break;
- }
- }
- /* OBJECTS*/
- public int GetObject(int X, int Y, int ObjectID) {
- for (int i = 0; i < server.objectHandler.MaxObjects; i++) {
- if (server.objectHandler.ObjectID[i] > -1) {
- if (X == server.objectHandler.ObjectX[i] && Y == server.objectHandler.ObjectY[i]) {
- if (ObjectID != -1) {
- if (ObjectID == server.objectHandler.ObjectID[i]) {
- return i;
- }
- } else {
- return i;
- }
- }
- }
- }
- return -1;
- }
- public void ChangeDoor(int ArrayID) {
- int objectID = server.objectHandler.ObjectOriID[ArrayID];
- int objectX = server.objectHandler.ObjectX[ArrayID];
- int objectY = server.objectHandler.ObjectY[ArrayID];
- int Face = server.objectHandler.ObjectFace[ArrayID];
- int Type = server.objectHandler.ObjectType[ArrayID];
- ReplaceObject(objectX, objectY, -1, -1, 0);
- switch (Type) {
- case 1:
- ReplaceObject(objectX, (objectY+1), objectID, Face, 0);
- server.objectHandler.ObjectType[ArrayID] = 2;
- break;
- case 2:
- ReplaceObject(objectX, (objectY-1), objectID, Face, 0);
- server.objectHandler.ObjectType[ArrayID] = 1;
- break;
- case 3:
- ReplaceObject((objectX+1), objectY, objectID, Face, 0);
- server.objectHandler.ObjectType[ArrayID] = 4;
- break;
- case 4:
- ReplaceObject((objectX-1), objectY, objectID, Face, 0);
- server.objectHandler.ObjectType[ArrayID] = 3;
- break;
- }
- }
- /* ITEMS*/
- public int GetGroundItemID(int ItemID, int ItemX, int ItemY, int ItemH) {
- for (int i = 0; i < server.itemHandler.DropItemCount; i++) {
- if (server.itemHandler.DroppedItemsID[i] > -1) {
- if (server.itemHandler.DroppedItemsID[i] == ItemID && server.itemHandler.DroppedItemsX[i] == ItemX && server.itemHandler.DroppedItemsY[i] == ItemY && server.itemHandler.DroppedItemsH[i] == ItemH && server.itemHandler.DroppedItemsN[i] == 1) {
- return i;
- }
- }
- }
- return -1;
- }
- /* Equipment level checking*/
- public int GetCLAttack(int ItemID) {
- if (ItemID == -1) {
- return 1;
- }
- String ItemName = GetItemName(ItemID);
- String ItemName2 = ItemName.replaceAll("Bronze", "");
- ItemName2 = ItemName2.replaceAll("Iron", "");
- ItemName2 = ItemName2.replaceAll("Steel", "");
- ItemName2 = ItemName2.replaceAll("Black", "");
- ItemName2 = ItemName2.replaceAll("Mithril", "");
- ItemName2 = ItemName2.replaceAll("Adamant", "");
- ItemName2 = ItemName2.replaceAll("Rune", "");
- ItemName2 = ItemName2.replaceAll("Granite", "");
- ItemName2 = ItemName2.replaceAll("Dragon", "");
- ItemName2 = ItemName2.replaceAll("Crystal", "");
- ItemName2 = ItemName2.trim();
- if (ItemName2.startsWith("claws") || ItemName2.startsWith("dagger") || ItemName2.startsWith("sword") || ItemName2.startsWith("scimitar") || ItemName2.startsWith("mace") || ItemName2.startsWith("longsword") || ItemName2.startsWith("battleaxe") || ItemName2.startsWith("warhammer") || ItemName2.startsWith("2h sword") || ItemName2.startsWith("harlberd")) {
- if (ItemName.startsWith("Bronze")) {
- return 1;
- } else if (ItemName.startsWith("Iron")) {
- return 1;
- } else if (ItemName.startsWith("Steel")) {
- return 1;
- } else if (ItemName.startsWith("Black")) {
- return 10;
- } else if (ItemName.startsWith("Mithril")) {
- return 20;
- } else if (ItemName.startsWith("Adamant")) {
- return 30;
- } else if (ItemName.startsWith("Rune")) {
- return 40;
- } else if (ItemName.startsWith("Dragon")) {
- return 60;
- }
- } else if (ItemName.startsWith("Granite")) {
- return 80;
- } else if (ItemName.endsWith("whip") || ItemName.endsWith("Ahrims staff") || ItemName.endsWith("Torags hammers") || ItemName.endsWith("Veracs flail") || ItemName.endsWith("Guthans warspear") || ItemName.endsWith("Dharoks greataxe")) {
- return 1;
- }
- return 1;
- }
- public int GetCLDefence(int ItemID) {
- if (ItemID == -1) {
- return 1;
- }
- String ItemName = GetItemName(ItemID);
- String ItemName2 = ItemName.replaceAll("Bronze", "");
- ItemName2 = ItemName2.replaceAll("Iron", "");
- ItemName2 = ItemName2.replaceAll("Steel", "");
- ItemName2 = ItemName2.replaceAll("Black", "");
- ItemName2 = ItemName2.replaceAll("Mithril", "");
- ItemName2 = ItemName2.replaceAll("Adamant", "");
- ItemName2 = ItemName2.replaceAll("Rune", "");
- ItemName2 = ItemName2.replaceAll("Granite", "");
- ItemName2 = ItemName2.replaceAll("Dragon", "");
- ItemName2 = ItemName2.replaceAll("Crystal", "");
- ItemName2 = ItemName2.trim();
- if (ItemName2.startsWith("claws") || ItemName2.startsWith("dagger") || ItemName2.startsWith("sword") || ItemName2.startsWith("scimitar") || ItemName2.startsWith("mace") || ItemName2.startsWith("longsword") || ItemName2.startsWith("battleaxe") || ItemName2.startsWith("warhammer") || ItemName2.startsWith("2h sword") || ItemName2.startsWith("harlberd")) {
- // It's a weapon, weapons don't required defence !
- } else if (ItemName.startsWith("Ahrims") || ItemName.startsWith("Karil") || ItemName.startsWith("Torag") || ItemName.startsWith("Verac") || ItemName.endsWith("Guthan") || ItemName.endsWith("Dharok")) {
- if (ItemName.endsWith("staff") || ItemName.endsWith("crossbow") || ItemName.endsWith("hammers") || ItemName.endsWith("flail") || ItemName.endsWith("warspear") || ItemName.endsWith("greataxe")) {
- // No defence for the barrow weapons
- } else {
- return 1;
- }
- } else {
- if (ItemName.startsWith("Bronze")) {
- return 1;
- } else if (ItemName.startsWith("Iron")) {
- return 1;
- } else if (ItemName.startsWith("Steel")) {
- return 1;
- } else if (ItemName.startsWith("Black")) {
- return 1;
- } else if (ItemName.startsWith("Mithril")) {
- return 1;
- } else if (ItemName.startsWith("Adamant")) {
- return 1;
- } else if (ItemName.startsWith("Rune")) {
- return 1;
- } else if (ItemName.startsWith("Dragon")) {
- return 1;
- }
- }
- return 1;
- }
- public int GetCLStrength(int ItemID) {
- if (ItemID == -1) {
- return 1;
- }
- String ItemName = GetItemName(ItemID);
- if (ItemName.startsWith("Granite")) {
- return 80;
- } else if (ItemName.startsWith("Torags hammers") || ItemName.endsWith("Dharoks greataxe")) {
- return 1;
- }
- return 1;
- }
- public int GetCLMagic(int ItemID) {
- if (ItemID == -1) {
- return 1;
- }
- String ItemName = GetItemName(ItemID);
- if (ItemName.startsWith("Ahrim")) {
- return 1;
- }
- return 1;
- }
- public int GetCLRanged(int ItemID) {
- if (ItemID == -1) {
- return 1;
- }
- String ItemName = GetItemName(ItemID);
- if (ItemName.startsWith("Karil")) {
- return 1;
- }
- return 1;
- }
- public int GetWorld(int PlayerID) {
- String Server = PlayerHandler.players[PlayerID].playerServer;
- if (Server.equals("rs2.servegame.org") || Server.equals("localhost")) {
- return 1;
- } else if (Server.equals("dodian.com")) {
- return 2;
- } else {
- println_debug("Invalid Server: "+Server);
- return 1; //0; friendlist fix-bakatool
- }
- }
- public void killedPlayer(String name, int combat) {
- int diff = Math.abs(combatLevel-combat);
- String diffString = "";
- if (combatLevel > combat) {
- diffString = "-"+diff;
- } else {
- diffString = "+"+diff;
- }
- sendMessage("You have defeated "+name+"("+diffString+")"+"!");
- if (diff > 7 && combat > combatLevel) {
- sendMessage("You gain double experience!");
- addSkillXP(20000, 18);
- }
- if (diff <= 7 && diff >= 0) {
- sendMessage("You gain regular experience");
- addSkillXP(10000, 18);
- }
- if (diff > 7 && combatLevel > combat) {
- sendMessage("You gain half experience");
- addSkillXP(5000, 18);
- }
- }
- public int freeSpace(int itemid, boolean stackable) {
- for (int i = 0; i < playerItems.length; i++) {
- if (playerItems[i] == itemid && stackable) {
- return i;
- }
- if (playerItems[i] == -1 || playerItems[i] == 0) {
- return i;
- }
- }
- return -1;
- }
- public void setInterfaceWalkable(int ID) {
- outStream.createFrame(208);
- outStream.writeWordBigEndian_dup(ID);
- flushOutStream();
- }
- public void RefreshDuelRules() {
- for (int i = 0; i < duelLine.length; i++) {
- if (duelRule[i]) {
- sendQuest("@red@"+duelNames[i], duelLine[i]);
- } else {
- sendQuest("@cya@"+duelNames[i], duelLine[i]);
- }
- }
- }
- public void LogDuel(String otherName) {
- for (int i = 0; i < otherDuelItems.length; i++) {
- BufferedWriter bw = null;
- try {
- bw = new BufferedWriter(new FileWriter("logs/duels.txt", true));
- bw.write(playerName+" wins item: "+(otherDuelItems[i]-1)+" amount: "+otherDuelItemsN[i]+" from "+otherName);
- bw.newLine();
- bw.flush();
- } catch (IOException ioe) {
- ioe.printStackTrace();
- } finally {
- if (bw != null)
- try {
- bw.close();
- } catch (IOException ioe2) {
- sendMessage("Error logging duel!");
- }
- }
- }
- }
- public void DuelVictory() {
- client other = getClient(duel_with);
- if (validClient(duel_with)) {
- sendMessage("You have defeated "+other.playerName+"!");
- sendQuest(""+other.combat, 6839);
- sendQuest(other.playerName, 6840);
- wonDuel = true;
- }
- boolean stake = false;
- for (GameItem item: offeredItems) {
- if (item.id > 0 && item.amount > 0) {
- stake = true;
- }
- }
- for (GameItem item: otherOfferedItems) {
- if (item.id > 0 && item.amount > 0) {
- stake = true;
- }
- }
- if (stake) {
- itemsToVScreen_old();
- other.resetDuel();
- showInterface(6733);
- } else {
- resetDuel();
- other.resetDuel();
- // duelStatus = -1;
- }
- }
- public boolean DeclineDuel() {
- declineDuel();
- return true;
- }
- public void RemoveAllDuelItems() {
- for (int i = 0; i < duelItems.length; i++) {
- if (duelItems[i] > 0) {
- fromDuel((duelItems[i]-1), i, duelItemsN[i]);
- }
- }
- }
- public int GetDuelItemSlots() {
- int Slots = 0;
- for (int i = 0; i < duelItems.length; i++) {
- if (duelItems[i] > 0) {
- Slots++;
- }
- }
- for (int i = 0; i < otherDuelItems.length; i++) {
- if (otherDuelItems[i] > 0) {
- Slots++;
- }
- }
- return Slots;
- }
- public void itemsToVScreen_old() {
- outStream.createFrameVarSizeWord(53);
- outStream.writeWord(6822);
- outStream.writeWord(otherOfferedItems.toArray().length);
- for (GameItem item: otherOfferedItems) {
- if (item.amount > 254) {
- outStream.writeByte(255); // item's stack count. if over 254, write byte 255
- outStream.writeDWord_v2(item.amount); // and then the real value with writeDWord_v2
- } else {
- outStream.writeByte(item.amount);
- }
- if (item.id > 20000 || item.id < 0) {
- item.id = 20000;
- }
- outStream.writeWordBigEndianA(item.id+1); //item id
- }
- outStream.endFrameVarSizeWord();
- }
- public void itemsToVScreen(int x, int y) {
- Player p = handler.players[duelWith];
- if (p != null && p.playerId == playerId)
- return;
- for (int i = 0; i < otherDuelItems.length; i++) {
- if (otherDuelItems[i] > 0 && otherDuelItemsN[i] > 0) {
- if (Item.itemStackable[otherDuelItems[i]-1]) {
- ItemHandler.addItem(otherDuelItems[i]-1, enemyX, enemyY, otherDuelItemsN[i], playerId, false);
- } else {
- int amount = otherDuelItemsN[i];
- for (int a = 1; a <= amount; a++) {
- ItemHandler.addItem(otherDuelItems[i]-1, enemyX, enemyY, 1, playerId, false);
- }
- }
- }
- }
- for (int i1 = 0; i1 < duelItems.length; i1++) {
- if (duelItems[i] > 0 && duelItemsN[i] > 0)
- addItem(duelItems[i1]-1, duelItemsN[i1]);
- }
- //resetDuel();
- }
- public void refreshDuelScreen() {
- client other = getClient(duel_with);
- if (!validClient(duel_with))
- return;
- outStream.createFrameVarSizeWord(53);
- outStream.writeWord(6669);
- outStream.writeWord(offeredItems.toArray().length);
- int current = 0;
- for (GameItem item: offeredItems) {
- if (item.amount > 254) {
- outStream.writeByte(255); // item's stack count. if over 254, write byte 255
- outStream.writeDWord_v2(item.amount); // and then the real value with writeDWord_v2
- } else {
- outStream.writeByte(item.amount);
- }
- if (item.id > 20000 || item.id < 0) {
- item.id = 20000;
- }
- outStream.writeWordBigEndianA(item.id+1); //item id
- current++;
- }
- if (current < 27) {
- for (int i = current; i < 28; i++) {
- outStream.writeByte(1);
- outStream.writeWordBigEndianA(-1);
- }
- }
- outStream.endFrameVarSizeWord();
- outStream.createFrameVarSizeWord(53);
- outStream.writeWord(6670);
- outStream.writeWord(other.offeredItems.toArray().length);
- current = 0;
- for (GameItem item: other.offeredItems) {
- if (item.amount > 254) {
- outStream.writeByte(255); // item's stack count. if over 254, write byte 255
- outStream.writeDWord_v2(item.amount); // and then the real value with writeDWord_v2
- } else {
- outStream.writeByte(item.amount);
- }
- if (item.id > 20000 || item.id < 0) {
- item.id = 20000;
- }
- outStream.writeWordBigEndianA(item.id+1); //item id
- current++;
- }
- if (current < 27) {
- for (int i = current; i < 28; i++) {
- outStream.writeByte(1);
- outStream.writeWordBigEndianA(-1);
- }
- }
- outStream.endFrameVarSizeWord();
- }
- public boolean stakeItem(int itemID, int fromSlot, int amount) {
- if (playerRights == 0 || playerRights <= 1) {
- if (System.currentTimeMillis() - lastButton < 2000) {
- return false;
- }
- }
- lastButton = System.currentTimeMillis();
- if (!Item.itemStackable[itemID] && !Item.itemIsNote[itemID]
- && (amount > 1)) {
- for (int a = 1; a <= amount; a++) {
- int slot = findItem(itemID, playerItems, playerItemsN);
- if (slot >= 0) {
- stakeItem(itemID, slot, 1);
- }
- }
- }
- for (int element : noTrade) {
- if ((itemID == element) || (itemID == element + 1)) {
- sendMessage("You can't trade that item");
- // declineDuel();
- return false;
- }
- }
- client other = getClient(duel_with);
- if (!inDuel || !validClient(duel_with)) {
- declineDuel();
- return false;
- }
- if (!canOffer) {
- return false;
- }
- if (!playerHasItem(itemID, amount)) {
- return false;
- }
- if (Item.itemStackable[itemID] || Item.itemIsNote[itemID]) {
- boolean inTrade = false;
- for (GameItem item : offeredItems) {
- if (item.id == itemID) {
- inTrade = true;
- item.amount += amount;
- break;
- }
- }
- if (!inTrade) {
- offeredItems.add(new GameItem(itemID, amount));
- }
- } else {
- offeredItems.add(new GameItem(itemID, 1));
- }
- deleteItem(itemID, fromSlot, amount);
- resetItems(3214);
- resetItems(3322);
- other.resetItems(3214);
- other.resetItems(3322);
- refreshDuelScreen();
- other.refreshDuelScreen();
- sendFrame126("", 6684);
- other.sendFrame126("", 6684);
- return true;
- }
- /*public boolean stakeItem2(int itemID, int fromSlot, int amount) {
- if(!Item.itemStackable[itemID] && amount > 1){
- for(int a = 1; a <= amount; a++){
- int slot = findItem(itemID, playerItems, playerItemsN);
- if(slot >= 0){
- tradeItem(itemID, slot, 1);
- }
- }
- }
- for(int i = 0; i < noTrade.length; i++){
- if(itemID == noTrade[i] || itemID == noTrade[i] + 1 || premiumItem(itemID)){
- sendMessage("You can't trade that item");
- declineTrade();
- return false;
- }
- }
- client other = getClient(duel_with);
- if (!inDuel || !validClient(duel_with) || !canOffer){
- declineDuel();
- return false;
- }
- if(!playerHasItem(itemID, amount)){
- return false;
- }
- if(Item.itemStackable[itemID])
- offeredItems.add(new GameItem(itemID, amount));
- else
- offeredItems.add(new GameItem(itemID, 1));
- deleteItem(itemID, fromSlot, amount);
- resetItems(3214);
- duelz.resetItems(3214);
- resetItems(3322);
- refreshDuelScreen();
- duelz.resetItems(3322);
- duelz.refreshDuelScreen();
- duelz.sendFrame126("", 6684);
- return false;
- }*/
- public boolean fromDuel(int itemID, int fromSlot, int amount) {
- if (System.currentTimeMillis()-lastButton < 800) {
- return false;
- }
- lastButton = System.currentTimeMillis();
- client other = getClient(duel_with);
- if (!inDuel || ! validClient(duel_with) || ! canOffer) {
- declineDuel();
- return false;
- }
- if (!Item.itemStackable[itemID] && amount > 1) {
- for (int a = 1; a <= amount; a++) {
- int slot = findItem(itemID, playerItems, playerItemsN);
- if (slot >= 0) {
- fromDuel(itemID, 0, 1);
- }
- }
- }
- boolean found = false;
- for (GameItem item: offeredItems) {
- if (item.id == itemID) {
- if (!item.stackable) {
- offeredItems.remove(item);
- found = true;
- } else {
- if (item.amount > amount) {
- item.amount -= amount;
- found = true;
- } else {
- amount = item.amount;
- found = true;
- offeredItems.remove(item);
- }
- }
- break;
- }
- }
- if (found)
- addItem(itemID, amount);
- duelConfirmed = false;
- other.duelConfirmed = false;
- resetItems(3214);
- other.resetItems(3214);
- resetItems(3322);
- other.resetItems(3322);
- refreshDuelScreen();
- other.refreshDuelScreen();
- other.sendFrame126("", 6684);
- return true;
- }
- public void frame1() {
- // cancels all player and npc emotes within area!
- outStream.createFrame(1);
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- public void resetKeepItem() {
- }
- public int randomItem(int[]array) {
- int len = array.length;
- int ran = misc.random(len);
- return array[ran];
- }
- public void walkTo_old(int X, int Y) {
- int firstStepX = inStream.readSignedWordBigEndianA();
- int tmpFSX = X;
- X -= mapRegionX*8;
- for (i = 1; i < newWalkCmdSteps; i++) {
- newWalkCmdX[i] = inStream.readSignedByte();
- newWalkCmdY[i] = inStream.readSignedByte();
- tmpNWCX[i] = newWalkCmdX[i];
- tmpNWCY[i] = newWalkCmdY[i];
- }
- newWalkCmdX[0] = newWalkCmdY[0] = tmpNWCX[0] = tmpNWCY[0] = 0;
- int firstStepY = inStream.readSignedWordBigEndian();
- int tmpFSY = Y;
- Y -= mapRegionY*8;
- newWalkCmdIsRunning = inStream.readSignedByteC() == 1;
- for (i = 0; i < newWalkCmdSteps; i++) {
- newWalkCmdX[i] += X;
- newWalkCmdY[i] += Y;
- }
- println_debug("Walking to X:"+X+" Y:"+Y);
- }
- public void walkTo(int x, int y) {
- newWalkCmdX[1] += x;
- newWalkCmdY[1] += y;
- tmpNWCX[1] = newWalkCmdX[i];
- tmpNWCY[1] = newWalkCmdY[i];
- newWalkCmdIsRunning = true;
- }
- public int[]getLook() {
- return new int[] {
- pGender, pHead, pBeard, pTorso, pArms, pHands, pLegs, pFeet, pHairC, pTorsoC, pLegsC, pFeetC, pSkinC, playerLook[0], playerLook[1], playerLook[2], playerLook[3], playerLook[4], playerLook[5]
- };
- }
- public void setLook(int[]parts) {
- if (parts.length != 19) {
- println("setLook: Invalid array length!");
- return;
- }
- pGender = parts[0];
- pHead = parts[1];
- pBeard = parts[2];
- pTorso = parts[3];
- pArms = parts[4];
- pHands = parts[5];
- pLegs = parts[6];
- pFeet = parts[7];
- pHairC = parts[8];
- pTorsoC = parts[9];
- pLegsC = parts[10];
- pFeetC = parts[11];
- pSkinC = parts[12];
- playerLook[0] = parts[13];
- playerLook[1] = parts[14];
- playerLook[2] = parts[15];
- playerLook[3] = parts[16];
- playerLook[4] = parts[17];
- playerLook[5] = parts[18];
- apset = true;
- appearanceUpdateRequired = true;
- lookUpdate = true;
- updateRequired = true;
- }
- public int maxRangeHit() {
- int hit = (int)((playerBonus[4]+playerLevel[playerRanged])/12);
- return hit;
- }
- public void buryItem(int item, int slot) {
- if (duelRule[7] && inDuel && duelFight) {
- sendMessage("Food has been disabled for this duel");
- return;
- }
- boolean used = true;
- if (playerHasItem(item)) {
- int[] grimherb = {199,201,203,205,207,209,211,213,215,217,219};
- int[] grimxp = {10,20,30,40,50,60,70,80,90,100,110};
- int[] herblv = {1,15,25,35,45,55,65,75,80,85,90};
- for(int grim = 0; grim < grimherb.length; grim++) {
- if(item == grimherb[grim]) {
- if(playerLevel[playerHerblore] >= herblv[grim]) {
- if(freeSlots() > 0) {
- addItem(grimherb[grim]+50,1);
- deleteItem(grimherb[grim], 1);
- addSkillXP(grimxp[grim], playerHerblore);
- } else {
- ItemHandler.addItem(grimherb[grim]+50, absX, absY, 1, playerId, false);
- sendMessage("Your herb landed on the ground!");
- deleteItem(grimherb[grim], 1);
- addSkillXP(grimxp[grim], playerHerblore);
- }
- } else {
- sendMessage("You need level "+herblv[grim]+" herblore to identify this herb!");
- }
- }
- }
- switch (item) {
- case 526:
- prayerMessage(70);
- break;
- case 532:
- prayerMessage(115);
- break;
- case 3125:
- prayerMessage(300);
- break;
- case 536:
- prayerMessage(450);
- break;
- case 4834:
- prayerMessage(800);
- break;
- case 315:
- setAnimation(0x33D);
- animationReset = System.currentTimeMillis()+750;
- currentHealth += 5;
- if (currentHealth > playerLevel[playerHitpoints])
- currentHealth = playerLevel[playerHitpoints];
- sendMessage("You eat the Shrimps");
- break;
- case 361:
- setAnimation(0x33D);
- animationReset = System.currentTimeMillis()+750;
- currentHealth += 8;
- if (currentHealth > playerLevel[playerHitpoints])
- currentHealth = playerLevel[playerHitpoints];
- sendMessage("You eat the Tuna");
- break;
- case 379:
- setAnimation(0x33D);
- animationReset = System.currentTimeMillis()+750;
- currentHealth += 12;
- if (currentHealth > playerLevel[playerHitpoints])
- currentHealth = playerLevel[playerHitpoints];
- sendMessage("You eat the Lobster");
- break;
- case 373:
- setAnimation(0x33D);
- animationReset = System.currentTimeMillis()+750;
- currentHealth += 16;
- if (currentHealth > playerLevel[playerHitpoints])
- currentHealth = playerLevel[playerHitpoints];
- sendMessage("You eat the Swordfish");
- break;
- case 385:
- setAnimation(0x33D);
- animationReset = System.currentTimeMillis()+750;
- currentHealth += 20;
- if (currentHealth > playerLevel[playerHitpoints])
- currentHealth = playerLevel[playerHitpoints];
- sendMessage("You eat the Shark");
- break;
- default: used = true;
- break;
- case 5074:
- deleteItem(5074, 1);
- addItem(1635, 1);
- break;
- }
- }
- if (used)
- if(item != 4155) {
- deleteItem(item, slot, 1);
- }
- }
- public void prayerMessage(int exp) {
- setAnimation(827);
- animationReset = System.currentTimeMillis()+1000;
- addSkillXP(exp, 5);
- sendMessage("You bury the bones");
- }
- public void updateRating() {
- sendQuest("Pk: "+rating, 3985);
- }
- public void resetPos() {
- teleportToX = 2606;
- teleportToY = 3102;
- sendMessage("You have been teleported back to Yanille");
- }
- public void addClick(int ms) {
- println("adding click "+ms+" (clickindex = "+clickIndex+" )");
- if (clickIndex <= clicks.length-1) {
- clicks[clickIndex] = ms;
- clickIndex++;
- } else {
- int[]precision = new int[50];
- int average = average(clicks);
- for (int i = 0; i < precision.length; i++) {
- precision[i] = Math.abs(clicks[i]-average);
- println("precision["+i+"]="+precision[i]);
- }
- resetArray(clicks);
- clickIndex = 0;
- }
- }
- public int average(int[]array) {
- int total = 0;
- for (int i = 0; i < array.length; i++) {
- total += array[i];
- }
- int average = (int)(total/array.length);
- println("total="+total+", average="+average);
- return average;
- }
- public void resetArray(int[]array) {
- for (int i = 0; i < array.length; i++) {
- array[i] = 0;
- }
- }
- public boolean canUse(int id) {
- if (!premium && premiumItem(id)) {
- return false;
- }
- return true;
- }
- public boolean premiumItem(int id) {
- if (id >= 2583 && id <= 2630 || id == 1037 || id == 1419 || id == 4676) {
- return true;
- }
- return false;
- }
- public void debug(String text) {
- if (debug)
- sendMessage(text);
- }
- public void triggerRandom() {
- if (!randomed) {
- random_skill = misc.random(statName.length)-1;
- if (random_skill < 0)
- random_skill = 0;
- sendQuest("Click the @or1@"+statName[random_skill]+" @yel@button", 2810);
- sendQuest("", 2811);
- sendQuest("", 2831);
- randomed = true;
- showInterface(2808);
- }
- }
- public int findItem(int id, int[]items, int[]amounts) {
- for (int i = 0; i < playerItems.length; i++) {
- if ((items[i]-1) == id && amounts[i] > 0) {
- return i;
- }
- }
- return -1;
- }
- public boolean hasSpace() {
- for (int i = 0; i < playerItems.length; i++) {
- if (playerItems[i] == -1 || playerItems[i] == 0) {
- return true;
- }
- }
- return false;
- }
- public void smelt(int id) {
- setAnimation(0x383);
- smelt_id = id;
- smelting = true;
- int smelt_barId = -1;
- ArrayList < Integer > removed = new ArrayList < Integer > ();
- if (smeltCount < 1) {
- resetAction(true);
- return;
- }
- smeltCount--;
- switch (id) {
- case 2349:
- //bronze
- if (playerHasItem(436) && playerHasItem(438)) {
- smelt_barId = 2349;
- removed.add(436);
- removed.add(438);
- }
- break;
- case 2351:
- //iron ore
- if (playerHasItem(440)) {
- int ran = misc.random(3);
- if (ran == 1 || ran == 2) {
- smelt_barId = 2351;
- removed.add(440);
- }
- else {
- smelt_barId = 0;
- removed.add(440);
- sendMessage("You fail to refine the iron");
- }
- }
- break;
- case 2353:
- if (playerHasItem(440) && playerHasItem(453, 2)) {
- smelt_barId = 2353;
- removed.add(440);
- removed.add(453);
- removed.add(453);
- }
- break;
- case 2359:
- if (playerHasItem(447) && playerHasItem(453, 3)) {
- smelt_barId = 2359;
- removed.add(447);
- removed.add(453);
- removed.add(453);
- removed.add(453);
- }
- break;
- case 2361:
- if (playerHasItem(449) && playerHasItem(453, 4)) {
- smelt_barId = 2361;
- removed.add(449);
- removed.add(453);
- removed.add(453);
- removed.add(453);
- removed.add(453);
- }
- break;
- }
- if (smelt_barId == -1) {
- resetAction();
- return;
- }
- if (true) {
- for (Integer intId: removed) {
- int removeId = intId.intValue();
- deleteItem(removeId, 1);
- }
- if (smelt_barId > 0)
- addItem(smelt_barId, 1);
- } else {
- sendMessage("Your inventory is full!");
- resetAction();
- }
- }
- public void startfishing(int obj) {
- int[] object = {316, 312, 312, 1177, 1176};
- int[][] fish = {{317,1,303,-1,70,621,55}, {359,35,311,-1,55,618,135}, {377,40,301,-1,50,619,180}, {371,50,311,-1,42,618,240}, {383,76,311,-1,35,618,460}};//{fish,fish level,fish item req,fish item req 2,fish fails,fish emote,fishxp}
- long[] fishitime = {6000, 10000, 14000, 18000, 26000};
- String[] fishtext = {"Shrimp", "Tuna", "Lobster", "Swordfish", "Shark"};
- for(int i = 0; i < object.length; i++) {
- if(obj == object[i]) {
- if (playerLevel[playerFishing] >= fish[i][1]) {
- if(playerHasItem(fish[i][2])) {
- if(freeSlots() > 0) {
- if(misc.random(100) <= (fish[i][4])+(playerLevel[playerFishing]/2)) {
- addItem(fish[i][0], 1);
- pEmote = fish[i][5];
- fishing = true;
- addSkillXP(fish[i][6], playerFishing);
- fishspeed = (fishitime[i]);
- sendMessage("You catch a "+fishtext[i]+"");
- fishId = obj;
- } else {
- fishing = true;
- fishspeed = (fishitime[i]);
- pEmote = fish[i][5];
- if(playerRights > 2) {
- sendMessage("You fail to catch a "+fishtext[i]+"");
- }
- }
- } else {
- sendMessage("No space to catch the fish");
- fishId = -1;
- fishing = false;
- resetAnimation();
- }
- } else {
- sendMessage("You need a "+GetItemName(fish[i][2])+" to fish here!");
- fishId = -1;
- }
- } else {
- sendMessage("You need to have level "+fish[i][1]+" fishing to fish here!");
- fishId = -1;
- }}}}
- public void resetAction(boolean full) {
- smelting = false;
- smelt_id = -1;
- shafting = false;
- spinning = false;
- crafting = false;
- fishing = false;
- if (fletching) {
- //playerEquipment[playerWeapon] = originalW;
- //playerEquipment[playerWeapon] = originalS;
- updateRequired = true;
- appearanceUpdateRequired = true;
- }
- fletching = false;
- if (full)
- resetAnimation();
- }
- public void resetAction() {
- resetAction(true);
- }
- public void shaft() {
- closeInterface();
- if (playerHasItem(1511)) {
- if (playerHasItem(-1)) {
- deleteItem(1511, 1);
- addItem(52, 15);
- addSkillXP(30, playerFletching);
- } else {
- sendMessage("Your inventory is full!");
- resetAction();
- }
- } else {
- resetAction();
- }
- }
- public void fletchBow(boolean shortBow, int amount) {
- closeInterface();
- if (shortBow) {
- if (playerLevel[playerFletching] >= shortreq[fletchLog]) {
- fletchId = shortbows[fletchLog];
- fletchExp = shortexp[fletchLog];
- } else {
- sendMessage("Requires fletching "+shortreq[fletchLog]+"!");
- resetAction();
- }
- } else {
- if (playerLevel[playerFletching] >= longreq[fletchLog]) {
- fletchId = longbows[fletchLog];
- fletchExp = longexp[fletchLog];
- } else {
- sendMessage("Requires fletching "+longreq[fletchLog]+"!");
- resetAction();
- }
- }
- fletching = true;
- fletchAmount = amount;
- }
- public void fletchBow() {
- if (fletchAmount < 1) {
- resetAction();
- return;
- }
- fletchAmount--;
- closeInterface();
- IsBanking = false;
- pEmote = 885;
- updateRequired = true;
- appearanceUpdateRequired = true;
- if(playerLevel[playerFletching] >= longreq[fletchLog]) {
- if (playerHasItem(logs[fletchLog])) {
- deleteItem(logs[fletchLog], 1);
- addItem(fletchId, 1);
- addSkillXP(fletchExp, playerFletching);
- }
- } else {
- resetAction();
- }
- }
- public void spinflax() {
- if (playerHasItem(1779)) {
- deleteItem(1779, 1);
- addItem(1777, 1);
- lastAction = System.currentTimeMillis();
- addSkillXP(115, playerCrafting);
- spinflax();
- } else {
- resetAction(true);
- }
- }
- public void spinwool() {
- if (playerHasItem(1737)) {
- deleteItem(1737, 1);
- addItem(1759, 1);
- lastAction = System.currentTimeMillis();
- addSkillXP(55, playerCrafting);
- spinwool();
- } else {
- resetAction(true);
- }
- }
- public void openTan() {
- sendQuest("Regular Leather", 14777);
- sendQuest("50gp", 14785);
- sendQuest("Hard Leather", 14781);
- sendQuest("100gp", 14789);
- sendQuest("", 14778);
- sendQuest("", 14786);
- sendQuest("", 14782);
- sendQuest("", 14790);
- int[]soon = {
- 14779, 14787, 14783, 14791, 14780, 14788, 14784, 14792
- };
- String[]dhide = {
- "Green", "Red", "Blue", "Black"
- };
- String[]cost = {
- "1,000gp", "5,000gp", "2,000gp", "10,000gp"
- };
- int type = 0, i2 = 0;
- for (int i = 0; i < soon.length; i++) {
- if (type == 0) {
- sendQuest(dhide[(int)(i/2)], soon[i]);
- type = 1;
- } else {
- sendQuest(cost[(int)(i/2)], soon[i]);
- type = 0;
- }
- }
- sendFrame246(14769, 250, 1741);
- sendFrame246(14773, 250, 1743);
- sendFrame246(14771, 250, 1753);
- sendFrame246(14772, 250, 1751);
- sendFrame246(14775, 250, 1749);
- sendFrame246(14776, 250, 1747);
- showInterface(14670);
- }
- public void startTan(int amount, int type) {
- int done = 0;
- int[]hide = {
- 1739, 1739, 1753, 1751, 1749, 1747
- };
- int[]leather = {
- 1741, 1743, 1745, 2505, 2507, 2509
- };
- int[]charge = {
- 50, 100, 1000, 2000, 5000, 10000
- };
- while (done < amount && playerHasItem(hide[type]) && playerHasItem(995, charge[type])) {
- deleteItem(hide[type], 1);
- deleteItem(995, charge[type]);
- addItem(leather[type], 1);
- done++;
- }
- int total = done*charge[type];
- /*dMsg = "That's " + total + "gp for " + done + " hides";
- NpcWanneTalk = 10;
- skillX = absX;
- skillY = absY;
- NpcTalkTo = 804;*/
- }
- public void startCraft(int actionbutton) {
- closeInterface();
- int[]buttons = {
- 33187, 33186, 33185, 33190, 33189, 33188, 33193, 33192, 33191, 33196, 33195, 33194, 33199, 33198, 33197, 33202, 33201, 33200, 33205, 33204, 33203
- };
- int[]amounts = {
- 1, 5, 10, 1, 5, 10, 1, 5, 10, 1, 5, 10, 1, 5, 10, 1, 5, 10, 1, 5, 10
- };
- int[]ids = {
- 1129, 1129, 1129, 1059, 1059, 1059, 1061, 1061, 1061, 1063, 1063, 1063, 1095, 1095, 1095, 1169, 1169, 1169, 1167, 1167, 1167
- };
- int[]levels = {
- 14, 14, 14, 1, 1, 1, 7, 7, 7, 11, 11, 11, 18, 18, 18, 38, 38, 38, 9, 9, 9
- };
- int[]exp = {
- 27, 27, 27, 14, 14, 14, 16, 16, 16, 22, 22, 22, 27, 27, 27, 37, 37, 37, 19, 19, 19
- };
- int amount = 0, id = -1;
- int index = 0;
- for (int i = 0; i < buttons.length; i++) {
- if (actionbutton == buttons[i]) {
- amount = amounts[i];
- id = ids[i];
- index = i;
- }
- }
- if (playerLevel[playerCrafting] >= levels[index]) {
- crafting = true;
- cItem = id;
- cAmount = amount;
- cLevel = levels[index];
- cExp = Math.round(exp[index]*9);
- cSelected = 1741;
- } else {
- sendMessage("Requires level "+levels[index]);
- }
- }
- public void craft() {
- if (playerLevel[playerCrafting] < cLevel) {
- sendMessage("You need "+cLevel+" crafting to make a "+GetItemName(cItem));
- resetAction(true);
- return;
- }
- pEmote = 885;
- updateRequired = true;
- appearanceUpdateRequired = true;
- if (playerHasItem(cSelected, 1) && playerHasItem(1734) && cAmount > 0) {
- deleteItem(cSelected, 1);
- deleteItem(1734, 1);
- sendMessage("You make some "+GetItemName(cItem));
- addItem(cItem, 1);
- addSkillXP(cExp, playerCrafting);
- cAmount--;
- if (cAmount < 1)
- resetAction(true);
- } else {
- resetAction(true);
- }
- }
- public void craftMenu(int i) {
- sendQuest("What would you like to make?", 8898);
- sendQuest("Vambraces", 8889);
- sendQuest("Chaps", 8893);
- sendQuest("Body", 8897);
- sendFrame246(8883, 250, gloves[i]);
- sendFrame246(8884, 250, legs[i]);
- sendFrame246(8885, 250, chests[i]);
- sendFrame164(8880);
- }
- public void startHideCraft(int b) {
- int[]buttons = {
- 34185, 34184, 34183, 34182, 34189, 34188, 34187, 34186, 34193, 34192, 34191, 34190
- };
- int[]amounts = {
- 1, 5, 10, 27
- };
- int index = 0;
- int index2 = 0;
- for (int i = 0; i < buttons.length; i++) {
- if (buttons[i] == b) {
- index = i%4;
- index2 = (int)(i/4);
- break;
- }
- }
- cAmount = amounts[index];
- cSelected = leathers[cIndex];
- int required = 99;
- if (index2 == 0) {
- required = gloveLevels[cIndex];
- cItem = gloves[cIndex];
- cExp = gloveExp[cIndex];
- } else if (index2 == 1) {
- required = legLevels[cIndex];
- cItem = legs[cIndex];
- cExp = legExp[cIndex];
- } else {
- required = chestLevels[cIndex];
- cItem = chests[cIndex];
- cExp = chestExp[cIndex];
- }
- if (playerLevel[playerCrafting] >= required) {
- cExp = (int)(cExp*8);
- crafting = true;
- closeInterface();
- } else {
- sendMessage("Requires level "+required);
- }
- }
- public void reportAbuse(String abuser, int rule, int muted) {
- if(playerRights == 0){
- writeLog("abuser = "+abuser+" for rule "+rule+" muted? "+(muted > 0 ? "yes" : "no"), "reports");
- sendMessage("Your report has been stored and online moderators have also been notified");
- } else {
- boolean online = true;
- //int duration = misc.times[rule];
- for(int i = 0; i < handler.players.length; i++){
- client other = getClient(i);
- if(!validClient(i)) continue;
- if(other.playerName.equalsIgnoreCase(abuser)){
- online = true;
- other.kick();
- break;
- }
- }
- if(online){
- sendMessage("Player kicked off server");
- } else {
- sendMessage("Player was not online");
- }
- }
- if(playerRights < 1)
- modYell("[Abuse] " + abuser + " reported by " + playerName + " for rule " + rule + " (" + misc.rules[rule] + ")");
- else
- modYell("[Mod Chat] " + playerName + " reported " + abuser + " (" + misc.rules[rule] + ")");
- }
- public void modYell(String msg) {
- for (int i = 0; i < handler.players.length; i++) {
- client p = (client)handler.players[i];
- if (p != null && ! p.disconnected && p.absX > 0 && p.playerRights > 0) {
- p.sendMessage(msg);
- }
- }
- }
- public void triggerTele(int x, int y, int height, boolean prem) {
- if (System.currentTimeMillis()-lastAction > 5000) {
- lastAction = System.currentTimeMillis();
- resetWalkingQueue();
- if (prem && !premium) {
- sendMessage("This spell is only available to premium members, visit zernix.com for info");
- return;
- }
- if (duelStatus == 3)
- return;
- tX = x;
- tY = y;
- tH = height;
- tStage = 1;
- tTime = 0;
- }
- }
- public void startSmelt(int id) {
- int[]amounts = {
- 1, 5, 10, 27
- };
- int index = 0, index2 = 0;
- for (int i = 0; i < misc.buttons_smelting.length; i++) {
- if (id == misc.buttons_smelting[i]) {
- index = i%4;
- index2 = (int)(i/4);
- }
- }
- smelt_id = misc.smelt_bars[index2];
- smeltCount = amounts[index];
- smelting = true;
- closeInterface();
- }
- public boolean inRange(int x, int y) {
- if (localId > 0)
- return false;
- if (Math.abs(absX-x) < 4 && Math.abs(absY-y) < 4) {
- return true;
- }
- return false;
- }
- public void openTrade() {
- inTrade = true;
- tradeRequested = false;
- sendFrame248(3323, 3321); // trading window + bag
- resetItems(3322);
- resetTItems(3415);
- resetOTItems(3416);
- String out = PlayerHandler.players[trade_reqId].playerName;
- if (PlayerHandler.players[trade_reqId].playerRights == 1) {
- out = "@cr1@"+out;
- } else if (PlayerHandler.players[trade_reqId].playerRights == 2) {
- out = "@cr2@"+out;
- }
- sendFrame126("Trading With: "+PlayerHandler.players[trade_reqId].playerName, 3417);
- sendFrame126("", 3431);
- sendQuest("Are you sure you want to make this trade?", 3535);
- }
- public void declineTrade() {
- declineTrade(true);
- }
- public void declineTrade(boolean tellOther) {
- closeInterface();
- client other = getClient(trade_reqId);
- if (tellOther && validClient(trade_reqId)) {
- //other.sendMessage(playerName + " declined the trade");
- other.declineTrade(false);
- }
- for (GameItem item: offeredItems) {
- if (item.amount < 1)
- continue;
- if (item.stackable) {
- addItem(item.id, item.amount);
- } else {
- for (int i = 0; i < item.amount; i++) {
- addItem(item.id, 1);
- }
- }
- }
- canOffer = true;
- tradeConfirmed = false;
- tradeConfirmed2 = false;
- offeredItems.clear();
- inTrade = false;
- trade_reqId = 0;
- }
- public boolean validClient(int index) {
- client p = (client)handler.players[index];
- if (p != null && ! p.disconnected) {
- return true;
- }
- return false;
- }
- public client getClient(int index) {
- return ((client)handler.players[index]);
- }
- public void tradeReq(int id) {
- if (!server.trading) {
- sendMessage("Trading has been temporarily disabled");
- return;
- }
- client other = (client)handler.players[id];
- if (validClient(trade_reqId)) {
- if (other.inTrade || other.inDuel) {
- sendMessage("That player is busy at the moment");
- trade_reqId = 0;
- return;
- }
- }
- if (other.connectedFrom.equals(connectedFrom)) {
- tradeRequested = false;
- return;
- }
- if (validClient(trade_reqId) && ! inTrade && other.tradeRequested && other.trade_reqId == playerId) {
- openTrade();
- other.openTrade();
- } else if (validClient(trade_reqId) && ! inTrade && System.currentTimeMillis()-lastButton > 1000) {
- lastButton = System.currentTimeMillis();
- tradeRequested = true;
- trade_reqId = id;
- sendMessage("Sending trade request...");
- other.sendMessage(playerName+":tradereq:");
- }
- }
- public void confirmScreen() {
- canOffer = false;
- sendFrame248(3443, 3213); // trade confirm + normal bag
- resetItems(3214);
- String SendTrade = "Absolutely nothing!";
- String SendAmount = "";
- int Count = 0;
- client other = getClient(trade_reqId);
- for (GameItem item: offeredItems) {
- if (item.id > 0) {
- if (item.amount >= 1000 && item.amount < 1000000) {
- SendAmount = "@cya@"+(item.amount/1000)+"K @whi@("+misc.format(item.amount)+")";
- } else if (item.amount >= 1000000) {
- SendAmount = "@gre@"+(item.amount/1000000)+" million @whi@("+misc.format(item.amount)+")";
- } else {
- SendAmount = ""+misc.format(item.amount);
- }
- if (Count == 0) {
- SendTrade = GetItemName(item.id);
- } else {
- SendTrade = SendTrade+"\\n"+GetItemName(item.id);
- }
- if (item.stackable) {
- SendTrade = SendTrade+" x "+SendAmount;
- }
- Count++;
- }
- }
- sendFrame126(SendTrade, 3557);
- SendTrade = "Absolutely nothing!";
- SendAmount = "";
- Count = 0;
- for (GameItem item: other.offeredItems) {
- if (item.id > 0) {
- if (item.amount >= 1000 && item.amount < 1000000) {
- SendAmount = "@cya@"+(item.amount/1000)+"K @whi@("+misc.format(item.amount)+")";
- } else if (item.amount >= 1000000) {
- SendAmount = "@gre@"+(item.amount/1000000)+" million @whi@("+misc.format(item.amount)+")";
- } else {
- SendAmount = ""+misc.format(item.amount);
- }
- SendAmount = SendAmount;
- if (Count == 0) {
- SendTrade = GetItemName(item.id);
- } else {
- SendTrade = SendTrade+"\\n"+GetItemName(item.id);
- }
- if (item.stackable) {
- SendTrade = SendTrade+" x "+SendAmount;
- }
- Count++;
- }
- }
- sendFrame126(SendTrade, 3558);
- }
- public void giveItems() {
- client other = getClient(trade_reqId);
- if (validClient(trade_reqId)) {
- try {
- logTrade(playerId, other.playerId, offeredItems, other.offeredItems);
- for (GameItem item: other.offeredItems) {
- if (item.id > 0) {
- addItem(item.id, item.amount);
- println("TradeConfirmed, item="+item.id);
- BufferedWriter bw = null;
- try {
- bw = new BufferedWriter(new FileWriter("logs/trade logs.txt", true));
- bw.write(other.playerName + " trades item: " + item.id + " with " + playerName);
- bw.newLine();
- bw.flush();
- } catch (IOException ioe) {
- ioe.printStackTrace();
- } finally {
- if (bw != null) try {
- bw.close();
- } catch (IOException ioe2) {
- sendMessage("Error logging trade!");
- }
- }
- }
- }
- closeInterface();
- tradeResetNeeded = true;
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- public void logTrade(int id, int id2, CopyOnWriteArrayList < GameItem > offeredItems, CopyOnWriteArrayList < GameItem > offeredItems2) {
- try {
- //results = statement.executeQuery("SELECT id from uber3_trades ORDER BY id DESC");
- //results.next();
- //int tId = results.getInt("id") + 1;
- //statement.executeUpdate("INSERT INTO uber3_trades SET id = " + tId + ", type=0, p1=" + id + ", p2=" + id2);
- for (GameItem item: offeredItems) {
- // statement.executeUpdate("INSERT INTO uber3_logs SET id = " + tId + ", pid=" + id + ", item=" + item.id + ", amount=" + item.amount);
- }
- for (GameItem item: offeredItems2) {
- // statement.executeUpdate("INSERT INTO uber3_logs SET id = " + tId + ", pid=" + id2 + ", item=" + item.id + ", amount=" + item.amount);
- }
- //statement.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public void resetTrade() {
- offeredItems.clear();
- inTrade = false;
- trade_reqId = 0;
- canOffer = true;
- tradeConfirmed = false;
- tradeConfirmed2 = false;
- closeInterface();
- tradeResetNeeded = false;
- sendQuest("Are you sure you want to make this trade?", 3535);
- }
- public void duelReq(int pid) {
- if (!server.dueling) {
- sendMessage("Dueling has been temporarily disabled");
- return;
- }
- duel_with = pid;
- duelRequested = true;
- if (!validClient(duel_with))
- return;
- client other = getClient(duel_with);
- if (inTrade || inDuel || other.inDuel || other.inTrade || other.duelFight || other.duelConfirmed || other.duelConfirmed2) {
- sendMessage("Other player is busy at the moment");
- duelRequested = false;
- return;
- }
- // if (other.connectedFrom.equals(connectedFrom)) {
- // duelRequested = false;
- // return;
- //}
- if (duelRequested && other.duelRequested && duel_with == other.playerId && other.duel_with == playerId) {
- openDuel();
- other.openDuel();
- } else {
- //sendMessage("Mage on player unlocked");
- other.sendMessage(playerName+":duelreq:");
- }
- }
- public void openDuel() {
- RefreshDuelRules();
- refreshDuelScreen();
- inDuel = true;
- client other = getClient(duel_with);
- sendQuest("Dueling with: "+other.playerName+" (level-"+other.combat+")", 6671);
- sendQuest("", 6684);
- sendFrame248(6575, 3321);
- resetItems(3322);
- }
- public void declineDuel() {
- client other = getClient(duel_with);
- inDuel = false;
- if (validClient(duel_with) && other.inDuel) {
- other.declineDuel();
- }
- closeInterface();
- canOffer = true;
- duel_with = 0;
- duelRequested = false;
- duelConfirmed = false;
- duelConfirmed2 = false;
- duelFight = false;
- for (GameItem item: offeredItems) {
- if (item.amount < 1)
- continue;
- if (Item.itemStackable[item.id] || Item.itemIsNote[item.id]) {
- addItem(item.id, item.amount);
- } else {
- addItem(item.id, 1);
- }
- }
- offeredItems.clear();
- }
- public void confirmDuel() {
- client other = getClient(duel_with);
- if (!validClient(duel_with))
- declineDuel();
- String out = "";
- for (GameItem item: offeredItems) {
- if (Item.itemStackable[item.id] || Item.itemIsNote[item.id]) {
- out += GetItemName(item.id)+" x "+misc.format(item.amount)+", ";
- } else {
- out += GetItemName(item.id)+", ";
- }
- }
- sendQuest(out, 6516);
- out = "";
- for (GameItem item: other.offeredItems) {
- if (Item.itemStackable[item.id] || Item.itemIsNote[item.id]) {
- out += GetItemName(item.id)+" x "+misc.format(item.amount)+", ";
- } else {
- out += GetItemName(item.id)+", ";
- }
- }
- sendQuest(out, 6517);
- sendQuest("Movement will be disabled", 8242);
- for (int i = 8243; i <= 8253; i++) {
- sendQuest("", i);
- }
- sendQuest("Hitpoints will be restored", 8250);
- sendQuest("", 6571);
- showInterface(6412);
- }
- public void startDuel() {
- closeInterface();
- duelFight = true;
- client other = getClient(duel_with);
- for (GameItem item : other.offeredItems) {
- otherOfferedItems.add(new GameItem(item.id, item.amount));
- }
- }
- public void resetDuel() {
- println("duel reset");
- closeInterface();
- canOffer = true;
- duel_with = 0;
- duelRequested = false;
- duelConfirmed = false;
- duelConfirmed2 = false;
- offeredItems.clear();
- otherOfferedItems.clear();
- duelFight = false;
- inDuel = false;
- duelRule = new boolean[] {
- false, false, false, false, false, true, false, true, false, true, false
- };
- }
- public void frame36(int Interface, int Status) {
- outStream.createFrame(36);
- outStream.writeWordBigEndian(Interface); //The button
- outStream.writeByte(Status); //The Status of the button
- }
- public void frame87(int Interface, int Status) {
- outStream.createFrame(87);
- outStream.writeWordBigEndian(Interface); //The button
- outStream.writeDWord_v1(Status); //The Status of the button
- }
- public boolean duelButton(int button) {
- client other = getClient(duel_with);
- boolean found = false;
- if (System.currentTimeMillis()-lastButton < 800) {
- return false;
- }
- if (inDuel && ! duelFight && ! duelConfirmed2 && ! other.duelConfirmed2) {
- for (int i = 0; i < duelButtons.length; i++) {
- if (button == duelButtons[i]) {
- found = true;
- if (duelRule[i]) {
- duelRule[i] = false;
- other.duelRule[i] = false;
- } else {
- duelRule[i] = true;
- other.duelRule[i] = true;
- }
- }
- }
- if (found) {
- lastButton = System.currentTimeMillis();
- duelConfirmed = false;
- other.duelConfirmed = false;
- sendQuest("", 6684);
- other.sendQuest("", 6684);
- other.duelRule[i] = duelRule[i];
- RefreshDuelRules();
- other.RefreshDuelRules();
- }
- }
- return found;
- }
- }
Add Comment
Please, Sign In to add comment