Ir para conteúdo
  • Cadastre-se

Painel Administrativo - PHP + OOP


vert

Open Source  

10 votos

  1. 1. Se o projeto se tornar Open Source, vocês trabalhariam no desenvolvimento ou apenas utilizariam para beneficio próprio ?

    • Ajudaria
      4
    • Apenas Utilizaria
      0
    • Ambos
      6

  • Please sign in to vote in this poll.

Posts recomendados


Parabéns Vert, ta ficando muito bom.

Algumas coisas não vão funcionar 100% como você ta querendo, mas a maioria vai funcionar legal.

 

Algumas dicas:

  1. No sistema de tickets, faça a organização dos tickets com status "Aguardando" por cima dos que já foram respondidos ou que já foram encerrados.
  2. Na opção "Gatekeeper", não deixe tantas opções, tipo, vc pode colocar cidades, vilas e areas farms, mas coloca tudo em um unico select. Se você deixar separado os players não vão entender, player de L2 é F***. ^^ Tem que facilitar tudo ao máximo.
  3. Na opção de "Destravar char" não tem a necessidade de aparecer o input com o login do player, só o select com o nome dos chars.
  4. Também na opção de "Destravar char" vi que você usa o seguinte "<option value="Administrador">Administrador</option>", procure trabalhar com o charId/obj_Id da tabela characters, é mais seguro pra filtrar o metodo POST que você está usando. (Contra SQL inject)
  5. No "Shop" e no "Shop pacotes" ao invés de colocar um FORM para fazer a compra, utilize um link ou um botão só com uma URL, por exemplo: "painel.php?m=shop&t=confirmarcompra&id=1" assim pelo ID do item ou ID do pacote que você está vendendo você puxa as informações do banco de dados, você não precisa mandar as informações pelo FORM, isso é só mais uma brecha para os safados tentarem burlar o sistema do painel. :D

Isso foi o que eu pude ver no pouco tempo que eu loguei la pra dar uma testada.

Caso tenha alguma dúvida ou não tenha entendido o que eu tentei explicar me chama lá no skype.

 

Sobre o layout, eu achei que está ótimo, está como eu gosto, simples e objetivo. "Sem fru fru fru"

 

Parabéns.

Abraço. ;D

 

 

 

Link para o comentário
Compartilhar em outros sites

 

Opa Ivan,

O de tickets você se refere ao do painel admin ?

Na gk eu entendi, vou arrumar, eu queria que ficasse organizado, tenho até algo em mente em como deixar organizado hahaha.

O destravar eu vou corrigir, muito obrigado (já implantei a proteção em todos os form's e url's *--*),

No shop eu pensei em colocar em outra pagina pra confirmar, pois muito player "leigo" pode clicar por curiosidade e já comprar o item ( se tiver os créditos é claro ) e pode causar problemas pro administrador do servidor, aí com uma parte no módulo pra ele confirmar, ele não vai poder dizer que "foi sem querer".

 

O que mais me deu trabalho foi o:

 

http://projetos.dani...min&t=nprodshop

 

(digitar o nome e ele preencher com os dados correto dos itens) hahaha.

 

Muito obrigado,

Fique sempre de olho, eu te aviso quando atualizar ;)

Abraço *-*

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

vert, agora retiro meu comentário de "skin simples demais". Agora sim o negócio tá bonito! :P

E tá ficando bom, rapaz!! Parabéns mesmo!

 

As sugestões do Ivan acima são bem válidas.

 

Sobre a venda de itens, vai ter tipo alguma interação com Pagseguro ou algo assim?

Tou dando uma lida bem por cima, pq tou numa correria do caramba. Não estou conseguindo acompanhar tudo como deveria, me desculpe.

"O tamanho dos teus sonhos deve sempre exceder a tua capacidade atual para alcançá-los.
Se os teus sonhos não te assustam, eles não são grandes o suficiente." - Ellen Johnson

Link para o comentário
Compartilhar em outros sites

Obrigado maninho,

 

Sim sim, o Ivan me ajudou com uns detalhes desnecessários do painel que eu não havia percebido =D

 

Eu acabei de atualizar o tópico e o painel de demonstração, a unica coisa que o administrador vai ter que fazer, é confirmar a doação e add os créditos na conta dos players ( Módulo Shop - Admin ).

 

Sem problemas, sei que é uma correria, inclusive eu estou em uma correria tensa kk, estou aproveitando os dias que não tenho aula+curso+estágio e os fins de semana pra mexer no painel.

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

  • 4 weeks later...

 

Obrigado maninho o/

To trabalhando em uma novidade pro painel que vou postar logo logo =D

Espero novas atualizações !

Eu não respondo dúvidas e nem pedidos por MP e nem por nenhum outro meio de contato !


Link para o comentário
Compartilhar em outros sites

Graaande Danii, sempre arrepiando em man?

Vir que você me mandou daquele dia e tal, saquei...

Cara, tas colocando pra F#!@

Segue firme amigo, tamo junto

 

@off topic

To tentando voltar aos poucos hehe, e da inicio aquela minha arte que lhe falei. (Faculdade começou...ta meio osso)

 

tmj!!

Keep your head up.

 

 

 

Link para o comentário
Compartilhar em outros sites

Ótimo, no aguardo

 

 

Logo terminarei o sistema de upload e de post, estou estudando ajax para fazer algo o mais dinâmico possível =D

 

Graaande Danii, sempre arrepiando em man?

Vir que você me mandou daquele dia e tal, saquei...

Cara, tas colocando pra F#!@

Segue firme amigo, tamo junto

 

@off topic

To tentando voltar aos poucos hehe, e da inicio aquela minha arte que lhe falei. (Faculdade começou...ta meio osso)

 

tmj!!

 

Obrigadoo maninhoo o//

 

O que precisar, é só me dar um toque no face ;) =D

Link para o comentário
Compartilhar em outros sites

  • 3 months later...

Como anda o desenvolvimento do PAINEL, o que falta pra ele funcionar em FREYA?

 

PARABENS, BELO TRABALHO.

Meu Objetivo: Programador JAVA - Ter experiência e levar isso para vida e como trabalho, e claro para poder fazer belos projetos.

Programador Php, Ajax, Flash e etc... - Ter experiência o suficiente para ajudar os outros entre outros projetos privados.

Link para o comentário
Compartilhar em outros sites

Como anda o desenvolvimento do PAINEL, o que falta pra ele funcionar em FREYA?

 

PARABENS, BELO TRABALHO.

 

Olá, eu estou postando as atualizações que fiz nele nesse ultimo mês,

Nessas férias irei termina-lo.

 

Para funcionar em Freya ele só precisa ser adaptado ( farei essa adaptação mais em breve pois também quero adapta-lo para Hi5 )

Link para o comentário
Compartilhar em outros sites

Bem bacana!

 

Dei uma olhadinha e tal, de cara só teria 2 coisas que eu mudaria:

 

1 - A cor da fonte dos inputs na tela de login (não dá pra ler letra branca em fundo branco);

2 - o efeito de fadeIn do conteúdo do painel (é meio chato ficar esperando), ou pelo menos diminuir a duração do efeito.

 

PS.: O login não funciona quando a tecla enter é pressionada. Recomendo desativar a tecla ou acionar um trigger no botão "logar" quando for pressionada.

 

O restante até agora tá bem legal. Parabéns =)

Editado por mend3
8cp1z10.png
Link para o comentário
Compartilhar em outros sites

Bem bacana!

 

Dei uma olhadinha e tal, de cara só teria 2 coisas que eu mudaria:

 

1 - A cor da fonte dos inputs na tela de login (não dá pra ler letra branca em fundo branco);

2 - o efeito de fadeIn do conteúdo do painel (é meio chato ficar esperando), ou pelo menos diminuir a duração do efeito.

 

PS.: O login não funciona quando a tecla enter é pressionada. Recomendo desativar a tecla ou acionar um trigger no botão "logar" quando for pressionada.

 

O restante até agora tá bem legal. Parabéns =)

 

Entendo, obrigado pelas sugestões, na verdade foi um deslize meu a cor das letras, logue no painel ( pelo google chrome ) e salve a senha, depois deslogue e observe a cor que ficará ^_^

 

Já o efeito fadeIn, eu andei pensando, vou terminar TODAS (ênfase no todas) as funções do painel e depois irei passa-lo para esse layout:

 

http://works.danielbarion.com/NLayt/

 

O painel atual está com 103 Mb (muitos psd's e arquivos de documentação dos plugins implementados ainda estão na pasta do painel - 36 Mb é só a Sql da database completa da L2jfrozen rs), ao passar pro novo layout, quero diminuir pra torno de 20 Mb no máximo.

 

Obrigado ^_^, na próxima atualização que eu postar, será corrigido \o/

 

Edit: Notei que seria dificil para os membros logarem se eu deixasse pra corrigir só na proxima atualização, então tomei 15 segundos e já arrumei, só o fadeIn que não vou mexer (já que logo trocarei de layout).

 

//Edit: Oks Mend3, vou corrigir o problema do enter, que está indo direto para o botão voltar ao aperta-lo, vou providenciar na proxima atualização ^_^

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

Vert ta ficando muito dahora esse Painel.

paguei pal :aplausos:

 

Obrigado maninho ^_^

 

 

 

 

//Tópico atualizado 05/01/2015

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

  • 5 weeks later...

 

Obrigado maninho ^_^

 

 

 

 

//Tópico atualizado 05/01/2015

meus parabéns cara, ta ficando muito bom mesmo... pretendo fazer um sistema e talvez ( por que não ) coloca-lo dentro do seu...

Gosta de comédia? Veja meu canal no Youtube :D


http://bit.ly/neMON

Link para o comentário
Compartilhar em outros sites

meus parabéns cara, ta ficando muito bom mesmo... pretendo fazer um sistema e talvez ( por que não ) coloca-lo dentro do seu...

 

Obrigado ^_^

 

#Curioso, qual sistema ?

 

Eu tenho mais algumas idéias ( estão anotadas no meu cell ), porém só vou coloca-las na V2.0 (isso quando eu fizer), quero encerrar logo esse projeto, já vai pra quase 2 anos fazendo ele no tempo vago :)

Link para o comentário
Compartilhar em outros sites

  • 5 weeks later...
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.