Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Random respawn for TVT

Iniciado por Swarlog, Ago 19, 2022, 01:30 AM

Tema anterior - Siguiente tema

Swarlog

     
    Index: java/com/l2jserver/Config.java
    ===================================================================
    --- java/com/l2jserver/Config.java  (revision 4626)
    +++ java/com/l2jserver/Config.java  (working copy)
    @@ -656,6 +656,9 @@
        public static int TVT_EVENT_START_LEAVE_TELEPORT_DELAY;
        public static String TVT_EVENT_TEAM_1_NAME;
        public static int[] TVT_EVENT_TEAM_1_COORDINATES = new int[3];
    +   public static boolean TVT_ENABLE_RANDOM_RESPAWN;
    +   public static int[][] TVT_RANDOM_LOCATIONS_TEAM_1;
    +   public static int[][] TVT_RANDOM_LOCATIONS_TEAM_2;
        public static String TVT_EVENT_TEAM_2_NAME;
        public static int[] TVT_EVENT_TEAM_2_COORDINATES = new int[3];
        public static List<int[]> TVT_EVENT_REWARDS;
    @@ -2407,6 +2410,48 @@
                                                }
                                            }
                                        }
    +                                 
    +                                   TVT_ENABLE_RANDOM_RESPAWN = Boolean.parseBoolean(L2JModSettings.getProperty("EnableRandomRespawn", "true"));
    +                                 
    +                                   if(TVT_ENABLE_RANDOM_RESPAWN) {
    +                                       propertySplit = L2JModSettings.getProperty("RaspawnLocationsTeam1", "0,0,0").split(";");
    +                                       if(!propertySplit[0].isEmpty()) {
    +                                           TVT_RANDOM_LOCATIONS_TEAM_1 = new int[propertySplit.length][3];
    +                                           int index = 0;
    +                                           for(String location : propertySplit) {
    +                                               String[] coordinates = location.split(",");
    +                                               if(coordinates.length == 3) {
    +                                                   TVT_RANDOM_LOCATIONS_TEAM_1[index][0] = Integer.parseInt(coordinates[0]);
    +                                                   TVT_RANDOM_LOCATIONS_TEAM_1[index][1] = Integer.parseInt(coordinates[1]);
    +                                                   TVT_RANDOM_LOCATIONS_TEAM_1[index][2] = Integer.parseInt(coordinates[2]);
    +                                                   index++;
    +                                               } else {
    +                                                   TVT_ENABLE_RANDOM_RESPAWN = false;
    +                                               }
    +                                           }
    +                                       } else {
    +                                           TVT_ENABLE_RANDOM_RESPAWN = false;
    +                                       }
    +                                     
    +                                       propertySplit = L2JModSettings.getProperty("RaspawnLocationsTeam2", "0,0,0").split(";");
    +                                       if(!propertySplit[0].isEmpty()) {
    +                                           TVT_RANDOM_LOCATIONS_TEAM_2 = new int[propertySplit.length][3];
    +                                           int index = 0;
    +                                           for(String location : propertySplit) {
    +                                               String[] coordinates = location.split(",");
    +                                               if(coordinates.length == 3) {
    +                                                   TVT_RANDOM_LOCATIONS_TEAM_2[index][0] = Integer.parseInt(coordinates[0]);
    +                                                   TVT_RANDOM_LOCATIONS_TEAM_2[index][1] = Integer.parseInt(coordinates[1]);
    +                                                   TVT_RANDOM_LOCATIONS_TEAM_2[index][2] = Integer.parseInt(coordinates[2]);
    +                                                   index++;
    +                                               } else {
    +                                                   TVT_ENABLE_RANDOM_RESPAWN = false;
    +                                               }
    +                                           }
    +                                       } else {
    +                                           TVT_ENABLE_RANDOM_RESPAWN = false;
    +                                       }
    +                                   }
                                    }
                                }
                            }
    Index: java/com/l2jserver/gameserver/model/entity/TvTEvent.java
    ===================================================================
    --- java/com/l2jserver/gameserver/model/entity/TvTEvent.java    (revision 4626)
    +++ java/com/l2jserver/gameserver/model/entity/TvTEvent.java    (working copy)
    @@ -97,6 +97,11 @@
            AntiFeedManager.getInstance().registerEvent(AntiFeedManager.TVT_ID);
            _teams[0] = new TvTEventTeam(Config.TVT_EVENT_TEAM_1_NAME, Config.TVT_EVENT_TEAM_1_COORDINATES);
            _teams[1] = new TvTEventTeam(Config.TVT_EVENT_TEAM_2_NAME, Config.TVT_EVENT_TEAM_2_COORDINATES);
    +     
    +       if(Config.TVT_ENABLE_RANDOM_RESPAWN) {
    +           _teams[0].setRandomCoordinates(Config.TVT_RANDOM_LOCATIONS_TEAM_1);
    +           _teams[1].setRandomCoordinates(Config.TVT_RANDOM_LOCATIONS_TEAM_2);
    +       }
        }
       
        /**
    @@ -855,7 +860,11 @@
                return;
            }
           
    -       new TvTEventTeleporter(killedPlayerInstance, _teams[killedTeamId].getCoordinates(), false, false);
    +       if(Config.TVT_ENABLE_RANDOM_RESPAWN) {
    +           new TvTEventTeleporter(killedPlayerInstance, _teams[killedTeamId].getRandomLocation(), false, false);
    +       } else {
    +           new TvTEventTeleporter(killedPlayerInstance, _teams[killedTeamId].getCoordinates(), false, false);
    +       }
           
            if (killerCharacter == null)
            {
    Index: java/com/l2jserver/gameserver/model/entity/TvTEventTeam.java
    ===================================================================
    --- java/com/l2jserver/gameserver/model/entity/TvTEventTeam.java    (revision 4626)
    +++ java/com/l2jserver/gameserver/model/entity/TvTEventTeam.java    (working copy)
    @@ -19,6 +19,7 @@
     import javolution.util.FastMap;
     
     import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
    +import com.l2jserver.util.Rnd;
     
     /**
      * @author FBIagent
    @@ -33,6 +34,8 @@
        private short _points;
        /** Name and instance of all participated players in FastMap<br> */
        private Map<Integer, L2PcInstance> _participatedPlayers = new FastMap<Integer, L2PcInstance>();
    +   /** Posible team spawn coordinates */
    +   private int[][] _randomCoordinates;
       
        /**
         * C'tor initialize the team<br><br>
    @@ -180,4 +183,12 @@
           
            return participatedPlayerCount;
        }
    +   
    +   public void setRandomCoordinates(int[][] randomCoordinates) {
    +       this._randomCoordinates = randomCoordinates;
    +   }
    +   
    +   public int[] getRandomLocation() {
    +       return _randomCoordinates[Rnd.get(_randomCoordinates.length - 1)];
    +   }
     }
    Index: java/config/l2jmods.properties
    ===================================================================
    --- java/config/l2jmods.properties  (revision 4626)
    +++ java/config/l2jmods.properties  (working copy)
    @@ -175,6 +175,17 @@
     TvTEventTeam2Name = Team2
     TvTEventTeam2Coordinates = 149999,46728,-3414
     
    +# Enable random respawn when player is killed
    +EnableRandomRespawn = True
    +
    +# Locations for random respawn for team 1 x,z,y;x,z,y;....
    +# EnableRandomRespawn should set to True
    +RaspawnLocationsTeam1 = 148695,46725,-3414;148585,46930,-3414;148584,46555,-3414;148431,46706,-3413;148404,47077,-3414;148372,46382,-3414;148313,46723,-3413
    +
    +# Locations for random respawn for team 2 x,z,y;x,z,y;....
    +# EnableRandomRespawn should set to True
    +RaspawnLocationsTeam2 = 149999,46728,-3414;150586,46743,-3414;150546,47097,-3414;150557,46395,-3414;150373,46516,-3414;150348,46981,-3414;149980,47249,-3414
    +
     # Reward for winning team.
     # Example: TvTEventReward = itemId,amount;itemId,amount;itemId,amount
     TvTEventReward = 57,100000
     

By goncafa