Ir para conteúdo
  • Cadastre-se

[Tutorial] Criando sua propria Dual.


Kelvin

Posts recomendados

  • L2JBr ADM

Bem pessoal, já que tem algumas pessoas me pedindo para mim fazer um tuto de como fazer uma Dual, ta ai é um pouco complexo/avançado, então se você mal consegue adicionar um item feito no teu L2, por enquanto não recomendo fazer isso, para não surgirem perguntas triviais..

 

Primeira coisa que tem que ser estabelecida é o ID e o nome da arma!

Vamos por um ID e um nome Simples.

ID: 24569

NOME: Dual Master

 

Para fazer uma arma funcionar no servidor tem que ter 4 coisas basicas:

XML

SQL

Weapongrp.dat

Intemname.dat

 

Vamos Fazer primeiro a SQL, mudando de versão para versão a SQL também muda as vezes as colunas e valores.

Irei usar aqui uma SQL para Interlude.

Abra um documento no bloco de notas e coloque o seguinte dentro dele.

INSERT INTO `weapon` VALUES ('24569', 'Dual Master', 'lrhand', 'true', '2080', '1', '1', 'adamantaite', 's', '365', '40', 'dual', '8', '0.00000', '0', '0', '0', '325', '0', '151', '-1', '78800000', '2440', 'true', 'true', 'true', 'true', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');

 

Clique em Salvar e nomeie esse documento para Dual Master.sql

 

Agora faremos a XML.

 

Abra outro documento no Bloco de notas ponha o seguinte dentro.

 

<?xml version='1.0' encoding='utf-8'?>

<list>

<item id='24569' name="Dual Master">

<for>

<set val='562' order='0x08' stat='pAtk'/>

<set val='160' order='0x08' stat='mAtk'/>

<set val='8' order='0x08' stat='rCrit'/>

<add val='0' order='0x10' stat='accCombat'/>

<set val='325' order='0x08' stat='pAtkSpd'/>

<enchant val='0' order='0x0C' stat='pAtk'/>

<enchant val='0' order='0x0C' stat='mAtk'/>

</for>

</item>

</list>

 

Clique em salvar e nomeie o arquivo para 24569-24580.xml.

 

Pronto XML e SQL Feitas agora faremos os arquivos .dat que definiram as armas que serão feitas...

 

Primeiro faremos o arquivo itemname.dat pegue a linha abaixo, abra o L2FileEdit e abra o seu Itemname.dat

Ponha o seguinte codigo dentro.

24569 Dual Master P.Atk of dual Pole will increase more than one-handed type weapon when enchanted. Max HP +20%, Max MP +20%, Max CP +20% when enchanted by 4 or more. By Kelvin. -1 0 0 0

 

Você pode alterar os textos depois q enserido no Itemname e visto q n deu erro n hora de adicionar.

 

Agora faremos o Weapongrp.dat

 

Primeira coisa que te que fazer e Saber qual será a arma que você fara uma Dual.

Vamos pegar a Dagger Icarus.

 

Abra o Bloco de Notas e ponha o seguinte Codigo dentro.

Esse codigo é da Dual de Pole Icarus que alteraremos os valores e colocaremos os do exemplo 2 para formar o exemplo 3.

0 24569 1 1 6 1 0 icarus_sowsword.l2sppr_icarus_sowsword_m00_wp icarus_sowsword.l2sppr_icarus_sowsword_m00_wp ct2LineageWeaponsTex.icarus_sowsword_wp ct2LineageWeaponsTex.icarus_sowsword_wp icon.weapon_dual_sword_i00 ct2icon.weapon_icarus_sowsword_i00 ct2icon.weapon_icarus_sowsword_i00 -1 2080 47 1 0 14 3 2 icarus_sowsword.l2sppr_icarus_sowsword_m00_wp icarus_sowsword.l2sppr_icarus_sowsword_m00_wp 2 ct2LineageWeaponsTex.icarus_sowsword_wp ct2LineageWeaponsTex.icarus_sowsword_wp 4 ItemSound.public_sword_shing_8 ItemSound.sword_great_4 ItemSound.sword_mid_2 ItemSound.public_sword_shing_4 ItemSound.itemdrop_dualsword ItemSound.itemequip_dualsword 10 302 172 8 5 8 0 0 0 0 325 0 1 1 1000 0 -1 0 LineageEffect.e_u092_a LineageEffect.e_u092_a 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.800000 1.000000 0.800000 1.300000 LineageWeapons.rangesample LineageWeapons.rangesample 1.400000 0.800000 0.800000 1.500000 0.800000 0.800000 12.000000 0.000000 0.000000 11.500000 0.000000 0.000000 6 4 -1 -1 icon.weapon_dual_sword_i00 ct2icon.weapon_icarus_trident_i00 ct2icon.weapon_icarus_trident_i00

 

Cuidado selecione tudo para não dar erro na hora de adicionar...

O codigo acima é de uma dual de Pole que eu fiz, mais está relacinado em cores para você saber onde por cada linha.

 

Agora mostrarei o Codigo da Dagga Icarus normal para vocês substituirem as linhas de cada cor correspondente no codigo para obter a sua Dual.

 

0 24569 1 1 7 10 0 icarus_disperser.l2sppr_icarus_disperser_m00_wp ct2LineageWeaponsTex.icarus_disperser_wp ct2icon.weapon_icarus_disperser_i00 -1 930 1 1 0 14 1 1 icarus_disperser.l2sppr_icarus_disperser_m00_wp 1 ct2LineageWeaponsTex.icarus_disperser_wp 4 ItemSound.dagger_6 ItemSound.sword_small_2 ItemSound.sword_mid_2 ItemSound.public_sword_shing_7 ItemSound.itemdrop_dagger ItemSound.itemequip_dagger 5 325 165 3 5 12 -3 0 0 0 433 0 1 1 1000 0 -1 0 LineageEffect.w_vari_r4_004_a 1.000000 0.000000 0.000000 1.700000 1.000000 1.600000 1.200000 1.200000 8.000000 0.000000 0.000000 4 -1 -1 -1 ct2icon.weapon_icarus_disperser_i01

 

No caso o codigo da nossa Dual Ficaria assim.

 

0 24569 1 1 6 1 0 icarus_disperser.l2sppr_icarus_disperser_m00_wp icarus_disperser.l2sppr_icarus_disperser_m00_wp ct2LineageWeaponsTex.icarus_disperser_wp ct2LineageWeaponsTex.icarus_disperser_wp icon.weapon_dual_sword_i00 ct2icon.weapon_icarus_disperser_i00 ct2icon.weapon_icarus_disperser_i00 -1 2080 47 1 0 14 3 2 icarus_disperser.l2sppr_icarus_disperser_m00_wp icarus_disperser.l2sppr_icarus_disperser_m00_wp 2 ct2LineageWeaponsTex.icarus_disperser_wp ct2LineageWeaponsTex.icarus_disperser_wp 4 ItemSound.public_sword_shing_8 ItemSound.sword_great_4 ItemSound.sword_mid_2 ItemSound.public_sword_shing_4 ItemSound.itemdrop_dualsword ItemSound.itemequip_dualsword 10 302 172 8 5 8 0 0 0 0 325 0 1 1 1000 0 -1 0 LineageEffect.e_u092_a LineageEffect.e_u092_a 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.800000 1.000000 0.800000 1.300000 LineageWeapons.rangesample LineageWeapons.rangesample 1.400000 0.800000 0.800000 1.500000 0.800000 0.800000 12.000000 0.000000 0.000000 11.500000 0.000000 0.000000 6 4 -1 -1 icon.weapon_dual_sword_i00 ct2icon.weapon_icarus_disperser_i01 ct2icon.weapon_icarus_disperser_i01

 

Pronto com esse codigo acima você pega de uma ponta a outra e coloca no seu Weapongrp.dat

Se vc fez certo vai salvar blz sem dar nenhum erro.

Dentro do jogo é só digitar //create_item 24569

 

Lembrando ai que tudo é imaginario... então não vão socar essas coisas e pensarem q tem uma Dual =D

 

Kelvin, All Right Reserved. (lol).

 

 

 

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

Link para o comentário
Compartilhar em outros sites


  • L2JBr ADM

Tanto faz você pode salvar até com o nome "Feliz Natal.xml" isso é só pra saber o ID que começa o primeiro item e o id do ultimo item para ajudar, se quiser por as armas Icarus por exemplo, faz e poe o nome Armas Icarus que da pra achar do mesmo jeito.

Link para o comentário
Compartilhar em outros sites

ManinhO... eu fiz tudo certo... mas quando fui add no itemname-e deu erro... olhe o erro:

 

http://img377.imageshack.us/my.php?image=e...temnameeio8.jpg

 

 

me ajude ai... porque deu esse erro??

 

 

Grato!

 

 

by:-=ADM-NerO=-

I'll be a dreamer forever and no matter what they will say. \O/

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM

Isso ta dando na hora de vc salvar deve ter copiado errado faça o seguinte pega o itemname de algum item já feito clica antes do ID no comecinho segura SHIFT e aperta para baixo no teclado, depois copia e cola lá em baixo essa linha, muda ID, nome e descrição ai tu salva de boa.

Link para o comentário
Compartilhar em outros sites

tem como posta uma dual de iluminate DARK blade?

 

P.S. a espada ta num dos srv interlude pre-configurado do kelvin

376210082.png

4l417ogcc2.gif

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

Gosto?;D

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

Esse erro do itemname-e dá aqui mais é no weapongrp.dat, não deu pra intender muito o que o kelvin falou... vou ver se consigo resouver aqui. :D

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

kelvin amigo, se não for muito, poderia postar um exemplo de como fazer uma dual em versão l2jfree pra gracia pt 2 ?

é que vai facilitar pra muita gente que usa gracia !!!!

eu mesmo já tentei fazer diversas duais e não consigo, sempre faço uma vistoria para saber c as IDs estão corretas e tudo mais, pra não ter erro, itemname adiciona blza, mas o tal do armorgrp so dá erro, acho que com um exemplo pra gracia a gente consegue !!!

 

obrigado ae mano e desculpa o incomodo!

Link para o comentário
Compartilhar em outros sites

0 10448 1 1 7 15 0 LineageWeapons.icarus_disperser_m00_wp LineageWeaponsTex.icarus_disperser_t00_wp icon.weapon_icarus_disperser_i01 -1 1520 8 1 0 0 1 7 1 1 LineageWeapons.icarus_disperser_m00_wp 1 LineageWeaponsTex.icarus_disperser_t00_wp 4 ItemSound.public_sword_shing_5 ItemSound.dagger_2 ItemSound.sword_small_6 ItemSound.dagger_6 ItemSound.itemdrop_dagger ItemSound.itemequip_dagger 5 318 163 3 6 12 -3 0 0 0 433 0 1 1 1000 0 -1 0 LineageEffect.e_u092_g 1.0000000 0.0000000 0.0000000 0.8000000 0.4000000 LineageWeapons.rangesample 0.7000000 0.4000000 0.4000000 12.0000000 0.0000000 0.0000000 4 -1 -1 -1

 

 

só 1 pergunta, pq o meu não tá tudo junto igual o seu exemplo, tipo, tem separações !!! olha o meu aí em cima !!!

Link para o comentário
Compartilhar em outros sites

AMIGO KELVYN

fazer a dual em si, pra mim é facil, oq esta pegando é a dual vesper, pois eu posso criar uma dual qualquer e colocar o nome de vesper dual,+++ nao é isso que todos que postaram nesta pagina querem, se fizerem isto a vesper nao vai ter akele efeito que as demais weapons vesper tem,seria uma dual comum, eu ja tentei add a vesper ++ nao da, pois ela tem "ex:m00;m00;t00;t00;t01,t01...........................m00;m00;t00;t00,(t01;t

01) ESTA Q DA ERRO NA HORA DE CRYPITAR

 

seria enterançante vc que entende +++++++ do que eu, encinar as pesoas como elas criam suas propias texturas,ai elas poderiam criar uma textua em cima do animation da vesper

A humildade faz o Homem ser diferento dos animais!

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

Este turturia ta legal mais nau entendi muito....

 

tipo minha dual vesper ta com texturas bugadas

...queria pega ela e mudar armas que compoem ela so muda as armas...

queria por a Vesper Cutter... como eu faria isso??

tentei varia svezes mais esqueminha de cor nau entendi.... nau explicava o que era cada cor ^^...

 

segue ai minha duvida..

Link para o comentário
Compartilhar em outros sites

Este turturia ta legal mais nau entendi muito....

 

tipo minha dual vesper ta com texturas bugadas

...queria pega ela e mudar armas que compoem ela so muda as armas...

queria por a Vesper Cutter... como eu faria isso??

tentei varia svezes mais esqueminha de cor nau entendi.... nau explicava o que era cada cor ^^...

 

segue ai minha duvida..

 

 

A Dual Vesper esta muito dificil mesmo .. peguei umas fotos dela orig. estou tentando editar mas nao esta fácil ..

 

pq ela sao 2 texturas .. eu tentei de tudo quanto foi geito mas fico faltando aquela parte tipo um sange na espada Vesper Cutter ..

 

se eu conseguir arrumar eu posto ela Aqui .. ;)

Dá uma espiadinha..

 

Que Deus abençoe você e sua família..

Filipenses%2B4.19.jpg

Jesus está voltando, aceite-o e viva sua glória!!

Link para o comentário
Compartilhar em outros sites

bom tentei denovo mais confesso nao entendi esquema de monta a dual..pq so leigo ainda com respeito muita coisa....

 

galera ai vai textura da minha Vesper Cutter que quero transforma em dual... da um help ai alguem que saiba...

 

0 70002 1 1 7 10 0 LineageWeapons.vesper_cutter_m00_wp vesperwp.vesper_cutter_t00_wp vesperwp.vesper_cutter_t01_wp vesperwp.weapon_vesper_cutter_i00 -1 1520 8 1 0 0 1 7 1 1 LineageWeapons.vesper_cutter_m00_wp 2 vesperwp.vesper_cutter_t00_wp vesperwp.vesper_cutter_t01_wp 4 ItemSound.sword_big_1 ItemSound.sword_mid_2 ItemSound.sword_mid_3 ItemSound.public_sword_shing_4 ItemSound.itemdrop_sword ItemSound.itemequip_sword 10 395 170 1 6 8 0 0 0 0 379 0 1 1 1000 0 -1 0 LineageEffect.e_u092_a 0.0000000 0.0000000 0.0000000 1.0000000 1.0000000 LineageWeapons.rangesample 1.4000000 0.6000000 0.6000000 12.0000000 0.0000000 0.0000000 4 -1 -1 -1

 

 

 

essa aki e textura da dual atual que ta com probiemas..ela aparese pelas metade ....

 

0 70016 1 1 6 1 0 LineageWeapons.vesper_cutter_m00_wp LineageWeapons.vesper_cutter_m00_wp vesperwp.vesper_cutter_t00_wp vesperwp.vesper_cutter_t01_wp icon.weapon_dual_sword_i00 vesperwp.weapon_vesper_cutter_i00 vesperwp.weapon_vesper_cutter_i00 -1 1520 8 1 0 0 1 14 3 2 LineageWeapons.vesper_cutter_m00_wp LineageWeapons.vesper_cutter_m00_wp 2 vesperwp.vesper_cutter_t00_wp vesperwp.vesper_cutter_t01_wp 4 ItemSound.public_sword_shing_8 ItemSound.sword_great_4 ItemSound.sword_mid_2 ItemSound.public_sword_shing_4 ItemSound.itemdrop_dualsword ItemSound.itemequip_dualsword 10 445 170 8 6 8 0 0 0 0 325 0 1 1 1000 0 -1 0 LineageEffect.c_u004 LineageEffect.c_u004 2.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 1.0000000 1.0000000 1.3000000 LineageWeapons.rangesample LineageWeapons.rangesample 1.4000000 0.6000000 0.6000000 1.5000000 0.8000000 0.8000000 12.0000000 0.0000000 0.0000000 11.5000000 0.0000000 0.0000000 4 4 -1 -1

Link para o comentário
Compartilhar em outros sites

A minha esta assim, vi num site com a Sirra's Blade ai eu coloquei não sei se é orig. ..

mas nao aparece aquele efeito na Vesper Cutter ..

estou tentando arrumar , assim que conseguir eu posto ..

 

94420947.jpg

Dá uma espiadinha..

 

Que Deus abençoe você e sua família..

Filipenses%2B4.19.jpg

Jesus está voltando, aceite-o e viva sua glória!!

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.