package custom.core;
import org.apache.log4j.Logger;
import ru.catssoftware.gameserver.Announcements;
import ru.catssoftware.gameserver.datatables.ItemTable;
import ru.catssoftware.gameserver.handler.IItemHandler;
import ru.catssoftware.gameserver.handler.IVoicedCommandHandler;
import ru.catssoftware.gameserver.handler.ItemHandler;
import ru.catssoftware.gameserver.handler.VoicedCommandHandler;
import ru.catssoftware.gameserver.model.L2ItemInstance;
import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance;
import ru.catssoftware.gameserver.model.actor.instance.L2PlayableInstance;
import ru.catssoftware.gameserver.network.serverpackets.NpcHtmlMessage;
import ru.catssoftware.gameserver.util.PcAction;
import ru.catssoftware.tools.random.Rnd;
public class VipBag implements IVoicedCommandHandler, IItemHandler
{
private final static int ITEM_ACTIVE_ID = 3481; //Ид предмета активации.
private final static boolean VB_HERO = true; // Включить выдачу Геройства.
private final static int VB_HERO_CHANCE = 50; // Шанс получения Геройства.
private final static int VB_HERO_DAYS = 1; // На сколько дней выдавать Геройство.
private final static boolean VB_PA = true; // Включить выдачу Премиум Аккаунта.
private final static int VB_PA_CHANCE = 50; // Шанс получения Премиум Аккаунта.
private final static int VB_PA_DAYS = 1; // На сколько дней выдавать Премиум Аккаунта.
private final static boolean VB_ARMOR = true; // Включить выдачу одной из Брони по рандуму.
private final static int VB_ARMOR_CHANCE = 50; // Шанс получения Брони.
private static final int VB_ARMOR_IDS[] = {58,59,60,61}; // ИДы Брони указывать через запятую.
private final static boolean VB_COL = true; // Включить выдачу Монеты.
private final static int VB_COL_CHANCE = 50; // Шанс получения Монет.
private final static int VB_COL_ID = 4037; // ИД Монет.
private final static int VB_COL_COUNT = 1000; // Количество Монет.
private final static boolean VB_TATOO = true; // Включить выдачу Донат Тату.
private final static int VB_TATOO_CHANCE = 50; // Шанс получения Донат Тату.
private final static int VB_TATOO_ID = 62; // ИД Донат Тату.
private static final Logger _log = Logger.getLogger(VipBag.class.getName());
private static int ITEM_IDS[] = {ITEM_ACTIVE_ID};
public VipBag()
{
_log.info("");
_log.info(" ######################################################");
_log.info(" ###### VipBag by ncs.SpawN Loading... ######");
_log.info(" ###### ICQ 4555-7-8898 ######");
_log.info(" ######################################################");
_log.info("");
ItemHandler.getInstance().registerItemHandler(this);
VoicedCommandHandler.getInstance().registerVoicedCommandHandler(this);
}
@Override
public boolean useVoicedCommand(String command, L2PcInstance player, String params)
{
command = command+" "+params;
if(command.startsWith("ag_vipbag"))
{
String choise = command.substring(9).trim();
if(choise.startsWith("edit"))
{
int chance = Rnd.get(100);
L2ItemInstance coin = player.getInventory().getItemByItemId(ITEM_IDS[0]);
int flag = Integer.parseInt(choise.substring(4).trim());
//_log.info("hello2: "+flag+"");
if (coin != null && coin.getCount() > 0)
{
if(flag == 1 && VB_HERO != false)
{
if (player.isHero() != false)
{
player.sendMessage("Вы Уже имеете Геройство.");
showWelcome(player);
}
else
{
if (chance < VB_HERO_CHANCE)
{
//player.setHero(VB_HERO_DAYS);
PcAction.addHeroStatus(player,VB_HERO_DAYS);
Announcements.getInstance().announceToAll("Игрок " + player.getName() + " везунчик и получил шанс испаытать удачу он выбрал \"Геройство\" и ему повезло!");
player.destroyItemByItemId("ag_vipbag_", ITEM_IDS[0], 1, player, true);
}
else
{
Announcements.getInstance().announceToAll("Игрок " + player.getName() + " везунчик и получил шанс испаытать удачу он выбрал \"Геройство\" и ему не повезло...");
player.destroyItemByItemId("ag_vipbag_", ITEM_IDS[0], 1, player, true);
}
}
}
if(flag == 2 && VB_PA != false)
{
if (player.getPremiumService() > 0)
{
player.sendMessage("Вы Уже имеете Премиум Аккаунт.");
showWelcome(player);
}
else
{
if (chance < VB_PA_CHANCE)
{
//player.storePremium(VB_PA_DAYS);
PcAction.addPremiumServices(player,player.getAccountName(),VB_PA_DAYS);
//player.setPremiumService(VB_PA_DAYS);
Announcements.getInstance().announceToAll("Игрок " + player.getName() + " везунчик и получил шанс испаытать удачу он выбрал \"Премиум Аккаунт\" и ему повезло!");
player.destroyItemByItemId("ag_vipbag_", ITEM_IDS[0], 1, player, true);
}
else
{
Announcements.getInstance().announceToAll("Игрок " + player.getName() + " везунчик и получил шанс испаытать удачу он выбрал \"Премиум Аккаунт\" и ему не повезло...");
player.destroyItemByItemId("ag_vipbag_", ITEM_IDS[0], 1, player, true);
}
}
}
if(flag == 3 && VB_ARMOR != false)
{
if (chance < VB_ARMOR_CHANCE)
{
int armor_id = Rnd.get(VB_ARMOR_IDS.length);
String _ItemName = ItemTable.getInstance().getItemName(VB_ARMOR_IDS[armor_id]);
player.addItem("ag_vipbag_", VB_ARMOR_IDS[armor_id], 1, player, true);
Announcements.getInstance().announceToAll("Игрок " + player.getName() + " везунчик и получил шанс испаытать удачу он выбрал \"Броня\" и ему повезло c "+_ItemName+"!");
player.destroyItemByItemId("ag_vipbag_", ITEM_IDS[0], 1, player, true);
}
else
{
Announcements.getInstance().announceToAll("Игрок " + player.getName() + " везунчик и получил шанс испаытать удачу он выбрал \"Броня\" и ему не повезло...");
player.destroyItemByItemId("ag_vipbag_", ITEM_IDS[0], 1, player, true);
}
}
if(flag == 4 && VB_COL != false)
{
if (chance < VB_COL_CHANCE)
{
String _ItemName = ItemTable.getInstance().getItemName(VB_COL_ID);
player.addItem("ag_vipbag_", VB_COL_ID, VB_COL_COUNT, player, true);
Announcements.getInstance().announceToAll("Игрок " + player.getName() + " везунчик и получил шанс испаытать удачу он выбрал \"Монеты\" и ему повезло с "+_ItemName+" "+VB_COL_COUNT+" штук!");
player.destroyItemByItemId("ag_vipbag_", ITEM_IDS[0], 1, player, true);
}
else
{
Announcements.getInstance().announceToAll("Игрок " + player.getName() + " везунчик и получил шанс испаытать удачу он выбрал \"Монеты\" и ему не повезло...");
player.destroyItemByItemId("ag_vipbag_", ITEM_IDS[0], 1, player, true);
}
}
if(flag == 5 && VB_TATOO != false)
{
if (chance < VB_TATOO_CHANCE)
{
String _ItemName = ItemTable.getInstance().getItemName(VB_TATOO_ID);
player.addItem("ag_vipbag_", VB_TATOO_ID, 1, player, true);
Announcements.getInstance().announceToAll("Игрок " + player.getName() + " везунчик и получил шанс испаытать удачу он выбрал \"Донат Тату\" и ему повезло с "+_ItemName+"!");
player.destroyItemByItemId("ag_vipbag_", ITEM_IDS[0], 1, player, true);
}
else
{
Announcements.getInstance().announceToAll("Игрок " + player.getName() + " везунчик и получил шанс испаытать удачу он выбрал \"Донат Тату\" и ему не повезло...");
player.destroyItemByItemId("ag_vipbag_", ITEM_IDS[0], 1, player, true);
}
}
}
else
{
player.sendMessage("Не достаточное количество предметов!");
}
return true;
}
else
{
return false;
}
}
return true;
}
private void showWelcome(L2PcInstance player)
{
if(player.isParalyzed() || player.getUserKey().on == 1)
{
player.sendActionFailed();
return;
}
NpcHtmlMessage nhm = new NpcHtmlMessage(player.getObjectId());
String build = "<html><body><center>";
build += "Получить приз!<br1>";
if(VB_HERO)
{
build += "<button value=\"Геройство\" action=\"bypass -h voice_ag_vipbag edit 1\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"><br1>";
}
if(VB_PA)
{
build += "<button value=\"Премиум Аккаунт\" action=\"bypass -h voice_ag_vipbag edit 2\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"><br1>";
}
if(VB_ARMOR)
{
build += "<button value=\"Броня\" action=\"bypass -h voice_ag_vipbag edit 3\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"><br1>";
}
if(VB_COL)
{
build += "<button value=\"Монеты\" action=\"bypass -h voice_ag_vipbag edit 4\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"><br1>";
}
if(VB_TATOO)
{
build += "<button value=\"Донат Тату\" action=\"bypass -h voice_ag_vipbag edit 5\" width=135 height=24 back=\"L2UI_CH3.bigbutton3_down\" fore=\"L2UI_CH3.bigbutton3\"><br1>";
}
build += "</center></body></html>";
nhm.setHtml(build);
player.sendPacket(nhm);
}
public void useItem(L2PlayableInstance playable, L2ItemInstance item, int ctrl)
{
if (!playable.isPlayer())
return;
L2PcInstance player = (L2PcInstance) playable;
showWelcome(player);
}
public void useItem(L2PlayableInstance playable, L2ItemInstance item, boolean animation)
{
}
public int[] getItemIds()
{
return ITEM_IDS;
}
private static VipBag _instance = null;
public static VipBag getInstance()
{
if (_instance == null)
_instance = new VipBag();
return _instance;
}
private static final String VOICED_COMMANDS[] = {
"ag_vipbag"
};
@Override
public String[] getVoicedCommandList()
{
return VOICED_COMMANDS;
}
public static void main (String... arguments )
{
new VipBag();
}
@Override
public String getDescription(String command)
{
return null;
}
}