Ir para conteúdo
  • Cadastre-se

[Tutorial]Fazendo seu forum phpbb3


pioneer

Posts recomendados

Introdução:

 

O phpBB3 foi totalmente reprogramado desde a sua versão anterior o phpBB2.0.x. Entre tantas novas alterações tanto na estrutura quanto nas opções a instalação do mesmo foi refeita, e de uma forma bastante diferente dos seus antecessores. Neste tutorial tentarei explicar de uma forma bem simples e direta como instalar um phpBB3.

 

 

Baixando o seu phpBB

 

Você pode baixar o phpBB3 no seguinte endereço(com a tradução)

Link

 

 

 

Extraia o phpBB3 e envie para o seu FTP. A tradução você deve enviar para dentro da pasta /language/ do phpBB3

 

Instalando o phpBB3

 

Agora que você já enviou os arquivos do phpBB3 para o seu FTP ou pasta local. Você deve acessar o mesmo pelo seu navegador. Estou rodando o mesmo localmente em um servidor apache, no meu caso o endereço é HTTP://127.0.0.1/phpbb/phpBB3 como consta na imagem. Você será redirecionado automaticamente para a instalação do phpBB3.

installa301.jpg

 

Clique no caixa de seleção Select language (seta vermelha) e selecione o idioma Portuguese [brazil] (Seta verde) e após clique em Change (Seta Azul).

 

installa302.jpg

 

Após clique em Instalar (seta vermelha). Você será redirecionado para a tela que consta abaixo, que contem os dados necessários para continuar a instalação. Certifique-se que você tem em mãos todos os dados solicitados e clique no botão Ir para o Próximo Passo (seta vermelha)

O idioma português brasileiro será carregado na instalação, conforme na imagem.

 

installa303.jpg

 

No próximo passo será feita uma analise do seu servidor verificando a possibilidade da instalação do phpBB3. Na imagem abaixo a tela com as suas devidas explicações. Vou fazer alguns comentários de algumas que considero importante ou que merecem um comentário além do fornecido na instalação.

 

installa304.jpg

 

Quadro 1: Neste quadro estão algumas exigências básicas mais relativas ao php e suas funções.

 

register_globals: está opção tem causado grande polemica no PHP. Ela está desativada por padrão e as novas versões do PHP não a terão. A maioria dos servidores desativa esta opção, o phpBB3 irá funcionar perfeitamente, mas recomenda-se uma atenção especial para ela principalmente se for instalar MODs que normalmente não são muito testados e podem causar sérias quebras de segurança.

 

allow_url_fopen: Alguns servidores desabilitam esta opções por considerarem uma quebra de segurança. E realmente é, caso o site tenha sido mal programado está opção pode servir para enviar scripts maliciosos para o servidor e prejudicar outros clientes, mas não precisa se preocupar, isso somente ocorre em casos extremos e o phpBB3 não é um deles. Ela permite ao php fazer conexões externas ao servidor. Muito útil para verificar dados como ips utilizado por bots na hora do registro e para verificar avatares.

 

Quadro 2: O phpBB3 utiliza UTF-8 como formato de codificação de seus textos, por isso é necessário que o PHP dê o suporte necessário para que o phpBB3 manipule estes dados corretamente, a MBSTRING realiza este papel.

 

Quadro 3: Banco de Dados, você deve ter pelo menos 1 opção de banco de dados disponível nesta listagem. O phpBB3 conta com uma programação com camadas e possui a sua própria DBAL (Database Abstract Layer), ou seja, ele possui suporte a diversos banco de dados. Até mesmo os que não foram incluídos no pacote oficial podem ser adicionados posteriormente. A maioria dos servidores PHP possuem Mysql e ela provavelmente estará disponível, neste caso recomendo utilizar o Mysqli que é uma biblioteca do PHP otimizada para as versões mais novas do Mysql e lhe trará melhores resultados em performance.

 

Quadro 4: Módulos Opcionais. Como o nome já diz, são opcionais, mas são interessantes de se ter disponíveis. Suporte a ZIP liberará uma série de opções que facilitaram a sua vida de administrador principalmente quando se trata de backups, Suporte a biblioteca GB permitirá o seu phpBB3 fazer todas as suas opções quando se trata de manipulação de imagens.

 

Quadro 5:Arquivos e Diretórios. Neste quadro se deve dar uma atenção especial, você provavelmente trombara com ele interrompendo a sua instalação. Mas ele realmente é importante, você deve dar o CHMOD 777 nestas 3 pastas, todas elas se fazem importantes.

 

cache/ está pasta é fundamenta para o funcionamento do phpBB3. O sistema cria um cache de vários arquivos do sistema para evitar processamento do servidor, armazenando templates processadas e algumas consultas mais padrões ao banco de dados entre outras. FUNDAMENTAL.

 

files/ está pasta ficarão armazenados todos os anexos enviados pelos seus usuários ao fórum. Caso você queira utilizar os anexos é necessário CHMOD nesta pasta.

 

store/ está pasta é mais voltada a área administrativa. Nela ficarão armazenados todos os backups gerados entre outros dados extraídos no painel de adminstração.

 

Quadro 5: Arquivos e diretórios Opcionais. É interessante você dar o CHMOD 777 nestes dois itens, no config.php somente até terminar a instalação, após isso pode remover o CHMOD 777.

 

Config.php: arquivo com as configurações do banco de dados, ele deverá ser alterado no final da instalação, dando o CHMOD 777 você deixará o phpBB3 fazer isso automaticamente.

 

/images/avatars/upload/: Dê o CHMOD 777 caso queira habilitar a opção de envio de avatares para o seu servidor.

 

 

Por fim

Se no final desta tela aparecer o botão Iniciar Instalação, o seu servidor e as suas configurações atendem as necessidades do phpBB3, caso contrario dê uma revisada na tela, provavelmente serão os CHMODS. Clique em Iniciar Instalação.

 

installa305.jpg

 

Nesta tela você deve configurar o phpBB3 para fazer a conexão com o seu banco de dados.

 

Tipo de Banco de Dados: Aqui serão listados todos os banco de dados do phpBB3 que o seu servidor suporte. DICA: se ele tiver suporte a Mysql e Mysqli, utilize Mysqli.

 

Nome do Servidor do Banco de Dados / DSN: Somente altere este campo caso o DNS do seu servidor seja diferente do padrão que normalmente é localhost. Caso o do seu servidor seja outro verifique o com o suporte do mesmo. Alguns servidores utilizam o domínio do site como DNS por exemplo.

 

Porta do Servidor do Banco de Dados: É raro um servidor alterar a porta padrão de conexão com o banco de dados, caso não saiba consulte com o suporte do seu servidor.

 

Para mais detalhes dos 3 próximos campos, leia o tutorial Criando um Banco de Dados, lincado no inicio do tutorial

 

Nome do Banco de Dados: Aqui você deve informar o nome do banco de dados que você pretende destinar ao phpBB3.

 

Nome de Usuário do Banco de Dados: Nome do usuário com permissão de acesso ao banco de dados informado no campo acima. DICA: caso esteja rodando localmente o usuário normalmente é root,

 

Senha do Banco de Dados: Senha do usuário informado no campo acima. DICA: caso esteja rodando localmente a senha normalmente é nada, ou seja, deixe o campo em branco.

 

Prefixo das tabelas no Banco de Dados: Prefixo que o phpBB3 irá utilizar na criação das tabelas, por padrão é o phpbb_, mas você pode alterar para qualquer outro, ele será utilizado no inicio dos nomes das tabelas criadas pelo sistema.

 

 

Por fim

 

Após informar todos os dados clique em Ir para o Próximo Passo. O phpBB3 tentará realizar uma conexão com o banco de dados selecionado com os dados informados. Caso ele tenha êxito ele mostrará uma tela informado o mesmo, clique no botão Ir para o Próximo Passo, caso contrario, volte para a tela do banco de dados, verifique os dados de conexão com o DB e tente novamente.

 

installa306.jpg

 

Nesta tela você deve informar os seus dados que servirão futuramente para acessar o painel de administração. Recomendo inserir um e-mail seu válido, pois o phpBB3 envia um e-mail informando os dados do seu fórum junto com o usuário e senha desse usuário que você cadastrar. Após informar todos os dados corretamente clique no botão Ir para o Próximo Passo. Será exibida uma tela com a verificação dos dados informados, caso esteja tudo correto clique novamente em Ir para o Próximo Passo, caso contrario volte corrija os dados e tente novamente.

installa307.jpg

 

Nesta tela serão mostradas as opções relativas ao config.php. Como eu dei o CHMOD 777 nele no inicio ele foi configurado automaticamente como mostrado na tela, caso você não tenha dado o CHDMO poderá optar por fazer as alterações manualmente ou baixar o arquivo gerado e pelo phpBB3 e enviar por FTP manualmente. Após concluído este passo clique em Ir para o Próximo Passo

 

installa308.jpg

 

Nesta tela estão as configurações avançadas do seu servidor. A principio você não precisa se preocupar com elas, pois elas já vem por padrão configuradas do modo mais funcional, a menos que tenha alguma alteração importante a fazer, nada que não possa ser alterado futuramente no Painel de Administração.

 

Quadro 1: Configurações de e-mail. A maioria dos servidores tem suporte a função mail() do PHP, ela por si já faz todo serviço de envio de e-mails. Caso o seu servidor não possua suporte ao mesmo, você deverá informar os dados do seu servidor SMTP nesta tela. Mais informações a respeito do SMTP no tutorial SMTP lincado no inicio deste tutorial.

 

Quadro 2: Configurações de URL. Caso seu servidor esteja devidamente configurado, você nem precisará alterar estas opções, somente se o mesmo não estiver fazendo os redirecionamentos corretamente, ai você deverá habilitar a opção Forçar Configurações de URL do Servidor, mas isso pode ser alterado posteriormente pelo Painel de Adminsitração.

 

Após verificar todos os dados clique no botão Ir para o Próximo Passo

 

installa309.jpg

 

Nesta fase o phpBB3 irá criar todas as tabelas necessárias para o seu funcionamento no banco de dados, e exibira o resultado da sua construção nesta tela. Clique em Ir para o Próximo Passo para finalizar a instalação.

installa310.jpg

 

 

 

installa311.jpg

 

Bem vindo ao Painel de Administração do phpBB3. Note no quadro vermelho na imagem está exibindo uma mensagem pedindo para você excluir a pasta install do FTP do seu site. Você deve fazer isso para que os usuários possam navegar pelo seu fórum.

 

Tutorial By:Z3u5

 

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

Apenas um aprendiz

Link para o comentário
Compartilhar em outros sites


Bom, só faltou isso:

 

[size=4]
[b][center]Proibida a reprodução mesmo que em partes desse tutorial sem a publicação dos devidos créditos de criação
[url="http://www.ufmg.br/prpq/LegPICT&IT.html"]
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[/url][/center][/b][/size]

 

vou colocar mas dá proxima não esquece ;)

Link para o comentário
Compartilhar em outros sites

Como faz para se registrar e para alterar as configurações de Admin?????

 

ta dando um erro ao se registrar :"O domínio do endereço de e-mail escrito não é um registro MX válido."

 

Obrigado.

O respeito demonstra um sentimento positivo de estima por uma pessoa ou para uma entidade!!!

Link para o comentário
Compartilhar em outros sites

SÓ NAO ENTENDO 1 COISA !!!!!!

COMO PODE EXISTIR GENTE QUE DÁ QUOTE DESTE TAMANHO, DEVE SER PRA PIRRAÇAR!!!

POSTA APENAS QUE GOSTOU, NAO PRECISA FAZER ISSO!!!

:wacko:

 

 

PIONEER, PARABÉNS, ÓTIMO TUTORIAL!!!!!! ^_^ ;)

Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...
SÓ NAO ENTENDO 1 COISA !!!!!!

COMO PODE EXISTIR GENTE QUE DÁ QUOTE DESTE TAMANHO, DEVE SER PRA PIRRAÇAR!!!

POSTA APENAS QUE GOSTOU, NAO PRECISA FAZER ISSO!!!

:wacko:

 

 

PIONEER, PARABÉNS, ÓTIMO TUTORIAL!!!!!! ^_^ ;)

estou certo que este tuto ficou otimo mas tb estou convencido de que nao é preciso ser expert nem conhecer de programação para criar um forum, eu usei o serviço dos forumeiros e não me arrependi, é o melhor e gratis, nao foi preciso pagar alojamento e portanto tenho meu dominio, e tem mais vantagens, vejam:

sistema de reputação

RPG

varios tipos de phpbb,

invision ou pnbb e o melhor é que podemos mudar de uma versão a outra sem pagar a mais por isso...

edição de templates e css personalizável

agora ate fizeram um perfil avançado onde podemos colocar comentários e super bacana...

 

e ainda, tem mais de 3000 temas... qualquer um pode criar!

 

Abraços e boa sorte

Link para o comentário
Compartilhar em outros sites

espetaculo

 

sou muito fan do phpbb

acho q ele é o melhor tipo de forum que existe

 

tava justamente pensando em faser um pro meu server

 

 

e tbm mais informaçoes tem aki :

http://www.phpbbrasil.com.br/phpBB/

userbarbleach7fi.jpg18870os3.png

10zn4.png2593.png

milan2tz3.png2795od2.png

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

Nao vo desmerecer o trabalho dele mais CTRL+C >> CTRL+V

TuTorial Instalando Forum em PhPbb3

 

e vai uma dica nao usem este do inicio do forum quando quizerem trocar os tamplate vai da um pau lascado.

Usem este: Versao 3.0.5 mais recente que tem ja com a opcao pra Portugues inclusa.

 

Download do Forum PhPbb3 Mais Atualizado.

 

Como inserir novos Templates vou ensinar num outro Post.

Editado por patricktb

Servidor Lineage II Sem Custom:

Clique aqui

Link para o comentário
Compartilhar em outros sites

  • 5 months later...
  • 1 month later...
  • 1 year later...
  • 1 month later...
  • 10 months later...
  • 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.