Ir para conteúdo
  • Cadastre-se

L2J Mega Corrigido


Posts recomendados

18 horas atrás, Christian-SDM disse:

PcBang para l2jmega, tudo certinho, só adicionar conforme a diff. Ja foi testado por mim. Deixe aquele like 😄

  Mostrar conteúdo oculto

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

 

Galera esse pc bang é um evento de  um item se usado, pensei que era um evento de contagem, mas o restante do código ta no link abaixo.

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

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


1 minuto atrás, Christian-SDM disse:

Galera esse pc bang é um evento de  um item se usado, pensei que era um evento de contagem, mas o restante do código ta no link abaixo.

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

Quando testamos aqui no meu pc, vimos ele fazendo a contagem direitinho, mas realmente não adicionava o item para que possa ser usado no jogo como moeda de troca..

vou add aqui. 

muito atencioso de sua parte.

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

Link para o comentário
Compartilhar em outros sites

Agora, Albeci Nogueira disse:

Quando testamos aqui no meu pc, vimos ele fazendo a contagem direitinho, mas realmente não adicionava o item para que possa ser usado no jogo como moeda de troca..

vou add aqui. 

muito atencioso de sua parte.

poisé eu não conheço o game direito, unico q joguei um tempo foi c4, e la não tinha esse PCBang,  mas falta pouca coisa no código, só analisar e adicionar.

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

11 horas atrás, lTheLegenD disse:

alguem me ajdua ai pfv.. 

@Albeci Nogueira

@Christian-SDM

 

entrei no forum agora, não tinha visto sua dúvida, mas ainda  bem que já resolveu, é assim mesmo, não pode desistir e ficar esperando sempre pelos outros,  tbm faço isso, posto a duvida mas fico procurando consertar. Parabens!

  • Obrigado 1

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

Link para o comentário
Compartilhar em outros sites

8 horas atrás, lTheLegenD disse:

qual os comandos dos fakes ? 

Segue os seguintes comandos
//fakes (mostra uma janela com o total de fakes e um link para vc dar spawn no fake)
//spawnrandom (dar spawn do player fake)
 //deletefake (seleciona o target do fake e digita esse comando para deletar )
//spawnenchante (dar spawn em um fake que simula encantando uma arma)

Esses comandos abaixos não funcionam
//takecontrol
//releasecontrol
 //spawnwalke

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

Link para o comentário
Compartilhar em outros sites

10 horas atrás, Albeci Nogueira disse:

Segue os seguintes comandos
//fakes (mostra uma janela com o total de fakes e um link para vc dar spawn no fake)
//spawnrandom (dar spawn do player fake)
 //deletefake (seleciona o target do fake e digita esse comando para deletar )
//spawnenchante (dar spawn em um fake que simula encantando uma arma)

Esses comandos abaixos não funcionam
//takecontrol
//releasecontrol
 //spawnwalke

 

aqui os random nao se atacam .. todo mundo parado kk

www.facebook.com/marcelojunior07
Seja diferente !

Link para o comentário
Compartilhar em outros sites

16 horas atrás, lTheLegenD disse:

 

aqui os random nao se atacam .. todo mundo parado kk

da spawn neles la em primeval isle (area pvp)

e na area de farm quando vc colocar eles, rita algum e verás um ataque mortal, todos se unem para te matar depois eles se matam

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

Link para o comentário
Compartilhar em outros sites

12 horas atrás, luisalberto disse:

Como hago aparecer los npc custom del servidor porfavor.

gameserver/data/xml/npcs (arquivo CustomNpcs.xml)

Abre esse arquivo e verás os id's dos mesmo.

com o char Admin vai até o lugar onde quer colocar e use o comando //spawn id (do npc)

  • Obrigado 1

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

Link para o comentário
Compartilhar em outros sites

Em 08/01/2020 at 15:02, Christian-SDM disse:

Source v4 ( ja implementado a correção do dagger)

  Mostrar conteúdo oculto

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

Pack v5 ( correção do dagger, não tava tirando dano no backtab entre outras skills, só tirava dano quando pegava o lethal)

  Mostrar conteúdo oculto

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

Patch Limpo (system+systerures)

  Mostrar conteúdo oculto

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

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

  Mostrar conteúdo oculto

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

JDK 8 64 BITS

  Mostrar conteúdo oculto

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

Correção da class para quem ja edito 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;
    }
}

 

 


 

esse sao os links. mas tem q compilar a source com java 8 para nao da erro na hora de logar.

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, The HakaiShin Kira GM disse:

Os links da source nao ta disponivel

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

ta normal acabei de abrir Source v4

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

Link para o comentário
Compartilhar em outros sites

Em 15/01/2020 at 13:00, Albeci Nogueira disse:

da spawn neles la em primeval isle (area pvp)

e na area de farm quando vc colocar eles, rita algum e verás um ataque mortal, todos se unem para te matar depois eles se matam

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

www.facebook.com/marcelojunior07
Seja diferente !

Link para o comentário
Compartilhar em outros sites

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 !

  • Obrigado 1
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)

Spoiler

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

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)

Spoiler

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

Patch Limpo (system+systerures)

Spoiler

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

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

Spoiler

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

JDK 8 64 BITS

Spoiler

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

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

Visitante
Este tópico está impedido de receber novos posts.




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