Jump to content

Search the Community

Showing results for tags 'fixed'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • RuneLocus
    • News & Announcements
    • Information Booth
    • Website Support
    • Introductions
    • Chat
    • Forum Games
  • RuneScape Development
    • RSPS General
    • RuneScape Private Server (RS2)
    • RuneScape Private Server (503+)
    • RuneScape Private Server (EoC 742+)
  • Other
    • Digital Art
    • Gaming
    • Webdevelopment
    • Computers
  • Marketplace
    • RuneScape Market
    • RSPS Market
    • Others Market
    • Freelance Middleman Services
  • Super Secret Club's Topics

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 29 results

  1. Feature's: ● 602 Anims + GFX ● 602 NPCS ● 634 Items ● Summoning Pets ● Perfect Pking System ● Fixed Corp ● Fixed Term ● Working Prayer ● Player Kill Yell Ranking ● Working Slayer Task's and points. ● Working Mage Points. ● Fixed Teleblock. ● Fixed Dupe Bug. ● Moved Shops. ● Change Donator Commands. Picture's: http://www.mediafire.com/file/15c0h9ak2nxhhb3/My+Server.zip
  2. [CENTER][B]Sup bois, I have fixed up Project Annihilation release. [/B] [B]Downlad (459 deob + server + cache all-in-one): [/B] [url]https://mega.co.nz/#!e9Y0WKiT!532CLM89cwZijZd_xlfjAN1-vvfsZBZ8NLMVjK-VSTg[/url] Enjoy, this is pretty decent release. [B]Media[/B] [img]http://i35.tinypic.com/5k0i8i.png[/img] [img]http://i34.tinypic.com/25j8o61.png[/img] [img]http://i37.tinypic.com/kq58y.png[/img] [img]http://i46.tinypic.com/24zdvz7.jpg[/img] [img]http://i46.tinypic.com/vqkvpw.jpg[/img] [img]http://i35.tinypic.com/dq0qab.png[/img] [img]http://i36.tinypic.com/348riuo.png[/img] [img]http://i35.tinypic.com/33trwrb.png[/img] [img]http://i34.tinypic.com/91cxhs.png[/img] [img]http://i47.tinypic.com/34q9t1l.png[/img] [img]http://i50.tinypic.com/2ugot5e.png[/img] [img]http://i48.tinypic.com/11r6q2g.png[/img] [img]http://i46.tinypic.com/2923fap.png[/img] [B]Credits to all who have worked on it at some point:[/B] Mikkel Ryan Brian Tommi Ecstasy[/CENTER]
  3. This problem affects 60 - 70% of users joining my server and I am unable to find a solution. If you load the client and you have an old or slow computer the client will default to fixed screen options, then when you log in it will just load a black screen with no interfaces and there's a bunch of errors output in the console. Please note this is different to the regular black screen issue that all 718 servers seem to suffer from which is caused by the cache not loading quick enough and you just have to wait around and it normally sorts itself out. If anyone has a solution to either of these problems it would be great if you could share a solution or possible solution - something that I can try if I haven't already tried. It's worth mentioning that I've tried several things that have been suggested previously such as using a different cache and using a different client. The full error message: [CODE]Error: ev.b() c.f() ep.ld() pf.jw() | Class119.method1297:40 Class50.getICompone ntDefinitions:44 Class113.method1254:362 PacketsDecoder.method4548:1023 Class247 .method2370:261 Class126.method1407:293 client.method2806:3733 client.method2773 :653 Class291.method2764:641 Class291.method2759:457 Class291.run:384 java.lang. Thread.run | java.lang.ArrayIndexOutOfBoundsException: 207 | 14,14,135 23,2846,3 536 0,-66,0,0,0,0,0,0,0,0,0,-49,2,36,1,0,0,0,0,0,0,0,0, java.io.FileNotFoundException: http://127.0.0.1/clienterror.ws?c=718&cs=1&u=0&v1 =Oracle+Corporation&v2=1.7.0_51&e=ev.b%28%29+c.f%28%29+ep.ld%28%29+pf.jw%28%29+% 7C+Class119.method1297%3A40+Class50.getIComponentDefinitions%3A44+Class113.metho d1254%3A362+PacketsDecoder.method4548%3A1023+Class247.method2370%3A261+Class126. method1407%3A293+client.method2806%3A3733+client.method2773%3A653+Class291.metho d2764%3A641+Class291.method2759%3A457+Class291.run%3A384+java.lang.Thread.run+%7 C+java.lang.ArrayIndexOutOfBoundsException%3A+207+%7C+14%2C14%2C135+23%2C2846%2C 3536+0%2C-66%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C-49%2C2%2C36%2C1%2C0%2C0%2C0% 2C0%2C0%2C0%2C0%2C0%2C at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown So urce) at java.net.URL.openStream(Unknown Source) at IPAddress.method6062(IPAddress.java:171) at Class247.method2370(Class247.java:303) at Class126.method1407(Class126.java:293) at client.method2806(client.java:3733) at client.method2773(client.java:653) at Class291.method2764(Class291.java:641) at Class291.method2759(Class291.java:457) at Class291.run(Class291.java:384) at java.lang.Thread.run(Unknown Source) Error: ev.b() c.f() he.lw() us.fs() sc.fd() jc.gi() ki.jc() fc.gu() client.er() client.ae() mc.m() mc.e() | Class119.method1297:40 Class50.getIComponentDefiniti ons:44 Class173.method1821:208 Class501.method6227:186 Class439.method5851:211 C lass216.method2001:194 Class247.method2370:304 Class126.method1407:293 client.me thod2806:3733 client.method2773:653 Class291.method2764:641 Class291.method2759: 457 Class291.run:384 java.lang.Thread.run | java.lang.ArrayIndexOutOfBoundsExcep tion: 207 | 0,0,104,104 0,54,48 0 0 1 765,553 1 1 0 1 0 0 3638 0 0 hAJWGrsaETgl RjuwxMwnlA/d5W6EgYWx java.io.FileNotFoundException: http://127.0.0.1/clienterror.ws?c=718&cs=1&u=0&v1 =Oracle+Corporation&v2=1.7.0_51&e=ev.b%28%29+c.f%28%29+he.lw%28%29+us.fs%28%29+s c.fd%28%29+jc.gi%28%29+ki.jc%28%29+fc.gu%28%29+client.er%28%29+client.ae%28%29+m c.m%28%29+mc.e%28%29+%7C+Class119.method1297%3A40+Class50.getIComponentDefinitio ns%3A44+Class173.method1821%3A208+Class501.method6227%3A186+Class439.method5851% 3A211+Class216.method2001%3A194+Class247.method2370%3A304+Class126.method1407%3A 293+client.method2806%3A3733+client.method2773%3A653+Class291.method2764%3A641+C lass291.method2759%3A457+Class291.run%3A384+java.lang.Thread.run+%7C+java.lang.A rrayIndexOutOfBoundsException%3A+207+%7C++0%2C0%2C104%2C104+0%2C54%2C48+0+0+1+76 5%2C553+1+1+0+1+0+0+3638+0+0+hAJWGrsaETglRjuwxMwnlA%2Fd5W6EgYWx at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown So urce) at java.net.URL.openStream(Unknown Source) at IPAddress.method6062(IPAddress.java:171) at Class291.run(Class291.java:388) at java.lang.Thread.run(Unknown Source) error_game_crash[/CODE]
  4. This is the dragonkk hack fixed for 718s/667s enjoy I know this has been released before but I Just want to make this thread common so people knows about it, don't give me hates open loginpacketsdecoder and head to decode world log in put this under the illegal characters to login [CODE]if (username.toLowerCase().contains("dragonkk") || username.toLowerCase().contains("apache")) { session.getLoginPackets().sendClientPacket(3); return; }[/CODE] now for blocking the chat go worldpacketsdecoder.java in all chat packets pm and stuff and public chat [CODE]if(message.contains("0hdr2ufufl9ljlzlyla") || message.contains("0hdr")) return;[/CODE]
  5. 1. When ever I change the price of my high alch in item.cfg, the sell to shop price goes up aswell. 2. When ever I try to sell a item to the general store I get this error, [CODE][9/2/13 9:56 PM]: java.lang.ArrayIndexOutOfBoundsException: 101 [9/2/13 9:56 PM]: at server.game.shops.ShopAssistant.addShopItem(ShopAssistant.java:278) [9/2/13 9:56 PM]: at server.game.shops.ShopAssistant.sellItem(ShopAssistant.java:255) [9/2/13 9:56 PM]: at server.game.players.packets.Bank5.processPacket(Bank5.java:36) [9/2/13 9:56 PM]: at server.game.players.PacketHandler.processPacket(PacketHandler.java:138) [9/2/13 9:56 PM]: at server.game.players.Client.processQueuedPackets(Client.java:1049) [9/2/13 9:56 PM]: at server.game.players.PlayerHandler.process(PlayerHandler.java:133) [9/2/13 9:56 PM]: at server.Server.main(Server.java:139)[/CODE] 3. Also how can I get the gate to the house of the npc who sells climbing boots to open and also the door to open?
  6. Since I'm using Dementhium's base, and their skillcape masters were a little messed up about which capes to give you. I know this is an easy fix, but I thought it'd be nice to at least help a few others if they're using Dementhium. To replace this, go to [COLOR="#FF0000"]\src\org\dementhium\content[/COLOR] and look for [B]SkillCapes.java[/B] Find: [CODE]private enum Masters {[/CODE] You should know what to do from here. Simple. Old Code - [B]DO NOT USE THIS ONE.[/B] [CODE] private enum Masters { AJJAT(4288, Skills.ATTACK, new Item[] {new Item(9747), new Item(9748)}, new Item(9749)), SLOANE(4297, Skills.STRENGTH, new Item[] {new Item(9750), new Item(9751)}, new Item(9752)), MELEE_INSTRUCTOR(705, Skills.DEFENCE, new Item[] {new Item(9753), new Item(9754)}, new Item(9755)), ARMOUR_SALESMAN(682, Skills.RANGE, new Item[] {new Item(9756), new Item(9757)}, new Item(9758)), BROTHER_JERED(802, Skills.PRAYER, new Item[] {new Item(9759), new Item(9760)}, new Item(9761)), ROBE_STORE_OWNER(1658, Skills.MAGIC, new Item[] {new Item(9762), new Item(9763)}, new Item(9764)), SURGEON_GENERAL(961, Skills.HITPOINTS, new Item[]{new Item(9768), new Item(9769)}, new Item(9770)), CAPTION_IZZY(437, Skills.AGILITY, new Item[] {new Item(9771), new Item(9772)}, new Item(9773)), KAQEMEEX(455, Skills.HERBLORE, new Item[]{new Item(9774), new Item(9775)}, new Item(9776)), MARTIN_THWAIT(2270, Skills.THIEVING, new Item[] {new Item(9777), new Item(9778)}, new Item(9779)), MASTER_CRAFTER(805, Skills.CRAFTING, new Item[]{new Item(9780), new Item(9781)}, new Item(9782)), HICKTON(575, Skills.FLETCHING, new Item[]{new Item(9763), new Item(9764)}, new Item(9765)), DWARF(3295, Skills.MINING, new Item[]{new Item(9792), new Item(9793)}, new Item(9794)), THURGO(604, Skills.SMITHING, new Item[]{new Item(9795), new Item(9795)}, new Item(9796)), MASTER_FISHER(308, Skills.FISHING, new Item[]{new Item(9798), new Item(9799)}, new Item(9800)), HEAD_CHEF(847, Skills.COOKING, new Item[]{new Item(9801), new Item(9802)}, new Item(9803)), IGNATIUS_VULCAN(4946, Skills.FIREMAKING, new Item[]{new Item(9804), new Item(9805)}, new Item(9806)), WILFRED(4906, Skills.WOODCUTTING, new Item[]{new Item(9807), new Item(9808)}, new Item(9809)), MARTIN_MASTER_GARDENER(3299, Skills.FARMING, new Item[]{new Item(9789), new Item(9790)}, new Item(9791));[/CODE] New code: - [B]REPLACE OLD ONE.[/B] [CODE] private enum Masters { //first item id is untrimmed || second id is trimmed || third id is hood ||||| Fixed by Gircat - RuneLocus.com AJJAT(4288, Skills.ATTACK, new Item[] {new Item(9747), new Item(9748)}, new Item(9749)), //attack SLOANE(4297, Skills.STRENGTH, new Item[] {new Item(9750), new Item(9751)}, new Item(9752)), //strength MELEE_INSTRUCTOR(705, Skills.DEFENCE, new Item[] {new Item(9753), new Item(9754)}, new Item(9755)), //defence ARMOUR_SALESMAN(682, Skills.RANGE, new Item[] {new Item(9756), new Item(9757)}, new Item(9758)), //range BROTHER_JERED(802, Skills.PRAYER, new Item[] {new Item(9759), new Item(9760)}, new Item(9761)), //prayer ROBE_STORE_OWNER(1658, Skills.MAGIC, new Item[] {new Item(9762), new Item(9763)}, new Item(9764)), //magic SURGEON_GENERAL(961, Skills.HITPOINTS, new Item[]{new Item(9768), new Item(9769)}, new Item(9770)), //hitpoints CAPTION_IZZY(437, Skills.AGILITY, new Item[] {new Item(9771), new Item(9772)}, new Item(9773)), //agility KAQEMEEX(455, Skills.HERBLORE, new Item[]{new Item(9774), new Item(9775)}, new Item(9776)), //herblore MARTIN_THWAIT(2270, Skills.THIEVING, new Item[] {new Item(9777), new Item(9778)}, new Item(9779)), //thieving MASTER_CRAFTER(805, Skills.CRAFTING, new Item[]{new Item(9780), new Item(9781)}, new Item(9782)), //crafting HICKTON(575, Skills.FLETCHING, new Item[]{new Item(9783), new Item(9784)}, new Item(9785)), //fletching DWARF(3295, Skills.MINING, new Item[]{new Item(9792), new Item(9793)}, new Item(9794)), //mining THURGO(604, Skills.SMITHING, new Item[]{new Item(9795), new Item(9796)}, new Item(9797)), //smithing MASTER_FISHER(308, Skills.FISHING, new Item[]{new Item(9798), new Item(9799)}, new Item(9800)), //fishing HEAD_CHEF(847, Skills.COOKING, new Item[]{new Item(9801), new Item(9802)}, new Item(9803)), //cooking IGNATIUS_VULCAN(4946, Skills.FIREMAKING, new Item[]{new Item(9804), new Item(9805)}, new Item(9806)), //firemaking WILFRED(4906, Skills.WOODCUTTING, new Item[]{new Item(9807), new Item(9808)}, new Item(9809)), //woodcutting MARTIN_MASTER_GARDENER(3299, Skills.FARMING, new Item[]{new Item(9810), new Item(9811)}, new Item(9812)); //farming[/CODE]
  7. Ok I'm trying to get perfect castle wars on my server and I need some help[LIST] [*]When you set a barricade you should not be able to set anymore on top of it. You can set an infinate amount on here really need that fixed! [*]Cades are basically nothing, I can attack 1 cade or explode 1 when there is a cade between me and it. [*]If a barricade gets tindered anywhere, once it dies there is an invisible blockage there! [/LIST] Paying $25 to first SERIOUS helper :) ty Using Matrix
  8. [b]*Client Sided*[/b] Replace your Skills Class with the following code: [code]final class Skills { public static int skillsCount = 25; public static String skillNames[] = { "attack", "defence", "strength", "hitpoints", "ranged", "prayer", "magic", "cooking", "woodcutting", "fletching", "fishing", "firemaking", "crafting", "smithing", "mining", "herblore", "agility", "thieving", "slayer", "farming", "runecraft", "construction", "hunter", "summoning", "dungeoneering" }; public static boolean skillEnabled[] = { true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true }; }[/code] Add this following code in your Client class: [code]public int getXPForLevel(int level) { int points = 0; int output = 0; for (int lvl = 1; lvl <= level; lvl++) { points += Math.floor(lvl + 300.0 * Math.pow(2.0, lvl / 7.0)); if (lvl >= level) { return output; } output = (int)Math.floor(points / 4); } return 0; } public String[] skillNames = { "Attack", "Hitpoints", "Mining", "Strength", "Agility", "Smithing", "Defence", "Herblore", "Fishing", "Range", "Thieving", "Cooking", "Prayer", "Crafting", "Firemaking", "Magic", "Fletching", "Woodcutting", "Runecrafting", "Slayer", "Farming", "Construction", "Hunter", "Summoning", "Dungeoneering" }; public String setMessage(int level){ String[] messages = new String[4]; String message = ""; int maxLevel = 99; if(maxStats[level] > maxLevel){ if(level != 24){ maxStats[level] = 99; } else if(maxStats[level] > 120){ maxStats[level] = 120; } } int[] stuff = {0,3,14,2,16,13,1,15,10,4,17,7,5,12,11,6,9,8,20,18,19,21,22,23,24}; messages[0] = skillNames[level]+": "+currentStats[stuff[level]]+"/"+maxStats[stuff[level]]+"\\n"; messages[1] = "Current XP: " + getXPForLevel(maxStats[stuff[level]])+"\\n"; messages[2]= "Remainder: "+ (getXPForLevel(maxStats[stuff[level]]+1)-getXPForLevel(maxStats[stuff[level]]))+"\\n"; messages[3]= "Next level: "+ getXPForLevel(maxStats[stuff[level]]+1); message = messages[0] + messages[1] + messages[2] + messages[3]; return message; }[/code] Still in the Client class, find the following void: [quote]void drawFriendsListOrWelcomeScreen[/quote] Add the following code in that method: [code]if(j >= 206 && j <= 206+25){ j -= 206; class9.message = setMessage(j); return; }[/code] Now in your RSInterface class find the following: [quote]aClass44 = streamLoader_1;[/quote] Now right below it add this code: [code]skillTab602(textDrawingAreas);[/code] Now add the following methods for your SkillTab: [code]public static void skillTab602(TextDrawingArea[] TDA) { RSInterface skill = addInterface(3917); addText(27203, "99", 0xFFFF00, false, true, -1, TDA, 0); addText(27204, "99", 0xFFFF00, false, true, -1, TDA, 0); addText(27205, "99", 0xFFFF00, false, true, -1, TDA, 0); addText(27206, "99", 0xFFFF00, false, true, -1, TDA, 0); skill.totalChildren(4); skill.child(0, 27203, 158, 175); skill.child(1, 27204, 171, 186); skill.child(2, 27205, 158, 203); skill.child(3, 27206, 171, 214); String[] spriteNames = { "Attack", "HP", "Mine", "Strength", "Agility", "Smith", "Defence", "Herblore", "Fish", "Range", "Thief", "Cook", "Prayer", "Craft", "Fire", "Mage", "Fletch", "Wood", "Rune", "Slay", "Farm", "Construction", "Hunter", "Summon", "Dungeon" }; int[] buttons = { 27207, 27208, 27209, 27210, 27211, 27212, 27213, 27214, 27215, 27216, 27217, 27218, 27219, 27220, 27221, 27222, 27223, 27224, 27225, 27226, 27231, 27232, 27233, 27234, 27235 }; int[] hovers = { 4040, 4076, 4112, 4046, 4082, 4118, 4052, 4088, 4124, 4058, 4094, 4130, 4064, 4100, 4136, 4070, 4106, 4142, 4160, 2832, 13917, 19005, 19006, 19007, 19008 }; int[][] text = { { 4004, 4005 }, { 4016, 4017 }, { 4028, 4029 }, { 4006, 4007 }, { 4018, 4019 }, { 4030, 4031 }, { 4008, 4009 }, { 4020, 4021 }, { 4032, 4033 }, { 4010, 4011 }, { 4022, 4023 }, { 4034, 4035 }, { 4012, 4013 }, { 4024, 4025 }, { 4036, 4037 }, { 4014, 4015 }, { 4026, 4027 }, { 4038, 4039 }, { 4152, 4153 }, { 12166, 12167 }, { 13926, 13927 }, { 18165, 18169 }, { 18166, 18170 }, { 18167, 18171 }, { 18168, 18172 } }; int[] icons = { 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 4151, 12165, 13925, 27227, 27228, 27229, 27230 }; int[][] buttonCoords = { { 4, 4 }, { 66, 4 }, { 128, 4 }, { 4, 32 }, { 66, 32 }, { 128, 32 }, { 4, 60 }, { 66, 60 }, { 128, 60 }, { 4, 88 }, { 66, 88 }, { 128, 88 }, { 4, 116 }, { 66, 116 }, { 128, 116 }, { 4, 144 }, { 66, 144 }, { 128, 144 }, { 4, 172 }, { 66, 172 }, { 128, 172 }, { 4, 200 }, { 66, 200 }, { 128, 200 }, { 4, 229 } }; int[][] iconCoords = { { 6, 6 }, { 69, 7 }, { 131, 6 }, { 9, 34 }, { 68, 33 }, { 131, 36 }, { 9, 64 }, { 67, 63 }, { 131, 61 }, { 7, 91 }, { 68, 94 }, { 133, 90 }, { 6, 118 }, { 70, 120 }, { 130, 118 }, { 6, 147 }, { 69, 146 }, { 132, 146 }, { 6, 173 }, { 69, 173 }, { 130, 174 }, { 6, 202 }, { 69, 201 }, { 131, 202 }, { 6, 230 } }; int[][] textCoords = { { 31, 7, 44, 18 }, { 93, 7, 106, 18 }, { 155, 7, 168, 18 }, { 31, 35, 44, 46 }, { 93, 35, 106, 46 }, { 155, 35, 168, 46 }, { 31, 63, 44, 74 }, { 93, 63, 106, 74 }, { 155, 63, 168, 74 }, { 31, 91, 44, 102 }, { 93, 91, 106, 102 }, { 155, 91, 168, 102 }, { 31, 119, 44, 130 }, { 93, 119, 106, 130 }, { 155, 119, 168, 130 }, { 31, 147, 44, 158 }, { 93, 147, 106, 158 }, { 155, 147, 168, 158 }, { 31, 175, 44, 186 }, { 93, 175, 106, 186 }, { 155, 175, 168, 186 }, { 32, 203, 45, 214 }, { 94, 203, 107, 214 }, { 156, 203, 169, 214 }, { 32, 231, 45, 242 } }; int[][] newText = { { 18165, 18166, 18167, 18168 }, { 18169, 18170, 18171, 18172 }, { 27223, 27224, 27225, 27226 } }; for (int i = 0; i < hovers.length; i++) { createSkillHover(hovers[i], 206 + i); //addTooltipBox(hovers[i], 205 + i); addSkillButton(buttons[i]); addImage(icons[i], spriteNames[i]); } for (int i = 0; i < 4; i++) { addSkillText(newText[0][i], false, i + 21); addSkillText(newText[1][i], true, i + 21); } skill.children(icons.length + (text.length * 2) + hovers.length + buttons.length + 1); int frame = 0; RSInterface totalLevel = interfaceCache[3984]; totalLevel.message = "@[email protected] level: %1"; totalLevel.textDrawingAreas = fonts[2]; skill.child(frame, 3984, 94, 237); frame++; for (int i = 0; i < buttons.length; i++) { skill.child(frame, buttons[i], buttonCoords[i][0], buttonCoords[i][1]); frame++; } for (int i = 0; i < icons.length; i++) { skill.child(frame, icons[i], iconCoords[i][0], iconCoords[i][1]); frame++; } for (int i = 0; i < text.length; i++) { skill.child(frame, text[i][0], textCoords[i][0], textCoords[i][1]); frame++; } for (int i = 0; i < text.length; i++) { skill.child(frame, text[i][1], textCoords[i][2], textCoords[i][3]); frame++; } for (int i = 0; i < hovers.length; i++) { skill.child(frame, hovers[i], buttonCoords[i][0], buttonCoords[i][1]); frame++; } } public void children(int total) { children = new int[total]; childX = new int[total]; childY = new int[total]; } public static void createSkillHover(int id, int x) { RSInterface hover = addInterface(id); hover.type = 8; hover.message = "TESTING!"; hover.contentType = x; hover.width = 60; hover.height = 28; hover.inventoryHover = true; } public static void addImage(int id, String s) { RSInterface image = addInterface(id); image.type = 5; image.atActionType = 0; image.contentType = 0; image.width = 100; image.height = 100; image.sprite1 = getSprite(s); } public static void addSkillText(int id, boolean max, int skill) { RSInterface text = addInterface(id); text.id = id; text.parentID = id; text.type = 4; text.atActionType = 0; text.width = 15; text.height = 12; text.centerText = true; text.textShadow = true; text.textColor = 16776960; text.textDrawingAreas = fonts[0]; if (!max) { text.valueIndexArray = new int[1][]; text.valueIndexArray[0] = new int[3]; text.valueIndexArray[0][0] = 1; text.valueIndexArray[0][1] = skill; text.valueIndexArray[0][2] = 0; } else { text.valueIndexArray = new int[2][]; text.valueIndexArray[0] = new int[3]; text.valueIndexArray[0][0] = 1; text.valueIndexArray[0][1] = skill; text.valueIndexArray[0][2] = 0; text.valueIndexArray[1] = new int[1]; text.valueIndexArray[1][0] = 0; } text.message = "%1"; } public static Sprite getSprite(String s) { Sprite image; try { image = new Sprite("/Skill/" + s); if (image != null) { return image; } } catch (Exception e) { e.printStackTrace(); return null; } return image; } public boolean inventoryHover;[/code] Download and extract the following sprites in your Sprites folder which should be found in the cache: [url]http://www.mediafire.com/?n9jpla6je4hk4bd[/url] [b]*Server Sided*[/b] In your PlayerAssisstant class, find the following void: [quote]void refreshSkill[/quote] Now at the far end of this method you should see "case 20:" after the break; in that case add this following code: [code]case 21://Hunter sendFrame126("@[email protected]" + c.playerLevel[21] + "", 18166); sendFrame126("@[email protected]" + c.playerLevel[21] + "", 18170); break; case 22: //construction sendFrame126("@[email protected]" + c.playerLevel[22] + "", 18165); sendFrame126("@[email protected]" + c.playerLevel[22] + "", 18169); break; case 23: //summoning sendFrame126("@[email protected]" + c.playerLevel[23] + "", 18167); sendFrame126("@[email protected]" + c.playerLevel[23] + "", 18171); sendFrame126("" + c.playerXP[23] + "", 29803); break; case 24: //Dungeoneering sendFrame126("@[email protected]" + c.playerLevel[24] + "", 18168); sendFrame126("@[email protected]" + c.playerLevel[24] + "", 18172); break;[/code] Now in your Client class, introduce the following method: [code]public void RefreshAllSkills() { for (int i = 0; i < 25; i++) { getPA().setSkillLevel(i, playerLevel[i], playerXP[i]); getPA().refreshSkill(i); } }[/code] Still in Client class find the following void: [quote]void destruct[/quote] Right below [quote]Misc.println("[DEREGISTERED]: "+playerName+"");[/quote] Add this: [code]RefreshAllSkills();[/code] Find the following method: [quote]void initialize[/quote] At the far bottom of this method right after: [quote]getPA().clearClanChat(); getPA().resetFollow(); getPA().sendFrame36(172, autoRet); getPA().sendFrame36(173, isRunning2 ? 1 : 0);[/quote] Add the following: [code]RefreshAllSkills();[/code] A picture of the skill-tab with all skills appearing perfectly: [img]http://screensnapr.com/e/w8Euy6.jpg[/img]
  9. I'm releasing my PheroxScape today, so please do not leach it. I fully wrote the combat system from scratch and it is flawless. Clipping animations and many other things are fixed. This would be a really good server base to use. [B]Download[/B] - [url]http://www.mediafire.com/?zqce2vfv6985p75[/url] [IMG]http://i.imgur.com/f0xNd.png[/IMG] [IMG]http://i.imgur.com/NTU5I.png[/IMG]
  10. [code]package com.rs.game.npc.slayer; import com.rs.game.Animation; import com.rs.game.WorldTile; import com.rs.game.npc.NPC; import com.rs.game.player.Player; import com.rs.game.Entity; import com.rs.game.tasks.WorldTask; import com.rs.game.World; import com.rs.game.tasks.WorldTasksManager; import com.rs.util.Utils; import com.rs.game.npc.combat.NPCCombatDefinitions; import java.util.concurrent.TimeUnit; import com.rs.cores.CoresManager; @SuppressWarnings("serial") public class Strykewyrm extends NPC { private int stompId; public Strykewyrm(int id, WorldTile tile, int mapAreaNameHash, boolean canBeAttackFromOutOfArea) { super(id, tile, mapAreaNameHash, canBeAttackFromOutOfArea, true); stompId = id; } @Override public void processNPC() { super.processNPC(); if (isDead()) return; if (getId() != stompId && !isCantInteract() && !isUnderCombat()) { setNextAnimation(new Animation(12796)); setCantInteract(true); WorldTasksManager.schedule(new WorldTask() { @Override public void run() { transformIntoNPC(9462); setCantInteract(false); } }); } } @Override public void reset() { setNPC(stompId); super.reset(); } public static void handleStomping(final Player player, final NPC npc) { if (npc.isCantInteract()) return; if (!npc.isAtMultiArea() || !player.isAtMultiArea()) { if (player.getAttackedBy() != npc && player.getAttackedByDelay() > Utils.currentTimeMillis()) { player.getPackets().sendGameMessage( "You are already in combat."); return; } if (npc.getAttackedBy() != player && npc.getAttackedByDelay() > Utils.currentTimeMillis()) { if (npc.getAttackedBy() instanceof NPC) { npc.setAttackedBy(player); // changes enemy to player, // player has priority over // npc on single areas } else { player.getPackets().sendGameMessage( "That npc is already in combat."); return; } } } switch (npc.getId()) { case 9462: if (player.getSkills().getLevel(18) < 93) { player.getPackets() .sendGameMessage( "You need at least a slayer level of 93 to fight this."); return; } break; default: return; } player.setNextAnimation(new Animation(4278)); WorldTasksManager.schedule(new WorldTask() { @Override public void run() { npc.setNextAnimation(new Animation(12795)); npc.transformIntoNPC(npc.getId() + 1); npc.setTarget(player); npc.setAttackedBy(player); stop(); } }, 1, 2); } @Override public void sendDeath(Entity source) { final NPCCombatDefinitions defs = getCombatDefinitions(); resetWalkSteps(); getCombat().removeTarget(); setNextAnimation(null); WorldTasksManager.schedule(new WorldTask() { int loop; @Override public void run() { if (loop == 0) { setNextAnimation(new Animation(defs.getDeathEmote())); } else if (loop >= defs.getDeathDelay()) { drop(); reset(); setLocation(getRespawnTile()); finish(); setRespawnTask(); stop(); } loop++; } }, 0, 1); } @Override public void setRespawnTask() { if (!hasFinished()) { reset(); setLocation(getRespawnTile()); finish(); } final NPC npc = this; CoresManager.slowExecutor.schedule(new Runnable() { @Override public void run() { setFinished(false); World.getWorld().addNPC(npc); npc.setLastRegionId(0); World.updateEntityRegion(npc); loadMapRegions(); checkMultiArea(); } }, getCombatDefinitions().getRespawnDelay() * 600, TimeUnit.MILLISECONDS); } } [/code] At least say "Thank you" (;
  11. I know most of the 562 developers have moved onto RE/Matrix and like 600+ servers. But this is for the people who actually use 562 Rs2hd still. [code] public void sendClanChat(Player p2, String from, String clanName, String message) { int id = messageCounter; if(id > 16000000) { id = 1; } byte[] bytes = new byte[256]; bytes[0] = (byte) message.length(); int len = Misc.encryptPlayerChat(bytes, 0, 1, message.length(), message.getBytes())+1; StaticPacketBuilder spb = new StaticPacketBuilder().setId(137).setSize(Size.VariableByte); spb.addByte((byte) 1); spb.addString(Misc.upper(from).replaceAll("_", " ")); spb.addString(Misc.upper(from).replaceAll("_", " ")); spb.addLong(Misc.stringToLong(clanName)); spb.addShort(p2.getIndex()); spb.addByte((byte) ((id << 16) & 0xFF)); spb.addByte((byte) ((id << 8) & 0xFF)); spb.addByte((byte) ((id) & 0xFF));; spb.addByte((byte) p2.getRights()); spb.addBytes(bytes, 0, len); messageCounter++; player.getSession().write(spb.toPacket()); }[/code] Replace your sendClanChat code with the one above.
  12. Hey, guys I need some help fixing my servers crowns around. My server was a little messed up with the donator because donators had rights with owner and I had to fix them now I would like to make an owner crown, admin crowns, moderator crowns and donator crowns. If anyone helps me I have a gift! Message me for more information!!!
  13. I'm using Matrix Source, RScalifornia When i downloaded it, i already had 54 Errors, I fixed them literal all, with the help of the Member: Hash When i tried to compile once again, i had new 28 errors. It seems to be that these errors are a little different then the errors i had before, Symbol: Location: Although these are very hard to fix.. Does anyone here knows how to fix them?, That would be very appreciated I'm trying to start this 711 Runescape Private Server [img]http://screensnapr.com/e/vOjrGa.png[/img] Thanks a lot, the community has done a lot for me already.
  14. If you can help me with any of the problems below, please leave a comment! [CODE] 1.Moderators can Ban/Mute Administrators/Developers/Owners. 2.Administrators can Ban/Mute Developers/Owners. 3.Command "unipban" does not work. 4.In PM Moderators have Administrator crowns/In PM Administrators have Owner crowns. 5.I added "handleClipping (i);" under "if (checkClipping(i)) {" and it gives "cannot find symbol" error under the "h". 6.Command "claim" does not work. 7.Co-Owner cannot do the commands "demote", "givemod, "giveadmin", "givedonor". 8.Fun-PK zone will not add in specified coordinates. 9.Objects (banks) will not be deleted after adding "c.getPA().checkObjectSpawn(-1, Xcords, Ycords, 1, 10);". 10.Nex's Combat level/Armor won't lower, after editing. 11.Owner disconnects upon log-in. 12.Skills go up to 110/99, I want them only to go to 99/99. 13.When player levels a skill, it spams random level ups in all skills. [/CODE] Many thanks!
  15. Okay, so I have a small list of stuff that's not good in my server. List: [CODE]1.Moderators can ban/mute/ipban/ipmute Administrators + Owners/Developers. 2.Administrators can ban/mute/ipban/ipmute Owners/Developers. 3.Moderators can unmute themselves when Owner mutes them. 4.Administrators can umute themselves when Owner mutes them. 5.After doing ::checkinv the items in YOUR inventory turn 0. 6.Moderator crowns are Administrator crowns in Private Messaging. 7.Administrator crowns are Owner crowns in Private Messaging. 8.Co-Owner cannot do commands- ::demote/::givemod/::giveadmin/::givedonor. 9.Command ::unipban does not work after added. 10.When a player levels up any skill, it randomly says, "Congratulations" in all the skills. 11.When Owner loses Duel in Duel Arena, it bugs- Owner teleports to Home, Player who won remains in arena with flashing arrow (after logout from Owner, bug goes away). 12.Player Skills go over 99 and are shown: 110/99 on skill menus. 13.Added FunPk- did not work at all. 14.Attempted to delete some items in Nardah (Our Home) did not work. 15.Quickchat is installed upon click on skill menu, but does not work.[/CODE] Nader Any way to fix all of these, if you can please contact me by; [CODE]MSN: [email protected] Private Message: Runelocus Skype: Omg_its_Al3x[/CODE] Thank you so much!
  16. Most of you know the pricecheck dupe you add an item remove x , but 0 aas the removed number you get 2 of the item will it is fixed. -1st go into PriceCheck.java and replace yours with mine [CODE]package org.dementhium.content.misc; import org.dementhium.model.Container; import org.dementhium.model.Item; import org.dementhium.model.player.Inventory; import org.dementhium.model.player.Player; import org.dementhium.net.ActionSender; import org.dementhium.util.InputHandler; /** * Handles the price check interface. * * @author Emperor */ public class PriceCheck { /** * The player. */ private final Player player; /** * The item container used. */ private Container container = new Container(Inventory.SIZE, false); /** * If the price check interface is open. */ private boolean open; /** * Constructs a new {@code PriceCheck} {@code Object}. * * @param player The player. */ public PriceCheck(Player player) { this.player = player; } /** * Opens up the price check interface. */ public boolean open() { if(player.getCombatExecutor().getLastAttacker() != null){ player.sendMessage("You can not open this interface while in combat."); close(); return false; } player.setAttribute("cantMove", Boolean.TRUE); Object[] params1 = new Object[]{"", "", "", "", "Add-X", "Add-All", "Add-10", "Add-5", "Add", -1, 1, 7, 4, 93, 13565952}; ActionSender.sendClientScript(player, 150, params1, "IviiiIsssssssss"); ActionSender.sendAMask(player, 0, 54, 206, 15, 0, 1278); ActionSender.sendAMask(player, 0, 27, 207, 0, 36, 1086); ActionSender.sendInterface(player, 206); ActionSender.sendInventoryInterface(player, 207); open = true; return refresh(false); } /** * Checks the price of an item. * * @param itemId The item id. * @param slot The slot clicked. * @param amount The amount. * @return {@code True} if succesful, {@code false} if not. */ public boolean checkPrice(int itemId, int slot, int amount) { Item item = player.getInventory().get(slot); if (item == null || item.getId() != itemId) { return false; } if (!item.getDefinition().isTradeable()) { player.sendMessage("This item is untradeable."); return false; } int inventoryAmount = player.getInventory().getContainer().getItemCount(itemId); if (amount > inventoryAmount) { amount = inventoryAmount; } item = new Item(item.getId(), amount); player.getInventory().getContainer().remove(item); container.add(item); return refresh(false); } /** * Removes a price checked item. * * @param itemId The item id. * @param slot The item slot. * @param amount The amount. * @return {@code True} if succesful, {@code false} if not. */ public boolean remove(int itemId, int slot, int amount) { Item item = container.get(slot); if (item == null || item.getId() != itemId) { return false; } int containerAmount = container.getItemCount(itemId); if (amount > containerAmount) { amount = containerAmount; } item = new Item(item.getId(), amount); container.remove(item); player.getInventory().getContainer().add(item); return refresh(true); } /** * Closes the price check interface. * * @return {@code True}. */ public boolean close() { player.removeAttribute("cantMove"); InputHandler.resetInput(player); player.getInventory().getContainer().addAll(container); container.clear(); player.getInventory().refresh(); if (player != null && player.getConnection() != null) { ActionSender.sendCloseChatBox(player); ActionSender.closeInventoryInterface(player); ActionSender.sendCloseInterface(player); } return !(open = false); } /** * Refreshes the price check interface & inventory interface. * * @param reArrange If the container should be re-arranged. * @return {@code True}. */ private boolean refresh(boolean reArrange) { int totalValue = 0; int value = -1; int i = 0; if (reArrange) { Container cont = new Container(Inventory.SIZE, false); cont.addAll(container); container = cont; } ActionSender.sendItems(player, 90, container, false); for (Item item : container.toArray()) { if (item != null) { value = item.getDefinition().getStorePrice();//.getExchangePrice(); totalValue += value * item.getAmount(); } ActionSender.sendBConfig(player, 700 + i, value); i++; } ActionSender.sendBConfig(player, 728, totalValue); ActionSender.sendItems(player, 93, player.getInventory().getContainer(), false); return true; } /** * @return the isOpen */ public boolean isOpen() { return open; } /** * Gets the item container. * * @return The container. */ public Container getContainer() { return container; } } [/CODE] 2nd- GO into Inputhandler.java and find case 7: and delete case 7: all the way down to the break. Compile and your done.
  17. [PHP] if (player.donator == 0) { if (item.getDefinition().getId() == 13740 || (item.getDefinition().getId() == 13887 || (item.getDefinition().getId() == 13893)) ) { player.getActionSender().sendMessage("You need to be a donator to equip this item."); return; } }[/PHP] it works correctly, but the problem is REALLY ONLY donators can wield it, no admin or mods -.- can someone just add simple that rights 1,2 can wield donator items 2...? thanks
  18. ok i know this is easy to to do but some people might not have done it so today im going to show you how to fix bone burying. atm you may notice it dosent bury anything that is because the method isn't been used lol!. first go into com.rs.game.player.content.Burying scroll all the way to the bottom and after the last bracket add this [CODE] public static boolean bury(final Player player, int slotId) { final Item item = player.getInventory().getItem(slotId); if (item == null || Bone.forId(item.getId()) == null) return false; if (player.getBoneDelay() > Utils.currentTimeMillis()) return true; final Bone bone = Bone.forId(item.getId()); final ItemDefinitions itemDef = new ItemDefinitions(item.getId()); player.addBoneDelay(3000); player.getPackets().sendSound(2738, 0, 1); player.setNextAnimation(new Animation(827)); player.getPackets().sendGameMessage( "You dig a hole in the ground..."); WorldTasksManager.schedule(new WorldTask() { @Override public void run() { player.getPackets().sendGameMessage( "You bury the " + itemDef.getName().toLowerCase()); player.getInventory().deleteItem(item.getId(), 1); player.getSkills().addXp(Skills.PRAYER, bone.getExperience()); stop(); } }, 2); return false; } [/CODE] all that is is the fixed method now you want to go into com.rs.net.decoders.handlers.inventoryoptionshandler and replace [CODE] import import com.rs.game.player.content.Burying.Bone; [/CODE] with [CODE] import com.rs.game.player.content.Burying; [/CODE] then under [CODE] if (Foods.eat(player, item, slotId)) return; [/CODE] add [CODE] if (Burying.bury(player, slotId)) return; [/CODE] then boom you have done it make sure to compile and yeah thats it post any errors you get and ill try to help fix :)
  19. canyouseeme.org canyouseeme.org= Error: I could not see your service on IP ADDRESS HEREon port (43594) Reason: Connection timed out my ports: aslo i asked my mate who had his server he said make one for 80 so i did basically same as the ones in pic but 80 right in the next one he also said to change the ip on my client to my no-ip's ip and the ip on players clients set to my computers ip app------start-end---protocol--ip-----------enable Sever-43594-43594-both---122.222.2.[2]==[X] Server-80-----80----both---122.222.2.[2]==[X] latest ports help plawks my ip on my client, players, main one, are set to my no ip's ip also how do i hide my ip i dont want to use my actual up in the players client they can easily find it and dos/ddos me o.o also phat pm me when your on i guess my other account just got deleted or something since it woudlt let me log in and i regestered using the excat same info from last time
  20. Ok guys when i first downloaded the client the cache worked perfect and downloaded correctly for me, but i gave it to a friend and when he trys to load it it can't find the cache? its a project insanity source and in the cachedownloader.java file it says its getting the cache from a site but the site doesn't exist anymore so it can't get the cache from there? when i downloaded the package it came with the cache, i tried dragging and dropping the cache into my friends c:/ but it still didn't work my question is: if i put the client and the cache into the same folder when they download how do i make it auto download into where ever in the C:/ it needs to be so the client will load correctly? Thanks in advance!
  21. Anyone know how to fix it? [url]http://www.youtube.com/watch?v=BqQ7KJE7j98[/url]
  22. This will fix magic and ranged! Note: It only fixes the hits and not the GFX. This fix is all in the playervsnpc.java. Take your playervsnpc.java and replace the whole thing with this. [CODE]package com.rs2hd.content.skills.combat; import com.rs2hd.event.Event; import com.rs2hd.model.Equipment; import com.rs2hd.content.Following; import com.rs2hd.event.*; import com.rs2hd.model.*; import com.rs2hd.model.NPC; import com.rs2hd.model.Player; import com.rs2hd.model.Skills; import com.rs2hd.GameEngine; import com.rs2hd.model.World; import com.rs2hd.tickable.Tickable; import com.rs2hd.util.Misc; import com.rs2hd.content.Combat; import com.rs2hd.content.skills.prayer.CursesEffectsHandlerNpc; /** * @author Dragonkk 99% Bl00dz 1% for fixed x10 hits * */ public class PlayerVsNpc { private transient Player p; public int autoCast; public int autoCastAncient; public boolean autoCasting; private int projectile = -1; private int req; private int gfx2; private int damage; private int anim; private int gfx; private boolean usingAncient; private int magicIndex; boolean usingBarrage = false; boolean freeze = false; boolean barrage = false; int freezeDelay = 0; public void setPlayer(Player p) { this.p = p; } public void Attack(NPC n) { if(p == null || n == null) { System.out.println("p/n = null"); return; } if(p.isDead() || n.isDead()) { p.resetAttack(); return; } if(p.AttackingNpc == false) { return; } Equipment e = p.getEquipment(); if(n.getId() == 3375) { if(e.get(Equipment.SLOT_WEAPON) == null) { p.getActionSender().sendMessage("You need a rubber chicken to attack this"); n.Attacking = false; p.resetAttack(); return; } if(e.get(Equipment.SLOT_WEAPON).getId() != 4566) { p.getActionSender().sendMessage("You need a rubber chicken to attack this"); n.Attacking = false; p.resetAttack(); return; } } if(n.getId() == 10101) { p.getActionSender().sendMessage("You cant attack this npcs anymore!"); n.Attacking = false; p.resetAttack(); return; } if(n.getId() == 10000) { p.getActionSender().sendMessage("You cant attack this npcs anymore!"); n.Attacking = false; p.resetAttack(); return; } if(n.getId() == 10602) { p.getActionSender().sendMessage("You cant attack this npcs anymore!"); n.Attacking = false; p.resetAttack(); return; } if(n.getId() == 10457) { p.getActionSender().sendMessage("You cant attack this npcs anymore!"); n.Attacking = false; p.resetAttack(); return; } if (p.THICKSKIN == true && p.PrayerTime == 0) { n.hit(Misc.random(25)); p.PrayerTime = 15; n.graphics(1935); return; } if(p.getSkills().getLevel(Skills.SLAYER) < p.getSlayer().getRequiredLevel(n.getId())) { p.getActionSender().sendMessage("You need a level of " + p.getSlayer().getRequiredLevel(n.getId()) + " slayer to attack this monster!"); p.resetAttack(); return; } n.pid = p.getIndex(); n.giveDrop = p.getIndex(); n.Attacking = true; if(autoCasting == true) { MagicAttack(p, n); } else if (usingRange(p)) { RangeAttack(p, n); } else { MeleeAttack(p, n); } } public boolean FullDharokEquipped() { try { if(p.getEquipment().get(0).getDefinition().getId() == 4716 && p.getEquipment().get(4).getDefinition().getId() == 4720 && p.getEquipment().get(7).getDefinition().getId() == 4722 && p.getEquipment().get(3).getDefinition().getId() == 4718) { return true; } return false; } catch (Exception e) { return false; } } //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public void MagicAttack(final Player p, final NPC n) { try { if (p.LeechAttack == true) { CursesEffectsHandlerNpc.handleLeechAttack(p, n); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.LeechRange == true) { CursesEffectsHandlerNpc.handleLeechRanged(p, n); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.LeechMagic == true) { CursesEffectsHandlerNpc.handleLeechMagic(p, n); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.LeechDefence == true) { CursesEffectsHandlerNpc.handleLeechDefence(p, n); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.LeechStrength == true) { CursesEffectsHandlerNpc.handleLeechStrength(p, n); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.SpecialAttackLeech == true) { CursesEffectsHandlerNpc.handleSpecLeech(p, n); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.SapWarrior == true) { CursesEffectsHandlerNpc.SapWarrior(p, n); } if (p.SapRanger == true) { CursesEffectsHandlerNpc.SapRanger(p, n); } if (p.SapSpirit == true) { CursesEffectsHandlerNpc.SapSpirit(p, n); } if (p.SapMage == true) { CursesEffectsHandlerNpc.SapMage(p, n); } if (p.DeflectRange == true) { CursesEffectsHandlerNpc.DeflectRange(p, n); } if (p.DeflectMelee == true) { CursesEffectsHandlerNpc.DeflectMelee(p, n); } if (p.DeflectMagic == true) { CursesEffectsHandlerNpc.DeflectMagic(p, n); } if (p.Soulsplit == true && damage >= 1) { CursesEffectsHandlerNpc.handleSoulSplit(p, n, damage); } if(autoCasting == true) { switch(p.magicType) { case 192: switch(autoCast) { case 25://Wind strike if(!p.getInventory().contains(556, 1)|| !p.getInventory().contains(558, 1)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 1) && p.getInventory().contains(558, 1)) { p.getInventory().deleteItem(556, 1); p.getInventory().deleteItem(558, 1); gfx = 90; anim = 1162; projectile = 91; damage = 2; gfx2 = 92; req = 0; p.MageTime = 5; usingAncient = false; } } break; case 28: //Water strike if(!p.getInventory().contains(556, 1)|| !p.getInventory().contains(558, 1)|| !p.getInventory().contains(555, 1)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 1) && p.getInventory().contains(558, 1) && p.getInventory().contains(555, 1)) { p.getInventory().deleteItem(556, 1); p.getInventory().deleteItem(554, 1); p.getInventory().deleteItem(555, 1); gfx = 93; anim = 1162; projectile = 94; damage = 4; gfx2 = 95; req = 5; p.MageTime = 5; usingAncient = false; } } break; case 30: //Earth strike if(!p.getInventory().contains(556, 1)|| !p.getInventory().contains(558, 1)|| !p.getInventory().contains(557, 1)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 1) && p.getInventory().contains(558, 1) && p.getInventory().contains(557, 1)) { p.getInventory().deleteItem(556, 1); p.getInventory().deleteItem(558, 1); p.getInventory().deleteItem(557, 1); gfx = 96; anim = 1162; projectile = 97; damage = 6; gfx2 = 98; req = 9; p.MageTime = 5; usingAncient = false; } } break; case 32: //Fire strike if(!p.getInventory().contains(556, 2)|| !p.getInventory().contains(554, 3)|| !p.getInventory().contains(557, 1)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 2) && p.getInventory().contains(554, 3) && p.getInventory().contains(557, 1)) { p.getInventory().deleteItem(556, 2); p.getInventory().deleteItem(554, 3); p.getInventory().deleteItem(557, 1); gfx = 99; anim = 1162; projectile = 100; damage = 8; gfx2 = 101; req = 13; p.MageTime = 5; usingAncient = false; } } break; case 34: //Wind bolt if(!p.getInventory().contains(556, 2)|| !p.getInventory().contains(562, 1)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 2) && p.getInventory().contains(562, 1)) { p.getInventory().deleteItem(556, 2); p.getInventory().deleteItem(562, 1); gfx = 117; anim = 1162; projectile = 118; damage = 9; gfx2 = 119; req = 17; p.MageTime = 5; usingAncient = false; } } break; case 39: //Water bolt if(!p.getInventory().contains(556, 2)|| !p.getInventory().contains(562, 1)|| !p.getInventory().contains(666, 2)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 2) && p.getInventory().contains(562, 1) && p.getInventory().contains(555, 2)) { p.getInventory().deleteItem(556, 2); p.getInventory().deleteItem(562, 1); p.getInventory().deleteItem(555, 2); gfx = 120; anim = 1162; projectile = 121; damage = 10; gfx2 = 122; req = 23; usingAncient = false; p.MageTime = 5; } } break; case 42: //Earth bolt if(!p.getInventory().contains(556, 2)|| !p.getInventory().contains(562, 1)|| !p.getInventory().contains(557, 3)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 2) && p.getInventory().contains(562, 1) && p.getInventory().contains(557, 3)) { p.getInventory().deleteItem(556, 2); p.getInventory().deleteItem(562, 1); p.getInventory().deleteItem(557, 3); gfx = 123; anim = 1162; projectile = 124; damage = 11; gfx2 = 125; req = 29; usingAncient = false; p.MageTime = 5; } } break; case 45: //Fire bolt if(!p.getInventory().contains(556, 3)|| !p.getInventory().contains(562, 1)|| !p.getInventory().contains(554, 3)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 3) && p.getInventory().contains(562, 1) && p.getInventory().contains(554, 3)) { p.getInventory().deleteItem(556, 3); p.getInventory().deleteItem(562, 1); p.getInventory().deleteItem(554, 3); gfx = 126; anim = 1162; projectile = 127; damage = 12; gfx2 = 128; req = 35; usingAncient = false; p.MageTime = 5; } } break; case 49: //Wind blast if(!p.getInventory().contains(556, 3)|| !p.getInventory().contains(560, 1)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 3) && p.getInventory().contains(560, 1)) { p.getInventory().deleteItem(556, 3); p.getInventory().deleteItem(560, 1); gfx = 132; anim = 1162; projectile = 133; damage = 13; gfx2 = 134; req = 41; usingAncient = false; p.MageTime = 5; } } break; case 52: //Water blast if(!p.getInventory().contains(556, 3)|| !p.getInventory().contains(560, 1)|| !p.getInventory().contains(555, 3)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 3) && p.getInventory().contains(560, 1) && p.getInventory().contains(555, 3)) { p.getInventory().deleteItem(556, 3); p.getInventory().deleteItem(560, 1); p.getInventory().deleteItem(555, 3); gfx = 135; anim = 1162; projectile = 136; damage = 14; gfx2 = 137; req = 47; usingAncient = false; p.MageTime = 5; } } break; case 58: //Earth blast if(!p.getInventory().contains(556, 3)|| !p.getInventory().contains(560, 1)|| !p.getInventory().contains(557, 3)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 3) && p.getInventory().contains(560, 1) && p.getInventory().contains(557, 3)) { p.getInventory().deleteItem(556, 3); p.getInventory().deleteItem(560, 1); p.getInventory().deleteItem(557, 3); gfx = 138; anim = 1162; projectile = 139; damage = 15; gfx2 = 140; req = 53; usingAncient = false; p.MageTime = 5; } } break; case 63: //Fire blast if(!p.getInventory().contains(556, 4)|| !p.getInventory().contains(560, 1)|| !p.getInventory().contains(554, 5)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 4) && p.getInventory().contains(560, 1) && p.getInventory().contains(554, 5)) { p.getInventory().deleteItem(556, 4); p.getInventory().deleteItem(560, 1); p.getInventory().deleteItem(554, 5); gfx = 129; anim = 1162; projectile = 130; damage = 16; gfx2 = 131; req = 59; usingAncient = false; p.MageTime = 5; } } break; case 70: //Wind wave if(!p.getInventory().contains(556, 5)|| !p.getInventory().contains(565, 1)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 5) && p.getInventory().contains(565, 1)) { p.getInventory().deleteItem(556, 5); p.getInventory().deleteItem(560, 1); gfx = 158; anim = 1162; projectile = 159; damage = 17; gfx2 = 160; req = 62; usingAncient = false; p.MageTime = 5; } } break; case 73: //Water wave if(!p.getInventory().contains(556, 5)|| !p.getInventory().contains(565, 1)|| !p.getInventory().contains(555, 7)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 5) && p.getInventory().contains(562, 1) && p.getInventory().contains(557, 7)) { p.getInventory().deleteItem(556, 5); p.getInventory().deleteItem(560, 1); p.getInventory().deleteItem(555, 7); gfx = 161; anim = 1162; projectile = 162; damage = 18; gfx2 = 163; req = 65; usingAncient = false; p.MageTime = 5; } } break; case 77: //Earth Wave if(!p.getInventory().contains(556, 5)|| !p.getInventory().contains(565, 1)|| !p.getInventory().contains(557, 7)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 5) && p.getInventory().contains(565, 1) && p.getInventory().contains(557, 7)) { p.getInventory().deleteItem(556, 5); p.getInventory().deleteItem(560, 1); p.getInventory().deleteItem(557, 7); gfx = 164; anim = 1162; projectile = 165; damage = 19; gfx2 = 166; req = 70; usingAncient = false; p.MageTime = 5; } } break; case 80: //FireWave if(!p.getInventory().contains(556, 5)|| !p.getInventory().contains(565, 1)|| !p.getInventory().contains(554, 7)) { p.sm("You need the correct runes to cast this spell"); p.resetAttack(); return; } else { if (p.MageTime == 0 && p.getInventory().contains(556, 5) && p.getInventory().contains(565, 1) && p.getInventory().contains(554, 7)) { p.getInventory().deleteItem(556, 5); p.getInventory().deleteItem(560, 1); p.getInventory().deleteItem(554, 7); gfx = 155; anim = 1162; projectile = 156; damage = 20; gfx2 = 157; req = 75; usingAncient = false; p.MageTime =5; } } } break; case 193: projectile = -1; gfx = -1; usingAncient = true; switch (autoCastAncient) { case 23: //Ice barrage if(p.getSkills().getLevel(6) < 94) { p.sm("You need 94 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(560, 4) && p.getInventory().contains(565,2) && p.getInventory().contains(555,6))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 93) { gfx = 368; anim = 1979; damage = 30; gfx2 = 369; req = 94; freeze = true; usingBarrage = true; freezeDelay = 20; p.getInventory().deleteItem(560, 4); p.getInventory().deleteItem(566, 3); p.getInventory().deleteItem(555, 6); } break; case 35: //Shadow barrage if(p.getSkills().getLevel(6) < 88) { p.sm("You need 88 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(560, 4) && p.getInventory().contains(566,3) && p.getInventory().contains(565,2) && p.getInventory().contains(556,1))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 97) { //gfx = 368; anim = 1978; damage = 28; gfx2 = 383; req = 88; p.getInventory().deleteItem(560, 4); p.getInventory().deleteItem(566, 3); p.getInventory().deleteItem(565, 2); p.getInventory().deleteItem(556, 1); } break; case 31: //Smoke barrage if(p.getSkills().getLevel(6) < 86) { p.sm("You need 86 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(560, 4) && p.getInventory().contains(554,4) && p.getInventory().contains(565,2) && p.getInventory().contains(556,1))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 95) { //gfx = 368; anim = 1979; damage = 27; gfx2 = 391; req = 86; p.getInventory().deleteItem(560, 4); p.getInventory().deleteItem(554, 4); p.getInventory().deleteItem(565, 2); p.getInventory().deleteItem(556, 1); } break; case 21: //Ice blitz if(p.getSkills().getLevel(6) < 82) { p.sm("You need 82 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(560, 2) && p.getInventory().contains(565,2) && p.getInventory().contains(555,3))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 81) { //gfx = 368; anim = 1978; damage = 26; gfx2 = 367; req = 82; freeze = true; freezeDelay = 15; p.getInventory().deleteItem(560, 2); p.getInventory().deleteItem(565, 2); p.getInventory().deleteItem(555, 3); } break; case 25: //Blood Blitz if(p.getSkills().getLevel(6) < 92) { p.sm("You need 92 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(560, 2) && p.getInventory().contains(565,2))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 91) { //gfx = 368; anim = 1978; damage = 25; gfx2 = 375; req = 80; p.getInventory().deleteItem(560, 2); p.getInventory().deleteItem(565, 2); } break; case 33: //Shadow blitz if(p.getSkills().getLevel(6) < 76) { p.sm("You need 76 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(560, 2) && p.getInventory().contains(565,2) && p.getInventory().contains(556,2) && p.getInventory().contains(566,2))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 75) { //gfx = 368; anim = 1978; damage = 24; gfx2 = 381; req = 76; p.getInventory().deleteItem(560, 2); p.getInventory().deleteItem(565, 2); p.getInventory().deleteItem(556, 2); p.getInventory().deleteItem(566, 2); } break; case 29: //Smoke blitz if(p.getSkills().getLevel(6) < 74) { p.sm("You need 74 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(560, 2) && p.getInventory().contains(565,2) && p.getInventory().contains(554,2) && p.getInventory().contains(565,2))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 73) { //gfx = 368; anim = 1978; damage = 23; gfx2 = 387; req = 74; p.getInventory().deleteItem(560, 2); p.getInventory().deleteItem(565, 2); p.getInventory().deleteItem(554, 2); p.getInventory().deleteItem(556, 2); } break; case 22: //Ice burst if(p.getSkills().getLevel(6) < 70) { p.sm("You need 70 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(562, 4) && p.getInventory().contains(560,2) && p.getInventory().contains(555,4))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 69) { // gfx = 368; anim = 1979; damage = 22; gfx2 = 363; req = 70; freeze = true; freezeDelay = 10; p.getInventory().deleteItem(562, 4); p.getInventory().deleteItem(560, 2); p.getInventory().deleteItem(555, 4); } break; case 26: //Blood Burst if(p.getSkills().getLevel(6) < 68) { p.sm("You need 68 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(560, 2) && p.getInventory().contains(565,4) && p.getInventory().contains(562,4))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 67) { // gfx = 368; anim = 1979; damage = 21; gfx2 = 376; req = 68; p.getInventory().deleteItem(560, 2); p.getInventory().deleteItem(565, 4); p.getInventory().deleteItem(562, 4); } break; case 34: //Shadow Burst if(p.getSkills().getLevel(6) < 64) { p.sm("You need 64 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(562, 4) && p.getInventory().contains(560,2) && p.getInventory().contains(556,1) && p.getInventory().contains(566,2))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 63) { //gfx = 368; anim = 1978; damage = 17; gfx2 = 382; req = 64; p.getInventory().deleteItem(562, 4); p.getInventory().deleteItem(560, 2); p.getInventory().deleteItem(556, 1); p.getInventory().deleteItem(566, 2); } break; case 30: //Smoke Burst if(p.getSkills().getLevel(6) < 62) { p.sm("You need 62 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(562, 4) && p.getInventory().contains(560,2) && p.getInventory().contains(554,2) && p.getInventory().contains(556,2))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 61) { //gfx = 368; anim = 1979; damage = 17; gfx2 = 389; req = 62; p.getInventory().deleteItem(562, 4); p.getInventory().deleteItem(560, 2); p.getInventory().deleteItem(554, 2); p.getInventory().deleteItem(556, 2); } break; case 20: //Ice rush if(p.getSkills().getLevel(6) < 58) { p.sm("You need 58 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(562, 2) && p.getInventory().contains(560,2) && p.getInventory().contains(555,2))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 57) { //gfx = 368; anim = 1978; damage = 16; gfx2 = 361; req = 58; freeze = true; freezeDelay = 5; p.getInventory().deleteItem(562, 2); p.getInventory().deleteItem(560, 2); p.getInventory().deleteItem(555, 2); } break; case 24: //Blood Rush if(p.getSkills().getLevel(6) < 56) { p.sm("You need 56 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(562, 2) && p.getInventory().contains(560,2) && p.getInventory().contains(565,1))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 55) { //gfx = 368; anim = 1978; damage = 15; gfx2 = 361; req = 56; p.getInventory().deleteItem(562, 2); p.getInventory().deleteItem(560, 2); p.getInventory().deleteItem(565, 1); } break; case 32: //Shadow Rush if(p.getSkills().getLevel(6) < 52) { p.sm("You need 52 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(562, 2) && p.getInventory().contains(560,1) && p.getInventory().contains(556,1) && p.getInventory().contains(566,1))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 51) { //gfx = 368; anim = 1978; damage = 14; gfx2 = 379; req = 52; p.getInventory().deleteItem(562, 2); p.getInventory().deleteItem(560, 2); p.getInventory().deleteItem(556, 1); p.getInventory().deleteItem(566, 1); } break; case 28: //Smoke Rush if(p.getSkills().getLevel(6) < 52) { p.sm("You need 52 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getInventory().contains(562, 2) && p.getInventory().contains(560,1) && p.getInventory().contains(554,1) && p.getInventory().contains(556,1))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 51) { // gfx = 368; anim = 1978; damage = 13; gfx2 = 385; req = 50; p.getInventory().deleteItem(562, 2); p.getInventory().deleteItem(560, 2); p.getInventory().deleteItem(554, 1); p.getInventory().deleteItem(556, 1); } break; case 39:// miasmic barrage if(p.getSkills().getLevel(6) < 97) { p.sm("You need 97 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getEquipment().get(3).getDefinition().getId() == 13867 && p.getInventory().contains(565, 4) && p.getInventory().contains(557,4) && p.getInventory().contains(566,2))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 96) { gfx = 1853; anim = 10518; damage = 35; gfx2 = 1854; req = 97; p.getInventory().deleteItem(565, 4); p.getInventory().deleteItem(557, 4); p.getInventory().deleteItem(566, 4); } break; case 37://miasmic blitz if(p.getSkills().getLevel(6) < 85) { p.sm("You need 85 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getEquipment().get(3).getDefinition().getId() == 13867 && p.getInventory().contains(565, 2) && p.getInventory().contains(557,3) && p.getInventory().contains(566,3))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 84) { //gfx = 368; anim = 10524; damage = 30; gfx2 = 1850; req = 52; p.getInventory().deleteItem(565, 2); p.getInventory().deleteItem(557, 3); p.getInventory().deleteItem(566, 3); } break; case 38://miasmic burst if(p.getSkills().getLevel(6) < 73) { p.sm("You need 73 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getEquipment().get(3).getDefinition().getId() == 13867 && p.getInventory().contains(562, 4) && p.getInventory().contains(557,2) && p.getInventory().contains(566,2))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 72) { //gfx = 368; anim = 10516; damage = 25; gfx2 = 1848; req = 52; p.getInventory().deleteItem(562, 4); p.getInventory().deleteItem(557, 2); p.getInventory().deleteItem(566, 2); } break; case 36://miasmic rush if(p.getSkills().getLevel(6) < 73) { p.sm("You need 73 magic to cast this spell"); p.resetAttack(); n.resetAttack(); return; } if (!(p.getEquipment().get(3).getDefinition().getId() == 13867 && p.getInventory().contains(562, 2) && p.getInventory().contains(557,1) && p.getInventory().contains(566,1))) { p.getActionSender().sendMessage("You do not have the runes needed for this spell."); p.resetAttack(); n.resetAttack(); return; } if(p.getSkills().getLevel(6) > 72) { gfx = 1845; anim = 10513; damage = 18; gfx2 = 1846; req = 61; p.getInventory().deleteItem(565, 2); p.getInventory().deleteItem(557, 1); p.getInventory().deleteItem(566, 1); } break; } break; } } if ( p.getSkills().getLevelForXp(6) <= req) { p.sm("You need level " + req+ " magic to use this spell."); p.pvn().autoCasting = false; p.getWalkingQueue().reset();// fixed } else if(Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), n.getLocation().getX(), n.getLocation().getY()) <= 8) { p.getWalkingQueue().reset(); } /*if(usingBarrage == true) {// && p.combatDelay == 0 for (final NPC npc : World.getWorld().getNpcs()) { if (Misc.getDistance(n.getLocation().getX(), n.getLocation().getY(), p.getLocation().getX(), p.getLocation().getY()) <= 2) { continue; } if (npc == null || npc.isDead()) { return; } final int magichit = Misc.random(damage)*10; p.getInventory().deleteItem(560, 4); p.getInventory().deleteItem(566, 3); p.getInventory().deleteItem(555, 6); p.turnTo(n); //p.combatDelay =+ 5; p.getWalkingQueue().reset(); p.graphics(gfx, (100 << 16)); p.animate(anim); World.getWorld().registerEvent(new Event(getMagicDelay()) { public void execute() { npc.hit(p, magichit); p.getSkills().addXp(6, magichit * 650); npc.graphics(gfx2); this.stop(); } }); } }*/ if(p.combatDelay == 0) { final int magichit = Misc.random(damage)*10; p.turnTo(n); p.combatDelay =+ 5; p.getWalkingQueue().reset(); p.graphics(gfx, (100 << 16)); p.animate(anim); World.getWorld().getProjectileManager().fire(p.getLocation(), n.getLocation(), 50, 70, projectile, 43, 31, n); World.getWorld().registerEvent(new Event(getMagicDelay()) { public void execute() { n.hit(p, magichit); p.getSkills().addXp(6, magichit * 650); n.graphics(gfx2); this.stop(); } }); } } catch(Exception e) { } } //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public void RangeAttack(final Player p, final NPC p2) { try { if(Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) <= 8) { p.getWalkingQueue().reset(); } if (p.LeechAttack == true) { CursesEffectsHandlerNpc.handleLeechAttack(p, p2); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.LeechRange == true) { CursesEffectsHandlerNpc.handleLeechRanged(p, p2); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.LeechMagic == true) { CursesEffectsHandlerNpc.handleLeechMagic(p, p2); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.LeechDefence == true) { CursesEffectsHandlerNpc.handleLeechDefence(p, p2); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.LeechStrength == true) { CursesEffectsHandlerNpc.handleLeechStrength(p, p2); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.SpecialAttackLeech == true) { CursesEffectsHandlerNpc.handleSpecLeech(p, p2); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.SapWarrior == true) { CursesEffectsHandlerNpc.SapWarrior(p, p2); } if (p.SapRanger == true) { CursesEffectsHandlerNpc.SapRanger(p, p2); } if (p.SapSpirit == true) { CursesEffectsHandlerNpc.SapSpirit(p, p2); } if (p.DeflectRange == true) { CursesEffectsHandlerNpc.DeflectRange(p, p2); } if (p.DeflectMelee == true) { CursesEffectsHandlerNpc.DeflectMelee(p, p2); } if (p.DeflectMagic == true) { CursesEffectsHandlerNpc.DeflectMagic(p, p2); } if(p.combatDelay == 0 && p.cantPk == false) { if(!p.getEquipment().hasAmmo()) { p.sm("You dont have any ammo in your backpack."); return; } p2.pid = p.getIndex(); p2.Attacking = true; p.combatDelay += PkDefinitions.getCombatDelay(p); if(p.getEquipment().isWieldingHandCannon()) { if(p.usingSpecial) { p.usingSpecial = false; p.specialAmount -= p.getSpecialAmount(); if (p.specialAmount < p.getSpecialAmount()) { p.usingSpecial = false; p.getActionSender().sendMessage("You do not have enough special energy."); return; } p.usingSpecial = false; p.specialAmount -= p.getSpecialAmount(); p.animate(12174, 0); p.graphics(2138, 0); World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 0, 70, 2143, 43, 31, p2); World.getWorld().registerEvent(new Event(getMagicDelay()) { public void execute() { p2.hit(Misc.random(p.NPCMaxHitRange()*10)); BossesDef(p, p2 , (int) (p.NPCMaxHitRange() * 1.50), 0); p2.animate(p2.getDefenceAnimation()); this.stop(); } }); } else { p.animate(PkDefinitions.getCombatAnim(p)); p.graphics(2138, 0); World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 0, 70, 2143, 43, 31, p2); World.getWorld().registerEvent(new Event(getMagicDelay()) { public void execute() { p2.hit(p, Misc.random(p.NPCMaxHitRange()*10)); BossesDef(p, p2 , (int) (p.NPCMaxHitRange()*10), 0); p2.animate(p2.getDefenceAnimation()); this.stop(); } }); } } else if(p.getEquipment().isWieldingDbow()) { if(p.usingSpecial) { if (p.specialAmount < p.getSpecialAmount()) { p.usingSpecial = false; p.getActionSender().sendMessage("You do not have enough special energy."); return; } p.usingSpecial = false; p.specialAmount -= p.getSpecialAmount(); p.animate(PkDefinitions.getCombatAnim(p)); p.graphics(getDbowDrawback(), (100 << 16)); World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 50, 70, getDbowSpec(), 430, 310, p2); World.getWorld().registerEvent(new Event(100) { public void execute() { World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 50, 70, getDbowSpec(), 430, 310, p2); this.stop(); } }); World.getWorld().registerEvent(new Event(getMagicDelay()) { public void execute() { BossesDef(p, p2 , (int) (p.NPCMaxHitRange() * 10), 0); p2.hit(p, Misc.random(p.NPCMaxHitRange() * 10)); this.stop(); } }); World.getWorld().registerEvent(new Event(getMagicDelay()) { public void execute() { BossesDef(p, p2 , (int) (p.NPCMaxHitRange() * 10), 0); p2.hit(p, Misc.random(p.NPCMaxHitRange() * 10)); p2.animate(p2.getDefenceAnimation()); this.stop(); } }); } else { p.animate(PkDefinitions.getCombatAnim(p)); p.graphics(getDbowDrawback(), (100 << 16)); World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 50, 70, p.getEquipment().getProjectileId(), 430, 310, p2); World.getWorld().registerEvent(new Event(100) { public void execute() { World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 50, 70, p.getEquipment().getProjectileId(), 430, 310, p2); this.stop(); } }); World.getWorld().registerEvent(new Event(getMagicDelay()) { public void execute() { BossesDef(p, p2 , (int) (p.NPCMaxHitRange()*10), 0); p2.hit(p, Misc.random(p.NPCMaxHitRange())*10); p2.animate(p2.getDefenceAnimation()); this.stop(); } }); World.getWorld().registerEvent(new Event(getMagicDelay()) { public void execute() { BossesDef(p, p2 , (int) (p.NPCMaxHitRange()*10), 0); p2.hit(p, Misc.random(p.NPCMaxHitRange())*10); this.stop(); } }); } } else if(p.getEquipment().isWieldingCBow()) { p.animate(PkDefinitions.getCombatAnim(p)); World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 50, 70, p.getEquipment().getProjectileId(), 430, 310, p2); World.getWorld().registerEvent(new Event(getMagicDelay()) { public void execute() { if(Misc.random(10) == 1) { EnchantSpec(p, p2, p.NPCMaxHitRange()*10); p2.animate(p2.getDefenceAnimation()); this.stop(); } else { p2.hit(p, p.NPCMaxHitRange()); BossesDef(p, p2 , (int) (p.NPCMaxHitRange()*10), 0); p2.animate(p2.getDefenceAnimation()); this.stop(); } } }); } else if(p.usingSpecial) { } else { if(p.getEquipment().get(3).getDefinition().getId() == 15241) { p.sm("You need to be wearing handcannon ammo to fire this weapon."); return; } p.animate(PkDefinitions.getCombatAnim(p)); World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 50, 70, p.getEquipment().getProjectileId(), 43, 31, p2); World.getWorld().registerEvent(new Event(getMagicDelay()) { public void execute() { p2.hit(p, Misc.random(p.NPCMaxHitRange())*10); BossesDef(p, p2 , (int) (p.NPCMaxHitRange()*10), 0); this.stop(); } }); } } } catch(Exception e) { } } //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public void EnchantSpec(Player p, NPC n, int rangeDamage) { try { switch(p.getEquipment().get(13).getDefinition().getId()) { case 9242: rangeDamage = rangeDamage + Misc.random((n.getHp()/5)*10); if (rangeDamage >= 100) rangeDamage = 100; p.hit(Misc.random(p.getHp())/10); n.graphics(754); p.getActionSender().SendSound(2912,100,0); break; case 9244: rangeDamage = rangeDamage + Misc.random(25)*10; n.graphics(756); p.getActionSender().SendSound(2915,100,0); break; case 9245: rangeDamage = Misc.random((int) (rangeDamage * 1.25)*10); p.heal(rangeDamage); n.graphics(753); p.getActionSender().SendSound(2917,100,0); break; case 9237: n.pid = -1; n.Attacking = false; n.graphics(755); p.getActionSender().SendSound(2914,100,0); } BossesDef(p, n , rangeDamage, 1); n.hit(p, rangeDamage); } catch(Exception e) { } } //---------------------------------------------------------------------------------------------------------------------------------------------------------------- public void MeleeAttack(final Player p, final NPC n) { int distance = 1; if (n.getId() == 8133 || (n.getId() >= 1158 && n.getId() <= 1160) || n.getId() == 6260 || n.getId() == 6222) { distance = 4; } if (n.getId() == 8350 || n.getId() == 8351 || n.getId() == 8352) { distance = 4; } if(Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), n.getLocation().getX(), n.getLocation().getY()) <= distance) { if(p.combatDelay == 0) { n.pid = p.getIndex(); n.Attacking = true; final int meleeDamage = Misc.random(p.NPCMaxHitMelee()*10); final int meleeDamage2 = Misc.random(p.NPCMaxHitMelee()*10); BossesDef(p, n , meleeDamage, 0); p.turnTo(n); n.turnTo(p); p.combatDelay = PkDefinitions.getCombatDelay(p); if(!p.usingSpecial) { World.getWorld().submit(new Tickable(1) { @Override public void execute() { n.hit(p, meleeDamage); n.animate(n.getDefenceAnimation()); this.stop(); } }); p.animate(PkDefinitions.getCombatAnim(p)); } if (p.LeechAttack == true) { CursesEffectsHandlerNpc.handleLeechAttack(p, n); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.LeechRange == true) { CursesEffectsHandlerNpc.handleLeechRanged(p, n); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.LeechMagic == true) { CursesEffectsHandlerNpc.handleLeechMagic(p, n); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.LeechDefence == true) { CursesEffectsHandlerNpc.handleLeechDefence(p, n); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.LeechStrength == true) { CursesEffectsHandlerNpc.handleLeechStrength(p, n); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.SpecialAttackLeech == true) { CursesEffectsHandlerNpc.handleSpecLeech(p, n); p.leechDelay = System.currentTimeMillis() + Misc.random(100000); } if (p.Soulsplit == true && meleeDamage >= 1) { CursesEffectsHandlerNpc.handleSoulSplit(p, n, meleeDamage); } if (p.SapWarrior == true) { CursesEffectsHandlerNpc.SapWarrior(p, n); } if (p.SapRanger == true) { CursesEffectsHandlerNpc.SapRanger(p, n); } if (p.SapSpirit == true) { CursesEffectsHandlerNpc.SapSpirit(p, n); } if (p.SapMage == true) { CursesEffectsHandlerNpc.SapMage(p, n); } if (p.DeflectRange == true) { CursesEffectsHandlerNpc.DeflectRange(p, n); } if (p.DeflectMelee == true) { CursesEffectsHandlerNpc.DeflectMelee(p, n); } if (p.DeflectMagic == true) { CursesEffectsHandlerNpc.DeflectMagic(p, n); } if(p.usingSpecial) { p.usingSpecial = false; if (p.specialAmount >= p.getSpecialAmount()) { p.specialAmount -= p.getSpecialAmount(); switch(p.getEquipment().get(3).getDefinition().getId()) { case 14484: p.graphics(1950, 0); p.animate(10961, 0); int dclaw1 = meleeDamage/2;int dclaw2 = meleeDamage/3;int dclaw3 = meleeDamage/3; if (meleeDamage == 0) { dclaw1 = Misc.random(p.MaxHitMelee()); dclaw2 = dclaw1/2; dclaw3 = dclaw1/3; } if (meleeDamage == 0 && dclaw1 == 0) { dclaw2 = Misc.random(p.MaxHitMelee()); dclaw3= dclaw2/3; } if (meleeDamage == 0 && dclaw1 == 0 && dclaw2 == 0) { dclaw3 = Misc.random(p.MaxHitMelee()); } n.hit(p, meleeDamage); n.hit(p, dclaw1); n.hit(p, dclaw2); n.hit(p, dclaw3); break; case 14486: p.graphics(1950, 0); p.animate(10961, 0); int dclaw5 = meleeDamage/6;int dclaw6 = meleeDamage/8;int dclaw7 = meleeDamage/8; if (meleeDamage == 0) { dclaw1 = Misc.random(p.MaxHitMelee()); dclaw2 = dclaw5/6; dclaw3 = dclaw7/8; } if (meleeDamage == 0 && dclaw5 == 0) { dclaw6 = Misc.random(p.MaxHitMelee()); dclaw7= dclaw6/6; } if (meleeDamage == 0 && dclaw5 == 0 && dclaw6 == 0) { dclaw3 = Misc.random(p.MaxHitMelee()); } n.hit(p, meleeDamage); n.hit(p, dclaw5); n.hit(p, dclaw6); n.hit(p, dclaw7); break; case 13899: World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, (int) (meleeDamage * 1.10)); this.stop(); } }); p.animate(10502, 0); break; case 4747: World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, (int) (meleeDamage * 1.10)); this.stop(); } }); p.animate(10502, 0); break; case 13902: World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, (int) (meleeDamage * 1.25)); this.stop(); } }); p.graphics(1840, 0); p.animate(10505, 0); break; case 19780: World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, (int) (meleeDamage * 1.75)); this.stop(); } }); p.graphics(1729, 0); p.animate(14788, 0); break; case 15259: World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, meleeDamage); this.stop(); } }); p.animate(12031, 0); p.graphics(2144, 100); break; case 4151: case 13444: case 15441: case 15442: case 15443: case 15444: n.graphics(2108, 0); p.animate(11971, 0); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, meleeDamage); BossesDef(p, n , meleeDamage, 0); this.stop(); } }); break; case 21371: World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, meleeDamage); this.stop(); } }); p.animate(2654, 0); n.graphics(2707, 100); break; case 1215: case 10581: n.graphics(252, (100 << 16)); p.animate(1062, 0); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, (int) (meleeDamage * 1.10)); n.hit(p, (int) (meleeDamage2 * 1.10)); BossesDef(p, n , (int) (meleeDamage * 1.10), 0); BossesDef(p, n , (int) (meleeDamage2 * 1.10), 0); this.stop(); } }); p.getActionSender().SendSound(2537,100,0); break; case 5698: n.graphics(252, (100 << 16)); p.animate(1062, 0); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, (int) (meleeDamage * 1.10)); n.hit(p, (int) (meleeDamage2 * 1.10)); BossesDef(p, n , (int) (meleeDamage * 1.10), 0); BossesDef(p, n , (int) (meleeDamage2 * 1.10), 0); this.stop(); } }); p.getActionSender().SendSound(2537,100,0); break; case 11730: p.graphics(1224, 0); p.animate(7072, 0); n.graphics(1194, 0); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, meleeDamage); n.hit(p, meleeDamage2); BossesDef(p, n , meleeDamage2, 0); this.stop(); } }); p.getActionSender().SendSound(3853,100,0); break; case 11694: p.graphics(2113, 0); p.animate(11989, 0); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, (int) (meleeDamage * 1.15)); BossesDef(p, n , (int) (meleeDamage * 1.15), 0); this.stop(); } }); p.getActionSender().SendSound(3865,100, 0); break; case 11716: p.graphics(1225, 0); p.animate(7001, 0); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, (int) (meleeDamage * 1.10)); BossesDef(p, n, (int) (meleeDamage * 1.10), 0); this.stop(); } }); break; case 13450: p.graphics(1222, 0); p.animate(7074, 0); final int hit13450 = (int) (meleeDamage * 1.65); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, hit13450); BossesDef(p, n, (int) (meleeDamage * 1.65), 0); this.stop(); } }); p.getActionSender().SendSound(3865,100, 0); break; case 10887: p.graphics(1027, 0); p.animate(5870, 0); final int hit10887 = (int) (meleeDamage * 1.05); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, hit10887); BossesDef(p, n, (int) (meleeDamage * 1.05), 0); this.stop(); } }); break; case 11696: p.graphics(1223, 0); p.animate(7073, 0); final int hit11696 = (int) (meleeDamage * 1.10); World.getWorld().submit(new Tickable(1) { public void execute() { BossesDef(p, n, (int) (meleeDamage * 1.10), 0); n.hit(p, hit11696); this.stop(); } }); p.getActionSender().SendSound(3834,100,0); break; case 11698: p.graphics(1220, 0); p.animate(7071, 0); p.heal(meleeDamage/2); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, meleeDamage); BossesDef(p, n, meleeDamage, 0); this.stop(); } }); p.getActionSender().SendSound(3857,100,0); break; case 11700: p.graphics(2110, 0); p.animate(7070, 0); n.graphics(2111, 0); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, meleeDamage); BossesDef(p, n, meleeDamage, 0); this.stop(); } }); p.getActionSender().SendSound(3857,100,0); break; case 13117: // invalius flail thing final int lflail1 = meleeDamage/5; final int lflail2 = meleeDamage/8; p.graphics(1930, 0); n.graphics(1931, 0); p.animate(1658, 0); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, lflail1); n.hit(p, lflail2); this.stop(); } }); break; case 13451://lent bgs p.graphics(1223, 0); p.animate(7073, 0); final int hit13451 = (int) (meleeDamage * 1.15); World.getWorld().submit(new Tickable(1) { public void execute() { BossesDef(p, n, (int) (meleeDamage * 1.15), 0); n.hit(p, hit13451); this.stop(); } }); p.getActionSender().SendSound(3834,100,0); break; case 13452://lent sgs p.graphics(1220, 0); p.animate(7071, 0); p.heal(meleeDamage); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, meleeDamage); BossesDef(p, n, meleeDamage, 0); this.stop(); } }); p.getActionSender().SendSound(3857,100,0); break; case 13453://lent zgs p.graphics(2110, 0); p.animate(7070, 0); n.graphics(2111, 0); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, meleeDamage); BossesDef(p, n , meleeDamage, 0); this.stop(); } }); p.getActionSender().SendSound(3857,100,0); break; case 1305: p.graphics(2117, 0); p.animate(12031, 0); final int hit1305 = (int) (meleeDamage * 1.20); World.getWorld().submit(new Tickable(1) { public void execute() { BossesDef(p, n, (int) (meleeDamage * 1.20), 0); n.hit(p, hit1305); this.stop(); } }); p.getActionSender().SendSound(2529,100,0); break; case 4587: p.graphics(2118, 0); p.animate(12005, 0); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, meleeDamage); BossesDef(p, n, meleeDamage, 0); this.stop(); } }); p.getActionSender().SendSound(2540,100,0); break; case 3204: p.graphics(282, 50); n.graphics(254, 100); p.animate(1665, 0); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, meleeDamage); n.hit(p, meleeDamage2); BossesDef(p, n, meleeDamage, 0); BossesDef(p, n, meleeDamage2, 0); this.stop(); } }); break; case 1434: p.graphics(251, 50); p.animate(1060, 0); World.getWorld().submit(new Tickable(1) { public void execute() { int hit1434 = (int) (meleeDamage * 1.25); BossesDef(p, n, (int) (meleeDamage * 1.25), 0); n.hit(p, hit1434); this.stop(); } }); p.getActionSender().SendSound(2541,100,0); break; case 7158: p.graphics(559, 0); p.animate(3157, 0); World.getWorld().submit(new Tickable(1) { public void execute() { n.hit(p, meleeDamage); BossesDef(p, n, meleeDamage, 0); this.stop(); } }); break; default: n.hit(p, meleeDamage); BossesDef(p, n , meleeDamage, 0); p.animate(PkDefinitions.getCombatAnim(p)); p.getActionSender().sendMessage("This weapon has no special Attack, if you still see special bar please relogin."); } }else{p.getActionSender().sendMessage("You do not have enough special energy.");} } } } } //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public int getMagicDelay() { NPC p2 = World.getWorld().getNpcs().get(magicIndex); if (p == null || p2 == null) return 1300; if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 1) return 700; if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 2) return 700; if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 3) return 900; if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 4) return 1050; if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 5) return 1050; if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 6) return 1050; if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 7) return 1050; if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 8) return 1050; if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 9) return 1045; if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 10) return 1045; return 1; } //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public boolean usingRange(Player p) { if(p.getEquipment().get(3) == null) { return false; } switch(p.getEquipment().get(3).getDefinition().getId()) { case 14684: case 4212: case 4214: case 4734: case 11235: case 15701: case 15702: case 15703: case 15704: case 9185: case 18357: case 861: case 868: case 867: case 866: case 865: case 863: case 14121: case 15241: case 10034: case 11230: case 841: case 843: case 845: case 847: case 849: case 851: case 17295: case 853: case 855: case 857: case 859: return true; case 0: return false; case -1: return false; default: return false; } } public boolean LightEquipped(Player p) { try { if(p.getEquipment().get(3).getDefinition().getId() == 6746 || p.getEquipment().get(3).getDefinition().getId() == 6745){ return true; } return false; } catch (Exception e) { return false; } } public void BossesDef(final Player p, final NPC n , int Damage, int AttType) { p.addHitExp(p, Damage); switch (n.getId()) { case 8324: case 8325: case 8326: case 8327: if (n.NPCCharges > 0) { n.NPCDamage[AttType] += Damage; if (n.NPCDamage[0] >= 15) { n.NPCDamage[0] = 0; n.setId(8325); } if (n.NPCDamage[1] >= 15) { n.NPCDamage[1] = 0; n.setId(8326); } if (n.NPCDamage[2] >= 15) { n.NPCDamage[2] = 0; n.setId(8327); } } break; case 8350: case 8351: case 8352: n.NPCDamage[AttType] += Damage; if (n.NPCDamage[0] >= 31) { n.NPCDamage[0] = 0; n.setId(8352); } if (n.NPCDamage[1] >= 31) { n.NPCDamage[1] = 0; n.setId(8351); } if (n.NPCDamage[2] >= 31) { n.NPCDamage[2] = 0; n.setId(8350); } if (n.UsingThis == false) { n.graphics(1885); if (LightEquipped(p) && Misc.random(2) == 1) { n.UsingThis = true; p.sm("The demon is temporarily weakened by your weapon."); World.getWorld().registerEvent(new Event(30000) { public void execute() { if (!n.isDead()) { p.sm("The Tormented demon regains its strength against your weapon."); } n.UsingThis = false; this.stop(); } }); } } break; } } public int getDbowDrawback() { switch(p.getEquipment().get(13).getDefinition().getId()) { case 11212: return 1110; case 892: return 1109; case 890: return 1108; case 888: return 1107; case 886: return 1106; case 884: return 1105; case 882: return 1104; default: return 1114; } } public int getDbowSpec() { switch(p.getEquipment().get(13).getDefinition().getId()) { case 11212: return 1099; default: return 1102; } } /*public int getMaxHit(Player p) { int base = damage; double strengthMultiplier = (baseBonus * 0.00175) + 0.1; int maxHit = (int) Math.floor(combatStrength * strengthMultiplier * 1.05); if(FullDharokEquipped()) { maxHit += (int)((p.getSkills().getLevelForXp(3) - p.getSkills().getLevel(3))/2.2); } }*/ }[/CODE] Happy leeching, Bl00dz
  23. Hey, the banks in my [PI] lag you and sometimes dc's you, how can i fix this.
  24. This is a simple little way to fix your dragon claws... 1. Playervsplayer.java Note: This one was half-assed it just removes the last hit... See this? It is under case 14484. Replace this: [CODE]p2.hit(p, fDclaw[0]) p2.hit(p, fDclaw[1]); p2.hit(p, fDclaw[2]); this.stop();[/CODE] With this: [CODE]p2.hit(p, fDclaw[0]) p2.hit(p, fDclaw[1]); p2.hit(p, fDclaw[2]/50); this.stop();[/CODE] Playervsnpc.java (Replace your current case 14484 with this): [CODE] case 14484: p.graphics(1950, 0); p.animate(10961, 0); int dclaw1 = meleeDamage/2;int dclaw2 = meleeDamage/3;int dclaw3 = meleeDamage/3; if (meleeDamage == 0) { dclaw1 = Misc.random(p.MaxHitMelee()); dclaw2 = dclaw1/2; dclaw3 = dclaw1/3; } if (meleeDamage == 0 && dclaw1 == 0) { dclaw2 = Misc.random(p.MaxHitMelee()); dclaw3= dclaw2/3; } if (meleeDamage == 0 && dclaw1 == 0 && dclaw2 == 0) { dclaw3 = Misc.random(p.MaxHitMelee()); } n.hit(p, meleeDamage); n.hit(p, dclaw1); n.hit(p, dclaw2/10); n.hit(p, dclaw3/10); break; [/CODE] I hope this helps all of you! - Bl00dz
  25. bl00dz

    Fixed Dragon Claws

    I know this is extremely common but the dragon claws will hit 350 300 400 3000 on npc's and players. Does anyone have the correct formula and where to put it and everything? I'm new to editing weapons.
×