Advertisement
mrextremez

Untitled

Apr 19th, 2014
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.76 KB | None | 0 0
  1. package com.zarketh.model.entity.player;
  2.  
  3. import com.zarketh.InstanceDistributor;
  4. import com.zarketh.Settings;
  5. import com.zarketh.content.TradingConstants;
  6. import com.zarketh.content.misc.MagicAndPraySwitch;
  7. import com.zarketh.content.misc.homes.config.Keldagrim;
  8. import com.zarketh.model.Item;
  9. import com.zarketh.model.Shop;
  10. import com.zarketh.model.combat.HitExecutor;
  11. import com.zarketh.model.entity.Entity;
  12. import com.zarketh.model.entity.GraphicsProcessor;
  13. import com.zarketh.net.GamePacketBuilder;
  14. import com.zarketh.util.Misc;
  15. import com.zarketh.world.GroundItemManager;
  16. import com.zarketh.world.World;
  17.  
  18. // Referenced classes of package com.zarketh.model.entity.player:
  19. // Player, ActionSender, PlayerConstants, Equipment
  20.  
  21. public class ActionAssistant {
  22.  
  23. Player client;
  24.  
  25. public ActionAssistant(Player client) {
  26. this.client = client;
  27. }
  28.  
  29. public void changeSkillXp(int skill, int amount, boolean divide) {
  30. int newXp = divide ? client.playerXP[skill] / amount : client.playerXP[skill] * amount;
  31. client.playerXP[skill] = newXp;
  32. client.playerLevel[skill] = client.getLevelForXP(client.playerXP[skill]);
  33. refreshSkill(skill);
  34. }
  35.  
  36. public void addHP(int amount) {
  37. if (client.hitpoints + amount > client.calculateMaxHP())
  38. client.hitpoints = client.calculateMaxHP();
  39. else
  40. client.hitpoints += amount;
  41. client.playerLevel[3] = client.hitpoints;
  42. client.hitpoints = client.playerLevel[3];
  43. client.getActionAssistant().refreshSkill(3);
  44. }
  45.  
  46. public void addSkillXP(double amount, int skillId) {
  47. if (client.expLocked == 1)
  48. return;
  49. if (amount + client.playerXP[skillId] < 0.0D
  50. || client.playerXP[skillId] > 0xbebc200)
  51. return;
  52. final int oldLevel = client.getLevelForXP(client.playerXP[skillId]);
  53. if (skillId > -1 && skillId < 7 && skillId != 5) {
  54. if (client.gameMode == 1) {
  55. amount *= 10;
  56. } else if (client.gameMode == 2) {
  57. amount *= 50;
  58. } else if (client.gameMode == 3) {
  59. amount *= 250;
  60. } else if (client.gameMode == 4) {
  61. amount *= 500;
  62. }
  63. }
  64. client.playerXP[skillId] += amount;
  65. if (oldLevel < client.getLevelForXP(client.playerXP[skillId])) {
  66. client.playerLevel[skillId] = client
  67. .getLevelForXP(client.playerXP[skillId]);
  68. showNewLevel(skillId);
  69. if (skillId == 3)
  70. addHP(client.getLevelForXP(client.playerXP[skillId]) - oldLevel);
  71. }
  72. if (client.playerXP[skillId] > 0xbebc200)
  73. client.playerXP[skillId] = 0xbebc200;
  74. refreshSkill(skillId);
  75. client.updateRequired = true;
  76. client.appearanceUpdateRequired = true;
  77. }
  78.  
  79. public void appendHit(Entity attacker,
  80. com.zarketh.model.entity.Entity.CombatType type, int damage) {
  81. if (damage > client.hitpoints)
  82. damage = client.hitpoints;
  83. if (!client.hitUpdateRequired) {
  84. client.hitDiff = damage;
  85. subtractHp(client.hitDiff);
  86. client.type = type;
  87. client.updateRequired = true;
  88. client.hitUpdateRequired = true;
  89. client.getActionSender().sendWindowsRemoval();
  90. client.getActionAssistant().startAnimation(
  91. Equipment.getDefendAnimation(client));
  92. } else if (!client.hitUpdateRequired2) {
  93. client.hitDiff2 = damage;
  94. subtractHp(client.hitDiff2);
  95. client.type2 = type;
  96. client.updateRequired = true;
  97. client.hitUpdateRequired2 = true;
  98. client.getActionSender().sendWindowsRemoval();
  99. } else
  100. HitExecutor.addNewHit(attacker, client, type, damage, 1);
  101. }
  102.  
  103. public void createPlayerGfx(int id, int delay, boolean tallGfx) {
  104. if (id > 0) {
  105. client.gfxID = id;
  106. client.gfxDelay = tallGfx ? delay + 0x640000 : delay;
  107. client.updateRequired = true;
  108. client.graphicsUpdateRequired = true;
  109. }
  110. }
  111.  
  112. public void createPlayerGfx2(int id, int delay) {
  113. client.gfxID = id;
  114. client.gfxDelay = delay;
  115. client.updateRequired = true;
  116. client.graphicsUpdateRequired = true;
  117. }
  118.  
  119. public void decreaseStat(int stat, double decrease) {
  120. if (client.playerLevel[stat] - decrease > 0.0D)
  121. client.playerLevel[stat] -= decrease;
  122. else
  123. client.playerLevel[stat] = 0;
  124. refreshSkill(stat);
  125. }
  126.  
  127. public void decreaseStat2(int stat, int decrease) {
  128. final int actualLevel = client.getLevelForXP(client.playerXP[stat]);
  129. double decreaseBy = Misc.intToPercentage(decrease) * actualLevel;
  130. if (client.playerLevel[stat] >= actualLevel + decreaseBy)
  131. return;
  132. if (stat == 5 && client.playerLevel[stat] + decreaseBy > actualLevel) {
  133. decreaseBy = 0.0D;
  134. client.playerLevel[stat] = actualLevel;
  135. }
  136. if (client.playerLevel[stat] - decreaseBy >= 1.0D)
  137. client.playerLevel[stat] -= decreaseBy;
  138. else
  139. client.playerLevel[stat] = 1;
  140. refreshSkill(stat);
  141. }
  142.  
  143. public void deleteItem(int id, int amount) {
  144. deleteItem(id, getItemSlot(id), amount);
  145. }
  146.  
  147. public void deleteItem(int id, int slot, int amount) {
  148. if (slot > -1 && client.playerItems[slot] == id + 1) {
  149. if (client.playerItemsN[slot] > amount)
  150. client.playerItemsN[slot] -= amount;
  151. else {
  152. client.playerItemsN[slot] = 0;
  153. client.playerItems[slot] = 0;
  154. }
  155. client.getActionSender().sendItemReset(3214);
  156. }
  157. }
  158.  
  159. public void deleteItem(Item item) {
  160. deleteItem(item.getId(), item.getCount());
  161. }
  162.  
  163. public void deleteItem1(int id, int slot, int amount) {
  164. if (slot > -1 && client.playerItems[slot] == id + 1)
  165. if (client.playerItemsN[slot] > amount)
  166. client.playerItemsN[slot] -= amount;
  167. else {
  168. client.playerItemsN[slot] = 0;
  169. client.playerItems[slot] = 0;
  170. }
  171. }
  172.  
  173. public void deleteItem2(int id, int amount) {
  174. int am = amount;
  175. for (int i = 0; i < client.playerItems.length; i++) {
  176. if (am == 0)
  177. break;
  178. if (client.playerItems[i] != id + 1)
  179. continue;
  180. if (client.playerItemsN[i] > amount) {
  181. client.playerItemsN[i] -= amount;
  182. break;
  183. }
  184. client.playerItems[i] = 0;
  185. client.playerItemsN[i] = 0;
  186. am--;
  187. }
  188.  
  189. client.getActionSender().sendItemReset(3214);
  190. }
  191.  
  192. public void deleteItem3(int id, int amount) {
  193. deleteItem1(id, getItemSlot(id), amount);
  194. }
  195.  
  196. public void dropItem(int id, int slot) {
  197. if (!TradingConstants.isUntradable(id)) {
  198. if (client.playerItems[slot] == id + 1) {
  199. GroundItemManager.getInstance().createGroundItem(client,
  200. new Item(id, client.playerItemsN[slot]),
  201. client.getPosition());
  202. deleteItem(client.playerItems[slot] - 1, slot,
  203. client.playerItemsN[slot]);
  204. }
  205. } else {
  206. client.getActionAssistant().deleteItem(id, 1);
  207. client.getActionSender().sendMessage(
  208. "The item crumbles to dust as you drop it.");
  209. if (id == 18778 || id == 18779 || id == 18780 || id == 18791)
  210. client.numEffigies--;
  211. }
  212. }
  213.  
  214. public void forceChat(String forcedChat) {
  215. client.forcedText = forcedChat;
  216. client.forcedTextUpdateRequired = true;
  217. client.updateRequired = true;
  218. }
  219.  
  220. public void forceText(String s) {
  221. client.forcedText = s;
  222. client.updateRequired = true;
  223. client.forcedTextUpdateRequired = true;
  224. }
  225.  
  226. public int freeBankSlots() {
  227. int freeS = 0;
  228. for (int i = 0; i < 348; i++)
  229. if (client.bankItems[i] <= 0)
  230. freeS++;
  231.  
  232. return freeS;
  233. }
  234.  
  235. public int freeBankSlots1() {
  236. int freeS = 0;
  237. for (int i = 0; i < 348; i++)
  238. if (client.bankItems[i] <= 0)
  239. freeS++;
  240.  
  241. return freeS;
  242. }
  243.  
  244. public int freeSlots() {
  245. int freeS = 0;
  246. for (final int playerItem : client.playerItems)
  247. if (playerItem <= 0)
  248. freeS++;
  249.  
  250. return freeS;
  251. }
  252.  
  253. public int getItemAmount(int itemID) {
  254. int tempAmount = 0;
  255. for (int i = 0; i < client.playerItems.length; i++)
  256. if (itemID > 0 && client.playerItems[i] - 1 == itemID)
  257. if (Item.itemStackable[itemID] || Item.itemIsNote[itemID])
  258. tempAmount += client.playerItemsN[i];
  259. else
  260. tempAmount++;
  261.  
  262. return tempAmount;
  263. }
  264.  
  265. public int getItemCount(int itemId) {
  266. int total = 0;
  267. for (final int playerItem : client.playerItems)
  268. if (playerItem - 1 == itemId)
  269. total++;
  270.  
  271. return total;
  272. }
  273.  
  274. public int getItemSlot(int itemID) {
  275. for (int i = 0; i < client.playerItems.length; i++)
  276. if (client.playerItems[i] - 1 == itemID)
  277. return i;
  278.  
  279. return -1;
  280. }
  281.  
  282. public void gfx100(int id) {
  283. client.gfxID = id;
  284. client.gfxDelay = 0x640000;
  285. client.updateRequired = true;
  286. client.graphicsUpdateRequired = true;
  287. }
  288.  
  289. public void increaseStat(int stat, int increase) {
  290. final int actualLevel = client.getLevelForXP(client.playerXP[stat]);
  291. double increaseBy = Misc.intToPercentage(increase) * actualLevel;
  292. if (client.playerLevel[stat] >= actualLevel + increaseBy)
  293. return;
  294. if (stat == 5 && client.playerLevel[stat] + increaseBy > actualLevel
  295. && !MagicAndPraySwitch.isSwitchingPrayer) {
  296. increaseBy = 0.0D;
  297. client.playerLevel[stat] = actualLevel;
  298. }
  299. client.playerLevel[stat] += increaseBy;
  300. if (client.playerLevel[stat] >= actualLevel + increaseBy)
  301. client.playerLevel[stat] = (int) (actualLevel + increaseBy);
  302. refreshSkill(stat);
  303. }
  304.  
  305. public boolean isItemInBag(int itemID) {
  306. for (final int playerItem : client.playerItems)
  307. if (playerItem - 1 == itemID)
  308. return true;
  309.  
  310. return false;
  311. }
  312.  
  313. public void openUpShop(int shopId) {
  314. final Shop s = InstanceDistributor.getShopManager().getShops()
  315. .get(Integer.valueOf(shopId));
  316. if (s == null)
  317. return;
  318. client.getActionSender().sendString(s.getName(), 3901);
  319. client.getActionSender().sendInterfaceInventory(3824, 3822);
  320. client.getActionSender().sendItemReset(3823);
  321. client.getActionSender().sendShopReset(s);
  322. client.getExtraData().put("shop", Integer.valueOf(shopId));
  323. s.updated();
  324. if (client.getExtraData().containsKey("shop")
  325. && ((Integer) client.getExtraData().get("shop")).intValue() == s
  326. .getId())
  327. client.getActionSender().sendShopReset(s);
  328. client.getActionSender().sendItemReset(3823);
  329. }
  330.  
  331. public boolean playerBankHasItem(int itemID, int amt) {
  332. itemID++;
  333. int found = 0;
  334. for (int i = 0; i < client.bankItems.length; i++)
  335. if (client.bankItems[i] == itemID) {
  336. if (client.bankItemsN[i] >= amt)
  337. return true;
  338. found++;
  339. }
  340.  
  341. return found >= amt;
  342. }
  343.  
  344. public int playerBankHasItemSlot(int itemID, int amt) {
  345. itemID++;
  346. for (int i = 0; i < client.bankItems.length; i++)
  347. if (client.bankItems[i] == itemID && client.bankItemsN[i] >= amt)
  348. return i;
  349.  
  350. return 0;
  351. }
  352.  
  353. public boolean playerEquipContains(int itemID) {
  354. for (final int element : client.playerEquipment)
  355. if (element == itemID)
  356. return true;
  357.  
  358. return false;
  359. }
  360.  
  361. public boolean playerHasItem(int itemID) {
  362. return playerHasItem(itemID, 1);
  363. }
  364.  
  365. public boolean playerHasItem(int itemID, int amt) {
  366. itemID++;
  367. int found = 0;
  368. for (int i = 0; i < client.playerItems.length; i++)
  369. if (client.playerItems[i] == itemID) {
  370. if (client.playerItemsN[i] >= amt)
  371. return true;
  372. found++;
  373. }
  374.  
  375. return found >= amt;
  376. }
  377.  
  378. public void refreshSkill(int skillId) {
  379. switch (skillId) {
  380. case 0: // '\0'
  381. client.getActionSender().sendString(
  382. new StringBuilder().append(client.playerLevel[0])
  383. .toString(), 7159);
  384. client.getActionSender().sendString(
  385. new StringBuilder().append(
  386. client.getLevelForXP(client.playerXP[0]))
  387. .toString(), 7160);
  388. break;
  389.  
  390. case 1: // '\001'
  391. client.getActionSender().sendString(
  392. new StringBuilder().append(client.playerLevel[1])
  393. .toString(), 7163);
  394. client.getActionSender().sendString(
  395. new StringBuilder().append(
  396. client.getLevelForXP(client.playerXP[1]))
  397. .toString(), 7164);
  398. break;
  399.  
  400. case 2: // '\002'
  401. client.getActionSender().sendString(
  402. new StringBuilder().append(client.playerLevel[2])
  403. .toString(), 7161);
  404. client.getActionSender().sendString(
  405. new StringBuilder().append(
  406. client.getLevelForXP(client.playerXP[2]))
  407. .toString(), 7162);
  408. break;
  409.  
  410. case 3: // '\003'
  411. client.getActionSender().sendString(
  412. new StringBuilder().append(client.hitpoints).toString(),
  413. 7175);
  414. client.getActionSender().sendString(
  415. new StringBuilder().append(
  416. client.getLevelForXP(client.playerXP[3]))
  417. .toString(), 7176);
  418. break;
  419.  
  420. case 4: // '\004'
  421. client.getActionSender().sendString(
  422. new StringBuilder().append(client.playerLevel[4])
  423. .toString(), 7165);
  424. client.getActionSender().sendString(
  425. new StringBuilder().append(
  426. client.getLevelForXP(client.playerXP[4]))
  427. .toString(), 7166);
  428. break;
  429.  
  430. case 5: // '\005'
  431. client.getActionSender().sendString(
  432. new StringBuilder().append(client.playerLevel[5])
  433. .toString(), 7167);
  434. client.getActionSender().sendString(
  435. new StringBuilder().append(
  436. client.getLevelForXP(client.playerXP[5]))
  437. .toString(), 7168);
  438. client.getActionSender().sendString(
  439. new StringBuilder().append(client.playerLevel[5])
  440. .append("/")
  441. .append(client.getLevelForXP(client.playerXP[5]))
  442. .toString(), 687);
  443. break;
  444.  
  445. case 6: // '\006'
  446. client.getActionSender().sendString(
  447. new StringBuilder().append(client.playerLevel[6])
  448. .toString(), 7169);
  449. client.getActionSender().sendString(
  450. new StringBuilder().append(
  451. client.getLevelForXP(client.playerXP[6]))
  452. .toString(), 7170);
  453. break;
  454.  
  455. case 7: // '\007'
  456. client.getActionSender().sendString(
  457. new StringBuilder().append(client.playerLevel[7])
  458. .toString(), 7197);
  459. client.getActionSender().sendString(
  460. new StringBuilder().append(
  461. client.getLevelForXP(client.playerXP[7]))
  462. .toString(), 7198);
  463. break;
  464.  
  465. case 8: // '\b'
  466. client.getActionSender().sendString(
  467. new StringBuilder().append(client.playerLevel[8])
  468. .toString(), 7201);
  469. client.getActionSender().sendString(
  470. new StringBuilder().append(
  471. client.getLevelForXP(client.playerXP[8]))
  472. .toString(), 7202);
  473. break;
  474.  
  475. case 9: // '\t'
  476. client.getActionSender().sendString(
  477. new StringBuilder().append(client.playerLevel[9])
  478. .toString(), 7185);
  479. client.getActionSender().sendString(
  480. new StringBuilder().append(
  481. client.getLevelForXP(client.playerXP[9]))
  482. .toString(), 7186);
  483. break;
  484.  
  485. case 10: // '\n'
  486. client.getActionSender().sendString(
  487. new StringBuilder().append(client.playerLevel[10])
  488. .toString(), 7195);
  489. client.getActionSender().sendString(
  490. new StringBuilder().append(
  491. client.getLevelForXP(client.playerXP[10]))
  492. .toString(), 7196);
  493. break;
  494.  
  495. case 11: // '\013'
  496. client.getActionSender().sendString(
  497. new StringBuilder().append(client.playerLevel[11])
  498. .toString(), 7199);
  499. client.getActionSender().sendString(
  500. new StringBuilder().append(
  501. client.getLevelForXP(client.playerXP[11]))
  502. .toString(), 7200);
  503. break;
  504.  
  505. case 12: // '\f'
  506. client.getActionSender().sendString(
  507. new StringBuilder().append(client.playerLevel[12])
  508. .toString(), 7183);
  509. client.getActionSender().sendString(
  510. new StringBuilder().append(
  511. client.getLevelForXP(client.playerXP[12]))
  512. .toString(), 7184);
  513. break;
  514.  
  515. case 13: // '\r'
  516. client.getActionSender().sendString(
  517. new StringBuilder().append(client.playerLevel[13])
  518. .toString(), 7193);
  519. client.getActionSender().sendString(
  520. new StringBuilder().append(
  521. client.getLevelForXP(client.playerXP[13]))
  522. .toString(), 7194);
  523. break;
  524.  
  525. case 14: // '\016'
  526. client.getActionSender().sendString(
  527. new StringBuilder().append(client.playerLevel[14])
  528. .toString(), 7191);
  529. client.getActionSender().sendString(
  530. new StringBuilder().append(
  531. client.getLevelForXP(client.playerXP[14]))
  532. .toString(), 7192);
  533. break;
  534.  
  535. case 15: // '\017'
  536. client.getActionSender().sendString(
  537. new StringBuilder().append(client.playerLevel[15])
  538. .toString(), 7179);
  539. client.getActionSender().sendString(
  540. new StringBuilder().append(
  541. client.getLevelForXP(client.playerXP[15]))
  542. .toString(), 7180);
  543. break;
  544.  
  545. case 16: // '\020'
  546. client.getActionSender().sendString(
  547. new StringBuilder().append(client.playerLevel[16])
  548. .toString(), 7177);
  549. client.getActionSender().sendString(
  550. new StringBuilder().append(
  551. client.getLevelForXP(client.playerXP[16]))
  552. .toString(), 7178);
  553. break;
  554.  
  555. case 17: // '\021'
  556. client.getActionSender().sendString(
  557. new StringBuilder().append(client.playerLevel[17])
  558. .toString(), 7181);
  559. client.getActionSender().sendString(
  560. new StringBuilder().append(
  561. client.getLevelForXP(client.playerXP[17]))
  562. .toString(), 7182);
  563. break;
  564.  
  565. case 18: // '\022'
  566. client.getActionSender().sendString(
  567. new StringBuilder().append(client.playerLevel[18])
  568. .toString(), 7187);
  569. client.getActionSender().sendString(
  570. new StringBuilder().append(
  571. client.getLevelForXP(client.playerXP[18]))
  572. .toString(), 7188);
  573. break;
  574.  
  575. case 19: // '\023'
  576. client.getActionSender().sendString(
  577. new StringBuilder().append(client.playerLevel[19])
  578. .toString(), 7203);
  579. client.getActionSender().sendString(
  580. new StringBuilder().append(
  581. client.getLevelForXP(client.playerXP[19]))
  582. .toString(), 7204);
  583. break;
  584.  
  585. case 20: // '\024'
  586. client.getActionSender().sendString(
  587. new StringBuilder().append(client.playerLevel[20])
  588. .toString(), 7171);
  589. client.getActionSender().sendString(
  590. new StringBuilder().append(
  591. client.getLevelForXP(client.playerXP[20]))
  592. .toString(), 7172);
  593. break;
  594.  
  595. case 21: // '\025'
  596. client.getActionSender().sendString(
  597. new StringBuilder().append(client.playerLevel[21])
  598. .toString(), 7205);
  599. client.getActionSender().sendString(
  600. new StringBuilder().append(
  601. client.getLevelForXP(client.playerXP[21]))
  602. .toString(), 7206);
  603. break;
  604.  
  605. case 22: // '\026'
  606. client.getActionSender().sendString(
  607. new StringBuilder().append(client.playerLevel[22])
  608. .toString(), 7189);
  609. client.getActionSender().sendString(
  610. new StringBuilder().append(
  611. client.getLevelForXP(client.playerXP[22]))
  612. .toString(), 7190);
  613. break;
  614.  
  615. case 23: // '\027'
  616. client.getActionSender().sendString(
  617. new StringBuilder().append(
  618. client.getDungLevelForXp(client.playerXP[23]))
  619. .toString(), 7157);
  620. client.getActionSender().sendString(
  621. new StringBuilder().append(
  622. client.getDungLevelForXp(client.playerXP[23]))
  623. .toString(), 7158);
  624. break;
  625.  
  626. case 24: // '\030'
  627. client.getActionSender().sendString(
  628. new StringBuilder().append(client.playerLevel[24])
  629. .toString(), 7173);
  630. client.getActionSender().sendString(
  631. new StringBuilder().append(
  632. client.getLevelForXP(client.playerXP[24]))
  633. .toString(), 7174);
  634. break;
  635. }
  636. if (skillId >= 0 && skillId < 7 || skillId == 21) {
  637. client.combatLevel = client.getCombatLevel();
  638. client.summoningCombatLevel = client.getCombatLevelNoSummoning();
  639. }
  640. final GamePacketBuilder bldr = new GamePacketBuilder(134);
  641. bldr.put((byte) skillId);
  642. bldr.putInt1(client.playerXP[skillId]);
  643. bldr.put((byte) client.playerLevel[skillId]);
  644. client.write(bldr.toPacket());
  645. }
  646.  
  647. public void replaceItem(int oldID, int newID) {
  648. deleteItem(oldID, 1);
  649. client.getActionSender().addItem(newID, 1);
  650. }
  651.  
  652. public void restore(int amount) {
  653. for (int i = 0; i < 25; i++) {
  654. if (client.playerLevel[i] > client
  655. .getLevelForXP(client.playerXP[i]))
  656. client.playerLevel[i] -= amount;
  657. refreshSkill(i);
  658. }
  659.  
  660. }
  661.  
  662. public void sendAnimation(int anim) {
  663. if (anim > 0) {
  664. client.animationRequest = anim;
  665. client.animationWaitCycles = 0;
  666. client.updateRequired = true;
  667. }
  668. }
  669.  
  670. public void setFollowing(int followID, int followType, int followDistance) {
  671. final GamePacketBuilder bldr = new GamePacketBuilder(174);
  672. bldr.putShort(followID);
  673. bldr.put((byte) followType);
  674. bldr.putShort(followDistance);
  675. client.write(bldr.toPacket());
  676. }
  677.  
  678. public void setSplitChat(int state) {
  679. if (state == 0) {
  680. client.getActionSender().sendFrame36(502, 1);
  681. client.getActionSender().sendFrame36(287, 1);
  682. client.SplitChat = true;
  683. } else {
  684. client.getActionSender().sendFrame36(502, 0);
  685. client.getActionSender().sendFrame36(287, 0);
  686. client.SplitChat = false;
  687. }
  688. }
  689.  
  690. public void addItemToBank(int itemId, int amount) {
  691. for (int i = 0; i < client.getPlayerBankSize(); i++) {
  692. if (client.bankItems[i] <= 0 || client.bankItems[i] == itemId + 1 && client.bankItemsN[i] + amount < Integer.MAX_VALUE) {
  693. client.bankItems[i] = itemId + 1;
  694. client.bankItemsN[i] += amount;
  695. client.getActionSender().sendBankReset();
  696. return;
  697. }
  698. }
  699. }
  700.  
  701. public void showNewLevel(int skillId) {
  702. client.getActionSender().sendString(
  703. new StringBuilder("Total Level : ").append(client.totalLevel)
  704. .toString(), 7127);
  705. client.getActionSender().sendMessage(
  706. new StringBuilder("Congratulations, you just advanced an ")
  707. .append(PlayerConstants.SKILL_NAMES[skillId]
  708. .toLowerCase()).append(" level!").toString());
  709. if (client.getLevelForXP(client.playerXP[skillId]) == 99
  710. && skillId != 23)
  711. client.getActionSender()
  712. .sendMessage(
  713. new StringBuilder(
  714. "@dre@Congratulations! you just achieved the maximum level in ")
  715. .append(PlayerConstants.SKILL_NAMES[skillId]
  716. .toLowerCase()).append("!")
  717. .toString());
  718.  
  719. if (skillId >= 0 && skillId < 7 && skillId != 5 && client.getLevelForXP(client.playerXP[skillId]) == 99) {
  720. if (client.gameMode == 1) {
  721. client.sendMessage("You have recieved 25M gold, it has been put in your bank!");
  722. addItemToBank(995, 25000000);
  723. } else if (client.gameMode == 2) {
  724. client.sendMessage("You have recieved 10M gold, it has been put in your bank!");
  725. addItemToBank(995, 10000000);
  726. } else if (client.gameMode == 3) {
  727. client.sendMessage("You have recieved 5M gold, it has been put in your bank!");
  728. addItemToBank(995, 5000000);
  729. } else if (client.gameMode == 4) {
  730. client.sendMessage("You have recieved 2.5M gold, it has been put in your bank!");
  731. addItemToBank(995, 2500000);
  732. }
  733. }
  734. GraphicsProcessor.addNewRequest(client, 199, 100, 2);
  735. client.getActionSender().sendString(
  736. new StringBuilder("Total Level: ").append(
  737. client.calculateTotalLevel()).toString(), 7127);
  738. switch (client.totalLevel) {
  739. case 100: // 'd'
  740. case 200:
  741. case 300:
  742. case 400:
  743. case 500:
  744. case 600:
  745. case 700:
  746. case 800:
  747. case 900:
  748. case 1000:
  749. case 1100:
  750. case 1200:
  751. case 1300:
  752. case 1400:
  753. case 1500:
  754. case 1600:
  755. case 1700:
  756. case 1800:
  757. case 1900:
  758. case 2000:
  759. case 2100:
  760. case 2200:
  761. case 2300:
  762. client.sendMessage(new StringBuilder(
  763. "@dre@Congratulations! You have reached the ")
  764. .append(client.totalLevel)
  765. .append(" total level milestone!").toString());
  766. break;
  767.  
  768. case 2397:
  769. client.sendMessage(new StringBuilder(
  770. "@dre@Congratulations! You've achieved the highest total level possible on ")
  771. .append(Settings.getString("sv_name")).append("!")
  772. .toString());
  773. World.getWorld()
  774. .sendGlobalMessage(
  775. new StringBuilder(
  776. "[@red@SERVER@bla@] Congratulations! @dre@")
  777. .append(Misc.capitalizeFirstLetter(client
  778. .getUsername()))
  779. .append("@bla@ has just achieved the maximum total level on ")
  780. .append(Settings.getString("sv_name"))
  781. .append("!").toString());
  782. break;
  783. }
  784. }
  785.  
  786. public boolean staffType(int runeType) {
  787. final int staffTypes[][] = { { 554, 1387, 1393, 1401, 11738, 3054 },
  788. { 555, 1383, 1395, 1403, 11738, 6563 },
  789. { 556, 1381, 1397, 1405 },
  790. { 557, 1385, 1399, 1407, 3054, 6563 } };
  791. final int weapon = client.playerEquipment[3];
  792. for (final int[] staffType : staffTypes)
  793. if (runeType == staffType[0])
  794. for (int j = 1; j < 4; j++)
  795. if (weapon == staffType[j])
  796. return true;
  797.  
  798. return false;
  799. }
  800.  
  801. public void startAnimation(int anim) {
  802. if (anim > 13000)
  803. return;
  804. else {
  805. client.animationRequest = anim;
  806. client.animationWaitCycles = 0;
  807. client.updateRequired = true;
  808. return;
  809. }
  810. }
  811.  
  812. public void startAnimation(int anim, int delay) {
  813. if (anim > 13000)
  814. return;
  815. else {
  816. client.animationRequest = anim;
  817. client.animationWaitCycles = delay;
  818. client.updateRequired = true;
  819. return;
  820. }
  821. }
  822.  
  823. public void subtractHp(int i) {
  824. client.hitpoints -= i;
  825. if (client.hitpoints < 0)
  826. client.hitpoints = 0;
  827. client.playerLevel[3] = client.hitpoints;
  828. client.hitpoints = client.playerLevel[3];
  829. client.getActionAssistant().refreshSkill(3);
  830. }
  831.  
  832. public void turnPlayerTo(int index) {
  833. client.turnPlayerTo = index;
  834. client.updateRequired = true;
  835. client.turnPlayerToUpdateRequired = true;
  836. }
  837.  
  838. public void turnTo(int x, int y) {
  839. client.viewToX = x;
  840. client.viewToY = y;
  841. client.updateRequired = true;
  842. client.faceUpdateRequired = true;
  843. }
  844. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement