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

como anda o projeto

 

Parado, só falta testa-lo e corrigir os bugs (se houver).

 

O que preciso para testa-lo ?

R: De um servidor online para implantar esse beta do painel para o dono do servidor e mais algumas pessoas ( pode ser players ) usa-lo durante o teste.

 

Porque não faço isso ?

R: Tempo (auto escola, compromissos pessoais..).

 

Mas ele já está praticamente pronto ^_^

Link para o comentário
Compartilhar em outros sites


Bom, eu achei que a parte de login está, otima, só não entendi o porque do "Voltar"? '-'

No login, basta implementar um background. E perfeito

Uma coisa que eu percebi também na pagina de login, é que há scripts e links css, repitidos, não há necessidade.


Eu entrei no painel, e vi o saldo no canto (left) lá em baixo (bottom) e eu tinha entrado como administrador.


Acho que ele poderia ser no sidebar do topo, perto do administrador, dar um espaço ate acabar o limite do sidebar lateral e colocar o saldo lá.

sidebartop.jpg?1424943233


Não sei se é bug, ou oque que é, eu entrei na conta admin, e gráfico não carregou, e nenhum botão estava funcionando, já quando entrei na conta verth, entrou normalmente...


A ideia de teleporte é ótima, mas só tem uma questão, e no dia da siege? Eu gostava de quando tinhamos que criar um orc para teleportar todos do grupo quando perdiamos a hora da siege, ou ir andando cidades a fora, ficaria meio só ir no site e pronto, teleportado.


na tabela castle, tem os horários da siege, você poderia criar um script, que no dia da siege o teleporte via web, fosse desativado, e assim que terminasse a siege, continuasse funcionando normalmente.


Outra coisa que eu percebi, é que a parte de destravar char, está ali praticamente atoa, se existe o teleporte '-'

Ai você fala, mais se bugar na siege, como vou desbugar?

O teleporte poderia continuar funcionando apenas com as cidades que não estão em siege...


no botão do pagseguro, o link poderia ser target="_blank"


Administração->Painel Char's : Qualquer nome que eu coloque de um player, até inexistente, mesmo assim ele redireciona para a pagina que mostra as informações do char.

Se eu clico em itens, está mostrando que tem 2 itens vesper. '-'




Botão Mudar senha não funciona.



Bom, ainda não dei uma boa olhada, falta algumas funções. Depois olho e falo uehuehueh',

Mais oque já foi feito, está muito bom, como você esta usando bastante o methodo GET, cuidado com sql injection ;)


Ainda quero ver esse painel pronto ^^'

Está de parabéns!

Para que assinatura?

Se tudo que eu coloco é restringido ?

-------------------------------------------------------------------------------------

Está afim de um Painel, totalmente grátis, onde você pode gerenciar seus players,

Clique aqui, Se gosto curte, deu erro ou bugs? Comenta.
Link para o comentário
Compartilhar em outros sites

 

 

Bom dia fera,

 

Sobre a ideia dos scripts da siegge: Eu não havia pensado nisso, obrigado pela correção & sugestão.

Quanto ao background do login: Eu não tenho o dom de designer, sou um quebra galho falido hahaha, eu gostaria de uma ajuda *-*.

Sobre o botão do pagseguro: Obrigado, realmente é necessário =D

Sobre o botão "voltar": Pensei que no caso o botão voltar seria para voltar para a index do site se a pessoa tiver entrado no link do painel por engano ou distração (devo retira-lo?).

Sobre os chars inexistentes: OMG isso é sério *O*

 

Obrigado pelos conselhos, pelas dicas e pela critica construtiva, eu uso uma lista "to do" no meu cell (tipico notepad da playstore) pra me organizar no que falta no painel, vou adicionar tudo isso lá e vou arruma-los, muito obrigado pela ajuda nos testes (realmente ninguém se dispôs em faze-lo, eu já tentei mas como fui o programador e sei a finalidade correta para o que foi projetado, não consigo pensar em "o que fazer de errado").

 

Mais uma vez, obrigado hahaha

 

 

edit: Já anotei as correções para faze-las, quanto a SQL injection, tem proteção, nos formulários também ^_^ (mas preciso testa-lo)

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

  • 1 month later...

Não entendo muita coisa porem, fiquei curioso pra testar .

Kade o Link para Download ? .. :boxing: :boxing:

Eu disponibilizei ele online na minha hospedagem, se for dono de um servidor me avise por MP que eu disponibilizo um sub-domínio pra você testa-lo no seu servidor ^-^

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

Quando o projeto terminar vai ser vendido ou disponibilizado para a galera da l2jbrasil?

Sinceramente ?

A principio eu estava fazendo para postar já que estava com bastante tempo disponível, mas recebi poucos feedback's sobre bug's e melhorias, então não sei ao certo o que vou fazer com o projeto depois de pronto, provavelmente irei encripta-lo e aluga-lo, disponibilizarei de forma gratuita somente quem tem me ajudado nos feedback e no teste, agora mesmo estou falando com o rapaz do post acima, ele disponibilizou tempo, servidor e motivação pra testar o painel.

Link para o comentário
Compartilhar em outros sites

Sinceramente ?

A principio eu estava fazendo para postar já que estava com bastante tempo disponível, mas recebi poucos feedback's sobre bug's e melhorias, então não sei ao certo o que vou fazer com o projeto depois de pronto, provavelmente irei encripta-lo e aluga-lo, disponibilizarei de forma gratuita somente quem tem me ajudado nos feedback e no teste, agora mesmo estou falando com o rapaz do post acima, ele disponibilizou tempo, servidor e motivação pra testar o painel.

Compreendo! parabéns pelo trabalho, e um design impecável.

Link para o comentário
Compartilhar em outros sites

É pelo jeito vai tornar-se "pago" :/

 

Só porque estava esperando desde de 2013 ;-;

 

Nada que um feedback não resolva ;) (porém Kenner e eu estamos fazendo outra versão, em PDO e com design muito mais agradável) ^-^

Compreendo! parabéns pelo trabalho, e um design impecável.

 

Obrigado *-* (porém Kenner e eu estamos fazendo outra versão, em PDO e com design muito mais agradável)

 

 

Sim foi para ambos o post hahaha

Link para o comentário
Compartilhar em outros sites

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