Secret Experience

Secret Experience (https://secretexperience.net/index.php)
-   [Lineage] Java Mods (https://secretexperience.net/forumdisplay.php?f=636)
-   -   [L2JServer] Check Skills ON Enter (https://secretexperience.net/showthread.php?t=24084)

B1Z4R0 07-08-2010 02:58 PM

Check Skills ON Enter
 
Código:

Index: /Trunk/L2JKS-GameServer/java/lt/l2ks/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- /Trunk/L2JKS-GameServer/java/lt/l2ks/gameserver/network/clientpackets/EnterWorld.java (revision 10)
+++ /Trunk/L2JKS-GameServer/java/lt/l2ks/gameserver/network/clientpackets/EnterWorld.java (revision 12)
@@ -284,4 +284,9 @@
                if (CTF._savePlayers.contains(activeChar.getName()))
                        CTF.addDisconnectedPlayer(activeChar);
+                               
+                if (Config.CHECK_SKILLS_ON_ENTER && !Config.ALT_GAME_SKILL_LEARN)
+                {
+                        activeChar.checkAllowedSkills();
+                }
 
                sendPacket(new ShortCutInit(activeChar));
Index: /Trunk/L2JKS-GameServer/java/lt/l2ks/gameserver/model/actor/instance/L2VillageMasterInstance.java
===================================================================
--- /Trunk/L2JKS-GameServer/java/lt/l2ks/gameserver/model/actor/instance/L2VillageMasterInstance.java (revision 10)
+++ /Trunk/L2JKS-GameServer/java/lt/l2ks/gameserver/model/actor/instance/L2VillageMasterInstance.java (revision 12)
@@ -49,4 +49,5 @@
 import lt.l2ks.gameserver.templates.L2NpcTemplate;
 import lt.l2ks.gameserver.util.Util;
+import lt.l2ks.gameserver.instancemanager.CoupleManager;
 
 
@@ -422,4 +423,6 @@
 
                                        player.sendPacket(new SystemMessage(SystemMessageId.SUBCLASS_TRANSFER_COMPLETED)); // Transfer completed.
+                                        if(Config.CHECK_SKILLS_ON_ENTER && !Config.ALT_GAME_SKILL_LEARN) player.checkAllowedSkills();
+                                        CoupleManager.getInstance().checkCouple(player);
                                        break;
                                case 6: // Change/Cancel Subclass - Choice
@@ -482,4 +485,6 @@
 
                                                player.sendPacket(new SystemMessage(SystemMessageId.ADD_NEW_SUBCLASS)); // Subclass added.
+                                                if(Config.CHECK_SKILLS_ON_ENTER && !Config.ALT_GAME_SKILL_LEARN) player.checkAllowedSkills();
+                                                CoupleManager.getInstance().checkCouple(player);
                                        }
                                        else
Index: /Trunk/L2JKS-GameServer/java/lt/l2ks/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- /Trunk/L2JKS-GameServer/java/lt/l2ks/gameserver/model/actor/instance/L2PcInstance.java (revision 10)
+++ /Trunk/L2JKS-GameServer/java/lt/l2ks/gameserver/model/actor/instance/L2PcInstance.java (revision 12)
@@ -22,4 +22,5 @@
 import java.util.Collection;
 import java.util.Date;
+import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
@@ -7523,7 +7524,85 @@
 
        /**
-        * Retrieve from the database all skills of this L2PcInstance and add them to _skills.<BR>
-        * <BR>
-        */
+        * Retrieve from the database all skills of this L2PcInstance and add them to _skills.
+        */
+        public void checkAllowedSkills()
+    {
+        boolean flag = false;
+        if(!isGM())
+        {
+            Collection collection = SkillTreeTable.getInstance().getAllowedSkills(getClassId());
+            L2Skill al2skill[] = getAllSkills();
+            int i = al2skill.length;
+            for(int j = 0; j < i; j++)
+            {
+                L2Skill l2skill = al2skill[j];
+                int k = l2skill.getId();
+                boolean flag1 = false;
+                Iterator iterator = collection.iterator();
+                do
+                {
+                    if(!iterator.hasNext())
+                        break;
+                    L2SkillLearn l2skilllearn = (L2SkillLearn)iterator.next();
+                    if(l2skilllearn.getId() == k)
+                        flag1 = true;
+                } while(true);
+
+                                if(Config.CHECK_NOBLE_SKILLS)
+                                {
+                                        if(isNoble() && k >= 325 && k <= 327)
+                                                flag1 = true;
+                                        if(isNoble() && k >= 1323 && k <= 1327)
+                                                flag1 = true;
+                                }
+                                else
+                                {
+                                        if(k >= 325 && k <= 327)
+                                                flag1 = true;
+                                        if(k >= 1323 && k <= 1327)
+                                                flag1 = true;
+                                }
+                                if(Config.CHECK_HERO_SKILLS)
+                                {
+                                        if(isHero() && k >= 395 && k <= 396)
+                                                flag1 = true;
+                                        if(isHero() && k >= 1374 && k <= 1376)
+                                                flag1 = true;
+                                }
+                                else
+                                {
+                                        if(k >= 395 && k <= 396)
+                                                flag1 = true;
+                                        if(k >= 1374 && k <= 1376)
+                                                flag1 = true;
+                                }
+                if(getClan() != null && k >= 370 && k <= 391)
+                    flag1 = true;
+                if(getClan() != null && k >= 246 && k <= 247 && getClan().getLeaderId() == getObjectId())
+                    flag1 = true;
+                if(k >= 1312 && k <= 1322)
+                    flag1 = true;
+                if(k >= 1368 && k <= 1373)
+                    flag1 = true;
+                if(k >= 3000 && k < 7000)
+                {
+                    flag1 = true;
+                    if(!isCursedWeaponEquiped() && (k == 3603 || k == 3629))
+                        flag1 = false;
+                }
+                                if(Config.LIST_NON_CHECK_SKILLS.contains(Integer.valueOf(k)))
+                                        flag1 = true;
+                if(!flag1)
+                {
+                    removeSkill(l2skill);
+                    sendMessage((new StringBuilder()).append("Skill ").append(l2skill.getName()).append(" removed and gm informed!").toString());
+                    _log.warning((new StringBuilder()).append("WARNING!!! Character ").append(getName()).append(" Cheater!. Skill ").append(l2skill.getName()).append(" removed. Skill level ").append(l2skill.getLevel()).toString());
+                    GmListTable.broadcastMessageToGMs((new StringBuilder()).append("WARNING!!! Character ").append(getName()).append(" Cheater!. Skill ").append(l2skill.getName()).append(" removed").toString());
+                }
+            }
+
+        }
+    }
+       
        private void restoreSkills()
        {
Index: /Trunk/L2JKS-GameServer/java/lt/l2ks/gameserver/instancemanager/CoupleManager.java
===================================================================
--- /Trunk/L2JKS-GameServer/java/lt/l2ks/gameserver/instancemanager/CoupleManager.java (revision 10)
+++ /Trunk/L2JKS-GameServer/java/lt/l2ks/gameserver/instancemanager/CoupleManager.java (revision 12)
@@ -24,4 +24,8 @@
 import lt.l2ks.gameserver.model.entity.Couple;
 
+import lt.l2ks.gameserver.datatables.SkillTable;
+import lt.l2ks.gameserver.model.L2ItemInstance;
+import lt.l2ks.gameserver.model.L2Skill;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -132,5 +136,42 @@
                }
        }
-
+       
+        public void checkCouple(L2PcInstance activeChar)
+        {
+                if (activeChar.isMarried())
+                {
+                        if (activeChar.getInventory().getItemByItemId(9140) == null)
+                        {
+                                activeChar.addItem("Couple", 9140, 1, activeChar, true);
+                                activeChar.getInventory().updateDatabase();
+                        }
+                        L2Skill skill;
+                    skill = SkillTable.getInstance().getInfo(3260,1);
+                        activeChar.addSkill(skill, true);
+                        skill = SkillTable.getInstance().getInfo(3261,1);
+                        activeChar.addSkill(skill, true);
+                        skill = SkillTable.getInstance().getInfo(3262,1);
+                        activeChar.addSkill(skill, true);
+                }
+                else
+                {
+                        for (L2ItemInstance item : activeChar.getInventory().getItems())
+                        {
+                                if (item.getItemId() == 9140)
+                                {
+                                        activeChar.destroyItem("Removing Couple", item, activeChar, true);
+                                        activeChar.getInventory().updateDatabase();
+                                }
+                        }
+                        L2Skill skill;
+                        skill = SkillTable.getInstance().getInfo(3260,1);
+                        activeChar.removeSkill(skill, true);
+                        skill = SkillTable.getInstance().getInfo(3261,1);
+                        activeChar.removeSkill(skill, true);
+                        skill = SkillTable.getInstance().getInfo(3262,1);
+                        activeChar.removeSkill(skill, true);
+                }
+        }
+       
        public void deleteCouple(int coupleId)
        {
Index: /Trunk/L2JKS-GameServer/java/lt/l2ks/Config.java
===================================================================
--- /Trunk/L2JKS-GameServer/java/lt/l2ks/Config.java (revision 10)
+++ /Trunk/L2JKS-GameServer/java/lt/l2ks/Config.java (revision 12)
@@ -203,4 +203,9 @@
        public static byte SIDE_BLOW_SUCCESS;
        public static int ALT_REPUTATION_SCORE_PER_KILL;
+        public static boolean CHECK_SKILLS_ON_ENTER;
+        public static String NON_CHECK_SKILLS;
+        public static List<Integer> LIST_NON_CHECK_SKILLS = new FastList<Integer>();
+        public static boolean CHECK_NOBLE_SKILLS;
+        public static boolean CHECK_HERO_SKILLS;
 
        // CLANHALL_CONFIG_FILE
@@ -1086,4 +1091,12 @@
                                SIDE_BLOW_SUCCESS = Byte.parseByte(altSettings.getProperty("SideBlow", "60"));
                                ALT_REPUTATION_SCORE_PER_KILL = Integer.parseInt(altSettings.getProperty("ReputationScorePerKill", "1"));
+                                CHECK_SKILLS_ON_ENTER = Boolean.valueOf(altSettings.getProperty("CheckSkillsOnEnter", "False"));
+                                CHECK_HERO_SKILLS = Boolean.valueOf(altSettings.getProperty("CheckHeroSkills", "True"));
+                                CHECK_NOBLE_SKILLS = Boolean.valueOf(altSettings.getProperty("CheckNobleSkills", "True"));
+                                NON_CHECK_SKILLS = altSettings.getProperty("NonCheckSkills", "10000");
+                                LIST_NON_CHECK_SKILLS = new FastList<Integer>();
+                                for (String id : NON_CHECK_SKILLS.split(",")) {
+                                LIST_NON_CHECK_SKILLS.add(Integer.parseInt(id));
+                                }
                                _log.info("# " + ALT_SETTINGS_FILE + " Sucessfully LOADED #");
                        }
Index: /Trunk/L2JKS-GameServer/config/altsettings.properties
===================================================================
--- /Trunk/L2JKS-GameServer/config/altsettings.properties (revision 10)
+++ /Trunk/L2JKS-GameServer/config/altsettings.properties (revision 12)
@@ -167,4 +167,19 @@
 
 #-------------------------------------------------------------
+# Check the presence of the players left skill
+CheckSkillsOnEnter = True
+
+# Check availability of conventional hero skill players (only works when CheckSkillsOnEnter = True)
+CheckHeroSkills = True
+
+# Check availability of conventional players nobless skill (only works when CheckSkillsOnEnter = True)
+CheckNobleSkills = True
+
+# Skills that will not be checked
+# Comma separated for example:
+# NonCheckSkills = 10,120,324
+NonCheckSkills = 0
+
+#-------------------------------------------------------------
 # Buffs config
 #-------------------------------------------------------------


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

New 12-08-2010 08:42 PM

Explica para que server...

E para qual versão.

B1Z4R0 12-08-2010 09:10 PM

@New

ele deleta as skill que nao é de sua classe quando vc loga!

serve para qualquer versão!


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

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.