Ir para conteúdo
  • Cadastre-se

L2JBlueHeart ?


vert

Posts recomendados

Hey Guys,

Bom, estou estudando a revisão da JSunrise disponibilizada aqui no fórum;

Decidi criar a BlueHeart porque bem, eu precisava nomear o projeto hahaha.

O intuito do tópico é mais para dar informações/trocar informações com vocês, fiquei em dúvida se criava no off-topic ou aqui.

Sinto falta de jogar um servidor no tempo livre, comecei a jogar a uns 10 anos atrás, joguei por 8 anos, agora trabalho e estudo então sobra pouco tempo, nas minhas ultimas tentativas de jogar L2, eu entrava em um servidor e ele fechava em menos de 1 semana, então cheguei a conclusão de que só estava perdendo meu tempo. Decidi montar um servidor para os players que se sentem como eu se divertirem, algo bem old school; eu joguei vários PvPs e o BrThunder por 8 anos (ele mudou de nome e de crônica várias vezes) mas manteve a essencia do comércio e da jogabilidade (até nos seus ultimos anos, apesar de que acabou perdendo essa essencia infelizmente).

A minha ideia de mexer nessa revisão é montar um 20x o mais próximo de como o BrThunder era, focado no comércio, sem customs, com suporte ativo, etc...

Vou postar aqui as correções que já fiz nessa pack da JSunrise para caso alguém tenha interesse em usar ela, já tenha uma noção do que precisa arrumar ou melhorar...

 

L2JBlueHeart ?

PXnZVMA.png

 

3tZYbpb.png

 

  • Changes & Fixes & Details
XP em Party
  - No trecho do código onde é calculado o xp em party, antes o xp em party era a quantia definida no Rates.ini dividida pelos membros na pt,
    então se a pt tivesse 7 membros e o xp em pt fosse 20x(vezes o xp do mob) (enquando o xp normal é 10x), seria 20 / 7 = 2,85x(vezes o xp do mob),
    e para contornar esse desfalque, se a rate do xp em party fosse aumentada, uma pt de 2 players receberia bem mais e seria injusto, tornando inviável
    um servidor low/mid rate ser balanceado. Agora o xp em pt é multiplicado pela quantidade de pessoas na PT; exemplo: servidor é 20x normal, 1.1x xp em
    party (upar em pt irá render 10% a mais de xp, se fosse 1.6, seria 60%, etc...),
    pois o calculo ficou assim: (xp mob) * (rate xp * rate xp party * quantidade de players na party).
    
Item-mall (Shop Prime)
  - Ele estava duplicando items: se a pessoa já tivesse 1 item do que seria comprado, aí o sistema agia como o esperado e só adicionava,
    caso não tivesse nenhum item, os items eram comprados em várias quantidades, exemplo: não tenho enchant armor S e pretendo comprar 10 no
    shop prime, ele iria me entregar 10 enchant armor S (10) 10 vezes, ficaria com 100 enchants no total. Era uma verificação escrita sem
    atenção e acabou gerando o "bug".
    
Transformação AIO
  - Transformação aio criada, 7 dias e 30 dias (fotos).
 
Voice Command EXP (.exp|.expoff|.expon)
  - O que veio na revisão só funcionava se a configuração do .ccp estivesse ativa, então criei um voice command separado,
    o .exp funciona como um switch (se estiver on, destiva, se estiver off, ativa).

Nevit System
  - O buff do vitality estava ativando com muita frequencia, agora ele ativa de 20 em 20 leveis (apróximadamente), o que é ótimo para os
    players novos e não se torna uma bola de neve para os players avançados.

Beginner's Pack
  - Ao criar um personagem, o mesmo recebe um auxilio do sistema, alguns itens: soulshot, spiritshot, cocktail buff,
    revita pop, armors shadow até a grade A.

 

  • Infos & Configs
Buffs = 20 min
RateXp = 20
RateQuestDrop = 3 // Preciso verificar essa rate, pensei em quests básicas como a de monstone mas não chequei as que dão s84 lá de antharas.
RateDropItemsById = 57,7.5 // (adena 7.5x)
RateCommonHerbs = 0.5
RateHpHerbs = 0.5
RateMpHerbs = 0.5
RateSpecialHerbs = 0.5
RateVitalityHerbs = 0.3
DecreaseSkillOnDelevel = False // Importante para chars de farm, como upar um titan pra 81, add forgotten nele, delevar pra 76 e farmar elemental stone.
MaxLvlDiffCanKeepSkillLvl = 9
AltWeightLimit = 6
AutoLearnSkills = True // Focar no que importa: se divertir
AutoLearnForgottenScrollSkills = False // Um mundo precisa ter comércio, até o L2
MaxBuffAmount = 24
MaxTriggeredBuffAmount = 12
MaxDanceAmount = 12
DanceCancelBuff = True // Allow players to cancel dances/songs via Alt+click on buff icon
AutoLearnDivineInspiration = False // ;)
MagicFailures = True // Está bem tranquilo upar de mago ou de fighter...
AltSubClassWithoutQuests = False // Hello boss de sub
AltTransformationWithoutQuest = False // Hello quest chata de transformação
RestoreServitorOnReconnect = True // Restaura os summons ao reconectar
RestorePetOnReconnect = True // Restaura os pets ao reconectar
EnableVitality = True
MaxSubclass = 3
MaxSubclassLevel = 80
EnchantChanceElementStone = 50
EnchantChanceElementCrystal = 30
EnchantChanceElementJewel = 15
EnchantChanceElementEnergy = 10
AugmentationNGSkillChance = 15
AugmentationMidSkillChance = 30
AugmentationHighSkillChance = 45
AugmentationTopSkillChance = 60
AugmentationNGGlowChance = 0
AugmentationMidGlowChance = 40
AugmentationHighGlowChance = 70
AugmentationTopGlowChance = 100
CraftMasterwork = True
AltMaxNumOfClansInAlly = 3
AltClanMembersForWar = 15
AltLeavePartyLeader = True // Quando o lider da party sai, o próximo membro de torna o lider ao invés de desfazer a pt
UnstuckInterval = 30
AllowDiscardItem = True
AutoDestroyDroppedItemAfter = 600 // 10 min
AutoDestroyHerbTime = 15 // 15 secs
EnableCommunity = False // Por enquanto o community board está desabilitado
HellboundWithoutQuest = False // Hello hellbound

 

As fotos do projeto estão em um post do Imgur, eis aqui o link: https://imgur.com/a/jTjinyw

Bom, ainda não testei tudo na revisão, até mesmo porque é bastante informação pra checar, mas aos que também estiverem mexendo e tiverem encontrado mais algum lugar que precisa de correção ou mudança, é só postar aqui no tópico, vou tentar manter o tópico atualizado com as informações pra vocês.  Sobre as idéias que estou colocando no projeto, por mim tudo bem compartilhar com vocês, afinal, foi aqui que aprendi quase tudo, então estou em casa.

Suportes ativos, tudo balanceado (o máximo possível), ter um server pra sempre se divertir com os amigos, etc... Andei pesquisando e testando, consigo por o servidor online no linux entre 80 a 60 reais ou até menos dependendo da estrutura que eu montar (login, game, banco de dados), a forma do servidor se pagar seria com mana potions, enfeites, etc... Nada que atrapalhasse a jogabilidade, são 200 mana potions por 3 reais, cp potion, etc... Para ganhar dinheiro eu trabalho, o servidor seria pra matar a saudade dos velhos tempos (tanto pra mim quanto pros outros jogadores), gostaria de relembrar a infância em um servidor que não reabrisse todo mês...

 

Para a galera que quer contribuir, testar e se divertir, o servidor de testes está online: download system

Para os que vão contribuir e testar, podem utilizar esse tópico pra reportar bugs e melhorias.

Para os que vão apenas se divertir, pretendo tratar o servidor como um servidor pronto e real (não irei ficar derrubando a máquina toda hora para atualizar), esse é o Alpha Test, então os que jogarem não estarão perdendo tempo pois as participações no Alpha Test e no Beta Test ficarão registradas e receberão alguns brindes no servidor após os períodos de teste.

Como não é um servidor real, não possui site, a criação de conta é in game e estou disponibilizando um Account Panel Manager pra vocês se divertirem.

 

Instruções sobre o ACP: ao deslogar, é preciso vir aqui e clicar no link novamente pra dizer ao painel em qual servidor se conectar, caso queiram deixar o link salvo na barra de favoritos, eis aqui o link completo: http://panel.lineage2.store/login/4EA3-AEB2-F32A-F7A123

Se for feita alguma doação para o servidor através do ACP, uma parte será destinada a pagar a manutenção das máquinas em que o servidor de teste está online e outra parte será convertida em doação aqui para a JBr para auxiliar nos custos de manter o fórum. As moedas serão registradas no banco de dados, e poderão ser transferidas para o game além de serem usadas no shop do ACP. Como teremos os registros delas, elas serão reembolsadas (enviadas sem precisar doar novamente) após o período de testes.

Os períodos do Teste Beta e do Teste Alpha não estão definidos, podendo durar várias semanas ou meses...

O intuito desse projeto não é ganhar dinheiro, mas sim disponibilizar um servidor legal para todos se divertirem, auxiliar na manutenção da JBr como agradecimento pelo conhecimento que adquirimos aqui e trocar informações sobre bug fixes dos que já foram fixados e os que ainda serão;

Qualquer dúvida ou feedback é só postar ;D

 

PS: Irei manter os créditos da JSunrise no core do projeto, não da pra ver na foto que coloquei no tópico, mas mantive todos os créditos, somente adicionei os meus já que estou usando a Sunrise como base.

O que acham da ideia ? Contem um pouco sobre quando vocês jogavam bastante, assim como eu jogava;

Caso o tópico se encaixe em um off-topic, os moderadores podem movê-lo, obrigado;

 

 

https://www.l2jbrasil.com/index.php?/topic/126414-l2jblueheart-?/

Editado por vert
  • Gostei 9
  • Haha 1
  • Amei 2
Link para o comentário
Compartilhar em outros sites


Projeto top,

 

Sunrise tem lá seus bugs que vai se percebendo aos poucos, mas com inciativas como essa dá pra fazer algo extremamente bom e gratis! Parabens ela inciativa, eu até ajudaria mas ainda sou cru no java!

Link para o comentário
Compartilhar em outros sites

Obrigado mano!

Sim sim, eu não tenho muito tempo com ela, são poucos meses, então não sei sobre todas as quests como estão.

Também acompanho o bitbucket da jserver pra ver os fixes que eles fazem e checar na sunrise se é necessário...

Link para o comentário
Compartilhar em outros sites

Parabéns pela iniciativa, meu caro. Terá um grande trabalho pela frente, mas com a cooperação de outros interessados o projeto poderá evoluir. Bom, essa pack da JSunrise é complicada de se mexer, principalmente em quests e skills (quase crônico) e nem se fala na facilidade de DUPES nela, no entanto, nada impossível para se resolver. Estou voltando ao l2 por agora, em menos de 6 meses, já joguei 4 ou 6 servidores (HI5) que ruiram em questão de meses... falta um ótimo servidor HI5 para brincarmos rsrs

Link para o comentário
Compartilhar em outros sites

8 horas atrás, xRodox disse:

se precisar de ajuda pra testes to por aqui, to querendo abrir um servidor sem custom low rate ja a algum tempo, estava ate testando algumas coisas do l2jsunrise!! Boa iniciativa sua esta de parabens!!

Beleza fera, preciso sim!

Mandei mensagem pro Grundor e estou aguardando ele responder; mas já estou preparando uma máquina (@TurtleLess se dispôs a auxiliar pagando a máquina), 

7 horas atrás, helpsv disse:

Parabéns pela iniciativa, meu caro. Terá um grande trabalho pela frente, mas com a cooperação de outros interessados o projeto poderá evoluir. Bom, essa pack da JSunrise é complicada de se mexer, principalmente em quests e skills (quase crônico) e nem se fala na facilidade de DUPES nela, no entanto, nada impossível para se resolver. Estou voltando ao l2 por agora, em menos de 6 meses, já joguei 4 ou 6 servidores (HI5) que ruiram em questão de meses... falta um ótimo servidor HI5 para brincarmos rsrs

Obrigado fera, te entendo, se a galera se empenhar em ajudar, acredito que dê pra deixar ele bem legal pra todos brincarem, e o melhor de tudo é que ele não vai ficar fechando e abrindo, vai ficar ligado lá pra galera sempre poder ter server pra se divertir;

 

Ainda hoje ou amanhã posto o link do servidor de teste pessoal;

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

26 minutos atrás, xRodox disse:

Vert mandei uma msg no privado pra você ?

Opa campeão, desculpe a demora, acabei vendo a notificação e esqueci de abrir a mensagem depois, vou lhe responder lá

Link para o comentário
Compartilhar em outros sites

Para a galera que quer contribuir, testar e se divertir, o servidor de testes está online: download system

Para os que vão contribuir e testar, podem utilizar esse tópico pra reportar bugs e melhorias.

Para os que vão apenas se divertir, pretendo tratar o servidor como um servidor pronto e real (não irei ficar derrubando a máquina toda hora para atualizar), esse é o Alpha Test, então os que jogarem não estarão perdendo tempo pois as participações no Alpha Test e no Beta Test ficarão registradas e receberão alguns brindes no servidor após os períodos de teste.

Como não é um servidor real, não possui site, a criação de conta é in game e estou disponibilizando um Account Panel Manager pra vocês se divertirem.

 

Instruções sobre o ACP: ao deslogar, é preciso vir aqui e clicar no link novamente pra dizer ao painel em qual servidor se conectar, caso queiram deixar o link salvo na barra de favoritos, eis aqui o link completo: http://panel.lineage2.store/login/4EA3-AEB2-F32A-F7A123

Se for feita alguma doação para o servidor através do ACP, uma parte será destinada a pagar a manutenção das máquinas em que o servidor de teste está online e outra parte será convertida em doação aqui para a JBr para auxiliar nos custos de manter o fórum. As moedas serão registradas no banco de dados, e poderão ser transferidas para o game além de serem usadas no shop do ACP. Como teremos os registros delas, elas serão reembolsadas (enviadas sem precisar doar novamente) após o período de testes.

Os períodos do Teste Beta e do Teste Alpha não estão definidos, podendo durar várias semanas ou meses...

O intuito desse projeto não é ganhar dinheiro, mas sim disponibilizar um servidor legal para todos se divertirem, auxiliar na manutenção da JBr como agradecimento pelo conhecimento que adquirimos aqui e trocar informações sobre bug fixes dos que já foram fixados e os que ainda serão;

Qualquer dúvida ou feedback é só postar ;D

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

20 minutos atrás, TurtleLess disse:

Boa campeão com certeza estarei lá para ajuda-lo ?

Obrigado mano!

11 minutos atrás, Onã disse:

Já estou jogando meu caro..

vou reportar o que achar..

Obrigado fera!

Beleza, qualquer coisa pode postar aqui no tópico o/

Edit: Se puder reportar como está o game (lag, ping, etc..) ficarei bem feliz;

Tem o comando ".ping" que ele faz um ping e mostra o resultado

 

 

Edit²: Aproveitando o post pra dar umas dicas:

Armas D e C e B, peguem as shadows (no lvl 20 ganha uns tickets pra trocar por arma shadow, no 40 também se não me engano), no 52 é preciso comprar, mas é baratinho;

Para conseguir uma adena extra, vendam os SS's que não usarem, vai ajudar bastante no inicio ;D

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

Agora, vert disse:

Obrigado mano!

Obrigado fera!

Beleza, qualquer coisa pode postar aqui no tópico o/

Voce ainda tem duvidas sobre as quests de jobs?

ou vamos ter que fazer-las mesmo?

Lineage 2 Lords

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Onã disse:

Voce ainda tem duvidas sobre as quests de jobs?

ou vamos ter que fazer-las mesmo?

Eu acredito que elas estão funcionando 10/10;

Quem quiser fazer as quests pra testar, pode fazer; Quem não quiser, pode comprar os items da primeira e da segunda job lá em gludio, perto da GK (perto do manor de sementes);

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

2 minutos atrás, vert disse:

Eu acredito que elas estão funcionando 10/10;

Quem quiser fazer as quests pra testar, pode fazer; Quem não quiser, pode comprar os items da primeira e da segunda job lá em dion, perto da GK (perto do manor de sementes);

Me desculpe, mas eu só achei 2 npcs, um de Delevel e outro Premium Manager..

em dion..

Lineage 2 Lords

Link para o comentário
Compartilhar em outros sites

28 minutos atrás, Onã disse:

Me desculpe, mas eu só achei 2 npcs, um de Delevel e outro Premium Manager..

em dion..

Sim sim, a revisão está com os customs desativados, a ideia é utilizar o Shop Prime, por enquanto só tem coisas simples como enchants, elemental stones, alguns enfeites e varias potions (como mana potions);

Em dion tem delevel e premium manager enquanto giran tem a wedding manager;

 

Edit: O item de AIO ainda não está no shop prime, então é preciso usar as poções e criar os personagens pra upar, a melhor forma de começar o game é com o personagem principal + 1 prophet + 1 blade dancer

 

Vou colocar uma staff de buff no seu char pra você testar ela, beleza!

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

Agora, vert disse:

Sim sim, a revisão está com os customs desativados, a ideia é utilizar o Shop Prime, por enquanto só tem coisas simples como enchants, elemental stones, alguns enfeites e varias potions (como mana potions);

Em dion tem delevel e premium manager enquanto giran tem a wedding manager;

beleza, mas em qual npc compro os itens pra jobs? eu nao achei

Lineage 2 Lords

Link para o comentário
Compartilhar em outros sites

Agora, vert disse:

@Onã deixei o char 'Test' logado e sentado na frente dela, qualquer coisa, teleporta pra Gludio e digita: /target Kiara

ata @vert em gludioo, voce tinha falado dion rs

49 minutos atrás, vert disse:

Eu acredito que elas estão funcionando 10/10;

Quem quiser fazer as quests pra testar, pode fazer; Quem não quiser, pode comprar os items da primeira e da segunda job lá em dion, perto da GK (perto do manor de sementes);

 

Lineage 2 Lords

Link para o comentário
Compartilhar em outros sites

7 minutos atrás, vert disse:

Perdão mano!

Vou corrigir lá, eu estava pensando em dion por algum motivo, desculpe!

estou testando as dancas do aio, e elas so funcionam com dual..

talves alterando para Dual no navicat, elas funcionarão..

Lineage 2 Lords

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.