Thread: [PI] Splitting Trade & Duel

Page 1 of 2 12 LastLast
Results 1 to 10 of 12
  1. #1 [PI] Splitting Trade & Duel 
    Registered Member Lil Peep's Avatar
    Join Date
    Oct 2012
    Posts
    881
    Thanks given
    234
    Thanks received
    58
    Rep Power
    0
    It's really stupid that these classes are together. Everyone says to split them up but no one really does. For those of you that are lazy, here you go.

    Spoiler for NOTE!:

    These classes and such that I provided are from a vanilla Project Insanity base. There is a good chance that this has dupes so if that's the case, just copy your trade and duel methods to separate classes.

    It would also be wise to backup your files?


    Delete:
    TradeAndDuel.java

    Create & Paste these classes into server.model.players:

    Spoiler for classes:

    Spoiler for Duel.java:

    Code:
    package com.vermillion.model.players;
    
    import java.util.concurrent.CopyOnWriteArrayList;
    
    import server.Config;
    import server.Server;
    import server.model.players.PlayerHandler;
    import server.model.items.GameItem;
    import server.model.items.Item;
    import server.util.Misc;
    
    public class Duel {
    
    	private Client c;
    	
    	public Duel(Client client) {
    		this.c = client;
    	}
    	
    	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) 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.getDuel().openDuel();
    					o.getDuel().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) 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().sendString(
    				"Dueling with: " + o.playerName + " (level-" + o.combatLevel
    						+ ")", 6671);
    		c.getPA().sendString("", 6684);
    		c.getPA().sendInterfaceInventory(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().sendConfigInt(286, 0);
    		c.duelOption = 0;
    	}
    
    	public void refreshDuelScreen() {
    		synchronized (c) {
    			Client o = (Client) 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 > Constants.ITEM_LIMIT || item.id < 0) {
    					item.id = Constants.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.getDuel().stakedItems.toArray().length);
    			current = 0;
    			for (GameItem item : o.getDuel().stakedItems) {
    				if (item.amount > 254) {
    					c.getOutStream().writeByte(255);
    					c.getOutStream().writeDWord_v2(item.amount);
    				} else {
    					c.getOutStream().writeByte(item.amount);
    				}
    				if (item.id > Constants.ITEM_LIMIT || item.id < 0) {
    					item.id = Constants.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 : Constants.ITEM_TRADEABLE) {
    			if (i == itemID) {
    				c.sendMessage("You can't stake this item.");
    				return false;
    			}
    		}
    		if (amount <= 0)
    			return false;
    		Client o = (Client) PlayerHandler.players[c.duelingWith];
    		if (o == null) {
    			declineDuel();
    			return false;
    		}
    		if (o.duelStatus <= 0 || c.duelStatus <= 0) {
    			declineDuel();
    			o.getDuel().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.getDuel().refreshDuelScreen();
    			c.getPA().sendString("", 6684);
    			o.getPA().sendString("", 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.getDuel().refreshDuelScreen();
    		c.getPA().sendString("", 6684);
    		o.getPA().sendString("", 6684);
    		return true;
    	}
    
    	public boolean fromDuel(int itemID, int fromSlot, int amount) {
    		Client o = (Client) PlayerHandler.players[c.duelingWith];
    		if (o == null) {
    			declineDuel();
    			return false;
    		}
    		if (o.duelStatus <= 0 || c.duelStatus <= 0) {
    			declineDuel();
    			o.getDuel().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.getDuel().refreshDuelScreen();
    					o.getDuel().refreshDuelScreen();
    					o.getPA().sendString("", 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.getDuel().refreshDuelScreen();
    		o.getDuel().refreshDuelScreen();
    		o.getPA().sendString("", 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) 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().sendString(itemId, 6516);
    		itemId = "";
    		for (GameItem item : o.getDuel().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().sendString(itemId, 6517);
    		c.getPA().sendString("", 8242);
    		for (int i = 8238; i <= 8253; i++) {
    			c.getPA().sendString("", i);
    		}
    		c.getPA().sendString("Hitpoints will be restored.", 8250);
    		c.getPA().sendString("Boosted stats will be restored.", 8238);
    		if (c.duelRule[8]) {
    			c.getPA().sendString("There will be obstacles in the arena.",
    					8239);
    		}
    		c.getPA().sendString("", 8240);
    		c.getPA().sendString("", 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().sendString("" + rulesOption[i], lineNumber);
    				lineNumber++;
    			}
    		}
    		c.getPA().sendString("", 6571);
    		c.getPA().sendInterfaceInventory(6412, 197);
    		// c.getPA().showInterface(6412);
    	}
    
    	public void startDuel() {
    		Client o = (Client) PlayerHandler.players[c.duelingWith];
    		if (o == null) {
    			duelVictory();
    		}
    		c.headIconHints = 2;
    
    		if (c.duelRule[7]) {
    			for (int p = 0; p < c.PRAYER.length; p++) { // reset prayer glows
    				c.prayerActive[p] = false;
    				c.getPA().sendConfigByte(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.getDuel().stakedItems) {
    			otherStakedItems.add(new GameItem(item.id, item.amount));
    		}
    		c.getPA().requestUpdates();
    	}
    
    	public void duelVictory() {
    		Client o = (Client) PlayerHandler.players[c.duelingWith];
    		if (o != null) {
    			c.getPA().sendString("" + o.combatLevel, 6839);
    			c.getPA().sendString(o.playerName, 6840);
    			o.duelStatus = 0;
    		} else {
    			c.getPA().sendString("", 6839);
    			c.getPA().sendString("", 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);
    		duelRewardInterface();
    		c.getPA().showInterface(6733);
    		c.getPA().movePlayer(
    				Constants.DUELING_RESPAWN_X
    						+ (Misc.random(Constants.RANDOM_DUELING_RESPAWN)),
    				Constants.DUELING_RESPAWN_Y
    						+ (Misc.random(Constants.RANDOM_DUELING_RESPAWN)), 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.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 > Constants.ITEM_LIMIT || item.id < 0) {
    					item.id = Constants.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.getPA().requestUpdates();
    		c.getCombat().resetPlayerAttack();
    		c.duelRequested = false;
    	}
    
    	public void resetDuelItems() {
    		stakedItems.clear();
    		otherStakedItems.clear();
    	}
    
    	public void changeDuelStuff() {
    		Client o = (Client) PlayerHandler.players[c.duelingWith];
    		if (o == null) {
    			return;
    		}
    		o.duelStatus = 1;
    		c.duelStatus = 1;
    		o.getPA().sendString("", 6684);
    		c.getPA().sendString("", 6684);
    	}
    
    	public void selectRule(int i) { // rules
    		Client o = (Client) 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().sendConfigInt(286, c.duelOption);
    		o.duelOption = c.duelOption;
    		o.duelRule[i] = c.duelRule[i];
    		o.getPA().sendConfigInt(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;
    			}
    		}
    
    	}
    
    }


    Spoiler for Trade.java:

    Code:
    package server.model.players;
    
    import java.util.concurrent.CopyOnWriteArrayList;
    
    import server.Config;
    import server.model.players.PlayerHandler;
    import server.model.items.GameItem;
    import server.model.items.Item;
    import server.util.Misc;
    
    public class Trade {
    
    	private Client c;
    	
    	public Trade(Client client) {
    		this.c = client;
    	}
    	
    	public CopyOnWriteArrayList<GameItem> offeredItems = new CopyOnWriteArrayList<GameItem>();
    	
    	public void requestTrade(int id) {
    		try {
    			Client o = (Client) PlayerHandler.players[id];
    			if (id == c.playerId)
    				return;
    			c.tradeWith = id;
    			if (!c.inTrade && o.tradeRequested && o.tradeWith == c.playerId) {
    				c.getTrade().openTrade();
    				o.getTrade().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() {
    		Client o = (Client) PlayerHandler.players[c.tradeWith];
    
    		if (o == null) {
    			return;
    		}
    		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().sendString(
    				"Trading with: " + o.playerName + " who has @gre@"
    						+ o.getItems().freeSlots() + " free slots", 3417);
    		c.getPA().sendString("", 3431);
    		c.getPA().sendString("Are you sure you want to make this trade?",
    				3535);
    		c.getPA().sendInterfaceInventory(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;
    			}
    			c.tradeConfirmed = false;
    			o.tradeConfirmed = false;
    			if (!Item.itemStackable[itemID]) {
    				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);
    								o.getPA().sendString(
    										"Trading with: " + c.playerName
    												+ " who has @gre@"
    												+ c.getItems().freeSlots()
    												+ " free slots", 3417);
    							} else {
    								if (item.amount > amount) {
    									item.amount -= amount;
    									c.getItems().addItem(itemID, amount);
    									o.getPA().sendString(
    											"Trading with: " + c.playerName
    													+ " who has @gre@"
    													+ c.getItems().freeSlots()
    													+ " free slots", 3417);
    								} else {
    									amount = item.amount;
    									offeredItems.remove(item);
    									c.getItems().addItem(itemID, amount);
    									o.getPA().sendString(
    											"Trading with: " + c.playerName
    													+ " who has @gre@"
    													+ c.getItems().freeSlots()
    													+ " free slots", 3417);
    								}
    							}
    							break;
    						}
    						o.getPA().sendString(
    								"Trading with: " + c.playerName
    										+ " who has @gre@"
    										+ c.getItems().freeSlots()
    										+ " free slots", 3417);
    						c.tradeConfirmed = false;
    						o.tradeConfirmed = false;
    						c.getItems().resetItems(3322);
    						resetTItems(3415);
    						o.getTrade().resetOTItems(3416);
    						c.getPA().sendString("", 3431);
    						o.getPA().sendString("", 3431);
    					}
    				}
    			}
    			for (GameItem item : offeredItems) {
    				if (item.id == itemID) {
    					if (!item.stackable) {
    					} else {
    						if (item.amount > amount) {
    							item.amount -= amount;
    							c.getItems().addItem(itemID, amount);
    							o.getPA().sendString(
    									"Trading with: " + c.playerName
    											+ " who has @gre@"
    											+ c.getItems().freeSlots()
    											+ " free slots", 3417);
    						} else {
    							amount = item.amount;
    							offeredItems.remove(item);
    							c.getItems().addItem(itemID, amount);
    							o.getPA().sendString(
    									"Trading with: " + c.playerName
    											+ " who has @gre@"
    											+ c.getItems().freeSlots()
    											+ " free slots", 3417);
    						}
    					}
    					break;
    				}
    			}
    
    			o.getPA().sendString(
    					"Trading with: " + c.playerName + " who has @gre@"
    							+ c.getItems().freeSlots() + " free slots", 3417);
    			c.tradeConfirmed = false;
    			o.tradeConfirmed = false;
    			c.getItems().resetItems(3322);
    			resetTItems(3415);
    			o.getTrade().resetOTItems(3416);
    			c.getPA().sendString("", 3431);
    			o.getPA().sendString("", 3431);
    		} catch (Exception e) {
    		}
    		return true;
    	}
    
    	public boolean tradeItem(int itemID, int fromSlot, int amount) {
    		Client o = (Client) PlayerHandler.players[c.tradeWith];
    		if (o == null) {
    			return false;
    		}
    
    		for (int i : Constants.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().sendString(
    							"Trading with: " + c.playerName + " who has @gre@"
    									+ c.getItems().freeSlots() + " free slots",
    							3417);
    				}
    			}
    			o.getPA().sendString(
    					"Trading with: " + c.playerName + " who has @gre@"
    							+ c.getItems().freeSlots() + " free slots", 3417);
    			c.getItems().resetItems(3322);
    			resetTItems(3415);
    			o.getTrade().resetOTItems(3416);
    			c.getPA().sendString("", 3431);
    			o.getPA().sendString("", 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 (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().sendString(
    							"Trading with: " + c.playerName + " who has @gre@"
    									+ c.getItems().freeSlots() + " free slots",
    							3417);
    					break;
    				}
    			}
    
    			if (!inTrade) {
    				offeredItems.add(new GameItem(itemID, amount));
    				c.getItems().deleteItem2(itemID, amount);
    				o.getPA().sendString(
    						"Trading with: " + c.playerName + " who has @gre@"
    								+ c.getItems().freeSlots() + " free slots",
    						3417);
    			}
    		}
    		o.getPA().sendString(
    				"Trading with: " + c.playerName + " who has @gre@"
    						+ c.getItems().freeSlots() + " free slots", 3417);
    		c.getItems().resetItems(3322);
    		resetTItems(3415);
    		o.getTrade().resetOTItems(3416);
    		c.getPA().sendString("", 3431);
    		o.getPA().sendString("", 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().sendString("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) PlayerHandler.players[c.tradeWith];
    		if (o == null) {
    			return;
    		}
    
    		if (tellOther) {
    			o.getTrade().declineTrade(false);
    			o.getTrade().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) PlayerHandler.players[c.tradeWith];
    			if (o == null) {
    				return;
    			}
    			c.getOutStream().createFrameVarSizeWord(53);
    			c.getOutStream().writeWord(WriteFrame);
    			int len = o.getTrade().offeredItems.toArray().length;
    			int current = 0;
    			c.getOutStream().writeWord(len);
    			for (GameItem item : o.getTrade().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) 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().sendString(SendTrade, 3557);
    		SendTrade = "Absolutely nothing!";
    		SendAmount = "";
    		Count = 0;
    
    		for (GameItem item : o.getTrade().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().sendString(SendTrade, 3558);
    		// TODO: find out what 197 does eee 3213
    		c.getPA().sendInterfaceInventory(3443, 197);
    	}
    
    	public void giveItems() {
    		Client o = (Client) PlayerHandler.players[c.tradeWith];
    		if (o == null) {
    			return;
    		}
    		try {
    			for (GameItem item : o.getTrade().offeredItems) {
    				if (item.id > 0) {
    					c.getItems().addItem(item.id, item.amount);
    				}
    			}
    
    			c.getPA().removeAllWindows();
    			c.tradeResetNeeded = true;
    		} catch (Exception e) {
    		}
    	}
    	
    
    }



    Edit these classes:

    Spoiler for server.model.players:

    Spoiler for Client.java:

    Find:
    Code:
    private TradeAndDuel tradeAndDuel = new TradeAndDuel(this);
    Replace with:
    Code:
    private Trade trade = new Trade(this);
    private Duel duel = new Duel(this);
    Find:
    Code:
    public TradeAndDuel getTradeAndDuel() {
    	return tradeAndDuel;
    }
    Replace with:
    Code:
    public Trade getTrade() {
    	return trade;
    }
    	
    public Duel getDuel() {
    	return duel;
    }


    Spoiler for CombatAssistant.java:

    Find:
    Code:
    if (o.inTrade) {
    	o.getTradeAndDuel().declineTrade();
    }
    Replace with:
    Code:
    if (o.inTrade) {
    	o.getTrade().declineTrade();
    }
    Find:
    Code:
    c.getTradeAndDuel().requestDuel(c.playerIndex);
    Replace with:
    Code:
    c.getDuel().requestDuel(c.playerIndex);


    Spoiler for PlayerAssistant.java:

    Find:
    Code:
    o.getTradeAndDuel().declineTrade();
    Replace with:
    Code:
    o.getTrade().declineTrade();
    Find:
    Code:
    o.getTradeAndDuel().resetDuel();
    Replace with:
    Code:
    o.getDuel().resetDuel();
    Find:
    Code:
    o.getTradeAndDuel().duelVictory();
    Replace with:
    Code:
    o.getDuel().duelVictory();
    Find:
    Code:
    c.getTradeAndDuel().resetDuel();
    Replace with:
    Code:
    c.getDuel().resetDuel();


    Spoiler for PlayerHandler.java:

    Find:
    Code:
    o.getTradeAndDuel().declineTrade();
    Replace With:
    Code:
    o.getTrade().declineTrade();
    Find:
    Code:
    o.getTradeAndDuel().duelVictory();
    Replace With:
    Code:
    o.getDuel().duelVictory();
    Find:
    Code:
    o.getTradeAndDuel().declineDuel();
    Replace With:
    Code:
    o.getDuel().declineDuel();



    Spoiler for server.model.players.packets:


    Spoiler for Bank10.java:

    Find:
    Code:
    c.getTradeAndDuel().tradeItem(removeId, removeSlot, 10);
    Replace with:
    Code:
    c.getTrade().tradeItem(removeId, removeSlot, 10);
    Find:
    Code:
    c.getTradeAndDuel().stakeItem(removeId, removeSlot, 10);
    Replace with:
    Code:
    c.getDuel().stakeItem(removeId, removeSlot, 10);
    Find:
    Code:
    c.getTradeAndDuel().fromTrade(removeId, removeSlot, 10);
    Replace with:
    Code:
    c.getTrade().fromTrade(removeId, removeSlot, 10);
    Find:
    Code:
    c.getTradeAndDuel().fromDuel(removeId, removeSlot, 10);
    Replace with:
    Code:
    c.getDuel().fromDuel(removeId, removeSlot, 10);



    Spoiler for Bank5.java:

    Find:
    Code:
    c.getTradeAndDuel().tradeItem(removeId, removeSlot, 5);
    Replace with:
    Code:
    c.getTrade().tradeItem(removeId, removeSlot, 5);
    Find:
    Code:
    c.getTradeAndDuel().stakeItem(removeId, removeSlot, 5);
    Replace with:
    Code:
    c.getDuel().stakeItem(removeId, removeSlot, 5);
    Find:
    Code:
    c.getTradeAndDuel().fromTrade(removeId, removeSlot, 5);
    Replace with:
    Code:
    c.getTrade().fromTrade(removeId, removeSlot, 5);
    Find:
    Code:
    c.getTradeAndDuel().fromDuel(removeId, removeSlot, 5);
    Replace with:
    Code:
    c.getDuel().fromDuel(removeId, removeSlot, 5);



    Spoiler for BankAll.java:

    Find:
    Code:
    c.getTradeAndDuel().tradeItem(removeId, removeSlot,
    							c.playerItemsN[removeSlot]);
    Replace with:
    Code:
    c.getTrade().tradeItem(removeId, removeSlot,
    							c.playerItemsN[removeSlot]);
    Find:
    Code:
    c.getTradeAndDuel().tradeItem(removeId, removeSlot, 28);
    Replace with:
    Code:
    c.getTrade().tradeItem(removeId, removeSlot, 28);
    Find:
    Code:
    c.getTradeAndDuel().stakeItem(removeId, removeSlot,
    							c.playerItemsN[removeSlot]);
    Replace with:
    Code:
    c.getDuel().stakeItem(removeId, removeSlot,
    							c.playerItemsN[removeSlot]);
    Find:
    Code:
    c.getTradeAndDuel().stakeItem(removeId, removeSlot, 28);
    Replace with:
    Code:
    c.getDuel().stakeItem(removeId, removeSlot, 28);
    Find:
    Code:
    for (GameItem item : c.getTradeAndDuel().offeredItems) {
    Replace with:
    Code:
    for (GameItem item : c.getTrade().offeredItems) {
    Find:
    Code:
    c.getTradeAndDuel().offeredItems
    											.get(removeSlot).amount);
    Replace with:
    Code:
    c.getTrade().offeredItems
    											.get(removeSlot).amount);
    Find:
    Code:
    c.getTradeAndDuel().fromTrade(
    									removeId,
    									removeSlot,
    									c.getTradeAndDuel().offeredItems
    											.get(removeSlot).amount);
    Replace with:
    Code:
    c.getTrade().fromTrade(
    									removeId,
    									removeSlot,
    									c.getTrade().offeredItems
    											.get(removeSlot).amount);
    Find:
    Code:
    for (GameItem item : c.getTradeAndDuel().offeredItems) {
    Replace with:
    Code:
    for (GameItem item : c.getTrade().offeredItems) {
    Find:
    Code:
    c.getTradeAndDuel().fromTrade(removeId, removeSlot,
    									28);
    Replace with:
    Code:
    c.getTrade().fromTrade(removeId, removeSlot,
    									28);
    Find:
    Code:
    for (GameItem item : c.getTradeAndDuel().stakedItems) {
    Replace with:
    Code:
    for (GameItem item : c.getDuel().stakedItems) {
    Find:
    Code:
    c.getTradeAndDuel()
    								.fromDuel(
    										removeId,
    										removeSlot,
    										c.getTradeAndDuel().stakedItems
    												.get(removeSlot).amount);
    Replace with:
    Code:
    c.getDuel()
    								.fromDuel(
    										removeId,
    										removeSlot,
    										c.getDuel().stakedItems
    												.get(removeSlot).amount);
    Find:
    Code:
    c.getTradeAndDuel().fromDuel(removeId, removeSlot, 28);
    Replace with:
    Code:
    c.getDuel().fromDuel(removeId, removeSlot, 28);



    Spoiler for BankX2.java:

    Find:
    Code:
    c.getTradeAndDuel().tradeItem(c.xRemoveId, c.xRemoveSlot,
    						Xamount);
    Replace with:
    Code:
    c.getTrade().tradeItem(c.xRemoveId, c.xRemoveSlot,
    						Xamount);
    Find:
    Code:
    c.getTradeAndDuel().stakeItem(c.xRemoveId, c.xRemoveSlot,
    						Xamount);
    Replace with:
    Code:
    c.getDuel().stakeItem(c.xRemoveId, c.xRemoveSlot,
    						Xamount);
    Find:
    Code:
    c.getTradeAndDuel().fromTrade(c.xRemoveId, c.xRemoveSlot,
    						Xamount);
    Replace with:
    Code:
    c.getTrade().fromTrade(c.xRemoveId, c.xRemoveSlot,
    						Xamount);
    Find:
    Code:
    c.getTradeDuel().fromDuel(c.xRemoveId, c.xRemoveSlot, Xamount);
    Replace with:
    Code:
    c.getDuel().fromDuel(c.xRemoveId, c.xRemoveSlot, Xamount);



    Spoiler for ChallengePlayer.java:

    Find:
    Code:
    c.getTradeAndDuel().requestDuel(answerPlayer);
    Replace with:
    Code:
    c.getDuel().requestDuel(answerPlayer);



    Spoiler for ClickingButtons.java:

    Find:
    Spoiler for a lot of code, find this block:

    Code:
    /** Dueling **/
    		case 26065: // no forfeit
    		case 26040:
    			c.duelSlot = -1;
    			c.getTradeAndDuel().selectRule(0);
    			break;
    
    		case 26066: // no movement
    		case 26048:
    			c.duelSlot = -1;
    			c.getTradeAndDuel().selectRule(1);
    			break;
    
    		case 26069: // no range
    		case 26042:
    			c.duelSlot = -1;
    			c.getTradeAndDuel().selectRule(2);
    			break;
    
    		case 26070: // no melee
    		case 26043:
    			c.duelSlot = -1;
    			c.getTradeAndDuel().selectRule(3);
    			break;
    
    		case 26071: // no mage
    		case 26041:
    			c.duelSlot = -1;
    			c.getTradeAndDuel().selectRule(4);
    			break;
    
    		case 26072: // no drinks
    		case 26045:
    			c.duelSlot = -1;
    			c.getTradeAndDuel().selectRule(5);
    			break;
    
    		case 26073: // no food
    		case 26046:
    			c.duelSlot = -1;
    			c.getTradeAndDuel().selectRule(6);
    			break;
    
    		case 26074: // no prayer
    		case 26047:
    			c.duelSlot = -1;
    			c.getTradeAndDuel().selectRule(7);
    			break;
    
    		case 26076: // obsticals
    		case 26075:
    			c.duelSlot = -1;
    			c.getTradeAndDuel().selectRule(8);
    			break;
    
    		case 2158: // fun weapons
    		case 2157:
    			c.duelSlot = -1;
    			c.getTradeAndDuel().selectRule(9);
    			break;
    
    		case 30136: // sp attack
    		case 30137:
    			c.duelSlot = -1;
    			c.getTradeAndDuel().selectRule(10);
    			break;
    
    		case 53245: // no helm
    			c.duelSlot = 0;
    			c.getTradeAndDuel().selectRule(11);
    			break;
    
    		case 53246: // no cape
    			c.duelSlot = 1;
    			c.getTradeAndDuel().selectRule(12);
    			break;
    
    		case 53247: // no ammy
    			c.duelSlot = 2;
    			c.getTradeAndDuel().selectRule(13);
    			break;
    
    		case 53249: // no weapon.
    			c.duelSlot = 3;
    			c.getTradeAndDuel().selectRule(14);
    			break;
    
    		case 53250: // no body
    			c.duelSlot = 4;
    			c.getTradeAndDuel().selectRule(15);
    			break;
    
    		case 53251: // no shield
    			c.duelSlot = 5;
    			c.getTradeAndDuel().selectRule(16);
    			break;
    
    		case 53252: // no legs
    			c.duelSlot = 7;
    			c.getTradeAndDuel().selectRule(17);
    			break;
    
    		case 53255: // no gloves
    			c.duelSlot = 9;
    			c.getTradeAndDuel().selectRule(18);
    			break;
    
    		case 53254: // no boots
    			c.duelSlot = 10;
    			c.getTradeAndDuel().selectRule(19);
    			break;
    
    		case 53253: // no rings
    			c.duelSlot = 12;
    			c.getTradeAndDuel().selectRule(20);
    			break;
    
    		case 53248: // no arrows
    			c.duelSlot = 13;
    			c.getTradeAndDuel().selectRule(21);
    			break;
    
    		case 26018:
    			Client o = (Client) PlayerHandler.players[c.duelingWith];
    			if (o == null) {
    				c.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().sendString("Waiting for other player...", 6684);
    				o.getPA().sendString("Other player has accepted.", 6684);
    			}
    			if (o.duelStatus == 2) {
    				o.getPA().sendString("Waiting for other player...", 6684);
    				c.getPA().sendString("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();
    			}
    			break;
    
    		case 25120:
    			if (c.duelStatus == 5) {
    				break;
    			}
    			Client o1 = (Client) 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;
    				CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    					@Override
    					public void execute(CycleEventContainer container) {
    						if (System.currentTimeMillis() - c.duelDelay > 800
    								&& c.duelCount > 0) {
    							if (c.duelCount != 1) {
    								c.forcedChat("" + (--c.duelCount));
    								c.duelDelay = System.currentTimeMillis();
    							} else {
    								c.damageTaken = new int[Constants.MAX_PLAYERS];
    								c.forcedChat("FIGHT!");
    								c.duelCount = 0;
    							}
    						}
    						if (c.duelCount == 0) {
    							container.stop();
    						}
    					}
    
    					@Override
    					public void stop() {
    					}
    				}, 1);
    				c.duelDelay = System.currentTimeMillis();
    				o1.duelDelay = System.currentTimeMillis();
    			} else {
    				c.getPA().sendString("Waiting for other player...", 6571);
    				o1.getPA().sendString("Other player has accepted", 6571);
    			}
    			break;


    Replace with:
    Spoiler for a lot of code, replace with this:

    Code:
    /** Dueling **/
    		case 26065: // no forfeit
    		case 26040:
    			c.duelSlot = -1;
    			c.getDuel().selectRule(0);
    			break;
    
    		case 26066: // no movement
    		case 26048:
    			c.duelSlot = -1;
    			c.getDuel().selectRule(1);
    			break;
    
    		case 26069: // no range
    		case 26042:
    			c.duelSlot = -1;
    			c.getDuel().selectRule(2);
    			break;
    
    		case 26070: // no melee
    		case 26043:
    			c.duelSlot = -1;
    			c.getDuel().selectRule(3);
    			break;
    
    		case 26071: // no mage
    		case 26041:
    			c.duelSlot = -1;
    			c.getDuel().selectRule(4);
    			break;
    
    		case 26072: // no drinks
    		case 26045:
    			c.duelSlot = -1;
    			c.getDuel().selectRule(5);
    			break;
    
    		case 26073: // no food
    		case 26046:
    			c.duelSlot = -1;
    			c.getDuel().selectRule(6);
    			break;
    
    		case 26074: // no prayer
    		case 26047:
    			c.duelSlot = -1;
    			c.getDuel().selectRule(7);
    			break;
    
    		case 26076: // obsticals
    		case 26075:
    			c.duelSlot = -1;
    			c.getDuel().selectRule(8);
    			break;
    
    		case 2158: // fun weapons
    		case 2157:
    			c.duelSlot = -1;
    			c.getDuel().selectRule(9);
    			break;
    
    		case 30136: // sp attack
    		case 30137:
    			c.duelSlot = -1;
    			c.getDuel().selectRule(10);
    			break;
    
    		case 53245: // no helm
    			c.duelSlot = 0;
    			c.getDuel().selectRule(11);
    			break;
    
    		case 53246: // no cape
    			c.duelSlot = 1;
    			c.getDuel().selectRule(12);
    			break;
    
    		case 53247: // no ammy
    			c.duelSlot = 2;
    			c.getDuel().selectRule(13);
    			break;
    
    		case 53249: // no weapon.
    			c.duelSlot = 3;
    			c.getDuel().selectRule(14);
    			break;
    
    		case 53250: // no body
    			c.duelSlot = 4;
    			c.getDuel().selectRule(15);
    			break;
    
    		case 53251: // no shield
    			c.duelSlot = 5;
    			c.getDuel().selectRule(16);
    			break;
    
    		case 53252: // no legs
    			c.duelSlot = 7;
    			c.getDuel().selectRule(17);
    			break;
    
    		case 53255: // no gloves
    			c.duelSlot = 9;
    			c.getDuel().selectRule(18);
    			break;
    
    		case 53254: // no boots
    			c.duelSlot = 10;
    			c.getDuel().selectRule(19);
    			break;
    
    		case 53253: // no rings
    			c.duelSlot = 12;
    			c.getDuel().selectRule(20);
    			break;
    
    		case 53248: // no arrows
    			c.duelSlot = 13;
    			c.getDuel().selectRule(21);
    			break;
    
    		case 26018:
    			Client o = (Client) PlayerHandler.players[c.duelingWith];
    			if (o == null) {
    				c.getDuel().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().sendString("Waiting for other player...", 6684);
    				o.getPA().sendString("Other player has accepted.", 6684);
    			}
    			if (o.duelStatus == 2) {
    				o.getPA().sendString("Waiting for other player...", 6684);
    				c.getPA().sendString("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.getDuel().confirmDuel();
    				o.getDuel().confirmDuel();
    			}
    			break;
    
    		case 25120:
    			if (c.duelStatus == 5) {
    				break;
    			}
    			Client o1 = (Client) PlayerHandler.players[c.duelingWith];
    			if (o1 == null) {
    				c.getDuel().declineDuel();
    				return;
    			}
    
    			c.duelStatus = 4;
    			if (o1.duelStatus == 4 && c.duelStatus == 4) {
    				c.getDuel().startDuel();
    				o1.getDuel().startDuel();
    				o1.duelCount = 4;
    				c.duelCount = 4;
    				CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    					@Override
    					public void execute(CycleEventContainer container) {
    						if (System.currentTimeMillis() - c.duelDelay > 800
    								&& c.duelCount > 0) {
    							if (c.duelCount != 1) {
    								c.forcedChat("" + (--c.duelCount));
    								c.duelDelay = System.currentTimeMillis();
    							} else {
    								c.damageTaken = new int[Constants.MAX_PLAYERS];
    								c.forcedChat("FIGHT!");
    								c.duelCount = 0;
    							}
    						}
    						if (c.duelCount == 0) {
    							container.stop();
    						}
    					}
    
    					@Override
    					public void stop() {
    					}
    				}, 1);
    				c.duelDelay = System.currentTimeMillis();
    				o1.duelDelay = System.currentTimeMillis();
    			} else {
    				c.getPA().sendString("Waiting for other player...", 6571);
    				o1.getPA().sendString("Other player has accepted", 6571);
    			}
    			break;


    Find:
    Spoiler for a lot of code, find this:

    Code:
    case 13092:
    			if (System.currentTimeMillis() - c.lastButton < 400) {
    
    				c.lastButton = System.currentTimeMillis();
    
    				break;
    
    			} else {
    
    				c.lastButton = System.currentTimeMillis();
    
    			}
    			Client ot = (Client) PlayerHandler.players[c.tradeWith];
    			if (ot == null) {
    				c.getTradeAndDuel().declineTrade();
    				c.sendMessage("Trade declined as the other player has disconnected.");
    				break;
    			}
    			c.getPA().sendString("Waiting for other player...", 3431);
    			ot.getPA().sendString("Other player has accepted", 3431);
    			c.goodTrade = true;
    			ot.goodTrade = true;
    
    			for (GameItem item : c.getTradeAndDuel().offeredItems) {
    				if (item.id > 0) {
    					if (ot.getItems().freeSlots() < c.getTradeAndDuel().offeredItems
    							.size()) {
    						c.sendMessage(ot.playerName
    								+ " only has "
    								+ ot.getItems().freeSlots()
    								+ " free slots, please remove "
    								+ (c.getTradeAndDuel().offeredItems.size() - ot
    										.getItems().freeSlots()) + " items.");
    						ot.sendMessage(c.playerName
    								+ " has to remove "
    								+ (c.getTradeAndDuel().offeredItems.size() - ot
    										.getItems().freeSlots())
    								+ " items or you could offer them "
    								+ (c.getTradeAndDuel().offeredItems.size() - ot
    										.getItems().freeSlots()) + " items.");
    						c.goodTrade = false;
    						ot.goodTrade = false;
    						c.getPA().sendString("Not enough inventory space...",
    								3431);
    						ot.getPA().sendString(
    								"Not enough inventory space...", 3431);
    						break;
    					} else {
    						c.getPA().sendString("Waiting for other player...",
    								3431);
    						ot.getPA().sendString("Other player has accepted",
    								3431);
    						c.goodTrade = true;
    						ot.goodTrade = true;
    					}
    				}
    			}
    			if (c.inTrade && !c.tradeConfirmed && ot.goodTrade && c.goodTrade) {
    				c.tradeConfirmed = true;
    				if (ot.tradeConfirmed) {
    					c.getTradeAndDuel().confirmScreen();
    					ot.getTradeAndDuel().confirmScreen();
    					break;
    				}
    
    			}
    
    			break;
    
    		case 13218:
    			if (System.currentTimeMillis() - c.lastButton < 400) {
    
    				c.lastButton = System.currentTimeMillis();
    
    				break;
    
    			} else {
    
    				c.lastButton = System.currentTimeMillis();
    
    			}
    			c.tradeAccepted = true;
    			Client ot1 = (Client) PlayerHandler.players[c.tradeWith];
    			if (ot1 == null) {
    				c.getTradeAndDuel().declineTrade();
    				c.sendMessage("Trade declined as the other player has disconnected.");
    				break;
    			}
    
    			if (c.inTrade && c.tradeConfirmed && ot1.tradeConfirmed
    					&& !c.tradeConfirmed2) {
    				c.tradeConfirmed2 = true;
    				if (ot1.tradeConfirmed2) {
    					c.acceptedTrade = true;
    					ot1.acceptedTrade = true;
    					c.getTradeAndDuel().giveItems();
    					ot1.getTradeAndDuel().giveItems();
    					break;
    				}
    				ot1.getPA().sendString("Other player has accepted.", 3535);
    				c.getPA().sendString("Waiting for other player...", 3535);
    			}
    
    			break;


    Replace with:
    Spoiler for a lot of code, replace with this:

    Code:
    case 13092:
    			if (System.currentTimeMillis() - c.lastButton < 400) {
    
    				c.lastButton = System.currentTimeMillis();
    
    				break;
    
    			} else {
    
    				c.lastButton = System.currentTimeMillis();
    
    			}
    			Client ot = (Client) PlayerHandler.players[c.tradeWith];
    			if (ot == null) {
    				c.getTrade().declineTrade();
    				c.sendMessage("Trade declined as the other player has disconnected.");
    				break;
    			}
    			c.getPA().sendString("Waiting for other player...", 3431);
    			ot.getPA().sendString("Other player has accepted", 3431);
    			c.goodTrade = true;
    			ot.goodTrade = true;
    
    			for (GameItem item : c.getTrade().offeredItems) {
    				if (item.id > 0) {
    					if (ot.getItems().freeSlots() < c.getTrade().offeredItems
    							.size()) {
    						c.sendMessage(ot.playerName
    								+ " only has "
    								+ ot.getItems().freeSlots()
    								+ " free slots, please remove "
    								+ (c.getTrade().offeredItems.size() - ot
    										.getItems().freeSlots()) + " items.");
    						ot.sendMessage(c.playerName
    								+ " has to remove "
    								+ (c.getTrade().offeredItems.size() - ot
    										.getItems().freeSlots())
    								+ " items or you could offer them "
    								+ (c.getTrade().offeredItems.size() - ot
    										.getItems().freeSlots()) + " items.");
    						c.goodTrade = false;
    						ot.goodTrade = false;
    						c.getPA().sendString("Not enough inventory space...",
    								3431);
    						ot.getPA().sendString(
    								"Not enough inventory space...", 3431);
    						break;
    					} else {
    						c.getPA().sendString("Waiting for other player...",
    								3431);
    						ot.getPA().sendString("Other player has accepted",
    								3431);
    						c.goodTrade = true;
    						ot.goodTrade = true;
    					}
    				}
    			}
    			if (c.inTrade && !c.tradeConfirmed && ot.goodTrade && c.goodTrade) {
    				c.tradeConfirmed = true;
    				if (ot.tradeConfirmed) {
    					c.getTrade().confirmScreen();
    					ot.getTrade().confirmScreen();
    					break;
    				}
    
    			}
    
    			break;
    
    		case 13218:
    			if (System.currentTimeMillis() - c.lastButton < 400) {
    
    				c.lastButton = System.currentTimeMillis();
    
    				break;
    
    			} else {
    
    				c.lastButton = System.currentTimeMillis();
    
    			}
    			c.tradeAccepted = true;
    			Client ot1 = (Client) PlayerHandler.players[c.tradeWith];
    			if (ot1 == null) {
    				c.getTrade().declineTrade();
    				c.sendMessage("Trade declined as the other player has disconnected.");
    				break;
    			}
    
    			if (c.inTrade && c.tradeConfirmed && ot1.tradeConfirmed
    					&& !c.tradeConfirmed2) {
    				c.tradeConfirmed2 = true;
    				if (ot1.tradeConfirmed2) {
    					c.acceptedTrade = true;
    					ot1.acceptedTrade = true;
    					c.getTrade().giveItems();
    					ot1.getTrade().giveItems();
    					break;
    				}
    				ot1.getPA().sendString("Other player has accepted.", 3535);
    				c.getPA().sendString("Waiting for other player...", 3535);
    			}
    
    			break;




    Spoiler for ClickingStuff.java:

    Find:
    Code:
    c.getTradeAndDuel().declineTrade();
    Replace with:
    Code:
    c.getTrade().declineTrade();
    Find:
    Code:
    c.getTradeAndDuel().declineDuel();
    o.getTradeAndDuel().declineDuel();
    Replace with:
    Code:
    c.getDuel().declineDuel();
    o.getDuel().declineDuel();
    Find:
    Code:
    c.getTradeAndDuel().claimStakedItems();
    Replace with:
    Code:
    c.getDuel().claimStakedItems();



    Spoiler for MoveItems.java:

    Find:
    Code:
    if (c.inTrade) {
    			c.getTradeAndDuel().declineTrade();
    			return;
    		}
    		if (c.tradeStatus == 1) {
    			c.getTradeAndDuel().declineTrade();
    			return;
    		}
    		if (c.duelStatus == 1) {
    			c.getTradeAndDuel().declineDuel();
    			return;
    		}
    Replace with:
    Code:
    if (c.inTrade) {
    			c.getTrade().declineTrade();
    			return;
    		}
    		if (c.tradeStatus == 1) {
    			c.getTrade().declineTrade();
    			return;
    		}
    		if (c.duelStatus == 1) {
    			c.getDuel().declineDuel();
    			return;
    		}


    Spoiler for RemoveItem.java:

    Find:
    Code:
    case 3322:
    			if (c.duelStatus <= 0) {
    				c.getTradeAndDuel().tradeItem(removeId, removeSlot, 1);
    			} else {
    				c.getTradeAndDuel().stakeItem(removeId, removeSlot, 1);
    			}
    			break;
    
    		case 3415:
    			if (c.duelStatus <= 0) {
    				c.getTradeAndDuel().fromTrade(removeId, removeSlot, 1);
    			}
    			break;
    
    		case 6669:
    			c.getTradeAndDuel().fromDuel(removeId, removeSlot, 1);
    			break;
    Replace with:
    Code:
    case 3322:
    			if (c.duelStatus <= 0) {
    				c.getTrade().tradeItem(removeId, removeSlot, 1);
    			} else {
    				c.getDuel().stakeItem(removeId, removeSlot, 1);
    			}
    			break;
    
    		case 3415:
    			if (c.duelStatus <= 0) {
    				c.getTrade().fromTrade(removeId, removeSlot, 1);
    			}
    			break;
    
    		case 6669:
    			c.getDuel().fromDuel(removeId, removeSlot, 1);
    			break;


    Spoiler for Trade.java (PACKET, not the class we made):

    Find:
    Code:
    c.getTradeAndDuel().requestTrade(tradeId);
    Replace with:
    Code:
    c.getTrade().requestTrade(tradeId);


    Spoiler for Walking.java:

    Find:
    Code:
    c.getTradeAndDuel().claimStakedItems();
    Replace with:
    Code:
    c.getDuel().claimStakedItems();



    Quote Originally Posted by READ!
    This is now 100% refactored to a vanilla Project Insanity dueling release. Now it is up to you to fix the dupes/adjust the code to fix your dueling dupes.
    Best of luck and please throw me a comment if you used.
    Attached image Attached image Attached image Attached image Attached image
    Reply With Quote  
     

  2. #2  
    Extreme Donator

    Join Date
    Sep 2015
    Age
    25
    Posts
    113
    Thanks given
    0
    Thanks received
    1
    Rep Power
    42
    I love the work you're releasing, but I believe this is in the wrong section.

    Nice job though, but you shouldn't be using Project Insanity in the first place. - @ users.
    Reply With Quote  
     

  3. #3  
    Registered Member Lil Peep's Avatar
    Join Date
    Oct 2012
    Posts
    881
    Thanks given
    234
    Thanks received
    58
    Rep Power
    0
    Quote Originally Posted by Carlos Aviles View Post
    I love the work you're releasing, but I believe this is in the wrong section.

    Nice job though, but you shouldn't be using Project Insanity in the first place. - @ users.
    I'm not right now, it's for those that are.

    And just realized this is in the RS2 Server section, whoops. Should be in Snippets.

    Thanks by the way.

    EDIT: Tutorial/Snippet complete!
    Enjoy if you're going to use? Took me about an hour and a half to refactor/create this guide, and I doubt more than a few people will even do this lol
    Attached image Attached image Attached image Attached image Attached image
    Reply With Quote  
     

  4. #4  
    Ex Rune-Scaper

    Join Date
    Jun 2008
    Posts
    3,534
    Thanks given
    457
    Thanks received
    1,257
    Rep Power
    990
    this is seriously pointless imo, if you don't understand how classes and/or instances work then you shouldn't be programming a server.

    All you're doing is..

    1. Creating a class
    2. Declaring the class in Player/Client or whatever. (So you can use Player object in Trade/ or Duel class)
    3. Creating a getter to make reference to the instance of that class.

    That's all you need to do.
    Attached image
    Reply With Quote  
     

  5. #5  
    need java lessons
    Eclipse's Avatar
    Join Date
    Aug 2012
    Posts
    4,436
    Thanks given
    686
    Thanks received
    898
    Rep Power
    490
    Quote Originally Posted by SeVen View Post
    this is seriously pointless imo, if you don't understand how classes and/or instances work then you shouldn't be programming a server.

    All you're doing is..

    1. Creating a class
    2. Declaring the class in Player/Client or whatever. (So you can use Player object in Trade/ or Duel class)
    3. Creating a getter to make reference to the instance of that class.

    That's all you need to do.
    you dont even need a player instance in the class? make the methods static, there's no need for a player instance

    Quote Originally Posted by jerryrocks317 View Post
    i am 14 and have my own laptop im on almost 24/7 currently creating rsps lol so please get off my thread lol
    Reply With Quote  
     

  6. Thankful user:


  7. #6  
    freelance vagina illustrator
    Plexus's Avatar
    Join Date
    Apr 2014
    Age
    25
    Posts
    288
    Thanks given
    190
    Thanks received
    106
    Rep Power
    407
    this thread is probably why you have red bars.
    I Support
    Maiestas
    Reply With Quote  
     

  8. #7  
    Sexy User
    User's Avatar
    Join Date
    Apr 2013
    Posts
    601
    Thanks given
    97
    Thanks received
    218
    Rep Power
    346
    Quote Originally Posted by Plexus View Post
    this thread is probably why you have red bars.
    The poetics of the proper-name effect highlights the eroticization of collecting as a cultural practice.
    Attached image
    Reply With Quote  
     

  9. Thankful users:


  10. #8  
    freelance vagina illustrator
    Plexus's Avatar
    Join Date
    Apr 2014
    Age
    25
    Posts
    288
    Thanks given
    190
    Thanks received
    106
    Rep Power
    407
    Quote Originally Posted by User View Post
    The poetics of the proper-name effect highlights the eroticization of collecting as a cultural practice.

    The disarticulation of the proper-name effect pervades the conceptual logic of collecting as a cultural practice
    I Support
    Maiestas
    Reply With Quote  
     

  11. Thankful user:


  12. #9  
    oof


    Join Date
    Aug 2012
    Posts
    3,150
    Thanks given
    2,847
    Thanks received
    857
    Rep Power
    2260
    Quote Originally Posted by Plexus View Post
    The disarticulation of the proper-name effect pervades the conceptual logic of collecting as a cultural practice
    The necessary but perhaps impossible notion of power substantiates the eroticization of teleological narrative




    ot; should've made an attempt to rewrite the code rather than splitting class into two
    Reply With Quote  
     

  13. Thankful user:


  14. #10  
    need java lessons
    Eclipse's Avatar
    Join Date
    Aug 2012
    Posts
    4,436
    Thanks given
    686
    Thanks received
    898
    Rep Power
    490
    Quote Originally Posted by User View Post
    The poetics of the proper-name effect highlights the eroticization of collecting as a cultural practice.
    Quote Originally Posted by Plexus View Post
    The disarticulation of the proper-name effect pervades the conceptual logic of collecting as a cultural practice
    Quote Originally Posted by Vesia View Post
    The necessary but perhaps impossible notion of power substantiates the eroticization of teleological narrative




    ot; should've made an attempt to rewrite the code rather than splitting class into two
    what the fuck are you fools saying


    ot; obviously it should be done seperately, but you should have improved it or something. PI's trading AND dueling are done terribly

    Quote Originally Posted by jerryrocks317 View Post
    i am 14 and have my own laptop im on almost 24/7 currently creating rsps lol so please get off my thread lol
    Reply With Quote  
     

  15. Thankful users:


Page 1 of 2 12 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. Replies: 2
    Last Post: 07-11-2015, 05:31 AM
  2. Buying Re-wroten Trade and Duel System PI
    By OxidePkz in forum Buying
    Replies: 0
    Last Post: 02-16-2015, 08:36 PM
  3. [PI] X Dupe, Trade dupe, Duel Dupe.
    By AFGscape in forum Snippets
    Replies: 9
    Last Post: 05-29-2012, 10:26 PM
  4. Project insanity trade/bank/duel X "dupes"
    By Aeterna in forum Snippets
    Replies: 45
    Last Post: 01-10-2011, 08:11 PM
  5. [PI/RIOTSCAPE]Trade Dupe Fix REP++
    By X Scape in forum Help
    Replies: 2
    Last Post: 05-29-2010, 01:19 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •