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

Page 1 of 10 123 ... LastLast
Results 1 to 10 of 93
  1. #1 [PI] Duel Arena - Safe of every glitch & dupe 
    Banned

    Join Date
    Aug 2013
    Age
    27
    Posts
    1,128
    Thanks given
    373
    Thanks received
    754
    Rep Power
    0

    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.
    Reply With Quote  
     


  2. #2  
    Donator

    Join Date
    Feb 2013
    Posts
    1,670
    Thanks given
    477
    Thanks received
    244
    Rep Power
    29
    Thank you.
    Reply With Quote  
     

  3. #3  
    Banned
    Join Date
    Sep 2013
    Posts
    69
    Thanks given
    45
    Thanks received
    19
    Rep Power
    0
    Thank you Ardi, this is a great tutorial, worked fine, no errors for me.
    Reply With Quote  
     

  4. #4  
    Registered Member
    Join Date
    May 2012
    Posts
    85
    Thanks given
    72
    Thanks received
    5
    Rep Power
    0
    Quote Originally Posted by Lurvik View Post
    Thank you.
    use thanks button lol.

    and thx for this tutorial release ardi =)
    Reply With Quote  
     

  5. #5  
    Registered Member
    natsu's Avatar
    Join Date
    Apr 2007
    Age
    32
    Posts
    3,435
    Thanks given
    1,084
    Thanks received
    676
    Rep Power
    1096
    next time split duel arena and trading into different classes since duel arena is a minigame
    Reply With Quote  
     

  6. Thankful user:


  7. #6  
    Java Developer

    Join Date
    Jun 2012
    Posts
    384
    Thanks given
    80
    Thanks received
    35
    Rep Power
    4
    Good job Ardi, easy tutorial and really helpful, most of project insanity servers do not have a duel arena, or have it glitched alot, with alot of dupes. Already thanked you, because did the tutorial, my server will be released soon, then i'll pm you the link to play, thank you very much.
    Reply With Quote  
     

  8. Thankful user:


  9. #7  
    Registered Member
    Join Date
    Aug 2013
    Posts
    21
    Thanks given
    18
    Thanks received
    4
    Rep Power
    11
    w00000000000t! DUEL ARENA STAKING ON MY SERVER!
    fast tutorial and no errors, thanked
    Reply With Quote  
     

  10. #8  
    Banned

    Join Date
    Aug 2013
    Age
    27
    Posts
    1,128
    Thanks given
    373
    Thanks received
    754
    Rep Power
    0
    Quote Originally Posted by natsu View Post
    next time split duel arena and trading into different classes since duel arena is a minigame
    Agreed, this class is the original from Project Insanity for Duel Arena and Trade, so i used the same to be easier for who are following tutorial, i also fixed all known and unkown dupes (the ones can be fixed in TradeAndDuel & ClickingStuff) for trading.
    Reply With Quote  
     

  11. #9  
    Donator


    Join Date
    Aug 2013
    Posts
    1,163
    Thanks given
    273
    Thanks received
    156
    Rep Power
    445
    Nice as always, ardi
    Reply With Quote  
     

  12. Thankful user:


  13. #10  
    EpicPks Is Back!

    Join Date
    Jun 2012
    Posts
    480
    Thanks given
    12
    Thanks received
    16
    Rep Power
    29
    Great job here
    Reply With Quote  
     

Page 1 of 10 123 ... 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
  •