Jump to content
leozinhobr2

Fixes L2JFrozen 1132

Recommended Posts

Utilizei um método postado por um membro do fórum da Frozen e funcionou.

Aqui está:

Index: head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java	(revision 325)
+++ head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java	(working copy)
@@ -20,7 +20,6 @@
 
 import com.l2jfrozen.Config;
 import com.l2jfrozen.gameserver.model.TradeList;
-import com.l2jfrozen.gameserver.model.TradeList.TradeItem;
 import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
 
 /**
@@ -72,11 +71,9 @@
 		writeD(_playerAdena);
 		
 		// section2
-		writeD(_itemList.length - _sellList.length); // for potential sells
+		writeD(_itemList.length); // for potential sells
 		for (TradeList.TradeItem item : _itemList)
 		{
-			if (isItemInSelling(item) == false)
-			{
 				writeD(item.getItem().getType2());
 				writeD(item.getObjectId());
 				writeD(item.getItem().getItemId());
@@ -86,8 +83,8 @@
 				writeH(0);
 				writeD(item.getItem().getBodyPart());
 				writeD(item.getPrice()); // store price
-			}
 		}
+		
 		// section 3
 		writeD(_sellList.length); // count for any items already added for sell
 		for (TradeList.TradeItem item : _sellList)
@@ -105,18 +102,6 @@
 		}
 	}
 	
-	private boolean isItemInSelling(TradeItem item_)
-	{
-		for (TradeList.TradeItem itemSell : _sellList)
-		{
-			if (itemSell.getObjectId() == item_.getObjectId())
-			{
-				return true;
-			}
-		}
-		return false;
-	}
-	
 	/*
 	 * (non-Javadoc)
 	 * @see com.l2jfrozen.gameserver.serverpackets.ServerBasePacket#getType()

Créditos: Pedra

  • Like 1

Share this post


Link to post
Share on other sites

Conheça também nossa linha de Dedicados Gamer

Conheça a L2JCenter
14 minutos atrás, Mwac disse:

Utilizei um método postado por um membro do fórum da Frozen e funcionou.

Aqui está:

Index: head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java	(revision 325)
+++ head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java	(working copy)
@@ -20,7 +20,6 @@
 
 import com.l2jfrozen.Config;
 import com.l2jfrozen.gameserver.model.TradeList;
-import com.l2jfrozen.gameserver.model.TradeList.TradeItem;
 import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
 
 /**
@@ -72,11 +71,9 @@
 		writeD(_playerAdena);
 		
 		// section2
-		writeD(_itemList.length - _sellList.length); // for potential sells
+		writeD(_itemList.length); // for potential sells
 		for (TradeList.TradeItem item : _itemList)
 		{
-			if (isItemInSelling(item) == false)
-			{
 				writeD(item.getItem().getType2());
 				writeD(item.getObjectId());
 				writeD(item.getItem().getItemId());
@@ -86,8 +83,8 @@
 				writeH(0);
 				writeD(item.getItem().getBodyPart());
 				writeD(item.getPrice()); // store price
-			}
 		}
+		
 		// section 3
 		writeD(_sellList.length); // count for any items already added for sell
 		for (TradeList.TradeItem item : _sellList)
@@ -105,18 +102,6 @@
 		}
 	}
 	
-	private boolean isItemInSelling(TradeItem item_)
-	{
-		for (TradeList.TradeItem itemSell : _sellList)
-		{
-			if (itemSell.getObjectId() == item_.getObjectId())
-			{
-				return true;
-			}
-		}
-		return false;
-	}
-	
 	/*
 	 * (non-Javadoc)
 	 * @see com.l2jfrozen.gameserver.serverpackets.ServerBasePacket#getType()

Créditos: Pedra

Sim funciona!

Porém deixa espaço para bugs de dupe, pois não haverá a checagem se o item já está sendo vendido ou não.

Share this post


Link to post
Share on other sites
3 horas atrás, PeNaChO disse:

Sim funciona!

Porém deixa espaço para bugs de dupe, pois não haverá a checagem se o item já está sendo vendido ou não.

Ok... então você poderia disponibilizar a correção?

Share this post


Link to post
Share on other sites

Testei 2 modos de tentar bugar que encontrei pesquisando na internet, um que você mesmo menciona no fórum da Frozen e outro encontrei no fórum maxcheaters e nenhum funciona mesmo removendo as linhas do  script.

1º Nesse tenho que usar o item com a loja aberta e não tem como fazer isso! (então a checagem do item aqui né?)

2udys5i.jpg

2º Nesse tenho dar trade em outro player e o mesmo tem que dar OK, e ao  mesmo tempo tenho que montar a loja para que o bug funcione... mas também não tem como fazer isso!

10h83uo.jpg

Então podem usar esse método que compartilhei que não terá problema assim como outros também usa o mesmo.

Se tem outras formas de bugar me digam que irei testar.

Share this post


Link to post
Share on other sites
Em 29/12/2017 at 17:44, Mwac disse:

Utilizei um método postado por um membro do fórum da Frozen e funcionou.

Aqui está:

Index: head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java	(revision 325)
+++ head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java	(working copy)
@@ -20,7 +20,6 @@
 
 import com.l2jfrozen.Config;
 import com.l2jfrozen.gameserver.model.TradeList;
-import com.l2jfrozen.gameserver.model.TradeList.TradeItem;
 import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
 
 /**
@@ -72,11 +71,9 @@
 		writeD(_playerAdena);
 		
 		// section2
-		writeD(_itemList.length - _sellList.length); // for potential sells
+		writeD(_itemList.length); // for potential sells
 		for (TradeList.TradeItem item : _itemList)
 		{
-			if (isItemInSelling(item) == false)
-			{
 				writeD(item.getItem().getType2());
 				writeD(item.getObjectId());
 				writeD(item.getItem().getItemId());
@@ -86,8 +83,8 @@
 				writeH(0);
 				writeD(item.getItem().getBodyPart());
 				writeD(item.getPrice()); // store price
-			}
 		}
+		
 		// section 3
 		writeD(_sellList.length); // count for any items already added for sell
 		for (TradeList.TradeItem item : _sellList)
@@ -105,18 +102,6 @@
 		}
 	}
 	
-	private boolean isItemInSelling(TradeItem item_)
-	{
-		for (TradeList.TradeItem itemSell : _sellList)
-		{
-			if (itemSell.getObjectId() == item_.getObjectId())
-			{
-				return true;
-			}
-		}
-		return false;
-	}
-	
 	/*
 	 * (non-Javadoc)
 	 * @see com.l2jfrozen.gameserver.serverpackets.ServerBasePacket#getType()

Créditos: Pedra

Gente, sou novato eclipse e gostaria de fazer uma pergunta, como eu altero essa correção acima no código fonte? procurei o caminho e achei no Eclipse o local correto de substituir isso, porém, ao dar o famoso copiar e colar, minha tela do eclipse apresentou vários erros em todas as linhas desse código acima, será que posso copiar do jeitinho que esta ai ou precisarei mudar algo, apagar espaços, adaptar, sei la :D nesse código ai pra não dar erro quando for compilar?

Desde ja obrigado.

Edited by victorrv

Share this post


Link to post
Share on other sites
14 horas atrás, victorrv disse:

Gente, sou novato eclipse e gostaria de fazer uma pergunta, como eu altero essa correção acima no código fonte? procurei o caminho e achei no Eclipse o local correto de substituir isso, porém, ao dar o famoso copiar e colar, minha tela do eclipse apresentou vários erros em todas as linhas desse código acima, será que posso copiar do jeitinho que esta ai ou precisarei mudar algo, apagar espaços, adaptar, sei la :D nesse código ai pra não dar erro quando for compilar?

Desde ja obrigado.

Boa tarde amigo.

Esse código é uma copia do existente no projeto, sendo assim você só ira remover as linhas que tem o sinal de subtrair (-) e adicionar os que tem o sinal de soma (+), fazendo isso não irá dar nenhum erro ao compilar. ^^

Por exemplo nesta parte:

// section2
-		writeD(_itemList.length - _sellList.length); // for potential sells
+		writeD(_itemList.length); // for potential sells

 

Remova a linha com o sinal - e adicione no lugar a que esta com o sinal +.

Share this post


Link to post
Share on other sites

Boa noite
Encontrei um código para visualizar o HP das portas e muros dos Castelos e vim compartilhar, acabei de testar e funciona perfeitamente!

Já que os que sabem ou dizem saber não compartilham (Muitos por aqui!!), sempre que eu  encontrar correções e etc irei ficar postando aqui! Pois o fórum é para isso para compartilhar conhecimento e ideias com os demais membros!

Código:

Index: head-src/com/l2jfrozen/gameserver/model/actor/knownlist/PcKnownList.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/actor/knownlist/PcKnownList.java	(revision 1113)
+++ head-src/com/l2jfrozen/gameserver/model/actor/knownlist/PcKnownList.java	(working copy)
@@ -126,7 +126,14 @@
 			}
 			else if (object instanceof L2DoorInstance)
 			{
-				active_char.sendPacket(new DoorInfo((L2DoorInstance) object, false));
+                               if (((L2DoorInstance) object).getCastle() != null)
+                               {
+                                   getActiveChar().sendPacket(new DoorInfo((L2DoorInstance) object, true));
+                               }
+                               else
+                               {
+                                   getActiveChar().sendPacket(new DoorInfo((L2DoorInstance) object, false));
+                               }
 				active_char.sendPacket(new DoorStatusUpdate((L2DoorInstance) object));
 			}
 			else if (object instanceof L2BoatInstance)
Index: head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestRecordInfo.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestRecordInfo.java	(revision 1113)
+++ head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestRecordInfo.java	(working copy)
@@ -90,7 +90,14 @@
 				}
 				else if (object instanceof L2DoorInstance)
 				{
-					_activeChar.sendPacket(new DoorInfo((L2DoorInstance) object, false));
+				    if (((L2DoorInstance) object).getCastle() != null)
+				    {
+				        _activeChar.sendPacket(new DoorInfo((L2DoorInstance) object, true));
+				    }
+				    else
+				    {
+				        _activeChar.sendPacket(new DoorInfo((L2DoorInstance) object, false));
+				    }
 					_activeChar.sendPacket(new DoorStatusUpdate((L2DoorInstance) object));
 				}
 				else if (object instanceof L2BoatInstance)
Index: head-src/com/l2jfrozen/gameserver/network/serverpackets/DoorInfo.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/serverpackets/DoorInfo.java	(revision 1113)
+++ head-src/com/l2jfrozen/gameserver/network/serverpackets/DoorInfo.java	(working copy)
@@ -28,10 +28,12 @@
 {
 	private static final String _S__60_DOORINFO = "[S] 4c DoorInfo";
 	private final L2DoorInstance _door;
+	private final boolean _showHp;
 	
 	public DoorInfo(final L2DoorInstance door, final boolean showHp)
 	{
 		_door = door;
+		_showHp = showHp;
 	}
 	
 	@Override
@@ -40,6 +42,7 @@
 		writeC(0x4c);
 		writeD(_door.getObjectId());
 		writeD(_door.getDoorId());
+		writeD(_showHp ? 1 : 0);
 	}
 	
 	/*

Créditos: Tessa

 

Segue o prints:
Porta:
qrlzc2.jpg

Muro:

29m0ief.jpg

  • Like 1

Share this post


Link to post
Share on other sites

Boa tarde

Erro reportado pelo  membro Brhu3 sobre a skill Focused Force! Esta em outro tópico mas para facilitar aos que se interessam pela rev 1132 irei copiar aqui.

<skill id="50" levels="7" name="Focused Force">
        <table name="#val">1 2 3 4 5 6 7</table>
        <set name="mpConsume" val="5"/>
        <set name="hpConsume" val="20"/>
        <set name="power" val="#val"/>
        <set name="target" val="TARGET_SELF"/>
        <set name="weaponsAllowed" val="1024"/>
        <set name="reuseDelay" val="1000"/>
        <set name="hitTime" val="900"/>
        <set name="skillType" val="CHARGE"/>
        <set name="operateType" val="OP_ACTIVE"/>
        <set name="num_charges" val="#val"/>
        <set name="aggroPoints" val="150"/>
        <for>

  •      -       <effect count="1" name="Charge" time="0x7fffffff" val="1"/>  ( isso nao faz nem sentido kk )
  •      +      <effect count="1" name="Charge" time="600" val="1"/>    

        </for>

Créditos: Brhu3

  • Like 1

Share this post


Link to post
Share on other sites

Boa  noite
Estou compartilhando outra correção (não é de minha autoria), para as Skills: Sonic Buster e Force Burst, em que ela é usada contra si mesmo (Crtl + Skill + próprio target) baixando somente o HP sendo possível bugar os pontos de PVP e bugar na Oly para usar outras skills como por exemplo o zealot do Tyrant e no caso do Duelist baixar o HP para ativar o Final Frenzy para aumentar o Patk.

(Acabei de testar e funciona perfeitamente!)

Código a ser adicionado em L2Character.Java:
Procure por:

// Check if the skill is a magic spell and if the L2Character is not muted
  if (skill.isMagic() && isMuted() && !skill.isPotion())
  {
   getAI().notifyEvent(CtrlEvent.EVT_CANCEL);
   return;
  }

Abaixo adicione:

+if (this instanceof L2PcInstance)
+{
	+L2PcInstance player = (L2PcInstance) this;
	+if (player.getTarget() != null && player.getTarget() == player)
	    +if (skill.getSkillType() == SkillType.CHARGEDAM)
	    +{
	    	+player.sendMessage("message");
	    	+return;
	    +}	
+}

Onde esta escrito "message" você muda a seu gosto!

Créditos: Tig

 

Obs.: Eu queria saber o porque que muitos dos membros aqui do fórum sabem dessas coisas e não compartilha aqui!!!

  • I love it 1

Share this post


Link to post
Share on other sites

Boa noite

Para aqueles que querem utilizar a quest de aliança com Ketra e Varkas, ela tem um bug que não consegui solucionar por exemplo: O player esta level 5 da ally com Ketra e sem querer mata um mob da ally... (pelo que eu me lembre o player perde 1 level da ally) mas volta para o level 1,  a quest buga de uma forma que você tem recomeçar tudo de novo, então mudei para que quando o player mate o mob da aliança ela não perca level da ally mesmo estando em party!

Você vai em: com.l2jfrozen.gameserver.ai.special

Procura por: VarkaKetraAlly.Java

E nesse arquivo procure e elimine essa linha: addEventId(mob, Quest.QuestEventType.ON_KILL);.

Tem que ser alterado no Java no arquivo Py não funciona!

Obs.: Isso eu  tinha postado em (Duvidas) em 19 de Abril de 2017.

Créditos pela alteração: Mwac

Share this post


Link to post
Share on other sites

Olá... estive offline por muito tempo mas agora estou dando continuidade  na edição da rev 1132 novamente.
Alguém  encontrou mais bugs ou correções para compartilhar?  Obrigado.  :)

  • I love it 1
  • Thanks 1

Share this post


Link to post
Share on other sites
Em 22/06/2018 at 10:08, Mwac disse:

Olá... estive offline por muito tempo mas agora estou dando continuidade  na edição da rev 1132 novamente.
Alguém  encontrou mais bugs ou correções para compartilhar?  Obrigado.  :)

segue algumas coisas que reportei e ninguém ajudou até agora infelizmente link do post com os Report's abaixo:

 

outra coisa que eu queria resolver é os personagens novos não começarem full HP e CP. se poder ajudar também ficaria agradecido se eu conseguir alguma correção correta pra algo estarei disponibilizando aqui. desde já agradeço.

Edited by Snow

Share this post


Link to post
Share on other sites
1 hora atrás, Snow disse:

 

Tava procurando esse tópico igual doido e não achava 😕

Eu ia postar aqui, ainda bem que tu viu e postou! Eu não mexi nesses problemas por que eu achei que era algo mais complexo da revisão...

São coisas que não interferem muito no jogo, só iria mexer nisso se sobrasse tempo.

 

Ah, a do phx title até é interessante de se arrumar, mas sinceramente nunca vi ninguém fazendo ela em nenhum servidor... então..

Edited by Escanor
  • LOL 1

Share this post


Link to post
Share on other sites
2 horas atrás, Escanor disse:

Ah, a do phx title até é interessante de se arrumar, mas sinceramente nunca vi ninguém fazendo ela em nenhum servidor... então..

Mas funciona! Já testei em alguns servers sem proteção, com 2 telas, 1 executando phx e outra pra verificar se realmente era modificado o titulo, pois poderia ser somente na tela em que esta atica com phx.

https://www.youtube.com/watch?v=IJpsJ-9XG0E

Share this post


Link to post
Share on other sites

 

5 horas atrás, PeNaChO disse:

Mas funciona! Já testei em alguns servers sem proteção, com 2 telas, 1 executando phx e outra pra verificar se realmente era modificado o titulo, pois poderia ser somente na tela em que esta atica com phx.

https://www.youtube.com/watch?v=IJpsJ-9XG0E

Sim eu vi o vídeo, mas em jogo nunca vi ninguém usar isso, é algo meio inútil  😅

Share this post


Link to post
Share on other sites
9 horas atrás, Escanor disse:

 

Sim eu vi o vídeo, mas em jogo nunca vi ninguém usar isso, é algo meio inútil  😅

Que é inutil não tem como discordar, porém como os atuais jogadores "quitam" por qualquer desculpa, pode influenciar na decisão deles, caso vejam alguém fazendo isso.

Share this post


Link to post
Share on other sites
Em 01/05/2017 at 12:32, PeNaChO disse:

Quanto ao valakas, não é bug, provavelmente você não jogou servidores low rate, não lembra e/ou não sabe que naqueles 2 npc's quando você fala com 1 ele abre a porta do outro lado e vice-versa, portanto não tem nada de errado nessa parte.

Quanto ao private store sell, você testou? Se sim, já chegou a ver também se não houve ou problema devido a essa mudança?

E parabéns pela iniciativa de postar um conteúdo único, pois o fórum ta virado em ctrl+c ctrl+v do mxc e fóruns russos.

 

PS.:

 

Pequena contribuição:

 

  Mostrar conteúdo oculto

 

 

Para o problema do prophecy of wind e similares.

Agora você pode usar o original da frozen que não vai ter problemas.

Eu ainda não tinha testado esse código compartilhado pelo @PeNaChO, funciona perfeitamente, não so no caso POW mas em varias outras coisas relacionados ao problema. Obrigado.

Share this post


Link to post
Share on other sites




     



×
×
  • Create New...