Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
- package net.sf.l2j.gameserver.model.entity.events;
- import java.util.List;
- import java.util.concurrent.ScheduledFuture;
- import javolution.util.FastList;
- import net.sf.l2j.gameserver.Announcements;
- import net.sf.l2j.gameserver.ThreadPoolManager;
- import net.sf.l2j.gameserver.instancemanager.TownManager;
- import net.sf.l2j.gameserver.model.L2World;
- import net.sf.l2j.gameserver.model.actor.L2Character;
- import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
- import net.sf.l2j.gameserver.model.zone.L2ZoneType;
- import net.sf.l2j.gameserver.util.Util;
- import net.sf.l2j.util.Rnd;
- /**
- *
- * @author AbsolutePower
- */
- public class HiddeSeek
- {
- static boolean started = false;
- final int timeToSearch = 6;
- final int waitinTimeForSearch = 1;
- final static int rewardId = 3470;
- final static int rewardAmount = 3;
- public static State state = State.INACTIVE;
- public static enum State{ INACTIVE,PICKING,SEARCHING}
- public static FastList<L2PcInstance> _players = new FastList<L2PcInstance>();
- public static L2PcInstance hidden = null;
- public class Task implements Runnable
- {
- @Override
- public void run()
- {
- if (state != State.INACTIVE || TvTEvent.isStarted() )
- {
- clear();
- return;
- }
- startHide();
- }
- }
- public void startHide()
- {
- Announce("Hidde Event Started! In 10 seconds a random player from Giran will be picked!");
- state = State.PICKING;
- wait(10,false);
- pickhidden();
- Announce("The event started someone in Giran is the Hidden!");
- Announce("You have 6 minutes to search for him.");
- wait(timeToSearch,true);
- while(state == State.SEARCHING)
- {
- Announce("One minute left! Still searching for him!");
- wait(waitinTimeForSearch,true);
- while(state == State.SEARCHING)
- {
- Announce("No one found the hidden. " + hidden + " was the hidden.");
- Announce(hidden + " rewarded because no one could not find him.");
- hidden.getInventory().addItem("Reward hidde", rewardId, rewardAmount, hidden, null);
- hidden.setIsImmobilized(false);
- clear();
- new HiddeSeek();
- }
- }
- }
- public static void Announce(String msg)
- {
- Announcements.announceToAll(msg);
- }
- static String _title ="";
- static void clearTitle()
- {
- _title=null;
- }
- static void saveTitle(String title)
- {
- _title = title;
- }
- final static String getTitle()
- {
- return _title;
- }
- public static void pickhidden()
- {
- state = State.SEARCHING;
- L2ZoneType zone = TownManager.getTown(9);
- for (L2Character character : zone.getCharactersInside())
- {
- if ((character instanceof L2PcInstance) && !((L2PcInstance) character).isInCombat() && !((L2PcInstance) character).isInParty() && !((L2PcInstance) character).isInOlympiadMode() && !((L2PcInstance) character).isCursedWeaponEquipped() && !(((L2PcInstance) character).isInStoreMode()))
- {
- _players.add((L2PcInstance) character);
- }
- if(_players.size() >2)
- {
- hidden = _players.get(Rnd.get(1, _players.size() - 1));
- saveTitle(hidden.getTitle());
- hidden.getAppearance().setInvisible();
- hidden.decayMe();
- hidden.broadcastUserInfo();
- hidden.spawnMe();
- hidden.sendMessage("You picked for the event!you got 3 minutes until you will be visible!");
- hidden.sendMessage("Run Run go hide!");
- wait(3,true);
- hidden.getAppearance().setVisible();
- hidden.setTitle("Hidden");
- hidden.setIsImmobilized(true);
- hidden.sendMessage("You are visible now! you can't move");
- hidden.getAppearance().setVisible();
- hidden.broadcastUserInfo();
- started = true;
- StartcheckTarget();
- }
- else
- {
- Announce("Non enough players in giran for the event to start.");
- state = State.INACTIVE;
- clear();
- new HiddeSeek();
- }
- }
- }
- public static void clear()
- {
- started = false;
- stopcheckTarget();
- _players.clear();
- hidden = null;
- state = State.INACTIVE;
- clearTitle();
- }
- private static ScheduledFuture<?> _TargetChecker;
- static class checkTarget implements Runnable
- {
- @Override
- public void run()
- {
- final L2ZoneType zone = TownManager.getTown(9);
- final List<L2PcInstance> zo = zone.getPlayersInside();
- if(zo.contains(hidden))
- zo.remove(hidden);
- if(started)
- {
- for(L2PcInstance pl: zo)
- {
- if(hidden==null || pl==null)
- {
- started = false;
- return;
- }
- if (Util.calculateDistance(hidden, pl, true) <= 15)
- {
- pl.sendMessage("you win");
- Announce(pl.getName()+ " found the hidden player "+hidden.getName());
- pl.getInventory().addItem("Reward hidde", rewardId, rewardAmount, pl, null);
- hidden.setIsImmobilized(false);
- hidden.setTitle(getTitle());
- clear();
- HiddeSeek.getInstance();
- }
- else
- StartcheckTarget();
- }
- }
- else
- stopcheckTarget();
- }
- }
- static void stopcheckTarget()
- {
- if(_TargetChecker!=null)
- _TargetChecker.cancel(true);
- _TargetChecker = null;
- }
- static void StartcheckTarget()
- {
- _TargetChecker = ThreadPoolManager.getInstance().scheduleGeneral(new checkTarget(), 1* 1000);
- }
- private HiddeSeek()
- {
- ThreadPoolManager.getInstance().scheduleGeneral(new Task(), 2500* 1000);
- }
- public static void wait(int i,boolean minutes)
- {
- if(minutes)
- try
- {
- Thread.sleep(i * 60000);
- }
- catch (InterruptedException ie)
- {
- ie.printStackTrace();
- }
- else
- try
- {
- Thread.sleep(i * 1000);
- }
- catch (InterruptedException ie)
- {
- ie.printStackTrace();
- }
- }
- public static HiddeSeek getInstance()
- {
- return SingletonHolder._instance;
- }
- private static class SingletonHolder
- {
- @SuppressWarnings("synthetic-access")
- protected static final HiddeSeek _instance = new HiddeSeek();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment