Ir para conteúdo
  • Cadastre-se
  • 0

WhatsAPP dentro do Lineage 2 inves de MSN/Messenger


AikoN~

Pergunta

Ola galera provavelmente eu esteja postando isso na área errada.

 

Mas gostaria de deixar minha ideia pra galera que manja de programação ai.

 

Todos nos sabemos que dentro do jogo tem (Alt+Y) que é o (MSN. Messenger) que podia ser acessado dentro do game.

 

Como essa função não é mais acessível, porque não tentam colocar o WhatsAPP ali? Seria ooooo atrativo a mais pra galera jogar no servidor não? kk :P

spacer.png

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts recomendados


  • 0

Olha, segundo o naldinho é preciso fazer engenharia reversa nos arquivos da system para tal modificação, e é algo complicado, extremamente complicado.

Não vou falar que é algo impossível né, vai que alguma criancinha faz vídeo postando no youtube demonstrando trabalho que pegou pronto por ai igual da ultima vez :kkk:

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde, isso seria uma boa ideia se alguém fazer esta app dentro do Client toda hora você vai te que fica ativando o whatzapp...

maldito código de 6 dígitos kkkk

template.jpg


"Um homem não está acabado quando enfrenta a derrota.


Ele está acabado quando desiste de lutar pela vitória ."

Link para o comentário
Compartilhar em outros sites

  • 0

não sei se você chegou a prestar atenção mas o whatsapp não é login/senha, é totalmente diferente o sistema dele, creio eu que seja impossível editar isso pro l2 atualmente, afinal o sistema do whatsapp no pc (whatsapp web) precisaria de um smartphone para usar o WhatsApp no desktop.

 

É aí que a gambiarra se revela: não dá para utilizar o recurso de forma totalmente independente do seu celular. Na verdade o Whatsapp WEB ele vai espelhar o que tem no app do seu celular para seu PC. Primeiro é preciso ter a versão mais nova do app, entrar na página do client e escanear o presente QR Code.

A partir daí você terá acesso ao WhatsApp Web. Ele é exatamente igual ao visto em seu smartphone, já que a página web vai servir apenas como um mirror do app. Caso seu smartphone se desconecte da internet o programa deixa de funcionar. Não há um servidor dedicado, o WhatsApp Web apenas replica o que está em seu celular e sincroniza mensagens compartilhadas pela rede.

 

Skype e Facebook é possível alguém conseguir editar o sistema do MSN para um desses dois, mas o whatsapp é totalmente diferente, não usa login e senha, a autorização é totalmente diferente, é meio dificil explicar mais do que eu falei acima..

 

// Um olhar mais técnico da parada:

 

Pra quem é desenvolvedor, consegue imaginar os dois lados da moeda.

Sim, é um POG desgraçado, não faz muito sentido. Porém...

O WhatsApp nunca foi pensado para ser multidevice, foi desenvolvido desde o início para funcionar apenas no smartphone. Provavelmente a arquitetura do software e da infraestrutura não permite uma mudança dessas de forma tão fácil. Provavelmente essa foi a única saída viável encontrada para fazer isso funcionar sem precisar reformular tudo.

 

Vou explicar-lhe melhor...

O WhatsApp gera hashs de cada contato seu no banco de dados interno do aplicativo (quem já fez root no aparelho ou utilizou o WhatsApp no emulador sabe do que estou falando), portanto o cliente no navegador não tem acesso as chaves, uma vez que estão no aparelho e não é possível acessar o BD interno diretamente.

Outro ponto é que o WhatsApp usa o serviço de Push Notification (GCM - Google Cloud Messaging) para confirmação de envio e recebimento (os famosos ticks) de mensagens.

O Chrome até suporta o envio e recebimento de Push Notification, mas para enviar um push é necessário saber o token utilizado no GCM e ser de um IP autorizado no painel de controle do Google Console. Até tem como permitir todos os IPs, mas aí você abre uma brecha para enviar uma push notification sem ser o aplicativo. E o Google cobra $$$ por excedente de mensagens enviadas via GCM.

Editado por Wallace Carvalho

Caso tenha alguma sugestão para aplicativos, por favor envie por MP.

 WhatsApp: 22 98156-2591 

L2JDREAM PROJECT

Link para o comentário
Compartilhar em outros sites

  • 0

Eu tenho fé em JÉZÚÝS que alguém vai fazer isso um dia!! AMÉM??


j9NKAW1.gif

"A Vontade de se Preparar Transforma Heróis"

"A Dor física é só um mero Sentimento"

🦸🏽‍♂️

rogeriomorais.gif

Link para o comentário
Compartilhar em outros sites

  • 0
  • L2JBr ADM

não sei se você chegou a prestar atenção mas o whatsapp não é login/senha, é totalmente diferente o sistema dele, creio eu que seja impossível editar isso pro l2 atualmente, afinal o sistema do whatsapp no pc (whatsapp web) precisaria de um smartphone para usar o WhatsApp no desktop.

 

É aí que a gambiarra se revela: não dá para utilizar o recurso de forma totalmente independente do seu celular. Na verdade o Whatsapp WEB ele vai espelhar o que tem no app do seu celular para seu PC. Primeiro é preciso ter a versão mais nova do app, entrar na página do client e escanear o presente QR Code.

A partir daí você terá acesso ao WhatsApp Web. Ele é exatamente igual ao visto em seu smartphone, já que a página web vai servir apenas como um mirror do app. Caso seu smartphone se desconecte da internet o programa deixa de funcionar. Não há um servidor dedicado, o WhatsApp Web apenas replica o que está em seu celular e sincroniza mensagens compartilhadas pela rede.

 

Skype e Facebook é possível alguém conseguir editar o sistema do MSN para um desses dois, mas o whatsapp é totalmente diferente, não usa login e senha, a autorização é totalmente diferente, é meio dificil explicar mais do que eu falei acima..

 

// Um olhar mais técnico da parada:

 

Pra quem é desenvolvedor, consegue imaginar os dois lados da moeda.

Sim, é um POG desgraçado, não faz muito sentido. Porém...

O WhatsApp nunca foi pensado para ser multidevice, foi desenvolvido desde o início para funcionar apenas no smartphone. Provavelmente a arquitetura do software e da infraestrutura não permite uma mudança dessas de forma tão fácil. Provavelmente essa foi a única saída viável encontrada para fazer isso funcionar sem precisar reformular tudo.

 

Vou explicar-lhe melhor...

O WhatsApp gera hashs de cada contato seu no banco de dados interno do aplicativo (quem já fez root no aparelho ou utilizou o WhatsApp no emulador sabe do que estou falando), portanto o cliente no navegador não tem acesso as chaves, uma vez que estão no aparelho e não é possível acessar o BD interno diretamente.

Outro ponto é que o WhatsApp usa o serviço de Push Notification (GCM - Google Cloud Messaging) para confirmação de envio e recebimento (os famosos ticks) de mensagens.

O Chrome até suporta o envio e recebimento de Push Notification, mas para enviar um push é necessário saber o token utilizado no GCM e ser de um IP autorizado no painel de controle do Google Console. Até tem como permitir todos os IPs, mas aí você abre uma brecha para enviar uma push notification sem ser o aplicativo. E o Google cobra $$$ por excedente de mensagens enviadas via GCM.

 

A única forma de fazer isso é criando uma integração com Chat-API https://github.com/mgp25/Chat-API que faz algo parecido, é possível com PHP por exemplo integrar com whatsapp.

 

 

Embora, o problema é que o MSN do lineage2 era um cliente messenger dentro do jogo, não tem como modificar sem o código fonte.

 

Via server side, penso numa "POG" usando python e o sistema de quests, fora isso é complicado já que não conseguimos abrir páginas web dentro do jogo, o que seria muito bom.

Porém, estaríamos esbarrando nos termos e condições do whatsapp:

 

Você concorda em não usar ou lançar qualquer sistema automatizado, ... que acessa o Serviço de maneira a enviar mais solicitações aos servidores do WhatsApp em um determinado período de tempo do que um ser humano pode responder no mesmo período através de uma aplicação do WhatsApp.

 

Edit:

 

Uma informação técnica adicional é que as mensagens enviadas pelo whatsapp web é mandada através do seu celular, por isso ele precisa estar conectado na internet.

Caso alguém esteja curiosos segue a postagem da explicação detalhada(não oficial) de como funciona o app web:

https://www.quora.com/What-is-the-technology-behind-the-web-based-version-of-WhatsApp

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

  • 0

não sei se você chegou a prestar atenção mas o whatsapp não é login/senha, é totalmente diferente o sistema dele, creio eu que seja impossível editar isso pro l2 atualmente, afinal o sistema do whatsapp no pc (whatsapp web) precisaria de um smartphone para usar o WhatsApp no desktop.

 

É aí que a gambiarra se revela: não dá para utilizar o recurso de forma totalmente independente do seu celular. Na verdade o Whatsapp WEB ele vai espelhar o que tem no app do seu celular para seu PC. Primeiro é preciso ter a versão mais nova do app, entrar na página do client e escanear o presente QR Code.

A partir daí você terá acesso ao WhatsApp Web. Ele é exatamente igual ao visto em seu smartphone, já que a página web vai servir apenas como um mirror do app. Caso seu smartphone se desconecte da internet o programa deixa de funcionar. Não há um servidor dedicado, o WhatsApp Web apenas replica o que está em seu celular e sincroniza mensagens compartilhadas pela rede.

 

Skype e Facebook é possível alguém conseguir editar o sistema do MSN para um desses dois, mas o whatsapp é totalmente diferente, não usa login e senha, a autorização é totalmente diferente, é meio dificil explicar mais do que eu falei acima..

 

// Um olhar mais técnico da parada:

 

Pra quem é desenvolvedor, consegue imaginar os dois lados da moeda.

Sim, é um POG desgraçado, não faz muito sentido. Porém...

O WhatsApp nunca foi pensado para ser multidevice, foi desenvolvido desde o início para funcionar apenas no smartphone. Provavelmente a arquitetura do software e da infraestrutura não permite uma mudança dessas de forma tão fácil. Provavelmente essa foi a única saída viável encontrada para fazer isso funcionar sem precisar reformular tudo.

 

Vou explicar-lhe melhor...

O WhatsApp gera hashs de cada contato seu no banco de dados interno do aplicativo (quem já fez root no aparelho ou utilizou o WhatsApp no emulador sabe do que estou falando), portanto o cliente no navegador não tem acesso as chaves, uma vez que estão no aparelho e não é possível acessar o BD interno diretamente.

Outro ponto é que o WhatsApp usa o serviço de Push Notification (GCM - Google Cloud Messaging) para confirmação de envio e recebimento (os famosos ticks) de mensagens.

O Chrome até suporta o envio e recebimento de Push Notification, mas para enviar um push é necessário saber o token utilizado no GCM e ser de um IP autorizado no painel de controle do Google Console. Até tem como permitir todos os IPs, mas aí você abre uma brecha para enviar uma push notification sem ser o aplicativo. E o Google cobra $$$ por excedente de mensagens enviadas via GCM.

 

 

A única forma de fazer isso é criando uma integração com Chat-API https://github.com/mgp25/Chat-API que faz algo parecido, é possível com PHP por exemplo integrar com whatsapp.

 

 

Embora, o problema é que o MSN do lineage2 era um cliente messenger dentro do jogo, não tem como modificar sem o código fonte.

 

Via server side, penso numa "POG" usando python e o sistema de quests, fora isso é complicado já que não conseguimos abrir páginas web dentro do jogo, o que seria muito bom.

Porém, estaríamos esbarrando nos termos e condições do whatsapp:

 

Edit:

 

Uma informação técnica adicional é que as mensagens enviadas pelo whatsapp web é mandada através do seu celular, por isso ele precisa estar conectado na internet.

Caso alguém esteja curiosos segue a postagem da explicação detalhada(não oficial) de como funciona o app web:

https://www.quora.com/What-is-the-technology-behind-the-web-based-version-of-WhatsApp

vocês que manjam mais como o wallace disse precisaria de um login e senha e tals mas e o messenger do facebook? não teria como sera q nao ah nenhuma possibilidade? ele exige login e senha e é parecido com o msn

Não Temas , Se Você Tem Um Sonho Corra Atras , Nunca Desista =D

Link para o comentário
Compartilhar em outros sites

  • 0

Seria ótimo, mas até hoje apenas vi em alguns servidores quando clicava no npc ou algum botão dentro do jogo abria uma janela de navegador, fora isso nada de diferente kkkk...

Contato:

Msn: [email protected]

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

oDhkG.jpg

Link para o comentário
Compartilhar em outros sites

  • 0

Seria ótimo, mas até hoje apenas vi em alguns servidores quando clicava no npc ou algum botão dentro do jogo abria uma janela de navegador, fora isso nada de diferente kkkk...

Ué, se a página abrir dentro do jogo tudo é possível

"And I now wait to shake the hand of fate

Like the dusk awaiting dawn"

Link para o comentário
Compartilhar em outros sites

  • 0
  • L2JBr ADM

Basicamente é impossível implementar um client whatsapp dentro do jogo.

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

  • 0

Basicamente é impossível implementar um client whatsapp dentro do jogo.

 

Não sei dizer se é impossivel... ja vi nego até colocar um rádio dentro do jogo ( russos ) vou ver se acho o vídeo qualquer hora...

 

 

//

um tempo atrás vi uns cara atrás de Emular um MSN ( to só olhando o desenvolvimento pra ver se sai algo bom )

XD

Link para o comentário
Compartilhar em outros sites

  • 0
  • L2JBr ADM

Não sei dizer se é impossivel... ja vi nego até colocar um rádio dentro do jogo ( russos ) vou ver se acho o vídeo qualquer hora...

 

 

//

um tempo atrás vi uns cara atrás de Emular um MSN ( to só olhando o desenvolvimento pra ver se sai algo bom )

 

 

A tecnologia do whatsapp é diferent de qualquer sistema de mensagens instantâneas, criptografia ponto a ponto, sem armazenamento no servidor, a mensagem é enviada diretamente do celular.

Você teria que ter acesso à chave que criptografa a mensagem para poder conseguir enviar mensagem, precisaria ainda de uma api para enviar os dados.

E essa criptografia também está presente no messenger do facebook.

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

  • 0

Movi para uma área mais específica do assunto!

Você sabia que a L2JBrasil tem uma empresa de Hosting Oficial?
Conheça a L2JCenter.com

L2JBRASIL - 15 anos vendendo SS e flechas em Giran! (Trade / Adena)

Link para o comentário
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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