Noticias:

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Menú Principal

Mensajes recientes

#91
L2 | Apartado de Soporte / Re:Java 10
Último mensaje por Swarlog - Oct 16, 2025, 09:27 PM
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.hola donde puedo descargar el java 10 pero el exe para instalar directamente

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Podrás encontrar todas las versiones en:

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.
#92
L2 | Apartado de Soporte / Re:Ayuda con Clan War!
Último mensaje por Swarlog - Oct 16, 2025, 09:26 PM
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.Alguien por favor puede ayudar a corregir esto?
lo mismo ocurre cuando un jugador se registra en una fortaleza o siege.
Ejemplo: algún jugador del clan marca una fortaleza. y cuál quiere otro miembro del clan participar en el olympiad o en los acontecimientos, no puede utilizar las habilidades mágicas. Sólo ataque mele.

Eso mismo reporte hace tiempo, al parecer solo puedes realizar dichas habilidades cuando estas en zona pvp exclusivamente. Aun así, no me gusta un pelo! Lo revisare con el equipo a ver que podemos hacer ^^

Creo que con esto estaría solucionado, necesita test.



No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

final L2PcInstance player = activeChar.getActingPlayer();
                if (target.isDead() || (!target.isAttackable() && //
                    (player != null) && //
                    !player.checkIfPvP(target) && //
                    !(player.isInsideZone(ZoneId.PVP) && target.isInsideZone(ZoneId.PVP)) && //
                    !player.isInOlympiadMode() && //
                    !player.isAtWarWith(target) && //
                    !player.getCurrentSkill().isCtrlPressed()))
                {
                    activeChar.sendPacket(INCORRECT_TARGET);
                    return EMPTY_TARGET_LIST;
                }

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

final L2PcInstance player = activeChar.getActingPlayer();
                if (target.isDead() || (!target.isAttackable() && //
                    (player != null) && //
                    player.isInPartyWith(target) && //
                    player.isInClanWith(target) && //
                    player.isInAllyWith(target) && // TODO(Zoey76): Confirm.
                    player.isInCommandChannelWith(target) && // TODO(Zoey76): Confirm.
                    player.isOnSameSiegeSideWith(target) && //
                    !(player.isInsideZone(ZoneId.PVP) && target.isInsideZone(ZoneId.PVP)) && //
                    !player.isInOlympiadMode() && //
                    !player.isAtWarWith(target) && //
                    !player.checkIfPvP(target)))
                {
                    activeChar.sendPacket(INCORRECT_TARGET);
                    return EMPTY_TARGET_LIST;
                }

Sustituye esos valores y nos cuentas que tal ;)
#93
L2 | Apartado de Soporte / Re:Runa de exp y sp
Último mensaje por Swarlog - Oct 16, 2025, 09:24 PM
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.Buenas, uso l2jserver y tengo un pequeño problema con las runas de exp y de sp, cada vez que se usa, al pasar un par de minutos sale un mensaje indicando que el efecto de la runa fue eliminada, no sale ningun error en la consola, a que se debe ese error de mensaje con las runas ?, alguno le ah pasado ? gracias

Seguramente el source tenga problemas con la sincronización, un bug.. o simplemente no estén implementadas.

De todos modos, supongo que sera el tiempo de la skill, modificarlo editando esta linea:

<set name="time" val="10080" />

Y nos cuentas.
#94
L2 | Apartado de Soporte / Re:Item AIO o que lea un HTML
Último mensaje por Swarlog - Oct 16, 2025, 09:21 PM
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.Bueno sin nada mas que decir lo que quiero saber es como hacer que por ejemplo el famoso Libro que sale en el Inventario al crearse el Personaje de L2 (Tutorial Guide) en vez de que lea esa Guía, me gustaría que leyera un NPC o todos los NPC pero me gustaría saber como hacer eso xD...


Alguien que me pueda explicar eso por favor !!!...   :'(

Es facil, ve a "ItemSkills.java", situado en --> game\data\scripts\handlers\itemhandlers

Añades el item deseado:

if ((activeChar != null) && (item.getId() == ID_DEL_ITEM))
		{
			// TODO: Efecto
			return false;
		}

Y por último, el efecto en donde dice "// TODO: Efecto"

PD: Si no sabes como hacer que se abra un hml, avisame :P
#95
L2 | Apartado de Soporte / Re:Auto Mensage for time!
Último mensaje por Swarlog - Oct 16, 2025, 09:20 PM
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.Buenas noches, estoy probando un código para enviar el mensaje! Jugadores automático con intervalo de tiempo. Exem: 30 en 30 minutos para enviar el mensaje en el reproductor

Alguien podría escribirlo? No sé mucho de Java, y yo creo que es algo fácil.

Usa este ejemplo ^^

/*
 * Copyright (C) 2004-2016 L2J DataPack
 * 
 * This file is part of L2J DataPack.
 * 
 * L2J DataPack 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.
 * 
 * L2J DataPack 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 custom.events.AutoEvent;

import java.util.concurrent.ScheduledFuture;

import org.l2jdevs.gameserver.ThreadPoolManager;
import org.l2jdevs.gameserver.model.actor.instance.L2PcInstance;
import org.l2jdevs.gameserver.util.Broadcast;

/**
 * Auto Event Example
 * @author Swarlog
 */

public final class AutoEvent extends Event
{
    // Config
    public static final int TIME_START = 60; // minutes
    public static final int TIME_OF_EVENT = 10; // minutes
    public static final int TIME_RESTART = 120; // minutes
    private static boolean EVENT_ACTIVE = false;
    
    // Task, auto event
    private ScheduledFuture<?> _eventTask = null;
    
    private AutoEvent()
    {
        super(AutoEvent.class.getSimpleName(), "custom/events");
        
        // Task
        _eventTask = ThreadPoolManager.getInstance().scheduleGeneral(() -> eventStart(null), TIME_START * 60 * 1000);
    }
    
    @Override
    public boolean eventBypass(L2PcInstance activeChar, String bypass)
    {
        return false;
    }
    
    @Override
    public boolean eventStart(L2PcInstance eventMaker)
    {
        if (EVENT_ACTIVE)
        {
            return false;
        }
        
        if (_eventTask != null)
        {
            _eventTask.cancel(false);
        }
        
        // State
        EVENT_ACTIVE = true;
        
        // Message
        Broadcast.toAllOnlinePlayers("Auto Event ON!");
        
        // Task
        _eventTask = ThreadPoolManager.getInstance().scheduleGeneral(() -> eventStop(null), TIME_OF_EVENT * 60 * 1000);
        
        return true;
    }
    
    @Override
    public boolean eventStop()
    {
        if (!EVENT_ACTIVE)
        {
            return false;
        }
        
        if (_eventTask != null)
        {
            _eventTask.cancel(true);
            _eventTask = null;
        }
        
        // State
        EVENT_ACTIVE = false;
        
        // Task
        _eventTask = ThreadPoolManager.getInstance().scheduleGeneral(() -> eventStart(null), TIME_RESTART * 60 * 1000);
        
        Broadcast.toAllOnlinePlayers("Auto Event OFF!");
        return true;
    }
    
    public static void main(String[] args)
    {
        new AutoEvent();
    }
}
#96
L2 | Apartado de Soporte / Re:Bypass de htmls
Último mensaje por Swarlog - Oct 16, 2025, 09:19 PM
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.Como se usa en bypass sin npc de un evento de una clase creada en AbstracNpcAI?

Pincho en el boton del html que envio al char y no hace nada...

Un bypass no requiere de un npc pero existe bypass que si lo requieren por el tipo de comprobaciones que se realizan y un ejemplo de ellos es:

bypass -h npc_%objectId%_...

De todos modos, te dejo el link de una guia de los tipos de bypass:

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.
#97
L2 | Apartado de Soporte / Re:Mostrar html a cierto nivel
Último mensaje por Swarlog - Oct 16, 2025, 09:16 PM
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.Que método detecta el nivel para mostrar un html y hacer cosas? Como el tutorial al subir al 20 que muestra el mensaje de cambiar profesion.

Yo personalmente, crearia una IA,QUEST, etc.. con el método "onKill"

@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)

Con este modo, al matar a un oponente puedes hacer que chequee su nivel (el si ha aumentado o ha alcanzado el deseado) y muestre el html deseado.

Como bien dices, en la quest del tutorial lo usa. Igual que la de classmaster.
#98
L2 | Apartado de Soporte / Re:Puertos o no se ..
Último mensaje por Swarlog - Oct 16, 2025, 09:09 PM
Antes que nada, bienvenido ^^

Para el tema de los puertos, puedes mirar en esta web si realmente los tienes abiertos o no:

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Si los tienes abierto, el problema entonces es de algún firewall que tienes en el servidor o un antivirus. Para solucionarlo si es este el problema, añade la restricción en ambos casos y listo.

Si están cerrados, solo tienes que configurar vuestro router y abrir los puertos deseados.

Ejemplo Router
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Ya lo que sea nos comentas, un saludo ^^
#99
L2 | Apartado de Soporte / Re:Antibot mob
Último mensaje por Swarlog - Oct 16, 2025, 09:08 PM
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.Quiero crear poder respawnear un npc normal o poder convertiren antibot cualquier npc ya respawneado, es decir, que tenga la misma id que uno ya existente pero sea invulnerable y con mucho mas ataque, o que al pegarle te devuelva 9999999999999 de daño o te desconecte el cliente o cosas asi para los bots.

He probado varias cosas pero solo he conseguido poder hacerlo invulnerable, pero con su mismo daño, etc.

Espero una ayuda para poder comenzar a hacerlo que ando perdido...

Crea un NPC custom con propiedades exageradas, y luego creale una IA en donde añada que sea inmortal y lo que se te ocurra. Ya es lo que quieras conseguir.

npc.setIsInvul(true);

Para el tema del daño, puedes utilizar lo mismo que se utiliza para baium:

refreshAiParams(attacker, npc, (damage * 1000));
#100
L2 | Apartado de Soporte / Re:Activar spoil 100%
Último mensaje por Swarlog - Oct 16, 2025, 09:04 PM
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.No encuentro donde se gestiona la parte donde el bicho se pone azul o no al entrar el spoil...

He mirado ciertas cosas pero no doy con la parte correcta.

GeneralDropItem modificar:
public Collection<ItemHolder> calculateDrops(DropListScope dropListScope, L2Character victim, L2Character killer)
	{
		
		int levelDifference = victim.getLevel() - killer.getLevel();
		final double levelGapChanceToDrop;
		if (getItemId() == Inventory.ADENA_ID)
		{
			levelGapChanceToDrop = Util.map(levelDifference, -Config.DROP_ADENA_MAX_LEVEL_DIFFERENCE, -Config.DROP_ADENA_MIN_LEVEL_DIFFERENCE, Config.DROP_ADENA_MIN_LEVEL_GAP_CHANCE, 100.0);
		}
		else
		{
			levelGapChanceToDrop = Util.map(0, -Config.DROP_ITEM_MAX_LEVEL_DIFFERENCE, -Config.DROP_ITEM_MIN_LEVEL_DIFFERENCE, Config.DROP_ITEM_MIN_LEVEL_GAP_CHANCE, 100.0);
		}
		
		// There is a chance of level gap that it wont drop this item
		if (levelGapChanceToDrop < (Rnd.nextDouble() * 100))
		{
			return null;
		}
		
		final double chance = getChance(victim, killer);
		boolean successes = chance > (Rnd.nextDouble() * 100);
		System.out.println("sucesses vale:" + successes);
		
		if (successes)
		{
			final Collection<ItemHolder> items = new ArrayList<>(1);
			final long baseDropCount = Rnd.get(getMin(victim, killer), getMax(victim, killer));
			final long finaldropCount = (long) (Config.L2JMOD_OLD_DROP_BEHAVIOR ? (baseDropCount * Math.max(1, chance / 100)) + (chance > 100 ? (chance % 100) > (Rnd.nextDouble() * 100) ? baseDropCount : 0 : 0) : baseDropCount);
			
				items.add(new ItemHolder(getItemId(), baseDropCount));
			
			return items;
		}
		
		return null;
		
	}

Y en L2NpcTemplate modificar la llamada al metodo puesto antes

Collection<ItemHolder> calculatedDrops = null;
		for (IDropItem dropItem : dropList)
		{
			if (dropListScope.equals(DropListScope.CORPSE))
			{
				final Collection<ItemHolder> drops = dropItem.calculateDrops(dropListScope, victim, killer);
				if ((drops == null) || drops.isEmpty())
				{

Saludos.