Ir para conteúdo
  • Cadastre-se

L2J Mega Corrigido


Posts recomendados

6 minutos atrás, L2carlinhos2020 disse:

 quando eu acordo ele e mi mata  pois isso  clico para volta pra  cidade ele  nasce denovo como se tive  dado res!

estranho issso ! nunca vir isso

isso é na flagzone, vc tem que colocar o spawn pra volta. a maioria das flagzone esta assim. eu deletei tudo e fiz as minhas proprias flagzone. 

Link para o comentário
Compartilhar em outros sites


3 minutos atrás, L2carlinhos2020 disse:

image.thumb.png.227536322bb11304e37088f2d2e355d6.png

 

 

ÚNICA COISA QUE PEGUEI DA ANTIGA FOI SO TELA  DE GAMER SERVE  O ARQUIVOS STARTGAMESERVER.

 UTILIZEI ISSO PARA PODE DIFERENCIA  SO A COR DA TELA QUANDO CARREGA OS DADOS .

então não sei, aqui ta 100% normal sem bug algum Refaça oque vc fez e liga ela limpa sem suas modificaçoes, mas vou postar agora nova atualização dos bugs reportados, entao espere!

Link para o comentário
Compartilhar em outros sites

3 horas atrás, Christian-SDM disse:

Não adianta só trocar ai, tem q alterar a função no core.java, ja fiz isso q tu fez ai, mas dps q ele renasce novamente troca automaticamente.. Isso  é facil de resolver no core tbm, assim que eu corrigir o bug das classes de n tirar dano usando surrender eu ja aplico a correção do core tbm

Christian, eu fui no core e la estava padrão os Spawns, eu fiz o seguinte, joguei os spawns do core no sql e ta tudo funcionando normal, core, queen ant e orfen (estavam fora do respawn correto).

Link para o comentário
Compartilhar em outros sites

18 minutos atrás, ICON disse:

isso é na flagzone, vc tem que colocar o spawn pra volta. a maioria das flagzone esta assim. eu deletei tudo e fiz as minhas proprias flagzone. 

pra tu ver q ele n pego a atualizada, pq  a atualizada, eu limpei as chaotic, só ta nos bosses principais flag.

e ja testei ta de boa sem bug. Então vamos la

Source 15/04/2020

Spoiler

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

Pack 15/04/2020

Spoiler

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

oque foi corrigido?

*Bug das skills, não tirava dano, quando usava surrender, e outras classes como spellsiger/sorcere, não tirava dano em nada. E Arkeiros, dava dano absurdo entre outras class.

*Bug Core, fica indo por teto cada spawn, até ficar no meio do nada ( foi pego o core.java da l2jfrozen e adaptado para acis, porque nenhuma  acis de nenhuma script deu certo. )

Video

 

 

11 minutos atrás, Marlon Carvalho disse:

Christian, eu fui no core e la estava padrão os Spawns, eu fiz o seguinte, joguei os spawns do core no sql e ta tudo funcionando normal, core, queen ant e orfen (estavam fora do respawn correto).

ja falei  n adianta, precisa modificar core.java nao adianta trocar so sql --

Joga o like ai gente ^^

Editado por Christian-SDM
  • Gostei 5
  • Haha 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

14 minutos atrás, Christian-SDM disse:

pra tu ver q ele n pego a atualizada, pq  a atualizada, eu limpei as chaotic, só ta nos bosses principais flag.

e ja testei ta de boa sem bug. Então vamos la

Source 15/04/2020

  Mostrar conteúdo oculto

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

Pack 15/04/2020

  Mostrar conteúdo oculto

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

oque foi corrigido?

*Bug das skills, não tirava dano, quando usava surrender, e outras classes como spellsiger/sorcere, não tirava dano em nada. E Arkeiros, dava dano absurdo entre outras class.

*Bug Core, fica indo por teto cada spawn, até ficar no meio do nada ( foi pego o core.java da l2jfrozen e adaptado para acis, porque nenhuma  acis de nenhuma script deu certo. )

Video

 

 

ja falei  n adianta, precisa modificar core.java nao adianta trocar so sql --

fala ai maninho blz todo santo dia fico na expectativa dessa rev ai 
mano primeiramente pesso desculpas falar isso aqui mais agora pouco criei um topico
na area de ajuda tem como c min ajudar la no mod q postei la?
vlw mano

Link para o comentário
Compartilhar em outros sites

A Rev ta simplesmente incrivel, dificil de achar algum bug nela... parabéns @Christian-SDM Um otimo trabalho !

Não sei se é falta de conhecimento meu, por ter começado a mexer na Acis com essa revisão, ou se esta faltando ou não existe na acis, os comandos de "recall_npc" e "ride_wyvern"... são detalhes...
Eu não sei mexer muito em java, mas vou tentar procurar mods de Ant-Zerg e Siege Reward que são bem interessantes e que pra min, iria ficar completa.

Novamente parabéns um otimo trabalho.

logo.png.8f91d59ca1aa40cc2ac4b549d87a429c.png

Link para o comentário
Compartilhar em outros sites

41 minutos atrás, Diplo Inside disse:

A Rev ta simplesmente incrivel, dificil de achar algum bug nela... parabéns @Christian-SDM Um otimo trabalho !

Não sei se é falta de conhecimento meu, por ter começado a mexer na Acis com essa revisão, ou se esta faltando ou não existe na acis, os comandos de "recall_npc" e "ride_wyvern"... são detalhes...
Eu não sei mexer muito em java, mas vou tentar procurar mods de Ant-Zerg e Siege Reward que são bem interessantes e que pra min, iria ficar completa.

Novamente parabéns um otimo trabalho.

Amanha vejo se boto esses mods ai, só nao vi o ride_wvern, q ele faz? diz ai q amanha eu do uma olhada

Link para o comentário
Compartilhar em outros sites

5 minutos atrás, Christian-SDM disse:

Amanha vejo se boto esses mods ai, só nao vi o ride_wvern, q ele faz? diz ai q amanha eu do uma olhada

é o comando pra montar no Wyvern"Dragão" (Apenas detalhe), se possivel, ver tbm a questão do donate enchant...

 

Editado por Diplo Inside
Diplo Inside

logo.png.8f91d59ca1aa40cc2ac4b549d87a429c.png

Link para o comentário
Compartilhar em outros sites




   
 
 
 

 
 
 
   
 	    
 	
 	    
	    
	    
	    
	    
 	
 	private static final String RESTORE_CHAR_SUBCLASSES = "SELECT class_id,exp,sp,level,class_index FROM character_subclasses WHERE char_obj_id=? ORDER BY class_index ASC";
 	private static final String ADD_CHAR_SUBCLASS = "INSERT INTO character_subclasses (char_obj_id,class_id,exp,sp,level,class_index) VALUES (?,?,?,?,?,?)";
@@ -376,6 +377,8 @@
 	
 	private PcAppearance _appearance;
 	
+	private int pcBangPoint = 0;
+
 	private long _expBeforeDeath;
 	private int _karma;
 	private int _pvpKills;
@@ -5324,6 +5327,8 @@
 				player.setOnlineTime(rset.getLong("onlinetime"));
 				player.setNoble(rset.getInt("nobless") == 1, false);
 				
+				player.pcBangPoint = rset.getInt("pc_point");
+
 				player.setClanJoinExpiryTime(rset.getLong("clan_join_expiry_time"));
 				if (player.getClanJoinExpiryTime() < System.currentTimeMillis())
 					player.setClanJoinExpiryTime(0);
@@ -5747,7 +5752,8 @@
 			statement.setLong(47, getClanCreateExpiryTime());
 			statement.setString(48, getName());
 			statement.setLong(49, getDeathPenaltyBuffLevel());
-			statement.setInt(50, getObjectId());
+			statement.setInt(50, getPcBangScore());
+			statement.setInt(51, getObjectId());
 			
 			statement.execute();
 			statement.close();
@@ -10564,4 +10570,33 @@
 		teleToLocation(0, 0, 0, 0);
 		sendMessage("Error with your coords, Please ask a GM for help!");
 	}
+	
+	public int getPcBangScore()
+	{
+		return pcBangPoint;
+	}
+	
+	public void reducePcBangScore(int to)
+	{
+		pcBangPoint -= to;
+		updatePcBangWnd(to, false, false);
+	}
+	
+	public void addPcBangScore(int to)
+	{
+		pcBangPoint += to;
+	}
+	
+	public void updatePcBangWnd(int score, boolean add, boolean duble)
+	{
+		ExPCCafePointInfo wnd = new ExPCCafePointInfo(this, score, add, 24, duble);
+		sendPacket(wnd);
+	}
+	
+	public void showPcBangWindow()
+	{
+		ExPCCafePointInfo wnd = new ExPCCafePointInfo(this, 0, false, 24, false);
+		sendPacket(wnd);
+	}
+
 }
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(revision 9)
+++ java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(working copy)
@@ -227,6 +227,8 @@
 		
 		activeChar.onPlayerEnter();
 		
+		activeChar.showPcBangWindow();
+
 		sendPacket(new SkillCoolTime(activeChar));
 		
 		// If player logs back in a stadium, port him in nearest town.
Index: java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java
===================================================================
--- java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java	(revision 9)
+++ java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java	(working copy)
@@ -1,46 +1,75 @@
-/*
- * 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!
+/* 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 2, 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, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + *
O conteúdo está oculto, favor efetuar login ou se cadastrar!
*/ package net.sf.l2j.gameserver.network.serverpackets; -/** - * Format: ch ddcdc - * @author KenM - */ +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; + public class ExPCCafePointInfo extends L2GameServerPacket { - private final int _score, _modify, _periodType, _remainingTime; - private int _pointType = 0; + private static final String _S__FE_31_EXPCCAFEPOINTINFO = "[S] FE:31 ExPCCafePointInfo"; + private L2PcInstance _character; + private int m_AddPoint; + private int m_PeriodType; + private int RemainTime; + private int PointType; - public ExPCCafePointInfo(int score, int modify, boolean addPoint, boolean pointType, int remainingTime) + public ExPCCafePointInfo(L2PcInstance user, int modify, boolean add, int hour, boolean _double) { - _score = score; - _modify = addPoint ? modify : modify * -1; - _remainingTime = remainingTime; - _pointType = addPoint ? (pointType ? 0 : 1) : 2; - _periodType = 1; // get point time + _character = user; + m_AddPoint = modify; + + if (add) + { + m_PeriodType = 1; + PointType = 1; + } + else + { + if (add && _double) + { + m_PeriodType = 1; + PointType = 0; + } + else + { + m_PeriodType = 2; + PointType = 2; + } + } + + RemainTime = hour; } - + @Override protected void writeImpl() { writeC(0xFE); writeH(0x31); - writeD(_score); - writeD(_modify); - writeC(_periodType); - writeD(_remainingTime); - writeC(_pointType); + writeD(_character.getPcBangScore()); + writeD(m_AddPoint); + writeC(m_PeriodType); + writeD(RemainTime); + writeC(PointType); + } + + @Override + public String getType() + { + return _S__FE_31_EXPCCAFEPOINTINFO; } } \ No newline at end of file Index: java/net/sf/l2j/gameserver/scripting/scripts/custom/PcPoint.java =================================================================== --- java/net/sf/l2j/gameserver/scripting/scripts/custom/PcPoint.java (revision 0) +++ java/net/sf/l2j/gameserver/scripting/scripts/custom/PcPoint.java (revision 0) @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2004-2014 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 <
O conteúdo está oculto, favor efetuar login ou se cadastrar!
+ */ +package net.sf.l2j.gameserver.scripting.scripts.custom; + +import net.sf.l2j.commons.random.Rnd; +import net.sf.l2j.gameserver.datatables.NpcTable; +import net.sf.l2j.gameserver.model.actor.L2Npc; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.model.actor.template.NpcTemplate; +import net.sf.l2j.gameserver.scripting.Quest; + +public class PcPoint extends Quest +{ + public PcPoint() + { + super(-1, "custom"); + for (NpcTemplate t : NpcTable.getInstance().getTemplates(t -> t.isType("L2Monster"))) + { + addKillId(t.getIdTemplate()); + } + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet) + { + if ((killer.getLevel() >= 75) && (npc.getLevel() < 60)) + { + return ""; + } + int score = 0; + score = Rnd.get(100, 250); + killer.addPcBangScore(score); + killer.updatePcBangWnd(score, true, false); + return super.onKill(npc, killer, isPet); + } + + public static void main(String[] arg) + { + new PcPoint(); + } + +} \ No newline at end of file
Index: data/xml/scripts.xml
===================================================================
--- data/xml/scripts.xml	(revision 9)
+++ data/xml/scripts.xml	(working copy)
@@ -361,7 +361,8 @@
 	<script path="scripts.custom.NpcLocationInfo"/>
 	<script path="scripts.custom.HeroCirclet"/>
 	<script path="scripts.custom.HeroWeapon"/>
-
+	<script path="scripts.custom.PcPoint"/>
+	
 	<!-- Events -->
 
 <!-- 	<script path="scripts.events.GiftOfVitality"/> -->
Index: sql/characters.sql
===================================================================
--- sql/characters.sql	(revision 9)
+++ sql/characters.sql	(working copy)
@@ -54,6 +54,7 @@
   `clan_join_expiry_time` BIGINT UNSIGNED NOT NULL DEFAULT 0,
   `clan_create_expiry_time` BIGINT UNSIGNED NOT NULL DEFAULT 0,
   `death_penalty_level` SMALLINT UNSIGNED NOT NULL DEFAULT 0,
+  `pc_point` int (1) NOT NULL DEFAULT 0,
   PRIMARY KEY (obj_Id),
   KEY `clanid` (`clanid`)
 );
\ No newline at end of file
Link para o comentário
Compartilhar em outros sites

Kara você tem que usa um sistema limpa !

28 minutos atrás, ChristianTapajos disse:

aki ta dando um erro nao passar do login o deve ser ??

Usa essa system aqui amigo 

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

Carlinhos l2 Fortaleza-Ceara

Link para o comentário
Compartilhar em outros sites

10 horas atrás, Christian-SDM disse:

pra tu ver q ele n pego a atualizada, pq  a atualizada, eu limpei as chaotic, só ta nos bosses principais flag.

e ja testei ta de boa sem bug. Então vamos la

Source 15/04/2020

  Ocultar conteúdo

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

Pack 15/04/2020

  Ocultar conteúdo

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

oque foi corrigido?

*Bug das skills, não tirava dano, quando usava surrender, e outras classes como spellsiger/sorcere, não tirava dano em nada. E Arkeiros, dava dano absurdo entre outras class.

*Bug Core, fica indo por teto cada spawn, até ficar no meio do nada ( foi pego o core.java da l2jfrozen e adaptado para acis, porque nenhuma  acis de nenhuma script deu certo. )

Video

 

 

ja falei  n adianta, precisa modificar core.java nao adianta trocar so sql --

Joga o like ai gente ^^

Christian, eu estou com a penultima atualização sua, sem ser a de ontem dia 14, e eu ataco normalmente os mobs de monas, dou surrender e vampiric claw, curse gloom e vampire claw, eu ataco de todas as formas e esta tudo normal, seria possível este erro estar acontecendo por alguma opção nas configs que possam ter haver  com player ou npc?

Link para o comentário
Compartilhar em outros sites

37 minutos atrás, Marlon Carvalho disse:

Christian, I have your penultimate update, other than yesterday, the 14th, and I normally attack mona mobs, surrender and vampiric claw, curse gloom and vampire claw, I attack in every way and everything is normal, could this error be happening due to any option in the settings that may have to do with player or npc?

This bug was in java, if touched all skills xml it could attack normal but your all items stats going crazy. 😄

Now it working perfectly.

Link para o comentário
Compartilhar em outros sites

Christian estava testado ontem a parte da siege  na Rev percebi que alguns erro?

1-  os guarda não aparece 

2- os muros  laterais  do castelo não quebra

3- após conquista castelo a bandeira da clan que ganho  não fica em todos npcs.

 

Verifica ser realmente é bug?

Carlinhos l2 Fortaleza-Ceara

Link para o comentário
Compartilhar em outros sites

Em 03/12/2019 at 14:22, Christian-SDM disse:

Boa tarde, Postei ela corrigida no outro tópico, mas acho que ninguém notou, até porque muitos queriam usar o projeto, porem contia bugs e erros no core, onde o dono tinha como derrubar o servidor porque tinha uma falha, então eu peguei o projeto  e  arrumei.

Outras correçôes:

Estou postando ela arrumada, sem Key, Isso mesmo!  Agora da pra logar com qualquer system, e arrumei o erro que travava o char quando dava skill, por causa da Key, e  o Bug de duplicação de itens com pet, foi corrigido, Restaurei o retail da pack, não tem nada editado, somente os mods e npcs mods! Qualquer Bug, posta que eu arrumo.

*Vai Source Corrigida + Pack com backup limpo.

Projeto usa Java 8

1º Source Corrigida (Download disponível pelo fórum também).

O conteúdo está oculto, favor efetuar login ou se cadastrar!
 (Nova 09/03/2020)

2° Pack+Backup Retail (Download disponível pelo fórum também).

O conteúdo está oculto, favor efetuar login ou se cadastrar!
 (Novo 09/03/2020) + Novos Mods.

XyPk9.png&key=8a51bb7f382fbc2536ad60024cAlgumas Info:XyPk9.png&key=8a51bb7f382fbc2536ad60024c

  • Siege Semanal
  • Olly semanal
  • Tatto Custom
  • Weapons Lindvior Custom CXoW5.gif&key=5d75686657729fca6e2135de03
  • Armor Transcedent Custom CXoW5.gif&key=5d75686657729fca6e2135de03
  • Donate Shop VIP - Hero - Class, Name e Sex Change
  • 99 Acessórios 2018 CXoW5.gif&key=5d75686657729fca6e2135de03
  • Blessed Scroll: 90% +18  - Crystal Scroll 100% até +22 - Golden Scroll 100%  até +25
  • Buff
  • Clan Manager
  • Raid Info
  • Augment NPC
  • Skills Enchant NPC
  • Tournament Event - TvT - Party farm events
  • Chaotic Zone
  • Aiox System
  • Vip System
  • Mod Phantom - Fake Player System CXoW5.gif&key=5d75686657729fca6e2135de03
  • Anti-bot com Captcha

XyPk9.png&key=8a51bb7f382fbc2536ad60024cAlguns Comandos:XyPk9.png&key=8a51bb7f382fbc2536ad60024c

  • .menu
  • .info
  • .donate
  • .status
  • .skills
  • .inventory
  • .ranking

VIP ITEM + CORREÇÃO DE BUG NPC SUMINDO (CORRIGIDO)

  Mostrar conteúdo oculto

 

 

 

 

NOVO BUG CORRIGIDO ADENA ACIS 361+

COMO ESTAVA:

  Mostrar conteúdo oculto

 

COMO ESTÁ: 

  Mostrar conteúdo oculto

 

 

 

Código para aqueles que já tem a source e adicionaram outros mods e modificaram o core, para não perde tudo, toma a correção individual. Procure a Class MultiSellChoose.java e mude todo o arquivo !

  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.network.clientpackets;

import java.util.ArrayList;
import java.util.List;

import net.sf.l2j.Config;
import net.sf.l2j.gameserver.model.L2Augmentation;
import net.sf.l2j.gameserver.model.actor.Npc;
import net.sf.l2j.gameserver.model.actor.instance.Player;
import net.sf.l2j.gameserver.model.item.instance.ItemInstance;
import net.sf.l2j.gameserver.model.itemcontainer.PcInventory;
import net.sf.l2j.gameserver.model.multisell.Entry;
import net.sf.l2j.gameserver.model.multisell.Ingredient;
import net.sf.l2j.gameserver.model.multisell.PreparedListContainer;
import net.sf.l2j.gameserver.network.FloodProtectors;
import net.sf.l2j.gameserver.network.FloodProtectors.Action;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.network.serverpackets.ItemList;
import net.sf.l2j.gameserver.network.serverpackets.StatusUpdate;
import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;


public class MultiSellChoose extends L2GameClientPacket
{
    // Special IDs.
    private static final int CLAN_REPUTATION = 65336;
    // private static final int PC_BANG_POINTS = 65436;
    
    private int _listId;
    private int _entryId;
    private int _amount;
    private int _transactionTax; // local handling of taxation
    
    @Override
    protected void readImpl()
    {
        _listId = readD();
        _entryId = readD();
        _amount = readD();
        _transactionTax = 0;
    }
    
    @Override
    public void runImpl()
    {
        final Player player = getClient().getActiveChar();
        if (player == null)
            return;
        
        if (!FloodProtectors.performAction(getClient(), Action.MULTISELL))
        {
            player.setMultiSell(null);
            return;
        }
        
        if (_amount < 1 || _amount > 9999)
        {
            player.setMultiSell(null);
            return;
        }
        
        final PreparedListContainer list = player.getMultiSell();
        if (list == null || list.getId() != _listId)
        {
            player.setMultiSell(null);
            return;
        }
        
        final Npc npc = player.getCurrentFolkNPC();
        if ((npc != null && !list.isNpcAllowed(npc.getNpcId())) || (npc == null && list.isNpcOnly()))
        {
            player.setMultiSell(null);
            return;
        }
        
        if (npc != null && !npc.canInteract(player))
        {
            player.setMultiSell(null);
            return;
        }
        
        final PcInventory inv = player.getInventory();
        
        for (Entry entry : list.getEntries())
        {
            if (entry.getId() == _entryId)
            {
                if (!entry.isStackable() && _amount > 1)
                {
                    player.setMultiSell(null);
                    return;
                }
                
                int slots = 0;
                long weight = 0;
                for (Ingredient e : entry.getProducts())
                {
                    if (e.getItemId() < 0)
                        continue;
                    
                    if (!e.isStackable())
                        slots += e.getItemCount() * _amount;
                    else if (player.getInventory().getItemByItemId(e.getItemId()) == null)
                        slots++;
                    
                    weight += (long)e.getItemCount() * _amount * e.getWeight();
                }
                
                if (!inv.validateCapacity(slots))
                {
                    player.sendPacket(SystemMessageId.SLOTS_FULL);
                    return;
                }
                
                if (weight > Integer.MAX_VALUE || weight < 0 || !inv.validateWeight((int)weight))
                {
                    player.sendPacket(SystemMessageId.WEIGHT_LIMIT_EXCEEDED);
                    return;
                }
                
                // Generate a list of distinct ingredients and counts in order to check if the correct item-counts are possessed by the player
                List<Ingredient> ingredientsList = new ArrayList<>(entry.getIngredients().size());
                boolean newIng;
                
                for (Ingredient e : entry.getIngredients())
                {
                    newIng = true;
                    
                    // at this point, the template has already been modified so that enchantments are properly included
                    // whenever they need to be applied. Uniqueness of items is thus judged by item id AND enchantment level
                    for (int i = ingredientsList.size(); --i >= 0;)
                    {
                        Ingredient ex = ingredientsList.get(i);
                        
                        // if the item was already added in the list, merely increment the count
                        // this happens if 1 list entry has the same ingredient twice (example 2 swords = 1 dual)
                        if (ex.getItemId() == e.getItemId() && ex.getEnchantLevel() == e.getEnchantLevel())
                        {
                            long totalCount = (long)ex.getItemCount() + e.getItemCount();
                            if (totalCount > Integer.MAX_VALUE || totalCount < 0)
                            {
                                player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED);
                                return;
                            }
                            
                            // two same ingredients, merge into one and replace old
                            final Ingredient ing = ex.getCopy();
                            ing.setItemCount((int)totalCount);
                            ingredientsList.set(i, ing);
                            
                            newIng = false;
                            break;
                        }
                    }
                    
                    // if it's a new ingredient, just store its info directly (item id, count, enchantment)
                    if (newIng)
                        ingredientsList.add(e);
                }
                
                // now check if the player has sufficient items in the inventory to cover the ingredients' expences
                for (Ingredient e : ingredientsList)
                {
                    if (Integer.MAX_VALUE / e.getItemCount() < _amount)
                    {
                        player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED);
                        return;
                    }
                    
                    if (e.getItemId() == CLAN_REPUTATION)
                    {
                        if (player.getClan() == null)
                        {
                            player.sendPacket(SystemMessageId.YOU_ARE_NOT_A_CLAN_MEMBER);
                            return;
                        }
                        
                        if (!player.isClanLeader())
                        {
                            player.sendPacket(SystemMessageId.ONLY_THE_CLAN_LEADER_IS_ENABLED);
                            return;
                        }
                        
                        if (player.getClan().getReputationScore() < e.getItemCount() * _amount)
                        {
                            player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_SCORE_IS_TOO_LOW);
                            return;
                        }
                    }
                    else
                    {
                        // if this is not a list that maintains enchantment, check the count of all items that have the given id.
                        // otherwise, check only the count of items with exactly the needed enchantment level
                        if (inv.getInventoryItemCount(e.getItemId(), list.getMaintainEnchantment() ? e.getEnchantLevel() : -1, false) < ((Config.ALT_BLACKSMITH_USE_RECIPES || !e.getMaintainIngredient()) ? e.getItemCount() * _amount : e.getItemCount()))
                        {
                            player.sendPacket(SystemMessageId.NOT_ENOUGH_ITEMS);
                            return;
                        }
                    }
                }
                
                List<L2Augmentation> augmentation = new ArrayList<>();
                
                for (Ingredient e : entry.getIngredients())
                {
                    if (e.getItemId() == CLAN_REPUTATION)
                    {
                        final int amount = e.getItemCount() * _amount;
                        
                        player.getClan().takeReputationScore(amount);
                        player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_DEDUCTED_FROM_CLAN_REP).addNumber(amount));
                    }
                    else
                    {
                        ItemInstance itemToTake = inv.getItemByItemId(e.getItemId());
                        if (itemToTake == null)
                        {
                            player.setMultiSell(null);
                            return;
                        }
                        
                        if (Config.ALT_BLACKSMITH_USE_RECIPES || !e.getMaintainIngredient())
                        {
                            // if it's a stackable item, just reduce the amount from the first (only) instance that is found in the inventory
                            if (itemToTake.isStackable())
                            {
                                if (!player.destroyItem("Multisell", itemToTake.getObjectId(), (e.getItemCount() * _amount), player.getTarget(), true))
                                {
                                    player.setMultiSell(null);
                                    return;
                                }
                            }
                            else
                            {
                                // for non-stackable items, one of two scenaria are possible:
                                // a) list maintains enchantment: get the instances that exactly match the requested enchantment level
                                // b) list does not maintain enchantment: get the instances with the LOWEST enchantment level
                                
                                // a) if enchantment is maintained, then get a list of items that exactly match this enchantment
                                if (list.getMaintainEnchantment())
                                {
                                    // loop through this list and remove (one by one) each item until the required amount is taken.
                                    ItemInstance[] inventoryContents = inv.getAllItemsByItemId(e.getItemId(), e.getEnchantLevel(), false);
                                    for (int i = 0; i < (e.getItemCount() * _amount); i++)
                                    {
                                        if (inventoryContents.isAugmented())
                                            augmentation.add(inventoryContents.getAugmentation());
                                        
                                        if (!player.destroyItem("Multisell", inventoryContents.getObjectId(), 1, player.getTarget(), true))
                                        {
                                            player.setMultiSell(null);
                                            return;
                                        }
                                    }
                                }
                                else
                                // b) enchantment is not maintained. Get the instances with the LOWEST enchantment level
                                {
                                    for (int i = 1; i <= (e.getItemCount() * _amount); i++)
                                    {
                                        ItemInstance[] inventoryContents = inv.getAllItemsByItemId(e.getItemId(), false);
                                        
                                        itemToTake = inventoryContents[0];
                                        // get item with the LOWEST enchantment level from the inventory (0 is the lowest)
                                        if (itemToTake.getEnchantLevel() > 0)
                                        {
                                            for (ItemInstance item : inventoryContents)
                                            {
                                                if (item.getEnchantLevel() < itemToTake.getEnchantLevel())
                                                {
                                                    itemToTake = item;
                                                    
                                                    // nothing will have enchantment less than 0. If a zero-enchanted item is found, just take it
                                                    if (itemToTake.getEnchantLevel() == 0)
                                                        break;
                                                }
                                            }
                                        }
                                        
                                        if (!player.destroyItem("Multisell", itemToTake.getObjectId(), 1, player.getTarget(), true))
                                        {
                                            player.setMultiSell(null);
                                            return;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                
                // Generate the appropriate items
                for (Ingredient e : entry.getProducts())
                {
                    if (e.getItemId() == CLAN_REPUTATION)
                        player.getClan().addReputationScore(e.getItemCount() * _amount);
                    else
                    {
                        if (e.isStackable())
                            inv.addItem("Multisell", e.getItemId(), e.getItemCount() * _amount, player, player.getTarget());
                        else
                        {
                            for (int i = 0; i < (e.getItemCount() * _amount); i++)
                            {
                                ItemInstance product = inv.addItem("Multisell", e.getItemId(), 1, player, player.getTarget());
                                if (product != null && list.getMaintainEnchantment())
                                {
                                    if (i < augmentation.size())
                                        product.setAugmentation(new L2Augmentation(augmentation.get(i).getAugmentationId(), augmentation.get(i).getSkill()));
                                    
                                    product.setEnchantLevel(e.getEnchantLevel());
                                    product.updateDatabase();
                                }
                            }
                        }
                        
                        // msg part
                        SystemMessage sm;
                        
                        if (e.getItemCount() * _amount > 1)
                            sm = SystemMessage.getSystemMessage(SystemMessageId.EARNED_S2_S1_S).addItemName(e.getItemId()).addNumber(e.getItemCount() * _amount);
                        else
                        {
                            if (list.getMaintainEnchantment() && e.getEnchantLevel() > 0)
                                sm = SystemMessage.getSystemMessage(SystemMessageId.ACQUIRED_S1_S2).addNumber(e.getEnchantLevel()).addItemName(e.getItemId());
                            else
                                sm = SystemMessage.getSystemMessage(SystemMessageId.EARNED_ITEM_S1).addItemName(e.getItemId());
                        }
                        player.sendPacket(sm);
                    }
                }
                player.sendPacket(new ItemList(player, false));
                
                // All ok, send success message, remove items and add final product
                player.sendPacket(SystemMessageId.SUCCESSFULLY_TRADED_WITH_NPC);
                
                StatusUpdate su = new StatusUpdate(player);
                su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());
                player.sendPacket(su);
                
                // finally, give the tax to the castle...
                if (npc != null && entry.getTaxAmount() > 0)
                    npc.getCastle().addToTreasury(_transactionTax * _amount);
                
                break;
            }
        }
    }
}

 

 

Arquivo individual para quem ja modificou o core para uso proprío. Procure por Attackable.java e troque todo arquivo.

  Mostrar conteúdo oculto

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

Oque foi modificado? XP VIP, O Personagem, não estava recebendo xp

 

MOD SHIFT MOUSE ADICIONADO (VÍDEO ABAIXO DEMONSTRANDO)

  Mostrar conteúdo oculto

 

 

 

 Oque foi adicionado? 04/03/2020

Auto potion automatico e Dressme 2 clique item!

Pra registrar o item so ir no id e colocar como abaixo:

  Mostrar conteúdo oculto

São 15 itens 2 cliques na pack, cada um tem um nome

Para registrar só usar esse comando no item.

<set name="handler" val="skin1" />

no total sao 15

skin1

skin2

skin3 etc

 

Video demostrativo!

  Mostrar conteúdo oculto

 

 

 

 

PROGRAMAS Necessários:

Java: 8 JDK : 

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

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

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

- Utilitário: L2FileEdit : 
O conteúdo está oculto, favor efetuar login ou se cadastrar!

Tópico Original

 

Créditos da Rev base : @MeGaPacKl
Créditos customização : @Kallisto

 

 

 

Pack2020.rar 20 MB · 218 downloads Source.rar 29 MB · 137 downloads

Source09.03.2020.rar 29 MB · 150 downloads

Mano, o link do media tá com problema.. tem como passar com outro link?

Em 03/12/2019 at 14:22, Christian-SDM disse:

Boa tarde, Postei ela corrigida no outro tópico, mas acho que ninguém notou, até porque muitos queriam usar o projeto, porem contia bugs e erros no core, onde o dono tinha como derrubar o servidor porque tinha uma falha, então eu peguei o projeto  e  arrumei.

Outras correçôes:

Estou postando ela arrumada, sem Key, Isso mesmo!  Agora da pra logar com qualquer system, e arrumei o erro que travava o char quando dava skill, por causa da Key, e  o Bug de duplicação de itens com pet, foi corrigido, Restaurei o retail da pack, não tem nada editado, somente os mods e npcs mods! Qualquer Bug, posta que eu arrumo.

*Vai Source Corrigida + Pack com backup limpo.

Projeto usa Java 8

1º Source Corrigida (Download disponível pelo fórum também).

O conteúdo está oculto, favor efetuar login ou se cadastrar!
 (Nova 09/03/2020)

2° Pack+Backup Retail (Download disponível pelo fórum também).

O conteúdo está oculto, favor efetuar login ou se cadastrar!
 (Novo 09/03/2020) + Novos Mods.

XyPk9.png&key=8a51bb7f382fbc2536ad60024cAlgumas Info:XyPk9.png&key=8a51bb7f382fbc2536ad60024c

  • Siege Semanal
  • Olly semanal
  • Tatto Custom
  • Weapons Lindvior Custom CXoW5.gif&key=5d75686657729fca6e2135de03
  • Armor Transcedent Custom CXoW5.gif&key=5d75686657729fca6e2135de03
  • Donate Shop VIP - Hero - Class, Name e Sex Change
  • 99 Acessórios 2018 CXoW5.gif&key=5d75686657729fca6e2135de03
  • Blessed Scroll: 90% +18  - Crystal Scroll 100% até +22 - Golden Scroll 100%  até +25
  • Buff
  • Clan Manager
  • Raid Info
  • Augment NPC
  • Skills Enchant NPC
  • Tournament Event - TvT - Party farm events
  • Chaotic Zone
  • Aiox System
  • Vip System
  • Mod Phantom - Fake Player System CXoW5.gif&key=5d75686657729fca6e2135de03
  • Anti-bot com Captcha

XyPk9.png&key=8a51bb7f382fbc2536ad60024cAlguns Comandos:XyPk9.png&key=8a51bb7f382fbc2536ad60024c

  • .menu
  • .info
  • .donate
  • .status
  • .skills
  • .inventory
  • .ranking

VIP ITEM + CORREÇÃO DE BUG NPC SUMINDO (CORRIGIDO)

  Mostrar conteúdo oculto

 

 

 

 

NOVO BUG CORRIGIDO ADENA ACIS 361+

COMO ESTAVA:

  Mostrar conteúdo oculto

 

COMO ESTÁ: 

  Mostrar conteúdo oculto

 

 

 

Código para aqueles que já tem a source e adicionaram outros mods e modificaram o core, para não perde tudo, toma a correção individual. Procure a Class MultiSellChoose.java e mude todo o arquivo !

  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.network.clientpackets;

import java.util.ArrayList;
import java.util.List;

import net.sf.l2j.Config;
import net.sf.l2j.gameserver.model.L2Augmentation;
import net.sf.l2j.gameserver.model.actor.Npc;
import net.sf.l2j.gameserver.model.actor.instance.Player;
import net.sf.l2j.gameserver.model.item.instance.ItemInstance;
import net.sf.l2j.gameserver.model.itemcontainer.PcInventory;
import net.sf.l2j.gameserver.model.multisell.Entry;
import net.sf.l2j.gameserver.model.multisell.Ingredient;
import net.sf.l2j.gameserver.model.multisell.PreparedListContainer;
import net.sf.l2j.gameserver.network.FloodProtectors;
import net.sf.l2j.gameserver.network.FloodProtectors.Action;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.network.serverpackets.ItemList;
import net.sf.l2j.gameserver.network.serverpackets.StatusUpdate;
import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;


public class MultiSellChoose extends L2GameClientPacket
{
    // Special IDs.
    private static final int CLAN_REPUTATION = 65336;
    // private static final int PC_BANG_POINTS = 65436;
    
    private int _listId;
    private int _entryId;
    private int _amount;
    private int _transactionTax; // local handling of taxation
    
    @Override
    protected void readImpl()
    {
        _listId = readD();
        _entryId = readD();
        _amount = readD();
        _transactionTax = 0;
    }
    
    @Override
    public void runImpl()
    {
        final Player player = getClient().getActiveChar();
        if (player == null)
            return;
        
        if (!FloodProtectors.performAction(getClient(), Action.MULTISELL))
        {
            player.setMultiSell(null);
            return;
        }
        
        if (_amount < 1 || _amount > 9999)
        {
            player.setMultiSell(null);
            return;
        }
        
        final PreparedListContainer list = player.getMultiSell();
        if (list == null || list.getId() != _listId)
        {
            player.setMultiSell(null);
            return;
        }
        
        final Npc npc = player.getCurrentFolkNPC();
        if ((npc != null && !list.isNpcAllowed(npc.getNpcId())) || (npc == null && list.isNpcOnly()))
        {
            player.setMultiSell(null);
            return;
        }
        
        if (npc != null && !npc.canInteract(player))
        {
            player.setMultiSell(null);
            return;
        }
        
        final PcInventory inv = player.getInventory();
        
        for (Entry entry : list.getEntries())
        {
            if (entry.getId() == _entryId)
            {
                if (!entry.isStackable() && _amount > 1)
                {
                    player.setMultiSell(null);
                    return;
                }
                
                int slots = 0;
                long weight = 0;
                for (Ingredient e : entry.getProducts())
                {
                    if (e.getItemId() < 0)
                        continue;
                    
                    if (!e.isStackable())
                        slots += e.getItemCount() * _amount;
                    else if (player.getInventory().getItemByItemId(e.getItemId()) == null)
                        slots++;
                    
                    weight += (long)e.getItemCount() * _amount * e.getWeight();
                }
                
                if (!inv.validateCapacity(slots))
                {
                    player.sendPacket(SystemMessageId.SLOTS_FULL);
                    return;
                }
                
                if (weight > Integer.MAX_VALUE || weight < 0 || !inv.validateWeight((int)weight))
                {
                    player.sendPacket(SystemMessageId.WEIGHT_LIMIT_EXCEEDED);
                    return;
                }
                
                // Generate a list of distinct ingredients and counts in order to check if the correct item-counts are possessed by the player
                List<Ingredient> ingredientsList = new ArrayList<>(entry.getIngredients().size());
                boolean newIng;
                
                for (Ingredient e : entry.getIngredients())
                {
                    newIng = true;
                    
                    // at this point, the template has already been modified so that enchantments are properly included
                    // whenever they need to be applied. Uniqueness of items is thus judged by item id AND enchantment level
                    for (int i = ingredientsList.size(); --i >= 0;)
                    {
                        Ingredient ex = ingredientsList.get(i);
                        
                        // if the item was already added in the list, merely increment the count
                        // this happens if 1 list entry has the same ingredient twice (example 2 swords = 1 dual)
                        if (ex.getItemId() == e.getItemId() && ex.getEnchantLevel() == e.getEnchantLevel())
                        {
                            long totalCount = (long)ex.getItemCount() + e.getItemCount();
                            if (totalCount > Integer.MAX_VALUE || totalCount < 0)
                            {
                                player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED);
                                return;
                            }
                            
                            // two same ingredients, merge into one and replace old
                            final Ingredient ing = ex.getCopy();
                            ing.setItemCount((int)totalCount);
                            ingredientsList.set(i, ing);
                            
                            newIng = false;
                            break;
                        }
                    }
                    
                    // if it's a new ingredient, just store its info directly (item id, count, enchantment)
                    if (newIng)
                        ingredientsList.add(e);
                }
                
                // now check if the player has sufficient items in the inventory to cover the ingredients' expences
                for (Ingredient e : ingredientsList)
                {
                    if (Integer.MAX_VALUE / e.getItemCount() < _amount)
                    {
                        player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED);
                        return;
                    }
                    
                    if (e.getItemId() == CLAN_REPUTATION)
                    {
                        if (player.getClan() == null)
                        {
                            player.sendPacket(SystemMessageId.YOU_ARE_NOT_A_CLAN_MEMBER);
                            return;
                        }
                        
                        if (!player.isClanLeader())
                        {
                            player.sendPacket(SystemMessageId.ONLY_THE_CLAN_LEADER_IS_ENABLED);
                            return;
                        }
                        
                        if (player.getClan().getReputationScore() < e.getItemCount() * _amount)
                        {
                            player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_SCORE_IS_TOO_LOW);
                            return;
                        }
                    }
                    else
                    {
                        // if this is not a list that maintains enchantment, check the count of all items that have the given id.
                        // otherwise, check only the count of items with exactly the needed enchantment level
                        if (inv.getInventoryItemCount(e.getItemId(), list.getMaintainEnchantment() ? e.getEnchantLevel() : -1, false) < ((Config.ALT_BLACKSMITH_USE_RECIPES || !e.getMaintainIngredient()) ? e.getItemCount() * _amount : e.getItemCount()))
                        {
                            player.sendPacket(SystemMessageId.NOT_ENOUGH_ITEMS);
                            return;
                        }
                    }
                }
                
                List<L2Augmentation> augmentation = new ArrayList<>();
                
                for (Ingredient e : entry.getIngredients())
                {
                    if (e.getItemId() == CLAN_REPUTATION)
                    {
                        final int amount = e.getItemCount() * _amount;
                        
                        player.getClan().takeReputationScore(amount);
                        player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_DEDUCTED_FROM_CLAN_REP).addNumber(amount));
                    }
                    else
                    {
                        ItemInstance itemToTake = inv.getItemByItemId(e.getItemId());
                        if (itemToTake == null)
                        {
                            player.setMultiSell(null);
                            return;
                        }
                        
                        if (Config.ALT_BLACKSMITH_USE_RECIPES || !e.getMaintainIngredient())
                        {
                            // if it's a stackable item, just reduce the amount from the first (only) instance that is found in the inventory
                            if (itemToTake.isStackable())
                            {
                                if (!player.destroyItem("Multisell", itemToTake.getObjectId(), (e.getItemCount() * _amount), player.getTarget(), true))
                                {
                                    player.setMultiSell(null);
                                    return;
                                }
                            }
                            else
                            {
                                // for non-stackable items, one of two scenaria are possible:
                                // a) list maintains enchantment: get the instances that exactly match the requested enchantment level
                                // b) list does not maintain enchantment: get the instances with the LOWEST enchantment level
                                
                                // a) if enchantment is maintained, then get a list of items that exactly match this enchantment
                                if (list.getMaintainEnchantment())
                                {
                                    // loop through this list and remove (one by one) each item until the required amount is taken.
                                    ItemInstance[] inventoryContents = inv.getAllItemsByItemId(e.getItemId(), e.getEnchantLevel(), false);
                                    for (int i = 0; i < (e.getItemCount() * _amount); i++)
                                    {
                                        if (inventoryContents.isAugmented())
                                            augmentation.add(inventoryContents.getAugmentation());
                                        
                                        if (!player.destroyItem("Multisell", inventoryContents.getObjectId(), 1, player.getTarget(), true))
                                        {
                                            player.setMultiSell(null);
                                            return;
                                        }
                                    }
                                }
                                else
                                // b) enchantment is not maintained. Get the instances with the LOWEST enchantment level
                                {
                                    for (int i = 1; i <= (e.getItemCount() * _amount); i++)
                                    {
                                        ItemInstance[] inventoryContents = inv.getAllItemsByItemId(e.getItemId(), false);
                                        
                                        itemToTake = inventoryContents[0];
                                        // get item with the LOWEST enchantment level from the inventory (0 is the lowest)
                                        if (itemToTake.getEnchantLevel() > 0)
                                        {
                                            for (ItemInstance item : inventoryContents)
                                            {
                                                if (item.getEnchantLevel() < itemToTake.getEnchantLevel())
                                                {
                                                    itemToTake = item;
                                                    
                                                    // nothing will have enchantment less than 0. If a zero-enchanted item is found, just take it
                                                    if (itemToTake.getEnchantLevel() == 0)
                                                        break;
                                                }
                                            }
                                        }
                                        
                                        if (!player.destroyItem("Multisell", itemToTake.getObjectId(), 1, player.getTarget(), true))
                                        {
                                            player.setMultiSell(null);
                                            return;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                
                // Generate the appropriate items
                for (Ingredient e : entry.getProducts())
                {
                    if (e.getItemId() == CLAN_REPUTATION)
                        player.getClan().addReputationScore(e.getItemCount() * _amount);
                    else
                    {
                        if (e.isStackable())
                            inv.addItem("Multisell", e.getItemId(), e.getItemCount() * _amount, player, player.getTarget());
                        else
                        {
                            for (int i = 0; i < (e.getItemCount() * _amount); i++)
                            {
                                ItemInstance product = inv.addItem("Multisell", e.getItemId(), 1, player, player.getTarget());
                                if (product != null && list.getMaintainEnchantment())
                                {
                                    if (i < augmentation.size())
                                        product.setAugmentation(new L2Augmentation(augmentation.get(i).getAugmentationId(), augmentation.get(i).getSkill()));
                                    
                                    product.setEnchantLevel(e.getEnchantLevel());
                                    product.updateDatabase();
                                }
                            }
                        }
                        
                        // msg part
                        SystemMessage sm;
                        
                        if (e.getItemCount() * _amount > 1)
                            sm = SystemMessage.getSystemMessage(SystemMessageId.EARNED_S2_S1_S).addItemName(e.getItemId()).addNumber(e.getItemCount() * _amount);
                        else
                        {
                            if (list.getMaintainEnchantment() && e.getEnchantLevel() > 0)
                                sm = SystemMessage.getSystemMessage(SystemMessageId.ACQUIRED_S1_S2).addNumber(e.getEnchantLevel()).addItemName(e.getItemId());
                            else
                                sm = SystemMessage.getSystemMessage(SystemMessageId.EARNED_ITEM_S1).addItemName(e.getItemId());
                        }
                        player.sendPacket(sm);
                    }
                }
                player.sendPacket(new ItemList(player, false));
                
                // All ok, send success message, remove items and add final product
                player.sendPacket(SystemMessageId.SUCCESSFULLY_TRADED_WITH_NPC);
                
                StatusUpdate su = new StatusUpdate(player);
                su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());
                player.sendPacket(su);
                
                // finally, give the tax to the castle...
                if (npc != null && entry.getTaxAmount() > 0)
                    npc.getCastle().addToTreasury(_transactionTax * _amount);
                
                break;
            }
        }
    }
}

 

 

Arquivo individual para quem ja modificou o core para uso proprío. Procure por Attackable.java e troque todo arquivo.

  Mostrar conteúdo oculto

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

Oque foi modificado? XP VIP, O Personagem, não estava recebendo xp

 

MOD SHIFT MOUSE ADICIONADO (VÍDEO ABAIXO DEMONSTRANDO)

  Mostrar conteúdo oculto

 

 

 

 Oque foi adicionado? 04/03/2020

Auto potion automatico e Dressme 2 clique item!

Pra registrar o item so ir no id e colocar como abaixo:

  Mostrar conteúdo oculto

São 15 itens 2 cliques na pack, cada um tem um nome

Para registrar só usar esse comando no item.

<set name="handler" val="skin1" />

no total sao 15

skin1

skin2

skin3 etc

 

Video demostrativo!

  Mostrar conteúdo oculto

 

 

 

 

PROGRAMAS Necessários:

Java: 8 JDK : 

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

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

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

- Utilitário: L2FileEdit : 
O conteúdo está oculto, favor efetuar login ou se cadastrar!

Tópico Original

 

Créditos da Rev base : @MeGaPacKl
Créditos customização : @Kallisto

 

 

 

Pack2020.rar 20 MB · 218 downloads Source.rar 29 MB · 137 downloads

Source09.03.2020.rar 29 MB · 150 downloads

Mano, o link do media tá com problema.. tem como passar com outro link?

Link para o comentário
Compartilhar em outros sites

13 horas atrás, Christian-SDM disse:

pra tu ver q ele n pego a atualizada, pq  a atualizada, eu limpei as chaotic, só ta nos bosses principais flag.

e ja testei ta de boa sem bug. Então vamos la

Source 15/04/2020

  Mostrar conteúdo oculto

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

Pack 15/04/2020

  Mostrar conteúdo oculto

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

oque foi corrigido?

*Bug das skills, não tirava dano, quando us

19 minutos atrás, ChavãoCabuloso disse:
Em 03/12/2019 at 14:22, Christian-SDM disse:

Mano, o link do media tá com problema.. tem como passar com outro link?

ava surrender, e outras classes como spellsiger/sorcere, não tirava dano em nada. E Arkeiros, dava dano absurdo entre outras class.

*Bug Core, fica indo por teto cada spawn, até ficar no meio do nada ( foi pego o core.java da l2jfrozen e adaptado para acis, porque nenhuma  acis de nenhuma script deu certo. )

Video

 

Tá aí os links  atualizado amigo!

 

Carlinhos l2 Fortaleza-Ceara

Link para o comentário
Compartilhar em outros sites

3 horas atrás, Marlon Carvalho disse:

Christian, eu estou com a penultima atualização sua, sem ser a de ontem dia 14, e eu ataco normalmente os mobs de monas, dou surrender e vampiric claw, curse gloom e vampire claw, eu ataco de todas as formas e esta tudo normal, seria possível este erro estar acontecendo por alguma opção nas configs que possam ter haver  com player ou npc?

Impossivel, eu n alterei nada, e tava com mesmo problema, tive q modicicar formulas.java para resolver o problema.

Link para o comentário
Compartilhar em outros sites

1 minuto atrás, Marlon Carvalho disse:

Quer dizer então que se eu fazer o update (substituir) do novo para o anterior o formulas.java, core e queenant já resolve?

Basicamente sim, mas core.java tem custom spawn na class spawn.java, quando vc colocar core.java, vai da erro na class, pq vai faltar o spawn q falei. Mas spawn vc pode pegar la no spawn.java, troca core.java, formulas.java e classDamages.java

Pq peguei core da l2jfrozen e fiz adaptação

1 hora atrás, L2carlinhos2020 disse:

Christian estava testado ontem a parte da siege  na Rev percebi que alguns erro?

1-  os guarda não aparece 

2- os muros  laterais  do castelo não quebra

3- após conquista castelo a bandeira da clan que ganho  não fica em todos npcs.

 

Verifica ser realmente é bug?

N é bug e sim foi removido os guards e as funções na acis, só existe na acis 362 pra baixo, mas vou ver, se da pra adaptar

Link para o comentário
Compartilhar em outros sites

15 horas atrás, L2carlinhos2020 disse:

 aqui no meu  so to com problema quando dou start  para ele aparece o  player morre  sozinho !

 

image.thumb.png.c61331a0eeed7b72c0e6c78063191547.png

Cara isso não é um erro, é retail do boss mesmo. A pessoa q acorda morre qnd ele nasce, alguns server's editam pra da um hit forte e não matar, mas o certo é morrer mesmo. Como já te responderam anteriormente, é tipo um sacrificio. Vc vai tá com sua PT lá, acorda ele e morre, a PT vai da ress em vc pra continuar no boss e matar ele.

Link para o comentário
Compartilhar em outros sites

9 minutos atrás, Shinaider disse:

Cara isso não é um erro, é retail do boss mesmo. A pessoa q acorda morre qnd ele nasce, alguns server's editam pra da um hit forte e não matar, mas o certo é morrer mesmo. Como já te responderam anteriormente, é tipo um sacrificio. Vc vai tá com sua PT lá, acorda ele e morre, a PT vai da ress em vc pra continuar no boss e matar ele.

Depois que eu li dnv, eu entendi o que ele quis dizer, na flagzone dentro do baium, por padrão não tinha o spawn, ou seja, ele morria e nascia no mesmo lugar (no caso o char dele quando dava to village).

17 minutos atrás, Christian-SDM disse:

Basicamente sim, mas core.java tem custom spawn na class spawn.java, quando vc colocar core.java, vai da erro na class, pq vai faltar o spawn q falei. Mas spawn vc pode pegar la no spawn.java, troca core.java, formulas.java e classDamages.java

Pq peguei core da l2jfrozen e fiz adaptação

da certo substituindo o spawn.java tb? valeu pelas infos amigo, belo trabalho que esta fazendo.

Link para o comentário
Compartilhar em outros sites

Agora, Marlon Carvalho disse:

Depois que eu li dnv, eu entendi o que ele quis dizer, na flagzone dentro do baium, por padrão não tinha o spawn, ou seja, ele morria e nascia no mesmo lugar (no caso o char dele quando dava to village).

da certo substituindo o spawn.java tb? valeu pelas infos amigo, belo trabalho que esta fazendo.

Ate da , pq n botei novos mods q usa essa class

2 minutos atrás, Marlon Carvalho disse:

Depois que eu li dnv, eu entendi o que ele quis dizer, na flagzone dentro do baium, por padrão não tinha o spawn, ou seja, ele morria e nascia no mesmo lugar (no caso o char dele quando dava to village).

da certo substituindo o spawn.java tb? valeu pelas infos amigo, belo trabalho que esta fazendo.

 N vai da certo, lembrei q troquei sound.java e tiver q alterar todos sound nas classes tds bosses, e alterar outros locais q usa sound

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.