Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: data/html/mods/Aio Shop/start.htm
- ===================================================================
- --- data/html/mods/Aio Shop/start.htm (revision 0)
- +++ data/html/mods/Aio Shop/start.htm (working copy)
- @@ -0,0 +1,36 @@
- +<html>
- + <title>Aio Shop</title>
- + <body>
- + <br>
- + <center><img src=L2UI.SquareWhite width=276 height=1></center>
- + <center>
- + <table width=256>
- + <tr>
- + <td><img src=L2UI.GM_Icon width=32 height=32></td>
- + <td width=192 align=center>
- + <font color="LEVEL">%servername%</font><br1>Bem Vindo ao Aio Shop!
- + </td>
- + <td><img src=L2UI.GM_Icon width=32 height=32></td>
- + </tr>
- + </table>
- + </center>
- + <br>
- + <center><img src=L2UI.SquareWhite width=276 height=1></center>
- + <br>
- + <center>
- + <font color=99FF66>Quando voce faz um AIO, seu personagem nao<br1>
- + podera dar hits ou usar skills fora da cidade.</font><br1>
- + <font color=FF0055>Use um personagem alternativo para isso!</font><br>
- + <img src=L2UI_CH3.herotower_deco width=256 height=32><br>
- + <font color=FF9900>Os precos dos pacotes de dias sao em<br1>
- + "Gold Bar" e os dias sao cumulativos.</font><br>
- + <button value="30 Dias [10 GB]" action="bypass -h npc_%objectId%_add_aio 3470 10 30" width=100 height=15 back="sek.cbui94" fore="sek.cbui92"><br>
- + <button value="60 Dias [20 GB]" action="bypass -h npc_%objectId%_add_aio 3470 20 60" width=100 height=15 back="sek.cbui94" fore="sek.cbui92"><br>
- + <button value="180 Dias [40 GB]" action="bypass -h npc_%objectId%_add_aio 3470 40 180" width=100 height=15 back="sek.cbui94" fore="sek.cbui92"><br>
- + <button value="365 Dias [80 GB]" action="bypass -h npc_%objectId%_add_aio 3470 80 365" width=100 height=15 back="sek.cbui94" fore="sek.cbui92"><br>
- + <font color=0099FF>Se voce clicar em "Remover AIO" seu status AIO<br1>
- + sera removido e voce perdera os creditos restantes.</font>
- + <button value="Remover Aio" action="bypass -h npc_%objectId%_remove_aio" width=100 height=15 back="sek.cbui94" fore="sek.cbui92"><br>
- + </center>
- + </body>
- +</html>
- #P L2jFrozen_GameServer
- Index: head-src/com/l2jfrozen/Config.java
- ===================================================================
- --- head-src/com/l2jfrozen/Config.java (revision 972)
- +++ head-src/com/l2jfrozen/Config.java (working copy)
- @@ -572,6 +572,8 @@
- public static int AIO_TCOLOR;
- public static boolean ALLOW_AIO_USE_GK;
- public static boolean ALLOW_AIO_USE_CM;
- + public static int DUAL_AIO_ID;
- +
- public static boolean ANNOUNCE_CASTLE_LORDS;
- /** Configuration to allow custom items to be given on character creation */
- @@ -672,6 +674,8 @@
- AIO_TCOLOR = Integer.decode("0x" + otherSettings.getProperty("AioTitleColor", "88AA88"));
- ALLOW_AIO_USE_GK = Boolean.parseBoolean(otherSettings.getProperty("AllowAioUseGk", "False"));
- ALLOW_AIO_USE_CM = Boolean.parseBoolean(otherSettings.getProperty("AllowAioUseClassMaster", "False"));
- + DUAL_AIO_ID = Integer.parseInt(otherSettings.getProperty("DualAioItemId", "6580"));
- +
- ANNOUNCE_CASTLE_LORDS = Boolean.parseBoolean(otherSettings.getProperty("AnnounceCastleLords", "False"));
- if(ENABLE_AIO_SYSTEM) //create map if system is enabled
- {
- Index: head-src/com/l2jfrozen/gameserver/model/actor/instance/L2AioSellerInstance.java
- ===================================================================
- --- head-src/com/l2jfrozen/gameserver/model/actor/instance/L2AioSellerInstance.java (revision 0)
- +++ head-src/com/l2jfrozen/gameserver/model/actor/instance/L2AioSellerInstance.java (working copy)
- @@ -0,0 +1,227 @@
- +/* 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 com.l2jfrozen.gameserver.model.actor.instance;
- +
- +import java.util.StringTokenizer;
- +
- +import com.l2jfrozen.Config;
- +import com.l2jfrozen.gameserver.ai.CtrlIntention;
- +import com.l2jfrozen.gameserver.network.SystemMessageId;
- +import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed;
- +import com.l2jfrozen.gameserver.network.serverpackets.EtcStatusUpdate;
- +import com.l2jfrozen.gameserver.network.serverpackets.InventoryUpdate;
- +import com.l2jfrozen.gameserver.network.serverpackets.MyTargetSelected;
- +import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage;
- +import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage;
- +import com.l2jfrozen.gameserver.network.serverpackets.ValidateLocation;
- +import com.l2jfrozen.gameserver.templates.L2NpcTemplate;
- +
- +/**
- + * Aio Shop e um re-make do Mod Aio Seller. De uma versao para outra, muitas coisas mudaram e isto altera o modo de usar do mod por completo!
- + * Agora e possivel alterar a template, o item, o preco e o tempo via html. Em resumo, esta nova versao do codigo esta bem mais flexivel.
- + * Faca um bom uso!
- + * @author RedHoT
- + * @version 1.0.7
- + */
- +public class L2AioSellerInstance extends L2FolkInstance
- +{
- + public L2AioSellerInstance(int objectId, L2NpcTemplate template)
- + {
- + super(objectId, template);
- + }
- +
- + @Override
- + public void onAction(L2PcInstance player)
- + {
- + if (!canTarget(player))
- + return;
- +
- + player.setLastFolkNPC(this);
- +
- + // Check if the L2PcInstance already target the L2NpcInstance
- + if (this != player.getTarget())
- + {
- + // Set the target of the L2PcInstance player
- + player.setTarget(this);
- +
- + // Send a Server->Client packet MyTargetSelected to the L2PcInstance player
- + MyTargetSelected my = new MyTargetSelected(getObjectId(), 0);
- + player.sendPacket(my);
- + my = null;
- +
- + // Send a Server->Client packet ValidateLocation to correct the L2NpcInstance position and heading on the client
- + player.sendPacket(new ValidateLocation(this));
- + }
- + else
- + {
- + // Calculate the distance between the L2PcInstance and the L2NpcInstance
- + if (!canInteract(player))
- + {
- + // Notify the L2PcInstance AI with AI_INTENTION_INTERACT
- + player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
- + }
- + else
- + {
- + showMessageWindow(player);
- + }
- + }
- + // Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
- + player.sendPacket(ActionFailed.STATIC_PACKET);
- + }
- +
- + private void showMessageWindow(L2PcInstance player)
- + {
- + String filename = "data/html/mods/Aio Shop/start.htm";
- +
- + NpcHtmlMessage html = new NpcHtmlMessage(1);
- + html.setFile(filename);
- + html.replace("%objectId%", String.valueOf(getObjectId()));
- + html.replace("%servername%", Config.ALT_Server_Name);
- + player.sendPacket(html);
- + filename = null;
- + html = null;
- + }
- +
- + @Override
- + public void onBypassFeedback(L2PcInstance player, String command)
- + {
- + if (command.startsWith("add_aio"))
- + {
- + StringTokenizer st = new StringTokenizer(command);
- + st.nextToken();
- +
- + String priceId = null, priceCount = null, time = null;
- + int aioPriceId = 0, aioPriceCount = 0, aioTime = 0;
- +
- + if (st.hasMoreTokens())
- + {
- + priceId = st.nextToken();
- + priceCount = st.nextToken();
- + time = st.nextToken();
- +
- + try
- + {
- + aioPriceId = Integer.parseInt(priceId);
- + aioPriceCount = Integer.parseInt(priceCount);
- + aioTime = Integer.parseInt(time);
- + }
- + catch(NumberFormatException e) {}
- + }
- + else
- + {
- + _log.warning("Could not update aio status of player " + player.getName());
- + return;
- + }
- +
- + makeAioCharacter(player, aioPriceId, aioPriceCount, aioTime);
- + }
- + else if (command.startsWith("remove_aio"))
- + removeAio(player);
- +
- + showMessageWindow(player);
- + }
- +
- +
- + public void makeAioCharacter(L2PcInstance player, int itemId, int itemCount, int aioTime)
- + {
- + L2ItemInstance itemInstance = player.getInventory().getItemByItemId(itemId);
- +
- + if (itemInstance == null || !itemInstance.isStackable() && player.getInventory().getInventoryItemCount(itemId, -1) < (itemCount))
- + {
- + player.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS));
- + return;
- + }
- + else if (itemInstance.isStackable())
- + {
- + if (!player.destroyItemByItemId("Aio", itemId, itemCount, player.getTarget(), true))
- + {
- + player.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS));
- + return;
- + }
- + }
- + else
- + for (int i = 0; i < (itemCount); i++)
- + player.destroyItemByItemId("Aio", itemId, 1, player.getTarget(), true);
- +
- + doAio(player, aioTime);
- + }
- + public void doAio(L2PcInstance player, int days)
- + {
- + if(player == null)
- + return;
- +
- + int daysLeft = player.getAioEndTime() <= 0 ? 0 : (int) ((player.getAioEndTime() - System.currentTimeMillis()) / 86400000);
- + player.setAio(true);
- + player.setEndTime("aio", days + daysLeft);
- +
- + player.getStat().addExp(player.getStat().getExpForLevel(81));
- +
- + if(Config.ALLOW_AIO_NCOLOR && player.isAio())
- + player.getAppearance().setNameColor(Config.AIO_NCOLOR);
- +
- + if(Config.ALLOW_AIO_TCOLOR && player.isAio())
- + player.getAppearance().setTitleColor(Config.AIO_TCOLOR);
- +
- + /* Give Aio Dual */
- + L2ItemInstance item;
- + if(player.getInventory().getItemByItemId(Config.DUAL_AIO_ID) == null)
- + {
- + item = player.getInventory().addItem("", Config.DUAL_AIO_ID, 1, player, null);
- + InventoryUpdate iu = new InventoryUpdate();
- + iu.addItem(item);
- + player.sendPacket(iu);
- + }
- +
- + player.rewardAioSkills();
- + player.sendPacket(new EtcStatusUpdate(player));
- + player.sendSkillList();
- + player.broadcastUserInfo();
- +
- + player.sendMessage("You are now an Aio, Congratulations!");
- + }
- +
- + public void removeAio(L2PcInstance player)
- + {
- + if(!player.isAio())
- + {
- + player.sendMessage("You are not an AIO.");
- + return;
- + }
- +
- + player.setAio(false);
- + player.setAioEndTime(0);
- +
- + player.getAppearance().setNameColor(0xFFFFFF);
- + player.getAppearance().setTitleColor(0xFFFF77);
- +
- + /* Remove Aio Dual */
- + L2ItemInstance item;
- + player.getWarehouse().destroyItemByItemId("", Config.DUAL_AIO_ID, 1, player, null);
- + item = player.getInventory().destroyItemByItemId("", Config.DUAL_AIO_ID, 1, player, null);
- + InventoryUpdate iu = new InventoryUpdate();
- + iu.addItem(item);
- + player.sendPacket(iu);
- +
- + player.lostAioSkills();
- + player.sendPacket(new EtcStatusUpdate(player));
- + player.sendSkillList();
- + player.broadcastUserInfo();
- +
- + player.sendMessage("Now You are not an Aio..");
- + }
- +}
- Index: config/head/other.properties
- ===================================================================
- --- config/head/other.properties (revision 972)
- +++ config/head/other.properties (working copy)
- @@ -225,6 +225,9 @@
- # Aio Buffers can speak to Class Master?
- AllowAioUseClassMaster = False
- +# ID Item for Reward AIO's in Transformation
- +DualAioItemId = 6580
- +
- # Announce castle lords on enter game. default = false
- AnnounceCastleLords = False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement