Thread: [PI] Perfect enchanting

Page 3 of 3 FirstFirst 123
Results 21 to 28 of 28
  1. #21  
    Registered Member
    netzo's Avatar
    Join Date
    Feb 2008
    Age
    31
    Posts
    1,226
    Thanks given
    402
    Thanks received
    135
    Rep Power
    185
    lol wtf?

    Code:
    java.lang.ArrayIndexOutOfBoundsException: 1155
    	at server.model.items.ItemAssistant.playerHasItem(ItemAssistant.java:2062)
    	at server.model.players.skills.magic.EnchantingSpells.enchantItem(EnchantingSpells.java:187)
    	at server.model.players.PlayerAssistant.magicOnItems(PlayerAssistant.java:996)
    	at server.model.players.packets.MagicOnItems.processPacket(MagicOnItems.java:21)
    	at server.model.players.PacketHandler.processPacket(PacketHandler.java:138)
    	at server.model.players.Client.processQueuedPackets(Client.java:594)
    	at server.model.players.PlayerHandler.process(PlayerHandler.java:138)
    	at server.Server$1.execute(Server.java:125)
    	at server.core.task.Task.tick(Task.java:103)
    	at server.core.task.TaskScheduler.run(TaskScheduler.java:98)
    	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
    	at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
    	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
    	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    OT: nice job
     

  2. #22  
    Registered Member
    Join Date
    Nov 2011
    Posts
    104
    Thanks given
    5
    Thanks received
    1
    Rep Power
    11
    Code:
    src\game\Client.java:86: error: cannot find symbol
            private Magic magic = new Magic(this);
                    ^
      symbol:   class Magic
      location: class Client
    src\game\Client.java:233: error: cannot find symbol
            public Magic getMagic() {
                   ^
      symbol:   class Magic
      location: class Client
    src\game\Client.java:86: error: cannot find symbol
            private Magic magic = new Magic(this);
                                      ^
      symbol:   class Magic
      location: class Client
    Note: Some input files use unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    3 errors
    Press any key to continue . . .
     

  3. #23  
    Donator


    Join Date
    Nov 2012
    Age
    27
    Posts
    165
    Thanks given
    91
    Thanks received
    80
    Rep Power
    160
    Nice. Thanks.
     

  4. #24  
    Registered Member
    Join Date
    Mar 2012
    Posts
    41
    Thanks given
    0
    Thanks received
    3
    Rep Power
    11
    Spoiler for Keeper:
    Quote Originally Posted by phl0w View Post
    Classes modified: Client.java, PlayerAssistant.java, Magic.java

    Client.java:
    Add
    Code:
    	private Magic magic = new Magic(this);
    under
    Code:
    	private Firemaking firemaking = new Firemaking(this);
    then find
    Code:
    	public Fletching getFletching() { 
    		return fletching;
    	}
    and put
    Code:
    	public Magic getMagic() {
    		return magic;
    	}
    under it.

    PlayerAssistant.java:
    Find
    Code:
    	public void magicOnItems(int slot, int itemId, int spellId) {
    Under
    Code:
    		switch(spellId) {
    add
    Code:
    		case 1155: //Lvl-1 enchant sapphire
    		case 1165: //Lvl-2 enchant emerald
    		case 1176: //Lvl-3 enchant ruby
    		case 1180: //Lvl-4 enchant diamond
    		case 1187: //Lvl-5 enchant dragonstone
    		case 6003: //Lvl-6 enchant onyx
    			c.getMagic().enchantItem(itemId, spellId);
    			break;
    Magic.java:
    Make a new file 'Magic.java' in src/server/model/players/skills, and put this inside of it:
    Code:
    package server.model.players.skills;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import server.model.players.Client;
    
    public class Magic {
    
    	private Client c;
    
    	public Magic(Client c) {
    		this.c = c;
    	}
    
    	public enum Enchant {
    
    		SAPPHIRERING(1637, 2550, 7, 18, 719, 114, 1),
    		SAPPHIREAMULET(1694, 1727, 7, 18, 719, 114, 1),
    		SAPPHIRENECKLACE(1656, 3853, 7, 18, 719, 114, 1),
    
    		EMERALDRING(1639, 2552, 27, 37, 719, 114, 2),
    		EMERALDAMULET(1696, 1729, 27, 37, 719, 114, 2),
    		EMERALDNECKLACE(1658, 5521, 27, 37, 719, 114, 2),
    
    		RUBYRING(1641, 2568, 47, 59, 720, 115, 3),
    		RUBYAMULET(1698, 1725, 47, 59, 720, 115, 3),
    		RUBYNECKLACE(1660, 11194, 47, 59, 720, 115, 3),
    
    		DIAMONDRING(1643, 2570, 57, 67, 720, 115, 4),
    		DIAMONDAMULET(1700, 2570, 57, 67, 720, 115, 4),
    		DIAMONDNECKLACE(1662, 11090, 57, 67, 720, 115, 4),
    
    		DRAGONSTONERING(1645, 2572, 68, 78, 721, 116, 5),
    		DRAGONSTONEAMULET(1702, 1712, 68, 78, 721, 116, 5),
    		DRAGONSTONENECKLACE(1664, 11105, 68, 78, 721, 116, 5),
    
    		ONYXRING(6575, 6583, 87, 97, 721, 452, 6),
    		ONYXAMULET(6581, 6585, 87, 97, 721, 452, 6),
    		ONYXNECKLACE(6577, 11128, 87, 97, 721, 452, 6);
    
    		int unenchanted, enchanted, levelReq, xpGiven, anim, gfx, reqEnchantmentLevel;
    		private Enchant(int unenchanted, int enchanted, int levelReq, int xpGiven, int anim, int gfx, int reqEnchantmentLevel) {
    			this.unenchanted = unenchanted;
    			this.enchanted = enchanted;
    			this.levelReq = levelReq;
    			this.xpGiven = xpGiven;
    			this.anim = anim;
    			this.gfx = gfx;
    			this.reqEnchantmentLevel = reqEnchantmentLevel;
    		}
    
    		public int getUnenchanted() {
    			return unenchanted;
    		}
    
    		public int getEnchanted() {
    			return enchanted;
    		}
    
    		public int getLevelReq() {
    			return levelReq;
    		}
    
    		public int getXp() {
    			return xpGiven;
    		}
    
    		public int getAnim() {
    			return anim;
    		}
    
    		public int getGFX() {
    			return gfx;
    		}
    
    		public int getELevel() {
    			return reqEnchantmentLevel;
    		}
    
    		private static final Map <Integer,Enchant> enc = new HashMap<Integer,Enchant>();
    
    		public static Enchant forId(int itemID) {
    			return enc.get(itemID);
    		}
    
    		static {
    			for (Enchant en : Enchant.values()) {
    				enc.put(en.getUnenchanted(), en);
    			}
    		}
    	}
    
    	private enum EnchantSpell {
    
    		SAPPHIRE(1155, 555, 1, 564, 1, -1, 0),
    		EMERALD(1165, 556, 3, 564, 1, -1, 0),
    		RUBY(1176, 554, 5, 564, 1, -1, 0),
    		DIAMOND(1180, 557, 10, 564, 1, -1, 0), 
    		DRAGONSTONE(1187, 555, 15, 557, 15, 564, 1),
    		ONYX(6003, 557, 20, 554, 20, 564, 1);
    
    		int spell, reqRune1, reqAmtRune1, reqRune2, reqAmtRune2, reqRune3, reqAmtRune3;
    		private EnchantSpell(int spell, int reqRune1, int reqAmtRune1, int reqRune2, int reqAmtRune2, int reqRune3, int reqAmtRune3) {
    			this.spell = spell;
    			this.reqRune1 = reqRune1;
    			this.reqAmtRune1 = reqAmtRune1;
    			this.reqRune2 = reqRune2;
    			this.reqAmtRune2 = reqAmtRune2;
    			this.reqRune3 = reqRune3;
    			this.reqAmtRune3 = reqAmtRune3;
    		}
    
    		public int getSpell() {
    			return spell;
    		}
    
    		public int getReq1() {
    			return reqRune1;
    		}
    
    		public int getReqAmt1() {
    			return reqAmtRune1;
    		}
    
    		public int getReq2() {
    			return reqRune2;
    		}
    
    		public int getReqAmt2() {
    			return reqAmtRune2;
    		}
    
    		public int getReq3() {
    			return reqRune3;
    		}
    
    		public int getReqAmt3() {
    			return reqAmtRune3;
    		}
    
    
    		public static final Map<Integer, EnchantSpell> ens = new HashMap<Integer, EnchantSpell>();
    
    		public static EnchantSpell forId(int id) {
    			return ens.get(id);
    		}
    
    		static {
    			for (EnchantSpell en : EnchantSpell.values()) {
    				ens.put(en.getSpell(), en);
    			}
    		}
    
    	}
    
    	private boolean hasRunes(int spellID) {
    		EnchantSpell ens = EnchantSpell.forId(spellID);
    		if (ens.getReq3() == 0) {
    			return c.getItems().playerHasItem(ens.getReq1(), ens.getReqAmt1()) && c.getItems().playerHasItem(ens.getReq2(), ens.getReqAmt2()) && c.getItems().playerHasItem(ens.getReq3(), ens.getReqAmt3());
    		} else {
    			return c.getItems().playerHasItem(ens.getReq1(), ens.getReqAmt1()) && c.getItems().playerHasItem(ens.getReq2(), ens.getReqAmt2());
    		}
    	}
    
    	private int getEnchantmentLevel(int spellID) {
    		switch (spellID) {
    		case 1155: //Lvl-1 enchant sapphire
    			return 1;
    		case 1165: //Lvl-2 enchant emerald
    			return 2;
    		case 1176: //Lvl-3 enchant ruby
    			return 3;
    		case 1180: //Lvl-4 enchant diamond
    			return 4;
    		case 1187: //Lvl-5 enchant dragonstone
    			return 5;
    		case 6003: //Lvl-6 enchant onyx
    			return 6;
    		}
    		return 0;
    	}
    	public void enchantItem(int itemID, int spellID) {
    		Enchant enc = Enchant.forId(itemID);
    		EnchantSpell ens = EnchantSpell.forId(spellID);
    		if (enc == null || ens == null) {
    			return;
    		}
    		if (c.playerLevel[c.playerMagic] >= enc.getLevelReq()) {
    			if (c.getItems().playerHasItem(enc.getUnenchanted(), 1)) {
    				if (hasRunes(spellID)) {
    					if (getEnchantmentLevel(spellID) == enc.getELevel()) {
    						c.getItems().deleteItem(enc.getUnenchanted(), 1);
    						c.getItems().addItem(enc.getEnchanted(), 1);
    						c.getPA().addSkillXP(enc.getXp(), c.playerMagic);
    						c.getItems().deleteItem(ens.getReq1(), c.getItems().getItemSlot(ens.getReq1()), ens.getReqAmt1());
    						c.getItems().deleteItem(ens.getReq2(), c.getItems().getItemSlot(ens.getReq2()), ens.getReqAmt2());
    						c.startAnimation(enc.getAnim());
    						c.gfx100(enc.getGFX());
    						if (ens.getReq3() != -1) {
    							c.getItems().deleteItem(ens.getReq3(), c.getItems().getItemSlot(ens.getReq3()), ens.getReqAmt3());
    						}
    						c.getPA().sendFrame106(6);
    					} else {
    						c.sendMessage("You can only enchant this jewelry using a level-"+enc.getELevel()+" enchantment spell!");
    					}
    				} else {
    					c.sendMessage("You do not have enough runes to cast this spell.");
    				}
    			}
    		} else {
    			c.sendMessage("You need a magic level of at least "+enc.getLevelReq()+" to cast this spell.");	
    		}
    	}
    }
    Tell me if I forgot anything.


    Love it man.
     

  5. #25  
    Registered Member XxNinjaxX's Avatar
    Join Date
    Aug 2010
    Posts
    344
    Thanks given
    5
    Thanks received
    7
    Rep Power
    0
    Quote Originally Posted by phl0w View Post
    Classes modified: Client.java, PlayerAssistant.java, Magic.java

    Client.java:
    Add
    Code:
    	private Magic magic = new Magic(this);
    under
    Code:
    	private Firemaking firemaking = new Firemaking(this);
    then find
    Code:
    	public Fletching getFletching() { 
    		return fletching;
    	}
    and put
    Code:
    	public Magic getMagic() {
    		return magic;
    	}
    under it.

    PlayerAssistant.java:
    Find
    Code:
    	public void magicOnItems(int slot, int itemId, int spellId) {
    Under
    Code:
    		switch(spellId) {
    add
    Code:
    		case 1155: //Lvl-1 enchant sapphire
    		case 1165: //Lvl-2 enchant emerald
    		case 1176: //Lvl-3 enchant ruby
    		case 1180: //Lvl-4 enchant diamond
    		case 1187: //Lvl-5 enchant dragonstone
    		case 6003: //Lvl-6 enchant onyx
    			c.getMagic().enchantItem(itemId, spellId);
    			break;
    Magic.java:
    Make a new file 'Magic.java' in src/server/model/players/skills, and put this inside of it:
    Code:
    package server.model.players.skills;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import server.model.players.Client;
    
    public class Magic {
    
    	private Client c;
    
    	public Magic(Client c) {
    		this.c = c;
    	}
    
    	public enum Enchant {
    
    		SAPPHIRERING(1637, 2550, 7, 18, 719, 114, 1),
    		SAPPHIREAMULET(1694, 1727, 7, 18, 719, 114, 1),
    		SAPPHIRENECKLACE(1656, 3853, 7, 18, 719, 114, 1),
    
    		EMERALDRING(1639, 2552, 27, 37, 719, 114, 2),
    		EMERALDAMULET(1696, 1729, 27, 37, 719, 114, 2),
    		EMERALDNECKLACE(1658, 5521, 27, 37, 719, 114, 2),
    
    		RUBYRING(1641, 2568, 47, 59, 720, 115, 3),
    		RUBYAMULET(1698, 1725, 47, 59, 720, 115, 3),
    		RUBYNECKLACE(1660, 11194, 47, 59, 720, 115, 3),
    
    		DIAMONDRING(1643, 2570, 57, 67, 720, 115, 4),
    		DIAMONDAMULET(1700, 2570, 57, 67, 720, 115, 4),
    		DIAMONDNECKLACE(1662, 11090, 57, 67, 720, 115, 4),
    
    		DRAGONSTONERING(1645, 2572, 68, 78, 721, 116, 5),
    		DRAGONSTONEAMULET(1702, 1712, 68, 78, 721, 116, 5),
    		DRAGONSTONENECKLACE(1664, 11105, 68, 78, 721, 116, 5),
    
    		ONYXRING(6575, 6583, 87, 97, 721, 452, 6),
    		ONYXAMULET(6581, 6585, 87, 97, 721, 452, 6),
    		ONYXNECKLACE(6577, 11128, 87, 97, 721, 452, 6);
    
    		int unenchanted, enchanted, levelReq, xpGiven, anim, gfx, reqEnchantmentLevel;
    		private Enchant(int unenchanted, int enchanted, int levelReq, int xpGiven, int anim, int gfx, int reqEnchantmentLevel) {
    			this.unenchanted = unenchanted;
    			this.enchanted = enchanted;
    			this.levelReq = levelReq;
    			this.xpGiven = xpGiven;
    			this.anim = anim;
    			this.gfx = gfx;
    			this.reqEnchantmentLevel = reqEnchantmentLevel;
    		}
    
    		public int getUnenchanted() {
    			return unenchanted;
    		}
    
    		public int getEnchanted() {
    			return enchanted;
    		}
    
    		public int getLevelReq() {
    			return levelReq;
    		}
    
    		public int getXp() {
    			return xpGiven;
    		}
    
    		public int getAnim() {
    			return anim;
    		}
    
    		public int getGFX() {
    			return gfx;
    		}
    
    		public int getELevel() {
    			return reqEnchantmentLevel;
    		}
    
    		private static final Map <Integer,Enchant> enc = new HashMap<Integer,Enchant>();
    
    		public static Enchant forId(int itemID) {
    			return enc.get(itemID);
    		}
    
    		static {
    			for (Enchant en : Enchant.values()) {
    				enc.put(en.getUnenchanted(), en);
    			}
    		}
    	}
    
    	private enum EnchantSpell {
    
    		SAPPHIRE(1155, 555, 1, 564, 1, -1, 0),
    		EMERALD(1165, 556, 3, 564, 1, -1, 0),
    		RUBY(1176, 554, 5, 564, 1, -1, 0),
    		DIAMOND(1180, 557, 10, 564, 1, -1, 0), 
    		DRAGONSTONE(1187, 555, 15, 557, 15, 564, 1),
    		ONYX(6003, 557, 20, 554, 20, 564, 1);
    
    		int spell, reqRune1, reqAmtRune1, reqRune2, reqAmtRune2, reqRune3, reqAmtRune3;
    		private EnchantSpell(int spell, int reqRune1, int reqAmtRune1, int reqRune2, int reqAmtRune2, int reqRune3, int reqAmtRune3) {
    			this.spell = spell;
    			this.reqRune1 = reqRune1;
    			this.reqAmtRune1 = reqAmtRune1;
    			this.reqRune2 = reqRune2;
    			this.reqAmtRune2 = reqAmtRune2;
    			this.reqRune3 = reqRune3;
    			this.reqAmtRune3 = reqAmtRune3;
    		}
    
    		public int getSpell() {
    			return spell;
    		}
    
    		public int getReq1() {
    			return reqRune1;
    		}
    
    		public int getReqAmt1() {
    			return reqAmtRune1;
    		}
    
    		public int getReq2() {
    			return reqRune2;
    		}
    
    		public int getReqAmt2() {
    			return reqAmtRune2;
    		}
    
    		public int getReq3() {
    			return reqRune3;
    		}
    
    		public int getReqAmt3() {
    			return reqAmtRune3;
    		}
    
    
    		public static final Map<Integer, EnchantSpell> ens = new HashMap<Integer, EnchantSpell>();
    
    		public static EnchantSpell forId(int id) {
    			return ens.get(id);
    		}
    
    		static {
    			for (EnchantSpell en : EnchantSpell.values()) {
    				ens.put(en.getSpell(), en);
    			}
    		}
    
    	}
    
    	private boolean hasRunes(int spellID) {
    		EnchantSpell ens = EnchantSpell.forId(spellID);
    		if (ens.getReq3() == 0) {
    			return c.getItems().playerHasItem(ens.getReq1(), ens.getReqAmt1()) && c.getItems().playerHasItem(ens.getReq2(), ens.getReqAmt2()) && c.getItems().playerHasItem(ens.getReq3(), ens.getReqAmt3());
    		} else {
    			return c.getItems().playerHasItem(ens.getReq1(), ens.getReqAmt1()) && c.getItems().playerHasItem(ens.getReq2(), ens.getReqAmt2());
    		}
    	}
    
    	private int getEnchantmentLevel(int spellID) {
    		switch (spellID) {
    		case 1155: //Lvl-1 enchant sapphire
    			return 1;
    		case 1165: //Lvl-2 enchant emerald
    			return 2;
    		case 1176: //Lvl-3 enchant ruby
    			return 3;
    		case 1180: //Lvl-4 enchant diamond
    			return 4;
    		case 1187: //Lvl-5 enchant dragonstone
    			return 5;
    		case 6003: //Lvl-6 enchant onyx
    			return 6;
    		}
    		return 0;
    	}
    	public void enchantItem(int itemID, int spellID) {
    		Enchant enc = Enchant.forId(itemID);
    		EnchantSpell ens = EnchantSpell.forId(spellID);
    		if (enc == null || ens == null) {
    			return;
    		}
    		if (c.playerLevel[c.playerMagic] >= enc.getLevelReq()) {
    			if (c.getItems().playerHasItem(enc.getUnenchanted(), 1)) {
    				if (hasRunes(spellID)) {
    					if (getEnchantmentLevel(spellID) == enc.getELevel()) {
    						c.getItems().deleteItem(enc.getUnenchanted(), 1);
    						c.getItems().addItem(enc.getEnchanted(), 1);
    						c.getPA().addSkillXP(enc.getXp(), c.playerMagic);
    						c.getItems().deleteItem(ens.getReq1(), c.getItems().getItemSlot(ens.getReq1()), ens.getReqAmt1());
    						c.getItems().deleteItem(ens.getReq2(), c.getItems().getItemSlot(ens.getReq2()), ens.getReqAmt2());
    						c.startAnimation(enc.getAnim());
    						c.gfx100(enc.getGFX());
    						if (ens.getReq3() != -1) {
    							c.getItems().deleteItem(ens.getReq3(), c.getItems().getItemSlot(ens.getReq3()), ens.getReqAmt3());
    						}
    						c.getPA().sendFrame106(6);
    					} else {
    						c.sendMessage("You can only enchant this jewelry using a level-"+enc.getELevel()+" enchantment spell!");
    					}
    				} else {
    					c.sendMessage("You do not have enough runes to cast this spell.");
    				}
    			}
    		} else {
    			c.sendMessage("You need a magic level of at least "+enc.getLevelReq()+" to cast this spell.");	
    		}
    	}
    }
    Tell me if I forgot anything.

    great job will definitely use this. Also In case you remove
     

  6. #26  
    Registered Member
    Join Date
    Dec 2010
    Posts
    437
    Thanks given
    14
    Thanks received
    49
    Rep Power
    31
    The staffs dont work for these like the water staff fix it.
     

  7. #27  
    Registered Member
    Join Date
    Aug 2013
    Posts
    71
    Thanks given
    8
    Thanks received
    1
    Rep Power
    18
    Doesn't work, Used the lvl-1 enchanct on sapphire jewerly but nothing happened,
    Why? and how to fix?
    Sorry if this was a grave dig.
     

  8. #28  
    Theory Wins?
    Greyfield's Avatar
    Join Date
    Nov 2008
    Age
    32
    Posts
    1,585
    Thanks given
    61
    Thanks received
    265
    Rep Power
    310
    Quote Originally Posted by WajdiAmer View Post
    Doesn't work, Used the lvl-1 enchanct on sapphire jewerly but nothing happened,
    Why? and how to fix?
    Sorry if this was a grave dig.
    Don't use it anyway. It's making an instance of the skill for each player which is pointless.



     

Page 3 of 3 FirstFirst 123

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Need enchanting GFX and ANIMS ids.
    By Organic in forum Help
    Replies: 2
    Last Post: 10-30-2011, 05:46 PM
  2. 100% Jewellry Enchanting
    By Core in forum Snippets
    Replies: 20
    Last Post: 08-31-2010, 01:21 PM
  3. [474] Enchanting Bolts
    By Proffessor Oak in forum Snippets
    Replies: 2
    Last Post: 08-29-2010, 06:31 AM
  4. Amulet enchanting
    By Proffesor Oak in forum Tutorials
    Replies: 3
    Last Post: 05-06-2008, 11:49 PM
  5. 80% Enchanting
    By PeeHPee in forum Tutorials
    Replies: 5
    Last Post: 01-27-2008, 02:29 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •