Ir para conteúdo
  • Cadastre-se

[Guia]Migrar Servidor Sem Wipe.


Grundor

Posts recomendados

  • L2JBr ADM

COMO MIGRAR DE UMA REV PARA OUTRA VITANDO-SE PERDER QUASE NADA(SEM WIPE).

 

ANTES DE COMEÇAR TENHA EM MENTE QUE É UM GUIA E NÃO UM TUTORIAL, UM TUTORIAL É UMA AULA AONDE VOCÊ IRÁ APRENDER DIVERSOS PASSOS. JÁ UM GUIA TE MOSTRA POR ONDE ANDAR.

 

Não sei se é a melhor maneira nem sei se dará certo com você mas não custa tentar.Espero que seja bem útil para.

com esses passos eu já conseguir passar um server interlude free para um kamael emu.

 

caso vc queria por exemplo passar de l2jfree hellbound para l2jfree gracia é mais facil instalar o modo de "upgrade" do proprio .bat de instalação.

 

1-Primeiro eu já mentalizo que terei muito trabalho pela frente e que tudo poderá sair errado.(já para não ficar louco)

2- Certifique-se de ter um DB do seu novo servidor (rev e versão) instalado no MySQL (preferível uma separado PC / laptop) caso não tenha não tem problema aqui vou chamar de DB-Velho e DB-Novo.É necessário que a nova versão não tenha nenhum char criado nem acc.

 

3- Inicie o servidor novo zerado(sem as acc's e chars) para ter certeza que ele funciona, e o antigo também.

 

\!/WARNING\!/: PARTE COMPLICADA D+, SE FOR MUITO NOOB NEM TENTE CONTINUAR.

 

4- Se tudo estiver ok, no db velho separe todos os custons(npc's, armors, armorsets, weapons,etcitens configurações, etc's, buff_template no caso de um npc buffer.) em SQL's(dump SQL file..).

 

Separe as seguintes tabelas em uma 3º Banco de dados, chamarei de DB-temp referentes aos chars:

 

☻accounts

☻augmentations

☻character_friends

☻character_hennas

☻character_macroses

☻character_quests

☻character_quests_item

☻character_raid_points

☻character_recipebook

☻character_recommends(não necessária em algumas revs, mas é bom previnir)

☻character_shortcuts

☻character_skill

/*

========ESSA NÃO ENTRA===========

☻character_skills_save ELA NÃO ENTRA PQ ELA SÓ GUARDA OS BUFFS DOS CHARS PROR EXEMPLO SE FOR MIGRAR DE HELLBOUND PRA GRACIA VAI DAR ERRO POR CAUSA DO NOVO ESQUEMA DE BUFFS BAR.

========ANTES QUE ALGUEM PRGUNTE===========

 

*/

☻character_stats(NÃO EXISTE EM ALGUMAS VERSÕES)

☻character_subclasses

☻characters

☻characters_custom_data(NÃO EXISTE EM ALGUMAS VERSÕES)

☻clan_data

☻clan_privis

☻clan_skills

☻clan_subpledges

☻clan_wars

☻clanhall(terá que editar manualmente os donos)

☻heroes

-----------------------x----------------------------

☻itens(a mais importante de todas e a que te dará mais problemas, "que avisa amigo é.")- deixe-a por ultimo na migração.

-----------------------x----------------------------

☻olympiad_nobles

 

5- Agora com tudo isso você os colocará no DB-TEMP Só deixe as coisas que eu citei acima... e os custons

 

Agora temos 2 opções para migração se uma não der certo tente a outra. só use uma em noobada.

 

---------------------------Opção 1----------------------------

 

Melhor opção de quando é o mesmo tipo ex:L2jfree interlude para L2jfree Kamael.

 

6- Esqueça um pouco o DB-TEMP.Se você tivesse um computador separado, cópiaria a rev nova para máquina do seu servidor(mais ai teria que parar o servidor para fazer), juntamente com o seus arquivos SQL's do passo 4

 

7-No Navicat Vá em "tools" -> "Structure Syncronization" e preencha:

 

☻Lado esquerdo -> (sua conexão nome) -> (DB-Novo)

☻Lado direito -> (sua conexão nome) -> (DB-Velho)

 

obs: se voce usa um loginserver com db separado não será necessário repetir com o db login.

 

8-Aperte "Compare". note que aparecerá as tabelas que são diferentes... fique atento a elas

 

9-Após comparar, pressione "Execute Query". Geralmente não costuma dar muitos erros mas sempre dá. deixe rolar.

 

10- Após a execução da "Query" for comcluida vá até "Data sync"

 

☻Lado esquerdo -> (sua conexão nome) -> (DB-Velho)

☻Lado direito -> (sua conexão nome) -> (DB-Novo)

 

note que inverteu os lados...

 

17. Va em "Avançado" e remova a marca de "Apagar registos" (delet records)

 

Obs: Certifique-se de que você removeu essa marca ANTES DE COMEÇAR!

 

18. Antes aperte o botão "Preview".

 

Geralmente dá erro em umas 7 ou 8 tabelas:

 

-boxaccess

-clan_wars

-pledge_skill_trees

-locations

-skill_spellbooks

-topic

-zone

 

19. Se em "Preview" está tudo OK, em seguida, pressione "Iniciar" para atualizar. e deixe rolar.

 

Tenha certeza que você completou PONTO 17 ANTES DE CONTINUAR!

 

 

20. Agora basta dump SQL do seuS antigo arquivo Feito no passo 4 e copiando os arquivos um por vez

21. iniciar o servidor de login, algum erro? não= prosiga sim= fique louco, chore, esperneie e tente outra vez.

22. iniciar o seu game server , não= prosiga sim= fique louco, chore, esperneie e tente outra vez.

23. E pronto !!!!!

 

 

 

---------------------------Opção 2---------------------------

Agora a segunda opção... mais arcaica mas funciona em alguns casos.

 

 

6- tenha o DB-Novo instalado 0km, sem nenhum char nenhum item nada! totalmente nú.

 

7-Pegue as coisas que vc colocou no DB-TEMP e coloque tudo em um sql .. (dump sql)

 

8- Abra a SQL e apague a parte que cria as tabelas... deixe apenas aonde fica "INSERT TO"

 

9-Agora faça um backup do DB-Novo.

 

10- Execute a sql que vc editou... marque a opção "Continnue on erros" veja o que vai dar certo e o que sairá errado.

 

11- Agora vá atrás dos erros, o pq deu erro, em que deu o erro.

Um exemplo...

 

você estava adicionando a tabela characters_skill e deu erro na coluna "x"

 

ai você abre a coluna referente no DB-Novo e verifica se ele tem alguma coluna a + ou a menos... Suponhamos que tenha uma coluna a mais.

 

voce dá um ctrl+d e abrirá a strutura da tabela pra voce editar.

 

* então observe a estrutura da tabela no DB-NOVO e compare com a do DB-Velho e então crie uma coluna exatamente = e na mesma posição na da que está no DB-Novo.

 

* volte então a fazer uma sql da tabela com o mesmo esquema do passo 8.

12- Repita o passo 11 para todas as tabelas.

 

13. iniciar o servidor de login, algum erro? não= prosiga sim= fique louco, chore, esperneie e tente outra vez.

14. iniciar o seu game server , não= prosiga sim= fique louco, chore, esperneie e tente outra vez.

15. E pronto !!!!!

 

________________________________________________Considerações Finais________________________________________________

 

É dificil eu sei..

Se não conseguir depois de um tempo desita não vale a pena ficar tentando...

A ultima vez que eu fiz eu demorei uma semana até tá tudo ok.

 

Sei que não é a melhor maneira. Se voce encontrar uma maneira mais facil não exite em mostrar.

 

Espero ter ajudado.. mas não vou ficar respondendo dúvidas do tipo

 

"como migrar de tal pra tal" "tem como migrar do CT10 pro C1?" nem tente.

 

 

Créditos: Grundor

Proibida a publicação mesmo que em partes desse tutorial sem autorização minha.

 

 

 

Proibida a reprodução mesmo que em partes desse tutorial sem a publicação dos devidos créditos de criação

Garantido pela Constituição da República Federativa do Brasil, de 05 de outubro de 1988

Portaria MCT n° 88, de 23/04/98

Propriedade Intelectual

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


  • L2JBr ADM

Agora ficou pronto.

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

  • L2JBr ADM

Se não tentar não saberá se é possivel.

 

Espero ter ajudado.. mas não vou ficar respondendo dúvidas do tipo

 

"como migrar de tal pra tal" "tem como migrar do CT10 pro C1?" nem tente.

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

  • 4 weeks later...
  • L2JBr ADM

Sim... nada é impossivel e com organização fica melhor ainda...

 

e não é tutorial é guia^^

 

ANTES DE COMEÇAR TENHA EM MENTE QUE É UM GUIA E NÃO UM TUTORIAL, UM TUTORIAL É UMA AULA AONDE VOCÊ IRÁ APRENDER DIVERSOS PASSOS. JÁ UM GUIA TE MOSTRA POR ONDE ANDAR.

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

  • 4 weeks later...

e c for de IL pra gracia tem como faze isso sem c manualmente?

376210082.png

4l417ogcc2.gif

Fui Malcriado ou Mal Educado!?"você Mereceu...."By รтσяммαkєя...

Gosto?;D

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM
Sim... nada é impossivel e com organização fica melhor ainda...

 

e não é tutorial é guia^^

 

ANTES DE COMEÇAR TENHA EM MENTE QUE É UM GUIA E NÃO UM TUTORIAL, UM TUTORIAL É UMA AULA AONDE VOCÊ IRÁ APRENDER DIVERSOS PASSOS. JÁ UM GUIA TE MOSTRA POR ONDE ANDAR.

 

 

 

É dificil eu sei..

Se não conseguir depois de um tempo desita não vale a pena ficar tentando...

A ultima vez que eu fiz eu demorei uma semana até tá tudo ok.

 

Sei que não é a melhor maneira. Se voce encontrar uma maneira mais facil não exite em mostrar.

 

Espero ter ajudado.. mas não vou ficar respondendo dúvidas do tipo

 

"como migrar de tal pra tal" "tem como migrar do CT10 pro C1?" nem tente.

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

Como add o sistema vitalyt nas sql dos caracters para mim migrar de jfree 1.2.6 para 1.2.11?

 

Por favor grundor me ajude acho que eh isso o problema aki Os chars não logam

...

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM

*abre a tabela characters.

*ctrl+d na tabela que ta na rev que vc ta migrando.

*repita para a sua tabela atual de chars..

*no final da rev nova vc copia a ultima coluna "vitality_points"

*Cole então no final da sua tabela atual de chars... faz a exportação pra sqlfile.

*abra a sql e tire a parte acima do primeiro "INSERT INTO..."

* E coloque no novo db.

*execute essa query tbm(ctrl+q)

UPDATE `characters` SET `vitality_points`='20000' WHERE (`vitality_points`< '1')

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

Uma duvida basica, tipo qdo eu vou atualizar uma Rev apenas, tipo L2jfree 1.2.10 pra 1.2.11 qual o método mais facil pra não perder dados? tipo suponhamos que tenha varias ID's de NPC na antiga (entre custom ou não... como no caso da 1.2.6 que tem o Pailoka, e nas seguintes não) pra deixar as ID's de NPC todas lá e não ter problemas "futuros"

 

e todo resto também, tipo... se eu instalar o banco de dados num local a parte (o mais novo) e fizer esse esquema do Sync, o antigo vai ficar com todos os dados antigos e os dados novos vão entrar?

 

por enquanto é só isso

EM BREVE - GALAGARD.COM.BR

SERVIDOR Grand Crusade - 50x

SERVIDOR Classic - 8x

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • L2JBr ADM

Sim.

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

  • L2JBr ADM

Pelo amor de deus não postem img em .png --'

 

usem .jpg

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

  • L2JBr ADM

não sou eu que pesso é minha conexão que chora.

 

o erro está na criação de char.

então logo.

algum problema na tabela characters..

 

vc deve ter alterado a tabela da atual e não a da antiga...

 

Altere a Antiga para que fique = a atual. se não vai dar pau mesmo.

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

  • 3 weeks later...
  • 4 weeks later...
  • 2 weeks later...

Passei eu achei mais facil usar Sql do que ficar apertando ctrl D pra editar as tabelas da dump sql e abre e vai fazer achei bem mais facil!!ja pra adicionar uma tabela e preferivel usar ctlr nas tabelas msm e adicionalas!

asinatura.gif

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM

A maioria nem pensa em fazer isso

eu tentei explicar da maneira mais fácil.

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

éee tambem ja consigo fazer a transferencia sem olhar mais o que mais me atrapalho foi os ids que tinha no interlude que ja existiam no gracia ai eu tinha que modificar do gracia pra funfa o do interlude

 

Parabens Grundor! trabalho fantastico!

asinatura.gif

Link para o comentário
Compartilhar em outros sites

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