Ir para conteúdo
  • Cadastre-se

L2J Mega Corrigido


Christian-SDM

Posts recomendados

3 horas atrás, lTheLegenD disse:

aqui nao se atacam coloquei 5 la bati em todos e nada ...

\gameserver\config\Fakeplayers 

#---------------------------------------------------#
#                    FakePlayers                        #
#---------------------------------------------------#
#use //controlfake to take control and //releasecontrol to release fakeplayer
ControlFakeOn = True
FakePlayerTargetRealPlayer = True         <------------------------------------TRUE --------------------------------->
#When dead, fake player will rebuff and return to farm zone? 
#Depois de morrer, o fake player retornará para zona de farm?
#CAUTION: when set true, fake players can get stuck in geodata null points
#CUIDADO: quando true, os fake players podem ficar presos em zonas nulas de geodata
FakePlayerReturnFarmzone = False
#if yes, where is the positionw?
#se sim, qual a posição?
FakeSpawnLocation1 = 148989, -168447, 2008
FakeSpawnLocation2 = 147208, -171816, 2248
FakePlayerTitle = By Rouxy
 

 depois de ter colocado o true lá da o reload na config em game que eles vao te ataca e se atacar também !

Link para o comentário
Compartilhar em outros sites


alguem conseguiu arrumar o respawn dos fakes quando eles morren

 

FakeSpawnLocation1 = 148989, -168447, 2008
FakeSpawnLocation2 = 147208, -171816, 2248

nao da respawn eles bugão e nao volta

Editado por liraman
falta de sinal de pergunta
Link para o comentário
Compartilhar em outros sites

Algum moderador coloca os links novos no lugar dos antigos.

Source v5 ( ja implementado a correção do dagger e problema no gameserve quando loga por causa do java 11)

Pack v6 ( correção do dagger, não tava tirando dano no backtab entre outras skills, só tirava dano quando pegava o lethal e erro ao logar no gameserver por causa do java 11)

Patch Limpo (system+systerures)

Mysql 5.5 Caso não consiga fazer,por conta do erro.

JDK 8 64 BITS

Correção das  skills do dagger que tinha bug,para quem já editou e adicionou outros mods, para não recomeçar do zero.

Procure a Class Blow.java e coloque todo o codigo Abaixo!

Spoiler

/*
 * 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 net.sf.l2j.gameserver.handler.skillhandlers;

import net.sf.l2j.gameserver.handler.ISkillHandler;
import net.sf.l2j.gameserver.model.L2Effect;

import net.sf.l2j.gameserver.model.L2Skill;
import net.sf.l2j.gameserver.model.ShotType;
import net.sf.l2j.gameserver.model.WorldObject;
import net.sf.l2j.gameserver.model.actor.Creature;
import net.sf.l2j.gameserver.model.actor.instance.Player;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
import net.sf.l2j.gameserver.skills.Env;
import net.sf.l2j.gameserver.skills.Formulas;
import net.sf.l2j.gameserver.skills.basefuncs.Func;
import net.sf.l2j.gameserver.templates.skills.L2SkillType;

/**
 * @author Steuf
 */
public class Blow implements ISkillHandler
{
    private static final L2SkillType[] SKILL_IDS =
    {
        L2SkillType.BLOW
    };
    
    public static final int FRONT = 50;
    public static final int SIDE = 60;
    public static final int BEHIND = 70;
    
    @Override
    public void useSkill(Creature activeChar, L2Skill skill, WorldObject[] targets)
    {
        if (activeChar.isAlikeDead())
            return;
        
        final boolean ss = activeChar.isChargedShot(ShotType.SOULSHOT);
        
        for (WorldObject obj : targets)
        {
            if (!(obj instanceof Creature))
                continue;
            
            final Creature target = ((Creature) obj);
            if (target.isAlikeDead())
                continue;
            
            byte _successChance = SIDE;
            
            if (activeChar.isBehindTarget())
                _successChance = BEHIND;
            else if (activeChar.isInFrontOfTarget())
                _successChance = FRONT;
            
            // If skill requires Crit or skill requires behind, calculate chance based on DEX, Position and on self BUFF
            boolean success = true;
            if ((skill.getCondition() & L2Skill.COND_BEHIND) != 0)
                success = (_successChance == BEHIND);
            if ((skill.getCondition() & L2Skill.COND_CRIT) != 0)
                success = (success && Formulas.calcBlow(activeChar, target, _successChance));
            
            if (success)
            {
                // Calculate skill evasion
                boolean skillIsEvaded = Formulas.calcPhysicalSkillEvasion(target, skill);
                if (skillIsEvaded)
                {
                    if (activeChar instanceof Player)
                        ((Player) activeChar).sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_DODGES_ATTACK).addCharName(target));
                    
                    if (target instanceof Player)
                        ((Player) target).sendPacket(SystemMessage.getSystemMessage(SystemMessageId.AVOIDED_S1_ATTACK).addCharName(activeChar));
                    
                    // no futher calculations needed.
                    continue;
                }
                
                // Calculate skill reflect
                final byte reflect = Formulas.calcSkillReflect(target, skill);
                if (skill.hasEffects())
                {
                    if (reflect == Formulas.SKILL_REFLECT_SUCCEED)
                    {
                        activeChar.stopSkillEffects(skill.getId());
                        skill.getEffects(target, activeChar);
                        activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT).addSkillName(skill));
                    }
                    else
                    {
                        final byte shld = Formulas.calcShldUse(activeChar, target, skill);
                        target.stopSkillEffects(skill.getId());
                        if (Formulas.calcSkillSuccess(activeChar, target, skill, shld, true))
                        {
                            skill.getEffects(activeChar, target, new Env(shld, false, false, false));
                            target.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT).addSkillName(skill));
                        }
                        else
                            activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_RESISTED_YOUR_S2).addCharName(target).addSkillName(skill));
                    }
                }
                
                byte shld = Formulas.calcShldUse(activeChar, target, skill);
                
                // Crit rate base crit rate for skill, modified with STR bonus
                boolean crit = false;
                if (Formulas.calcCrit(skill.getBaseCritRate() * 10 * Formulas.getSTRBonus(activeChar)))
                    crit = true;
                
                double damage = (int) Formulas.calcBlowDamage(activeChar, target, skill, shld, ss);
                if (crit)
                {
                    damage *= 2;
                    
                    // Vicious Stance is special after C5, and only for BLOW skills
                    L2Effect vicious = activeChar.getFirstEffect(312);
                    if (vicious != null && damage > 1)
                    {
                        for (Func func : vicious.getStatFuncs())
                        {
                            final Env env = new Env();
                            env.setCharacter(activeChar);
                            env.setTarget(target);
                            env.setSkill(skill);
                            env.setValue(damage);
                            
                            func.calc(env);
                            damage = (int) env.getValue();
                        }
                    }
                }
                
                target.reduceCurrentHp(damage, activeChar, skill);
                
                // vengeance reflected damage
                if ((reflect & Formulas.SKILL_REFLECT_VENGEANCE) != 0)
                {
                    if (target instanceof Player)
                        target.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.COUNTERED_S1_ATTACK).addCharName(activeChar));
                    
                    if (activeChar instanceof Player)
                        activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_PERFORMING_COUNTERATTACK).addCharName(target));
                    
                    // Formula from Diego post, 700 from rpg tests
                    double vegdamage = (700 * target.getPAtk(activeChar) / activeChar.getPDef(target));
                    activeChar.reduceCurrentHp(vegdamage, target, skill);
                }
                
                // Manage cast break of the target (calculating rate, sending message...)
                Formulas.calcCastBreak(target, damage);
                
                if (activeChar instanceof Player)
                    ((Player) activeChar).sendDamageMessage(target, (int) damage, false, true, false);
            }
            else
                activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.ATTACK_FAILED));
            
            // Possibility of a lethal strike
            Formulas.calcLethalHit(activeChar, target, skill);
            
            if (skill.hasSelfEffects())
            {
                final L2Effect effect = activeChar.getFirstEffect(skill.getId());
                if (effect != null && effect.isSelfEffect())
                    effect.exit();
                
                skill.getEffectsSelf(activeChar);
            }
            activeChar.setChargedShot(ShotType.SOULSHOT, skill.isStaticReuse());
        }
    }
    
    @Override
    public L2SkillType[] getSkillIds()
    {
        return SKILL_IDS;
    }
}

Galera,  é a mesma correção da v4,  a unica coisa que foi corrigido ai, foi o erro quando tenta logar no game server causado por causa do java 11, pra quem usa faz tempo essa pack só pega as correções, não ha necessidade de fazer download, somente da class Blow.java

Link para o comentário
Compartilhar em outros sites

Christian, no Tournament tá rolando um erro...

Exemplo na configuração:

# (2x2) quantidade premios para os vencedores

ArenaWinRewardCount = 1
# (2x2) quantidade que sera retirada para os que perderem
ArenaLostRewardCount = 1

Era pra equipe perdedora perder 1 item, só que ela também está ganhando 1, mesmo perdendo.
Tive que deixar 0 ali para que a equipe que perdesse não ganhasse também. Só que assim é foda pq os kras podem fazer esquema de cada hora um vence, e se perder o item quando perder a partida então não tem como. Só não sei como seria o registro inicial, se o npc obrigaria o player a ter o item para fazer o cadastro já que ele vai perder o mesmo caso perca a luta.

 

 

Link para o comentário
Compartilhar em outros sites

47 minutos atrás, Ar4gorn disse:

Christian, no Tournament tá rolando um erro...

Exemplo na configuração:

# (2x2) quantidade premios para os vencedores

ArenaWinRewardCount = 1
# (2x2) quantidade que sera retirada para os que perderem
ArenaLostRewardCount = 1

Era pra equipe perdedora perder 1 item, só que ela também está ganhando 1, mesmo perdendo.
Tive que deixar 0 ali para que a equipe que perdesse não ganhasse também. Só que assim é foda pq os kras podem fazer esquema de cada hora um vence, e se perder o item quando perder a partida então não tem como. Só não sei como seria o registro inicial, se o npc obrigaria o player a ter o item para fazer o cadastro já que ele vai perder o mesmo caso perca a luta.

 

 

é só 2x2? ou 4x4 tbm?

Link para o comentário
Compartilhar em outros sites

2 horas atrás, Christian-SDM disse:

Algum moderador coloca os links novos no lugar dos antigos.

Source v5 ( ja implementado a correção do dagger e problema no gameserve quando loga por causa do java 11)

Pack v6 ( correção do dagger, não tava tirando dano no backtab entre outras skills, só tirava dano quando pegava o lethal e erro ao logar no gameserver por causa do java 11)

Patch Limpo (system+systerures)

Mysql 5.5 Caso não consiga fazer,por conta do erro.

JDK 8 64 BITS

Correção das  skills do dagger que tinha bug,para quem já editou e adicionou outros mods, para não recomeçar do zero.

Procure a Class Blow.java e coloque todo o codigo Abaixo!

  Mostrar conteúdo oculto

/*
 * 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 net.sf.l2j.gameserver.handler.skillhandlers;

import net.sf.l2j.gameserver.handler.ISkillHandler;
import net.sf.l2j.gameserver.model.L2Effect;

import net.sf.l2j.gameserver.model.L2Skill;
import net.sf.l2j.gameserver.model.ShotType;
import net.sf.l2j.gameserver.model.WorldObject;
import net.sf.l2j.gameserver.model.actor.Creature;
import net.sf.l2j.gameserver.model.actor.instance.Player;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
import net.sf.l2j.gameserver.skills.Env;
import net.sf.l2j.gameserver.skills.Formulas;
import net.sf.l2j.gameserver.skills.basefuncs.Func;
import net.sf.l2j.gameserver.templates.skills.L2SkillType;

/**
 * @author Steuf
 */
public class Blow implements ISkillHandler
{
    private static final L2SkillType[] SKILL_IDS =
    {
        L2SkillType.BLOW
    };
    
    public static final int FRONT = 50;
    public static final int SIDE = 60;
    public static final int BEHIND = 70;
    
    @Override
    public void useSkill(Creature activeChar, L2Skill skill, WorldObject[] targets)
    {
        if (activeChar.isAlikeDead())
            return;
        
        final boolean ss = activeChar.isChargedShot(ShotType.SOULSHOT);
        
        for (WorldObject obj : targets)
        {
            if (!(obj instanceof Creature))
                continue;
            
            final Creature target = ((Creature) obj);
            if (target.isAlikeDead())
                continue;
            
            byte _successChance = SIDE;
            
            if (activeChar.isBehindTarget())
                _successChance = BEHIND;
            else if (activeChar.isInFrontOfTarget())
                _successChance = FRONT;
            
            // If skill requires Crit or skill requires behind, calculate chance based on DEX, Position and on self BUFF
            boolean success = true;
            if ((skill.getCondition() & L2Skill.COND_BEHIND) != 0)
                success = (_successChance == BEHIND);
            if ((skill.getCondition() & L2Skill.COND_CRIT) != 0)
                success = (success && Formulas.calcBlow(activeChar, target, _successChance));
            
            if (success)
            {
                // Calculate skill evasion
                boolean skillIsEvaded = Formulas.calcPhysicalSkillEvasion(target, skill);
                if (skillIsEvaded)
                {
                    if (activeChar instanceof Player)
                        ((Player) activeChar).sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_DODGES_ATTACK).addCharName(target));
                    
                    if (target instanceof Player)
                        ((Player) target).sendPacket(SystemMessage.getSystemMessage(SystemMessageId.AVOIDED_S1_ATTACK).addCharName(activeChar));
                    
                    // no futher calculations needed.
                    continue;
                }
                
                // Calculate skill reflect
                final byte reflect = Formulas.calcSkillReflect(target, skill);
                if (skill.hasEffects())
                {
                    if (reflect == Formulas.SKILL_REFLECT_SUCCEED)
                    {
                        activeChar.stopSkillEffects(skill.getId());
                        skill.getEffects(target, activeChar);
                        activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT).addSkillName(skill));
                    }
                    else
                    {
                        final byte shld = Formulas.calcShldUse(activeChar, target, skill);
                        target.stopSkillEffects(skill.getId());
                        if (Formulas.calcSkillSuccess(activeChar, target, skill, shld, true))
                        {
                            skill.getEffects(activeChar, target, new Env(shld, false, false, false));
                            target.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT).addSkillName(skill));
                        }
                        else
                            activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_RESISTED_YOUR_S2).addCharName(target).addSkillName(skill));
                    }
                }
                
                byte shld = Formulas.calcShldUse(activeChar, target, skill);
                
                // Crit rate base crit rate for skill, modified with STR bonus
                boolean crit = false;
                if (Formulas.calcCrit(skill.getBaseCritRate() * 10 * Formulas.getSTRBonus(activeChar)))
                    crit = true;
                
                double damage = (int) Formulas.calcBlowDamage(activeChar, target, skill, shld, ss);
                if (crit)
                {
                    damage *= 2;
                    
                    // Vicious Stance is special after C5, and only for BLOW skills
                    L2Effect vicious = activeChar.getFirstEffect(312);
                    if (vicious != null && damage > 1)
                    {
                        for (Func func : vicious.getStatFuncs())
                        {
                            final Env env = new Env();
                            env.setCharacter(activeChar);
                            env.setTarget(target);
                            env.setSkill(skill);
                            env.setValue(damage);
                            
                            func.calc(env);
                            damage = (int) env.getValue();
                        }
                    }
                }
                
                target.reduceCurrentHp(damage, activeChar, skill);
                
                // vengeance reflected damage
                if ((reflect & Formulas.SKILL_REFLECT_VENGEANCE) != 0)
                {
                    if (target instanceof Player)
                        target.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.COUNTERED_S1_ATTACK).addCharName(activeChar));
                    
                    if (activeChar instanceof Player)
                        activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_PERFORMING_COUNTERATTACK).addCharName(target));
                    
                    // Formula from Diego post, 700 from rpg tests
                    double vegdamage = (700 * target.getPAtk(activeChar) / activeChar.getPDef(target));
                    activeChar.reduceCurrentHp(vegdamage, target, skill);
                }
                
                // Manage cast break of the target (calculating rate, sending message...)
                Formulas.calcCastBreak(target, damage);
                
                if (activeChar instanceof Player)
                    ((Player) activeChar).sendDamageMessage(target, (int) damage, false, true, false);
            }
            else
                activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.ATTACK_FAILED));
            
            // Possibility of a lethal strike
            Formulas.calcLethalHit(activeChar, target, skill);
            
            if (skill.hasSelfEffects())
            {
                final L2Effect effect = activeChar.getFirstEffect(skill.getId());
                if (effect != null && effect.isSelfEffect())
                    effect.exit();
                
                skill.getEffectsSelf(activeChar);
            }
            activeChar.setChargedShot(ShotType.SOULSHOT, skill.isStaticReuse());
        }
    }
    
    @Override
    public L2SkillType[] getSkillIds()
    {
        return SKILL_IDS;
    }
}

Galera,  é a mesma correção da v4,  a unica coisa que foi corrigido ai, foi o erro quando tenta logar no game server causado por causa do java 11, pra quem usa faz tempo essa pack só pega as correções, não ha necessidade de fazer download, somente da class Blow.java

falta só você adc o mod Skin nele pra fica mais show ainda

Link para o comentário
Compartilhar em outros sites

Agora, Lineage Black disse:

falta só você adc o mod Skin nele pra fica mais show ainda

não vou adicionar mods nessa pack amigo, ela não é minha, mas eu já postei o código pra adicionar esse mod.

só vo resolve problema de bug e nao de mods

Link para o comentário
Compartilhar em outros sites

14 horas atrás, Ar4gorn disse:

Christian, no Tournament tá rolando um erro...

Exemplo na configuração:

# (2x2) quantidade premios para os vencedores

ArenaWinRewardCount = 1
# (2x2) quantidade que sera retirada para os que perderem
ArenaLostRewardCount = 1

Era pra equipe perdedora perder 1 item, só que ela também está ganhando 1, mesmo perdendo.
Tive que deixar 0 ali para que a equipe que perdesse não ganhasse também. Só que assim é foda pq os kras podem fazer esquema de cada hora um vence, e se perder o item quando perder a partida então não tem como. Só não sei como seria o registro inicial, se o npc obrigaria o player a ter o item para fazer o cadastro já que ele vai perder o mesmo caso perca a luta.

 

 

Mano mais é assim mesmo, vc define a quantidade de item que cada um vai receber, tanto faz perder ou ganhar:

ArenaLostRewardCount = 1 (Recompensa para arena que perder)

ArenaWinRewardCount = 1(Recompensa para arena que ganhar)

é sem logica tirar um item que nem mesmo ele tem, e pra entrar no evento teria que ter o item pra poder ser perdido, entendeu a coisa).

No mod adicionado é a mesma função tanto para quem ganha como quem perde.

giphy.gif 
Se te ajudei não custa nada Curtir  ou Agradecer😉

Link para o comentário
Compartilhar em outros sites

7 horas atrás, Albeci Nogueira disse:

Mano mais é assim mesmo, vc define a quantidade de item que cada um vai receber, tanto faz perder ou ganhar:

ArenaLostRewardCount = 1 (Recompensa para arena que perder)

ArenaWinRewardCount = 1(Recompensa para arena que ganhar)

é sem logica tirar um item que nem mesmo ele tem, e pra entrar no evento teria que ter o item pra poder ser perdido, entendeu a coisa).

No mod adicionado é a mesma função tanto para quem ganha como quem perde.

A descrição lá é a seguinte: quantidade que sera retirada para os que perderem. 
Pelo que eu entendi dessa descrição, quando perde a luta x itens são retirados da sua conta.

 

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, Ar4gorn disse:

A descrição lá é a seguinte: quantidade que sera retirada para os que perderem. 
Pelo que eu entendi dessa descrição, quando perde a luta x itens são retirados da sua conta.

 

acho que eles erraram na descrição, pois como vai tirar um item que eles não tem.. como pode ver na função Reward = Recompensa
eu penso assim, equipe vencedora ganha 5 itens e a equipe perdedora ganha 1 = como premio de participação. 

giphy.gif 
Se te ajudei não custa nada Curtir  ou Agradecer😉

Link para o comentário
Compartilhar em outros sites

cara esse evento sempre foi assim.
não cola o cara participar do evento se n ganhar nada.
o servidor entrega a equipe ganhadora uma quantidade que vc configura exe.: 5 Turnamente
o perdedor para n ficar triste o server da 1 pra ele.
mas é só vc colocar 0 e pronto.

Link para o comentário
Compartilhar em outros sites

4 minutos atrás, angebosta disse:

image.thumb.png.7b2be2782ed8831b16ebd3d68194f69a.pngVocê sabe como resolver esse erro? O gameserver nunca passa disso...

Você está usando a ultima atualização postada? se não baixa e tente novamente, pode resolver seu problema e conserto de alguns bugs já relatados.

Se tiver mais alguma dúvida pergunte no forum de duvidas, que responderemos da mesma forma.
https://www.l2jbrasil.com/forum/18-dúvidas/

giphy.gif 
Se te ajudei não custa nada Curtir  ou Agradecer😉

Link para o comentário
Compartilhar em outros sites

Pequena correção para quem pretender usar essa REV e ter jóias boss nos boss...
O NPC Gatekeeper of Fire Dragon (npc que abre a porta até o Heart of Volcano) não estava abrindo a porta. Então procurei sobre isso e achei um tópico relacionado a Frozen 1132 mas com a solução definitiva para isso.

Caminho para correção na Source: net.sf.l2j.gameserver.scripting.scripts.teleports

Procure por:

 

elif npcId == 31384 : #Gatekeeper of Fire Dragon
DoorTable.getInstance().getDoor(24210004).openMe()
return
elif npcId == 31686 : #Gatekeeper of Fire Dragon
DoorTable.getInstance().getDoor(24210006).openMe()
return
elif npcId == 31687 : #Gatekeeper of Fire Dragon
DoorTable.getInstance().getDoor(24210005).openMe()
return
 
E altere os números em vermelho para: 4 5 e 6 respectivamente.
 
elif npcId == 31384 : #Gatekeeper of Fire Dragon
DoorTable.getInstance().getDoor(24210004).openMe()
return
elif npcId == 31686 : #Gatekeeper of Fire Dragon
DoorTable.getInstance().getDoor(24210005).openMe()
return
elif npcId == 31687 : #Gatekeeper of Fire Dragon
DoorTable.getInstance().getDoor(24210006).openMe()
return
 
Correção simples mas que vai ajudar quem queira moldar seu servidor nesse estilo.
Créditos pela correção: leozinhobr2

 

 

  • Gostei 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

9 minutos atrás, luisalberto disse:

Nice men !

Amigos como puedo hacer para que mi nuevo player vaya a talking Island en vez de irse a Giran ?

Vai em:

gameserver\config\customs\SpecialMods.properties

# Custom Spawn for news players
CustomSpawn = false -> true
RandomAreasSpawn = 1
# X, Y, Z
custom_spawn1 = 45928, 49912, -3056 (digite /loc e pegue a localização de onde ele vai nascer)
custom_spawn2 = 45928, 49912, -3056
custom_spawn3 = 45928, 49912, -3056

giphy.gif 
Se te ajudei não custa nada Curtir  ou Agradecer😉

Link para o comentário
Compartilhar em outros sites

 

quando coloquei os fakes pra se atacar ficou aparecendo esse erro ai alguem sabe oq é ?

 

como se eles nao conseguisse dar tovila e voltarasss.png.48d57a2808441216ef535bdec946ea2d.png

Editado por lTheLegenD

www.facebook.com/marcelojunior07
Seja diferente !

Link para o comentário
Compartilhar em outros sites

Mil disculpas por la pregunta tonta quizás. Alguien sabe de donde descargo el parche del cliente para poder ver todas las cosas que tiene el server ?

Descarge del topico L2jmega pero no me da.

descarge de aqui en donde dice patch limpio y y veo iconos negros.

Porfavor alquien me podria ayudar con eso ?

Uso windows 10. Muchas gracias !

Link para o comentário
Compartilhar em outros sites

11 horas atrás, luisalberto disse:

Mil disculpas por la pregunta tonta quizás. Alguien sabe de donde descargo el parche del cliente para poder ver todas las cosas que tiene el server ?

Descarge del topico L2jmega pero no me da.

descarge de aqui en donde dice patch limpio y y veo iconos negros.

Porfavor alquien me podria ayudar con eso ?

Uso windows 10. Muchas gracias !

https://mega.nz/#!cJdgXa4D!fmKNVOjCc5Z4C2Qv2Xwn7SZwvCoWjOKR4KtMfE3qsZ8

Link para o comentário
Compartilhar em outros sites

32 minutos atrás, luisalberto disse:

Ar4gorn No puedo logear 😞 . por favor alguien sabe que hacer en este caso ?

 

No Puedo logear.jpg

baixe a nova source v5
https://mega.nz/#!vgh2AIhD!w_r1tplAugxjI5Mxscoc65fHDAfC4XMzPKognepDt6k
ela já esta com algumas correções.

para não alterar suas configurações já feitas, pega apenas o l2jmega.jar dentro da pasta build e coloca dentro do gameserver/libs do seu servidor (deleta ou coloca em outro lugar como backup o arquivo l2jmega.jar antigo )

Se não resolver, compile a nova source v5 e repita o procedimento acima.

Obs. Recomendo usar o forum de dúvidas, informando a rev utilizada, aqui será apenas correções de bugs

giphy.gif 
Se te ajudei não custa nada Curtir  ou Agradecer😉

Link para o comentário
Compartilhar em outros sites

Em 22/01/2020 at 03:36, lTheLegenD disse:

 

quando coloquei os fakes pra se atacar ficou aparecendo esse erro ai alguem sabe oq é ?

 

como se eles nao conseguisse dar tovila e voltarasss.png.48d57a2808441216ef535bdec946ea2d.png

alguem ja resolveu isso ?

www.facebook.com/marcelojunior07
Seja diferente !

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Registre-se

    Faça parte da maior e  mais antigas comunidades sobre Lineage2 da América Latina.






  • Patrocinadores

  • Quem Está Navegando

    • Nenhum usuário registrado visualizando esta página.
  • Posts

    • Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?    
    • muchas gracias muy lindos NPC 🙂
    • relaxa jovem gafanhoto, testa as quests. e posTa os erros indesejaveis.  
    • Se alguém pudesse me ensinar como codificar as missões, eu ficaria feliz em fazer isso sozinho ou pelo menos ajudar. Eu realmente quero jogar em um servidor onde todas as quests funcionem bem e melhor ainda se você puder fazer quests customizadas!
    • mas no interlude, nem todas as quests de class,  vai mostrar onde tem que ir, ate o reborn nao mostrava quando era interlude, só mostrou depois que eles colocaram client classic pra rodar, e ficou melhor ainda quando virou hellbound em diante, mas ha sim alguma chance de modificar isso direto no script para fazer igualmente, só basta te um pouco de paciencia e persistencia exato
    • 408_PathToElvenwizard dá Orion eu tive que mexer tbm, até modifiquei e consegui deixar ela igual do Classic, com a seta e a marcação no mapa. (não retail IL) Dá pra importar py de várias revs, o foda é que não da regular as quest py através do debug em tempo real, pelo menos eu não consegui rsrs
    • Hasta el momento todas las QUESTS son completables si te guias con un tutorial de youtube. El problema es que tienen bugs de locacion y de subquests que no avanzan o no te marcan correctamente a donde ir en el mapa, cosa que en Retail si se ve como corresponde.
    • estranho, mas pelo menos a galera nunca reclamo das quests quando tinha aberto 5x, geral fez class primeira e segunda job, poucos que compraram a class
    • en RUSaCis-3.5 data pack, las Quests estan en formato .java y son diferentes a como estan redactadas en jOrion y jFrozen 1.5 (ProyectX) package net.sf.l2j.gameserver.scripting.quest; import net.sf.l2j.commons.random.Rnd; import net.sf.l2j.gameserver.enums.Paperdoll; import net.sf.l2j.gameserver.enums.QuestStatus; import net.sf.l2j.gameserver.enums.actors.ClassId; import net.sf.l2j.gameserver.model.actor.Creature; import net.sf.l2j.gameserver.model.actor.Npc; import net.sf.l2j.gameserver.model.actor.Player; import net.sf.l2j.gameserver.network.serverpackets.SocialAction; import net.sf.l2j.gameserver.scripting.QuestState; public class Q224_TestOfSagittarius extends SecondClassQuest { private static final String QUEST_NAME = "Q224_TestOfSagittarius"; // Items private static final int BERNARD_INTRODUCTION = 3294; private static final int HAMIL_LETTER_1 = 3295; private static final int HAMIL_LETTER_2 = 3296; private static final int HAMIL_LETTER_3 = 3297; private static final int HUNTER_RUNE_1 = 3298; private static final int HUNTER_RUNE_2 = 3299; private static final int TALISMAN_OF_KADESH = 3300; private static final int TALISMAN_OF_SNAKE = 3301; private static final int MITHRIL_CLIP = 3302; private static final int STAKATO_CHITIN = 3303; private static final int REINFORCED_BOWSTRING = 3304; private static final int MANASHEN_HORN = 3305; private static final int BLOOD_OF_LIZARDMAN = 3306; private static final int CRESCENT_MOON_BOW = 3028; private static final int WOODEN_ARROW = 17; // Rewards private static final int MARK_OF_SAGITTARIUS = 3293; // NPCs private static final int BERNARD = 30702; private static final int HAMIL = 30626; private static final int SIR_ARON_TANFORD = 30653; private static final int VOKIAN = 30514; private static final int GAUEN = 30717; // Monsters private static final int ANT = 20079; private static final int ANT_CAPTAIN = 20080; private static final int ANT_OVERSEER = 20081; private static final int ANT_RECRUIT = 20082; private static final int ANT_PATROL = 20084; private static final int ANT_GUARD = 20086; private static final int NOBLE_ANT = 20089; private static final int NOBLE_ANT_LEADER = 20090; private static final int BREKA_ORC_SHAMAN = 20269; private static final int BREKA_ORC_OVERLORD = 20270; private static final int MARSH_STAKATO_WORKER = 20230; private static final int MARSH_STAKATO_SOLDIER = 20232; private static final int MARSH_STAKATO_DRONE = 20234; private static final int MARSH_SPIDER = 20233; private static final int ROAD_SCAVENGER = 20551; private static final int MANASHEN_GARGOYLE = 20563; private static final int LETO_LIZARDMAN = 20577; private static final int LETO_LIZARDMAN_ARCHER = 20578; private static final int LETO_LIZARDMAN_SOLDIER = 20579; private static final int LETO_LIZARDMAN_WARRIOR = 20580; private static final int LETO_LIZARDMAN_SHAMAN = 20581; private static final int LETO_LIZARDMAN_OVERLORD = 20582; private static final int SERPENT_DEMON_KADESH = 27090; public Q224_TestOfSagittarius() { super(224, "Test Of Sagittarius"); setItemsIds(BERNARD_INTRODUCTION, HAMIL_LETTER_1, HAMIL_LETTER_2, HAMIL_LETTER_3, HUNTER_RUNE_1, HUNTER_RUNE_2, TALISMAN_OF_KADESH, TALISMAN_OF_SNAKE, MITHRIL_CLIP, STAKATO_CHITIN, REINFORCED_BOWSTRING, MANASHEN_HORN, BLOOD_OF_LIZARDMAN, CRESCENT_MOON_BOW); addQuestStart(BERNARD); addTalkId(BERNARD, HAMIL, SIR_ARON_TANFORD, VOKIAN, GAUEN); addMyDying(ANT, ANT_CAPTAIN, ANT_OVERSEER, ANT_RECRUIT, ANT_PATROL, ANT_GUARD, NOBLE_ANT, NOBLE_ANT_LEADER, BREKA_ORC_SHAMAN, BREKA_ORC_OVERLORD, MARSH_STAKATO_WORKER, MARSH_STAKATO_SOLDIER, MARSH_STAKATO_DRONE, MARSH_SPIDER, ROAD_SCAVENGER, MANASHEN_GARGOYLE, LETO_LIZARDMAN, LETO_LIZARDMAN_ARCHER, LETO_LIZARDMAN_SOLDIER, LETO_LIZARDMAN_WARRIOR, LETO_LIZARDMAN_SHAMAN, LETO_LIZARDMAN_OVERLORD, SERPENT_DEMON_KADESH); } @Override public String onAdvEvent(String event, Npc npc, Player player) { String htmltext = event; QuestState st = player.getQuestList().getQuestState(QUEST_NAME); if (st == null) return htmltext; // BERNARD if (event.equalsIgnoreCase("30702-04.htm")) { st.setState(QuestStatus.STARTED); st.setCond(1); playSound(player, SOUND_ACCEPT); giveItems(player, BERNARD_INTRODUCTION, 1); if (giveDimensionalDiamonds39(player)) htmltext = "30702-04a.htm"; } // HAMIL else if (event.equalsIgnoreCase("30626-03.htm")) { st.setCond(2); playSound(player, SOUND_MIDDLE); takeItems(player, BERNARD_INTRODUCTION, 1); giveItems(player, HAMIL_LETTER_1, 1); } else if (event.equalsIgnoreCase("30626-07.htm")) { st.setCond(5); playSound(player, SOUND_MIDDLE); takeItems(player, HUNTER_RUNE_1, 10); giveItems(player, HAMIL_LETTER_2, 1); } // SIR_ARON_TANFORD else if (event.equalsIgnoreCase("30653-02.htm")) { st.setCond(3); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_1, 1); } // VOKIAN else if (event.equalsIgnoreCase("30514-02.htm")) { st.setCond(6); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_2, 1); } return htmltext; } @Override public String onTalk(Npc npc, Player player) { String htmltext = getNoQuestMsg(); QuestState st = player.getQuestList().getQuestState(QUEST_NAME); if (st == null) return htmltext; switch (st.getState()) { case CREATED: if (player.getClassId() != ClassId.ROGUE && player.getClassId() != ClassId.ELVEN_SCOUT && player.getClassId() != ClassId.ASSASSIN) htmltext = "30702-02.htm"; else if (player.getStatus().getLevel() < 39) htmltext = "30702-01.htm"; else htmltext = "30702-03.htm"; break; case STARTED: int cond = st.getCond(); switch (npc.getNpcId()) { case BERNARD: htmltext = "30702-05.htm"; break; case HAMIL: if (cond == 1) htmltext = "30626-01.htm"; else if (cond == 2 || cond == 3) htmltext = "30626-04.htm"; else if (cond == 4) htmltext = "30626-05.htm"; else if (cond > 4 && cond < 8) htmltext = "30626-08.htm"; else if (cond == 8) { htmltext = "30626-09.htm"; st.setCond(9); playSound(player, SOUND_MIDDLE); takeItems(player, HUNTER_RUNE_2, 10); giveItems(player, HAMIL_LETTER_3, 1); } else if (cond > 8 && cond < 12) htmltext = "30626-10.htm"; else if (cond == 12) { htmltext = "30626-11.htm"; st.setCond(13); playSound(player, SOUND_MIDDLE); } else if (cond == 13) htmltext = "30626-12.htm"; else if (cond == 14) { htmltext = "30626-13.htm"; takeItems(player, BLOOD_OF_LIZARDMAN, -1); takeItems(player, CRESCENT_MOON_BOW, 1); takeItems(player, TALISMAN_OF_KADESH, 1); giveItems(player, MARK_OF_SAGITTARIUS, 1); rewardExpAndSp(player, 54726, 20250); player.broadcastPacket(new SocialAction(player, 3)); playSound(player, SOUND_FINISH); st.exitQuest(false); } break; case SIR_ARON_TANFORD: if (cond == 2) htmltext = "30653-01.htm"; else if (cond > 2) htmltext = "30653-03.htm"; break; case VOKIAN: if (cond == 5) htmltext = "30514-01.htm"; else if (cond == 6) htmltext = "30514-03.htm"; else if (cond == 7) { htmltext = "30514-04.htm"; st.setCond(8); playSound(player, SOUND_MIDDLE); takeItems(player, TALISMAN_OF_SNAKE, 1); } else if (cond > 7) htmltext = "30514-05.htm"; break; case GAUEN: if (cond == 9) { htmltext = "30717-01.htm"; st.setCond(10); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_3, 1); } else if (cond == 10) htmltext = "30717-03.htm"; else if (cond == 11) { htmltext = "30717-02.htm"; st.setCond(12); playSound(player, SOUND_MIDDLE); takeItems(player, MANASHEN_HORN, 1); takeItems(player, MITHRIL_CLIP, 1); takeItems(player, REINFORCED_BOWSTRING, 1); takeItems(player, STAKATO_CHITIN, 1); giveItems(player, CRESCENT_MOON_BOW, 1); giveItems(player, WOODEN_ARROW, 10); } else if (cond > 11) htmltext = "30717-04.htm"; break; } break; case COMPLETED: htmltext = getAlreadyCompletedMsg(); break; } return htmltext; } @Override public void onMyDying(Npc npc, Creature killer) { final Player player = killer.getActingPlayer(); final QuestState st = checkPlayerState(player, npc, QuestStatus.STARTED); if (st == null) return; switch (npc.getNpcId()) { case ANT: case ANT_CAPTAIN: case ANT_OVERSEER: case ANT_RECRUIT: case ANT_PATROL: case ANT_GUARD: case NOBLE_ANT: case NOBLE_ANT_LEADER: if (st.getCond() == 3 && dropItems(player, HUNTER_RUNE_1, 1, 10, 500000)) st.setCond(4); break; case BREKA_ORC_SHAMAN: case BREKA_ORC_OVERLORD: if (st.getCond() == 6 && dropItems(player, HUNTER_RUNE_2, 1, 10, 500000)) { st.setCond(7); giveItems(player, TALISMAN_OF_SNAKE, 1); } break; case MARSH_STAKATO_WORKER: case MARSH_STAKATO_SOLDIER: case MARSH_STAKATO_DRONE: if (st.getCond() == 10 && dropItems(player, STAKATO_CHITIN, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, MITHRIL_CLIP, REINFORCED_BOWSTRING)) st.setCond(11); break; case MARSH_SPIDER: if (st.getCond() == 10 && dropItems(player, REINFORCED_BOWSTRING, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, MITHRIL_CLIP, STAKATO_CHITIN)) st.setCond(11); break; case ROAD_SCAVENGER: if (st.getCond() == 10 && dropItems(player, MITHRIL_CLIP, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, REINFORCED_BOWSTRING, STAKATO_CHITIN)) st.setCond(11); break; case MANASHEN_GARGOYLE: if (st.getCond() == 10 && dropItems(player, MANASHEN_HORN, 1, 1, 100000) && player.getInventory().hasItems(REINFORCED_BOWSTRING, MITHRIL_CLIP, STAKATO_CHITIN)) st.setCond(11); break; case LETO_LIZARDMAN: case LETO_LIZARDMAN_ARCHER: case LETO_LIZARDMAN_SOLDIER: case LETO_LIZARDMAN_WARRIOR: case LETO_LIZARDMAN_SHAMAN: case LETO_LIZARDMAN_OVERLORD: if (st.getCond() == 13) { if (((player.getInventory().getItemCount(BLOOD_OF_LIZARDMAN) - 120) * 5) > Rnd.get(100)) { playSound(player, SOUND_BEFORE_BATTLE); takeItems(player, BLOOD_OF_LIZARDMAN, -1); addSpawn(SERPENT_DEMON_KADESH, player, false, 300000, true); } else dropItemsAlways(player, BLOOD_OF_LIZARDMAN, 1, 0); } break; case SERPENT_DEMON_KADESH: if (st.getCond() == 13) { if (player.getInventory().getItemIdFrom(Paperdoll.RHAND) == CRESCENT_MOON_BOW) { st.setCond(14); playSound(player, SOUND_MIDDLE); giveItems(player, TALISMAN_OF_KADESH, 1); } else addSpawn(SERPENT_DEMON_KADESH, player, false, 300000, true); } break; } } }  
×
×
  • 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.