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
 
LinkBack Ferramentas do Tópico Modos de Exibição
Antigo 29-09-2013, 11:44 AM   #1 (permalink)
Jesus Te Ama, Mas EU Não!
 
Avatar de Setokaiba
 
Registrado em: Oct 2008
Localização: 45º 33º 34º N | 122º 41º 41º W DESTINATION: ANYWHERE Adidas
Posts: 4,133
Agradeceu: 837
Agradecido 6,058 Vezes em 2,106 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
Pontos: 20,442, Nível: 90
Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90
Atividade: 99%
Atividade: 99% Atividade: 99% Atividade: 99%

Nome Real: Anderson Andrade

Inventório de Setokaiba Usuário possui 1x Lock Fan Usuário possui 1x Oakley Usuário possui 1x Apple Inc. Fan/User Usuário possui 1x Honda Usuário possui 1x Windows Seven User

Padrão Rebirth Manager

Descrição: Esse mod possui a mesma função do sistema de Rebirth para L2oFF:
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar] [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar] [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

Core Patch:
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
	

    ### Eclipse Workspace Patch 1.0
    #P aCis_gameserver
    Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestAcquireSkillInfo.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/network/clientpackets/RequestAcquireSkillInfo.java       (revision 4)
    +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestAcquireSkillInfo.java       (working copy)
    @@ -17,8 +17,8 @@
     import net.sf.l2j.Config;
     import net.sf.l2j.gameserver.datatables.SkillTable;
     import net.sf.l2j.gameserver.datatables.SkillTreeTable;
    -import net.sf.l2j.gameserver.datatables.SpellbookTable;
     import net.sf.l2j.gameserver.model.L2PledgeSkillLearn;
    +import net.sf.l2j.gameserver.model.L2RebirthSkillLearn;
     import net.sf.l2j.gameserver.model.L2Skill;
     import net.sf.l2j.gameserver.model.L2SkillLearn;
     import net.sf.l2j.gameserver.model.actor.L2Npc;
    @@ -62,7 +62,7 @@
                   
                    switch (_skillType)
                    {
    -                       // General skills
    +                       // Trance's Rebirth skills.
                            case 0:
                                    int skillLvl = activeChar.getSkillLevel(_skillId);
                                    if (skillLvl >= _skillLevel)
    @@ -74,14 +74,13 @@
                                    if (!trainer.getTemplate().canTeach(activeChar.getSkillLearningClassId()))
                                            return;
                                           
    -                               for (L2SkillLearn sl : SkillTreeTable.getInstance().getAvailableSkills(activeChar, activeChar.getSkillLearningClassId()))
    +                               for (L2RebirthSkillLearn rsl : SkillTreeTable.getInstance().getAvailableRebirthSkills(activeChar, activeChar.getSkillLearningClassId()))
                                    {
    -                                       if (sl.getId() == _skillId && sl.getLevel() == _skillLevel)
    +                                       if (rsl.getId() == _skillId && rsl.getLevel() == _skillLevel)
                                            {
    -                                               AcquireSkillInfo asi = new AcquireSkillInfo(_skillId, _skillLevel, sl.getSpCost(), 0);
    -                                               int spellbookItemId = SpellbookTable.getInstance().getBookForSkill(_skillId, _skillLevel);
    -                                               if (spellbookItemId != 0)
    -                                                       asi.addRequirement(99, spellbookItemId, 1, 50);
    +                                               AcquireSkillInfo asi = new AcquireSkillInfo(_skillId, _skillLevel, rsl.getCostSp(), 0);
    +                                               if (Config.LIFE_CRYSTAL_NEEDED && rsl.getItemId() != 0)
    +                                                       asi.addRequirement(1, rsl.getItemId(), 1, 0);
                                                    sendPacket(asi);
                                                    break;
                                            }
    Index: java/net/sf/l2j/gameserver/model/base/ClassId.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/model/base/ClassId.java  (revision 4)
    +++ java/net/sf/l2j/gameserver/model/base/ClassId.java  (working copy)
    @@ -248,4 +248,15 @@
            {
                    return _parent;
            }
    +
    +       /**
    +        * @return to the first class
    +        */
    +       public final ClassId getFirstClass()
    +       {
    +               if (_parent == null)
    +                       return this;
    +              
    +               return _parent.getFirstClass();
    +       }
     }
    \ No newline at end of file
    Index: java/net/sf/l2j/gameserver/model/actor/instance/L2RebirthInstance.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/model/actor/instance/L2RebirthInstance.java      (revision 0)
    +++ java/net/sf/l2j/gameserver/model/actor/instance/L2RebirthInstance.java      (working copy)
    @@ -0,0 +1,301 @@
    +/*
    + * 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 net.sf.l2j.gameserver.model.actor.instance;
    +
    +import java.sql.Connection;
    +import java.sql.PreparedStatement;
    +import java.sql.ResultSet;
    +import java.util.HashMap;
    +
    +import net.sf.l2j.Config;
    +import net.sf.l2j.L2DatabaseFactory;
    +import net.sf.l2j.gameserver.model.base.Experience;
    +import net.sf.l2j.gameserver.model.L2ItemInstance;
    +import net.sf.l2j.gameserver.model.L2Skill;
    +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
    +import net.sf.l2j.gameserver.network.SystemMessageId;
    +import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
    +import net.sf.l2j.gameserver.network.serverpackets.StatusUpdate;
    +import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
    +import net.sf.l2j.gameserver.templates.chars.L2NpcTemplate;
    +
    +/**
    + * Rebirth Manager
    + * @author Trance
    + * @skype chr.trance
    + */
    +public final class L2RebirthInstance extends L2NpcInstance
    +{
    +       private static HashMap<Integer, Integer> _rebirthInfo = new HashMap<>();
    +      
    +       public L2RebirthInstance(int objectId, L2NpcTemplate template)
    +       {
    +               super(objectId, template);
    +       }
    +      
    +       @Override
    +       public void onBypassFeedback(L2PcInstance player, String command)
    +       {
    +               if (command.startsWith("performRebirth"))
    +               {
    +                       // Maximum rebirth count. Return the player's current Rebirth Level.
    +                       int currBirth = getRebirthLevel(player);
    +                       if (currBirth >= Config.REBIRTH_MAX)
    +                       {
    +                               NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
    +                               html.setFile("data/html/managers/rebirth-max.htm");
    +                              
    +                               player.sendPacket(html);
    +                               return;
    +                       }
    +                      
    +                       // Level requirement for a rebirth.
    +                       if (player.getLevel() < Config.REBIRTH_MIN_LEVEL)
    +                       {
    +                               NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
    +                               html.setFile("data/html/managers/rebirth-level.htm");
    +                              
    +                               player.sendPacket(html);
    +                               return;
    +                       }
    +                      
    +                       int itemId = 0, itemCount = 0, loopBirth = 0;
    +                       for (String readItems : Config.REBIRTH_ITEMS)
    +                       {
    +                               String[] currItem = readItems.split(",");
    +                               if (loopBirth == currBirth)
    +                               {
    +                                       itemId = Integer.parseInt(currItem[0]);
    +                                       itemCount = Integer.parseInt(currItem[1]);
    +                                       break;
    +                               }
    +                               loopBirth++;
    +                       }
    +                      
    +                       // Rewards the player with an item.
    +                       rebirthItemReward(player, itemId, itemCount);
    +                      
    +                       // Check and see if its the player's first rebirth calling.
    +                       boolean firstBirth = currBirth == 0;
    +                      
    +                       // Player meets requirements and starts Rebirth process.
    +                       grantRebirth(player, (currBirth + 1), firstBirth);
    +               }
    +               else
    +                       super.onBypassFeedback(player, command);
    +       }
    +      
    +       @Override
    +       public void showChatWindow(L2PcInstance player)
    +       {
    +               NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
    +               html.setFile("data/html/managers/rebirth.htm");
    +               html.replace("%objectId%", String.valueOf(getObjectId()));
    +               html.replace("%level%", "" + Config.REBIRTH_RETURN_TO_LEVEL + "");
    +              
    +               player.sendPacket(html);
    +    }
    +      
    +       /**
    +        * Physically rewards player and resets status to nothing.
    +        *
    +        * @param player the player
    +        * @param newBirthCount the new birth count
    +        * @param firstBirth the first birth
    +        */
    +       public void grantRebirth(L2PcInstance player, int newBirthCount, boolean firstBirth)
    +       {
    +               try
    +               {
    +                       // Delevel.
    +                       player.removeExpAndSp(player.getExp() - Experience.LEVEL[Config.REBIRTH_RETURN_TO_LEVEL], 0);
    +                      
    +                       // Back to the first class.
    +                       player.setClassId(player.getClassId().getFirstClass().getId());
    +                      
    +                       // Send the Server->Client packet StatusUpdate with current HP, MP and CP to this L2PcInstance
    +                       player.broadcastStatusUpdate();
    +                      
    +                       // Broadcast informations from a user to himself and his knownlist.
    +                       player.broadcastUserInfo();
    +                      
    +                       // Remove the player's current skills.
    +                       for (L2Skill skill : player.getAllSkills())
    +                               player.removeSkill(skill);
    +                      
    +                       // Give all available skills to the player.
    +                       player.giveAvailableSkills();
    +                      
    +                       // Update L2PcInstance stats in the characters table of the database.
    +                       player.store();
    +                      
    +                       if (firstBirth)
    +                               // Stores the player's information in the DB.
    +                               storePlayerBirth(player);
    +                       else
    +                               // Updates the player's information in the DB.
    +                               updatePlayerBirth(player, newBirthCount);
    +                      
    +                       // Displays a congratulation window to the player.
    +                       NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
    +                       html.setFile("data/html/managers/rebirth-successfully.htm");
    +                       html.replace("%level%", "" + Config.REBIRTH_RETURN_TO_LEVEL + "");
    +                      
    +                       player.sendPacket(html);
    +               }
    +               catch (Exception e)
    +               {
    +                       e.printStackTrace();
    +               }
    +       }
    +      
    +       /**
    +        * Rewards the player with an item.
    +        *
    +        * @param player the player
    +        * @param itemId : Identifier of the item.
    +        * @param itemCount : Quantity of items to add.
    +        */
    +       public static void rebirthItemReward(L2PcInstance player, int itemId, int itemCount)
    +       {
    +               // Incorrect amount.
    +               if (itemCount <= 0)
    +                       return;
    +              
    +               final L2ItemInstance item = player.getInventory().addItem("Quest", itemId, itemCount, player, player);
    +               if (item == null)
    +                       return;
    +              
    +               // Send message to the client.
    +               if (itemId == 57)
    +               {
    +                       SystemMessage smsg = SystemMessage.getSystemMessage(SystemMessageId.EARNED_S1_ADENA);
    +                       smsg.addItemNumber(itemCount);
    +                       player.sendPacket(smsg);
    +               }
    +               else
    +               {
    +                       if (itemCount > 1)
    +                       {
    +                               SystemMessage smsg = SystemMessage.getSystemMessage(SystemMessageId.EARNED_S2_S1_S);
    +                               smsg.addItemName(itemId);
    +                               smsg.addItemNumber(itemCount);
    +                               player.sendPacket(smsg);
    +                       }
    +                       else
    +                       {
    +                               SystemMessage smsg = SystemMessage.getSystemMessage(SystemMessageId.EARNED_ITEM_S1);
    +                               smsg.addItemName(itemId);
    +                               player.sendPacket(smsg);
    +                       }
    +               }
    +              
    +               // Send status update packet.
    +               StatusUpdate su = new StatusUpdate(player);
    +               su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());
    +               player.sendPacket(su);
    +       }
    +      
    +       /**
    +        * Return the player's current Rebirth Level.
    +        *
    +        * @param player the player
    +        * @return the rebirth level
    +        */
    +       public static int getRebirthLevel(L2PcInstance player)
    +       {
    +               int playerId = player.getObjectId();
    +               if (_rebirthInfo.get(playerId) == null)
    +                       loadRebirthInfo(player);
    +              
    +               return _rebirthInfo.get(playerId);
    +       }
    +      
    +       /**
    +        * Database caller to retrieve player's current Rebirth Level.
    +        *
    +        * @param player the player
    +        */
    +       public static void loadRebirthInfo(L2PcInstance player)
    +       {
    +               int playerId = player.getObjectId(), rebirthCount = 0;
    +              
    +               try (Connection con = L2DatabaseFactory.getInstance().getConnection())
    +               {
    +                       ResultSet rset;
    +                       PreparedStatement statement = con.prepareStatement("SELECT * FROM `character_rebirths` WHERE playerId = ?");
    +                       statement.setInt(1, playerId);
    +                       rset = statement.executeQuery();
    +                      
    +                       while (rset.next())
    +                       {
    +                               rebirthCount = rset.getInt("rebirthCount");
    +                       }
    +                      
    +                       rset.close();
    +                       statement.close();
    +               }
    +               catch (Exception e)
    +               {
    +                       e.printStackTrace();
    +               }
    +               _rebirthInfo.put(playerId, rebirthCount);
    +       }
    +      
    +       /**
    +        * Stores the player's information in the DB.
    +        *
    +        * @param player the player
    +        */
    +       public static void storePlayerBirth(L2PcInstance player)
    +       {
    +               try (Connection con = L2DatabaseFactory.getInstance().getConnection())
    +               {
    +                       PreparedStatement statement = con.prepareStatement("INSERT INTO `character_rebirths` (playerId,rebirthCount) VALUES (?,1)");
    +                       statement.setInt(1, player.getObjectId());
    +                       statement.execute();
    +                      
    +                       _rebirthInfo.put(player.getObjectId(), 1);
    +               }
    +               catch (Exception e)
    +               {
    +                       e.printStackTrace();
    +               }
    +       }
    +      
    +       /**
    +        * Updates the player's information in the DB.
    +        *
    +        * @param player the player
    +        * @param newRebirthCount the new rebirth count
    +        */
    +       public static void updatePlayerBirth(L2PcInstance player, int newRebirthCount)
    +       {
    +               int playerId = player.getObjectId();
    +              
    +               try (Connection con = L2DatabaseFactory.getInstance().getConnection())
    +               {
    +                       PreparedStatement statement = con.prepareStatement("UPDATE `character_rebirths` SET rebirthCount = ? WHERE playerId = ?");
    +                       statement.setInt(1, newRebirthCount);
    +                       statement.setInt(2, playerId);
    +                       statement.execute();
    +                      
    +                       _rebirthInfo.put(playerId, newRebirthCount);
    +               }
    +               catch (Exception e)
    +               {
    +                       e.printStackTrace();
    +               }
    +       }
    +}
    \ No newline at end of file
    Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestAcquireSkill.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/network/clientpackets/RequestAcquireSkill.java   (revision 4)
    +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestAcquireSkill.java   (working copy)
    @@ -17,8 +17,8 @@
     import net.sf.l2j.Config;
     import net.sf.l2j.gameserver.datatables.SkillTable;
     import net.sf.l2j.gameserver.datatables.SkillTreeTable;
    -import net.sf.l2j.gameserver.datatables.SpellbookTable;
     import net.sf.l2j.gameserver.model.L2PledgeSkillLearn;
    +import net.sf.l2j.gameserver.model.L2RebirthSkillLearn;
     import net.sf.l2j.gameserver.model.L2ShortCut;
     import net.sf.l2j.gameserver.model.L2Skill;
     import net.sf.l2j.gameserver.model.L2SkillLearn;
    @@ -80,7 +80,7 @@
                    // Types.
                    switch (_skillType)
                    {
    -                       case 0: // General skills.
    +                       case 0: // Trance's Rebirth skills.
                                    // Player already has such skill with same or higher level.
                                    int skillLvl = activeChar.getSkillLevel(_skillId);
                                    if (skillLvl >= _skillLevel)
    @@ -90,16 +90,17 @@
                                    if (Math.max(skillLvl, 0) + 1 != _skillLevel)
                                            return;
                                   
    -                               int spCost = 0;
    +                               int spCost = 0, idItem = 0;
                                   
                                    // Find skill information.
    -                               for (L2SkillLearn sl : SkillTreeTable.getInstance().getAvailableSkills(activeChar, activeChar.getSkillLearningClassId()))
    +                               for (L2RebirthSkillLearn rsl : SkillTreeTable.getInstance().getAvailableRebirthSkills(activeChar, activeChar.getSkillLearningClassId()))
                                    {
                                            // Skill found.
    -                                       if (sl.getId() == _skillId && sl.getLevel() == _skillLevel)
    +                                       if (rsl.getId() == _skillId && rsl.getLevel() == _skillLevel)
                                            {
                                                    exists = true;
    -                                               spCost = sl.getSpCost();
    +                                               idItem = rsl.getItemId();
    +                                               spCost = rsl.getCostSp();
                                                    break;
                                            }
                                    }
    @@ -116,11 +117,10 @@
                                            return;
                                    }
                                   
    -                               // Get spellbook and try to consume it.
    -                               int spbId = SpellbookTable.getInstance().getBookForSkill(_skillId, _skillLevel);
    -                               if (spbId > 0)
    +                               // Get item and try to consume it.
    +                               if (idItem > 0)
                                    {
    -                                       if (!activeChar.destroyItemByItemId("SkillLearn", spbId, 1, trainer, true))
    +                                       if (!activeChar.destroyItemByItemId("SkillLearn", idItem, 1, trainer, false))
                                            {
                                                    activeChar.sendPacket(SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL);
                                                    L2NpcInstance.showSkillList(activeChar, trainer, activeChar.getSkillLearningClassId());
    Index: java/net/sf/l2j/gameserver/model/actor/instance/L2NpcInstance.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/model/actor/instance/L2NpcInstance.java  (revision 4)
    +++ java/net/sf/l2j/gameserver/model/actor/instance/L2NpcInstance.java  (working copy)
    @@ -19,11 +19,11 @@
     import net.sf.l2j.gameserver.datatables.SkillTable;
     import net.sf.l2j.gameserver.datatables.SkillTable.FrequentSkill;
     import net.sf.l2j.gameserver.datatables.SkillTreeTable;
    +import net.sf.l2j.gameserver.model.L2RebirthSkillLearn;
     import net.sf.l2j.gameserver.model.L2Effect;
     import net.sf.l2j.gameserver.model.L2EnchantSkillData;
     import net.sf.l2j.gameserver.model.L2EnchantSkillLearn;
     import net.sf.l2j.gameserver.model.L2Skill;
    -import net.sf.l2j.gameserver.model.L2SkillLearn;
     import net.sf.l2j.gameserver.model.actor.L2Npc;
     import net.sf.l2j.gameserver.model.actor.status.FolkStatus;
     import net.sf.l2j.gameserver.model.base.ClassId;
    @@ -99,13 +99,13 @@
                    AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.SkillType.Usual);
                    boolean empty = true;
                   
    -               for (L2SkillLearn sl : SkillTreeTable.getInstance().getAvailableSkills(player, classId))
    +               for (L2RebirthSkillLearn rsl : SkillTreeTable.getInstance().getAvailableRebirthSkills(player, classId))
                    {
    -                       L2Skill sk = SkillTable.getInstance().getInfo(sl.getId(), sl.getLevel());
    +                       L2Skill sk = SkillTable.getInstance().getInfo(rsl.getId(), rsl.getLevel());
                            if (sk == null)
                                    continue;
                           
    -                       asl.addSkill(sl.getId(), sl.getLevel(), sl.getLevel(), sl.getSpCost(), 0);
    +                       asl.addSkill(rsl.getId(), rsl.getLevel(), rsl.getLevel(), rsl.getCostSp(), 0);
                            empty = false;
                    }
                   
    Index: config/events.properties
    ===================================================================
    --- config/events.properties    (revision 4)
    +++ config/events.properties    (working copy)
    @@ -251,4 +251,19 @@
     AltFishChampionshipReward2 = 500000
     AltFishChampionshipReward3 = 300000
     AltFishChampionshipReward4 = 200000
    -AltFishChampionshipReward5 = 100000
    \ No newline at end of file
    +AltFishChampionshipReward5 = 100000
    +
    +#================================================================
    +#                    Trance's Rebirth Manager
    +#================================================================
    +# Minimum level for Rebirth
    +RebirthMinLevel = 78
    +
    +# Maximum rebirth's allowed
    +RebirthMaxAllowed = 3
    +
    +# Return to level
    +RebirthReturnToLevel = 1
    +
    +# Rebirth items
    +RebirthItems = 2822,1;2822,1;2822,1;
    \ No newline at end of file
    Index: java/net/sf/l2j/gameserver/datatables/SkillTreeTable.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/datatables/SkillTreeTable.java   (revision 4)
    +++ java/net/sf/l2j/gameserver/datatables/SkillTreeTable.java   (working copy)
    @@ -26,6 +26,7 @@
     import net.sf.l2j.gameserver.model.L2EnchantSkillData;
     import net.sf.l2j.gameserver.model.L2EnchantSkillLearn;
     import net.sf.l2j.gameserver.model.L2PledgeSkillLearn;
    +import net.sf.l2j.gameserver.model.L2RebirthSkillLearn;
     import net.sf.l2j.gameserver.model.L2Skill;
     import net.sf.l2j.gameserver.model.L2SkillLearn;
     import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
    @@ -46,6 +47,7 @@
            private List<L2PledgeSkillLearn> _pledgeSkillTrees;
            private Map<Integer, L2EnchantSkillData> _enchantSkillData;
            private List<L2EnchantSkillLearn> _enchantSkillTrees;
    +       private List<L2RebirthSkillLearn> _rebirthSkillTrees;
           
            public static SkillTreeTable getInstance()
            {
    @@ -207,10 +209,43 @@
                            _log.severe("PledgeTable: Error while loading pledge skills: " + e);
                    }
                   
    +               // Rebirth skills tree
    +               try
    +               {
    +                       _rebirthSkillTrees = new ArrayList<>();
    +                      
    +                       File f = new File("./data/xml/skillstrees/rebirth_skills_tree.xml");
    +                       Document doc = XMLDocumentFactory.getInstance().loadDocument(f);
    +                      
    +                       for (Node list = doc.getFirstChild().getFirstChild(); list != null; list = list.getNextSibling())
    +                       {
    +                               if ("skill".equalsIgnoreCase(list.getNodeName()))
    +                               {
    +                                       NamedNodeMap skillAttr = list.getAttributes();
    +                                      
    +                                       int skillId = Integer.parseInt(skillAttr.getNamedItem("id").getNodeValue());
    +                                       int skillLvl = Integer.parseInt(skillAttr.getNamedItem("lvl").getNodeValue());
    +                                       int costSp = Integer.valueOf(skillAttr.getNamedItem("sp").getNodeValue());
    +                                       int itemId = 0;
    +                                      
    +                                       Node att = skillAttr.getNamedItem("itemId");
    +                                       if (att != null)
    +                                               itemId = Integer.valueOf(att.getNodeValue());
    +                                      
    +                                       _rebirthSkillTrees.add(new L2RebirthSkillLearn(skillId, skillLvl, costSp, itemId));
    +                               }
    +                       }
    +               }
    +               catch (Exception e)
    +               {
    +                       _log.severe("RebirthTable: Error while loading rebirth skills: " + e);
    +               }
    +              
                    _log.config("FishingSkillTreeTable: Loaded " + _fishingSkillTrees.size() + " general skills.");
                    _log.config("DwarvenCraftSkillTreeTable: Loaded " + _expandDwarvenCraftSkillTrees.size() + " dwarven skills.");
                    _log.config("EnchantSkillTreeTable: Loaded " + _enchantSkillData.size() + " enchant types and " + _enchantSkillTrees.size() + " enchant skills.");
                    _log.config("PledgeSkillTreeTable: Loaded " + _pledgeSkillTrees.size() + " pledge skills.");
    +               _log.config("RebirthSkillTreeTable: Loaded " + _rebirthSkillTrees.size() + " rebirth skills.");
            }
           
            /**
    @@ -509,6 +544,39 @@
                    return result;
            }
           
    +       /**
    +        * @param cha L2PcInstance, player whom skills are compared.
    +        * @param classId
    +        * @return list of available rebirth skills for L2PcInstance.
    +        */
    +       public List<L2RebirthSkillLearn> getAvailableRebirthSkills(L2PcInstance cha, ClassId classId)
    +       {
    +               List<L2RebirthSkillLearn> result = new ArrayList<>();
    +              
    +               L2Skill[] chaSkills = cha.getAllSkills();
    +              
    +               for (L2RebirthSkillLearn rsl : _rebirthSkillTrees)
    +               {
    +                       boolean found = false;
    +                      
    +                       for (L2Skill s : chaSkills)
    +                       {
    +                               if (s.getId() == rsl.getId())
    +                               {
    +                                       if (s.getLevel() == rsl.getLevel() - 1)
    +                                               result.add(rsl);
    +                                      
    +                                       found = true;
    +                                       break;
    +                               }
    +                       }
    +                      
    +                       if (!found && rsl.getLevel() == 1)
    +                               result.add(rsl);
    +               }
    +               return result;
    +       }
    +      
            public int getMinSkillLevel(int skillId, int skillLvl)
            {
                    int skillHashCode = SkillTable.getSkillHashCode(skillId, skillLvl);
    Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java   (revision 4)
    +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java   (working copy)
    @@ -5643,16 +5643,6 @@
                                                                    player._classIndex = subClass.getClassIndex();
                                            }
                                    }
    -                               if (player.getClassIndex() == 0 && activeClassId != player.getBaseClass())
    -                               {
    -                                       // Subclass in use but doesn't exist in DB -
    -                                       // a possible restart-while-modifysubclass cheat has been attempted.
    -                                       // Switching to use base class
    -                                       player.setClassId(player.getBaseClass());
    -                                       _log.warning("Player " + player.getName() + " reverted to base class. Possibly has tried a relogin exploit while subclassing.");
    -                               }
    -                               else
    -                                       player._activeClass = activeClassId;
                                   
                                    player.setApprentice(rset.getInt("apprentice"));
                                    player.setSponsor(rset.getInt("sponsor"));
    Index: java/net/sf/l2j/gameserver/model/actor/L2Character.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/model/actor/L2Character.java     (revision 4)
    +++ java/net/sf/l2j/gameserver/model/actor/L2Character.java     (working copy)
    @@ -4515,6 +4515,10 @@
                    if (skill == null)
                            return null;
                   
    +               // Skip the rebirth skills.
    +               if (skill.getId() >= 549 && skill.getId() <= 560)
    +                       return null;
    +              
                    return removeSkill(skill.getId(), true);
            }
           
    Index: java/net/sf/l2j/Config.java
    ===================================================================
    --- java/net/sf/l2j/Config.java (revision 4)
    +++ java/net/sf/l2j/Config.java (working copy)
    @@ -225,6 +225,12 @@
            public static int ALT_FISH_CHAMPIONSHIP_REWARD_4;
            public static int ALT_FISH_CHAMPIONSHIP_REWARD_5;
           
    +       /** Trance's Rebirth Manager */
    +       public static int REBIRTH_MIN_LEVEL;
    +       public static int REBIRTH_MAX;
    +       public static int REBIRTH_RETURN_TO_LEVEL;
    +       public static String[] REBIRTH_ITEMS;
    +      
            // --------------------------------------------------
            // HexID
            // --------------------------------------------------
    @@ -870,6 +876,11 @@
                            ALT_FISH_CHAMPIONSHIP_REWARD_4 = events.getProperty("AltFishChampionshipReward4", 200000);
                            ALT_FISH_CHAMPIONSHIP_REWARD_5 = events.getProperty("AltFishChampionshipReward5", 100000);
                           
    +                       REBIRTH_MIN_LEVEL = events.getProperty("RebirthMinLevel", 78);
    +                       REBIRTH_MAX = events.getProperty("RebirthMaxAllowed", 3);
    +                       REBIRTH_RETURN_TO_LEVEL = events.getProperty("RebirthReturnToLevel", 1);
    +                       REBIRTH_ITEMS = events.getProperty("RebirthItems", "").split(";");
    +                      
                            // FloodProtector
                            ExProperties security = load(FLOOD_PROTECTOR_FILE);
                            loadFloodProtectorConfig(security, FLOOD_PROTECTOR_ROLL_DICE, "RollDice", "42");
    Index: java/net/sf/l2j/gameserver/model/L2RebirthSkillLearn.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/model/L2RebirthSkillLearn.java   (revision 0)
    +++ java/net/sf/l2j/gameserver/model/L2RebirthSkillLearn.java   (working copy)
    @@ -0,0 +1,55 @@
    +/*
    + * 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 net.sf.l2j.gameserver.model;
    +
    +/**
    + * @author Trance
    + * @skype chr.trance
    + */
    +public final class L2RebirthSkillLearn
    +{
    +       private final int _id;
    +       private final int _level;
    +       private final int _costSp;
    +       private final int _itemId;
    +      
    +       public L2RebirthSkillLearn(int id, int lvl, int costSp, int itemId)
    +       {
    +               _id = id;
    +               _level = lvl;
    +               _costSp = costSp;
    +               _itemId = itemId;
    +       }
    +      
    +       public int getId()
    +       {
    +               return _id;
    +       }
    +      
    +       public int getLevel()
    +       {
    +               return _level;
    +       }
    +      
    +       public int getCostSp()
    +       {
    +               return _costSp;
    +       }
    +      
    +       public int getItemId()
    +       {
    +               return _itemId;
    +       }
    +}
    \ No newline at end of file

Datapack Patch:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
	

    ### Eclipse Workspace Patch 1.0
    #P aCis_datapack
    Index: tools/database_installer.sh
    ===================================================================
    --- tools/database_installer.sh (revision 4)
    +++ tools/database_installer.sh (working copy)
    @@ -90,6 +90,7 @@
     $MYG < ../sql/character_mail.sql &> /dev/null
     $MYG < ../sql/character_quests.sql &> /dev/null
     $MYG < ../sql/character_raid_points.sql &> /dev/null
    +$MYG < ../sql/character_rebirths.sql &> /dev/null
     $MYG < ../sql/character_recipebook.sql &> /dev/null
     $MYG < ../sql/character_recommends.sql &> /dev/null
     $MYG < ../sql/character_shortcuts.sql &> /dev/null
    Index: data/xml/skills/0500-0599.xml
    ===================================================================
    --- data/xml/skills/0500-0599.xml       (revision 0)
    +++ data/xml/skills/0500-0599.xml       (working copy)
    @@ -0,0 +1,147 @@
    +<?xml version='1.0' encoding='utf-8'?>
    +<list>
    +       <skill id="549" levels="3" name="Rebirth Guidance">
    +               <!-- Lv 1: Increases accuracy by 5%. -->
    +               <!-- Lv 2: Increases accuracy by 10%. -->
    +               <!-- Lv 3: Increases accuracy by 15%. -->
    +               <table name="#reb"> 1.05 1.1 1.15 </table>
    +               <set name="target" val="TARGET_SELF"/>
    +               <set name="skillType" val="BUFF"/>
    +               <set name="operateType" val="OP_PASSIVE"/>
    +               <for>
    +                       <mul order="0x30" stat="accCombat" val="#reb"/>
    +               </for>
    +       </skill>
    +       <skill id="550" levels="3" name="Rebirth Haste">
    +               <!-- Lv 1: Increases Atk. Spd. by 5%. -->
    +               <!-- Lv 2: Increases Atk. Spd. by 10%. -->
    +               <!-- Lv 3: Increases Atk. Spd. by 15%. -->
    +               <table name="#reb"> 1.05 1.1 1.15 </table>
    +               <set name="target" val="TARGET_SELF"/>
    +               <set name="skillType" val="BUFF"/>
    +               <set name="operateType" val="OP_PASSIVE"/>
    +               <for>
    +                       <mul order="0x30" stat="pAtkSpd" val="#reb"/>
    +               </for>
    +       </skill>
    +       <skill id="551" levels="3" name="Rebirth Health">
    +               <!-- Lv 1: Increases HP by 10%. -->
    +               <!-- Lv 2: Increases HP by 20%. -->
    +               <!-- Lv 3: Increases HP by 30%. -->
    +               <table name="#reb"> 1.1 1.2 1.3 </table>
    +               <set name="target" val="TARGET_SELF"/>
    +               <set name="skillType" val="BUFF"/>
    +               <set name="operateType" val="OP_PASSIVE"/>
    +               <for>
    +                       <mul order="0x30" stat="maxHp" val="#reb"/>
    +               </for>
    +       </skill>
    +       <skill id="552" levels="3" name="Rebirth Mana">
    +               <!-- Lv 1: Increases MP by 10%. -->
    +               <!-- Lv 2: Increases MP by 20%. -->
    +               <!-- Lv 3: Increases MP by 30%. -->
    +               <table name="#reb"> 1.1 1.2 1.3 </table>
    +               <set name="target" val="TARGET_SELF"/>
    +               <set name="skillType" val="BUFF"/>
    +               <set name="operateType" val="OP_PASSIVE"/>
    +               <for>
    +                       <mul order="0x30" stat="maxMp" val="#reb"/>
    +               </for>
    +       </skill>
    +       <skill id="553" levels="3" name="Rebirth Wind Walk">
    +               <!-- Lv 1: Increases speed by 5%. -->
    +               <!-- Lv 2: Increases speed by 10%. -->
    +               <!-- Lv 3: Increases speed by 15%. -->
    +               <table name="#reb"> 1.05 1.1 1.15 </table>
    +               <set name="target" val="TARGET_SELF"/>
    +               <set name="skillType" val="BUFF"/>
    +               <set name="operateType" val="OP_PASSIVE"/>
    +               <for>
    +                       <mul order="0x30" stat="runSpd" val="#reb"/>
    +               </for>
    +       </skill>
    +       <skill id="554" levels="3" name="Rebirth Focus">
    +               <!-- Lv 1: Increases critical attack rate by 15. -->
    +               <!-- Lv 2: Increases critical attack rate by 30. -->
    +               <!-- Lv 3: Increases critical attack rate by 45. -->
    +               <table name="#reb"> 15 30 45 </table>
    +               <set name="target" val="TARGET_SELF"/>
    +               <set name="skillType" val="BUFF"/>
    +               <set name="operateType" val="OP_PASSIVE"/>
    +               <for>
    +                       <add order="0x40" stat="rCrit" val="#reb"/>
    +               </for>
    +       </skill>
    +       <skill id="555" levels="3" name="Rebirth Might">
    +               <!-- Lv 1: Increases P. Atk. by 5%. -->
    +               <!-- Lv 2: Increases P. Atk. by 10%. -->
    +               <!-- Lv 3: Increases P. Atk. by 15%. -->
    +               <table name="#reb"> 1.05 1.1 1.15 </table>
    +               <set name="target" val="TARGET_SELF"/>
    +               <set name="skillType" val="BUFF"/>
    +               <set name="operateType" val="OP_PASSIVE"/>
    +               <for>
    +                       <mul order="0x30" stat="pAtk" val="#reb"/>
    +               </for>
    +       </skill>
    +       <skill id="556" levels="3" name="Rebirth Empower">
    +               <!-- Lv 1: Increases M. Atk. by 5%. -->
    +               <!-- Lv 2: Increases M. Atk. by 10%. -->
    +               <!-- Lv 3: Increases M. Atk. by 15%. -->
    +               <table name="#reb"> 1.05 1.1 1.15 </table>
    +               <set name="target" val="TARGET_SELF"/>
    +               <set name="skillType" val="BUFF"/>
    +               <set name="operateType" val="OP_PASSIVE"/>
    +               <for>
    +                       <mul order="0x30" stat="mAtk" val="#reb"/>
    +               </for>
    +       </skill>
    +       <skill id="557" levels="3" name="Rebirth Shield">
    +               <!-- Lv 1: Increases P. Def. by 5%. -->
    +               <!-- Lv 2: Increases P. Def. by 10%. -->
    +               <!-- Lv 3: Increases P. Def. by 15%. -->
    +               <table name="#reb"> 1.05 1.1 1.15 </table>
    +               <set name="target" val="TARGET_SELF"/>
    +               <set name="skillType" val="BUFF"/>
    +               <set name="operateType" val="OP_PASSIVE"/>
    +               <for>
    +                       <mul order="0x30" stat="pDef" val="#reb"/>
    +               </for>
    +       </skill>
    +       <skill id="558" levels="3" name="Rebirth Magic Barrier">
    +               <!-- Lv 1: Increases M. Def. by 5%. -->
    +               <!-- Lv 2: Increases M. Def. by 10%. -->
    +               <!-- Lv 3: Increases M. Def. by 15%. -->
    +               <table name="#reb"> 1.05 1.1 1.15 </table>
    +               <set name="target" val="TARGET_SELF"/>
    +               <set name="skillType" val="BUFF"/>
    +               <set name="operateType" val="OP_PASSIVE"/>
    +               <for>
    +                       <mul order="0x30" stat="mDef" val="#reb"/>
    +               </for>
    +       </skill>
    +       <skill id="559" levels="3" name="Rebirth Agility">
    +               <!-- Lv 1: Increases Evasion by 6. -->
    +               <!-- Lv 2: Increases Evasion by 11. -->
    +               <!-- Lv 3: Increases Evasion by 17. -->
    +               <table name="#reb"> 6 11 17 </table>
    +               <set name="target" val="TARGET_SELF"/>
    +               <set name="skillType" val="BUFF"/>
    +               <set name="operateType" val="OP_PASSIVE"/>
    +               <for>
    +                       <add order="0x10" stat="rEvas" val="#reb"/>
    +               </for>
    +       </skill>
    +       <skill id="560" levels="3" name="Rebirth Acumen">
    +               <!-- Lv 1: Increases Casting Speed by 5%. -->
    +               <!-- Lv 2: Increases Casting Speed by 10%. -->
    +               <!-- Lv 3: Increases Casting Speed by 15%. -->
    +               <table name="#reb"> 1.05 1.1 1.15 </table>
    +               <set name="target" val="TARGET_SELF"/>
    +               <set name="skillType" val="BUFF"/>
    +               <set name="operateType" val="OP_PASSIVE"/>
    +               <for>
    +                       <mul order="0x30" stat="mAtkSpd" val="#reb"/>
    +               </for>
    +       </skill>
    +</list>
    \ No newline at end of file
    Index: sql/character_rebirths.sql
    ===================================================================
    --- sql/character_rebirths.sql  (revision 0)
    +++ sql/character_rebirths.sql  (working copy)
    @@ -0,0 +1,8 @@
    +SET FOREIGN_KEY_CHECKS=0;
    +
    +DROP TABLE IF EXISTS `character_rebirths`;
    +CREATE TABLE `character_rebirths` (
    +  `playerId` int(20) NOT NULL,
    +  `rebirthCount` int(2) NOT NULL,
    +  PRIMARY KEY (`playerId`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    \ No newline at end of file
    Index: data/xml/skillstrees/rebirth_skills_tree.xml
    ===================================================================
    --- data/xml/skillstrees/rebirth_skills_tree.xml        (revision 0)
    +++ data/xml/skillstrees/rebirth_skills_tree.xml        (working copy)
    @@ -0,0 +1,39 @@
    +<?xml version='1.0' encoding='utf-8'?>
    +<list>
    +       <skill id="549" lvl="1" sp="100" itemId="2822"/> <!-- Rebirth Guidance -->
    +       <skill id="549" lvl="2" sp="100" itemId="2822"/> <!-- Rebirth Guidance -->
    +       <skill id="549" lvl="3" sp="100" itemId="2822"/> <!-- Rebirth Guidance -->
    +       <skill id="550" lvl="1" sp="100" itemId="2822"/> <!-- Rebirth Haste -->
    +       <skill id="550" lvl="2" sp="100" itemId="2822"/> <!-- Rebirth Haste -->
    +       <skill id="550" lvl="3" sp="100" itemId="2822"/> <!-- Rebirth Haste -->
    +       <skill id="551" lvl="1" sp="100" itemId="2822"/> <!-- Rebirth Health -->
    +       <skill id="551" lvl="2" sp="100" itemId="2822"/> <!-- Rebirth Health -->
    +       <skill id="551" lvl="3" sp="100" itemId="2822"/> <!-- Rebirth Health -->
    +       <skill id="552" lvl="1" sp="100" itemId="2822"/> <!-- Rebirth Mana -->
    +       <skill id="552" lvl="2" sp="100" itemId="2822"/> <!-- Rebirth Mana -->
    +       <skill id="552" lvl="3" sp="100" itemId="2822"/> <!-- Rebirth Mana -->
    +       <skill id="553" lvl="1" sp="100" itemId="2822"/> <!-- Rebirth Wind Walk -->
    +       <skill id="553" lvl="2" sp="100" itemId="2822"/> <!-- Rebirth Wind Walk -->
    +       <skill id="553" lvl="3" sp="100" itemId="2822"/> <!-- Rebirth Wind Walk -->
    +       <skill id="554" lvl="1" sp="100" itemId="2822"/> <!-- Rebirth Focus -->
    +       <skill id="554" lvl="2" sp="100" itemId="2822"/> <!-- Rebirth Focus -->
    +       <skill id="554" lvl="3" sp="100" itemId="2822"/> <!-- Rebirth Focus -->
    +       <skill id="555" lvl="1" sp="100" itemId="2822"/> <!-- Rebirth Might -->
    +       <skill id="555" lvl="2" sp="100" itemId="2822"/> <!-- Rebirth Might -->
    +       <skill id="555" lvl="3" sp="100" itemId="2822"/> <!-- Rebirth Might -->
    +       <skill id="556" lvl="1" sp="100" itemId="2822"/> <!-- Rebirth Empower -->
    +       <skill id="556" lvl="2" sp="100" itemId="2822"/> <!-- Rebirth Empower -->
    +       <skill id="556" lvl="3" sp="100" itemId="2822"/> <!-- Rebirth Empower -->
    +       <skill id="557" lvl="1" sp="100" itemId="2822"/> <!-- Rebirth Shield -->
    +       <skill id="557" lvl="2" sp="100" itemId="2822"/> <!-- Rebirth Shield -->
    +       <skill id="557" lvl="3" sp="100" itemId="2822"/> <!-- Rebirth Shield -->
    +       <skill id="558" lvl="1" sp="100" itemId="2822"/> <!-- Rebirth Magic Barrier -->
    +       <skill id="558" lvl="2" sp="100" itemId="2822"/> <!-- Rebirth Magic Barrier -->
    +       <skill id="558" lvl="3" sp="100" itemId="2822"/> <!-- Rebirth Magic Barrier -->
    +       <skill id="559" lvl="1" sp="100" itemId="2822"/> <!-- Rebirth Agility -->
    +       <skill id="559" lvl="2" sp="100" itemId="2822"/> <!-- Rebirth Agility -->
    +       <skill id="559" lvl="3" sp="100" itemId="2822"/> <!-- Rebirth Agility -->
    +       <skill id="560" lvl="1" sp="100" itemId="2822"/> <!-- Rebirth Acumen -->
    +       <skill id="560" lvl="2" sp="100" itemId="2822"/> <!-- Rebirth Acumen -->
    +       <skill id="560" lvl="3" sp="100" itemId="2822"/> <!-- Rebirth Acumen -->
    +</list>
    \ No newline at end of file
    Index: data/html/managers/rebirth-max.htm
    ===================================================================
    --- data/html/managers/rebirth-max.htm  (revision 0)
    +++ data/html/managers/rebirth-max.htm  (working copy)
    @@ -0,0 +1,8 @@
    +<html>
    +<body>
    +       <center><font color="FF9900">Rebirth Manager</font></center>
    +       <img src="L2UI.SquareWhite" width="280" height="1"><br>
    +       &nbsp;You can't perform another rebirth. There's a maximum of<br1>
    +       &nbsp;3 rebirths, that you've already reached.
    +</body>
    +</html>
    \ No newline at end of file
    Index: data/html/managers/rebirth-successfully.htm
    ===================================================================
    --- data/html/managers/rebirth-successfully.htm (revision 0)
    +++ data/html/managers/rebirth-successfully.htm (working copy)
    @@ -0,0 +1,7 @@
    +<html>
    +<body>
    +       <center><font color="FF9900">Rebirth Manager</font></center>
    +       <img src="L2UI.SquareWhite" width="280" height="1"><br>
    +       &nbsp;Your character has been reset successfully to level %level%.
    +</body>
    +</html>
    \ No newline at end of file
    Index: tools/database_installer.bat
    ===================================================================
    --- tools/database_installer.bat        (revision 4)
    +++ tools/database_installer.bat        (working copy)
    @@ -69,6 +69,7 @@
     %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_mail.sql
    %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_quests.sql
    %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_raid_points.sql
    +%mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_rebirths.sql
    %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_recipebook.sql
    %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_recommends.sql
    %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/character_shortcuts.sql
    Index: data/html/managers/rebirth.htm
    ===================================================================
    --- data/html/managers/rebirth.htm      (revision 0)
    +++ data/html/managers/rebirth.htm      (working copy)
    @@ -0,0 +1,23 @@
    +<html>
    +<body>
    +       <center><font color="FF9900">Rebirth Manager</font></center>
    +       <img src="L2UI.SquareWhite" width="280" height="1"><br>
    +       <table>
    +               <tr>
    +                       <td>&nbsp;A rebirth can be performed to obtain a <font color="FF9900">book of rebirth</font>.<br1>
    +                       &nbsp;A character can perform 3 rebirths.<br></td>
    +               </tr>
    +               <tr>
    +                       <td>&nbsp;A <font color="FF9900">book of rebirth</font> can be used to create a Rebirth Cloak<br1>
    +                       &nbsp;(with extraordinary skills).<br></td>
    +               </tr>
    +               <tr>
    +                       <td>&nbsp;A rebirth is a new birth, again you will become a novice<br1>
    +                       &nbsp;player (lv %lv%), without any skills. You will keep your items.<br><br><br></td>
    +               </tr>
    +               <tr>
    +                       <td><center><a action="bypass -h npc_%objectId%_performRebirth">Perform a rebirth</a></center></td>
    +               </tr>
    +       </table>
    +</body>
    +</html>
    \ No newline at end of file
    Index: data/xml/npcs/npcs.xml
    ===================================================================
    --- data/xml/npcs/npcs.xml      (revision 4)
    +++ data/xml/npcs/npcs.xml      (working copy)
    @@ -300199,4 +300199,36 @@
                            <skill id="4416" level="16"/>
                    </skills>
            </npc>
    +       <npc id="50008" idTemplate="30523" name="Selenor" title="Rebirth Manager">
    +               <set name="level" val="70"/>
    +               <set name="radius" val="7.0"/>
    +               <set name="height" val="16.5"/>
    +               <set name="rHand" val="0"/>
    +               <set name="lHand" val="0"/>
    +               <set name="type" val="L2Rebirth"/>
    +               <set name="exp" val="0"/>
    +               <set name="sp" val="0"/>
    +               <set name="hp" val="2444.46819"/>
    +               <set name="mp" val="1345.8"/>
    +               <set name="hpRegen" val="7.5"/>
    +               <set name="mpRegen" val="2.7"/>
    +               <set name="pAtk" val="688.86373"/>
    +               <set name="pDef" val="700.91597"/>
    +               <set name="mAtk" val="470.40463"/>
    +               <set name="mDef" val="700.53847"/>
    +               <set name="crit" val="4"/>
    +               <set name="atkSpd" val="253"/>
    +               <set name="str" val="22"/>
    +               <set name="int" val="41"/>
    +               <set name="dex" val="21"/>
    +               <set name="wit" val="20"/>
    +               <set name="con" val="27"/>
    +               <set name="men" val="20"/>
    +               <set name="corpseTime" val="7"/>
    +               <set name="walkSpd" val="33"/>
    +               <set name="runSpd" val="120"/>
    +               <set name="dropHerbGroup" val="0"/>
    +               <set name="attackRange" val="40"/>
    +               <ai type="mage" ssCount="0" ssRate="0" spsCount="0" spsRate="0" aggro="0" clan="" clanRange="0" clanIgnore="" canMove="false" seedable="false"/>
    +       </npc>
     </list>
    Index: data/html/managers/rebirth-level.htm
    ===================================================================
    --- data/html/managers/rebirth-level.htm        (revision 0)
    +++ data/html/managers/rebirth-level.htm        (working copy)
    @@ -0,0 +1,7 @@
    +<html>
    +<body>
    +       <center><font color="FF9900">Rebirth Manager</font></center>
    +       <img src="L2UI.SquareWhite" width="280" height="1"><br>
    +       &nbsp;Sorry, your can't perform a rebirth if you're not level 78.
    +</body>
    +</html>
    \ No newline at end of file
Client Side:
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]


Senha: www.secretexperience.net


Developed by Tяαnce

Setokaiba está online agora  
Os Seguintes 3 Usuários disseram Obrigado(a) para Setokaiba por gostarem deste post :
RedHoT (29-09-2013), renat0- (02-02-2015), WilliamFS (29-09-2013)
Links Patrocinados
Antigo 29-09-2013, 12:22 PM   #2 (permalink)
Membro - Soldado
 
Avatar de RedHoT
 
Registrado em: Feb 2010
Localização: Cachoeiro de Itapemirim
Posts: 15
Agradeceu: 11
Agradecido 24 Vezes em 11 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
Enviar mensagem via Windows Live Messenger para RedHoT Enviar mensagem via Skype para RedHoT
Pontos: 2,797, Nível: 32
Pontos: 2,797, Nível: 32 Pontos: 2,797, Nível: 32 Pontos: 2,797, Nível: 32
Atividade: 99%
Atividade: 99% Atividade: 99% Atividade: 99%

Nome Real: Leandro Cândido da Silva

Inventório de RedHoT

Padrão

Seto, poderia adicionar prefixo para a revisão aCis (muito utilizada atualmente) e "Outras" para revisões que não estejam na lista, pois Tutoriais fica sem sentido.

Abraço.

Edit: o Datapack patch tá errado! Está com o core patch também.


Última edição por RedHoT; 29-09-2013 às 12:38 PM..
RedHoT está offline   Responder com Citação
O seguinte membro ao lado disse Obrigado(a) a : RedHoT por gostar deste Post :
Setokaiba (29-09-2013)
Antigo 29-09-2013, 06:40 PM   #3 (permalink)
Jesus Te Ama, Mas EU Não!
 
Avatar de Setokaiba
 
Registrado em: Oct 2008
Localização: 45º 33º 34º N | 122º 41º 41º W DESTINATION: ANYWHERE Adidas
Posts: 4,133
Agradeceu: 837
Agradecido 6,058 Vezes em 2,106 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
Pontos: 20,442, Nível: 90
Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90
Atividade: 99%
Atividade: 99% Atividade: 99% Atividade: 99%

Nome Real: Anderson Andrade

Inventório de Setokaiba Usuário possui 1x Lock Fan Usuário possui 1x Oakley Usuário possui 1x Apple Inc. Fan/User Usuário possui 1x Honda Usuário possui 1x Windows Seven User

Padrão

Citação:
Postado Originalmente por RedHoT [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
Seto, poderia adicionar prefixo para a revisão aCis (muito utilizada atualmente) e "Outras" para revisões que não estejam na lista, pois Tutoriais fica sem sentido.

Abraço.

Edit: o Datapack patch tá errado! Está com o core patch também.
Corrigido.

Sugestões implementadas.

Setokaiba está online agora   Responder com Citação
Resposta

Tags
gerenciador, manager, rebirth


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
Trackbacks are Sim
Pingbacks are Sim
Refbacks are Sim



Horários baseados na GMT -3. Agora são 08:12 AM.
 



Search Engine Optimization by vBSEO 3.3.0