Ir para conteúdo
  • Cadastre-se

Painel Administrativo - PHP + OOP


Posts recomendados


e.e meus parabéns, desde 2013 que eu estava esperando sair u.u achei que iria sair nunca kkkkkkkkkk

zoas u.u

 

Falar nisso, depois fala comigo sobre a próxima versão.

Tava pensando, em fazer uma coisa que ninguém ainda fez.

(Juntar o meu projeto privado que você viu, com o seu)

E postar para todos :)

 

Até mas, e aqui, voltemos aos trabalho na L2JBrasil u.u

 

Bora :3

 

Vert to com esse problema ao tentar ter aceso ao painel usando ID admin senha admin

 

 

 

- Disponibilizei o painel na minha hospedagem, então para baixa-lo basta clicar no link.

- Arquivos desnecessários junto com o painel (scripts que eu havia usado porém removi do código e acabei deixando o arquivo junto com o projeto).

- SQL contem a Data Base completa da JFrozen que utilizei no desenvolvimento do painel, porque não separei só as tabelas importantes ?

R: Porquê como eu mencionei para o Kel, o painel deverá ser refeito, então cabe á vocês contribuidores fazerem a separação do que acham necessário.

- Todas as contas do banco de dados estão com a senha "123".

- Toda dúvida relevante (na minha concepção) será respondida (por mim), é claro que todos os membros poderão dar suporte já que o projeto pertence aos membros da JBr.

Eu esqueci de comentar mas o meu painel roda perfeitamente no linux, porém no windows a lógica dele fica pesada para ser executada (no windows você não vai conseguir ver os itens no char...), creio que o shop funcione corretamente no windows.

Por isso eu disse para os membros irem atualizando e refazendo ele de acordo com a necessidade :)

Link para o comentário
Compartilhar em outros sites

ei mano adapta ai pra windows pra nos :D

Não :biggrin:

Estou postando ele para vocês adaptarem, refazerem e compartilharem ele entre si.

A parte difícil eu já fiz não ? ;)

 

@Vert

sera que tem como vc salvar o banco de dados como .psc pos aqui eu executo ele so que ele nao completa todo da erro, ele chega ate a tabela paineladm_usuarios.sql

No linux eu não uso Navicat, poste o erro que irei checar, se eu não conseguir resolver, eu... bem... dou meus pulos pra resolver rs

Link para o comentário
Compartilhar em outros sites

No linux eu não uso Navicat, poste o erro que irei checar, se eu não conseguir resolver, eu... bem... dou meus pulos pra resolver rs

olha a img ai

 

Hhsm2li.png

 

e Depende da hora tem fezes que eu boto para continuar com os erros e ele so executa algumas outras tabelas.

spacer.png

Link para o comentário
Compartilhar em outros sites

 

 

SQL

 

Tente a sql acima, são os mesmos dados porém outra sql, no dia até o painel.zip deu problema e eu tive que reupar, talvez tenha afetado a sql também.

Se não funcionar me avise que tento de outra forma oks.

Link para o comentário
Compartilhar em outros sites

Opa conseguir resolver o problema Vert, eu usei minha hospedagem e executei a sql pelo phpmyadmin vou postar aqui o backup para quem estiver com dificuldades de executar a sql.

 

Download Backup

 

esse outro backup que estou postando e so com os arquivos que achei necessários mas nao sei se ta completo pos ainda estou testando mas vou postar

aqui para que quiser utilizar

 

http://www.mediafire.com/download/2u7gdcv6cf8chay/Backup_Com_Arquivos_necessarios.psc

Editado por WaN202

spacer.png

Link para o comentário
Compartilhar em outros sites

 

Bora :3

 

 

- Disponibilizei o painel na minha hospedagem, então para baixa-lo basta clicar no link.

- Arquivos desnecessários junto com o painel (scripts que eu havia usado porém removi do código e acabei deixando o arquivo junto com o projeto).

- SQL contem a Data Base completa da JFrozen que utilizei no desenvolvimento do painel, porque não separei só as tabelas importantes ?

R: Porquê como eu mencionei para o Kel, o painel deverá ser refeito, então cabe á vocês contribuidores fazerem a separação do que acham necessário.

- Todas as contas do banco de dados estão com a senha "123".

- Toda dúvida relevante (na minha concepção) será respondida (por mim), é claro que todos os membros poderão dar suporte já que o projeto pertence aos membros da JBr.

Eu esqueci de comentar mas o meu painel roda perfeitamente no linux, porém no windows a lógica dele fica pesada para ser executada (no windows você não vai conseguir ver os itens no char...), creio que o shop funcione corretamente no windows.

Por isso eu disse para os membros irem atualizando e refazendo ele de acordo com a necessidade :)

Obrigado Veert por responder.

gostei muito do painel se qual quer hora quiser mexer com ele novamente para que ele possa funcionar em Windows 86-64 Bits conta comigo :boxing:

Link para o comentário
Compartilhar em outros sites

Opa conseguir resolver o problema Vert, eu usei minha hospedagem e executei a sql pelo phpmyadmin vou postar aqui o backup para quem estiver com dificuldades de executar a sql.

 

Download Backup

 

esse outro backup que estou postando e so com os arquivos que achei necessários mas nao sei se ta completo pos ainda estou testando mas vou postar

aqui para que quiser utilizar

 

http://www.mediafire.com/download/2u7gdcv6cf8chay/Backup_Com_Arquivos_necessarios.psc

Obrigado Veert por responder.

gostei muito do painel se qual quer hora quiser mexer com ele novamente para que ele possa funcionar em Windows 86-64 Bits conta comigo :boxing:

 

Muito obrigado a ambos, sobre a sal: Obrigado, vou atualizar o post com o seu link assim que possível.

 

Sobre refazer o painel: Eu agradeço mas não vou mexer na programação dele mais, porém eu e o kenner estamos querendo fazer um painel com todas as funções existentes / sugeridas por vocês aqui no tópico (para ser específico, vamos fazer com base nas funções que esse painel que postei possuir, se fizerem mais e atualizarem o tópico, ai terão a nova versão com mais recursos), o painel será 100% free com funções exclusivas (por assim dizer), a única coisa que pedimos em troca é que continuem esse painel que postei.

O desenvolvimento do outro está previsto para no mínimo 6 meses pois faremos no tempo vago.

 

Também gostaria de pedir desculpa pela ausência aqui no tópico, tive um imprevisto e minha placa mãe queimou, estou dando suporte para vocês através do celular ^-^

 

Tópico atualizado com os links do WaN202.

 

Estou correndo atrás de resolver o problema do meu computador, mas mesmo sem ele eu continuarei dando suporte na medida do possível para vocês.

Se ações como a do WaN202 continuarem por parte de outros membros (organizarem o projeto para si e postarem como ele fez), eu ficarei muito feliz pelo feedback e me esforçarei para ajuda-los e trazer novos trabalhos para todos ^-^

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

  • 3 weeks later...

NAO ESTOU CONSEGUINDO COLOCAR ON AMIGO PODERIA FAZER UMA PEQUENA EXPLICAÇÃO DOS PRIMEIROS PASSOS?

EUU NAO ENTENDI ISSO AQUI

 

<?php
//Diretório do Sistema
define("BASEPATH", dirname(__FILE__)."/");
define("BASEURL", "http://l2****.com/painel/"); //Url do painel;
define("ADMURL", BASEURL."painel.php"); //Diretório do Painel;
define("CLASSESPATH", "classes/"); //Diretório de Classes;
define("MODULOSPATH", "modulos/"); //Diretório de Módulos;
define("CSSPATH", "css/"); //Diretório de CSS's;
define("JSPATH", "js/"); //Diretório de JS's;
define("CLASSESPATH", "classes/"); //Diretório de Classes;
define("MODULOSPATH", "modulos/"); //Diretório de Módulos;
define("CSSPATH", "css/"); //Diretório de CSS's;
define("JSPATH", "js/"); //Diretório de JS's;
Link para o comentário
Compartilhar em outros sites

otimo trabalho vert muito massa sempre!

 

Obrigado Ryu *-*

 

 

NAO ESTOU CONSEGUINDO COLOCAR ON AMIGO PODERIA FAZER UMA PEQUENA EXPLICAÇÃO DOS PRIMEIROS PASSOS?

EUU NAO ENTENDI ISSO AQUI

 

<?php
//Diretório do Sistema
define("BASEPATH", dirname(__FILE__)."/");
define("BASEURL", "http://l2****.com/painel/"); //Url do painel;
define("ADMURL", BASEURL."painel.php"); //Diretório do Painel;
define("CLASSESPATH", "classes/"); //Diretório de Classes;
define("MODULOSPATH", "modulos/"); //Diretório de Módulos;
define("CSSPATH", "css/"); //Diretório de CSS's;
define("JSPATH", "js/"); //Diretório de JS's;
define("CLASSESPATH", "classes/"); //Diretório de Classes;
define("MODULOSPATH", "modulos/"); //Diretório de Módulos;
define("CSSPATH", "css/"); //Diretório de CSS's;
define("JSPATH", "js/"); //Diretório de JS's;

 

 

Olá, eu comentei bem explicadinho para que serve cada configuração, o que você não entendeu ? (seja mais específico por favor, assim posso lhe explicar).

 

 

Desculpem a demora, como comentei acima, eu não estava conseguindo dar suporte devido á minha MB ter queimado, agora estou de volta ^-^

 

Edit: O rapaz me informou por MP que conseguiu resolver o problema (privilégios na pasta da hospedagem).

 

 

Aproveitem o painel, aguardo novas versões feitos por vocês ^-^

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

Boa noite,

Baixei e subi para minha VPS para testar.

A index abre normalmente porém gera erro no apache e quando tento entrar com usuário e senha não acessa diz que usuário e senha está incorrento e não acessa, segue log completo:

 

[Tue Jul 21 21:41:44.357189 2015] [:error] [pid 22439] [client xxx.xxx.xxx.xxx:56064] PHP Notice: Undefined index: logoff in /var/www/html/sb-admin/funcoes.php on line 18df

[Tue Jul 21 21:41:44.357384 2015] [:error] [pid 22439] [client xxx.xxx.xxx.xxx:56064] PHP Notice: Undefined variable: pathlocal in /var/www/html/sb-admin/classes/autoload.php on line 6
[Tue Jul 21 21:41:44.357531 2015] [:error] [pid 22439] [client xxx.xxx.xxx.xxx:56064] PHP Notice: Undefined index: erro in /var/www/html/sb-admin/modulos/usuarios.php on line 75
[Tue Jul 21 21:42:00.059011 2015] [:error] [pid 18787] [client xxx.xxx.xxx.xxx:56066] PHP Notice: Undefined index: logoff in /var/www/html/sb-admin/funcoes.php on line 18, referer: http://www.xxxxxxxxx.com/sb-admin/
[Tue Jul 21 21:42:00.059215 2015] [:error] [pid 18787] [client xxx.xxx.xxx.xxx:56066] PHP Notice: Undefined variable: pathlocal in /var/www/html/sb-admin/classes/autoload.php on line 6, referer: http://www.xxxxxxxxx.com/sb-admin/
[Tue Jul 21 21:42:00.059323 2015] [:error] [pid 18787] [client xxx.xxx.xxx.xxx:56066] PHP Notice: Undefined variable: pathlocal in /var/www/html/sb-admin/classes/autoload.php on line 6, referer: http://www.xxxxxxxxx.com/sb-admin/
[Tue Jul 21 21:42:00.059387 2015] [:error] [pid 18787] [client xxx.xxx.xxx.xxx:56066] PHP Notice: Undefined variable: pathlocal in /var/www/html/sb-admin/classes/autoload.php on line 6, referer: http://www.xxxxxxxxx.com/sb-admin/
[Tue Jul 21 21:42:00.059423 2015] [:error] [pid 18787] [client xxx.xxx.xxx.xxx:56066] PHP Notice: Undefined variable: pathlocal in /var/www/html/sb-admin/classes/autoload.php on line 6, referer: http://www.xxxxxxxxx.com/sb-admin/
[Tue Jul 21 21:42:00.060776 2015] [:error] [pid 18787] [client xxx.xxx.xxx.xxx:56066] PHP Notice: A session had already been started - ignoring session_start() in /var/www/html/sb-admin/classes/sessao.class.php on line 15, referer: http://www.xxxxxxxxx.com/sb-admin/
[Tue Jul 21 21:42:00.061098 2015] [:error] [pid 18787] [client xxx.xxx.xxx.xxx:56066] PHP Notice: Undefined index: erro in /var/www/html/sb-admin/modulos/usuarios.php on line 75, referer: http://www.xxxxxxxxx.com/sb-admin/
[Tue Jul 21 21:42:00.394375 2015] [:error] [pid 22514] [client xxx.xxx.xxx.xxx:56068] PHP Notice: Undefined index: logoff in /var/www/html/sb-admin/funcoes.php on line 18, referer: http://www.xxxxxxxxx.com/sb-admin/
[Tue Jul 21 21:42:00.394718 2015] [:error] [pid 22514] [client xxx.xxx.xxx.xxx:56068] PHP Notice: Undefined variable: pathlocal in /var/www/html/sb-admin/classes/autoload.php on line 6, referer: http://www.xxxxxxxxx.com/sb-admin/
Editado por Hunt3rBR
Link para o comentário
Compartilhar em outros sites

Boa noite,

Baixei e subi para minha VPS para testar.

A index abre normalmente porém gera erro no apache e quando tento entrar com usuário e senha não acessa diz que usuário e senha está incorrento e não acessa, segue log completo:

 

Qual usuário e senha está utilizando ?

Link para o comentário
Compartilhar em outros sites

Qual usuário e senha está utilizando ?

Estou usando minha conta de gm está com access_level 1 no banco.

 

Um detalhe, já tenho o server de L2 rodando, estou usando o banco de dados que já tenho funcionando, configurei no config.php de acordo com meus dados.

 

Na tela de login se clico no botão "cadastrar" nada acontece...

 

Com relação aos erros de variaveis invalidas e tal... Posso ignorar?

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

Simples modificações no painel ...

 

Imgs :

 

 

fmqXRRB.png

 

 

Download

 

Atualizado ^-^

 

Estou usando minha conta de gm está com access_level 1 no banco.

 

Um detalhe, já tenho o server de L2 rodando, estou usando o banco de dados que já tenho funcionando, configurei no config.php de acordo com meus dados.

 

Na tela de login se clico no botão "cadastrar" nada acontece...

 

Com relação aos erros de variaveis invalidas e tal... Posso ignorar?

 

Fez as modificações na tabela accounts ? Qual rev está utilizando ?

O Botão cadastrar é apenas para você redirecionar para o link do seu site de cadastro, não há como cadastrar pelo painel porque cada rev é diferente, tabelas etc...

Variáveis: Sim, principalmente de sessão.

 

 

 

Pessoal, gostaria de deixar claro mais uma vez que o painel está funcional mas o ideal seria refazerem ele, vou explicar os motivos novamente:

*Conexão -> MySql (O ideal é refaze-lo utilizando PDO pois a mysql_ está ultrapassado).

*Ele abre a sessão inúmeras vezes por causa da lógica, o ideal seria fazer todas as funções do CRUD (Create Read Update Delete)

 

^-^

Link para o comentário
Compartilhar em outros sites

 

Atualizado ^-^

 

 

Fez as modificações na tabela accounts ? Qual rev está utilizando ?

O Botão cadastrar é apenas para você redirecionar para o link do seu site de cadastro, não há como cadastrar pelo painel porque cada rev é diferente, tabelas etc...

Variáveis: Sim, principalmente de sessão.

 

 

 

Pessoal, gostaria de deixar claro mais uma vez que o painel está funcional mas o ideal seria refazerem ele, vou explicar os motivos novamente:

*Conexão -> MySql (O ideal é refaze-lo utilizando PDO pois a mysql_ está ultrapassado).

*Ele abre a sessão inúmeras vezes por causa da lógica, o ideal seria fazer todas as funções do CRUD (Create Read Update Delete)

 

^-^

 

Oque na tabela accounts tenho que mudar? Estou usando a rev l2frozen 413

Link para o comentário
Compartilhar em outros sites

 

Oque na tabela accounts tenho que mudar? Estou usando a rev l2frozen 413

 

Crie uma nova db, execute a sql do painel e compare as duas tabelas *-* (até mesmo porque há mais tabelas do painel, um membro disponibilizou só as sql's e eu coloquei no tópico, mas verifique a accounts já que eu não me recordo, afinal faz meses que não mexo mais no painel, apenas dou suporte pra vocês e vocês atualizam ele para vocês mesmos usarem) ^-^

Link para o comentário
Compartilhar em outros sites

esse painel é BURLAVEL ou HACKIAVEL? alguem vai conseguir comprar credito sem ter comprado realmente?

tem segurança isso?

Você leu o tópico todo ?

Testou o painel para tirar todas as suas dúvidas ?

Você tentou "hackear" o painel ?

Você tentou "burlar" o painel ?

 

Eu respondo as três ultimas perguntas que lhe fiz:

Não, Não e Não. Como sei disso ?

Sei que não testou o painel porque se tivesse testado, saberia que não é o player que compra créditos! É feita uma doação e um ticket é aberto, se o administrador confirmar a doação, ele vai na sessão administrativa do painel e insere os créditos na conta do doador.

 

Sei que não tentou "burlar" o painel e muito menos "hackear" porque você nem sequer testou TODAS as funções 1 por 1 como muitos membros fizeram pra saber se o painel é seguro ou não.

 

 

Quero deixar bem explicito que não estou "descontando raiva" em ninguém; Apenas não me agrada que a pessoa me faça pergunta desnecessária e ainda venha digitar mensagem em capslock, eu não sou cego e muito menos analfabeto, quer dar ênfase em algo ? utilize aspas!

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Faltando tabela Table 'shop.tickets'

====================================================

 

 

 

Ocorreu um erro com os seguintes detalhes:
Arquivo: C:\wamp\www\sb-admin\classes\banco.class.php
Rotina: executaSQL
Codigo: 1146
Mensagem: Table 'shop.tickets' doesn't exist
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\wamp\www\sb-admin\classes\banco.class.php on line 134
Ocorreu um erro com os seguintes detalhes:
Arquivo: C:\wamp\www\sb-admin\classes\banco.class.php
Rotina: executaSQL
Codigo: 1146
Mensagem: Table 'shop.tickets' doesn't exist
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\sb-admin\sidebar.php on line 11
Ocorreu um erro com os seguintes detalhes:
Arquivo: C:\wamp\www\sb-admin\classes\banco.class.php
Rotina: executaSQL
Codigo: 1146
Mensagem: Table 'shop.tickets' doesn't exist
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\wamp\www\sb-admin\classes\banco.class.php on line 134
Ocorreu um erro com os seguintes detalhes:
Arquivo: C:\wamp\www\sb-admin\classes\banco.class.php
Rotina: executaSQL
Codigo: 1146
Mensagem: Table 'shop.tickets' doesn't exist
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\sb-admin\sidebar.php on line 17

X-Trap

Link para o comentário
Compartilhar em outros sites

Faltando tabela Table 'shop.tickets'

====================================================

 

Ninguém teve este problema pois eu coloquei minha Data Base toda para download junto com o painel.

Link para o comentário
Compartilhar em outros sites

Ninguém teve este problema pois eu coloquei minha Data Base toda para download junto com o painel.

Estranho eu fis de tudo peguei sua data base nada mesmo erro ptocurei no sql essa tabela nem existe

X-Trap

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.