Thread: Hunger Games base 718+

Results 1 to 6 of 6
  1. #1 Hunger Games base 718+ 
    Registered Member
    Join Date
    Nov 2013
    Posts
    815
    Thanks given
    111
    Thanks received
    109
    Rep Power
    14
    Began this base for a server and it wasn't completed so here the base is
    (This is a snippet so not everything is added)
    Spoiler for functions:
    - Item Spawning
    - Npc Spawning
    - Dangerous area
    - Sending messages
    - Lobby
    - Starting stations
    - End Event

    Spoiler for How it was planned to work:

    /**
    * MAIN FOCUS OF THE GAME,
    * EVENT PLAYERS MUST SURVIVE THE HUNGER GAMES.
    *
    * WAYS OF SURVIVING?
    * - COLLECT RESOURCES (FOOD, TOOLS)
    * - MAYBE INVINCIBILITY FOR 10 SECONDS (HARD AND RARE TO OBTAIN)
    * - PANIC TABS (CAN BE MADE VIA COLLECTING A BUNCH OF RESOURCES)
    * INSTA TELEPORTS FROM TARGETS TO A SAFE AREA.
    *
    * HOW TO COLLECT RESOURCES?
    * - RANDOM SPAWNS EVERY (X) AMOUNT OF TIME
    * - ITEMS SUCH AS KNIVES, CHISELS AND OTHERS NEEDED FOR SKILLING WILL RANDOMLY SPAWN
    * USE THESE ITEMS ^ ^ ^ TO GENERATE YOUR OWN FOOD, WATER ETC..
    *
    * GOAL?
    * BE THE LAST GAMER STANDING. KILL YOUR ENEMIES CU.
    *
    * BOUNDRIES?
    * ENTERING THE MAIN AREA (DANGEROUS) WILL HIT THE PLAYER UNTIL HE HIDES IN THE "SAFE SPOT"
    * - "SAFE" SPOT IS GUARDED WITH CUSTOM NPCS
    * - "SAFE" SPOT IS WHERE THE BIG RESOURCE PACKAGES WILL BE
    * - NPC GUARDING THE "SAFE" SPOT WILL HAVE UNLIMITED HP SO THE NPC IS ALWAYS GUARDING.
    * - NPC WILL HAVE CUSTOM FIGHTING SCRIPTS MAYBE? : NPC WILL HIT HARD.
    *
    * MISC
    * - MINIMAP DOTS ARE OFF SO CONTESTANTS CAN'T SEE EACH OTHER FROM A DISTANCE THROUGH THE MINIMAP
    * - TRADE, REQUEST ASSIST, STATS, ETC ARE ALL TOGGLED (OFF)
    * - ORB OF PROTECTION IS NEEDED FOR PROTECTION FROM HYDRATION, ELSE CAUSES POISON.
    * - MAKING ITEMS WILL BE SAME AS I.E FLETCHING LOGS > BOW > STRING : FLETCHING LOGS > HEADLESS ARROWS > TIP.
    * - RESOURCE SPAWNS (PILE OF CERTAIN RESOURCES)
    *
    * STABILITY
    * - NO OVERPOWERED WEAPONS WHAT SO EVER K.
    * - AS THE MAIN FOCUS IS SURVIVING NOT ALOT OF FOOD SPAWNS WILL BE ADDED IN-EVENT.
    * - 1-2 PILES OF FOOD MAX. "@" 5 MINUTES AND "@" 10 MINUTES AFTER GAME IS STARTED. OTHER FOODS ARE GENERATED VIA FISHING.
    * - FOR THE FIRST 2-4 MINUTES IT IS A PVP FREE ZONE. GAMERS CAN RUN AROUND AND EXLPORE THE LOCATION.
    *
    * FUTURE PLANS (AFTER LIVE RELEASE)
    * - MULTIPLE PLAYING GROUNDS. (AUTOMATICALLY CHOOSES A RANDOM MAP)
    * - TEAM A vs TEAM B
    * - TRAPS
    * - GROUP INVENTORY ONLY WHEN IT IS TEAM A vs TEAM B
    *
    *
    */


    Code:
    package com.foxtrot.game.minigames.events;
    
    import java.util.LinkedList;
    
    
    import com.foxtrot.game.player.Player;
    import com.foxtrot.game.item.Item;
    import com.foxtrot.game.item.floor.FloorItemManager;
    import com.foxtrot.game.minigames.events.Hunger;
    import com.foxtrot.utils.Logger;
    import com.foxtrot.utils.Utils;
    import com.foxtrot.game.World;
    import com.foxtrot.game.WorldTile;
    
    public final class Hunger {
    	private static final LinkedList<Player> lobbyevent = new LinkedList<Player>();
    	private static final LinkedList<Player> eventplayers = new LinkedList<Player>();
    	private static long eventTimer;
    	private static long startTime;
    	public static final WorldTile LOBBY = new WorldTile(2738, 5081, 0); // needs to be changed (WAS DONE FOR TESTING)
    	private static int PLAYERS_NEEDED = 1;
    	
    	/**
    	 * MAIN FOCUS OF THE GAME,
    	 * EVENT PLAYERS MUST SURVIVE THE HUNGER GAMES.
    	 * 
    	 * WAYS OF SURVIVING?
    	 * - COLLECT RESOURCES (FOOD, TOOLS)
    	 * - MAYBE INVINCIBILITY FOR 10 SECONDS (HARD AND RARE TO OBTAIN)
    	 * - PANIC TABS (CAN BE MADE VIA COLLECTING A BUNCH OF RESOURCES)
    	 * INSTA TELEPORTS FROM TARGETS TO A SAFE AREA.
    	 * 
    	 * HOW TO COLLECT RESOURCES?
    	 * - RANDOM SPAWNS EVERY (X) AMOUNT OF TIME
    	 * - ITEMS SUCH AS KNIVES, CHISELS AND OTHERS NEEDED FOR SKILLING WILL RANDOMLY SPAWN
    	 * USE THESE ITEMS ^ ^ ^ TO GENERATE YOUR OWN FOOD, WATER ETC..
    	 * 
    	 * GOAL?
    	 * BE THE LAST GAMER STANDING. KILL YOUR ENEMIES CU.
    	 * 
    	 * BOUNDRIES?
    	 * ENTERING THE MAIN AREA (DANGEROUS) WILL HIT THE PLAYER UNTIL HE HIDES IN THE "SAFE SPOT"
    	 * - "SAFE" SPOT IS GUARDED WITH CUSTOM NPCS
    	 * - "SAFE" SPOT IS WHERE THE BIG RESOURCE PACKAGES WILL BE
    	 * - NPC GUARDING THE "SAFE" SPOT WILL HAVE UNLIMITED HP SO THE NPC IS ALWAYS GUARDING.
    	 * - NPC WILL HAVE CUSTOM FIGHTING SCRIPTS MAYBE? : NPC WILL HIT HARD.
    	 * 
    	 * MISC
    	 * - MINIMAP DOTS ARE OFF SO CONTESTANTS CAN'T SEE EACH OTHER FROM A DISTANCE THROUGH THE MINIMAP
    	 * - TRADE, REQUEST ASSIST, STATS, ETC ARE ALL TOGGLED (OFF)
    	 * - ORB OF PROTECTION IS NEEDED FOR PROTECTION FROM HYDRATION, ELSE CAUSES POISON.
    	 * - MAKING ITEMS WILL BE SAME AS I.E FLETCHING LOGS > BOW > STRING : FLETCHING LOGS > HEADLESS ARROWS > TIP.
    	 * - RESOURCE SPAWNS (PILE OF CERTAIN RESOURCES)
    	 * 
    	 * STABILITY
    	 * - NO OVERPOWERED WEAPONS WHAT SO EVER K.
    	 * - AS THE MAIN FOCUS IS SURVIVING NOT ALOT OF FOOD SPAWNS WILL BE ADDED IN-EVENT.
    	 * - 1-2 PILES OF FOOD MAX. "@" 5 MINUTES AND "@" 10 MINUTES AFTER GAME IS STARTED. OTHER FOODS ARE GENERATED VIA FISHING.
    	 * - FOR THE FIRST 2-4 MINUTES IT IS A PVP FREE ZONE. GAMERS CAN RUN AROUND AND EXLPORE THE LOCATION.
    	 * 
    	 * FUTURE PLANS (AFTER LIVE RELEASE)
    	 * - MULTIPLE PLAYING GROUNDS. (AUTOMATICALLY CHOOSES A RANDOM MAP)
    	 * - TEAM A vs TEAM B
    	 * - TRAPS
    	 * - GROUP INVENTORY ONLY WHEN IT IS TEAM A vs TEAM B
    	 * 
    	 * 
    	 */
    	
    	
    	/** SPAWNING STATIONS
    	 * 
    	 */
    	public static final WorldTile[] TELEPORTS = { new WorldTile(0, 0, 0),
    		new WorldTile(0, 0, 0), new WorldTile(0, 0, 0),
    		new WorldTile(0, 0, 0), new WorldTile(0, 0, 0),
    		new WorldTile(0, 0, 0), new WorldTile(0, 0, 0),
    		new WorldTile(0, 0, 0)};
    	
    	/**
    	 * EVENT START AND END
    	 */
    	public static void startEvent() {
    		setEventStarted(true);
    		Logger.log("HungerGames", "Game started");
    		World.sendWorldMessage("<col=ff0000>The Hunger Games event has just started!");
    		for (Player eventplayers : geteventplayers()) {
    			eventTimer = Utils.currentTimeMillis();
    			eventplayers.setForceMultiArea(true);
    			eventplayers.setCanPvp(true);
    			/**
    			 * DISABLE RIGHT CLICK FEATURES ON PLAYERS (TODO)
    			 */
    		}
    		}
    	
    
    	public static void endGame() {
    		for(Player contribute: geteventplayers()) {
    			if(contribute == null)
    				continue;
    			Player winner = (Player) getEventPlayers().poll();
    			if(winner == null)
    				continue;
    			contribute.setNextWorldTile(LOBBY);
    			winner.setNextWorldTile(LOBBY);
    			World.sendWorldMessage("The Hunger Games has finished, winner was "+winner.getDisplayName()+"");
    			winner.sm("Congratulations! You've won the Event!");
    			winner.getInventory().addItem(995, 500000);
    			contribute.sm("<col=f0470a>Thanks for contributing!</col>");
    			contribute.getInventory().addItem(995, 500);
    			setEventStarted(false);
    			contribute.setCanPvp(false);
    			contribute.setForceMultiArea(false);
    			winner.setCanPvp(false);
    			winner.setForceMultiArea(false);
    		
    		}
    	}
    	/**
    	 * EVENT START AND END - END
    	 */
    	/**
    	 * ALL SPAWNS WITHIN THE GAME
    	 * 
    	 */
    	public static final int[] FOOD = {1
    		 
    		 };
    	public static final int[] POTS = {1
    		
    		 }; 
    	public static final int [] WP1 = {//WEAPON PIECES 1st half
    		
    	};
    	public static final int [] WP2 = {//WEAPON PIECES 2nd half
    		
    	};
    	public static final int [] NPC_SPAWNS = {
    		
    	};
    	public static final int [] FISHING_SPOTS = {
    	
    	};
    	public static final int [] TOOL_SPAWNS = {//knife, chisel etc..
    	
    	};
    	/**
    	 * ALL SPAWNS WITHIN THE GAME - END
    	 */
    	
    /*
     * IMPORTANT INTS AND BOOLEANS
     * 
     */
    /**
     * USED COORDS
     */
    		 public static final int maxx = 2755;
    		 public static final int minx = 2732;
    		 public static final int maxy = 5101;
    		 public static final int miny = 5071;
    		 /**
    		  * USED COORDS - END
    		  */
    		 static int fspawn = 0; // in use ( food spawn count )
    		 static int fpspawn = 0; //in use ( food and potions spawn count )
    		 static int Fsm = 0; // in use (food spawn message count)
    		 static int FPsm = 0; // in use (food and pot spawn message count)
    		 private static boolean fspawn1 = false; // in use 
    		private static boolean fspawn2 = false; //in use
    		private static boolean wmess = false; //in use
    		private static boolean npcSpawn = false; // in use
    		private static boolean eventStarted = false; // in use DONT REMOVE
    		/*
    		 * END IMPORTANT INTS AND BOOLEANS
    		 */
    		/**
    		 * TOOL SPAWNS
    		 */
    		
    		public static void processtoolSpawns() {
    			
    		}
    		
    		public static void processresourceSpawns() {
    			
    		}
    		 /**
    		  * EVENT PROCESSING FOOD
    		  * 
    		  */
    		 public static void processFoodSpawns(final Player player, int item) {
    			 for (Player gamers : Hunger.geteventplayers()) {
    				 //SPAWN TIMES NEED CHANGING
    			if(getEventTimer() + 10000 < Utils.currentTimeMillis() && Hunger.isEventStarted() && !fspawn1) {
    		    	FloorItemManager.addGroundItem(new Item(FOOD[Utils.random(FOOD.length)], Utils.random(3, 6)), 
    		    			new WorldTile(Utils.random(minx, maxx), Utils.random(miny, maxy), 0), player, true, 180, true);
    		    	fspawn ++;
    			 }	
    			 
    		 if (getEventTimer() + 10000 < Utils.currentTimeMillis() && fspawn == 5 && Hunger.isEventStarted() && Fsm == 0) {
    		 gamers.sm("Food has spawned within the game.");
    		 Fsm++;
    		 fspawn1 = true;
    			 }
    			 
    		  if (getEventTimer() + 20000 < Utils.currentTimeMillis() && Hunger.isEventStarted() && !fspawn2 ) {
    				 FloorItemManager.addGroundItem(new Item(FOOD[Utils.random(FOOD.length)], Utils.random(2, 4)), 
    			    			new WorldTile(Utils.random(minx, maxx), Utils.random(miny, maxy), 0), player, true, 180, true);
    				 FloorItemManager.addGroundItem(new Item(POTS[Utils.random(POTS.length)], Utils.random(2, 4)), 
    			    			new WorldTile(Utils.random(minx, maxx), Utils.random(miny, maxy), 0), player, true, 180, true);
    				fpspawn ++;
    			    	
    			 }
    		 if (getEventTimer() + 20000 < Utils.currentTimeMillis() && fpspawn == 4 && Hunger.isEventStarted() && FPsm == 0) {
    				 gamers.sm("Potions and food have spawned within the game.");
    				 FPsm++;
    				 fspawn2 = true;
    			 }
    			 }
    		 }
    		 
    		 /**
    		  * EVENT PROCESSING NPC SPAWNS
    		  * 
    		  */
    			 public static void processNpcSpawns() {
    				 //NEED TO MAKE A CUSTOM NPC WEARING ARMOUR SUITABLE FOR THE MINIGAME.
    				 //SPAWN TIMES NEED CHANGING
    				 if (getEventTimer() + 10000 < Utils.currentTimeMillis() && Hunger.isEventStarted() && !npcSpawn) {
    				World.spawnNPC(1, new WorldTile(2731, 5082, 0), -1, true, true);
    				npcSpawn = true;
    			 }
    			 }
    			 /**
    			  * EVENT PROCESSING NPC SPAWNS - END
    			  * 
    			  */
    		 /**
    		  * EVENT PROCESSING FOOD - END
    		  * 
    		  */
    		 /**
    		  * EVENT PROCESSING MESSAGES 
    		  * 
    		  */
    	public static void processWorldMessage(){
    		 if (Hunger.isEventStarted() && !wmess) {
    			 for (Player gamers : Hunger.geteventplayers()) {
    				 gamers.sm("<col=ff0000>[</col>HUNGER GAMES<col=ff0000>]</col> Survive within the first 30 seconds before consumables are input.");
    				 World.sendWorldMessage("<col=ff0000>[</col>HUNGER GAMES<col=ff0000>]</col> Challengers have entered the Hunger Games!");
    				 wmess = true;
    		 }
    		 }
    	}
    	 /**
    	  * EVENT PROCESSING MESSAGES - END
    	  * 
    	  */
    	
    		 /**
    		  * EVENT PROCESSING EVENT
    		  * 
    		  */
    	public static void processEvent() {
    		//left out for testing purposes
    		
    		/*if (Hunger.isEventStarted()) {
    			if(geteventplayers().size() == 1) {
    				endGame();
    			}*/
    		
    			if (EventPlayers().size() >= 5 && getEventTimer() + 3.6e+6 < Utils.currentTimeMillis()) { //greater than 5 players, game is 1 hour
    				for (Player gamers : Hunger.geteventplayers()) {
    					gamers.sm("Sorry! Time has ran out!");
    					World.sendWorldMessage("The Hunger Games have ended, with no winner!");
    					endGame();
    				}
    			}
    				if (EventPlayers().size() < 5 && getEventTimer() + 1.8e+6 < Utils.currentTimeMillis()) { //less than 5 players, game is 30 mins 
    					for (Player gamers : Hunger.geteventplayers()) {
    						gamers.sm("Sorry! Time has ran out!");
    						World.sendWorldMessage("The Hunger Games have ended, with no winner!");
    						endGame();
    					}
    				}
    		
    		if(getlobbyEvent().size() < PLAYERS_NEEDED && !isEventStarted() && + 300000 < Utils.currentTimeMillis()) {
    			if(getStartTime() + 300000 < Utils.currentTimeMillis()) {
    				for(Player players: getlobbyEvent()) {
    					players.sm("Players ready for the Hunger Games: (<col=ff000>"+Hunger.getlobbyEvent().size()+"</col>)");
    					players.sm("There wasn't enough players in-time. Event Canelled.");
    					World.sendWorldMessage("Hunger Games, cancelle!");
    					Logger.log("EVENT 1","Event CANCELLED");
    					players.getControlerManager().removeControlerWithoutCheck();
    					setStartTime(Utils.currentTimeMillis());
    				}
    			}
    		}
    	 else if (getlobbyEvent().size() >= PLAYERS_NEEDED && !isEventStarted() && + 300000 < Utils.currentTimeMillis()) {
    			if(getStartTime() + 10000 < Utils.currentTimeMillis()) {
    				getEventPlayers().addAll(lobbyevent);
    				getlobbyEvent().removeAll(lobbyevent);
    				startEvent();
    			}	
    	}
    	}
    	
    	 /**
    	  * EVENT PROCESSING EVENT - END
    	  * 
    	  */
    	
    	
    	/**
    	 * 
    	 * OTHER SHIT
    	 */
    	public static void addEventPlayer(Player player) {
    		if(!geteventplayers().contains(player)) 
    			geteventplayers().add(player);
    	}
    	
    	public static void addLobbyPlayer(Player player) {//neccessary to use because it checks for
    		//the lobby already containing the player.
    		if(!getlobbyEvent().contains(player)) 
    			getlobbyEvent().add(player);
    	}
    	
    	public static void removeLobbyPlayer(Player player) {
    		getlobbyEvent().remove(player);
    	}
    	
    	public static void removeEventPlayer(Player player) {
    		getEventPlayers().remove(player);
    	}
    	public static LinkedList<Player> getlobbyEvent() {
    		return lobbyevent;
    	}
    	
    	public static long getStartTime() {
    		return startTime;
    	}
    	
    	
    	public static boolean isEventStarted() {
    		return eventStarted;
    	}
    	public static LinkedList<Player> getEventPlayers() {
    		return eventplayers;
    	}
    	public static LinkedList<Player> EventPlayers() {
    		return eventplayers;
    	}
    
    	public static void setEventStarted(boolean gameStarted) {
    		Hunger.eventStarted = gameStarted;
    	}
    	public static void setStartTime(long startTime) {
    		Hunger.startTime = startTime;
    	}
    	
    	public static long getEventTimer() {
    		return eventTimer;
    	}
    	public static LinkedList<Player> geteventplayers() {
    		return eventplayers;
    	}
    	/**
    	 * OTHER SHIT END
    	 */
    }
    Reply With Quote  
     

  2. Thankful user:


  3. #2  
    48 0x69

    Pax M's Avatar
    Join Date
    Oct 2013
    Posts
    2,008
    Thanks given
    36
    Thanks received
    488
    Rep Power
    2270
    Nice contribution.
    Reply With Quote  
     

  4. #3  
    Registered Member Rn Nick's Avatar
    Join Date
    Aug 2014
    Age
    25
    Posts
    65
    Thanks given
    14
    Thanks received
    14
    Rep Power
    11
    Good work from the one who gets cleared
    Reply With Quote  
     

  5. Thankful user:


  6. #4  
    Donator
    Black Widow's Avatar
    Join Date
    Oct 2014
    Posts
    74
    Thanks given
    2
    Thanks received
    2
    Rep Power
    0
    tom for president.
    Reply With Quote  
     

  7. #5  
    Computer Engineer
    Join Date
    Aug 2014
    Posts
    1,051
    Thanks given
    365
    Thanks received
    215
    Rep Power
    16
    Nice contribution.
    Reply With Quote  
     

  8. #6  
    Registered Member
    Join Date
    Mar 2015
    Posts
    22
    Thanks given
    23
    Thanks received
    0
    Rep Power
    11
    Nice contribution!
    May create a controller for this when you first start up an account.
    Hunger games to play lol.
    Out of 12 accounts only 1 will survive, the rest will be banned.
    Yeah that would suck.
    Reply With Quote  
     


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: 52
    Last Post: 03-04-2014, 12:37 PM
  2. Need testers for a hunger games base
    By the fuzziferus in forum Advertise
    Replies: 6
    Last Post: 02-27-2014, 04:10 PM
  3. Replies: 2
    Last Post: 03-23-2012, 09:22 PM
  4. (BASE) [PI] Assault Mini-Game (BASE)
    By Aymen in forum Tutorials
    Replies: 6
    Last Post: 02-16-2012, 07:34 AM
  5. Replies: 9
    Last Post: 10-23-2010, 08:25 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
  •