Você não é registrado, por favor registre-se para ter acesso ao conteúdo completo.
Caso seja registrado, efetue login.
Esqueceu sua senha? Clique aqui
Recomendamos o uso do Mozilla Firefox para uma melhor visualização.    


Início Postados Hoje Marcar Fóruns Como Lidos Álbums Banidos SE Team Medalhas
Voltar   Secret Experience > Área L2J > [L2J] Downloads > [Lineage] Java Mods
Registrar Loteria VIPStaff SERegras do fórum Comunidade Arcade Postados Hoje Pesquisar Experience
   

Secret Experience.NET   Secret Experience Corporation - Welcome To The Real World
     Anúncios SE

Resposta
 
Ferramentas do Tópico Modos de Exibição
Antigo 18-07-2013, 10:35 PM   #1
AiramCruZ
Membro - Coronel
 
Avatar de AiramCruZ
 
Registrado em: Feb 2009
Localização: Em Casa
Posts: 191
Agradeceu: 102
Agradecido 193 Vezes em 70 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
Pontos: 4,684, Nível: 43
Pontos: 4,684, Nível: 43 Pontos: 4,684, Nível: 43 Pontos: 4,684, Nível: 43
Atividade: 70%
Atividade: 70% Atividade: 70% Atividade: 70%

Nome Real: AiramCruZ

Inventório de AiramCruZ

Padrão [Freya]Aio e Vip System

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
### Eclipse Workspace Patch 1.0
#P CT25-DataPack
Index: dist/game/data/scripts/handlers/admincommandhandlers/AdminVip.java
===================================================================
--- dist/game/data/scripts/handlers/admincommandhandlers/AdminVip.java (revision 0)
+++ dist/game/data/scripts/handlers/admincommandhandlers/AdminVip.java (working copy)
@@ -0,0 +1,228 @@
+package handlers.admincommandhandlers;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.util.StringTokenizer;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import ct25.xtreme.Config;
+import ct25.xtreme.L2DatabaseFactory;
+import ct25.xtreme.gameserver.GmListTable;
+import ct25.xtreme.gameserver.handler.IAdminCommandHandler;
+import ct25.xtreme.gameserver.model.L2Object;
+import ct25.xtreme.gameserver.model.L2World;
+import ct25.xtreme.gameserver.model.actor.instance.L2PcInstance;
+import ct25.xtreme.gameserver.network.SystemMessageId;
+import ct25.xtreme.gameserver.network.serverpackets.EtcStatusUpdate;
+import ct25.xtreme.gameserver.network.serverpackets.SystemMessage;
+
+/**
+ * Give / Take Status Vip to Player
+ * Changes name color and title color if enabled
+ *
+ * Uses:
+ * setvip [<player_name>] [<time_duration in days>]
+ * removevip [<player_name>]
+ *
+ * If <player_name> is not specified, the current target player is used.
+ *
+ *
+ * @author KhayrusS
+ *
+ */
+public class AdminVip implements IAdminCommandHandler
+{
+        private static String[] _adminCommands = { "admin_setvip", "admin_removevip" };
+        private final static Logger _log = Logger.getLogger(AdminVip.class.getName());
+
+        public boolean useAdminCommand(String command, L2PcInstance activeChar)
+        {
+ /*if (!Config.ALT_PRIVILEGES_ADMIN)
+                                        if (!(checkLevel(activeChar.getAccessLevel()) && activeChar.isGM()))
+                                        {
+                                                        GmListTable.broadcastMessageToGMs("Player "+activeChar.getName()+ " tryed illegal action set vip stat");
+                                                        return false;
+                                        }*/
+
+                        if (command.startsWith("admin_setvip"))
+                        {
+                                        StringTokenizer str = new StringTokenizer(command);
+                                        L2Object target = activeChar.getTarget();
+
+                                        L2PcInstance player = null;
+                                        SystemMessage sm = new SystemMessage(SystemMessageId.S1);
+
+                                        if (target != null && target instanceof L2PcInstance)
+                                                        player = (L2PcInstance)target;
+                                        else
+                                                        player = activeChar;
+
+                                        try
+                                        {
+                                                        str.nextToken();
+                                                        String time = str.nextToken();
+                                                        if (str.hasMoreTokens())
+                                                        {
+                                                                        String playername = time;
+                                                                        time = str.nextToken();
+                                                                        player = L2World.getInstance().getPlayer(playername);
+                                                                        doVip(activeChar, player, playername, time);
+                                                        }
+                                                        else
+                                                        {
+                                                                        String playername = player.getName();
+                                                                        doVip(activeChar, player, playername, time);
+                                                        }
+                                                        if(!time.equals("0"))
+                                                        {
+                                                                        sm.addString("You are now a Vip , congratulations!");
+                                                                        player.sendPacket(sm);
+                                                        }
+                                        }
+                                        catch(Exception e)
+                                        {
+                                                        activeChar.sendMessage("Usage: //setvip <char_name> [time](in days)");
+                                        }
+
+                                        player.broadcastUserInfo();
+                                        if(player.isVip())
+                                                        return true;
+                        }
+                        else if(command.startsWith("admin_removevip"))
+                        {
+                                        StringTokenizer str = new StringTokenizer(command);
+                                        L2Object target = activeChar.getTarget();
+
+                                        L2PcInstance player = null;
+
+                                        if (target != null && target instanceof L2PcInstance)
+                                                        player = (L2PcInstance)target;
+                                        else
+                                                        player = activeChar;
+
+                                        try
+                                        {
+                                                        str.nextToken();
+                                                        if (str.hasMoreTokens())
+                                                        {
+                                                                        String playername = str.nextToken();
+                                                                        player = L2World.getInstance().getPlayer(playername);
+                                                                        removeVip(activeChar, player, playername);
+                                                        }
+                                                        else
+                                                        {
+                                                                        String playername = player.getName();
+                                                                        removeVip(activeChar, player, playername);
+                                                        }
+                                        }
+                                        catch(Exception e)
+                                        {
+                                                        activeChar.sendMessage("Usage: //removevip <char_name>");
+                                        }
+                                        player.broadcastUserInfo();
+                                        if(!player.isVip())
+                                                        return true;
+                        }
+                        return false;
+        }
+
+        public void doVip(L2PcInstance activeChar, L2PcInstance _player, String _playername, String _time)
+        {
+                        int days = Integer.parseInt(_time);
+                        if (_player == null)
+                        {
+                                        activeChar.sendMessage("not found char" + _playername);
+                                        return;
+                        }
+
+                        if(days > 0)
+                        {
+                                        _player.setVip(true);
+                                        _player.setEndTime("vip", days);
+
+                                        Connection connection = null;
+                                        try
+                                        {
+                                                        connection = L2DatabaseFactory.getInstance().getConnection();
+
+                                                        PreparedStatement statement = connection.prepareStatement("UPDATE characters SET vip=1, vip_end=? WHERE charId=?");
+                                                        statement.setLong(1, _player.getVipEndTime());
+                                                        statement.setInt(2, _player.getObjectId());
+                                                        statement.execute();
+                                                        statement.close();
+                                                        connection.close();
+
+                                                        if(Config.ALLOW_VIP_NCOLOR && activeChar.isVip())
+                                                                        _player.getAppearance().setNameColor(Config.VIP_NCOLOR);
+
+                                                        if(Config.ALLOW_VIP_TCOLOR && activeChar.isVip())
+                                                                        _player.getAppearance().setTitleColor(Config.VIP_TCOLOR);
+
+                                                        _player.broadcastUserInfo();
+                                                        _player.sendPacket(new EtcStatusUpdate(_player));
+                                                        GmListTable.broadcastMessageToGMs("GM "+ activeChar.getName()+ " set vip stat for player "+ _playername + " for " + _time + " day(s)");
+                                        }
+                                        catch (Exception e)
+                                        {
+                                                        _log.log(Level.WARNING,"could not set vip stats of char:", e);
+                                        }
+                                        finally
+                                        {
+                                                        try {
+                                                                        connection.close();
+                                                        } catch (SQLException e) {
+                                                                        // TODO Auto-generated catch block
+                                                                        e.printStackTrace();
+                                                        }
+                                        }
+                        }
+                        else
+                        {
+                                        removeVip(activeChar, _player, _playername);
+                        }
+        }
+
+        public void removeVip(L2PcInstance activeChar, L2PcInstance _player, String _playername)
+        {
+                        _player.setVip(false);
+                        _player.setVipEndTime(0);
+
+                        Connection connection = null;
+                        try
+                        {
+                                        connection = L2DatabaseFactory.getInstance().getConnection();
+
+                                        PreparedStatement statement = connection.prepareStatement("UPDATE characters SET vip=0, vip_end=0 WHERE charId=?");
+                                        statement.setInt(1, _player.getObjectId());
+                                        statement.execute();
+                                        statement.close();
+                                        connection.close();
+
+                                        _player.getAppearance().setNameColor(0xFFFFFF);
+                                        _player.getAppearance().setTitleColor(0xFFFFFF);
+                                        _player.broadcastUserInfo();
+                                        _player.sendPacket(new EtcStatusUpdate(_player));
+                                        GmListTable.broadcastMessageToGMs("GM "+activeChar.getName()+" remove vip stat of player "+ _playername);
+                        }
+                        catch (Exception e)
+                        {
+                                        _log.log(Level.WARNING,"could not remove vip stats of char:", e);
+                        }
+                        finally
+                        {
+                                        try {
+                                                        connection.close();
+                                        } catch (SQLException e) {
+                                                        // TODO Auto-generated catch block
+                                                        e.printStackTrace();
+                                        }
+                        }
+        }
+
+        public String[] getAdminCommandList()
+        {
+                        return _adminCommands;
+        }
+}
Index: dist/sql/game/characters.sql
===================================================================
--- dist/sql/game/characters.sql (revision 36)
+++ dist/sql/game/characters.sql (working copy)
@@ -58,6 +58,11 @@
`vitality_points` SMALLINT UNSIGNED NOT NULL DEFAULT 0,
`createTime` bigint(13) unsigned NOT NULL DEFAULT '0',
`language` VARCHAR(2) DEFAULT NULL,
+ `vip` decimal(1,0) NOT NULL DEFAULT 0,
+ `vip_end` decimal(20,0) NOT NULL DEFAULT 0,
+ `aio` decimal(1,0) NOT NULL DEFAULT 0,
+ `aio_end` decimal(20,0) NOT NULL DEFAULT 0,
+
PRIMARY KEY (`charId`),
KEY `account_name` (`account_name`),
KEY `char_name` (`char_name`),
Index: dist/game/data/scripts/handlers/admincommandhandlers/AdminAio.java
===================================================================
--- dist/game/data/scripts/handlers/admincommandhandlers/AdminAio.java (revision 0)
+++ dist/game/data/scripts/handlers/admincommandhandlers/AdminAio.java (working copy)
@@ -0,0 +1,238 @@
+package handlers.admincommandhandlers;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.util.StringTokenizer;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import ct25.xtreme.Config;
+import ct25.xtreme.L2DatabaseFactory;
+import ct25.xtreme.gameserver.GmListTable;
+import ct25.xtreme.gameserver.handler.IAdminCommandHandler;
+import ct25.xtreme.gameserver.model.L2Object;
+import ct25.xtreme.gameserver.model.L2World;
+import ct25.xtreme.gameserver.model.actor.instance.L2PcInstance;
+import ct25.xtreme.gameserver.network.SystemMessageId;
+import ct25.xtreme.gameserver.network.serverpackets.EtcStatusUpdate;
+import ct25.xtreme.gameserver.network.serverpackets.SystemMessage;
+
+/**
+ * Give / Take Status Aio to Player
+ * Changes name color and title color if enabled
+ *
+ * Uses:
+ * setaio [<player_name>] [<time_duration in days>]
+ * removeaio [<player_name>]
+ *
+ * If <player_name> is not specified, the current target player is used.
+ *
+ *
+ * @author KhayrusS
+ *
+ */
+public class AdminAio implements IAdminCommandHandler
+{
+        private static String[] _adminCommands = { "admin_setaio", "admin_removeaio" };
+        private final static Logger _log = Logger.getLogger(AdminAio.class.getName());
+
+        public boolean useAdminCommand(String command, L2PcInstance activeChar)
+        {
+                        /*if (!Config.ALT_PRIVILEGES_ADMIN)
+                                        if (!(checkLevel(activeChar.getAccessLevel()) && activeChar.isGM()))
+                                        {
+                                                        GmListTable.broadcastMessageToGMs("Player "+activeChar.getName()+ " tryed illegal action set Aio stat");
+                                                        return false;
+                                        }*/
+
+                        if (command.startsWith("admin_setaio"))
+                        {
+                                        StringTokenizer str = new StringTokenizer(command);
+                                        L2Object target = activeChar.getTarget();
+
+                                        L2PcInstance player = null;
+                                        SystemMessage sm = new SystemMessage(SystemMessageId.S1);
+
+                                        if (target != null && target instanceof L2PcInstance)
+                                                        player = (L2PcInstance)target;
+                                        else
+                                                        player = activeChar;
+
+                                        try
+                                        {
+                                                        str.nextToken();
+                                                        String time = str.nextToken();
+                                                        if (str.hasMoreTokens())
+                                                        {
+                                                                        String playername = time;
+                                                                        time = str.nextToken();
+                                                                        player = L2World.getInstance().getPlayer(playername);
+                                                                        doAio(activeChar, player, playername, time);
+                                                        }
+                                                        else
+                                                        {
+                                                                        String playername = player.getName();
+                                                                        doAio(activeChar, player, playername, time);
+                                                        }
+                                                        if(!time.equals("0"))
+                                                        {
+                                                                        sm.addString("You are now a Aio, Congratulations!");
+                                                                        player.sendPacket(sm);
+                                                        }
+                                        }
+                                        catch(Exception e)
+                                        {
+                                                        activeChar.sendMessage("Usage: //setaio <char_name> [time](in days)");
+                                        }
+
+                                        player.broadcastUserInfo();
+                                        if(player.isAio())
+                                                        return true;
+                        }
+                        else if(command.startsWith("admin_removeaio"))
+                        {
+                                        StringTokenizer str = new StringTokenizer(command);
+                                        L2Object target = activeChar.getTarget();
+
+                                        L2PcInstance player = null;
+
+                                        if (target != null && target instanceof L2PcInstance)
+                                                        player = (L2PcInstance)target;
+                                        else
+                                                        player = activeChar;
+
+                                        try
+                                        {
+                                                        str.nextToken();
+                                                        if (str.hasMoreTokens())
+                                                        {
+                                                                        String playername = str.nextToken();
+                                                                        player = L2World.getInstance().getPlayer(playername);
+                                                                        removeAio(activeChar, player, playername);
+                                                        }
+                                                        else
+                                                        {
+                                                                        String playername = player.getName();
+                                                                        removeAio(activeChar, player, playername);
+                                                        }
+                                        }
+                                        catch(Exception e)
+                                        {
+                                                        activeChar.sendMessage("Usage: //removeaio <char_name>");
+                                        }
+                                        player.broadcastUserInfo();
+                                        if(!player.isAio())
+                                                        return true;
+                        }
+                        return false;
+        }
+
+        public void doAio(L2PcInstance activeChar, L2PcInstance _player, String _playername, String _time)
+        {
+                        int days = Integer.parseInt(_time);
+                        if (_player == null)
+                        {
+                                        activeChar.sendMessage("not found char" + _playername);
+                                        return;
+                        }
+
+                        if(days > 0)
+                        {
+                                        _player.setAio(true);
+                                        _player.setEndTime("aio", days);
+                                        _player.getStat().addExp(_player.getStat().getExpForLevel(81));
+
+                                        Connection connection = null;
+                                        try
+                                        {
+                                                        connection = L2DatabaseFactory.getInstance().getConnection();
+
+                                                        PreparedStatement statement = connection.prepareStatement("UPDATE characters SET aio=1, aio_end=? WHERE charId=?");
+                                                        statement.setLong(1, _player.getAioEndTime());
+                                                        statement.setInt(2, _player.getObjectId());
+                                                        statement.execute();
+                                                        statement.close();
+                                                        connection.close();
+
+                                                        if(Config.ALLOW_AIO_NCOLOR && activeChar.isAio())
+                                                                        _player.getAppearance().setNameColor(Config.AIO_NCOLOR);
+
+                                                        if(Config.ALLOW_AIO_TCOLOR && activeChar.isAio())
+                                                                        _player.getAppearance().setTitleColor(Config.AIO_TCOLOR);
+
+                                                        _player.rewardAioSkills();
+                                                        if(Config.ALLOW_AIO_ITEM && activeChar.isAio())
+                                                        _player.getInventory().addItem("", Config.AIO_ITEMID, 1, _player, null);
+                                                        _player.broadcastUserInfo();
+                                                        _player.sendPacket(new EtcStatusUpdate(_player));
+                                                        _player.sendSkillList();
+                                                        GmListTable.broadcastMessageToGMs("GM "+ activeChar.getName()+ " set Aio stat for player "+ _playername + " for " + _time + " day(s)");
+                                        }
+                                        catch (Exception e)
+                                        {
+                                                        _log.log(Level.WARNING,"could not set Aio stats to char:", e);
+                                        }
+                                        finally
+                                        {
+                                                        try {
+                                                                        connection.close();
+                                                        } catch (SQLException e) {
+                                                                        // TODO Auto-generated catch block
+                                                                        e.printStackTrace();
+                                                        }
+                                        }
+                        }
+                        else
+                        {
+                                        removeAio(activeChar, _player, _playername);
+                        }
+        }
+
+        public void removeAio(L2PcInstance activeChar, L2PcInstance _player, String _playername)
+        {
+                        _player.setAio(false);
+                        _player.setAioEndTime(0);
+
+                        Connection connection = null;
+                        try
+                        {
+                                        connection = L2DatabaseFactory.getInstance().getConnection();
+
+                                        PreparedStatement statement = connection.prepareStatement("UPDATE characters SET aio=0, aio_end=0 WHERE charId=?");
+                                        statement.setInt(1, _player.getObjectId());
+                                        statement.execute();
+                                        statement.close();
+                                        connection.close();
+
+                                        _player.lostAioSkills();
+                                        if(Config.ALLOW_AIO_ITEM && activeChar.isAio() == false)
+                                        _player.getInventory().destroyItemByItemId("", Config.AIO_ITEMID, 1, _player, null);
+                                        _player.getWarehouse().destroyItemByItemId("", Config.AIO_ITEMID, 1, _player, null);
+                                        _player.getAppearance().setNameColor(0xFFFFFF);
+                                        _player.getAppearance().setTitleColor(0xFFFFFF);
+                                        _player.broadcastUserInfo();
+                                        _player.sendPacket(new EtcStatusUpdate(_player));
+                                        _player.sendSkillList();
+                                        GmListTable.broadcastMessageToGMs("GM "+activeChar.getName()+" remove Aio stat of player "+ _playername);
+                        }
+                        catch (Exception e)
+                        {
+                                        _log.log(Level.WARNING,"could not remove Aio stats of char:", e);
+                        }
+                        finally
+                        {
+                                        try {
+                                                        connection.close();
+                                        } catch (SQLException e) {
+                                                        // TODO Auto-generated catch block
+                                                        e.printStackTrace();
+                                        }
+                        }
+        }
+       
+        public String[] getAdminCommandList()
+        {
+                        return _adminCommands;
+        }
+}
Index: dist/game/data/scripts/handlers/MasterHandler.java
===================================================================
--- dist/game/data/scripts/handlers/MasterHandler.java (revision 36)
+++ dist/game/data/scripts/handlers/MasterHandler.java (working copy)
@@ -31,6 +31,7 @@
import handlers.actionhandlers.L2SummonActionShift;
import handlers.actionhandlers.L2TrapAction;
import handlers.admincommandhandlers.AdminAdmin;
+import handlers.admincommandhandlers.AdminAio;
import handlers.admincommandhandlers.AdminAnnouncements;
import handlers.admincommandhandlers.AdminBBS;
import handlers.admincommandhandlers.AdminBan;
@@ -99,6 +100,7 @@
import handlers.admincommandhandlers.AdminTest;
import handlers.admincommandhandlers.AdminTvTEvent;
import handlers.admincommandhandlers.AdminUnblockIp;
+import handlers.admincommandhandlers.AdminVip;
import handlers.admincommandhandlers.AdminVitality;
import handlers.admincommandhandlers.AdminZone;
import handlers.bypasshandlers.Augment;
@@ -301,6 +303,7 @@
private static void loadAdminHandlers()
{
AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminAdmin());
+ AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminAio());
AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminAnnouncements());
AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminBan());
AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminBBS());
@@ -369,6 +372,7 @@
AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminTest());
AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminTvTEvent());
AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminUnblockIp());
+ AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminVip());
AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminVitality());
AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminZone());
_log.config("Loaded " + AdminCommandHandler.getInstance().size() + " AdminCommandHandlers");
#P CT25-GameServer
Index: java/ct25/xtreme/gameserver/network/serverpackets/SystemMessage.java
===================================================================
--- java/ct25/xtreme/gameserver/network/serverpackets/SystemMessage.java (revision 36)
+++ java/ct25/xtreme/gameserver/network/serverpackets/SystemMessage.java (working copy)
@@ -137,7 +137,7 @@
private SMParam[] _params;
private int _paramIndex;

- private SystemMessage(final SystemMessageId smId)
+ public SystemMessage(final SystemMessageId smId)
{
final int paramCount = smId.getParamCount();
_smId = smId;
Index: dist/game/config/l2jmods.properties
===================================================================
--- dist/game/config/l2jmods.properties (revision 36)
+++ dist/game/config/l2jmods.properties (working copy)
@@ -480,3 +480,48 @@
# will be 1+2=3. Use 0 or negative value for unlimited number of connections.
# Default: 127.0.0.1,0 (no limits from localhost)
DualboxCheckWhitelist = 127.0.0.1,0
+
+# ---------------------------------------
+# Aio System ( By KhayrusS )
+# ---------------------------------------
+# Enable / Disable Name Color
+AllowAioNameColor = True
+AioNameColor = 88AA88
+# Enable / Disable Title Color
+AllowAioTitleColor = True
+AioTitleColor = 88AA88
+
+EnableAioSystem = True
+# List of Aio Skills
+# Format : skillid,skilllvl;skillid2,skilllvl2;....skillidn,skilllvln
+AioSkills = 1085,3;1304,3;1087,3;1354,1;1062,2;1005,3;1243,6;1045,6;1048,6;\
+1311,6;168,3;213,8;1007,3;1309,3;1552,3;1006,3;1229,15;1308,3;1253,3;1284,3;\
+1009,3;1310,4;1363,1;1362,1;1397,3;1292,6;1078,6;307,1;276,1;309,1;274,1;275,1;\
+272,1;277,1;273,1;311,1;366,1;365,1;310,1;271,1;1242,3;1257,3;1353,3;1391,3;\
+1352,1;229,7;228,3;1077,3;1218,33;1059,3;1219,33;1217,33;1388,3;1389,3;1240,3;\
+1086,2;1032,3;1073,2;1036,2;1035,4;1068,3;1003,3;1282,2;1356,1;1355,1;1357,33;\
+1044,3;1182,3;1191,3;1033,3;1189,3;1259,4;1306,6;234,23;1040,3;364,1;264,1;306,1;\
+269,1;270,1;265,1;363,1;349,1;308,1;305,1;304,1;267,1;266,1;268,1;1390,3;1303,2;\
+1204,2;1268,4
+
+# Ativa ou Desativar a opcao de AIO ganhar Item!
+AllowAIOItem = False
+
+# ID do item que vai ganhar quando virar AIO!
+ItemIdAio = 9945
+
+# ---------------------------------------
+# Vip System ( By KhayrusS )
+# ---------------------------------------
+# Enable / Disable Name Color
+AllowVipNameColor = True
+VipNameColor = 0088FF
+# Enable / Disable Title Color
+AllowVipTitleColor = True
+VipTitleColor = 0088FF
+
+# if True Player Vip gain Xp*VipMulXp and Sp*VipMulSp
+# Note only works if player not in party
+AllowVipMulXpSp = True
+VipMulXp = 2
+VipMulSp = 2
Index: java/ct25/xtreme/gameserver/model/actor/L2Attackable.java
===================================================================
--- java/ct25/xtreme/gameserver/model/actor/L2Attackable.java (revision 36)
+++ java/ct25/xtreme/gameserver/model/actor/L2Attackable.java (working copy)
@@ -733,6 +733,11 @@
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.OVER_HIT));
exp += calculateOverhitExp(exp);
}
+ if (player.isVip() && Config.ALLOW_VIP_XPSP)
+ {
+ exp *= Config.VIP_XP;
+ sp *= Config.VIP_SP;
+ }
}

// Distribute the Exp and SP between the L2PcInstance and its L2Summon
Index: java/ct25/xtreme/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/ct25/xtreme/gameserver/model/actor/instance/L2PcInstance.java (revision 36)
+++ java/ct25/xtreme/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -15,6 +15,7 @@
package ct25.xtreme.gameserver.model.actor.instance;

import java.sql.Connection;
+import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -290,9 +291,9 @@
private static final String DELETE_SKILL_SAVE = "DELETE FROM character_skills_save WHERE charId=? AND class_index=?";

// Character Character SQL String Definitions:
- private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,charId,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,karma,fame,pvpkills,pkkills,clanid,race,classid,deletetime,cancraft,title,title_color,accesslevel,online,isin7sdungeon,clan_privs,wantspeace,base_class,newbie,nobless,power_grade,createTime) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
- private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,fame=?,pvpkills=?,pkkills=?,clanid=?,race=?,classid=?,deletetime=?,title=?,title_color=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,punish_level=?,punish_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,language=? WHERE charId=?";
- private static final String RESTORE_CHARACTER = "SELECT account_name, charId, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, fame, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, title_color, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, newbie, nobless, power_grade, subpledge, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,bookmarkslot,vitality_points,createTime,language FROM characters WHERE charId=?";
+ private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,charId,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,karma,fame,pvpkills,pkkills,clanid,race,classid,deletetime,cancraft,title,title_color,accesslevel,online,isin7sdungeon,clan_privs,wantspeace,base_class,newbie,nobless,power_grade,createTime,vip,vip_end,aio,aio_end) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
+ private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,fame=?,pvpkills=?,pkkills=?,clanid=?,race=?,classid=?,deletetime=?,title=?,title_color=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,punish_level=?,punish_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,language=?,vip=?,vip_end=?,aio=?,aio_end=? WHERE charId=?";
+ private static final String RESTORE_CHARACTER = "SELECT account_name, charId, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, fame, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, title_color, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, newbie, nobless, power_grade, subpledge, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,bookmarkslot,vitality_points,createTime,language,vip,vip_end,aio,aio_end FROM characters WHERE charId=?";

// Character Teleport Bookmark:
private static final String INSERT_TP_BOOKMARK = "INSERT INTO character_tpbookmark (charId,Id,x,y,z,icon,tag,name) values (?,?,?,?,?,?,?,?)";
@@ -710,6 +711,14 @@

public final ReentrantLock soulShotLock = new ReentrantLock();

+ /** Vip System */
+ private boolean _isVip = false;
+ private long _vip_endTime = 0;
+       
+ /** Aio System */
+ private boolean _isAio = false;
+ private long _aio_endTime = 0;
+
/** Event parameters */
public int eventX;
public int eventY;
@@ -7034,7 +7043,11 @@
statement.setInt(35, isNoble() ? 1 :0);
statement.setLong(36, 0);
statement.setLong(37,getCreateTime());
-
+        statement.setInt(38, isVip() ? 1 :0);
+ statement.setLong(39, 0);
+ statement.setInt(40, isAio() ? 1 :0);
+ statement.setLong(41, 0);
+
statement.executeUpdate();
statement.close();
}
@@ -7215,6 +7228,13 @@

player.setDeathPenaltyBuffLevel(rset.getInt("death_penalty_level"));

+ // Vip System
+                player.setVip(rset.getInt("vip") == 1 ? true : false);
+                player.setVipEndTime(rset.getLong("vip_end"));
+                // Aio System
+                player.setAio(rset.getInt("aio") == 1 ? true : false);
+ player.setAioEndTime(rset.getLong("aio_end"));
+
player.setVitalityPoints(rset.getInt("vitality_points"), true);

// Add the L2PcInstance object in _allObjects
@@ -7672,7 +7692,11 @@
statement.setInt(50, getBookMarkSlot());
statement.setInt(51, getVitalityPoints());
statement.setString(52, getLang());
- statement.setInt(53, getObjectId());
+ statement.setInt(53, isVip() ? 1 : 0);
+ statement.setLong(54, getVipEndTime());
+ statement.setInt(55, isAio() ? 1 : 0);
+ statement.setLong(56, getAioEndTime());
+ statement.setInt(57, getObjectId());

statement.execute();
statement.close();
@@ -15189,7 +15213,138 @@
{
_player = player;
}
+
+        /** Vip System Start */
+        public boolean isVip()
+        {
+                        return _isVip;
+        }
+       
+        public void setVip(boolean val)
+        {
+                        _isVip = val;
+                       
+        }
+       
+        public void setVipEndTime(long val)
+        {
+                        _vip_endTime = val;
+        }
+       
+        public long getVipEndTime()
+        {
+                        return _vip_endTime;
+        }
+       
+        /** Aio System Start */
+        public boolean isAio()
+        {
+                        return _isAio;
+        }

+        public void setAio(boolean val)
+        {
+                        _isAio = val;
+                       
+        }
+
+        public void rewardAioSkills()
+        {
+                        L2Skill skill;
+                        for(Integer skillid : Config.AIO_SKILLS.keySet())
+                        {
+                                        int skilllvl = Config.AIO_SKILLS.get(skillid);
+                                        skill = SkillTable.getInstance().getInfo(skillid,skilllvl);
+                                        if(skill != null)
+                                        {
+                                                        addSkill(skill, true);
+                                        }
+                        }
+                        sendMessage("GM give to you Aio's skills");
+        }
+
+        public void lostAioSkills()
+        {
+                        L2Skill skill;
+                        for(Integer skillid : Config.AIO_SKILLS.keySet())
+                        {
+                                        int skilllvl = Config.AIO_SKILLS.get(skillid);
+                                        skill = SkillTable.getInstance().getInfo(skillid,skilllvl);
+                                        removeSkill(skill);
+                        }
+        }
+
+        public void setAioEndTime(long val)
+        {
+                        _aio_endTime = val;
+        }
+
+        public void setEndTime(String process, int val)
+        {
+                        if (val > 0)
+                        {
+                                        long end_day;
+                                        Calendar calendar = Calendar.getInstance();
+                                        if (val >= 30)
+                                        {
+                                                        while(val >= 30)
+                                                        {
+                                                                        if(calendar.get(Calendar.MONTH)== 11)
+                                                                                        calendar.roll(Calendar.YEAR, true);
+                                                                        calendar.roll(Calendar.MONTH, true);
+                                                                        val -= 30;
+                                                        }
+                                        }
+                                        if (val < 30 && val > 0)
+                                        {
+                                                        while(val > 0)
+                                                        {
+                                                                        if(calendar.get(Calendar.DATE)== 28 && calendar.get(Calendar.MONTH) == 1)
+                                                                                        calendar.roll(Calendar.MONTH, true);                           
+                                                                        if(calendar.get(Calendar.DATE)== 30)
+                                                                        {
+                                                                                        if(calendar.get(Calendar.MONTH) == 11)
+                                                                                                        calendar.roll(Calendar.YEAR, true);
+                                                                                        calendar.roll(Calendar.MONTH, true);
+                                                                                       
+                                                                        }
+                                                                        calendar.roll(Calendar.DATE, true);
+                                                                        val--;
+                                                        }
+                                        }
+
+                                        end_day = calendar.getTimeInMillis();
+                                        if(process.equals("aio"))
+                                                        _aio_endTime = end_day;
+                                        else if(process.equals("vip"))
+                                                        _vip_endTime = end_day;
+                                        else
+                                        {
+                                                        System.out.println("process "+ process + "no Known while try set end date");
+                                                        return;
+                                        }
+                                        Date dt = new Date(end_day);
+                                        System.out.println(""+process +" end time for player " + getName() + " is " + dt);
+                        }
+                        else
+                        {
+                                        if(process.equals("aio"))
+                                                        _aio_endTime = 0;
+                                        else if(process.equals("vip"))
+                                                        _vip_endTime = 0;
+                                        else
+                                        {
+                                                        System.out.println("process "+ process + "no Known while try set end date");
+                                                        return;
+                                        }
+                        }
+        }
+
+        public long getAioEndTime()
+        {
+                        return _aio_endTime;
+        }
+
// Punish PHXEnchanters
public void overEnchPunish()
{
Index: java/ct25/xtreme/Config.java
===================================================================
--- java/ct25/xtreme/Config.java (revision 36)
+++ java/ct25/xtreme/Config.java (working copy)
@@ -35,12 +35,15 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.Map;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.xml.parsers.DocumentBuilderFactory;

+import javolution.util.FastMap;
+
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
@@ -766,7 +769,24 @@
public static boolean BUFFER_NPC_ENABLE_REMOVE;
public static int BUFFER_NPC_FEE_REMOVE[];
public static boolean BUFFER_NPC_REMOVE_AMOUNT;
-
+ /* Vip System */
+ public static boolean ALLOW_VIP_NCOLOR;
+ public static int VIP_NCOLOR;
+ public static boolean ALLOW_VIP_TCOLOR;
+ public static int VIP_TCOLOR;
+ public static boolean ALLOW_VIP_XPSP;
+ public static int VIP_XP;
+ public static int VIP_SP;
+ /* Aio System */
+ public static boolean ENABLE_AIO_SYSTEM;
+ public static Map<Integer, Integer> AIO_SKILLS;
+ public static boolean ALLOW_AIO_NCOLOR;
+ public static int AIO_NCOLOR;
+ public static boolean ALLOW_AIO_TCOLOR;
+ public static int AIO_TCOLOR;
+ public static boolean ALLOW_AIO_ITEM;
+ public static int AIO_ITEMID;
+
//--------------------------------------------------
// NPC Settings
//--------------------------------------------------
@@ -2575,7 +2595,51 @@
BUFFER_NPC_FEE_REMOVE = getIntArray(L2JModSettings, "BufferNpcFeeRemove", new int[] { 57, 1000000 }, ",");
BUFFER_NPC_REMOVE_AMOUNT = Boolean.parseBoolean(L2JModSettings.getProperty("BufferNpcRemoveAmount", "false"));
//------------------------------- end------------------------------------------------------------------------//
-
+                                                                        // -------------------- //
+                                                                        // Aio e Vip System //
+                                                                        // -------------------- //
+                                                                        ALLOW_VIP_NCOLOR = Boolean.parseBoolean(L2JModSettings.getProperty("AllowVipNameColor", "True"));
+                                                                        VIP_NCOLOR = Integer.decode("0x" + L2JModSettings.getProperty("VipNameColor", "0088FF"));
+                                                                        ALLOW_VIP_TCOLOR = Boolean.parseBoolean(L2JModSettings.getProperty("AllowVipTitleColor", "True"));
+                                                                        VIP_TCOLOR = Integer.decode("0x" + L2JModSettings.getProperty("VipTitleColor", "0088FF"));
+                                                                        ALLOW_VIP_XPSP = Boolean.parseBoolean(L2JModSettings.getProperty("AllowVipMulXpSp", "True"));
+                                                                        VIP_XP = Integer.parseInt(L2JModSettings.getProperty("VipMulXp", "2"));
+                                                                        VIP_SP = Integer.parseInt(L2JModSettings.getProperty("VipMulSp", "2"));
+                                                                        ENABLE_AIO_SYSTEM = Boolean.parseBoolean(L2JModSettings.getProperty("EnableAioSystem", "True"));
+                                                                        ALLOW_AIO_NCOLOR = Boolean.parseBoolean(L2JModSettings.getProperty("AllowAioNameColor", "True"));
+                                                                        AIO_NCOLOR = Integer.decode("0x" + L2JModSettings.getProperty("AioNameColor", "88AA88"));
+                                                                        ALLOW_AIO_TCOLOR = Boolean.parseBoolean(L2JModSettings.getProperty("AllowAioTitleColor", "True"));
+                                                                        AIO_TCOLOR = Integer.decode("0x" + L2JModSettings.getProperty("AioTitleColor", "88AA88"));
+                                                                        AIO_ITEMID = Integer.parseInt(L2JModSettings.getProperty("ItemIdAio", "9945"));
+                                                                        ALLOW_AIO_ITEM = Boolean.parseBoolean(L2JModSettings.getProperty("AllowAIOItem", "False"));
+                                                                        if(ENABLE_AIO_SYSTEM) //create map if system is enabled
+                                                                        {
+                                                                                        String[] AioSkillsSplit = L2JModSettings.getProperty("AioSkills", "").split(";");
+                                                                                        AIO_SKILLS = new FastMap<Integer, Integer>(AioSkillsSplit.length);
+                                                                                        for (String skill : AioSkillsSplit)
+                                                                                        {
+                                                                                                        String[] skillSplit = skill.split(",");
+                                                                                                        if (skillSplit.length != 2)
+                                                                                                        {
+                                                                                                                        System.out.println("[Aio System]: invalid config property in l2jmods.properties -> AioSkills \"" + skill + "\"");
+                                                                                                        }
+                                                                                                        else
+                                                                                                        {
+                                                                                                                        try
+                                                                                                                        {
+                                                                                                                                        AIO_SKILLS.put(Integer.parseInt(skillSplit[0]), Integer.parseInt(skillSplit[1]));
+                                                                                                                        }
+                                                                                                                        catch (NumberFormatException nfe)
+                                                                                                                        {
+                                                                                                                                        if (!skill.equals(""))
+                                                                                                                                        {
+                                                                                                                                                        System.out.println("[Aio System]: invalid config property in l2jmods.properties -> AioSkills \"" + skillSplit[0] + "\"" + skillSplit[1]);
+                                                                                                                                        }
+                                                                                                                        }
+                                                                                                        }
+                                                                                        }
+                                                                        }
+
L2JMOD_ANTIFEED_ENABLE = Boolean.parseBoolean(L2JModSettings.getProperty("AntiFeedEnable", "false"));
L2JMOD_ANTIFEED_DUALBOX = Boolean.parseBoolean(L2JModSettings.getProperty("AntiFeedDualbox", "true"));
L2JMOD_ANTIFEED_DISCONNECTED_AS_DUALBOX = Boolean.parseBoolean(L2JModSettings.getProperty("AntiFeedDisconnectedAsDualbox", "true"));
Index: java/ct25/xtreme/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- java/ct25/xtreme/gameserver/network/clientpackets/EnterWorld.java (revision 36)
+++ java/ct25/xtreme/gameserver/network/clientpackets/EnterWorld.java (working copy)
@@ -14,6 +14,9 @@
*/
package ct25.xtreme.gameserver.network.clientpackets;

+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
import java.util.logging.Logger;

import ct25.xtreme.Config;
@@ -101,7 +104,9 @@
private static final String _C__03_ENTERWORLD = "[C] 03 EnterWorld";

private static Logger _log = Logger.getLogger(EnterWorld.class.getName());
-
+ long _daysleft;
+ SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
+
private int[][] tracert = new int[5][4];

public TaskPriority getPriority()
@@ -370,7 +375,25 @@
engage(activeChar);
notifyPartner(activeChar,activeChar.getPartnerId());
}
-
+
+                        if(activeChar.isVip())
+                                        onEnterVip(activeChar);
+                       
+                        if(activeChar.isAio())
+                                        onEnterAio(activeChar);
+                       
+                        if(Config.ALLOW_VIP_NCOLOR && activeChar.isVip())
+                                        activeChar.getAppearance().setNameColor(Config.VIP_NCOLOR);
+                       
+                        if(Config.ALLOW_VIP_TCOLOR && activeChar.isVip())
+                                        activeChar.getAppearance().setTitleColor(Config.VIP_TCOLOR);
+                       
+                        if(Config.ALLOW_AIO_NCOLOR && activeChar.isAio())
+                                        activeChar.getAppearance().setNameColor(Config.AIO_NCOLOR);
+                       
+                        if(Config.ALLOW_AIO_TCOLOR && activeChar.isAio())
+                                        activeChar.getAppearance().setTitleColor(Config.AIO_TCOLOR);
+               
if (activeChar.isCursedWeaponEquipped())
{
CursedWeaponsManager.getInstance().getCursedWeapon(activeChar.getCursedWeaponEquippedId()).cursedOnLogin();
@@ -585,8 +608,61 @@
}
}
}
+
+        private void onEnterAio(L2PcInstance activeChar)
+        {
+                        long now = Calendar.getInstance().getTimeInMillis();
+                        long endDay = activeChar.getAioEndTime();
+                        if(now > endDay)
+                        {
+                                        activeChar.setAio(false);
+                                        activeChar.setAioEndTime(0);
+                                        activeChar.lostAioSkills();
+                                        activeChar.sendMessage("Removed your Aio stats... period ends ");
+                        }
+                        else
+                        {
+                                        Date dt = new Date(endDay);
+                                        _daysleft = (endDay - now)/86400000;
+                                        if(_daysleft > 30)
+                                                        activeChar.sendMessage("Aio period ends in " + df.format(dt) + ". enjoy the Game");
+                                        else if(_daysleft > 0)
+                                                        activeChar.sendMessage("left " + (int)_daysleft + " days for Aio period ends");
+                                        else if(_daysleft < 1)
+                                        {
+                                                        long hour = (endDay - now)/3600000;
+                                                        activeChar.sendMessage("left " + (int)hour + " hours to Aio period ends");
+                                        }
+                        }
+        }
+       
+        private void onEnterVip(L2PcInstance activeChar)
+        {
+                        long now = Calendar.getInstance().getTimeInMillis();
+                        long endDay = activeChar.getVipEndTime();
+                        if(now > endDay)
+                        {
+                                        activeChar.setVip(false);
+                                        activeChar.setVipEndTime(0);
+                                        activeChar.sendMessage("Removed your Vip stats... period ends ");
+                        }
+                        else
+                        {
+                                        Date dt = new Date(endDay);
+                                        _daysleft = (endDay - now)/86400000;
+                                        if(_daysleft > 30)
+                                                        activeChar.sendMessage("Vip period ends in " + df.format(dt) + ". enjoy the Game");
+                                        else if(_daysleft > 0)
+                                                        activeChar.sendMessage("left " + (int)_daysleft + " days for Vip period ends");
+                                        else if(_daysleft < 1)
+                                        {
+                                                        long hour = (endDay - now)/3600000;
+                                                        activeChar.sendMessage("left " + (int)hour + " hours to Vip period ends");
+                                        }
+                        }
+        }
+

-
/**
* @param activeChar
*/
Créditos:KhayrusS(Criação),BossForever(Adaptaç ão) e Rildo Dantas

AiramCruZ está offline  
O seguinte membro ao lado disse Obrigado(a) a : AiramCruZ por gostar deste Post :
eliasmelgaco (03-06-2015)
Links Patrocinados
Resposta


Regras para Posts
Você não pode postar novos tópicos
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar seus posts

Código [IMG] Sim
Código HTML Não

Ir para...


Horários baseados na GMT -3. Agora são 10:27 PM.