Thread: [PI] Clan Wars

Page 1 of 5 123 ... LastLast
Results 1 to 10 of 44
  1. #1 [PI] Clan Wars 
    plz dont take my wizard mind bombs Women's Avatar
    Join Date
    Mar 2010
    Posts
    1,881
    Thanks given
    724
    Thanks received
    1,162
    Rep Power
    4763
    It's my birthday so I'm releasing this





    Make a new class called ClanWarHandler and add this code in it

    Code:
    package server.model.minigames.clanwars;
    
    import static server.model.minigames.clanwars.ClanWarConstants.CLAN1X;
    import static server.model.minigames.clanwars.ClanWarConstants.CLAN1Y;
    import static server.model.minigames.clanwars.ClanWarConstants.CLAN2X;
    import static server.model.minigames.clanwars.ClanWarConstants.CLAN2Y;
    import static server.model.minigames.clanwars.ClanWarConstants.DEATHX;
    import static server.model.minigames.clanwars.ClanWarConstants.DEATHY;
    import static server.model.minigames.clanwars.ClanWarConstants.MESSAGE1;
    import static server.model.minigames.clanwars.ClanWarConstants.MESSAGE2;
    import static server.model.minigames.clanwars.ClanWarConstants.MESSAGE3;
    import static server.model.minigames.clanwars.ClanWarConstants.WALL_ID;
    import static server.model.minigames.clanwars.ClanWarConstants.OWNERS_ONLY;
    import server.Server;
    import server.event.CycleEvent;
    import server.event.CycleEventContainer;
    import server.event.CycleEventHandler;
    import server.model.objects.Object;
    import server.model.players.Client;
    import server.model.players.PlayerHandler;
    import server.util.Misc;
    
    /**
     * @author Women/asshole_rule
     */
    
    public class ClanWarHandler {
    
    	public ClanWarHandler(Client c) {}
    	
    	public static ClanWar[] clanWars = new ClanWar[100];
    	
    	public void wallTimer(final ClanWar c) {
    		
    		CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    
    			@Override
    			public void execute(CycleEventContainer container) {
    				if(c.getWallTime() >= 0) {
    					c.setWallTime(c.getWallTime() - 1);
    				}
    				if(c.getWallTime() == 117) {
    					walls(c, WALL_ID, c.getHeight());
    				}
    				if(c.getWallTime() == 0) {
    					walls(c, -1, c.getHeight());				
    					this.stop();
    				}
    			}
    
    			@Override
    			public void stop() {
    			}
    			
    		}, 2);
    	}
    
    	public void requestChallenge(Client c, int otherPlayerId) throws NullPointerException {
    		Client c2 = (Client) PlayerHandler.players[otherPlayerId];
    		if(OWNERS_ONLY) {
    			if (!Server.clanChat.clans[c.clanId].owner.equalsIgnoreCase(c.playerName)) {
    				System.out.println("You are not the owner of the Clan Chat.");
    				return;
    			}
    			if (!Server.clanChat.clans[c2.clanId].owner.equalsIgnoreCase(c.playerName)) {
    				System.out.println("This player is not a high enough rank to accept matches.");
    				return;
    			}
    		}
    		if(c == null && c2 == null) {
    			System.out.println("[Clan Wars] An error has occured");
    			return;
    		}
    		if(c.clanId == c2.clanId) {
    			c.sendMessage("You cannot challenge someone in your Clan Chat to a Clan War.");
    			return;
    		}
    		if(c.clanId <= 0) {
    			c.sendMessage("You must be in a Clan Chat to start a Clan War.");
    			return;
    		}
    		if(c2.clanId <= 0) {
    			c.sendMessage("This player is not in a Clan Chat.");
    			return;
    		}
    		if(c.chalAccepted) {
    			c.sendMessage("You already have a match in progress.");
    			return;
    		}
    		if(c2.chalAccepted) {
    			c.sendMessage("This player already has a match in progress.");
    			return;
    		}
    		if(c2.chalInterface) {
    			c.sendMessage("This player is currently busy.");
    			return;
    		}
    		if(c.chalInterface) {
    			return;
    		}
    		if(c.inClanWarsLobby() && c2.inClanWarsLobby()) {
    			c2.clanWarOpponent = c.playerId;
    			c.clanWarOpponent = otherPlayerId;
    			c2.sendMessage(c.playerName+":clanwarreq:");
    			c.sendMessage("Sending "+Misc.formatPlayerName(c2.playerName)+" challenge request.");
    		}	
    	}
    	
    	public void handleKill(Client c, Client c2) {
    		ClanWar clanWar = clanWars[c.clanWarId];
    		c.sendMessage(" "+c.playerName+", "+c2.playerName+" ");
    		if(clanWar == null) {
    			c.sendMessage("clan war null");
    		}
    		if(clanWar.clan2Players.contains(c)) {
    			clanWar.setClan1Kills(clanWar.getClan1Kills() + 1);
    			/*if(clanWar.getClan1Kills() >= MAX_KILLS) {
    				c.sendMessage("called");
    				handleWin("clan1", clanWar);
    			}*/
    		} else if (clanWar.clan1Players.contains(c)) {
    			clanWar.setClan2Kills(clanWar.getClan2Kills() + 1);
    			/*if(clanWar.getClan2Kills() >= MAX_KILLS) {
    				c.sendMessage("called");
    				handleWin("clan2", clanWar);
    			}*/
    		}
    	}
    	
    	public void handleWin(String clan, ClanWar c) {
    		if(clan.equals("clan1")) {
    			for(Client clan1 : c.clan1Players) {
    				clan1.sendMessage("Congratulations, you have defeated "+c.getClan2());
    				clan1.getPA().movePlayer(DEATHX, DEATHY, 0);
    				clan1.clanWarId = -1;
    				clan1.getPA().walkableInterface(-1);
    			}
    			for(Client clan2 : c.clan2Players) {
    				clan2.sendMessage("You were defeated by "+c.getClan1());
    				clan2.getPA().movePlayer(DEATHX, DEATHY, 0);
    				clan2.clanWarId = -1;
    				clan2.getPA().walkableInterface(-1);
    			}
    		} else if (clan.equals("clan2")) {
    			for(Client clan2 : c.clan2Players) {
    				clan2.sendMessage("Congratulations, you have defeated "+c.getClan1());
    				clan2.getPA().movePlayer(DEATHX, DEATHY, 0);
    				clan2.clanWarId = -1;
    				clan2.getPA().walkableInterface(-1);
    			}
    			for(Client clan1 : c.clan1Players) {
    				clan1.sendMessage("You were defeated by "+c.getClan2());
    				clan1.getPA().movePlayer(DEATHX, DEATHY, 0);
    				clan1.clanWarId = -1;
    				clan1.getPA().walkableInterface(-1);
    			}
    		}
    		c = null;
    	}
    
    	public void handleDeath(Client c) {
    		if(c != null) {
    			ClanWar clanWar = clanWars[c.clanWarId];
    			if(clanWar.deadPlayers.contains(c)) {
    				c.sendMessage("Tell a moderator about this.");
    				return;
    			}
    			clanWar.deadPlayers.add(c);
    			//removePlayer(c, clanWar);
    		}
    	}
    	
    	public void challengeClicked(Client c) {
    		Client c2 = (Client) PlayerHandler.players[c.clanWarOpponent];
    		c.getPA().showInterface(9000);
    		c.getPA().sendFrame126(Misc.formatPlayerName(c2.playerName)+" is inviting your clan to a war.", 9002);
    		c2.getPA().showInterface(9000);
    		c2.getPA().sendFrame126(Misc.formatPlayerName(c.playerName)+" is inviting your clan to a war.", 9002);
    		c.chalInterface = c2.chalInterface = true;
    	}
    	
    	public boolean handleButtons(Client c, int actionButtonId) {
    		Client c2 = (Client) PlayerHandler.players[c.clanWarOpponent];
    		switch(actionButtonId) {
    			case 35043:
    				if(c2 == null) {
    					return false;
    				}
    				if(c.chalAccepted && c2.chalAccepted) {
    					startMatch(c, c2);
    				}
    				c.chalInterface = false;
    				c2.chalInterface = false;
    				c.chalAccepted = true;
    				c2.chalAccepted = true;
    				return false;
    			case 35047:
    				if(c2 == null) {
    					return false;
    				}
    				c.getPA().closeAllWindows();
    				c2.getPA().closeAllWindows();
    				c.sendMessage("You have declined the clan war requestion.");
    				c2.sendMessage("The other player has declined the request.");
    				c.clanWarOpponent = 0;
    				c2.clanWarOpponent = 0;
    				resetChallengeVariables(c);
    				resetChallengeVariables(c2);
    				c.chalInterface = false;
    				c2.chalInterface = false;
    				return false;
    		}
    		return false;
    	}
    	
    	public boolean handleObjects(Client c, int objectType) {
    		if(objectType == 28213) {
    			if(c.clanWarId == -1) {
    				c.sendMessage("You don't have a Clan War scheduled.");
    				return false;
    			}
    		}	
    		if(c.clanWarId == -1) {
    			return false;
    		}
    		ClanWar clanWar = clanWars[c.clanWarId];
    		switch(objectType) {
    			case 38697:
    				c.getPA().movePlayer(DEATHX + Misc.random(3), DEATHY + Misc.random(3), 0);
    				if(clanWar.deadPlayers.contains(c)) {
    					clanWar.deadPlayers.remove(c);
    				}
    				//removePlayer(c, clanWar);
    				return false;
    			case 28213:
    				int x = 0;
    				int y = 0;
    				if(c.clanWarId == -1) {
    					c.sendMessage("You are not in a Clan.");
    					return false;
    				}
    				if(clanWar.deadPlayers.contains(c)) {
    					clanWar.deadPlayers.remove(c);
    				}
    				if(Server.clanChat.clans[c.clanId].name == clanWar.getClan1()) {
    					x = CLAN1X;
    					y = CLAN1Y;
    					if(!clanWar.clan1Players.contains(c)) {
    						clanWar.clan1Players.add(c);
    					}
    				}
    				if(Server.clanChat.clans[c.clanId].name == clanWar.getClan2()) {
    					x = CLAN2X;
    					y = CLAN2Y;
    					if(!clanWar.clan2Players.contains(c)) {
    						clanWar.clan2Players.add(c);
    					}	
    				}
    				enterMatch(c, x, y);
    				return false;
    				
    		}
    		return false;
    	}
    	
    	public void removePlayer(Client c, ClanWar c2) {
    		if(c2.clan1Players.contains(c)) {
    			c2.clan1Players.remove(c);
    		} else if(c2.clan2Players.contains(c)) {
    			c2.clan2Players.remove(c);
    		}
    		if(c.inClanWars()) {
    			c.getPA().movePlayer(DEATHX, DEATHY, 0);
    		}
    	}
    	
    	public void startMatch(Client c, Client c2) {
    		int clanWarId = openSlot();
    		clanWars[clanWarId] = new ClanWar(c.playerId, c2.playerId, ((c.playerId + c2.playerId) * 4), clanWarId, 120);
    		for (int j = 0; j < Server.clanChat.clans[c.clanId].members.length; j++) {
    			if (Server.clanChat.clans[c.clanId].members[j] <= 0)
    				continue;
    			if (PlayerHandler.players[Server.clanChat.clans[c.clanId].members[j]] != null) {
    				Client clan = (Client)PlayerHandler.players[Server.clanChat.clans[c.clanId].members[j]];
    				clan.clanWarId = clanWarId;
    				clan.sendMessage(MESSAGE1);
    				clan.sendMessage(MESSAGE2);
    				clan.sendMessage(MESSAGE3);
    				clan.clanWarId = c.clanWarId = c2.clanWarId = clanWarId;
    				clan.sendMessage(" "+clan.playerName+":"+clan.clanWarId);
    			}
    		}
    		for (int j = 0; j < Server.clanChat.clans[c2.clanId].members.length; j++) {
    			if (Server.clanChat.clans[c2.clanId].members[j] <= 0)
    				continue;
    			if (PlayerHandler.players[Server.clanChat.clans[c2.clanId].members[j]] != null) {
    				Client clan = (Client)PlayerHandler.players[Server.clanChat.clans[c2.clanId].members[j]];
    				clan.clanWarId = clanWarId;
    				clan.sendMessage(MESSAGE1);
    				clan.sendMessage(MESSAGE2);
    				clan.sendMessage(MESSAGE3);
    				clan.clanWarId = c.clanWarId = c2.clanWarId = clanWarId;
    				clan.sendMessage(" "+clan.playerName+":"+clan.clanWarId);
    			}
    		}
    		if(c != null) {
    			c.sendMessage("Clan Wars request accepted.");
    			enterMatch(c, CLAN1X, CLAN1Y);
    			clanWars[clanWarId].clan1Players.add(c);
    		}
    		if(c2 != null) {
    			c2.sendMessage("Clan Wars request accepted.");
    			enterMatch(c2, CLAN2X, CLAN2Y);
    			clanWars[clanWarId].clan2Players.add(c2);
    		}
    		clanWars[clanWarId].setClan1(Server.clanChat.clans[c.clanId].name);
    		clanWars[clanWarId].setClan2(Server.clanChat.clans[c2.clanId].name);
    		clanWars[clanWarId].setWallTime(120);
    		wallTimer(clanWars[clanWarId]);
    		walls(clanWars[clanWarId], WALL_ID, clanWars[clanWarId].getHeight());
    		c.sendMessage("Height level is gonna be: "+clanWars[c.clanWarId].getHeight());
    		c2.sendMessage("Height level is gonna be: "+clanWars[c.clanWarId].getHeight());
    	}
    	
    	public void enterMatch(Client c, int x, int y) {
    		ClanWar clanWar = clanWars[c.clanWarId];
    		c.getPA().movePlayer(x, y, clanWar.getHeight());
    		c.getPA().closeAllWindows();
    		if(!wallDown(clanWar)) {
    			walls(clanWar, WALL_ID, clanWar.getHeight());
    		}
    	}
    	
    	public int openSlot() {	
    		for (int j = 0; j < clanWars.length; j++) {
    			if (clanWars[j] == null || clanWars[j].getId() == -1)
    				return j;
    		}
    		return -1;
    	}
    	
    	public void walls(ClanWar c, int id, int height) {
    		if(height == c.getHeight()) {
    			for (int i = 2884; i < 2925; i++) {
    				new Object(id, i, 5666, height, -1, 10, id, 0);
    			}
    			for (int i = 2935; i < 2940; i++) {
    				new Object(id, i, 5666, height, -1, 10, id, 0);
    			}
    		}
    		System.out.println("Spawning walls at height: "+c.getHeight());
    	}
    	
    
    	public void resetChallengeVariables(Client c) {
    		Client c2 = (Client) PlayerHandler.players[c.clanWarOpponent];
    		if(c != null && c2 != null) {
    			c2.chalAccepted = false;
    			c.chalAccepted = false;
    			c2.chalInterface = false;
    			c.chalInterface = false;
    		}
    	}
    	
    	public void checkLeave(Client c, ClanWar c2) {
    		if(Server.clanChat.clans[c.clanId].owner.equalsIgnoreCase(c.playerName)) {
    			Server.clanChat.messageToClan("The other team's leader has forfeited.", PlayerHandler.players[c.clanWarOpponent].clanId, true);
    			Server.clanChat.messageToClan("Your owner left the Clan Chat. The match was forfeited.", c.clanId, true);
    			if(c2.clan1Players.contains(c))
    				handleWin("clan2", c2);
    			else if(c2.clan2Players.contains(c))
    				handleWin("clan1", c2);
    		}
    		removePlayer(c, c2);
    	}
    	
    	public void updateInterface(Client c, ClanWar c2) {
    		try {
    			Client clan1 = (Client) PlayerHandler.players[c2.getOtherId()];
    			Client clan2 = (Client) PlayerHandler.players[c2.getId()];
    			if (c.inClanWars()) {
    				if(!wallDown(c2)) {
    					//if(Server.clanChat.clans[c.clanId].name.equals(c2.getClan1())) {
    						/*c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[c.clanId].name)+"", 3502);
    						c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3503);
    						c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(c.clanId), 3505);
    						c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(clan1.clanId), 3506);*/
    						c.getPA().sendFrame126("My Clan", 3502);
    						c.getPA().sendFrame126("Opposing", 3503);
    						c.getPA().sendFrame126(" ", 3505);
    						c.getPA().sendFrame126(" ", 3506);
    					//}
    					//if(Server.clanChat.clans[c.clanId].name.equals(c2.getClan2())) {
    						/*c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3502);
    						c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan2.clanId].name)+"", 3503);
    						c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(clan1.clanId), 3505);
    						c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(c.clanId), 3506);*/
    						c.getPA().sendFrame126("My Clan", 3502);
    						c.getPA().sendFrame126("Opposing", 3503);
    						c.getPA().sendFrame126(" ", 3505);
    						c.getPA().sendFrame126(" ", 3506);
    					//}
    					c.getPA().sendFrame126(Misc.formatTime(c2.getWallTime())+"", 3507);
    					if (c2.getWallTime() <= 3) {
    						c.getPA().sendFrame126("@red@GET READY!", 3507);
    					}
    				} else {
    					//if(Server.clanChat.clans[c.clanId].name.equals(c2.getClan1())) {
    					if(c2.clan1Players.contains(c)) {
    						if(c.clanId > 0) {
    							c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[c.clanId].name)+"", 3502);
    							c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3503);
    						} else {
    							c.getPA().sendFrame126("My Clan", 3502);
    							c.getPA().sendFrame126("Opposing", 3503);
    						}
    						c.getPA().sendFrame126("         Currently:", 3504);
    						c.getPA().sendFrame126("Kills: "+c2.getClan1Kills(), 3505);
    						c.getPA().sendFrame126("Kills: "+c2.getClan2Kills(), 3506);
    						if(c2.getClan1Kills() > c2.getClan2Kills()) {
    							c.getPA().sendFrame126("Winning!", 3507);
    						} else if(c2.getClan1Kills() == c2.getClan2Kills()) {
    							c.getPA().sendFrame126("Tied!", 3507);
    						} else {
    							c.getPA().sendFrame126("@red@Losing!", 3507);
    						}
    					}
    					if(c2.clan2Players.contains(c)) {
    						if(c.clanId > 0) {
    							c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3502);
    							c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan2.clanId].name)+"", 3503);
    						} else {
    							c.getPA().sendFrame126("My Clan", 3502);
    							c.getPA().sendFrame126("Opposing", 3503);
    						}
    						c.getPA().sendFrame126("         Currently:", 3504);
    						c.getPA().sendFrame126("Kills: "+c2.getClan2Kills(), 3505);
    						c.getPA().sendFrame126("Kills: "+c2.getClan1Kills(), 3506);
    						if(c2.getClan2Kills() > c2.getClan1Kills()) {
    							c.getPA().sendFrame126("Winning!", 3507);
    						} else if(c2.getClan1Kills() == c2.getClan2Kills()) {
    							c.getPA().sendFrame126("Tied!", 3507);
    						} else {	
    							c.getPA().sendFrame126("@red@Losing!", 3507);
    						}
    					}
    				}
    				
    			}
    		}catch(Exception e) {
    			e.printStackTrace();
    		}
    	}
    	
    	public boolean wallDown(ClanWar c) {
    		if(c == null) {
    			return false;
    		}
    		return c.getWallTime() == -1;
    	}
    	
    }
    make a new class called ClanWarConstants and add this in it

    Code:
    package server.model.minigames.clanwars;
    
    /**
     * @author Women/asshole_rule
     */
    public class ClanWarConstants {
    
    	/**
    	 * If only owners can challenge another clan
    	 * if set to true ANYONE in the clan will be able to
    	 */
    	public static final boolean OWNERS_ONLY = false;
    	
    	/**
    	 * The coords that the 1st clan spawns at
    	 */
    	public static final int CLAN1X = 2930, CLAN1Y = 5686;
    	
    	/**
    	 * The coords that the 2nd clan spawns at
    	 */
    	public static final int CLAN2X = 2892, CLAN2Y = 5641;
    	
    	/**
    	 * The amount of kills needed to win
    	 */
    	public static final int MAX_KILLS = 3;
    	
    	/**
    	 * The object ID of the wall that spawns
    	 */
    	public static final int WALL_ID = 28176;
    	
    	/**
    	 * The x coord you spawn at when you die and are in clan1
    	 */
    	public static final int DEATH_CLAN1X = 2930;
    	
    	/**
    	 * The y coord you spawn at when you die and are in clan1
    	 */
    	public static final int DEATH_CLAN1Y = 5666;
    	
    	/**
    	 * The x coord you spawn at when you die and are in clan2
    	 */
    	public static final int DEATH_CLAN2X = 2893;
    	
    	/**
    	 * The y coord you spawn at when you die and are in clan2
    	 */
    	public static final int DEATH_CLAN2Y = 5660;
    	
    	/**
    	 * X coord you spawn around when the match is over
    	 */
    	public static final int DEATHX = 2983;
    	
    	/**
    	 * Y coord you spawn around when the match is over
    	 */
    	public static final int DEATHY = 9674;
    	
    	/**
    	 * First message sent when challenge is accepted
    	 */
    	public static final String MESSAGE1 =
    			"@red@Your clan has been challenged to a clan war!";
    
    	/**
    	 * Second message sent when challenge is accepted
    	 */
    	public static final String MESSAGE2 =
    			"@red@Step through the purple portal in the Challenge Hall.";
    	
    	/**
    	 * Third message sent when challenge is accepted
    	 */
    	public static final String MESSAGE3 =
    			"@red@Battle will commence in 2 minutes.";
    
    }
    and make a new class called ClanWar

    Code:
    package server.model.minigames.clanwars;
    
    import java.util.ArrayList;
    
    import server.model.players.Client;
    
    /**
     * @author Women/asshole_rule
     */
    public class ClanWar {
    	
    	public ClanWar(int playerId, int otherPlayerId, int heightLevel, int clanWarId, int wallTime) {
    		this.playerId = playerId;
    		this.otherPlayerId = otherPlayerId;
    		this.heightLevel = heightLevel;
    		this.clanWarId = clanWarId;
    		this.wallTime = wallTime;
    	}
    	
    	public ArrayList<Client> deadPlayers = new ArrayList<Client>();
    	
    	public ArrayList<Client> clan1Players = new ArrayList<Client>();
    	
    	public ArrayList<Client> clan2Players = new ArrayList<Client>();
    	
    	private String clan1;
    	private String clan2;
    	
    	private int playerId;
    	private int otherPlayerId;
    	private int heightLevel;
    	private int clanWarId;
    	private int wallTime;
    	private int clan1Kills;
    	private int clan2Kills;
    	
    	public int getId() {
    		return playerId;
    	}
    	
    	public int getOtherId() {
    		return otherPlayerId;
    	}
    	
    	public int getHeight() {
    		return heightLevel;
    	}
    	
    	public int getWarId() {
    		return clanWarId;
    	}
    	
    	public int getWallTime() {
    		return wallTime;
    	}
    	
    	public int setWallTime(int time) {
    		return this.wallTime = time;
    	}
    
    	public String getClan2() {
    		return clan2;
    	}
    
    	public void setClan2(String clan2) {
    		this.clan2 = clan2;
    	}
    
    	public String getClan1() {
    		return clan1;
    	}
    
    	public void setClan1(String clan1) {
    		this.clan1 = clan1;
    	}
    
    	public int getClan1Kills() {
    		return clan1Kills;
    	}
    
    	public void setClan1Kills(int clan1Kills) {
    		this.clan1Kills = clan1Kills;
    	}
    	
    	public int getClan2Kills() {
    		return clan2Kills;
    	}
    
    	public void setClan2Kills(int clan2Kills) {
    		this.clan2Kills = clan2Kills;
    	}
    }
    The above class is just what i used to hold information needed for the clan war.

    open client class and add these pieces of code in client class

    Code:
    /**
         * Clan wars
         */
    	private ClanWarHandler cw = new ClanWarHandler(this);
    	public ClanWarHandler getClanWars() {
    		return cw;
    	}
    add this in initialize

    Code:
    if(inClanWars()) {
    				getPA().movePlayer(ClanWarConstants.DEATHX + Misc.random(3), ClanWarConstants.DEATHY + Misc.random(3), 0);
    			}
    add this in process()

    Code:
    if(this.inClanWarsLobby()) {
    			getPA().showOption(3, 1, "Challenge", 1);
    		}
    		if(inClanWars()) {
    			try {
    				if(this.clanWarId != -1) {	
    					if(getClanWars().wallDown(ClanWarHandler.clanWars[this.clanWarId])) {
    						getPA().showOption(3, 1, "Attack", 1);
    					} else {
    						getPA().showOption(3, 1, "null", 1);
    					}
    					getPA().walkableInterface(3500);
    					getClanWars().updateInterface(this, ClanWarHandler.clanWars[this.clanWarId]);
    				}
    			} catch(Exception e){
    				e.printStackTrace();
    			}	
    		}
    add this at the top of clickingButtons class

    Code:
    if (c.getClanWars().handleButtons(c, actionButtonId)) {
    			return;
    		}
    go into CombatAssitant and

    search for checkReqs() and put this in it

    Code:
    if(c.inClanWars()) {
    			if(!c.getClanWars().wallDown(ClanWarHandler.clanWars[c.clanId])) {
    				c.sendMessage("Reseting?");
    				c.getCombat().resetPlayerAttack();
    			}
    			if(ClanWarHandler.clanWars[c.clanWarId].clan1Players.contains(c) && ClanWarHandler.clanWars[c.clanWarId].clan1Players.contains(PlayerHandler.players[c.playerIndex])) {
    				c.sendMessage("Reseting?");
    				c.getCombat().resetPlayerAttack();
    				return false;
    			}
    			if(ClanWarHandler.clanWars[c.clanWarId].clan2Players.contains(c) && ClanWarHandler.clanWars[c.clanWarId].clan2Players.contains(PlayerHandler.players[c.playerIndex])) {
    				c.sendMessage("Reseting?");
    				c.getCombat().resetPlayerAttack();
    				return false;
    			}
    		}
    
    if (PlayerHandler.players[c.playerIndex].inPits || c.inClanWars())
    			return true;
    
    if(c.inClanWarsLobby()) {
    			c.sendMessage("Reseting?");
    			c.getClanWars().requestChallenge(c, c.playerIndex);
    			c.getCombat().resetPlayerAttack();
    			return false;
    		}
    open player.java and add this

    Code:
    /**
    	 * Clan wars
    	 */
    	
    	public int clanWarOpponent, clanWarId = -1;
    	public boolean chalAccepted, chalInterface;
    	
    	public boolean inClanWars() {
    		if (absX > 2880 && absX < 2943 && absY > 5632 && absY < 5695) {
    			return true;
    		}
    		return false;
    	}
    
    	public boolean inClanWarsLobby() {
    		if (absX > 2979 && absX < 3006 && absY > 9665 && absY < 9693) {
    			return true;
    		}
    		return false;
    	}
    	
    	public boolean inClanWarsDead() {
    		if (absX > 2926 && absX < 2933 && absY > 5663 && absY < 5670
    				|| absX > 2890 && absX < 2897 && absY > 5657 && absY < 5664) {
    			return true;
    		}
    		return false;
    	}


    You might need to add these codes in the opposite methods that I say (E.G giveLife and applyDead) cause it seems different for servers i've added this on

    in applydead

    Code:
    if(c.inClanWars()) {
    					c.getClanWars().handleKill(c, o);
    				}
    and in giveLife

    Code:
    if (c.inClanWars()) {
    			c.getClanWars().handleDeath(c);
    		}
    and this also in givelife somewhere...

    Code:
    if(ClanWarHandler.clanWars[c.clanWarId].clan1Players.contains(c)) {
    					movePlayer(ClanWarConstants.DEATH_CLAN1X, ClanWarConstants.DEATH_CLAN1Y, ClanWarHandler.clanWars[c.clanWarId].getHeight());
    				} else {
    					movePlayer(ClanWarConstants.DEATH_CLAN2X, ClanWarConstants.DEATH_CLAN2Y, ClanWarHandler.clanWars[c.clanWarId].getHeight());
    				}
    				if(ClanWarHandler.clanWars[c.clanWarId].clan2Players.contains(c)) {
    					if(ClanWarHandler.clanWars[c.clanWarId].getClan1Kills() >= ClanWarConstants.MAX_KILLS) {
    						c.sendMessage("called");
    						c.getClanWars().handleWin("clan1", ClanWarHandler.clanWars[c.clanWarId]);
    					}
    				} else if (ClanWarHandler.clanWars[c.clanWarId].clan1Players.contains(c)) {
    					if(ClanWarHandler.clanWars[c.clanWarId].getClan2Kills() >= ClanWarConstants.MAX_KILLS) {
    						c.sendMessage("called");
    						c.getClanWars().handleWin("clan2", ClanWarHandler.clanWars[c.clanWarId]);
    					}
    				}

    in ClanChatHandler

    leaveClan() replace this, or rip the code u need

    Code:
    public void leaveClan(int playerId, int clanId) {
    		if (clanId < 0) {
    			Client c = (Client)PlayerHandler.players[playerId];
    			c.sendMessage("You are not in a clan.");
    			return;		
    		}
    		if (clans[clanId] != null) {
    			if (PlayerHandler.players[playerId] != null) {
    				Client c = (Client)PlayerHandler.players[playerId];
    				if(c.clanWarId != -1) {
    					if(ClanWarHandler.clanWars[c.clanWarId].getId() == c.playerId) {
    						c.sendMessage("Called");
    						c.getClanWars().checkLeave(c, ClanWarHandler.clanWars[c.clanWarId]);
    					} else if(ClanWarHandler.clanWars[c.clanWarId].getOtherId() == c.playerId) {
    						c.sendMessage("Called1");
    						c.getClanWars().checkLeave(c, ClanWarHandler.clanWars[c.clanWarId]);
    					}
    				}
    				PlayerHandler.players[playerId].clanId = -1;
    				c.sendMessage("You have left the clan.");
    				c.getPA().clearClanChat();
    				if(c.clanWarId > -1) {
    					c.getClanWars().removePlayer(c, ClanWarHandler.clanWars[c.clanWarId]);
    				}
    				for (int j = 0; j < clans[clanId].members.length; j++) {
    					if (clans[clanId].members[j] == playerId) {
    						clans[clanId].members[j] = -1;
    					}
    				}
    				//for (int j = 0; j < clans[clanId].members.length; j++) {
    					//Client c2 = (Client)PlayerHandler.players[clans[clanId].members[j]];
    					//c2.sendMessage(c.playerName+" has left the clan.");
    				//}
    			}
    			updateClanChat(clanId);
    		} else {
    			Client c = (Client)PlayerHandler.players[playerId];
    			PlayerHandler.players[playerId].clanId = -1;
    			c.sendMessage("You are not in a clan.");
    		}
    	}

    and lastly in ActionHandler add this at the top

    Code:
    if(c.getClanWars().handleObjects(c, objectType)) {
    			return;
    		}
    dont complain about conventions cuz it ****s up when i copy from eclipse onto r-s

    MAKE SURE YOU CLICK MY SIGNATURE. THE MORE PMS YOU SEND THE MORE LIKELY YOU WILL GET A RESPONSE. GO GO GO GO

    dont post errors cuz idc lol
    Reply With Quote  
     

  2. Thankful users:


  3. #2  
    Banned
    Join Date
    Aug 2011
    Posts
    1,062
    Thanks given
    197
    Thanks received
    214
    Rep Power
    0
    [SPOIL]
    Quote Originally Posted by Women View Post
    It's my birthday so I'm releasing this





    Make a new class called ClanWarHandler and add this code in it

    Code:
    package server.model.minigames.clanwars;
    
    import static server.model.minigames.clanwars.ClanWarConstants.CLAN1X;
    import static server.model.minigames.clanwars.ClanWarConstants.CLAN1Y;
    import static server.model.minigames.clanwars.ClanWarConstants.CLAN2X;
    import static server.model.minigames.clanwars.ClanWarConstants.CLAN2Y;
    import static server.model.minigames.clanwars.ClanWarConstants.DEATHX;
    import static server.model.minigames.clanwars.ClanWarConstants.DEATHY;
    import static server.model.minigames.clanwars.ClanWarConstants.MESSAGE1;
    import static server.model.minigames.clanwars.ClanWarConstants.MESSAGE2;
    import static server.model.minigames.clanwars.ClanWarConstants.MESSAGE3;
    import static server.model.minigames.clanwars.ClanWarConstants.WALL_ID;
    import static server.model.minigames.clanwars.ClanWarConstants.OWNERS_ONLY;
    import server.Server;
    import server.event.CycleEvent;
    import server.event.CycleEventContainer;
    import server.event.CycleEventHandler;
    import server.model.objects.Object;
    import server.model.players.Client;
    import server.model.players.PlayerHandler;
    import server.util.Misc;
    
    public class ClanWarHandler {
    
    	public ClanWarHandler(Client c) {}
    	
    	public static ClanWar[] clanWars = new ClanWar[100];
    	
    	public void wallTimer(final ClanWar c) {
    		
    		CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    
    			@Override
    			public void execute(CycleEventContainer container) {
    				if(c.getWallTime() >= 0) {
    					c.setWallTime(c.getWallTime() - 1);
    				}
    				if(c.getWallTime() == 117) {
    					walls(c, WALL_ID, c.getHeight());
    				}
    				if(c.getWallTime() == 0) {
    					walls(c, -1, c.getHeight());				
    					this.stop();
    				}
    			}
    
    			@Override
    			public void stop() {
    			}
    			
    		}, 2);
    	}
    
    	public void requestChallenge(Client c, int otherPlayerId) throws NullPointerException {
    		Client c2 = (Client) PlayerHandler.players[otherPlayerId];
    		if(OWNERS_ONLY) {
    			if (!Server.clanChat.clans[c.clanId].owner.equalsIgnoreCase(c.playerName)) {
    				System.out.println("You are not the owner of the Clan Chat.");
    				return;
    			}
    			if (!Server.clanChat.clans[c2.clanId].owner.equalsIgnoreCase(c.playerName)) {
    				System.out.println("This player is not a high enough rank to accept matches.");
    				return;
    			}
    		}
    		if(c == null && c2 == null) {
    			System.out.println("[Clan Wars] An error has occured");
    			return;
    		}
    		if(c.clanId == c2.clanId) {
    			c.sendMessage("You cannot challenge someone in your Clan Chat to a Clan War.");
    			return;
    		}
    		if(c.clanId <= 0) {
    			c.sendMessage("You must be in a Clan Chat to start a Clan War.");
    			return;
    		}
    		if(c2.clanId <= 0) {
    			c.sendMessage("This player is not in a Clan Chat.");
    			return;
    		}
    		if(c.chalAccepted) {
    			c.sendMessage("You already have a match in progress.");
    			return;
    		}
    		if(c2.chalAccepted) {
    			c.sendMessage("This player already has a match in progress.");
    			return;
    		}
    		if(c2.chalInterface) {
    			c.sendMessage("This player is currently busy.");
    			return;
    		}
    		if(c.chalInterface) {
    			return;
    		}
    		if(c.inClanWarsLobby() && c2.inClanWarsLobby()) {
    			c2.clanWarOpponent = c.playerId;
    			c.clanWarOpponent = otherPlayerId;
    			c2.sendMessage(c.playerName+":clanwarreq:");
    			c.sendMessage("Sending "+Misc.formatPlayerName(c2.playerName)+" challenge request.");
    		}	
    	}
    	
    	public void handleKill(Client c, Client c2) {
    		ClanWar clanWar = clanWars[c.clanWarId];
    		c.sendMessage(" "+c.playerName+", "+c2.playerName+" ");
    		if(clanWar == null) {
    			c.sendMessage("clan war null");
    		}
    		if(clanWar.clan2Players.contains(c)) {
    			clanWar.setClan1Kills(clanWar.getClan1Kills() + 1);
    			/*if(clanWar.getClan1Kills() >= MAX_KILLS) {
    				c.sendMessage("called");
    				handleWin("clan1", clanWar);
    			}*/
    		} else if (clanWar.clan1Players.contains(c)) {
    			clanWar.setClan2Kills(clanWar.getClan2Kills() + 1);
    			/*if(clanWar.getClan2Kills() >= MAX_KILLS) {
    				c.sendMessage("called");
    				handleWin("clan2", clanWar);
    			}*/
    		}
    	}
    	
    	public void handleWin(String clan, ClanWar c) {
    		if(clan.equals("clan1")) {
    			for(Client clan1 : c.clan1Players) {
    				clan1.sendMessage("Congratulations, you have defeated "+c.getClan2());
    				clan1.getPA().movePlayer(DEATHX, DEATHY, 0);
    				clan1.clanWarId = -1;
    				clan1.getPA().walkableInterface(-1);
    			}
    			for(Client clan2 : c.clan2Players) {
    				clan2.sendMessage("You were defeated by "+c.getClan1());
    				clan2.getPA().movePlayer(DEATHX, DEATHY, 0);
    				clan2.clanWarId = -1;
    				clan2.getPA().walkableInterface(-1);
    			}
    		} else if (clan.equals("clan2")) {
    			for(Client clan2 : c.clan2Players) {
    				clan2.sendMessage("Congratulations, you have defeated "+c.getClan1());
    				clan2.getPA().movePlayer(DEATHX, DEATHY, 0);
    				clan2.clanWarId = -1;
    				clan2.getPA().walkableInterface(-1);
    			}
    			for(Client clan1 : c.clan1Players) {
    				clan1.sendMessage("You were defeated by "+c.getClan2());
    				clan1.getPA().movePlayer(DEATHX, DEATHY, 0);
    				clan1.clanWarId = -1;
    				clan1.getPA().walkableInterface(-1);
    			}
    		}
    		c = null;
    	}
    
    	public void handleDeath(Client c) {
    		if(c != null) {
    			ClanWar clanWar = clanWars[c.clanWarId];
    			if(clanWar.deadPlayers.contains(c)) {
    				c.sendMessage("Tell a moderator about this.");
    				return;
    			}
    			clanWar.deadPlayers.add(c);
    			//removePlayer(c, clanWar);
    		}
    	}
    	
    	public void challengeClicked(Client c) {
    		Client c2 = (Client) PlayerHandler.players[c.clanWarOpponent];
    		c.getPA().showInterface(9000);
    		c.getPA().sendFrame126(Misc.formatPlayerName(c2.playerName)+" is inviting your clan to a war.", 9002);
    		c2.getPA().showInterface(9000);
    		c2.getPA().sendFrame126(Misc.formatPlayerName(c.playerName)+" is inviting your clan to a war.", 9002);
    		c.chalInterface = c2.chalInterface = true;
    	}
    	
    	public boolean handleButtons(Client c, int actionButtonId) {
    		Client c2 = (Client) PlayerHandler.players[c.clanWarOpponent];
    		switch(actionButtonId) {
    			case 35043:
    				if(c2 == null) {
    					return false;
    				}
    				if(c.chalAccepted && c2.chalAccepted) {
    					startMatch(c, c2);
    				}
    				c.chalInterface = false;
    				c2.chalInterface = false;
    				c.chalAccepted = true;
    				c2.chalAccepted = true;
    				return false;
    			case 35047:
    				if(c2 == null) {
    					return false;
    				}
    				c.getPA().closeAllWindows();
    				c2.getPA().closeAllWindows();
    				c.sendMessage("You have declined the clan war requestion.");
    				c2.sendMessage("The other player has declined the request.");
    				c.clanWarOpponent = 0;
    				c2.clanWarOpponent = 0;
    				resetChallengeVariables(c);
    				resetChallengeVariables(c2);
    				c.chalInterface = false;
    				c2.chalInterface = false;
    				return false;
    		}
    		return false;
    	}
    	
    	public boolean handleObjects(Client c, int objectType) {
    		if(objectType == 28213) {
    			if(c.clanWarId == -1) {
    				c.sendMessage("You don't have a Clan War scheduled.");
    				return false;
    			}
    		}	
    		if(c.clanWarId == -1) {
    			return false;
    		}
    		ClanWar clanWar = clanWars[c.clanWarId];
    		switch(objectType) {
    			case 38697:
    				c.getPA().movePlayer(DEATHX + Misc.random(3), DEATHY + Misc.random(3), 0);
    				if(clanWar.deadPlayers.contains(c)) {
    					clanWar.deadPlayers.remove(c);
    				}
    				//removePlayer(c, clanWar);
    				return false;
    			case 28213:
    				int x = 0;
    				int y = 0;
    				if(c.clanWarId == -1) {
    					c.sendMessage("You are not in a Clan.");
    					return false;
    				}
    				if(clanWar.deadPlayers.contains(c)) {
    					clanWar.deadPlayers.remove(c);
    				}
    				if(Server.clanChat.clans[c.clanId].name == clanWar.getClan1()) {
    					x = CLAN1X;
    					y = CLAN1Y;
    					if(!clanWar.clan1Players.contains(c)) {
    						clanWar.clan1Players.add(c);
    					}
    				}
    				if(Server.clanChat.clans[c.clanId].name == clanWar.getClan2()) {
    					x = CLAN2X;
    					y = CLAN2Y;
    					if(!clanWar.clan2Players.contains(c)) {
    						clanWar.clan2Players.add(c);
    					}	
    				}
    				enterMatch(c, x, y);
    				return false;
    				
    		}
    		return false;
    	}
    	
    	public void removePlayer(Client c, ClanWar c2) {
    		if(c2.clan1Players.contains(c)) {
    			c2.clan1Players.remove(c);
    		} else if(c2.clan2Players.contains(c)) {
    			c2.clan2Players.remove(c);
    		}
    		if(c.inClanWars()) {
    			c.getPA().movePlayer(DEATHX, DEATHY, 0);
    		}
    	}
    	
    	public void startMatch(Client c, Client c2) {
    		int clanWarId = openSlot();
    		clanWars[clanWarId] = new ClanWar(c.playerId, c2.playerId, ((c.playerId + c2.playerId) * 4), clanWarId, 120);
    		for (int j = 0; j < Server.clanChat.clans[c.clanId].members.length; j++) {
    			if (Server.clanChat.clans[c.clanId].members[j] <= 0)
    				continue;
    			if (PlayerHandler.players[Server.clanChat.clans[c.clanId].members[j]] != null) {
    				Client clan = (Client)PlayerHandler.players[Server.clanChat.clans[c.clanId].members[j]];
    				clan.clanWarId = clanWarId;
    				clan.sendMessage(MESSAGE1);
    				clan.sendMessage(MESSAGE2);
    				clan.sendMessage(MESSAGE3);
    				clan.clanWarId = c.clanWarId = c2.clanWarId = clanWarId;
    				clan.sendMessage(" "+clan.playerName+":"+clan.clanWarId);
    			}
    		}
    		for (int j = 0; j < Server.clanChat.clans[c2.clanId].members.length; j++) {
    			if (Server.clanChat.clans[c2.clanId].members[j] <= 0)
    				continue;
    			if (PlayerHandler.players[Server.clanChat.clans[c2.clanId].members[j]] != null) {
    				Client clan = (Client)PlayerHandler.players[Server.clanChat.clans[c2.clanId].members[j]];
    				clan.clanWarId = clanWarId;
    				clan.sendMessage(MESSAGE1);
    				clan.sendMessage(MESSAGE2);
    				clan.sendMessage(MESSAGE3);
    				clan.clanWarId = c.clanWarId = c2.clanWarId = clanWarId;
    				clan.sendMessage(" "+clan.playerName+":"+clan.clanWarId);
    			}
    		}
    		if(c != null) {
    			c.sendMessage("Clan Wars request accepted.");
    			enterMatch(c, CLAN1X, CLAN1Y);
    			clanWars[clanWarId].clan1Players.add(c);
    		}
    		if(c2 != null) {
    			c2.sendMessage("Clan Wars request accepted.");
    			enterMatch(c2, CLAN2X, CLAN2Y);
    			clanWars[clanWarId].clan2Players.add(c2);
    		}
    		clanWars[clanWarId].setClan1(Server.clanChat.clans[c.clanId].name);
    		clanWars[clanWarId].setClan2(Server.clanChat.clans[c2.clanId].name);
    		clanWars[clanWarId].setWallTime(120);
    		wallTimer(clanWars[clanWarId]);
    		walls(clanWars[clanWarId], WALL_ID, clanWars[clanWarId].getHeight());
    		c.sendMessage("Height level is gonna be: "+clanWars[c.clanWarId].getHeight());
    		c2.sendMessage("Height level is gonna be: "+clanWars[c.clanWarId].getHeight());
    	}
    	
    	public void enterMatch(Client c, int x, int y) {
    		ClanWar clanWar = clanWars[c.clanWarId];
    		c.getPA().movePlayer(x, y, clanWar.getHeight());
    		c.getPA().closeAllWindows();
    		if(!wallDown(clanWar)) {
    			walls(clanWar, WALL_ID, clanWar.getHeight());
    		}
    	}
    	
    	public int openSlot() {	
    		for (int j = 0; j < clanWars.length; j++) {
    			if (clanWars[j] == null || clanWars[j].getId() == -1)
    				return j;
    		}
    		return -1;
    	}
    	
    	public void walls(ClanWar c, int id, int height) {
    		if(height == c.getHeight()) {
    			for (int i = 2884; i < 2925; i++) {
    				new Object(id, i, 5666, height, -1, 10, id, 0);
    			}
    			for (int i = 2935; i < 2940; i++) {
    				new Object(id, i, 5666, height, -1, 10, id, 0);
    			}
    		}
    		System.out.println("Spawning walls at height: "+c.getHeight());
    	}
    	
    
    	public void resetChallengeVariables(Client c) {
    		Client c2 = (Client) PlayerHandler.players[c.clanWarOpponent];
    		if(c != null && c2 != null) {
    			c2.chalAccepted = false;
    			c.chalAccepted = false;
    			c2.chalInterface = false;
    			c.chalInterface = false;
    		}
    	}
    	
    	public void checkLeave(Client c, ClanWar c2) {
    		if(Server.clanChat.clans[c.clanId].owner.equalsIgnoreCase(c.playerName)) {
    			Server.clanChat.messageToClan("The other team's leader has forfeited.", PlayerHandler.players[c.clanWarOpponent].clanId, true);
    			Server.clanChat.messageToClan("Your owner left the Clan Chat. The match was forfeited.", c.clanId, true);
    			if(c2.clan1Players.contains(c))
    				handleWin("clan2", c2);
    			else if(c2.clan2Players.contains(c))
    				handleWin("clan1", c2);
    		}
    		removePlayer(c, c2);
    	}
    	
    	public void updateInterface(Client c, ClanWar c2) {
    		try {
    			Client clan1 = (Client) PlayerHandler.players[c2.getOtherId()];
    			Client clan2 = (Client) PlayerHandler.players[c2.getId()];
    			if (c.inClanWars()) {
    				if(!wallDown(c2)) {
    					//if(Server.clanChat.clans[c.clanId].name.equals(c2.getClan1())) {
    						/*c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[c.clanId].name)+"", 3502);
    						c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3503);
    						c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(c.clanId), 3505);
    						c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(clan1.clanId), 3506);*/
    						c.getPA().sendFrame126("My Clan", 3502);
    						c.getPA().sendFrame126("Opposing", 3503);
    						c.getPA().sendFrame126(" ", 3505);
    						c.getPA().sendFrame126(" ", 3506);
    					//}
    					//if(Server.clanChat.clans[c.clanId].name.equals(c2.getClan2())) {
    						/*c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3502);
    						c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan2.clanId].name)+"", 3503);
    						c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(clan1.clanId), 3505);
    						c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(c.clanId), 3506);*/
    						c.getPA().sendFrame126("My Clan", 3502);
    						c.getPA().sendFrame126("Opposing", 3503);
    						c.getPA().sendFrame126(" ", 3505);
    						c.getPA().sendFrame126(" ", 3506);
    					//}
    					c.getPA().sendFrame126(Misc.formatTime(c2.getWallTime())+"", 3507);
    					if (c2.getWallTime() <= 3) {
    						c.getPA().sendFrame126("@red@GET READY!", 3507);
    					}
    				} else {
    					//if(Server.clanChat.clans[c.clanId].name.equals(c2.getClan1())) {
    					if(c2.clan1Players.contains(c)) {
    						if(c.clanId > 0) {
    							c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[c.clanId].name)+"", 3502);
    							c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3503);
    						} else {
    							c.getPA().sendFrame126("My Clan", 3502);
    							c.getPA().sendFrame126("Opposing", 3503);
    						}
    						c.getPA().sendFrame126("         Currently:", 3504);
    						c.getPA().sendFrame126("Kills: "+c2.getClan1Kills(), 3505);
    						c.getPA().sendFrame126("Kills: "+c2.getClan2Kills(), 3506);
    						if(c2.getClan1Kills() > c2.getClan2Kills()) {
    							c.getPA().sendFrame126("Winning!", 3507);
    						} else if(c2.getClan1Kills() == c2.getClan2Kills()) {
    							c.getPA().sendFrame126("Tied!", 3507);
    						} else {
    							c.getPA().sendFrame126("@red@Losing!", 3507);
    						}
    					}
    					if(c2.clan2Players.contains(c)) {
    						if(c.clanId > 0) {
    							c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3502);
    							c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan2.clanId].name)+"", 3503);
    						} else {
    							c.getPA().sendFrame126("My Clan", 3502);
    							c.getPA().sendFrame126("Opposing", 3503);
    						}
    						c.getPA().sendFrame126("         Currently:", 3504);
    						c.getPA().sendFrame126("Kills: "+c2.getClan2Kills(), 3505);
    						c.getPA().sendFrame126("Kills: "+c2.getClan1Kills(), 3506);
    						if(c2.getClan2Kills() > c2.getClan1Kills()) {
    							c.getPA().sendFrame126("Winning!", 3507);
    						} else if(c2.getClan1Kills() == c2.getClan2Kills()) {
    							c.getPA().sendFrame126("Tied!", 3507);
    						} else {	
    							c.getPA().sendFrame126("@red@Losing!", 3507);
    						}
    					}
    				}
    				
    			}
    		}catch(Exception e) {
    			e.printStackTrace();
    		}
    	}
    	
    	public boolean wallDown(ClanWar c) {
    		if(c == null) {
    			return false;
    		}
    		return c.getWallTime() == -1;
    	}
    	
    }
    make a new class called ClanWarConstants and add this in it

    Code:
    package server.model.minigames.clanwars;
    
    public class ClanWarConstants {
    
    	/**
    	 * If only owners can challenge another clan
    	 * if set to true ANYONE in the clan will be able to
    	 */
    	public static final boolean OWNERS_ONLY = false;
    	
    	/**
    	 * The coords that the 1st clan spawns at
    	 */
    	public static final int CLAN1X = 2930, CLAN1Y = 5686;
    	
    	/**
    	 * The coords that the 2nd clan spawns at
    	 */
    	public static final int CLAN2X = 2892, CLAN2Y = 5641;
    	
    	/**
    	 * The amount of kills needed to win
    	 */
    	public static final int MAX_KILLS = 3;
    	
    	/**
    	 * The object ID of the wall that spawns
    	 */
    	public static final int WALL_ID = 28176;
    	
    	/**
    	 * The x coord you spawn at when you die and are in clan1
    	 */
    	public static final int DEATH_CLAN1X = 2930;
    	
    	/**
    	 * The y coord you spawn at when you die and are in clan1
    	 */
    	public static final int DEATH_CLAN1Y = 5666;
    	
    	/**
    	 * The x coord you spawn at when you die and are in clan2
    	 */
    	public static final int DEATH_CLAN2X = 2893;
    	
    	/**
    	 * The y coord you spawn at when you die and are in clan2
    	 */
    	public static final int DEATH_CLAN2Y = 5660;
    	
    	/**
    	 * X coord you spawn around when the match is over
    	 */
    	public static final int DEATHX = 2983;
    	
    	/**
    	 * Y coord you spawn around when the match is over
    	 */
    	public static final int DEATHY = 9674;
    	
    	/**
    	 * First message sent when challenge is accepted
    	 */
    	public static final String MESSAGE1 =
    			"@red@Your clan has been challenged to a clan war!";
    
    	/**
    	 * Second message sent when challenge is accepted
    	 */
    	public static final String MESSAGE2 =
    			"@red@Step through the purple portal in the Challenge Hall.";
    	
    	/**
    	 * Third message sent when challenge is accepted
    	 */
    	public static final String MESSAGE3 =
    			"@red@Battle will commence in 2 minutes.";
    
    }
    and make a new class called ClanWar

    Code:
    package server.model.minigames.clanwars;
    
    import java.util.ArrayList;
    
    import server.model.players.Client;
    
    public class ClanWar {
    	
    	public ClanWar(int playerId, int otherPlayerId, int heightLevel, int clanWarId, int wallTime) {
    		this.playerId = playerId;
    		this.otherPlayerId = otherPlayerId;
    		this.heightLevel = heightLevel;
    		this.clanWarId = clanWarId;
    		this.wallTime = wallTime;
    	}
    	
    	public ArrayList<Client> deadPlayers = new ArrayList<Client>();
    	
    	public ArrayList<Client> clan1Players = new ArrayList<Client>();
    	
    	public ArrayList<Client> clan2Players = new ArrayList<Client>();
    	
    	private String clan1;
    	private String clan2;
    	
    	private int playerId;
    	private int otherPlayerId;
    	private int heightLevel;
    	private int clanWarId;
    	private int wallTime;
    	private int clan1Kills;
    	private int clan2Kills;
    	
    	public int getId() {
    		return playerId;
    	}
    	
    	public int getOtherId() {
    		return otherPlayerId;
    	}
    	
    	public int getHeight() {
    		return heightLevel;
    	}
    	
    	public int getWarId() {
    		return clanWarId;
    	}
    	
    	public int getWallTime() {
    		return wallTime;
    	}
    	
    	public int setWallTime(int time) {
    		return this.wallTime = time;
    	}
    
    	public String getClan2() {
    		return clan2;
    	}
    
    	public void setClan2(String clan2) {
    		this.clan2 = clan2;
    	}
    
    	public String getClan1() {
    		return clan1;
    	}
    
    	public void setClan1(String clan1) {
    		this.clan1 = clan1;
    	}
    
    	public int getClan1Kills() {
    		return clan1Kills;
    	}
    
    	public void setClan1Kills(int clan1Kills) {
    		this.clan1Kills = clan1Kills;
    	}
    	
    	public int getClan2Kills() {
    		return clan2Kills;
    	}
    
    	public void setClan2Kills(int clan2Kills) {
    		this.clan2Kills = clan2Kills;
    	}
    }
    The above class is just what i used to hold information needed for the clan war.

    open client class and add these pieces of code in client class

    Code:
    /**
         * Clan wars
         */
    	private ClanWarHandler cw = new ClanWarHandler(this);
    	public ClanWarHandler getClanWars() {
    		return cw;
    	}
    add this in initialize

    Code:
    if(inClanWars()) {
    				getPA().movePlayer(ClanWarConstants.DEATHX + Misc.random(3), ClanWarConstants.DEATHY + Misc.random(3), 0);
    			}
    add this in process()

    Code:
    if(this.inClanWarsLobby()) {
    			getPA().showOption(3, 1, "Challenge", 1);
    		}
    		if(inClanWars()) {
    			try {
    				if(this.clanWarId != -1) {	
    					if(getClanWars().wallDown(ClanWarHandler.clanWars[this.clanWarId])) {
    						getPA().showOption(3, 1, "Attack", 1);
    					} else {
    						getPA().showOption(3, 1, "null", 1);
    					}
    					getPA().walkableInterface(3500);
    					getClanWars().updateInterface(this, ClanWarHandler.clanWars[this.clanWarId]);
    				}
    			} catch(Exception e){
    				e.printStackTrace();
    			}	
    		}
    add this at the top of clickingButtons class

    Code:
    if (c.getClanWars().handleButtons(c, actionButtonId)) {
    			return;
    		}
    go into CombatAssitant and

    search for checkReqs() and put this in it

    Code:
    if(c.inClanWars()) {
    			if(!c.getClanWars().wallDown(ClanWarHandler.clanWars[c.clanId])) {
    				c.sendMessage("Reseting?");
    				c.getCombat().resetPlayerAttack();
    			}
    			if(ClanWarHandler.clanWars[c.clanWarId].clan1Players.contains(c) && ClanWarHandler.clanWars[c.clanWarId].clan1Players.contains(PlayerHandler.players[c.playerIndex])) {
    				c.sendMessage("Reseting?");
    				c.getCombat().resetPlayerAttack();
    				return false;
    			}
    			if(ClanWarHandler.clanWars[c.clanWarId].clan2Players.contains(c) && ClanWarHandler.clanWars[c.clanWarId].clan2Players.contains(PlayerHandler.players[c.playerIndex])) {
    				c.sendMessage("Reseting?");
    				c.getCombat().resetPlayerAttack();
    				return false;
    			}
    		}
    
    if (PlayerHandler.players[c.playerIndex].inPits || c.inClanWars())
    			return true;
    
    if(c.inClanWarsLobby()) {
    			c.sendMessage("Reseting?");
    			c.getClanWars().requestChallenge(c, c.playerIndex);
    			c.getCombat().resetPlayerAttack();
    			return false;
    		}
    open player.java and add this

    Code:
    /**
    	 * Clan wars
    	 */
    	
    	public int clanWarOpponent, clanWarId = -1;
    	public boolean chalAccepted, chalInterface;
    	
    	public boolean inClanWars() {
    		if (absX > 2880 && absX < 2943 && absY > 5632 && absY < 5695) {
    			return true;
    		}
    		return false;
    	}
    
    	public boolean inClanWarsLobby() {
    		if (absX > 2979 && absX < 3006 && absY > 9665 && absY < 9693) {
    			return true;
    		}
    		return false;
    	}
    	
    	public boolean inClanWarsDead() {
    		if (absX > 2926 && absX < 2933 && absY > 5663 && absY < 5670
    				|| absX > 2890 && absX < 2897 && absY > 5657 && absY < 5664) {
    			return true;
    		}
    		return false;
    	}


    You might need to add these codes in the opposite methods that I say (E.G giveLife and applyDead) cause it seems different for servers i've added this on

    in applydead

    Code:
    if(c.inClanWars()) {
    					c.getClanWars().handleKill(c, o);
    				}
    and in giveLife

    Code:
    if (c.inClanWars()) {
    			c.getClanWars().handleDeath(c);
    		}
    and this also in givelife somewhere...

    Code:
    if(ClanWarHandler.clanWars[c.clanWarId].clan1Players.contains(c)) {
    					movePlayer(ClanWarConstants.DEATH_CLAN1X, ClanWarConstants.DEATH_CLAN1Y, ClanWarHandler.clanWars[c.clanWarId].getHeight());
    				} else {
    					movePlayer(ClanWarConstants.DEATH_CLAN2X, ClanWarConstants.DEATH_CLAN2Y, ClanWarHandler.clanWars[c.clanWarId].getHeight());
    				}
    				if(ClanWarHandler.clanWars[c.clanWarId].clan2Players.contains(c)) {
    					if(ClanWarHandler.clanWars[c.clanWarId].getClan1Kills() >= ClanWarConstants.MAX_KILLS) {
    						c.sendMessage("called");
    						c.getClanWars().handleWin("clan1", ClanWarHandler.clanWars[c.clanWarId]);
    					}
    				} else if (ClanWarHandler.clanWars[c.clanWarId].clan1Players.contains(c)) {
    					if(ClanWarHandler.clanWars[c.clanWarId].getClan2Kills() >= ClanWarConstants.MAX_KILLS) {
    						c.sendMessage("called");
    						c.getClanWars().handleWin("clan2", ClanWarHandler.clanWars[c.clanWarId]);
    					}
    				}

    dont complain about conventions cuz it ****s up when i copy from eclipse onto r-s


    dont post errors cuz idc lol
    [/SPOIL]amazing thank you
    Reply With Quote  
     

  4. #3  
    plz dont take my wizard mind bombs Women's Avatar
    Join Date
    Mar 2010
    Posts
    1,881
    Thanks given
    724
    Thanks received
    1,162
    Rep Power
    4763
    can you put your quote into a spoiler please, that's annoying to look at,

    and np.
    Reply With Quote  
     

  5. Thankful user:


  6. #4  
    Java Developer

    Anezka's Avatar
    Join Date
    Aug 2013
    Age
    30
    Posts
    373
    Thanks given
    96
    Thanks received
    95
    Rep Power
    174
    Nice release and happy birthday!
    Reply With Quote  
     

  7. Thankful user:


  8. #5  
    Registered Member
    Join Date
    Jul 2013
    Posts
    361
    Thanks given
    156
    Thanks received
    43
    Rep Power
    39
    Quote Originally Posted by Women View Post
    Spoiler for Post:

    It's my birthday so I'm releasing this





    Make a new class called ClanWarHandler and add this code in it

    Code:
    package server.model.minigames.clanwars;
    
    import static server.model.minigames.clanwars.ClanWarConstants.CLAN1X;
    import static server.model.minigames.clanwars.ClanWarConstants.CLAN1Y;
    import static server.model.minigames.clanwars.ClanWarConstants.CLAN2X;
    import static server.model.minigames.clanwars.ClanWarConstants.CLAN2Y;
    import static server.model.minigames.clanwars.ClanWarConstants.DEATHX;
    import static server.model.minigames.clanwars.ClanWarConstants.DEATHY;
    import static server.model.minigames.clanwars.ClanWarConstants.MESSAGE1;
    import static server.model.minigames.clanwars.ClanWarConstants.MESSAGE2;
    import static server.model.minigames.clanwars.ClanWarConstants.MESSAGE3;
    import static server.model.minigames.clanwars.ClanWarConstants.WALL_ID;
    import static server.model.minigames.clanwars.ClanWarConstants.OWNERS_ONLY;
    import server.Server;
    import server.event.CycleEvent;
    import server.event.CycleEventContainer;
    import server.event.CycleEventHandler;
    import server.model.objects.Object;
    import server.model.players.Client;
    import server.model.players.PlayerHandler;
    import server.util.Misc;
    
    public class ClanWarHandler {
    
    	public ClanWarHandler(Client c) {}
    	
    	public static ClanWar[] clanWars = new ClanWar[100];
    	
    	public void wallTimer(final ClanWar c) {
    		
    		CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    
    			@Override
    			public void execute(CycleEventContainer container) {
    				if(c.getWallTime() >= 0) {
    					c.setWallTime(c.getWallTime() - 1);
    				}
    				if(c.getWallTime() == 117) {
    					walls(c, WALL_ID, c.getHeight());
    				}
    				if(c.getWallTime() == 0) {
    					walls(c, -1, c.getHeight());				
    					this.stop();
    				}
    			}
    
    			@Override
    			public void stop() {
    			}
    			
    		}, 2);
    	}
    
    	public void requestChallenge(Client c, int otherPlayerId) throws NullPointerException {
    		Client c2 = (Client) PlayerHandler.players[otherPlayerId];
    		if(OWNERS_ONLY) {
    			if (!Server.clanChat.clans[c.clanId].owner.equalsIgnoreCase(c.playerName)) {
    				System.out.println("You are not the owner of the Clan Chat.");
    				return;
    			}
    			if (!Server.clanChat.clans[c2.clanId].owner.equalsIgnoreCase(c.playerName)) {
    				System.out.println("This player is not a high enough rank to accept matches.");
    				return;
    			}
    		}
    		if(c == null && c2 == null) {
    			System.out.println("[Clan Wars] An error has occured");
    			return;
    		}
    		if(c.clanId == c2.clanId) {
    			c.sendMessage("You cannot challenge someone in your Clan Chat to a Clan War.");
    			return;
    		}
    		if(c.clanId <= 0) {
    			c.sendMessage("You must be in a Clan Chat to start a Clan War.");
    			return;
    		}
    		if(c2.clanId <= 0) {
    			c.sendMessage("This player is not in a Clan Chat.");
    			return;
    		}
    		if(c.chalAccepted) {
    			c.sendMessage("You already have a match in progress.");
    			return;
    		}
    		if(c2.chalAccepted) {
    			c.sendMessage("This player already has a match in progress.");
    			return;
    		}
    		if(c2.chalInterface) {
    			c.sendMessage("This player is currently busy.");
    			return;
    		}
    		if(c.chalInterface) {
    			return;
    		}
    		if(c.inClanWarsLobby() && c2.inClanWarsLobby()) {
    			c2.clanWarOpponent = c.playerId;
    			c.clanWarOpponent = otherPlayerId;
    			c2.sendMessage(c.playerName+":clanwarreq:");
    			c.sendMessage("Sending "+Misc.formatPlayerName(c2.playerName)+" challenge request.");
    		}	
    	}
    	
    	public void handleKill(Client c, Client c2) {
    		ClanWar clanWar = clanWars[c.clanWarId];
    		c.sendMessage(" "+c.playerName+", "+c2.playerName+" ");
    		if(clanWar == null) {
    			c.sendMessage("clan war null");
    		}
    		if(clanWar.clan2Players.contains(c)) {
    			clanWar.setClan1Kills(clanWar.getClan1Kills() + 1);
    			/*if(clanWar.getClan1Kills() >= MAX_KILLS) {
    				c.sendMessage("called");
    				handleWin("clan1", clanWar);
    			}*/
    		} else if (clanWar.clan1Players.contains(c)) {
    			clanWar.setClan2Kills(clanWar.getClan2Kills() + 1);
    			/*if(clanWar.getClan2Kills() >= MAX_KILLS) {
    				c.sendMessage("called");
    				handleWin("clan2", clanWar);
    			}*/
    		}
    	}
    	
    	public void handleWin(String clan, ClanWar c) {
    		if(clan.equals("clan1")) {
    			for(Client clan1 : c.clan1Players) {
    				clan1.sendMessage("Congratulations, you have defeated "+c.getClan2());
    				clan1.getPA().movePlayer(DEATHX, DEATHY, 0);
    				clan1.clanWarId = -1;
    				clan1.getPA().walkableInterface(-1);
    			}
    			for(Client clan2 : c.clan2Players) {
    				clan2.sendMessage("You were defeated by "+c.getClan1());
    				clan2.getPA().movePlayer(DEATHX, DEATHY, 0);
    				clan2.clanWarId = -1;
    				clan2.getPA().walkableInterface(-1);
    			}
    		} else if (clan.equals("clan2")) {
    			for(Client clan2 : c.clan2Players) {
    				clan2.sendMessage("Congratulations, you have defeated "+c.getClan1());
    				clan2.getPA().movePlayer(DEATHX, DEATHY, 0);
    				clan2.clanWarId = -1;
    				clan2.getPA().walkableInterface(-1);
    			}
    			for(Client clan1 : c.clan1Players) {
    				clan1.sendMessage("You were defeated by "+c.getClan2());
    				clan1.getPA().movePlayer(DEATHX, DEATHY, 0);
    				clan1.clanWarId = -1;
    				clan1.getPA().walkableInterface(-1);
    			}
    		}
    		c = null;
    	}
    
    	public void handleDeath(Client c) {
    		if(c != null) {
    			ClanWar clanWar = clanWars[c.clanWarId];
    			if(clanWar.deadPlayers.contains(c)) {
    				c.sendMessage("Tell a moderator about this.");
    				return;
    			}
    			clanWar.deadPlayers.add(c);
    			//removePlayer(c, clanWar);
    		}
    	}
    	
    	public void challengeClicked(Client c) {
    		Client c2 = (Client) PlayerHandler.players[c.clanWarOpponent];
    		c.getPA().showInterface(9000);
    		c.getPA().sendFrame126(Misc.formatPlayerName(c2.playerName)+" is inviting your clan to a war.", 9002);
    		c2.getPA().showInterface(9000);
    		c2.getPA().sendFrame126(Misc.formatPlayerName(c.playerName)+" is inviting your clan to a war.", 9002);
    		c.chalInterface = c2.chalInterface = true;
    	}
    	
    	public boolean handleButtons(Client c, int actionButtonId) {
    		Client c2 = (Client) PlayerHandler.players[c.clanWarOpponent];
    		switch(actionButtonId) {
    			case 35043:
    				if(c2 == null) {
    					return false;
    				}
    				if(c.chalAccepted && c2.chalAccepted) {
    					startMatch(c, c2);
    				}
    				c.chalInterface = false;
    				c2.chalInterface = false;
    				c.chalAccepted = true;
    				c2.chalAccepted = true;
    				return false;
    			case 35047:
    				if(c2 == null) {
    					return false;
    				}
    				c.getPA().closeAllWindows();
    				c2.getPA().closeAllWindows();
    				c.sendMessage("You have declined the clan war requestion.");
    				c2.sendMessage("The other player has declined the request.");
    				c.clanWarOpponent = 0;
    				c2.clanWarOpponent = 0;
    				resetChallengeVariables(c);
    				resetChallengeVariables(c2);
    				c.chalInterface = false;
    				c2.chalInterface = false;
    				return false;
    		}
    		return false;
    	}
    	
    	public boolean handleObjects(Client c, int objectType) {
    		if(objectType == 28213) {
    			if(c.clanWarId == -1) {
    				c.sendMessage("You don't have a Clan War scheduled.");
    				return false;
    			}
    		}	
    		if(c.clanWarId == -1) {
    			return false;
    		}
    		ClanWar clanWar = clanWars[c.clanWarId];
    		switch(objectType) {
    			case 38697:
    				c.getPA().movePlayer(DEATHX + Misc.random(3), DEATHY + Misc.random(3), 0);
    				if(clanWar.deadPlayers.contains(c)) {
    					clanWar.deadPlayers.remove(c);
    				}
    				//removePlayer(c, clanWar);
    				return false;
    			case 28213:
    				int x = 0;
    				int y = 0;
    				if(c.clanWarId == -1) {
    					c.sendMessage("You are not in a Clan.");
    					return false;
    				}
    				if(clanWar.deadPlayers.contains(c)) {
    					clanWar.deadPlayers.remove(c);
    				}
    				if(Server.clanChat.clans[c.clanId].name == clanWar.getClan1()) {
    					x = CLAN1X;
    					y = CLAN1Y;
    					if(!clanWar.clan1Players.contains(c)) {
    						clanWar.clan1Players.add(c);
    					}
    				}
    				if(Server.clanChat.clans[c.clanId].name == clanWar.getClan2()) {
    					x = CLAN2X;
    					y = CLAN2Y;
    					if(!clanWar.clan2Players.contains(c)) {
    						clanWar.clan2Players.add(c);
    					}	
    				}
    				enterMatch(c, x, y);
    				return false;
    				
    		}
    		return false;
    	}
    	
    	public void removePlayer(Client c, ClanWar c2) {
    		if(c2.clan1Players.contains(c)) {
    			c2.clan1Players.remove(c);
    		} else if(c2.clan2Players.contains(c)) {
    			c2.clan2Players.remove(c);
    		}
    		if(c.inClanWars()) {
    			c.getPA().movePlayer(DEATHX, DEATHY, 0);
    		}
    	}
    	
    	public void startMatch(Client c, Client c2) {
    		int clanWarId = openSlot();
    		clanWars[clanWarId] = new ClanWar(c.playerId, c2.playerId, ((c.playerId + c2.playerId) * 4), clanWarId, 120);
    		for (int j = 0; j < Server.clanChat.clans[c.clanId].members.length; j++) {
    			if (Server.clanChat.clans[c.clanId].members[j] <= 0)
    				continue;
    			if (PlayerHandler.players[Server.clanChat.clans[c.clanId].members[j]] != null) {
    				Client clan = (Client)PlayerHandler.players[Server.clanChat.clans[c.clanId].members[j]];
    				clan.clanWarId = clanWarId;
    				clan.sendMessage(MESSAGE1);
    				clan.sendMessage(MESSAGE2);
    				clan.sendMessage(MESSAGE3);
    				clan.clanWarId = c.clanWarId = c2.clanWarId = clanWarId;
    				clan.sendMessage(" "+clan.playerName+":"+clan.clanWarId);
    			}
    		}
    		for (int j = 0; j < Server.clanChat.clans[c2.clanId].members.length; j++) {
    			if (Server.clanChat.clans[c2.clanId].members[j] <= 0)
    				continue;
    			if (PlayerHandler.players[Server.clanChat.clans[c2.clanId].members[j]] != null) {
    				Client clan = (Client)PlayerHandler.players[Server.clanChat.clans[c2.clanId].members[j]];
    				clan.clanWarId = clanWarId;
    				clan.sendMessage(MESSAGE1);
    				clan.sendMessage(MESSAGE2);
    				clan.sendMessage(MESSAGE3);
    				clan.clanWarId = c.clanWarId = c2.clanWarId = clanWarId;
    				clan.sendMessage(" "+clan.playerName+":"+clan.clanWarId);
    			}
    		}
    		if(c != null) {
    			c.sendMessage("Clan Wars request accepted.");
    			enterMatch(c, CLAN1X, CLAN1Y);
    			clanWars[clanWarId].clan1Players.add(c);
    		}
    		if(c2 != null) {
    			c2.sendMessage("Clan Wars request accepted.");
    			enterMatch(c2, CLAN2X, CLAN2Y);
    			clanWars[clanWarId].clan2Players.add(c2);
    		}
    		clanWars[clanWarId].setClan1(Server.clanChat.clans[c.clanId].name);
    		clanWars[clanWarId].setClan2(Server.clanChat.clans[c2.clanId].name);
    		clanWars[clanWarId].setWallTime(120);
    		wallTimer(clanWars[clanWarId]);
    		walls(clanWars[clanWarId], WALL_ID, clanWars[clanWarId].getHeight());
    		c.sendMessage("Height level is gonna be: "+clanWars[c.clanWarId].getHeight());
    		c2.sendMessage("Height level is gonna be: "+clanWars[c.clanWarId].getHeight());
    	}
    	
    	public void enterMatch(Client c, int x, int y) {
    		ClanWar clanWar = clanWars[c.clanWarId];
    		c.getPA().movePlayer(x, y, clanWar.getHeight());
    		c.getPA().closeAllWindows();
    		if(!wallDown(clanWar)) {
    			walls(clanWar, WALL_ID, clanWar.getHeight());
    		}
    	}
    	
    	public int openSlot() {	
    		for (int j = 0; j < clanWars.length; j++) {
    			if (clanWars[j] == null || clanWars[j].getId() == -1)
    				return j;
    		}
    		return -1;
    	}
    	
    	public void walls(ClanWar c, int id, int height) {
    		if(height == c.getHeight()) {
    			for (int i = 2884; i < 2925; i++) {
    				new Object(id, i, 5666, height, -1, 10, id, 0);
    			}
    			for (int i = 2935; i < 2940; i++) {
    				new Object(id, i, 5666, height, -1, 10, id, 0);
    			}
    		}
    		System.out.println("Spawning walls at height: "+c.getHeight());
    	}
    	
    
    	public void resetChallengeVariables(Client c) {
    		Client c2 = (Client) PlayerHandler.players[c.clanWarOpponent];
    		if(c != null && c2 != null) {
    			c2.chalAccepted = false;
    			c.chalAccepted = false;
    			c2.chalInterface = false;
    			c.chalInterface = false;
    		}
    	}
    	
    	public void checkLeave(Client c, ClanWar c2) {
    		if(Server.clanChat.clans[c.clanId].owner.equalsIgnoreCase(c.playerName)) {
    			Server.clanChat.messageToClan("The other team's leader has forfeited.", PlayerHandler.players[c.clanWarOpponent].clanId, true);
    			Server.clanChat.messageToClan("Your owner left the Clan Chat. The match was forfeited.", c.clanId, true);
    			if(c2.clan1Players.contains(c))
    				handleWin("clan2", c2);
    			else if(c2.clan2Players.contains(c))
    				handleWin("clan1", c2);
    		}
    		removePlayer(c, c2);
    	}
    	
    	public void updateInterface(Client c, ClanWar c2) {
    		try {
    			Client clan1 = (Client) PlayerHandler.players[c2.getOtherId()];
    			Client clan2 = (Client) PlayerHandler.players[c2.getId()];
    			if (c.inClanWars()) {
    				if(!wallDown(c2)) {
    					//if(Server.clanChat.clans[c.clanId].name.equals(c2.getClan1())) {
    						/*c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[c.clanId].name)+"", 3502);
    						c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3503);
    						c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(c.clanId), 3505);
    						c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(clan1.clanId), 3506);*/
    						c.getPA().sendFrame126("My Clan", 3502);
    						c.getPA().sendFrame126("Opposing", 3503);
    						c.getPA().sendFrame126(" ", 3505);
    						c.getPA().sendFrame126(" ", 3506);
    					//}
    					//if(Server.clanChat.clans[c.clanId].name.equals(c2.getClan2())) {
    						/*c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3502);
    						c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan2.clanId].name)+"", 3503);
    						c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(clan1.clanId), 3505);
    						c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(c.clanId), 3506);*/
    						c.getPA().sendFrame126("My Clan", 3502);
    						c.getPA().sendFrame126("Opposing", 3503);
    						c.getPA().sendFrame126(" ", 3505);
    						c.getPA().sendFrame126(" ", 3506);
    					//}
    					c.getPA().sendFrame126(Misc.formatTime(c2.getWallTime())+"", 3507);
    					if (c2.getWallTime() <= 3) {
    						c.getPA().sendFrame126("@red@GET READY!", 3507);
    					}
    				} else {
    					//if(Server.clanChat.clans[c.clanId].name.equals(c2.getClan1())) {
    					if(c2.clan1Players.contains(c)) {
    						if(c.clanId > 0) {
    							c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[c.clanId].name)+"", 3502);
    							c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3503);
    						} else {
    							c.getPA().sendFrame126("My Clan", 3502);
    							c.getPA().sendFrame126("Opposing", 3503);
    						}
    						c.getPA().sendFrame126("         Currently:", 3504);
    						c.getPA().sendFrame126("Kills: "+c2.getClan1Kills(), 3505);
    						c.getPA().sendFrame126("Kills: "+c2.getClan2Kills(), 3506);
    						if(c2.getClan1Kills() > c2.getClan2Kills()) {
    							c.getPA().sendFrame126("Winning!", 3507);
    						} else if(c2.getClan1Kills() == c2.getClan2Kills()) {
    							c.getPA().sendFrame126("Tied!", 3507);
    						} else {
    							c.getPA().sendFrame126("@red@Losing!", 3507);
    						}
    					}
    					if(c2.clan2Players.contains(c)) {
    						if(c.clanId > 0) {
    							c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3502);
    							c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan2.clanId].name)+"", 3503);
    						} else {
    							c.getPA().sendFrame126("My Clan", 3502);
    							c.getPA().sendFrame126("Opposing", 3503);
    						}
    						c.getPA().sendFrame126("         Currently:", 3504);
    						c.getPA().sendFrame126("Kills: "+c2.getClan2Kills(), 3505);
    						c.getPA().sendFrame126("Kills: "+c2.getClan1Kills(), 3506);
    						if(c2.getClan2Kills() > c2.getClan1Kills()) {
    							c.getPA().sendFrame126("Winning!", 3507);
    						} else if(c2.getClan1Kills() == c2.getClan2Kills()) {
    							c.getPA().sendFrame126("Tied!", 3507);
    						} else {	
    							c.getPA().sendFrame126("@red@Losing!", 3507);
    						}
    					}
    				}
    				
    			}
    		}catch(Exception e) {
    			e.printStackTrace();
    		}
    	}
    	
    	public boolean wallDown(ClanWar c) {
    		if(c == null) {
    			return false;
    		}
    		return c.getWallTime() == -1;
    	}
    	
    }
    make a new class called ClanWarConstants and add this in it

    Code:
    package server.model.minigames.clanwars;
    
    public class ClanWarConstants {
    
    	/**
    	 * If only owners can challenge another clan
    	 * if set to true ANYONE in the clan will be able to
    	 */
    	public static final boolean OWNERS_ONLY = false;
    	
    	/**
    	 * The coords that the 1st clan spawns at
    	 */
    	public static final int CLAN1X = 2930, CLAN1Y = 5686;
    	
    	/**
    	 * The coords that the 2nd clan spawns at
    	 */
    	public static final int CLAN2X = 2892, CLAN2Y = 5641;
    	
    	/**
    	 * The amount of kills needed to win
    	 */
    	public static final int MAX_KILLS = 3;
    	
    	/**
    	 * The object ID of the wall that spawns
    	 */
    	public static final int WALL_ID = 28176;
    	
    	/**
    	 * The x coord you spawn at when you die and are in clan1
    	 */
    	public static final int DEATH_CLAN1X = 2930;
    	
    	/**
    	 * The y coord you spawn at when you die and are in clan1
    	 */
    	public static final int DEATH_CLAN1Y = 5666;
    	
    	/**
    	 * The x coord you spawn at when you die and are in clan2
    	 */
    	public static final int DEATH_CLAN2X = 2893;
    	
    	/**
    	 * The y coord you spawn at when you die and are in clan2
    	 */
    	public static final int DEATH_CLAN2Y = 5660;
    	
    	/**
    	 * X coord you spawn around when the match is over
    	 */
    	public static final int DEATHX = 2983;
    	
    	/**
    	 * Y coord you spawn around when the match is over
    	 */
    	public static final int DEATHY = 9674;
    	
    	/**
    	 * First message sent when challenge is accepted
    	 */
    	public static final String MESSAGE1 =
    			"@red@Your clan has been challenged to a clan war!";
    
    	/**
    	 * Second message sent when challenge is accepted
    	 */
    	public static final String MESSAGE2 =
    			"@red@Step through the purple portal in the Challenge Hall.";
    	
    	/**
    	 * Third message sent when challenge is accepted
    	 */
    	public static final String MESSAGE3 =
    			"@red@Battle will commence in 2 minutes.";
    
    }
    and make a new class called ClanWar

    Code:
    package server.model.minigames.clanwars;
    
    import java.util.ArrayList;
    
    import server.model.players.Client;
    
    public class ClanWar {
    	
    	public ClanWar(int playerId, int otherPlayerId, int heightLevel, int clanWarId, int wallTime) {
    		this.playerId = playerId;
    		this.otherPlayerId = otherPlayerId;
    		this.heightLevel = heightLevel;
    		this.clanWarId = clanWarId;
    		this.wallTime = wallTime;
    	}
    	
    	public ArrayList<Client> deadPlayers = new ArrayList<Client>();
    	
    	public ArrayList<Client> clan1Players = new ArrayList<Client>();
    	
    	public ArrayList<Client> clan2Players = new ArrayList<Client>();
    	
    	private String clan1;
    	private String clan2;
    	
    	private int playerId;
    	private int otherPlayerId;
    	private int heightLevel;
    	private int clanWarId;
    	private int wallTime;
    	private int clan1Kills;
    	private int clan2Kills;
    	
    	public int getId() {
    		return playerId;
    	}
    	
    	public int getOtherId() {
    		return otherPlayerId;
    	}
    	
    	public int getHeight() {
    		return heightLevel;
    	}
    	
    	public int getWarId() {
    		return clanWarId;
    	}
    	
    	public int getWallTime() {
    		return wallTime;
    	}
    	
    	public int setWallTime(int time) {
    		return this.wallTime = time;
    	}
    
    	public String getClan2() {
    		return clan2;
    	}
    
    	public void setClan2(String clan2) {
    		this.clan2 = clan2;
    	}
    
    	public String getClan1() {
    		return clan1;
    	}
    
    	public void setClan1(String clan1) {
    		this.clan1 = clan1;
    	}
    
    	public int getClan1Kills() {
    		return clan1Kills;
    	}
    
    	public void setClan1Kills(int clan1Kills) {
    		this.clan1Kills = clan1Kills;
    	}
    	
    	public int getClan2Kills() {
    		return clan2Kills;
    	}
    
    	public void setClan2Kills(int clan2Kills) {
    		this.clan2Kills = clan2Kills;
    	}
    }
    The above class is just what i used to hold information needed for the clan war.

    open client class and add these pieces of code in client class

    Code:
    /**
         * Clan wars
         */
    	private ClanWarHandler cw = new ClanWarHandler(this);
    	public ClanWarHandler getClanWars() {
    		return cw;
    	}
    add this in initialize

    Code:
    if(inClanWars()) {
    				getPA().movePlayer(ClanWarConstants.DEATHX + Misc.random(3), ClanWarConstants.DEATHY + Misc.random(3), 0);
    			}
    add this in process()

    Code:
    if(this.inClanWarsLobby()) {
    			getPA().showOption(3, 1, "Challenge", 1);
    		}
    		if(inClanWars()) {
    			try {
    				if(this.clanWarId != -1) {	
    					if(getClanWars().wallDown(ClanWarHandler.clanWars[this.clanWarId])) {
    						getPA().showOption(3, 1, "Attack", 1);
    					} else {
    						getPA().showOption(3, 1, "null", 1);
    					}
    					getPA().walkableInterface(3500);
    					getClanWars().updateInterface(this, ClanWarHandler.clanWars[this.clanWarId]);
    				}
    			} catch(Exception e){
    				e.printStackTrace();
    			}	
    		}
    add this at the top of clickingButtons class

    Code:
    if (c.getClanWars().handleButtons(c, actionButtonId)) {
    			return;
    		}
    go into CombatAssitant and

    search for checkReqs() and put this in it

    Code:
    if(c.inClanWars()) {
    			if(!c.getClanWars().wallDown(ClanWarHandler.clanWars[c.clanId])) {
    				c.sendMessage("Reseting?");
    				c.getCombat().resetPlayerAttack();
    			}
    			if(ClanWarHandler.clanWars[c.clanWarId].clan1Players.contains(c) && ClanWarHandler.clanWars[c.clanWarId].clan1Players.contains(PlayerHandler.players[c.playerIndex])) {
    				c.sendMessage("Reseting?");
    				c.getCombat().resetPlayerAttack();
    				return false;
    			}
    			if(ClanWarHandler.clanWars[c.clanWarId].clan2Players.contains(c) && ClanWarHandler.clanWars[c.clanWarId].clan2Players.contains(PlayerHandler.players[c.playerIndex])) {
    				c.sendMessage("Reseting?");
    				c.getCombat().resetPlayerAttack();
    				return false;
    			}
    		}
    
    if (PlayerHandler.players[c.playerIndex].inPits || c.inClanWars())
    			return true;
    
    if(c.inClanWarsLobby()) {
    			c.sendMessage("Reseting?");
    			c.getClanWars().requestChallenge(c, c.playerIndex);
    			c.getCombat().resetPlayerAttack();
    			return false;
    		}
    open player.java and add this

    Code:
    /**
    	 * Clan wars
    	 */
    	
    	public int clanWarOpponent, clanWarId = -1;
    	public boolean chalAccepted, chalInterface;
    	
    	public boolean inClanWars() {
    		if (absX > 2880 && absX < 2943 && absY > 5632 && absY < 5695) {
    			return true;
    		}
    		return false;
    	}
    
    	public boolean inClanWarsLobby() {
    		if (absX > 2979 && absX < 3006 && absY > 9665 && absY < 9693) {
    			return true;
    		}
    		return false;
    	}
    	
    	public boolean inClanWarsDead() {
    		if (absX > 2926 && absX < 2933 && absY > 5663 && absY < 5670
    				|| absX > 2890 && absX < 2897 && absY > 5657 && absY < 5664) {
    			return true;
    		}
    		return false;
    	}


    You might need to add these codes in the opposite methods that I say (E.G giveLife and applyDead) cause it seems different for servers i've added this on

    in applydead

    Code:
    if(c.inClanWars()) {
    					c.getClanWars().handleKill(c, o);
    				}
    and in giveLife

    Code:
    if (c.inClanWars()) {
    			c.getClanWars().handleDeath(c);
    		}
    and this also in givelife somewhere...

    Code:
    if(ClanWarHandler.clanWars[c.clanWarId].clan1Players.contains(c)) {
    					movePlayer(ClanWarConstants.DEATH_CLAN1X, ClanWarConstants.DEATH_CLAN1Y, ClanWarHandler.clanWars[c.clanWarId].getHeight());
    				} else {
    					movePlayer(ClanWarConstants.DEATH_CLAN2X, ClanWarConstants.DEATH_CLAN2Y, ClanWarHandler.clanWars[c.clanWarId].getHeight());
    				}
    				if(ClanWarHandler.clanWars[c.clanWarId].clan2Players.contains(c)) {
    					if(ClanWarHandler.clanWars[c.clanWarId].getClan1Kills() >= ClanWarConstants.MAX_KILLS) {
    						c.sendMessage("called");
    						c.getClanWars().handleWin("clan1", ClanWarHandler.clanWars[c.clanWarId]);
    					}
    				} else if (ClanWarHandler.clanWars[c.clanWarId].clan1Players.contains(c)) {
    					if(ClanWarHandler.clanWars[c.clanWarId].getClan2Kills() >= ClanWarConstants.MAX_KILLS) {
    						c.sendMessage("called");
    						c.getClanWars().handleWin("clan2", ClanWarHandler.clanWars[c.clanWarId]);
    					}
    				}

    in ClanChatHandler

    leaveClan() replace this, or rip the code u need

    Code:
    public void leaveClan(int playerId, int clanId) {
    		if (clanId < 0) {
    			Client c = (Client)PlayerHandler.players[playerId];
    			c.sendMessage("You are not in a clan.");
    			return;		
    		}
    		if (clans[clanId] != null) {
    			if (PlayerHandler.players[playerId] != null) {
    				Client c = (Client)PlayerHandler.players[playerId];
    				if(c.clanWarId != -1) {
    					if(ClanWarHandler.clanWars[c.clanWarId].getId() == c.playerId) {
    						c.sendMessage("Called");
    						c.getClanWars().checkLeave(c, ClanWarHandler.clanWars[c.clanWarId]);
    					} else if(ClanWarHandler.clanWars[c.clanWarId].getOtherId() == c.playerId) {
    						c.sendMessage("Called1");
    						c.getClanWars().checkLeave(c, ClanWarHandler.clanWars[c.clanWarId]);
    					}
    				}
    				PlayerHandler.players[playerId].clanId = -1;
    				c.sendMessage("You have left the clan.");
    				c.getPA().clearClanChat();
    				if(c.clanWarId > -1) {
    					c.getClanWars().removePlayer(c, ClanWarHandler.clanWars[c.clanWarId]);
    				}
    				for (int j = 0; j < clans[clanId].members.length; j++) {
    					if (clans[clanId].members[j] == playerId) {
    						clans[clanId].members[j] = -1;
    					}
    				}
    				//for (int j = 0; j < clans[clanId].members.length; j++) {
    					//Client c2 = (Client)PlayerHandler.players[clans[clanId].members[j]];
    					//c2.sendMessage(c.playerName+" has left the clan.");
    				//}
    			}
    			updateClanChat(clanId);
    		} else {
    			Client c = (Client)PlayerHandler.players[playerId];
    			PlayerHandler.players[playerId].clanId = -1;
    			c.sendMessage("You are not in a clan.");
    		}
    	}

    and lastly in ActionHandler add this at the top

    Code:
    if(c.getClanWars().handleObjects(c, objectType)) {
    			return;
    		}
    dont complain about conventions cuz it ****s up when i copy from eclipse onto r-s


    dont post errors cuz idc lol
    Looks amazing, and Happy Birthday!
    Reply With Quote  
     

  9. #6  
    Registered Member
    Alpi's Avatar
    Join Date
    Jun 2011
    Age
    28
    Posts
    1,191
    Thanks given
    212
    Thanks received
    285
    Rep Power
    148
    Nice release faggot. Happy birthmas btw.
    Reply With Quote  
     

  10. Thankful user:


  11. #7  
    plz dont take my wizard mind bombs Women's Avatar
    Join Date
    Mar 2010
    Posts
    1,881
    Thanks given
    724
    Thanks received
    1,162
    Rep Power
    4763
    if you're gonna quote the whole ****ing thread put it in a spoiler plz
    Reply With Quote  
     

  12. Thankful user:


  13. #8  
    Ex-Staff

    Koy's Avatar
    Join Date
    Oct 2010
    Posts
    1,871
    Thanks given
    1,299
    Thanks received
    910
    Rep Power
    5000
    If you're going to quote the entire ****ing thread, put it in a ****ing spoiler.
    Reply With Quote  
     

  14. #9  
    Registered Member Chars's Avatar
    Join Date
    Aug 2013
    Posts
    142
    Thanks given
    5
    Thanks received
    13
    Rep Power
    58
    Great release, I love this! And also Happy Birthday to you. Hope you have a good one.
    Reply With Quote  
     

  15. #10  
    plz dont take my wizard mind bombs Women's Avatar
    Join Date
    Mar 2010
    Posts
    1,881
    Thanks given
    724
    Thanks received
    1,162
    Rep Power
    4763
    Quote Originally Posted by Koy View Post
    If you're going to quote the entire ****ing thread, put it in a ****ing spoiler.
    LOL that is some creepy shit m8

    thnx every1 for the birthday wishes
    Reply With Quote  
     

Page 1 of 5 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] Clan Wars Portals
    By Karma_K in forum Help
    Replies: 16
    Last Post: 03-04-2013, 09:35 AM
  2. [PI] Clan Wars
    By Halo99Elite in forum Help
    Replies: 6
    Last Post: 02-27-2013, 04:56 AM
  3. Replies: 55
    Last Post: 06-12-2012, 12:29 AM
  4. Selling Clan Wars for PI
    By Women in forum Selling
    Replies: 37
    Last Post: 04-20-2012, 12:48 PM
  5. [pi/dspk] clan wars
    By x coder chase x in forum Help
    Replies: 3
    Last Post: 01-01-2012, 08:06 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
  •