Thread: [PI] Duel Arena - Safe of every glitch & dupe

Page 9 of 10 FirstFirst ... 78910 LastLast
Results 81 to 90 of 93
  1. #81  
    Web developer

    Join Date
    Feb 2015
    Posts
    98
    Thanks given
    22
    Thanks received
    5
    Rep Power
    0
    Ty for this hope this fixes most there still could be some newirr dupes and bugs
    Reply With Quote  
     

  2. #82  
    Registered Member
    Join Date
    Apr 2015
    Posts
    75
    Thanks given
    2
    Thanks received
    1
    Rep Power
    11
    thank you are you helping me alot working for me
    Reply With Quote  
     

  3. #83  
    Registered Member
    Senseless's Avatar
    Join Date
    Apr 2012
    Posts
    454
    Thanks given
    146
    Thanks received
    58
    Rep Power
    87
    I wouldn't use this if I were any of you, IMO contains more bugs than the original Duel Arena.
    Reply With Quote  
     

  4. #84  
    Donator


    Join Date
    Jul 2011
    Posts
    921
    Thanks given
    199
    Thanks received
    178
    Rep Power
    189
    Code:
    Client o = (Client) Server.playerHandler.players[c.duelingWith];
    	if(o == null) {
    		c.getTradeAndDuel().declineDuel();
    		o.getTradeAndDuel().declineDuel();
    	        return;
    	}
    Nice nullchecks

    I strongly recommend to not use this and rather redo everything on your own!
    Reply With Quote  
     

  5. Thankful user:


  6. #85  
    Registered Member
    Join Date
    Jan 2015
    Posts
    2
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Quote Originally Posted by Hofmann View Post

    This is my first tutorial, sorry if it's not good enough for you sir.

    Please sir, read before start the tutorial.
    Hello sir, this duel arena has been modified by me, i fixed every known and unkown dupes & glitches of duel arena, and now i'm releasing this, for you, and for free. All i want for this is a click on thanks button and karma (reputation) if possible sir, thanks for attention, and good lucky doing this easy tutorial of copy and paste, remember to open the spoilers below too.

    Spoiler for Please sir, remember to:
    Remember to:
    - Backup the files being used, in case of you change of opinion about doing this tutorial.
    - Follow this tutorial step by step, to do not get errors by missing content.
    - Comment every error you're getting, so i can tell you how to fix.
    - Do not post this tutorial in other website, or re-post in rune-server.
    - Click thanks button & karma (reputation)
    - Enjoy this Duel Arena, and feel free to pm me and play your private server if you've used this tutorial.



    Spoiler for Files being used:
    Which files you are going to use sir:
    TradeAndDuel.java
    PlayerAssistant.java
    ClickingStuff.java
    ClickingButtons.java



    #1 Step
    Open your TradeAndDuel.java and replace the whole with:
    Spoiler for Code:
    Code:
    package server.model.players;
    
    import java.util.concurrent.CopyOnWriteArrayList;
    
    import server.Config;
    import server.Server;
    import server.model.items.GameItem;
    import server.model.items.Item;
    import server.util.Misc;
    
    
    public class TradeAndDuel{
    	/** Duel Arena Safe of Glitches & Dupes by: Ardi
    	* http://www.rune-server.org/members/ardi/
    	* Remember to click thanks button & karma (reputation) if you're using this.
    	*/
    
    	private Client c;
    	public TradeAndDuel(Client Client) {
    		this.c = Client;
    	}
    	
    	/**
    	* Trading ~ Ardi
    	**/
    	
    	public CopyOnWriteArrayList<GameItem> offeredItems = new CopyOnWriteArrayList<GameItem>();
    	
    	public void requestTrade(int id){
    		/*if(c.isBanking) {
    			c.sendMessage("You can't trade while in bank sir, sorry.");
    			//o.sendMessage("The player you tried to trade is banking, tell him to close bank please.");
    		}	*/
    		if(c.playerRights == 2) {
    			c.sendMessage("Administrator can't trade playerrs.");
    			return;
    		}
    		try {
    			Client o = (Client) Server.playerHandler.players[id];
    			if (id == c.playerId)
    				return;
    			c.tradeWith = id;
    			if(!c.inTrade && o.tradeRequested && o.tradeWith == c.playerId) {
    				c.getTradeAndDuel().openTrade();
    				o.getTradeAndDuel().openTrade();			
    			} else if(!c.inTrade) {
    				
    				c.tradeRequested = true;
    				c.sendMessage("Sending trade request...");
    				o.sendMessage(c.playerName + ":tradereq:");
    			}
    		} 
    		catch (Exception e) {
    			Misc.println("Error requesting trade.");
    		}
    	}
    	
    	public void openTrade() {
    		if(c.playerRights == 2) {
    			c.sendMessage("Administrator can't trade playerrs.");
    			return;
    		}
    		Client o = (Client) Server.playerHandler.players[c.tradeWith];
    		
    		if(o == null) {
    			return;
    		}
    		/*if(c.isBanking) {
    			c.sendMessage("You can't trade while in bank sir, sorry.");
    			//o.sendMessage("The player you tried to trade is banking, tell him to close bank please.");
    		}*/		
    		c.inTrade = true;
    		c.canOffer = true;
    		c.tradeStatus = 1;
    		c.tradeRequested = false;
    		c.getItems().resetItems(3322);
    		resetTItems(3415);
    		resetOTItems(3416);
    		String out = o.playerName;
    		
    		if(o.playerRights == 1) {
    			out = "@cr1@" + out;
    		} 
    		else if(o.playerRights == 2) {
    			out = "@cr2@" + out;
    		}
    		c.getPA().sendFrame126("Trading with: " + o.playerName+" who has @gre@"+o.getItems().freeSlots()+"" ,3417);
    		c.getPA().sendFrame126("", 3431);
    		c.getPA().sendFrame126("Are you sure you want to make this trade?", 3535);
    		c.getPA().sendFrame248(3323, 3321);
    	}	
    	
    	
    	
    	public void resetTItems(int WriteFrame) {
            synchronized(c) {
    			c.getOutStream().createFrameVarSizeWord(53);
    			c.getOutStream().writeWord(WriteFrame);
    			int len = offeredItems.toArray().length;
    			int current = 0;
    			c.getOutStream().writeWord(len);
    				for (GameItem item : offeredItems) {
    					if (item.amount > 254) {
    						c.getOutStream().writeByte(255);
    						c.getOutStream().writeDWord_v2(item.amount);
    					} else {
    						c.getOutStream().writeByte(item.amount);
    					}
    				c.getOutStream().writeWordBigEndianA(item.id + 1);
    				current++;
    				}
    				if(current < 27) {
    					for(int i = current; i < 28; i++) {
    						c.getOutStream().writeByte(1);
    						c.getOutStream().writeWordBigEndianA(-1);
    					}
    				}
    			c.getOutStream().endFrameVarSizeWord();
    			c.flushOutStream();
    		}
        }
    public boolean fromTrade(int itemID, int fromSlot, int amount) {
    		Client o = (Client) PlayerHandler.players[c.tradeWith];
    		if (o == null) {
    			return false;
    		}
    		try {
    			if (!c.inTrade || !c.canOffer) {
    				declineTrade();
    				return false;
    			}
    			if(!c.getItems().playerHasItem(itemID, amount))
    				return false;
                    if (amount < 0) {
    			         return false;
    		        }
    			c.tradeConfirmed = false;
    			o.tradeConfirmed = false;
    			if (!Item.itemStackable[itemID]) {
    				if (amount > 28) {
    					amount = 28;
    				}
    				for (int a = 0; a < amount; a++) {
    					for (GameItem item : offeredItems) {
    						if (item.id == itemID) {
    							if (!item.stackable) {
    								offeredItems.remove(item);
    								c.getItems().addItem(itemID, 1);
    							} else if (item.amount > amount) {
    								item.amount -= amount;
    								c.getItems().addItem(itemID, amount);
    							} else {
    								amount = item.amount;
    								offeredItems.remove(item);
    								c.getItems().addItem(itemID, amount);
    							}
    							break;
    						}
    					}
    				}
    			}
    			for (GameItem item : offeredItems) {
    				if (item.id == itemID) {
    					if (!item.stackable) {
    					} else if (item.amount > amount) {
    						item.amount -= amount;
    						c.getItems().addItem(itemID, amount);
    					} else {
    						amount = item.amount;
    						offeredItems.remove(item);
    						c.getItems().addItem(itemID, amount);
    
    					}
    					break;
    				}
    			}
    			c.tradeConfirmed = false;
    			o.tradeConfirmed = false;
    			c.getItems().resetItems(3322);
    			resetTItems(3415);
    			o.getTradeAndDuel().resetOTItems(3416);
    			//displayWAndI(c);
    			c.getPA().sendFrame126("", 3431);
    			o.getPA().sendFrame126("", 3431);
    		} catch (Exception e) {
    
    		}
    		return true;
    	}
    		
    	public boolean tradeItem(int itemID, int fromSlot, int amount) {
    		Client o = (Client) Server.playerHandler.players[c.tradeWith];
    		if(o == null) {
    			return false;
    		}
    		
    		for (int i : Config.ITEM_TRADEABLE) {
    			if(i == itemID) {
    				c.sendMessage("You can't trade this item.");
    				return false;
    			}		
    		}
    
    		if(!((c.playerItems[fromSlot] == itemID+1) && (c.playerItemsN[fromSlot] >= amount)))
    		{
    			c.sendMessage("You don't have that amount!");
    			return false;
    		}
    		c.tradeConfirmed = false;
    		o.tradeConfirmed = false;
    		if(!Item.itemStackable[itemID] && !Item.itemIsNote[itemID]) {
    			for(int a = 0; a < amount && a < 28; a++) {
    				if(c.getItems().playerHasItem(itemID, 1)) {
    					offeredItems.add(new GameItem(itemID, 1));	
    					c.getItems().deleteItem(itemID, c.getItems().getItemSlot(itemID), 1);
    					o.getPA().sendFrame126("Trading with: " + c.playerName+" who has @gre@"+c.getItems().freeSlots()+"" ,3417);	
    				}
    			}
    			o.getPA().sendFrame126("Trading with: " + c.playerName+" who has @gre@"+c.getItems().freeSlots()+"" ,3417);	
    			c.getItems().resetItems(3322);
    			resetTItems(3415);
    			o.getTradeAndDuel().resetOTItems(3416);
    			c.getPA().sendFrame126("", 3431);
    			o.getPA().sendFrame126("", 3431);
    		}
    		if (c.getItems().getItemCount(itemID) < amount) {
    			amount = c.getItems().getItemCount(itemID);
    			if (amount == 0)
    			return false;
    		}
            if (!c.inTrade || !c.canOffer) {
    			declineTrade();
    			return false;
    		}
    		if(!c.getItems().playerHasItem(itemID, amount))
    			return false;
    		
    		if(Item.itemStackable[itemID] || Item.itemIsNote[itemID]) {
    			boolean inTrade = false;
    			for(GameItem item : offeredItems) {
    				if(item.id == itemID) {
    					inTrade = true;
    					item.amount += amount;
    					c.getItems().deleteItem2(itemID, amount);
    					o.getPA().sendFrame126("Trading with: " + c.playerName+" who has @gre@"+c.getItems().freeSlots()+"" ,3417);	
    					break;	
    				}
    			}
    
    			if(!inTrade) {
    				offeredItems.add(new GameItem(itemID, amount));
    				c.getItems().deleteItem2(itemID, amount);
    				o.getPA().sendFrame126("Trading with: " + c.playerName+" who has @gre@"+c.getItems().freeSlots()+"" ,3417);	
    			}
    		}
    		o.getPA().sendFrame126("Trading with: " + c.playerName+" who has @gre@"+c.getItems().freeSlots()+"" ,3417);	
    		c.getItems().resetItems(3322);
    		resetTItems(3415);
    		o.getTradeAndDuel().resetOTItems(3416);
    		c.getPA().sendFrame126("", 3431);
    		o.getPA().sendFrame126("", 3431);
    		return true;
    		}
    	
    	
    	public void resetTrade() {
    		offeredItems.clear();
    		c.inTrade = false;
    		c.tradeWith = 0;
    		c.canOffer = true;
    		c.tradeConfirmed = false;
    		c.tradeConfirmed2 = false;
    		c.acceptedTrade = false;
    		c.getPA().removeAllWindows();
    		c.tradeResetNeeded = false;
    		c.getPA().sendFrame126("Are you sure you want to make this trade?", 3535);
    	}
    	public void declineTrade() {
    		c.tradeStatus = 0;
    		declineTrade(true);
    	}
    	
    
    	public void declineTrade(boolean tellOther) {
    		c.getPA().removeAllWindows();
    		Client o = (Client) Server.playerHandler.players[c.tradeWith];
    		if (o == null) {
    			return;
    		}
    		
    		if(tellOther){
    			o.getTradeAndDuel().declineTrade(false);
    			o.getTradeAndDuel().c.getPA().removeAllWindows();
    		}
    			
    		for(GameItem item : offeredItems) {
    			if(item.amount < 1) {
    				continue;
    			}
    			if(item.stackable) {
    				c.getItems().addItem(item.id, item.amount);
    			} else {
    				for(int i = 0; i < item.amount; i++) {
    					c.getItems().addItem(item.id, 1);
    				}
    			}
    		}
    		c.canOffer = true;
    		c.tradeConfirmed = false;
    		c.tradeConfirmed2 = false;
    		offeredItems.clear();
    		c.inTrade = false;
    		c.tradeWith = 0;
    	}
    	
    		
    	public void resetOTItems(int WriteFrame) {
    		synchronized(c) {
    			Client o = (Client) Server.playerHandler.players[c.tradeWith];
    			if(o == null) {
    				return;
    			}	
    			c.getOutStream().createFrameVarSizeWord(53);
    			c.getOutStream().writeWord(WriteFrame);
    			int len = o.getTradeAndDuel().offeredItems.toArray().length;
    			int current = 0;
    			c.getOutStream().writeWord(len);
    				for (GameItem item : o.getTradeAndDuel().offeredItems) {
    					if (item.amount > 254) {
    						c.getOutStream().writeByte(255); // item's stack count. if over 254, write byte 255
    						c.getOutStream().writeDWord_v2(item.amount); 
    					} else {
    						c.getOutStream().writeByte(item.amount);
    					}
    					c.getOutStream().writeWordBigEndianA(item.id + 1); // item id
    					current++;
    				}
    			if(current < 27) {
    				for(int i = current; i < 28; i++) {
    					c.getOutStream().writeByte(1);
    					c.getOutStream().writeWordBigEndianA(-1);
    				}
    			}
    			c.getOutStream().endFrameVarSizeWord();
    			c.flushOutStream();
    		}
        }
    	
    	
    	public void confirmScreen() {
    		Client o = (Client) Server.playerHandler.players[c.tradeWith];
    		if(o == null) {
    			return;
    		}
    		c.canOffer = false;
    		c.getItems().resetItems(3214);
    		String SendTrade = "Absolutely nothing!";
    		String SendAmount = "";
    		int Count = 0;
    		for (GameItem item : offeredItems) {
    		    if (item.id > 0) {
    				if (item.amount >= 1000 && item.amount < 1000000) {
    					SendAmount = "@cya@" + (item.amount / 1000) + "K @whi@(" + Misc.format(item.amount) + ")";
    				}  else if (item.amount >= 1000000) {
    					SendAmount = "@gre@" + (item.amount / 1000000) + " million @whi@(" + Misc.format(item.amount) + ")";
    				} else {
    					SendAmount = "" + Misc.format(item.amount);
    				}
    
    					if(Count == 0) {	
    						SendTrade = c.getItems().getItemName(item.id);		
    					} else {
    						SendTrade = SendTrade + "\\n" + c.getItems().getItemName(item.id);
    					}
    					
    						if (item.stackable) {
    							SendTrade = SendTrade + " x " + SendAmount;
    						}
    				Count++;
    		    }
    		}
    		
    		c.getPA().sendFrame126(SendTrade, 3557);
    		SendTrade = "Absolutely nothing!";
    		SendAmount = "";
    		Count = 0;
    		
    		for (GameItem item : o.getTradeAndDuel().offeredItems) {
    		    if (item.id > 0) {
    				if (item.amount >= 1000 && item.amount < 1000000) {
    					SendAmount = "@cya@" + (item.amount / 1000) + "K @whi@(" + Misc.format(item.amount) + ")";
    				}  else if (item.amount >= 1000000) {
    					SendAmount = "@gre@" + (item.amount / 1000000) + " million @whi@(" + Misc.format(item.amount) + ")";
    				} else {
    					SendAmount = "" + Misc.format(item.amount);
    				}
    				SendAmount = SendAmount;
    				
    					if (Count == 0) {
    						SendTrade = c.getItems().getItemName(item.id);		
    					} else {
    						SendTrade = SendTrade + "\\n" + c.getItems().getItemName(item.id);
    					}
    						if (item.stackable) {
    						SendTrade = SendTrade + " x " + SendAmount;
    						}
    				Count++;
    		    }
    		}
    		c.getPA().sendFrame126(SendTrade, 3558);
    		//TODO: find out what 197 does eee 3213
    		c.getPA().sendFrame248(3443, 197);
    	}
    	
    	
    	public void giveItems() {
    		Client o = (Client) Server.playerHandler.players[c.tradeWith];
    		if(o == null) {
    			return;
    		}	
    		try{	
    			for(GameItem item : o.getTradeAndDuel().offeredItems){
    				if (item.id > 0) {
    					c.getItems().addItem(item.id, item.amount);
    			   }
    			}
    			
    			c.getPA().removeAllWindows();
    			c.tradeResetNeeded = true;
    			} catch(Exception e){
    			}
    		}
    		
    	/**
    	* Dueling ~ Ardi
    	**/
    	
    	public CopyOnWriteArrayList<GameItem> otherStakedItems = new CopyOnWriteArrayList<GameItem>();
    	public CopyOnWriteArrayList<GameItem> stakedItems = new CopyOnWriteArrayList<GameItem>();
    	
    	public void requestDuel(int id) {
    		try {
    			if (id == c.playerId)
    				return;
    			resetDuel();
    			resetDuelItems();
    			c.duelingWith = id;
    			Client o = (Client) Server.playerHandler.players[id];
    			if(o == null) {
    				return;
    			}
    			c.duelRequested = true;
    			if(c.duelStatus == 0 && o.duelStatus == 0 && c.duelRequested && o.duelRequested && c.duelingWith == o.getId() && o.duelingWith == c.getId()) {
    				if(c.goodDistance(c.getX(), c.getY(), o.getX(), o.getY(), 1)) {			
    					c.getTradeAndDuel().openDuel();
    					o.getTradeAndDuel().openDuel();
    				} else {
    					c.sendMessage("You need to get closer to your opponent to start the duel.");
    				}
    
    			} else {
    				c.sendMessage("Sending duel request...");
    				o.sendMessage(c.playerName+":duelreq:");		
    			}
    		} catch (Exception e) {
    			Misc.println("Error requesting duel.");
    		}
    	}
    	
    	public void openDuel() {
    		Client o = (Client) Server.playerHandler.players[c.duelingWith];
    		if(o == null) {
    			return;
    		}	
    		c.duelStatus = 1;
    		refreshduelRules();
    		refreshDuelScreen();
    		c.canOffer = true;
    		for (int i = 0; i < c.playerEquipment.length; i++) {
    			sendDuelEquipment(c.playerEquipment[i], c.playerEquipmentN[i], i);
    		}
    		c.getPA().sendFrame126("Dueling with: " + o.playerName + " (level-" + o.combatLevel + ")", 6671);
    		c.getPA().sendFrame126("", 6684);
    		c.getPA().sendFrame248(6575, 3321);
    		c.getItems().resetItems(3322);
    	}
    	
    	public void sendDuelEquipment(int itemId, int amount, int slot) {
    		synchronized(c) {
    			if(itemId != 0) {
    				c.getOutStream().createFrameVarSizeWord(34);
    				c.getOutStream().writeWord(13824);
    				c.getOutStream().writeByte(slot);
    				c.getOutStream().writeWord(itemId+1);
    
    				if (amount > 254) {
    					c.getOutStream().writeByte(255);
    					c.getOutStream().writeDWord(amount);
    				} else {
    					c.getOutStream().writeByte(amount);
    				}
    				c.getOutStream().endFrameVarSizeWord();
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void refreshduelRules() {
    		for(int i = 0; i < c.duelRule.length; i++) {	
    			c.duelRule[i] = false;
    		}
    		c.getPA().sendFrame87(286, 0);
    		c.duelOption = 0;
    	}
    	
    	public void refreshDuelScreen() {
    		synchronized(c) {
    			Client o = (Client) Server.playerHandler.players[c.duelingWith];
    			if(o == null) {
    				return;
    			}
    			c.getOutStream().createFrameVarSizeWord(53);
    			c.getOutStream().writeWord(6669);
    			c.getOutStream().writeWord(stakedItems.toArray().length);
    			int current = 0;
    			for(GameItem item : stakedItems) {
    				if (item.amount > 254) {
    					c.getOutStream().writeByte(255); 
    					c.getOutStream().writeDWord_v2(item.amount);	
    				} else  {
    					c.getOutStream().writeByte(item.amount);
    				}
    				if (item.id > Config.ITEM_LIMIT || item.id < 0) {
    					item.id = Config.ITEM_LIMIT;
    				}
    				c.getOutStream().writeWordBigEndianA(item.id + 1);
    				
    				current++;
    			}
    			
    			if(current < 27) {
    				for(int i = current; i < 28; i++) {
    					c.getOutStream().writeByte(1);
    					c.getOutStream().writeWordBigEndianA(-1);
    				}
    			}
    			c.getOutStream().endFrameVarSizeWord();
    			c.flushOutStream();
    			
    			c.getOutStream().createFrameVarSizeWord(53);
    			c.getOutStream().writeWord(6670);
    			c.getOutStream().writeWord(o.getTradeAndDuel().stakedItems.toArray().length);
    			current = 0;	
    			for (GameItem item : o.getTradeAndDuel().stakedItems) {
    				if (item.amount > 254) {
    					c.getOutStream().writeByte(255);
    					c.getOutStream().writeDWord_v2(item.amount);
    				}  else  {
    					c.getOutStream().writeByte(item.amount);
    				}
    				if (item.id > Config.ITEM_LIMIT || item.id < 0) {
    					item.id = Config.ITEM_LIMIT;
    				}
    				c.getOutStream().writeWordBigEndianA(item.id + 1);
    				current++;
    			}
    			
    			if(current < 27) {
    				for(int i = current; i < 28; i++) {
    					c.getOutStream().writeByte(1);
    					c.getOutStream().writeWordBigEndianA(-1);
    				}
    			}
    			c.getOutStream().endFrameVarSizeWord();
    			c.flushOutStream();
    		}
    	}
    	
    	
    	public boolean stakeItem(int itemID, int fromSlot, int amount) {
    		
    		for (int i : Config.ITEM_TRADEABLE) {
    			if(i == itemID) {
    				c.sendMessage("You can't stake this item.");
    				return false;
    			}		
    		}
    		if(!c.getItems().playerHasItem(itemID, amount))
    			return false;		
    		if(c.playerRights == 2) {
    			c.sendMessage("Administrator can't stake items in duel arena.");
    			return false;
    		}
    		if(itemID == 4740 || itemID == 9244 || itemID == 11212 || itemID == 892 || itemID == 9194 || itemID == 9243 || itemID == 9242 || itemID == 9241 || itemID == 9240 || itemID == 9239 || itemID == 882 || itemID == 884 || itemID == 886 || itemID == 888 || itemID == 890) {
    		c.sendMessage("You can't stake bolts or arrows.");
    		return false;
    		}
    if(!c.getItems().playerHasItem(itemID, amount))
    		return false;
    		if (c.playerItems[fromSlot] - 1 != itemID && c.playerItems[fromSlot] != itemID) { // duel dupe fix by Aleksandr
    			if (c.playerItems[fromSlot] == 0)
    				return false;
    			return false;
    		}
    		if (amount <= 0)
    			return false;
    		Client o = (Client) Server.playerHandler.players[c.duelingWith];
    		if (o == null ) {
    			declineDuel();
    			return false;
    		}
    		if (o.duelStatus <= 0 || c.duelStatus <= 0) {
    			declineDuel();
    			o.getTradeAndDuel().declineDuel();
    			return false;
    		}
    		if (!c.canOffer) {
    			return false;
    		}
    		changeDuelStuff();
    		if(!Item.itemStackable[itemID]) {
    			for(int a = 0; a < amount; a++) {
    				if(c.getItems().playerHasItem(itemID, 1)) {
    					stakedItems.add(new GameItem(itemID, 1));	
    					c.getItems().deleteItem(itemID, c.getItems().getItemSlot(itemID), 1);
    				}
    			}		
    			c.getItems().resetItems(3214);
    			c.getItems().resetItems(3322);
    			o.getItems().resetItems(3214);
    			o.getItems().resetItems(3322);
    			refreshDuelScreen();
    			o.getTradeAndDuel().refreshDuelScreen();
    			c.getPA().sendFrame126("", 6684);
    			o.getPA().sendFrame126("", 6684);
    		}
    		
    		if(!c.getItems().playerHasItem(itemID, amount)) {
    			return false;
    		}
    		if (Item.itemStackable[itemID] || Item.itemIsNote[itemID]) {
    			boolean found = false;
    			for (GameItem item : stakedItems) {
    				if (item.id == itemID) {
    					found = true;
    					item.amount += amount;
    					c.getItems().deleteItem(itemID, fromSlot, amount);
    					break;
    				}
    			}
    			if (!found) {
    				c.getItems().deleteItem(itemID, fromSlot, amount);
    				stakedItems.add(new GameItem(itemID, amount));
    			}
    		}
    		
    		c.getItems().resetItems(3214);
    		c.getItems().resetItems(3322);
    		o.getItems().resetItems(3214);
    		o.getItems().resetItems(3322);
    		refreshDuelScreen();
    		o.getTradeAndDuel().refreshDuelScreen();
    		c.getPA().sendFrame126("", 6684);
    		o.getPA().sendFrame126("", 6684);
    		return true;
    	}
    	
    	
    	public boolean fromDuel(int itemID, int fromSlot, int amount)  {
    		Client o = (Client) Server.playerHandler.players[c.duelingWith];
    		if (o == null ) {
    			declineDuel();
    			return false;
    		}
    		if (o.duelStatus <= 0 || c.duelStatus <= 0) {
    			declineDuel();
    			o.getTradeAndDuel().declineDuel();
    			return false;
    		}
    		if(Item.itemStackable[itemID]) {
    			if(c.getItems().freeSlots() - 1 < (c.duelSpaceReq)) {
    				c.sendMessage("You have too many rules set to remove that item.");
    				return false;
    			}
    		}
    
    		if(!c.canOffer){
    			return false;
    		}
    		
    		changeDuelStuff();
    		boolean goodSpace = true;
    		if(!Item.itemStackable[itemID]) {
    			for(int a = 0; a < amount; a++) {
    				for (GameItem item : stakedItems) {
    					if(item.id == itemID) {
    						if(!item.stackable) {
    							if(c.getItems().freeSlots() - 1 < (c.duelSpaceReq)) {
    								goodSpace = false;
    								break;
    							}
    							stakedItems.remove(item);	
    							c.getItems().addItem(itemID, 1);				
    						}  else  {
    							if(c.getItems().freeSlots() - 1 < (c.duelSpaceReq)) {
    								goodSpace = false;
    								break;
    							}
    							if(item.amount > amount) {
    								item.amount -= amount;
    								c.getItems().addItem(itemID, amount);						
    							} else  {
    								if(c.getItems().freeSlots() - 1 < (c.duelSpaceReq)) {
    									goodSpace = false;
    									break;
    								}
    								amount = item.amount;
    								stakedItems.remove(item);
    								c.getItems().addItem(itemID, amount);
    							}
    						}
    						break;
    					}
    					o.duelStatus = 1;
    					c.duelStatus = 1;					
    					c.getItems().resetItems(3214);
    					c.getItems().resetItems(3322);
    					o.getItems().resetItems(3214);
    					o.getItems().resetItems(3322);
    					c.getTradeAndDuel().refreshDuelScreen();
    					o.getTradeAndDuel().refreshDuelScreen();
    					o.getPA().sendFrame126("", 6684);
    				}
    			}		
    		}
    		
    		for (GameItem item : stakedItems) {
    			if(item.id == itemID) {
    				if(!item.stackable) {
    				} else {
    					if(item.amount > amount) {
    						item.amount -= amount;
    						c.getItems().addItem(itemID, amount);
    					} else {
    						amount = item.amount;
    						stakedItems.remove(item);
    						c.getItems().addItem(itemID, amount);
    					}
    				}
    				break;
    			}
    		}
    		o.duelStatus = 1;
    		c.duelStatus = 1;					
    		c.getItems().resetItems(3214);
    		c.getItems().resetItems(3322);
    		o.getItems().resetItems(3214);
    		o.getItems().resetItems(3322);
    		c.getTradeAndDuel().refreshDuelScreen();
    		o.getTradeAndDuel().refreshDuelScreen();
    		o.getPA().sendFrame126("", 6684);
    		if(!goodSpace) {
    			c.sendMessage("You have too many rules set to remove that item.");
    			return true;
    		}
            return true;
        }
    	
    	public void confirmDuel() {
    		Client o = (Client) Server.playerHandler.players[c.duelingWith];
    		if(o == null) {
    			declineDuel();
    			return;
    		}
    		String itemId = "";
    		for(GameItem item : stakedItems) {
    			if(Item.itemStackable[item.id] || Item.itemIsNote[item.id]) {
    				itemId += c.getItems().getItemName(item.id) + " x " + Misc.format(item.amount) +"\\n";
    			}  else  {
    				itemId += c.getItems().getItemName(item.id) + "\\n";
    			}
    		}
    		c.getPA().sendFrame126(itemId, 6516);
    		itemId = "";
    		for(GameItem item : o.getTradeAndDuel().stakedItems) {
    			if(Item.itemStackable[item.id] || Item.itemIsNote[item.id]) {
    				itemId += c.getItems().getItemName(item.id) + " x " + Misc.format(item.amount) +"\\n";
    			} else {
    				itemId += c.getItems().getItemName(item.id) +"\\n";
    			}
    		}
    		c.getPA().sendFrame126(itemId, 6517);
    		c.getPA().sendFrame126("", 8242);
    		for(int i = 8238; i <= 8253; i++) {
    			c.getPA().sendFrame126("", i);
    		}
    		c.getPA().sendFrame126("Hitpoints will be restored.", 8250);
    		c.getPA().sendFrame126("Boosted stats will be restored.", 8238);
    		if(c.duelRule[8]) {
    			c.getPA().sendFrame126("There will be obstacles in the arena.", 8239);
    		} 
    		c.getPA().sendFrame126("", 8240);
    		c.getPA().sendFrame126("", 8241);
    		
    		String[] rulesOption = {"Players cannot forfeit!", "Players cannot move.", "Players cannot use range.", "Players cannot use melee.", "Players cannot use magic.",  "Players cannot drink pots.",  "Players cannot eat food.", "Players cannot use prayer."};
    		
    		int lineNumber = 8242;
    		for(int i = 0; i < 8; i++) {
    			if(c.duelRule[i]) {
    				c.getPA().sendFrame126(""+rulesOption[i], lineNumber);
    				lineNumber ++;
    			}
    		}
    		c.getPA().sendFrame126("", 6571);
    		c.getPA().sendFrame248(6412, 197);
    		//c.getPA().showInterface(6412);
    	}
    	
    	
    	public void startDuel() {
    		c.freezeTimer = 2;
    		c.getPA().resetFollow();
    		Client o = (Client) Server.playerHandler.players[c.duelingWith];
    		if (o.disconnected) {
    		duelVictory();
    		}
    		if(o == null) {
    			duelVictory();
    		}
    		c.headIconHints = 2;
    		c.vengOn = false;
    		
    		if(c.duelRule[7]){
    			for(int p = 0; p < c.PRAYER.length; p++) { // reset prayer glows 
    				c.prayerActive[p] = false;
    				c.getPA().sendFrame36(c.PRAYER_GLOW[p], 0);		
    			}
    			c.headIcon = -1;
    			c.getPA().requestUpdates();
    		}		
    		if(c.duelRule[11]) {
    			c.getItems().removeItem(c.playerEquipment[0], 0);
    		}
    		if(c.duelRule[12]) {
    			c.getItems().removeItem(c.playerEquipment[1], 1);
    		}
    		if(c.duelRule[13]) {
    			c.getItems().removeItem(c.playerEquipment[2], 2);
    		}
    		if(c.duelRule[14]) {
    			c.getItems().removeItem(c.playerEquipment[3], 3);
    		}
    		if(c.duelRule[15]) {
    			c.getItems().removeItem(c.playerEquipment[4], 4);
    		}
    		if(c.duelRule[16]) {
    			c.getItems().removeItem(c.playerEquipment[5], 5);
    		}
    		if(c.duelRule[17]) {
    			c.getItems().removeItem(c.playerEquipment[7], 7);
    		}
    		if(c.duelRule[18]) {
    			c.getItems().removeItem(c.playerEquipment[9], 9);
    		}
    		if(c.duelRule[19]) {
    			c.getItems().removeItem(c.playerEquipment[10], 10);
    		}
    		if(c.duelRule[20]) {
    			c.getItems().removeItem(c.playerEquipment[12], 12);
    		}
    		if(c.duelRule[21]) {
    			c.getItems().removeItem(c.playerEquipment[13], 13);
    		}		
    		c.duelStatus = 5;
    		c.getPA().removeAllWindows();
    		c.specAmount = 10;
    		c.getItems().addSpecialBar(c.playerEquipment[c.playerWeapon]);
    		
    		if(c.duelRule[8]){	
    			if(c.duelRule[1]) {
    				c.getPA().movePlayer(c.duelTeleX, c.duelTeleY, 0);
    			} else {
    				c.getPA().movePlayer(3366 + Misc.random(12), 3246 + Misc.random(6), 0);
    			}
    		} else {
    			if(c.duelRule[1]) {
    				c.getPA().movePlayer(c.duelTeleX, c.duelTeleY, 0);
    			} else {	
    				c.getPA().movePlayer(3335 + Misc.random(12), 3246 + Misc.random(6), 0);
    			}
    		}
    
    		c.getPA().createPlayerHints(10, o.playerId);
    		c.getPA().showOption(3, 0, "Attack", 1);
    		for (int i = 0; i < 20; i++) {
    			c.playerLevel[i] = c.getPA().getLevelForXP(c.playerXP[i]);
    			c.getPA().refreshSkill(i);
    		}
    		for(GameItem item : o.getTradeAndDuel().stakedItems) {
    			otherStakedItems.add(new GameItem(item.id, item.amount));
    		}
    		c.getPA().requestUpdates();			
    	}
    
    	
    	public void duelVictory() {
    		Client o = (Client) Server.playerHandler.players[c.duelingWith];
    		if(o != null) {
    			c.getPA().sendFrame126(""+o.combatLevel, 6839);
    			c.getPA().sendFrame126(o.playerName, 6840);
    			o.duelStatus = 0;
    			c.freezeTimer = 3;
    		} else {
    			c.getPA().sendFrame126("", 6839);
    			c.getPA().sendFrame126("", 6840);
    		}
    		c.duelStatus = 6;
    		c.getCombat().resetPrayers();
    		for (int i = 0; i < 20; i++) {
    			c.playerLevel[i] = c.getPA().getLevelForXP(c.playerXP[i]);
    			c.getPA().refreshSkill(i);
    		}
    		c.getPA().refreshSkill(3);
    		//c.getPA().refreshSkill(i);
    		c.specAmount = 10;
    		c.getItems().addSpecialBar(c.playerEquipment[c.playerWeapon]);	
    		duelRewardInterface();
    		PlayerSave.saveGame(c);
    		c.getPA().showInterface(6733);
    		c.getPA().movePlayer(3362, 3263, 0);	
    		c.getPA().requestUpdates();
    		c.getPA().showOption(3, 0, "Challenge", 3);
    		c.getPA().createPlayerHints(10, -1);
    		c.canOffer = true;
    		c.duelSpaceReq = 0;
    		c.duelingWith = 0;
    		c.freezeTimer = 1;
    		c.getPA().resetFollow();
    		c.getCombat().resetPlayerAttack();
    		c.duelRequested = false;
    	}	
        
    	
    	public void duelRewardInterface() {
    		synchronized(c) {
    			c.getOutStream().createFrameVarSizeWord(53);
    			c.getOutStream().writeWord(6822);
    			c.getOutStream().writeWord(otherStakedItems.toArray().length);
    			for (GameItem item : otherStakedItems) {
    				if (item.amount > 254) {
    					c.getOutStream().writeByte(255);					
    					c.getOutStream().writeDWord_v2(item.amount);
    				} else {
    					c.getOutStream().writeByte(item.amount);
    				}
    				if (item.id > Config.ITEM_LIMIT || item.id < 0) {
    					item.id = Config.ITEM_LIMIT;
    				}
    				c.getOutStream().writeWordBigEndianA(item.id + 1);
    			}
    			c.getOutStream().endFrameVarSizeWord();
    			c.flushOutStream();
    		}
    	}
    
    	public void claimStakedItems() {
    		for(GameItem item : otherStakedItems) {
    			if(item.id > 0 && item.amount > 0) {
    				if(Item.itemStackable[item.id]) {
    					if(!c.getItems().addItem(item.id, item.amount)) {
    						Server.itemHandler.createGroundItem(c, item.id, c.getX(), c.getY(), item.amount, c.getId());
    					}
    				} else {
    					int amount = item.amount;
    					for(int a = 1; a <= amount; a++) {
    						if(!c.getItems().addItem(item.id, 1)) {
    							Server.itemHandler.createGroundItem(c, item.id, c.getX(), c.getY(), 1, c.getId());
    						}
    					}
    				}
    			}	
    		}
    		for(GameItem item : stakedItems) {
    			if(item.id > 0 && item.amount > 0) {
    				if(Item.itemStackable[item.id]) {
    					if(!c.getItems().addItem(item.id, item.amount)) {
    						Server.itemHandler.createGroundItem(c, item.id, c.getX(), c.getY(), item.amount, c.getId());
    					}
    				} else {
    					int amount = item.amount;
    					for(int a = 1; a <= amount; a++) {
    						if(!c.getItems().addItem(item.id, 1)) {
    							Server.itemHandler.createGroundItem(c, item.id, c.getX(), c.getY(), 1, c.getId());
    						}
    					}
    				}	
    			}
    		}	
    		resetDuel();
    		resetDuelItems();
    		c.duelStatus = 0;
    	}
    	
    	public void declineDuel() {
    		c.getPA().removeAllWindows();
    		c.canOffer = true;
    		c.duelStatus = 0;
    		c.duelingWith = 0;
    		c.duelSpaceReq = 0;
    		c.duelRequested = false;
    		for(GameItem item : stakedItems) {
    			if(item.amount < 1) continue;
    			if(Item.itemStackable[item.id] || Item.itemIsNote[item.id]) {
    				c.getItems().addItem(item.id, item.amount);
    			} else  {
    				c.getItems().addItem(item.id, 1);
    			}
    		}
    		stakedItems.clear();
    		for (int i = 0; i < c.duelRule.length; i++) { 
    			c.duelRule[i] = false;
    		}
    	}
    
    	public void resetDuel() {
    		c.getPA().showOption(3, 0, "Challenge", 3);
    		c.headIconHints = 0;
    		for (int i = 0; i < c.duelRule.length; i++) { 
    			c.duelRule[i] = false;
    		}
    		c.getPA().createPlayerHints(10, -1);
    		c.duelStatus = 0;
    		c.canOffer = true;
    		c.duelSpaceReq = 0;
    		c.duelingWith = 0;
    		c.freezeTimer = 1;
    		c.getPA().resetFollow();
    		c.getPA().requestUpdates();
    		c.getCombat().resetPlayerAttack();
    		c.duelRequested = false;
    	}
    	
    	public void resetDuelItems() {
    		stakedItems.clear();
    		otherStakedItems.clear();
    	}
    	
    	public void changeDuelStuff() {
    		Client o = (Client) Server.playerHandler.players[c.duelingWith];
    		if(o == null) {
    			return;
    		}
    		o.duelStatus = 1;
    		c.duelStatus = 1;
    		o.getPA().sendFrame126("", 6684);
    		c.getPA().sendFrame126("", 6684);
    	}
    	
    	
    	public void selectRule(int i) { // rules
    		Client o = (Client) Server.playerHandler.players[c.duelingWith];
    		if(o == null) {
    			return;
    		}
    		if (!c.canOffer)
    			return;
    		changeDuelStuff();
    		o.duelSlot = c.duelSlot;
    		if(i >= 11 && c.duelSlot > -1) {
    			if(c.playerEquipment[c.duelSlot] > 0) {
    				if(!c.duelRule[i]) {
    					c.duelSpaceReq++;	
    				} else {
    					c.duelSpaceReq--;
    				}
    			}	
    			if(o.playerEquipment[o.duelSlot] > 0) {
    				if(!o.duelRule[i]) {
    					o.duelSpaceReq++;
    				} else {
    					o.duelSpaceReq--;
    				}
    			}
    		}
    
    		if(i >= 11) {
    			if(c.getItems().freeSlots() < (c.duelSpaceReq ) || o.getItems().freeSlots() < (o.duelSpaceReq)) {
    				c.sendMessage("You or your opponent don't have the required space to set this rule.");
    				if(c.playerEquipment[c.duelSlot] > 0) {
    					c.duelSpaceReq--;
    				}
    				if(o.playerEquipment[o.duelSlot] > 0) {
    					o.duelSpaceReq--;
    				}
    				return;
    			}
    		}
    		
    		if(!c.duelRule[i]) {
    			c.duelRule[i] = true;
    			c.duelOption += c.DUEL_RULE_ID[i];
    		} else {	
    			c.duelRule[i] = false;
    			c.duelOption -= c.DUEL_RULE_ID[i];
    		}
    
    		c.getPA().sendFrame87(286, c.duelOption);
    		o.duelOption = c.duelOption;
    		o.duelRule[i] = c.duelRule[i];
    		o.getPA().sendFrame87(286, o.duelOption);
    		
    		if(c.duelRule[8]){	
    			if(c.duelRule[1]) {
    				c.duelTeleX = 3366 + Misc.random(12);
    				o.duelTeleX = c.duelTeleX-1;
    				c.duelTeleY = 3246 + Misc.random(6);
    				o.duelTeleY = c.duelTeleY;
    			}
    		} else {
    			if(c.duelRule[1]) {
    				c.duelTeleX = 3335 + Misc.random(12);
    				o.duelTeleX = c.duelTeleX-1;
    				c.duelTeleY = 3246 + Misc.random(6);
    				o.duelTeleY = c.duelTeleY;
    			}
    		}
    
    	}
    
    }
    
    			/* This TradeAndDuel is original from Project Insanity.
    			* But has been total fixed, and modified alot of it to be safe of glitches & dupes by Ardi
    			* http://www.rune-server.org/members/ardi/
    			* Remember to click thanks button & karma (reputation) if you're using this, or just liked the job.
    			*/


    #2 Step
    This step you will need to replace your applyDead method (PlayerAssistant.java)
    Remember, if you've added some pk points or kill/death ratio system, you will need to modify the code below.
    In the wilderness dying side, if you can't do this please click here and comment what you need, so i'll help you.
    Spoiler for Code:
    Code:
    	public void applyDead() {	
    		c.getTradeAndDuel().stakedItems.clear();
    		c.respawnTimer = 15;
    		c.isDead = false;
    		
    		if(c.duelStatus != 6) {
    			//c.killerId = c.getCombat().getKillerId(c.playerId);
    			c.killerId = findKiller();
    			Client o = (Client) Server.playerHandler.players[c.killerId];
    			if(o != null) {
    				if (c.killerId != c.playerId)
    					o.sendMessage("You have defeated "+c.playerName+"!");
    				c.playerKilled = c.playerId;
    				if(o.duelStatus == 5) {
    					o.duelStatus++;
    				}
    			}
    		}
    		c.faceUpdate(0);
    			EventManager.getSingleton().addEvent(new Event() {
    				public void execute(EventContainer b) {
    		c.npcIndex = 0;
    		c.playerIndex = 0;
    				b.stop();
    				}
    				}, 2500);
    		c.stopMovement();
    		if(c.duelStatus <= 4) {
    			c.getTradeAndDuel().stakedItems.clear();
    			c.sendMessage("Oh dear you are dead!");
    		} else if(c.duelStatus != 6) {
    		Client o = (Client) Server.playerHandler.players[c.killerId];
    			c.getTradeAndDuel().stakedItems.clear();
    			c.sendMessage("You have lost the duel!");
    			PlayerSave.saveGame(o);
    			PlayerSave.saveGame(c);
    		}
    		PlayerSave.saveGame(c);
    		resetDamageDone();
    		c.specAmount = 10;
    		c.getItems().addSpecialBar(c.playerEquipment[c.playerWeapon]);
    		c.lastVeng = 0;
    		c.vengOn = false;
    		resetFollowers();
    		c.attackTimer = 10;
    		c.tradeResetNeeded = true;
    	}


    #3 Step
    Open ClickingButtons.java and search for:
    Code:
    case 26018:
    Replace this whole code with:
    Spoiler for Code:
    Code:
    			/* Accepting Duel Interface Fixed by: Ardi
    			* Remember to click thanks button & karma (reputation) for Ardi, if you're using this.
    			*/
    			case 26018:
    			if (c.duelStatus == 5) {
    				//c.sendMessage("This glitch has been fixed by Ardi, sorry sir.");
    				return;
    			}
    			if(c.inDuelArena()) {
    				Client o = (Client) Server.playerHandler.players[c.duelingWith];
    				if(o == null) {
    					c.getTradeAndDuel().declineDuel();
    					o.getTradeAndDuel().declineDuel();
    					return;
    				}
    					
    				
    				if(c.duelRule[2] && c.duelRule[3] && c.duelRule[4]) {
    					c.sendMessage("You won't be able to attack the player with the rules you have set.");
    					break;
    				}
    				c.duelStatus = 2;
    				if(c.duelStatus == 2) {
    					c.getPA().sendFrame126("Waiting for other player...", 6684);
    					o.getPA().sendFrame126("Other player has accepted.", 6684);
    				}
    				if(o.duelStatus == 2) {
    					o.getPA().sendFrame126("Waiting for other player...", 6684);
    					c.getPA().sendFrame126("Other player has accepted.", 6684);
    				}
    				
    				if(c.duelStatus == 2 && o.duelStatus == 2) {
    					c.canOffer = false;
    					o.canOffer = false;
    					c.duelStatus = 3;
    					o.duelStatus = 3;
    					c.getTradeAndDuel().confirmDuel();
    					o.getTradeAndDuel().confirmDuel();
    				}
    			} else {
    					Client o = (Client) Server.playerHandler.players[c.duelingWith];
    					c.getTradeAndDuel().declineDuel();
    					o.getTradeAndDuel().declineDuel();
    					c.sendMessage("You can't stake out of Duel Arena.");
    			}
    			break;

    In same file (ClickingButtons.java) search for:
    Code:
    case 25120:
    And replace the whole code with:
    Spoiler for Code:
    Code:
    			/* Accepting Duel Interface Fixed by: Ardi
    			* Remember to click thanks button & karma (reputation) for Ardi, if you're using this.
    			*/
    			case 25120:
    			if (c.duelStatus == 5) {
    				//c.sendMessage("This glitch has been fixed by Ardi, sorry sir.");
    				return;
    			}
    			if(c.inDuelArena()) {	
    				if(c.duelStatus == 5) {
    					break;
    				}
    				Client o1 = (Client) Server.playerHandler.players[c.duelingWith];
    				if(o1 == null) {
    					c.getTradeAndDuel().declineDuel();
    					return;
    				}
    
    				c.duelStatus = 4;
    				if(o1.duelStatus == 4 && c.duelStatus == 4) {				
    					c.getTradeAndDuel().startDuel();
    					o1.getTradeAndDuel().startDuel();
    					o1.duelCount = 4;
    					c.duelCount = 4;
    					c.duelDelay = System.currentTimeMillis();
    					o1.duelDelay = System.currentTimeMillis();
    				} else {
    					c.getPA().sendFrame126("Waiting for other player...", 6571);
    					o1.getPA().sendFrame126("Other player has accepted", 6571);
    				}
    			} else {
    					Client o = (Client) Server.playerHandler.players[c.duelingWith];
    					c.getTradeAndDuel().declineDuel();
    					o.getTradeAndDuel().declineDuel();
    					c.sendMessage("You can't stake out of Duel Arena.");
    			}
    			break;

    #4 Step
    Open ClickingStuff.java and replace the whole code with:
    (this clickingstuff have the fix for a trade dupe too, the accept & decline.)
    Spoiler for Code:

    Code:
    package server.model.players.packets;
    
    import server.Server;
    import server.model.players.Client;
    import server.model.players.PacketType;
    import server.util.Misc;
    
    
    /**
     * Clicking stuff (interfaces)
     **/
    public class ClickingStuff implements PacketType {
    
    	@Override
    	public void processPacket(Client c, int packetType, int packetSize) {
    		if (c.inTrade) {
    			if (!c.acceptedTrade) {
    				Client o = (Client) Server.playerHandler.players[c.tradeWith];
    				o.tradeAccepted = false;
    				c.tradeAccepted = false;
    				o.tradeStatus = 0;
    				c.tradeStatus = 0;
    				c.tradeConfirmed = false;
    				c.tradeConfirmed2 = false;
    				//c.sendMessage("@red@Trade has been declined.");
    				//o.sendMessage("@red@Other player has declined the trade.");
    				Misc.println("trade reset");
    				c.getTradeAndDuel().declineTrade();
    			}
    		}
    		//if (c.isBanking)
    		//c.isBanking = false;
    
    		Client o = (Client) Server.playerHandler.players[c.duelingWith];
    			if (c.duelStatus == 5) {
    				//c.sendMessage("This glitch has been fixed by Ardi, sorry sir.");
    				return;
    			}
    		if(o != null) {
    			if(c.duelStatus >= 1 && c.duelStatus <= 4) {
    				c.getTradeAndDuel().declineDuel();
    				o.getTradeAndDuel().declineDuel();
    			}
    		}
    		
    		if(c.duelStatus == 6) {
    			c.getTradeAndDuel().claimStakedItems();		
    		}
    	
    	}
    		
    }


    Remember to click thanks button & karma (reputation) if you're using this.
    Thanks for attention sir.



    Spoiler for You're getting errors/glitches/bugs?:
    Some [PI] Server have missing content of Duel Arena, others have just the half work, and some have like nothing about Duel Arena, so some people will have errors, or glitches, because not every [PI] have same methods for Duel Arena, so if you're getting errors/glitches/bugs please comment it in here, then i can help you fixing it, thanks for attention.
    whenever i switch my weap in duel it removes the attack option....
    Reply With Quote  
     

  7. #86  
    Donator

    Join Date
    Oct 2014
    Posts
    587
    Thanks given
    29
    Thanks received
    76
    Rep Power
    26
    Quote Originally Posted by Saranthium View Post
    Code:
    Client o = (Client) Server.playerHandler.players[c.duelingWith];
    	if(o == null) {
    		c.getTradeAndDuel().declineDuel();
    		o.getTradeAndDuel().declineDuel();
    	        return;
    	}
    Nice nullchecks

    I strongly recommend to not use this and rather redo everything on your own!
    LOL, wtf
    Programming service - Fast, Cheap & Quality
    http://www.rune-server.org/black-mar...-services.html

    Project that I am currently working on:
    http://www.rune-server.org/runescape...emon-rsps.html

    Reply With Quote  
     

  8. #87  
    Java Programmer
    Alex.'s Avatar
    Join Date
    Jun 2014
    Posts
    111
    Thanks given
    6
    Thanks received
    6
    Rep Power
    11
    Removed
    Reply With Quote  
     

  9. #88  
    Banned
    Join Date
    Mar 2012
    Posts
    105
    Thanks given
    28
    Thanks received
    33
    Rep Power
    0
    how do you fix the glitch when you die/xlog you stay in the duel arena?
    Reply With Quote  
     

  10. #89  
    Registered Member
    Vippy's Avatar
    Join Date
    Oct 2014
    Age
    25
    Posts
    2,572
    Thanks given
    984
    Thanks received
    1,933
    Rep Power
    5000
    Thanks for this.
    Reply With Quote  
     

  11. #90  
    Owner of Ghreborn new and old.


    Join Date
    Nov 2009
    Posts
    916
    Thanks given
    47
    Thanks received
    155
    Rep Power
    273
    Quote Originally Posted by Swag Nation View Post
    how do you fix the glitch when you die/xlog you stay in the duel arena?

    thats not fixed i tryed it.
    Im back and working on reborn,
    Reply With Quote  
     

Page 9 of 10 FirstFirst ... 78910 LastLast

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. [PI] Duel Arena easy fix for lot of glitches.
    By Hofmann in forum Snippets
    Replies: 15
    Last Post: 07-19-2014, 04:36 PM
  2. Replies: 1
    Last Post: 01-09-2013, 03:59 AM
  3. [PI] Duel arena lagg glitch!
    By haydar25 in forum Help
    Replies: 7
    Last Post: 07-12-2011, 05:22 AM
  4. [PI]Duel Arena Log Out Glitch?
    By Defuze in forum Help
    Replies: 4
    Last Post: 03-05-2011, 07:57 PM
  5. [PI] Duel Arena Log Out Glitch
    By Tojad in forum Help
    Replies: 0
    Last Post: 10-09-2010, 11:56 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •