Ir para conteúdo
  • Cadastre-se

Cambio de raza en subclass acumulativa L2JFrozen


Posts recomendados

Buenas tardes amigos, tengo una consulta, estoy creando un server subacu +3 con L2jFrozen y queria saber si me podrian decir como hacer que cuando cambie de subclass, cambie tambien la raza del personaje, osea la skin, y por otra parte como hacer que la main sea la ultima subclass y que solo en esa se pueda hacer tercera profesion, desde ya muchas gracias.

Mores

Link para o comentário
Compartilhar em outros sites


Buenas, ese "sistema" es solo cambiar la clase base del personaje, por eso te cambia la skin, y la tecera la podes verificar mediante un item o por base de datos dependiendo el metodo que uses, por ejemplo el pj arranca con 3 items y cada que tira una sub le consume un item, a la hora de realizar tercera verificar que el pj no tenga ningun item, es la forma mas sencilla 😛

Link para o comentário
Compartilhar em outros sites

hace 51 minutos, franchus99 dijo:

Buenas, ese "sistema" es solo cambiar la clase base del personaje, por eso te cambia la skin, y la tecera la podes verificar mediante un item o por base de datos dependiendo el metodo que uses, por ejemplo el pj arranca con 3 items y cada que tira una sub le consume un item, a la hora de realizar tercera verificar que el pj no tenga ningun item, es la forma mas sencilla 😛

en realidad no me cambia la skin y quiero que cambie, pero tampoco me estarias diciendo donde lo modifico

 

Mores

Link para o comentário
Compartilhar em outros sites

Hola , te doy una ayuda por hay te des una idea de como podria funcionar,  habría que hacer unas pruebas , pero al menos te doy una luz

 

import com.l2jfrozen.gameserver.model.base.ClassId;
import com.l2jfrozen.gameserver.model.base.Race;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.datatables.SkillTable;

public class L2PcInstance extends L2PlayableInstance {
    private Race _race;

    // Código existente...

    @Override
    public boolean addSubClass(int classId, int classIndex) {
        if (!super.addSubClass(classId, classIndex)) {
            return false;
        }

        // Obtén la clase correspondiente al ID proporcionado
        ClassId newClassId = ClassId.values()[classId];

        // Determina la nueva raza basada en la subclass
        Race newRace = determineRaceForClass(newClassId);

        if (newRace != null && newRace != getRace()) {
            setRace(newRace);
            // Recargar las características del personaje
            refreshStats();
        }

        return true;
    }

    // Método auxiliar para determinar la raza basada en la subclass seleccionada
    private Race determineRaceForClass(ClassId classId) {
        switch (classId.getRace()) {
            case HUMAN:
                return Race.HUMAN;
            case ELF:
                return Race.ELF;
            case DARK_ELF:
                return Race.DARK_ELF;
            case ORC:
                return Race.ORC;
            case DWARF:
                return Race.DWARF;
            default:
                return null; // O mantener la raza actual
        }
    }

    // Método para cambiar la raza
    public void setRace(Race newRace) {
        _race = newRace;
        refreshStats();
    }

    // Método para obtener la raza actual
    public Race getRace() {
        return _race;
    }

    // Método para refrescar las estadísticas y habilidades del personaje
    private void refreshStats() {
        // Ajustes de atributos según la nueva raza
        switch (_race) {
            case HUMAN:
                // Atributos para Humanos
                break;
            case ELF:
                // Atributos para Elfos
                break;
            case DARK_ELF:
                // Atributos para Elfos Oscuros
                break;
            case ORC:
                // Atributos para Orcos
                break;
            case DWARF:
                // Atributos para Enanos
                break;
        }

        // Recalcular habilidades raciales
        recalculateRacialSkills();
        // Actualizar el estado del personaje en el juego
        broadcastUserInfo();
    }

    // Método para recalcular las habilidades raciales
    private void recalculateRacialSkills() {
        // Limpia habilidades anteriores que no se aplican a la nueva raza
        clearRacialSkills();

        switch (_race) {
            case HUMAN:
                // Agregar habilidades raciales para Humanos
                addSkill(SkillTable.getInstance().getInfo(101, 1), false);
                break;
            case ELF:
                // Agregar habilidades raciales para Elfos
                addSkill(SkillTable.getInstance().getInfo(102, 1), false);
                break;
            case DARK_ELF:
                // Agregar habilidades raciales para Elfos Oscuros
                addSkill(SkillTable.getInstance().getInfo(103, 1), false);
                break;
            case ORC:
                // Agregar habilidades raciales para Orcos
                addSkill(SkillTable.getInstance().getInfo(104, 1), false);
                break;
            case DWARF:
                // Agregar habilidades raciales para Enanos
                addSkill(SkillTable.getInstance().getInfo(105, 1), false);
                break;
        }
    }

    // Método para limpiar las habilidades raciales anteriores
    private void clearRacialSkills() {
        // Aquí debes implementar la lógica para eliminar las habilidades
        // raciales previas del personaje antes de asignar las nuevas
    }

    // Otros métodos y lógica de la clase L2PcInstance...
}

 

Editado por D1MITRY-DEV
Correccion
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

×   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.