Package events.glitmedal

Source Code of events.glitmedal.glitmedal

/*
* 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
*/
package events.glitmedal;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import lineage2.commons.util.Rnd;
import lineage2.gameserver.Announcements;
import lineage2.gameserver.Config;
import lineage2.gameserver.cache.Msg;
import lineage2.gameserver.data.xml.holder.MultiSellHolder;
import lineage2.gameserver.listener.actor.OnDeathListener;
import lineage2.gameserver.listener.actor.player.OnPlayerEnterListener;
import lineage2.gameserver.model.Creature;
import lineage2.gameserver.model.Player;
import lineage2.gameserver.model.SimpleSpawner;
import lineage2.gameserver.model.actor.listener.CharListenerList;
import lineage2.gameserver.model.instances.MonsterInstance;
import lineage2.gameserver.scripts.Functions;
import lineage2.gameserver.scripts.ScriptFile;
import lineage2.gameserver.utils.Util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* @author Mobius
* @version $Revision: 1.0 $
*/
public class glitmedal extends Functions implements ScriptFile, OnDeathListener, OnPlayerEnterListener
{
  /**
   * Field EVENT_MANAGER_ID1.
   */
  private static int EVENT_MANAGER_ID1 = 31228;
  /**
   * Field EVENT_MANAGER_ID2.
   */
  private static int EVENT_MANAGER_ID2 = 31229;
  /**
   * Field _log.
   */
  private static final Logger _log = LoggerFactory.getLogger(glitmedal.class);
  /**
   * Field isTalker.
   */
  private int isTalker;
  /**
   * Field EVENT_MEDAL.
   */
  private static int EVENT_MEDAL = 6392;
  /**
   * Field EVENT_GLITTMEDAL.
   */
  private static int EVENT_GLITTMEDAL = 6393;
  /**
   * Field Badge_of_Rabbit.
   */
  private static int Badge_of_Rabbit = 6399;
  /**
   * Field Badge_of_Hyena.
   */
  private static int Badge_of_Hyena = 6400;
  /**
   * Field Badge_of_Fox.
   */
  private static int Badge_of_Fox = 6401;
  /**
   * Field Badge_of_Wolf.
   */
  private static int Badge_of_Wolf = 6402;
  /**
   * Field _spawns.
   */
  private static List<SimpleSpawner> _spawns = new ArrayList<>();
  /**
   * Field _active.
   */
  private static boolean _active = false;
  /**
   * Field MultiSellLoaded.
   */
  private static boolean MultiSellLoaded = false;
  /**
   * Field multiSellFiles.
   */
  private static File[] multiSellFiles =
  {
    new File(Config.DATAPACK_ROOT, "data/xml/other/event/glitmedal/502.xml"),
    new File(Config.DATAPACK_ROOT, "data/xml/other/event/glitmedal/503.xml"),
    new File(Config.DATAPACK_ROOT, "data/xml/other/event/glitmedal/504.xml"),
    new File(Config.DATAPACK_ROOT, "data/xml/other/event/glitmedal/505.xml"),
    new File(Config.DATAPACK_ROOT, "data/xml/other/event/glitmedal/506.xml"),
  };
 
  /**
   * Method onLoad.
   * @see lineage2.gameserver.scripts.ScriptFile#onLoad()
   */
  @Override
  public void onLoad()
  {
    CharListenerList.addGlobal(this);
    if (isActive())
    {
      _active = true;
      loadMultiSell();
      spawnEventManagers();
      _log.info("Loaded Event: L2 Medal Collection Event [state: activated]");
    }
    else
    {
      _log.info("Loaded Event: L2 Medal Collection Event [state: deactivated]");
    }
  }
 
  /**
   * Method isActive.
   * @return boolean
   */
  private static boolean isActive()
  {
    return IsActive("glitter");
  }
 
  /**
   * Method startEvent.
   */
  public void startEvent()
  {
    Player player = getSelf();
    if (!player.getPlayerAccess().IsEventGm)
    {
      return;
    }
    if (SetActive("glitter", true))
    {
      loadMultiSell();
      spawnEventManagers();
      System.out.println("Event 'L2 Medal Collection Event' started.");
      Announcements.getInstance().announceByCustomMessage("scripts.events.glitmedal.AnnounceEventStarted", null);
    }
    else
    {
      player.sendMessage("Event 'L2 Medal Collection Event' already started.");
    }
    _active = true;
    show("admin/events.htm", player);
  }
 
  /**
   * Method stopEvent.
   */
  public void stopEvent()
  {
    Player player = getSelf();
    if (!player.getPlayerAccess().IsEventGm)
    {
      return;
    }
    if (SetActive("glitter", false))
    {
      unSpawnEventManagers();
      System.out.println("Event 'L2 Medal Collection Event' stopped.");
      Announcements.getInstance().announceByCustomMessage("scripts.events.glitmedal.AnnounceEventStoped", null);
    }
    else
    {
      player.sendMessage("Event 'L2 Medal Collection Event' not started.");
    }
    _active = false;
    show("admin/events.htm", player);
  }
 
  /**
   * Method onPlayerEnter.
   * @param player Player
   * @see lineage2.gameserver.listener.actor.player.OnPlayerEnterListener#onPlayerEnter(Player)
   */
  @Override
  public void onPlayerEnter(Player player)
  {
    if (_active)
    {
      Announcements.getInstance().announceToPlayerByCustomMessage(player, "scripts.events.glitmedal.AnnounceEventStarted", null);
    }
  }
 
  /**
   * Method spawnEventManagers.
   */
  private void spawnEventManagers()
  {
    final int[][] EVENT_MANAGERS1 =
    {
      {
        147893,
        -56622,
        -2776,
        0
      },
      {
        -81070,
        149960,
        -3040,
        0
      },
      {
        82882,
        149332,
        -3464,
        49000
      },
      {
        44176,
        -48732,
        -800,
        33000
      },
      {
        147920,
        25664,
        -2000,
        16384
      },
      {
        117498,
        76630,
        -2695,
        38000
      },
      {
        111776,
        221104,
        -3543,
        16384
      },
      {
        -84516,
        242971,
        -3730,
        34000
      },
      {
        -13073,
        122801,
        -3117,
        0
      },
      {
        -44337,
        -113669,
        -224,
        0
      },
      {
        11281,
        15652,
        -4584,
        25000
      },
      {
        44122,
        50784,
        -3059,
        57344
      },
      {
        80986,
        54504,
        -1525,
        32768
      },
      {
        114733,
        -178691,
        -821,
        0
      },
      {
        18178,
        145149,
        -3054,
        7400
      },
    };
    final int[][] EVENT_MANAGERS2 =
    {
      {
        147960,
        -56584,
        -2776,
        0
      },
      {
        -81070,
        149860,
        -3040,
        0
      },
      {
        82798,
        149332,
        -3464,
        49000
      },
      {
        44176,
        -48688,
        -800,
        33000
      },
      {
        147985,
        25664,
        -2000,
        16384
      },
      {
        117459,
        76664,
        -2695,
        38000
      },
      {
        111724,
        221111,
        -3543,
        16384
      },
      {
        -84516,
        243015,
        -3730,
        34000
      },
      {
        -13073,
        122841,
        -3117,
        0
      },
      {
        -44342,
        -113726,
        -240,
        0
      },
      {
        11327,
        15682,
        -4584,
        25000
      },
      {
        44157,
        50827,
        -3059,
        57344
      },
      {
        80986,
        54452,
        -1525,
        32768
      },
      {
        114719,
        -178742,
        -821,
        0
      },
      {
        18154,
        145192,
        -3054,
        7400
      },
    };
    SpawnNPCs(EVENT_MANAGER_ID1, EVENT_MANAGERS1, _spawns);
    SpawnNPCs(EVENT_MANAGER_ID2, EVENT_MANAGERS2, _spawns);
  }
 
  /**
   * Method unSpawnEventManagers.
   */
  private void unSpawnEventManagers()
  {
    deSpawnNPCs(_spawns);
  }
 
  /**
   * Method loadMultiSell.
   */
  private static void loadMultiSell()
  {
    if (MultiSellLoaded)
    {
      return;
    }
    for (File f : multiSellFiles)
    {
      MultiSellHolder.getInstance().parseFile(f);
    }
    MultiSellLoaded = true;
  }
 
  /**
   * Method onReload.
   * @see lineage2.gameserver.scripts.ScriptFile#onReload()
   */
  @Override
  public void onReload()
  {
    unSpawnEventManagers();
    if (MultiSellLoaded)
    {
      for (File f : multiSellFiles)
      {
        MultiSellHolder.getInstance().remove(f);
      }
      MultiSellLoaded = false;
    }
  }
 
  /**
   * Method onShutdown.
   * @see lineage2.gameserver.scripts.ScriptFile#onShutdown()
   */
  @Override
  public void onShutdown()
  {
    // empty method
  }
 
  /**
   * Method onDeath.
   * @param cha Creature
   * @param killer Creature
   * @see lineage2.gameserver.listener.actor.OnDeathListener#onDeath(Creature, Creature)
   */
  @Override
  public void onDeath(Creature cha, Creature killer)
  {
    if (_active && SimpleCheckDrop(cha, killer))
    {
      long count = Util.rollDrop(1, 1, Config.EVENT_GLITTMEDAL_NORMAL_CHANCE * killer.getPlayer().getRateItems() * ((MonsterInstance) cha).getTemplate().rateHp * 10000L, true);
      if (count > 0)
      {
        addItem(killer.getPlayer(), EVENT_MEDAL, count);
      }
      if ((killer.getPlayer().getInventory().getCountOf(Badge_of_Wolf) == 0) && Rnd.chance(Config.EVENT_GLITTMEDAL_GLIT_CHANCE * killer.getPlayer().getRateItems() * ((MonsterInstance) cha).getTemplate().rateHp))
      {
        addItem(killer.getPlayer(), EVENT_GLITTMEDAL, 1);
      }
    }
  }
 
  /**
   * Method glitchang.
   */
  public void glitchang()
  {
    Player player = getSelf();
    if (!player.isQuestContinuationPossible(true))
    {
      return;
    }
    if (getItemCount(player, EVENT_MEDAL) >= 1000)
    {
      removeItem(player, EVENT_MEDAL, 1000);
      addItem(player, EVENT_GLITTMEDAL, 10);
      return;
    }
    player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_REQUIRED_ITEMS);
  }
 
  /**
   * Method medal.
   */
  public void medal()
  {
    Player player = getSelf();
    if (!player.isQuestContinuationPossible(true))
    {
      return;
    }
    if (getItemCount(player, Badge_of_Wolf) >= 1)
    {
      show("scripts/events/glitmedal/event_col_agent1_q0996_05.htm", player);
      return;
    }
    else if (getItemCount(player, Badge_of_Fox) >= 1)
    {
      show("scripts/events/glitmedal/event_col_agent1_q0996_04.htm", player);
      return;
    }
    else if (getItemCount(player, Badge_of_Hyena) >= 1)
    {
      show("scripts/events/glitmedal/event_col_agent1_q0996_03.htm", player);
      return;
    }
    else if (getItemCount(player, Badge_of_Rabbit) >= 1)
    {
      show("scripts/events/glitmedal/event_col_agent1_q0996_02.htm", player);
      return;
    }
    show("scripts/events/glitmedal/event_col_agent1_q0996_01.htm", player);
  }
 
  /**
   * Method medalb.
   */
  public void medalb()
  {
    Player player = getSelf();
    if (!player.isQuestContinuationPossible(true))
    {
      return;
    }
    if (getItemCount(player, Badge_of_Wolf) >= 1)
    {
      show("scripts/events/glitmedal/event_col_agent2_q0996_05.htm", player);
      return;
    }
    else if (getItemCount(player, Badge_of_Fox) >= 1)
    {
      show("scripts/events/glitmedal/event_col_agent2_q0996_04.htm", player);
      return;
    }
    else if (getItemCount(player, Badge_of_Hyena) >= 1)
    {
      show("scripts/events/glitmedal/event_col_agent2_q0996_03.htm", player);
      return;
    }
    else if (getItemCount(player, Badge_of_Rabbit) >= 1)
    {
      show("scripts/events/glitmedal/event_col_agent2_q0996_02.htm", player);
      return;
    }
    show("scripts/events/glitmedal/event_col_agent2_q0996_01.htm", player);
    return;
  }
 
  /**
   * Method game.
   */
  public void game()
  {
    Player player = getSelf();
    if (!player.isQuestContinuationPossible(true))
    {
      return;
    }
    if (getItemCount(player, Badge_of_Fox) >= 1)
    {
      if (getItemCount(player, EVENT_GLITTMEDAL) >= 40)
      {
        show("scripts/events/glitmedal/event_col_agent2_q0996_11.htm", player);
        return;
      }
      show("scripts/events/glitmedal/event_col_agent2_q0996_12.htm", player);
      return;
    }
    else if (getItemCount(player, Badge_of_Hyena) >= 1)
    {
      if (getItemCount(player, EVENT_GLITTMEDAL) >= 20)
      {
        show("scripts/events/glitmedal/event_col_agent2_q0996_11.htm", player);
        return;
      }
      show("scripts/events/glitmedal/event_col_agent2_q0996_12.htm", player);
      return;
    }
    else if (getItemCount(player, Badge_of_Rabbit) >= 1)
    {
      if (getItemCount(player, EVENT_GLITTMEDAL) >= 10)
      {
        show("scripts/events/glitmedal/event_col_agent2_q0996_11.htm", player);
        return;
      }
      show("scripts/events/glitmedal/event_col_agent2_q0996_12.htm", player);
      return;
    }
    else if (getItemCount(player, EVENT_GLITTMEDAL) >= 5)
    {
      show("scripts/events/glitmedal/event_col_agent2_q0996_11.htm", player);
      return;
    }
    show("scripts/events/glitmedal/event_col_agent2_q0996_12.htm", player);
  }
 
  /**
   * Method gamea.
   */
  public void gamea()
  {
    Player player = getSelf();
    if (!player.isQuestContinuationPossible(true))
    {
      return;
    }
    isTalker = Rnd.get(2);
    if (getItemCount(player, Badge_of_Fox) >= 1)
    {
      if (getItemCount(player, EVENT_GLITTMEDAL) >= 40)
      {
        if (isTalker == 1)
        {
          removeItem(player, Badge_of_Fox, 1);
          removeItem(player, EVENT_GLITTMEDAL, getItemCount(player, EVENT_GLITTMEDAL));
          addItem(player, Badge_of_Wolf, 1);
          show("scripts/events/glitmedal/event_col_agent2_q0996_24.htm", player);
          return;
        }
        else if (isTalker == 0)
        {
          removeItem(player, EVENT_GLITTMEDAL, 40);
          show("scripts/events/glitmedal/event_col_agent2_q0996_25.htm", player);
          return;
        }
      }
      show("scripts/events/glitmedal/event_col_agent2_q0996_26.htm", player);
      return;
    }
    else if (getItemCount(player, Badge_of_Hyena) >= 1)
    {
      if (getItemCount(player, EVENT_GLITTMEDAL) >= 20)
      {
        if (isTalker == 1)
        {
          removeItem(player, Badge_of_Hyena, 1);
          removeItem(player, EVENT_GLITTMEDAL, 20);
          addItem(player, Badge_of_Fox, 1);
          show("scripts/events/glitmedal/event_col_agent2_q0996_23.htm", player);
          return;
        }
        else if (isTalker == 0)
        {
          removeItem(player, EVENT_GLITTMEDAL, 20);
          show("scripts/events/glitmedal/event_col_agent2_q0996_25.htm", player);
          return;
        }
      }
      show("scripts/events/glitmedal/event_col_agent2_q0996_26.htm", player);
      return;
    }
    else if (getItemCount(player, Badge_of_Rabbit) >= 1)
    {
      if (getItemCount(player, EVENT_GLITTMEDAL) >= 10)
      {
        if (isTalker == 1)
        {
          removeItem(player, Badge_of_Rabbit, 1);
          removeItem(player, EVENT_GLITTMEDAL, 10);
          addItem(player, Badge_of_Hyena, 1);
          show("scripts/events/glitmedal/event_col_agent2_q0996_22.htm", player);
          return;
        }
        else if (isTalker == 0)
        {
          removeItem(player, EVENT_GLITTMEDAL, 10);
          show("scripts/events/glitmedal/event_col_agent2_q0996_25.htm", player);
          return;
        }
      }
      show("scripts/events/glitmedal/event_col_agent2_q0996_26.htm", player);
      return;
    }
    if (getItemCount(player, EVENT_GLITTMEDAL) >= 5)
    {
      if (isTalker == 1)
      {
        removeItem(player, EVENT_GLITTMEDAL, 5);
        addItem(player, Badge_of_Rabbit, 1);
        show("scripts/events/glitmedal/event_col_agent2_q0996_21.htm", player);
        return;
      }
      else if (isTalker == 0)
      {
        removeItem(player, EVENT_GLITTMEDAL, 5);
        show("scripts/events/glitmedal/event_col_agent2_q0996_25.htm", player);
        return;
      }
    }
    show("scripts/events/glitmedal/event_col_agent2_q0996_26.htm", player);
  }
 
  /**
   * Method gameb.
   */
  public void gameb()
  {
    Player player = getSelf();
    if (!player.isQuestContinuationPossible(true))
    {
      return;
    }
    isTalker = Rnd.get(2);
    if (getItemCount(player, Badge_of_Fox) >= 1)
    {
      if (getItemCount(player, EVENT_GLITTMEDAL) >= 40)
      {
        if (isTalker == 1)
        {
          removeItem(player, Badge_of_Fox, 1);
          removeItem(player, EVENT_GLITTMEDAL, 40);
          addItem(player, Badge_of_Wolf, 1);
          show("scripts/events/glitmedal/event_col_agent2_q0996_34.htm", player);
          return;
        }
        else if (isTalker == 0)
        {
          removeItem(player, EVENT_GLITTMEDAL, 40);
          show("scripts/events/glitmedal/event_col_agent2_q0996_35.htm", player);
          return;
        }
      }
      show("scripts/events/glitmedal/event_col_agent2_q0996_26.htm", player);
      return;
    }
    else if (getItemCount(player, Badge_of_Hyena) >= 1)
    {
      if (getItemCount(player, EVENT_GLITTMEDAL) >= 20)
      {
        if (isTalker == 1)
        {
          removeItem(player, Badge_of_Hyena, 1);
          removeItem(player, EVENT_GLITTMEDAL, 20);
          addItem(player, Badge_of_Fox, 1);
          show("scripts/events/glitmedal/event_col_agent2_q0996_33.htm", player);
          return;
        }
        else if (isTalker == 0)
        {
          removeItem(player, EVENT_GLITTMEDAL, 20);
          show("scripts/events/glitmedal/event_col_agent2_q0996_35.htm", player);
          return;
        }
      }
      show("scripts/events/glitmedal/event_col_agent2_q0996_26.htm", player);
      return;
    }
    else if (getItemCount(player, Badge_of_Rabbit) >= 1)
    {
      if (getItemCount(player, EVENT_GLITTMEDAL) >= 10)
      {
        if (isTalker == 1)
        {
          removeItem(player, Badge_of_Rabbit, 1);
          removeItem(player, EVENT_GLITTMEDAL, 10);
          addItem(player, Badge_of_Hyena, 1);
          show("scripts/events/glitmedal/event_col_agent2_q0996_32.htm", player);
          return;
        }
        else if (isTalker == 0)
        {
          removeItem(player, EVENT_GLITTMEDAL, 10);
          show("scripts/events/glitmedal/event_col_agent2_q0996_35.htm", player);
          return;
        }
      }
      show("scripts/events/glitmedal/event_col_agent2_q0996_26.htm", player);
      return;
    }
    if (getItemCount(player, EVENT_GLITTMEDAL) >= 5)
    {
      if (isTalker == 1)
      {
        removeItem(player, EVENT_GLITTMEDAL, 5);
        addItem(player, Badge_of_Rabbit, 1);
        show("scripts/events/glitmedal/event_col_agent2_q0996_31.htm", player);
        return;
      }
      else if (isTalker == 0)
      {
        removeItem(player, EVENT_GLITTMEDAL, 5);
        show("scripts/events/glitmedal/event_col_agent2_q0996_35.htm", player);
        return;
      }
    }
    show("scripts/events/glitmedal/event_col_agent2_q0996_26.htm", player);
    return;
  }
}
TOP

Related Classes of events.glitmedal.glitmedal

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.