Ir para conteúdo
  • Cadastre-se
  • 0

Flagzone sendo Adaptado para acis 370


TeacherOfJava

Pergunta

Bom dia l2jbrasil Minha questão é a seguinte.

Estou tendo dificuldade somente em 1 parte do modo Esta quase 100% nessa versão da acis. Vou deixa ela ai semi acabada e com o erro afirmando.

Citar

/*
 * 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 <

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 */
package net.sf.l2j.gameserver.model.zone.type;

import java.util.concurrent.Future;

import net.sf.l2j.gameserver.datatables.SkillTable;
import net.sf.l2j.gameserver.model.L2Skill;
import net.sf.l2j.gameserver.model.actor.Creature;
import net.sf.l2j.gameserver.model.actor.Playable;
import net.sf.l2j.gameserver.model.actor.instance.Monster;
import net.sf.l2j.gameserver.model.actor.instance.Player;
import net.sf.l2j.gameserver.model.zone.L2ZoneType;
import net.sf.l2j.commons.concurrent.ThreadPool;
import net.sf.l2j.commons.random.Rnd;

public class L2FlagZone extends L2ZoneType
{
 int _skillId;
 private int _chance;
 private int _initialDelay;
 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(Creature character)
 {
     if (character instanceof Player)
     {
         // Set pvp flag
         ((Player) character).setPvpFlag(1);
         ((Player) character).sendMessage("You entered a Pvp Flag zone.");
         ((Player) character).broadcastUserInfo();
            if((character instanceof Playable && _target.equalsIgnoreCase("pc") || character instanceof Player && _target.equalsIgnoreCase("pc_only") || character instanceof Monster && _target.equalsIgnoreCase("npc")) && _task == null)
         {
         _task = ThreadPool.scheduleAtFixedRate(new ApplySkill(/*this*/), _initialDelay, _reuse);
         }
     }
 }

 @Override
 protected void onExit(Creature character)
 {
     if (character instanceof Player)
     {
         ((Player) character).setPvpFlag(0);
         ((Player) character).sendMessage("You left the Pvp Flag zone.");
         ((Player) 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 (Creature temp : _characterList)
            {
             if(temp != null && !temp.isDead())
             {
                 if((temp instanceof Playable && getTargetType().equalsIgnoreCase("pc") || temp instanceof Player && getTargetType().equalsIgnoreCase("pc_only") || temp instanceof Monster && 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(Creature character)
 {
    
 }

 @Override
 public void onReviveInside(Creature character)
 {
     onEnter(character);
 }
}

Agora parte que to tendo problema..

Nenhum texto alternativo automático disponível.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts recomendados

  • 0

Não tem o restante do script? somente isto mesmo? e outra, nesta parte abaixo

 

import net.sf.l2j.gameserver.datatables.SkillTable;

 

deixa 

 

import net.sf.l2j.gameserver.data.SkillTable;

 

E pelo que eu percebi, Creature ou characterList ja esta sendo usado, algo assim, tentei criar uma copia, quase que concluida, deu erro em outras partes impossivel de solucionar se não entender realmente de JAVA

Editado por Marlon Carvalho
Link para o comentário
Compartilhar em outros sites


  • 0
Em 24/12/2017 at 12:23, Marlon Carvalho disse:

Não tem o restante do script? somente isto mesmo? e outra, nesta parte abaixo

 

import net.sf.l2j.gameserver.datatables.SkillTable;

 

deixa 

 

import net.sf.l2j.gameserver.data.SkillTable;

 

E pelo que eu percebi, Creature ou characterList ja esta sendo usado, algo assim, tentei criar uma copia, quase que concluida, deu erro em outras partes impossivel de solucionar se não entender realmente de JAVA

ja arrumei código..

Link para o comentário
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...




×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.