Ir para conteúdo
  • Cadastre-se

L2JFrozen Revisões - ( Tópico Antigo)


Bluur

Posts recomendados


  • L2JBr ADM

Contribuições:

 

 

Tópico para dar Continuidade ao L2jFrozen.

 

Esse tópico será constantemente monitorado, evite ser banido respeitando as regras.

Poste aqui somente o indispensável.

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

engraçado como tem gente ainda perguntando se e outro tópico mais é claro que é um evitem posts não uteis como valeu, obrigado , olha o curtir lá em baixo da pagina

 

 

Sem bate papo e agradecimentos.

Assuntos sem relevância favor mandar por pm.

Clique no Botão de Curtir do Post do Bluur e ele já ficará satisfeito.

 

Não quero distribuir Warns aqui.

Link para o comentário
Compartilhar em outros sites

oq eu queria msm era o mod de dual box por comp***dor nao por ip ;S se vc tiver blur ponha ficaria show de bola

 

Estarei vendo !

 

Aqui não é área de pedidos pra ficar pedindo MOD ! Grundor deixou bem claro para me enviar MP sobre esses assuntos ! Aqui será postado somente o necessario... Peço que moderadores ocultem posts desnecessarios para não poluir o tópico com asneras.

 

Adicionar mods e só um complemento para o tópico seguido do projeto ... Posto revisões já compiladas para quem não sabe compilar , agora ficar adicionando mod?! Já é brincadeira.

Editado por Bluur

Full Stack Developer


Link para o comentário
Compartilhar em outros sites

Minha contribuição ao tópico

L2J Frozen Revisão 933

Modificações

 

Premium

 

Premium System

Baseado no Sistema VIP

Comandos: //add_premium - //delete_premium

 

Premium Name/Title Colors

 

Premium Rates

XP,SP,Adena,Drop,Spoil

 

Premium Custom Item

Item para ganhar status Premium

 

Premium Skills on Class Base

Por padrão, os chars premium ganham skill na classe base

 

Premium Skills on Subclass

Opcional, adicionar skills de premium nas subclasses

 

Premium Skills Olympiad Restriction

Restrição de skills premium nas olympiadas

 

Premium Global Chat

Chars Premium Sempre falam com os chats trade e shout em modo Global

 

Premium Hero Voice

Chars Premium podem usar o chat Hero

 

Premium Hero Aura

Chars Premium tem brilho de hero

 

Donator Scrolls

Donator Enchant After Break

 

AIO

 

Dual AIO Item Reward Config

Ao se tornar AIO, o personagem receberá o item configurado

 

Dual AIO Cannot be equipped by non AIO Characters

Este item não poderá ser equipado por chars que não tem status AIO

 

Dual AIO Cannot be enchanted

Este Item não pode ser encantado

 

AIO Peace Zone Restriction

Personagem com status AIO não pode deixar a cidade

 

Recall AIO restrictions

Personagem com status AIO não pode ser chamado por skills do tipo Recall

 

NPC's

 

AIO Seller NPC

NPC Vendedor de AIO

 

Change Password NPC

NPC Alterar Senha

 

Siege Register NPC

NPC Registrar em Siege (Para todos os castelos)

 

Comandos

Clan Full Command

 

Chat Manager Commands

//disable_chat - //enable_chat

//disable_hero_chat - //enable_hero_chat

//disable_global_chat - //enable_global_chat

//disable_trade_chat - //enable_trade_chat

 

Mass Hero Command

 

Olympiad Stat Command

 

Outros

 

Weekend Rates Config

Rates Especiais para Fim de Semana

(Não está funcionando, veja a observação no fim do post)

 

Enchant Announce

 

Auto Welcome HTM

Chat HTML conforme as configurações do servidor

 

DisableTutorial Config (l2jfrozen.properties)

Permite desativar o tutorial para novos chars

 

Player Invisible till olympiad match start (olympiad.properties)

Ao ser teleportado, o char fica invisivel até o inicio da luta

 

System Announce PvP PK

Anuncio de PvP e PK no chat do sistema

 

Fix PvP Summon

Matar Summon não conta como PvP PK

 

Customized method restoreFull()

Para uso em NPC Buffer, Não heala player Flegado/Pk

 

Custom HTML Class master

HTM Class Master editado

 

Advanced Pvp Color (pvp.properties)

Sistema avançado de cores por pvp/pk

Otimização

Skills AIO e VIP não são mais salvas no banco de dados. Agora elas são dadas ao logar no game e retiradas ao sair. O mesmo acontece para a Dual AIO.

 

Todas as novas configurações estão localizadas no arquivo chamado L2jBrasil.properties (pasta head), exceto as que estão descritas no spoiler.

 

 

Download

 

Revisão

 

Client Side (Dual AIO, Donator Scrolls e Premium Item)

 

Houve um erro ao atualizar o projeto, e acidentalmente o mod "Weekend Rates" passou a excercer a função das configurações de Rates normais (Se não me engano esta foi a atualização 931~933).

 

Para corrigir isto, basta configurar normalmente as rates XP e SP, porém, no arquivo L2jBrasil.properties.

Att

Editado por RedHoT

Nenhum suporte será dado por MP ou Skype. Por favor, não insista!

 

 

 

Link para o comentário
Compartilhar em outros sites

LEMBRANDO AQUI NÃO É AREA DE DÚVIDAS ENTÃO POSTEM SUAS DÚVIDAS LÁ NÃO AQUI.

Contatos MSN: [email protected] Skype: Lucas Marlon < ArmyDoido >

Projeto L2JBrasil Online Vol² nos Ajude de sua Opniao :p

 

NÃO RESPONDO DÚVIDAS POR MSN NÃO INSISTA.

SOMENTE AJUDO SE FOR JAVA OBG :P

Link para o comentário
Compartilhar em outros sites

Tópico limpo membros punidos, por baderna é com duvidas idiotas

Quer perguntar ? pergunte aqui http://www.l2jbrasil.com/index.php?/forum/18-duvidas/

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM

Deletei 39 postagens.

Existem dúvidas e dúvidas, basta o bom senso de cada para saber se a dúvida cabe ao tópico.

Exemplo de dúvida que não deve ser postada aqui é aquela muito específica de alguma configuração.

Uma dúvida que cabe aqui é, por exemplo, Onde encontro o fontes dessa rev? ou Vai implementar na próxima revisão o mod tal? etc.

E outra, pelo amor que você tem pela sua mãe, não fique discutindo, xingando, fazendo EU ter que perder meu tempo lendo bate-boca sobre se o que vc fez está errado ou certo.

Briguinhas são contras as regras, se acontecer a pessoa será alertada, na reincidência você poderá ser banido, não venha chorar na minha caixa de msgs privadas se levou warn ou alguém te chingou.

 

Fiquem espertos, eu mudei de avatar mas ainda estou de olho.

av251tf8.gif

 

 

----- Contribuição(ou não) -----

 

To meio parado com java mas tive uma ideia pro pvp chat.

Porque não pegar randomicamente umas mensagens ao invés de "Assassinou".

 

Eu não manjo do código do L2jFrozen, qualquer dia desses eu baixo os fontes e tento migrar alguns mods meus pra lá.

Aos devs eu pensei em algo assim:

 

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
//acho que o l2j por padrão já importa o java.util todo, caso o frozen não importe verifique importe esses 3 ai..

public class MsgPkRandomico {
public static void main(String[] args) {
	// Inicializo o array, vejam ai como pegar esses dados de uma .properties
	String[] msgs = { "Assassinou", "Massacrou", "Despedaçou",  "Ganhou o sit pass de", "Trollou" "Sentou a vara no baitola" };

	// Usando o  metodo Collections.shuffle converto o array em uma lista usando a classe de Arrays.
	List<String> lista = Arrays.asList(msgs);

	// Ainda usando a lib Collections eu misturo a lista que acabei de criar
	// to shuffle out defined array.
	Collections.shuffle(lista);

	// Aqui é só um teste para ficar executando várias vezes pra vc ver como ele pega randomicamente os valors da lista.
	for (String msg : lista) {
		System.out.print(msg + " "); //eu não lembro o método que é utilizado para o announce
	}
}
}

 

 

Outra opção, meio doida mas pode dar certo.

 

 

 

// aqui podia ter uma config com uma lista de frases e palavras para exibir na msg do pk.
public static String[] nome = { "Assassinou", "Massacrou", "Despedaçou",  "Ganhou o sit pass de", "Trollou" "Sentou a vara no baitola" };

public void msgPKAleatoria(String[] msg) {
int rand = 0;

String mensagem = null;

for (int i = 0; i < msg.length + 1; i++) {
 rand = (int) (Math.random() * i);
 mensagem = msg[rand];
}
}
msgPKAleatoria(nome); // randomiza a lista enviada....

 

 

 

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

Que tal criarmos uma coisa nova, ou seja que já existe mais nenhum Interlude tem ( a não ser o MEU )

 

VOu postar pra vocês, o MOD funciona assim.

 

Você escolhe o que quer escrever ex :

 

Ele *Slayer mato (o gay) do Grundor

 

Voc^s escolhem assim fica mais fácil ^^

Contatos MSN: [email protected] Skype: Lucas Marlon < ArmyDoido >

Projeto L2JBrasil Online Vol² nos Ajude de sua Opniao :p

 

NÃO RESPONDO DÚVIDAS POR MSN NÃO INSISTA.

SOMENTE AJUDO SE FOR JAVA OBG :P

Link para o comentário
Compartilhar em outros sites

@Grundor

 

Adaptei o código para a revisão! :cool:

 

 

 

 

taGRs.jpg

 

Index: F:/Workspace/BETA_GS/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- F:/Workspace/BETA_GS/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java (revision 933)
+++ F:/Workspace/BETA_GS/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -26,8 +26,10 @@
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
+import java.util.Collections;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
@@ -7756,6 +7758,8 @@
  if(checkIfPvP(target) && targetPlayer.getPvpFlag() != 0 || isInsideZone(ZONE_PVP) && targetPlayer.isInsideZone(ZONE_PVP))
  {
increasePvpKills();
+   if(target instanceof L2PcInstance && Config.ANNOUNCE_PVP_KILL)
+	generateAnnounce(getName(), target.getName());
  }
  else
  {
@@ -7769,13 +7773,9 @@
   // 'Both way war' -> 'PvP Kill'
   increasePvpKills();
   if(target instanceof L2PcInstance && Config.ANNOUNCE_PVP_KILL)
-	  {
-	   Announcements.getInstance().announceToAll("Player " + getName() + " hunted Player " + target.getName());
-	  }
+	   generateAnnounce(getName(), target.getName());
   else if(target instanceof L2PcInstance && Config.ANNOUNCE_ALL_KILL)
-	  {
-	   Announcements.getInstance().announceToAll("Player " + getName() + " killed Player " + target.getName());
-	  }
+	   generateAnnounce(getName(), target.getName());
   addItemReword(targetPlayer);
   return;
  }
@@ -7789,27 +7789,20 @@
  if(Config.KARMA_AWARD_PK_KILL)
  {
   increasePvpKills();
+	  if(target instanceof L2PcInstance && Config.ANNOUNCE_PVP_KILL)
+	   generateAnnounce(getName(), target.getName());
  }
-
-	 if(target instanceof L2PcInstance && Config.ANNOUNCE_PVP_KILL)
-	 {
-	  Announcements.getInstance().announceToAll("Player " + getName() + " hunted Player " + target.getName());
-	 }
 }
 else if(targetPlayer.getPvpFlag() == 0) // Target player doesn't have karma
 {
  increasePkKillsAndKarma(targetPlayer.getLevel());
  if(target instanceof L2PcInstance && Config.ANNOUNCE_PK_KILL)
-	 {
-	  Announcements.getInstance().announceToAll("Player " + getName() + " has assassinated Player " + target.getName());
-	 }
+	  generateAnnounce(getName(), target.getName());
 }
}
+   if(target instanceof L2PcInstance && Config.ANNOUNCE_ALL_KILL)
+	generateAnnounce(getName(), target.getName());
  }
-  if(target instanceof L2PcInstance && Config.ANNOUNCE_ALL_KILL)
-  {
-   Announcements.getInstance().announceToAll("Player " + getName() + " killed Player " + target.getName());
-  }

  if(targetPlayer.getObjectId() == _lastKill && (count < Config.REWORD_PROTECT - 1 || Config.REWORD_PROTECT == 0) || !(_inEventDM && DM.is_started()))
  {
@@ -7826,6 +7819,31 @@
  targetPlayer = null;
 }

+ /** generateAnnounce PvP PK
+  *
+  * @param player
+  * @param target
+  */
+ private void generateAnnounce(String player, String target)
+ {
+  // Inicializo o array, vejam ai como pegar esses dados de uma .properties
+  String[] mensagens = { "Assassinou", "Massacrou", "Despedacou",  "Ganhou o sit pass de", "Trollou", "Sentou a vara no baitola" };
+  String msgs = mensagens[Rnd.get(mensagens.length)];
+
+  // Usando o  metodo Collections.shuffle converto o array em uma lista usando a classe de Arrays.
+  List<string> lista = Arrays.asList(msgs);
+
+  // Ainda usando a lib Collections eu misturo a lista que acabei de criar
+  // to shuffle out defined array.
+  Collections.shuffle(lista);
+
+  // Aqui é só um teste para ficar executando várias vezes pra vc ver como ele pega randomicamente os valors da lista.
+  for (String msg : lista)
+  {
+   Announcements.getInstance().announceToAll(player + " " + msg + " " + target); //eu não lembro o método que é utilizado para o announce
+  }
+ }
+
 /**
  * Check anti farm.
  *

 

Editado por RedHoT

Nenhum suporte será dado por MP ou Skype. Por favor, não insista!

 

 

 

Link para o comentário
Compartilhar em outros sites

Aqui não é área de dúvidas, erro de inicialização do gameserver é alguma coisa que vocês fizeram errado, pois as revisões postadas incluem backup, ou seja, quem compilou rodou a rev para testar!

Editado por WilliamFS
Link para o comentário
Compartilhar em outros sites

falcao157 pow cara todos estao cansados de avisar para nao fazer flood cara tem area de duvidas para isso, para de ser tao retardado e poste na area de duvidas poxa cara isso desanima, ate deixa pessoas enrritadas quase todos as pessoas respeitando e vem voce faze essa pergunta ainda na area errada tenha dó por favor..

Contato:

Msn: [email protected]

------------------------------------------

oDhkG.jpg

Link para o comentário
Compartilhar em outros sites

Uma pergunta estou procurando uma rev para criar um servidor me recomendam L2j Frozen ou L2jBrasil versao 2? qual esta mais estavel e qual ficaria melhor para um servidor PVP mas nao muito facil possamos dizer ums 500x.. Qual me recomendariam?

falcao157 pow cara todos estao cansados de avisar para nao fazer flood cara tem area de duvidas para isso, para de ser tao retardado e poste na area de duvidas poxa cara isso desanima, ate deixa pessoas enrritadas quase todos as pessoas respeitando e vem voce faze essa pergunta ainda na area errada tenha dó por favor..

Sorry =( so achei melhor perguntar aki porque vcs trabalham diariamente no projeto ai achei q seria uma opinião q eu poderia levar ela em muita configuraçao!

___________________________________________________________________________________________________________

NFUR3.png

____________________________________________________________________________________________________________

Link para o comentário
Compartilhar em outros sites

Tenso, tambem fiz o teste no l2tower e fufou.

Ajudaaa ae doido, ninguem responde ;(

 

 

Caro amigo venho informar que sou iniciante em l2j porem estava fazendo uns teste aqui em casa e vejo que precisa ser ativado

as proteções ou realmente já tem novidade que pode ser usadas nela por exemplo fiz dois teste nela baixei hoje mesmo e ja

realizei o teste do l2walker = funcionou normal fiz o teste do l2phx funcionou tambem porem não tenho muito conheçimento

no l2phx so consegui duplicar o item no meu inventuario nao sei como que enchanta se solbe-se ia na boa pois o l2phx

funcionou na rev poderia me ajudar a fazera proteção correta ou me falar algo sobre o post que estou comentando.

 

Desde já obrigado e segue Imgs do teste que fiz em Spoiler.

 

 

 

 

l2walker.jpgl2phx.jpg

 

 

 

 

http://www.l2jbrasil.com/index.php?/topic/57543-phf-protection-final/

 

Vejão , baixem . e vejão a diferença .

 

 

 

@gabrielbuy Amigo aqui nao é area de Duvidas, Tire sua Duvida na Area de DUVIDAS.

 

PS: Cuidado com as Duvidas aqui nao area serta, voce podera ganha um War.

 

PS: JÁ FOI AVISO PELO GRUNDOR , ACHO QUE NÃO SERIA NECESSARIO VOCE ALERTA-LOS NOVAMENTE .

Masturbe sua mente, goze suas ideias.

Link para o comentário
Compartilhar em outros sites

Galera Bot pega ate no Servidor Oficial , Entao e raro proteger o servidor de bot , foi a propia Ncsoft que crio e deixo vazar , pelomenos pelo que eu li foi assim ...

 

voce tem que pensar em blokiar programas que afeta o servidor como l2phx e etc.. que cria itens , duplicar e etc.. o bot e de menos ..

 

Agora por favo , Querem tirar suas duvidas va na area de duvidas e esperem ser repondidos .

Link para o comentário
Compartilhar em outros sites

eu tenho certeza que voce nao duplicou o item , o flood protector nao iria deixar por varios motivos... e so bloquiar o item para nao cair ! esse phx ai que voce usou nao funciona! tenho certeza...

Full Stack Developer


Link para o comentário
Compartilhar em outros sites

Até aonde eu saiba Walker pega em qualquer pack

 

Olha que tem Pack que não deixa o PHX nem o Walker funcionar sem nenhuma prot no client tudo no Java.

Contatos MSN: [email protected] Skype: Lucas Marlon < ArmyDoido >

Projeto L2JBrasil Online Vol² nos Ajude de sua Opniao :p

 

NÃO RESPONDO DÚVIDAS POR MSN NÃO INSISTA.

SOMENTE AJUDO SE FOR JAVA OBG :P

Link para o comentário
Compartilhar em outros sites

VOCÊ POSTANDO NA ÁREA CORRETA ALGUÉM PODE TE AJUDAR.

 

AQUI NÃO É ÁREA DE DUVIDA OU PEDIDOS.

 

LINK DA ÁREA CORRETA:

http://www.l2jbrasil...rum/18-duvidas/

 

cara não precisa avisar não eles continuam do mesmo jeito, já estou resolvendo aqui os duvidosos do tópico da l2jfrozen

Link para o comentário
Compartilhar em outros sites

essa rev ta com algum problema com os magos?

nao sei o que deu mais as magias nao tiram dano...

somente ataque fisico tira dano oO

 

Mago tem que estar mais ou menos no mesmo level do mob para dar dano!

Char nasce sem skill's e mesmo fazendo classes continua sem skill's, como resover isso ??

 

aqui não é área de duvidas, a rev está funcionando normal, se você tem algum problema deve ter sido algum procedimento que você executou, crie um tópico na área de duvidas.

Link para o comentário
Compartilhar em outros sites

Rev L2JFrozen 934 + Backup

 

Rev sem Mods Limpa .

Creditos da frozen Retirada .

 

TMaxT.png

 

Use e abuse !!

Editado por lovepako

Falar é fácil. Mostre-me o código.

Link para o comentário
Compartilhar em outros sites

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

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






  • Patrocinadores

  • Quem Está Navegando

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

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

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.