Flagas zonoje

    
  1. Atsijungęs

    Hexal

    Pranešimai: 0

    Sveiki kaip padaryti kad i mano parinkta zone kai atsiteleportina zaidejai jau butu visada su flagu
    11 Sausio 2015 - 15:33 / #1
  2. 
  3. Atsijungęs

    Grax

    Pranešimai: 0

    multifunctionzone
    11 Sausio 2015 - 16:33 / #2
  4. 
  5. Atsijungęs

    gerardas

    Pranešimai: 0

    Kaip grax sako gali isidet multifunction zone koda arba tiesiog dar paprasteni koda. :D

    ### Eclipse Workspace Patch 1.0
    #P trunk3
    Index: gameserver/head-src/com/l2jfrozen/gameserver/model/zone/type/L2FlagZone.java
    ===================================================================
    --- gameserver/head-src/com/l2jfrozen/gameserver/model/zone/type/L2FlagZone.java	(revision 0)
    +++ gameserver/head-src/com/l2jfrozen/gameserver/model/zone/type/L2FlagZone.java	(revision 0)
    @@ -0,0 +1,185 @@
    +/*
    + * 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 com.l2jfrozen.gameserver.model.zone.type;
    +
    +import java.util.concurrent.Future;
    +
    +import com.l2jfrozen.gameserver.datatables.SkillTable;
    +import com.l2jfrozen.gameserver.model.L2Character;
    +import com.l2jfrozen.gameserver.model.L2Skill;
    +import com.l2jfrozen.gameserver.model.actor.instance.L2MonsterInstance;
    +import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
    +import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
    +import com.l2jfrozen.gameserver.model.zone.L2ZoneType;
    +import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
    +import com.l2jfrozen.util.random.Rnd;
    +
    +/**
    + * @author Strato
    + * @author Elfocrash (for the correction)
    + */
    +public class L2FlagZone extends L2ZoneType
    +{
    +   private int _skillId;
    +   private int _chance;
    +   private int _initialDelay;
    +   private int _skillLvl;
    +   private int _reuse;
    +   private boolean _enabled;
    +   private String _target;
    +   private Future<?> _task;
    +   public L2FlagZone(int id)
    +   {
    +       super(id);
    +      _skillId = 1323;
    +      _skillLvl = 1;
    +      _chance = 100;
    +      _initialDelay = 0;
    +      _reuse = 30000;
    +      _enabled = true;
    +      _target = "pc";
    +   }
    +   
    +   @Override
    +   public void setParameter(String name, String value)
    +   {
    +      if(name.equals("skillId"))
    +      {
    +         _skillId = Integer.parseInt(value);
    +      }
    +      else if(name.equals("skillLvl"))
    +      {
    +         _skillLvl = Integer.parseInt(value);
    +      }
    +      else if(name.equals("chance"))
    +      {
    +         _chance = Integer.parseInt(value);
    +      }
    +      else if(name.equals("initialDelay"))
    +      {
    +         _initialDelay = Integer.parseInt(value);
    +      }
    +      else if(name.equals("default_enabled"))
    +      {
    +         _enabled = Boolean.parseBoolean(value);
    +      }
    +      else if(name.equals("target"))
    +      {
    +         _target = String.valueOf(value);
    +      }
    +      else if(name.equals("reuse"))
    +      {
    +         _reuse = Integer.parseInt(value);
    +      }
    +      else
    +      {
    +         super.setParameter(name, value);
    +      }
    +   }
    +   
    +   @Override
    +   protected void onEnter(L2Character character)
    +   {
    +       if (character instanceof L2PcInstance)
    +       {
    +         // Set pvp flag
    +    	   ((L2PcInstance) character).setPvpFlag(1);
    +           ((L2PcInstance) character).sendMessage("You entered a Pvp Flag zone.Have fun!!!");
    +           ((L2PcInstance) character).broadcastUserInfo();
    +            if((character instanceof L2PlayableInstance && _target.equalsIgnoreCase("pc") || character instanceof L2PcInstance && _target.equalsIgnoreCase("pc_only") || character instanceof L2MonsterInstance && _target.equalsIgnoreCase("npc")) && _task == null)
    +         {
    +         _task = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new ApplySkill(/*this*/), _initialDelay, _reuse);
    +         }
    +       }
    +   }
    +   
    +   @Override
    +   protected void onExit(L2Character character)
    +   {
    +       if (character instanceof L2PcInstance)
    +       {
    +           ((L2PcInstance) character).setPvpFlag(0);
    +           ((L2PcInstance) character).sendMessage("You left the Pvp Flag zone.BAAAAD!!");
    +           ((L2PcInstance) character).broadcastUserInfo();
    +       }
    +      if(_characterList.isEmpty() && _task != null)
    +      {
    +         _task.cancel(true);
    +         _task = null;
    +      }
    +   }
    +   
    +   public L2Skill getSkill()
    +   {
    +      return SkillTable.getInstance().getInfo(_skillId, _skillLvl);
    +   }
    +
    +   public String getTargetType()
    +   {
    +      return _target;
    +   }
    +
    +   public boolean isEnabled()
    +   {
    +      return _enabled;
    +   }
    +
    +   public int getChance()
    +   {
    +      return _chance;
    +   }
    +
    +   public void setZoneEnabled(boolean val)
    +   {
    +      _enabled = val;
    +   }
    +   class ApplySkill implements Runnable
    +   {
    +      @Override
    +      public void run()
    +      {
    +         if(isEnabled())
    +         {
    +            for(L2Character temp : _characterList.values())
    +            {
    +               if(temp != null && !temp.isDead())
    +               {
    +                  if((temp instanceof L2PlayableInstance && getTargetType().equalsIgnoreCase("pc") || temp instanceof L2PcInstance && getTargetType().equalsIgnoreCase("pc_only") || temp instanceof L2MonsterInstance && getTargetType().equalsIgnoreCase("npc")) && Rnd.get(100) < getChance())
    +                  {
    +                     L2Skill skill = null;
    +                     if((skill=getSkill())==null){
    +                        System.out.println("ATTENTION: error on zone with id "+getId());
    +                        System.out.println("Skill "+_skillId+","+_skillLvl+" not present between skills");
    +                     }else
    +                        skill.getEffects(temp, temp);
    +                  }
    +               }
    +            }
    +         }
    +      }
    +   }
    +   
    +   @Override
    +   public void onDieInside(L2Character character)
    +   {
    +     
    +   }
    +   
    +   @Override
    +   public void onReviveInside(L2Character character)
    +   {
    +       onEnter(character);
    +   }
    +}
    \ No newline at end of file
    Index: gameserver/head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java
    ===================================================================
    --- gameserver/head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java	(revision 909)
    +++ gameserver/head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java	(working copy)
    @@ -63,6 +63,7 @@
     import com.l2jfrozen.gameserver.model.zone.type.L2OlympiadStadiumZone;
     import com.l2jfrozen.gameserver.model.zone.type.L2PeaceZone;
     import com.l2jfrozen.gameserver.model.zone.type.L2PoisonZone;
    +import com.l2jfrozen.gameserver.model.zone.type.L2FlagZone;
     import com.l2jfrozen.gameserver.model.zone.type.L2SwampZone;
     import com.l2jfrozen.gameserver.model.zone.type.L2TownZone;
     import com.l2jfrozen.gameserver.model.zone.type.L2WaterZone;
    @@ -278,6 +279,10 @@
     								{
     									temp = new L2SwampZone(zoneId);
     								}
    +								else if(zoneType.equals("FlagZone"))
    +								{
    +									temp = new L2FlagZone(zoneId);
    +								}
     
     								// Check for unknown type
     								if(temp == null)
    11 Sausio 2015 - 16:51 / #3
  6. 
  7. Atsijungęs

    Hexal

    Pranešimai: 0

    su eclipse nedirbu
    11 Sausio 2015 - 18:56 / #4
  8. 
  9. Atsijungęs

    ponasanga

    Pranešimai: 0

    tai tada ir zonos nepasidarysi
    11 Sausio 2015 - 20:31 / #5
  10. 
  11. Atsijungęs

    gerardas

    Pranešimai: 0

    Hexal,
    jei nedirbi su eclipse tai ir pamirsk apie servu kurima.
    11 Sausio 2015 - 21:52 / #6
  12. 
  13. Atsijungęs

    Hexal

    Pranešimai: 0

    Niekada nevelu pradeti
    11 Sausio 2015 - 23:55 / #7
  14. 
  15. Atsijungęs

    Hexal

    Pranešimai: 0

    Nera per java l2flag zone linijos tokios
    12 Sausio 2015 - 00:41 / #8
  16. 
  17. Atsijungęs

    ponasanga

    Pranešimai: 0

    nauja faila reikia sukurti L2FlagZone.java
    12 Sausio 2015 - 09:20 / #9
  18. 
  19. Atsijungęs

    Hexal

    Pranešimai: 0

    Susikuriau isidejau koda kuri rase gerardas i source db susikompilint reikia ir kuri faila isideti i senus mano failus?
    12 Sausio 2015 - 20:48 / #10