Ir para conteúdo
  • Cadastre-se

[Tutorial] Account Manager Básico


Grundor

Posts recomendados

  • L2JBr ADM

Tutorial Criando um Account Manager Básico para seu Server

 

Material necessário:

Account Manager:

acc.rar

 

 

•Arquivos/Programas necessários:

Easy php escolha um link:

Easy php link 1

 

Easy php link 2

 

Pasta www com os scripts e skins

 

DDNS

 

◘Opcionais:

Photoshop CS3(TRIAL)

Adobe Macromedia Dreamweaver(TRIAL)

 

 

•Tutoriais necessários:

DDNS como instalar configura

 

Tutorial de como montar um site de lineage 2 com scripts pré-configurados.

 

◘Obs: Também pode ser usado o no-ip

 

 

♠Iniciando

 

 

Veja um exemplo de o q é um acm: Página de Testes

 

Obs: eu não tenho esse template ai =/ se alguém conhecer algum site de templates postas ai pro pessoa.

 

Editar config em config.php

 

O básico de sempre né:

$host	= 'localhost';		  >>>>	   nome do host
$user	= 'root';			>>>>	usuário
$pass	= '';				>>>>	senha
$db		= 'l2hell';				>>>>	nome do banco de dados

 

 

 

Adicionando a coluna email à tabela accounts

 

Antes de modificar crie um backup do seu banco de dados.

 

Abra o Navicate vá até seu banco de dados em table clique "execute bat file"

 

Selecione o local aonde está o arquivo db.sql que veio junto com o arquivo .rar do acm

 

Veja a img:

 

executarup4.jpg

 

Pronto tudo ok...

 

agora acesse ele pelo link www.seusite.com.br/acc/

 

Se você receber nenhum erro de script está funcionando 100% ;D e já se pode criar contas pelo seu site.

 

Notas:

 

 

♣Você pode deve colocar a pasta acc dentro de : C:\Arquivos de programas\EasyPHP 2.0b1\www\ caso use o meu tutorial.

♣Dentro de template está o template principal , se você souber mexer em HTML, XML e CSS vai poder modificar o tamanho e tipo das tabelas, fontes e tamanhos de letras etc..

♣Tudo que vem escrito se encontra dentro da pasta C:\...www\acc\language.

♣Está pré configurado para exigir confirmação com uma img mas não exigir confirmação de email porque eu não tinha um server de webmail SMTP e não tava com tempo para usar o gmail como isso....Mas se vc se interessar pode ver nesse tutorial: How to use Gmail as your SMTP server(en)

 

Então deverá seguir isso:

 

2. Ativar o acesso POP em gmail conta que está sendo usado.

3. Mudar em php.ini C:\Arquivos de programas\EasyPHP 2.0b1\conf_files

 

Da um ctrl+f e axa essa linha.. edite dessa forma.

[mail function]
; For Win32 only.
SMTP = tls://smtp.gmail.com
smtp_port = 465

; For Win32 only.
sendmail_from = [email protected]

 

4. config.php changes;

$use_smtp = true;
$smtp_address = 'tls://smtp.gmail.com';
$smtp_port = 465;
$smtp_login = '[email protected]';
$smtp_password = 'mypassword';
$smtp_domain = '';

 

Pronto os players vão ter que fazer confirmação de email.

 

 

 

Créditos:

EU Leonan-Grundor

 

 

 

 

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

  • 1 month later...

  • L2JBr ADM

Não entendi direito.

depende de onde vc vai hospedar.

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

  • 1 month later...
  • L2JBr ADM

Sei que o tutorial mas to com uma duvida..

 

alguém sabe se o gmail mudou alguma configuração?

 

eu não to conseguindo mais usar a função do email.

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

  • 2 weeks later...

Parece que o endereço continua o mesmo, pelo menos ta respondendo...

 

tenta colocar o IP direto e ve se funciona 208.70.188.17

 

se não der, provavelmente tão bloqueando ou agora exige sessão autenticada, não sei porque não testei...

EM BREVE - GALAGARD.COM.BR

SERVIDOR Grand Crusade - 50x

SERVIDOR Classic - 8x

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

achei bem legal esse ACM!

 

mas eu to tendo um erro

 

"Notice: Undefined index: ack in C:\wamp\www\acc\classes\core.class.php on line 138"

 

Linhas:

138 - " $ack = ($_POST['ack'] == 'ack') ? true : false;"

139 - " $ack = ($acka) ? true : $ack;"

 

nao manjo nada de php....

 

se puder me ajudar agradeço!

Link para o comentário
Compartilhar em outros sites

ERRO: "Notice: Undefined index: ack in C:\wamp\www\acc\classes\core.class.php on line 138"

 

Linhas:

138 - " $ack = ($_POST['ack'] == 'ack') ? true : false;"

139 - " $ack = ($acka) ? true : $ack;"

 

 

tanto bati nesse erro e vi que tinha o "==" ali, e é apenas "=" ou seja, fica assim:

 

 

RESOLUÇÃO:"Notice: Undefined index: ack in C:\wamp\www\acc\classes\core.class.php on line 138"

 

Linhas:

138 - " $ack = ($_POST['ack'] = 'ack') ? true : false;"

139 - " $ack = ($acka) ? true : $ack;"

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM

Esse erro foi por causa da sua versão de php.

Obrigado por postar a resolução.

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...
  • 1 month later...

Ola Grundor, vc tem ajudado muito a comunidade de lineage manow gostaria primeiramente de parabenizar e agradeçer antes de mais nada, eu como noob aprendi muita coisa devido aos seus tutoriais manow obrigado por tudo.

 

Agora vamos a minha grande duvida, meu server jah esta no ar configuradinho e o site tb q eu peguei e editei aki mesmo, alem disso comprei um domino .com.br por 1 ano com hospedagem incluida, mas nao consegui colocar nada de php e nem o ACM, seria possivel colocar um ACM no meu site q eh em flash ?? to louco atraz disso pq eh a ultima coisa q me falta, também apesar de o site em flash ter ficodo muito bonito eu ainda preferiria um em php com os scripts para funcionar com o sevrver mas ate agora nao obtive sucesso jah tentei de tudo antes de contratar o .com.br e a hospedagem wamp, appserver e ventrigo mas nada por favor manow se poder me ajudar de alguma forma qualquer q seja serei mais uma vez imensamente grato pela ajuda.

 

Desde jah um muito obrigado ao todos os coloboradores do forum pois como disse me ajudou muito.

 

Aguardo anciosamente a Vsa resposta.

segue abaixo o link do meu site

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

  • L2JBr ADM

Cara em flash... é complicado.. não sei nem se o actionscript suporte esse tipo de coisa...

 

vc tem que por ele em um diretório e usar em separado... ex:

 

seusite/acc

 

ai no caso vc só colocaria um link..

 

e pelo que eu conheço desse site ai não dá não ele é todo em xml para o conteúdo e não tem como fazer um acc só com html como ele aceita..

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

Consegui colocar ele para carregar num diretorio dentro do host do meu site qeh um .com.br, mas mesmo executando o arquivo db.sql nao da comunicação com meu banco de dados aki, nao sei pq sera q eh uma questão de portas ?? oq faço ?? alguem poderia me ajudar?? to me esforçando ao maximo pra isso funcionar.

 

imagemqki.jpg

 

jah tentei isso:

$host = 'warfox.ddns.com.br'; // host database DB

$user = 'root'; // user

$pass = ''; // password

$db = 'l2jdb'; // database name

 

e isso:

$L2JBS_config["mysql_host"]="warfox.ddns.com.br"; // MySQL IP

$L2JBS_config["mysql_port"]=3306; // MySQP port

$L2JBS_config["mysql_db"]="l2jdb"; // l2jdb or your lineage 2 server database name

$L2JBS_config["mysql_login"]="root"; // MySQL Login name

$L2JBS_config["mysql_password"]=""; // MySQL Password

$server_name = 'Private Server'; // server name

$email_from = '[email protected]';

 

obrigado a todos toda ajuda eh bem vinda

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

  • 2 weeks later...
  • 2 months later...

testei aqui,abriu via www.meusite.com/acc

 

Porem quando vo criar a acc e digito a imagem que pede ele sempre fala

 

 

A verificaçã da imagem está errada.

 

 

E mesmo eu sabendo que esta certa

 

 

 

 

EDIT:Agora funcionou, vlw Grundor

 

 

TE AMO

 

 

 

 

 

 

 

 

 

 

 

PS:Grundor sei que e contra as regras pegar carona em topico pra tirar duvida, mas SABE me dizer como eu faria pra criar um LINK redirecionando pra esse ACC?

 

no meu site tem o botao:

 

Registrar, pra qndo clicar nele ele manda pra pagina de account manager?

Editado por Misho

NOVO PC CONFIG

__________________

CPU: Intel® Core™2 Quad Q9550 @ 4.0 GHz (1.328v), E0 stepping

HSF: Zalman 9700 CNPS

Mobo: Gigabyte GA-EP45-UD3R Rev 1.1

GPU: eVGA GTX 295 Co-op Edition @ 676/1457/1194

RAM: G.Skill 8GB (4 x 2GB) DDR2 1066 MHz RAM

HDD: WD Cavier 7,200 RPM 320GB, Seagate Freeagent 1TB

PSU: Corsair TX850w

Case: Antec 900

OS: Windows Vista Ultimate 64 bit SP2

____________________________

Link para o comentário
Compartilhar em outros sites

Consegui colocar ele para carregar num diretorio dentro do host do meu site qeh um .com.br, mas mesmo executando o arquivo db.sql nao da comunicação com meu banco de dados aki, nao sei pq sera q eh uma questão de portas ?? oq faço ?? alguem poderia me ajudar?? to me esforçando ao maximo pra isso funcionar.

 

imagemqki.jpg

 

jah tentei isso:

$host = 'warfox.ddns.com.br'; // host database DB

$user = 'root'; // user

$pass = ''; // password

$db = 'l2jdb'; // database name

 

e isso:

$L2JBS_config["mysql_host"]="warfox.ddns.com.br"; // MySQL IP

$L2JBS_config["mysql_port"]=3306; // MySQP port

$L2JBS_config["mysql_db"]="l2jdb"; // l2jdb or your lineage 2 server database name

$L2JBS_config["mysql_login"]="root"; // MySQL Login name

$L2JBS_config["mysql_password"]=""; // MySQL Password

$server_name = 'Private Server'; // server name

$email_from = '[email protected]';

 

obrigado a todos toda ajuda eh bem vinda

 

Pessoal eu tow com esse mesmo problema e quando eu coloco as configs padrão

 

$host = 'localhost';

$user = 'root';

$pass = '';

$db = 'l2jdb';

 

ele da erro no apache e fecha o wamp :(

 

não sei mais o que fazer

ea4b5.jpg

Um Novo Conceito de Lineage Rule Player

Link para o comentário
Compartilhar em outros sites

Creio que a mensagem e que o site nao esta conseguindo acessar o banco de dados

 

tenta colocar alguma senha no seu MSQL, e a mesma senha do navicat

 

 

no caso do seu banco de dados

NOVO PC CONFIG

__________________

CPU: Intel® Core™2 Quad Q9550 @ 4.0 GHz (1.328v), E0 stepping

HSF: Zalman 9700 CNPS

Mobo: Gigabyte GA-EP45-UD3R Rev 1.1

GPU: eVGA GTX 295 Co-op Edition @ 676/1457/1194

RAM: G.Skill 8GB (4 x 2GB) DDR2 1066 MHz RAM

HDD: WD Cavier 7,200 RPM 320GB, Seagate Freeagent 1TB

PSU: Corsair TX850w

Case: Antec 900

OS: Windows Vista Ultimate 64 bit SP2

____________________________

Link para o comentário
Compartilhar em outros sites

galera to com um probleminha com quanto a gerar imagem de seguranca, ja ouvi falar que e algo com a galeria GD e isso mesmo?

se for como posso arrumar isso? isso e um executavel, aonde eu encontro vlw!

Se der tbm aonde eu encontro a pasta com as tabelas de login pra eu editar e por na home do meu site?

Editado por CalPassos

signpt1.jpg

signpt2.jpgsignpt3.jpgsignpt4.jpgsignpt5.jpg

Link para o comentário
Compartilhar em outros sites

Creio que a mensagem e que o site nao esta conseguindo acessar o banco de dados

 

tenta colocar alguma senha no seu MSQL, e a mesma senha do navicat

 

 

no caso do seu banco de dados

 

 

fiz isso coloquei a senha mais ele naum funciona dos mesmo jeito e da o mesmo erro no apache

e agora naum da mais pra o players fazer acc no meu site pq naum tem e-mail no script aew ele fala que a senha foi cadastrada mais naum funfa

 

help me plzzz!!

 

:esquerda-direita: :direita-esquerda:

 

jah concertei ele naum funciona com wampserver :aaaaaaaffffff:

 

 

valew aewww esse forum e TopBr na ajuda :vlw_l2jbr:

Editado por KhayrusS

ea4b5.jpg

Um Novo Conceito de Lineage Rule Player

Link para o comentário
Compartilhar em outros sites

:esquerda-direita: :direita-esquerda:

 

jah concertei ele naum funciona com wampserver :aaaaaaaffffff:

 

 

valew aewww esse forum e TopBr na ajuda :vlw_l2jbr:

 

vei edita a resposta! oO dois post sem intervalo xD.

 

Galera namoral ajuda ai pra eu arrumar meu problema... pow na imagem de seguranca fica sem nada

oq pode ser isso? por favor aff

Editado por KhayrusS

signpt1.jpg

signpt2.jpgsignpt3.jpgsignpt4.jpgsignpt5.jpg

Link para o comentário
Compartilhar em outros sites

  • 5 weeks later...

Eu crio a conta e da este seguinte erro (eu habilitei o smtp)

 

Warning: fsockopen() [function.fsockopen]: unable to connect to tls://smtp.gmail.com:465 (Unable to find the socket transport "tls" - did you forget to enable it when you configured PHP?) in C:\wamp\www\acc\classes\smtp.class.php on line 10

 

 

Se alguem poder ajudar fico grato!

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 2 weeks later...

Pessoal Use Via No-Ip o meu aki nem erro nu deu

funfo blz so so queria remover akele copyrig 2007 na onde eu troco akilo

creditsbymaycom.png

javaxd.gif

Metas: 100 Post's (X) 300 Post's (X) 700 Post's ( ) -> Monitor ( )

<object width="238" height="250"><param name="flashvars" value="xmlurl=data.xml"></param><param name="movie" value="

http://media.viz.com/widget/kakashi.swf"></param><embed'>http://media.viz.com/widget/kakashi.swf"></param><embed type="application/x-shockwave-flash" src="http://media.viz.com/widget/kakashi.swf" flashvars="xmlurl=data.xml" width="238" height="250"></embed></object>

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
Pessoal Use Via No-Ip o meu aki nem erro nu deu

funfo blz so so queria remover akele copyrig 2007 na onde eu troco akilo

 

 

poxa o que ta para teste é com versão 2009 e esse versão 2007.

 

 

=/ poxa poderiam colocar para baixar a 2009. =/

L2 Spirits 50x

 

 

QUER MOLEZA SENTA NO COLO DO VEIO!!

Link para o comentário
Compartilhar em outros sites

Consegui colocar ele para carregar num diretorio dentro do host do meu site qeh um .com.br, mas mesmo executando o arquivo db.sql nao da comunicação com meu banco de dados aki, nao sei pq sera q eh uma questão de portas ?? oq faço ?? alguem poderia me ajudar?? to me esforçando ao maximo pra isso funcionar.

 

imagemqki.jpg

 

jah tentei isso:

$host = 'warfox.ddns.com.br'; // host database DB

$user = 'root'; // user

$pass = ''; // password

$db = 'l2jdb'; // database name

 

e isso:

$L2JBS_config["mysql_host"]="warfox.ddns.com.br"; // MySQL IP

$L2JBS_config["mysql_port"]=3306; // MySQP port

$L2JBS_config["mysql_db"]="l2jdb"; // l2jdb or your lineage 2 server database name

$L2JBS_config["mysql_login"]="root"; // MySQL Login name

$L2JBS_config["mysql_password"]=""; // MySQL Password

$server_name = 'Private Server'; // server name

$email_from = '[email protected]';

 

obrigado a todos toda ajuda eh bem vinda

 

Amigo vc conseguiu arrumar para conectar asssim por ddns??

L2 Spirits 50x

 

 

QUER MOLEZA SENTA NO COLO DO VEIO!!

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.