Ir para conteúdo
  • Cadastre-se

[GRACIA-FINAL][L2JSERVER] Skill Player Menu


Rafael FBS

Posts recomendados

Bom, estou tentando criar uma skill que tenha um player menu AiO (GMSHOP, BUFF, TP, ETC).

 

Mas como não sou nem programador, ae fica dificil ^^.

 

Vou dexar aqui o que eu consegui fazer e qria a ajuda de vcs pra continuar esse "projeto".

 

Script SkillHandler "OpenPlayerMenu.java" (data/scripts/handlers/skillhandlers):

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

Obs: Creio que dê pra colocar um skilltype qqer (ao invés de criar uma skilltype nova no core) e entaum por algo parecido com isso:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

Dpois criei uma skill qqer no xml com id = 9010 e coloquei skilltype como OPEN_MENU (criei no core), adicionei ela no client, e funcionou. Abriu uma janela no L2.

 

 

Mas aew que tá o problema, bypass como "bypass -h npc_%objectId%_algumacoisa" nao funcionam. Comandos de admin funcionam, se vc tiver permissão. Foi entaum que pensei em criar comandos de admin com permissão 0, ou então criar outro CommandHandler.. tipo um EtcCommandHandler. Só que fiquei empacado nessa parte.

 

Qual dica vcs podem me dar? ou alguem que esta disposto a me ajudar possa me dar uma luz aqui. Acho que fui até alem do alcance do meu conhecimento :rolleyes:

 

Conto com a ajuda de vcs... bom jogo e L2JBrasil na veia ^^.

 

:vlw_l2jbr:

Link para o comentário
Compartilhar em outros sites


qndvc clica na skill aparece uma janela..

c nao da pra bupass

crie um botao e redireciona para o merchante ..

ai ja coloka outros tbm como buffer, classmaster, subclass etc,,

 

fikaria massa.

account_tiny.gif

svn | timeline

activeMember.sendMessage("Quase tudo é possível quando se tem dedicação e habilidade. Grandes trabalhos são realizados não pela força, mas pela perseverança")

Link para o comentário
Compartilhar em outros sites

Mas desvio de html é feito por bypass tbm, o maximo que vc deve conseguir e fazer abrir uma janela com informações.

"In a way, the supernatural is what's behind the curtain. Normally, you only need to see what's happening on stage. That's how reality works. If you don't know then it's for the best. Actually, learning about the supernatural only increases the number of things you don't know."'

Link para o comentário
Compartilhar em outros sites

Você pode tentar algo parecido com isso:

 

package net.sf.l2j.gameserver.handler.itemhandlers;

 

import net.sf.l2j.Config;

import net.sf.l2j.gameserver.handler.IItemHandler;

import net.sf.l2j.gameserver.GameServer;

import net.sf.l2j.gameserver.cache.HtmCache;

import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;

import net.sf.l2j.gameserver.handler.IItemHandler;

import net.sf.l2j.gameserver.model.L2ItemInstance;

import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance;

 

 

 

/**

* @author Cobra

*

*/

public class Item implements IItemHandler

{

private static final int[] ITEM_IDS = { 99999 };

 

public void useItem(L2PlayableInstance playable, L2ItemInstance item)

{

if (!(playable instanceof L2PcInstance))

return;

L2PcInstance activeChar = (L2PcInstance)playable;

int itemId = item.getItemId();

 

if (itemId == 10639)

{

String htmFile = "data/html/mods/chatitem.htm";

String htmContent = HtmCache.getInstance().getHtm(htmFile);

 

NpcHtmlMessage infoHtml = new NpcHtmlMessage(1);

infoHtml.setHtml(htmContent);

activeChar.sendPacket(infoHtml);

}

}

public int[] getItemIds()

{

return ITEM_IDS;

}

}

Link para o comentário
Compartilhar em outros sites

Gente.. acho q soh bypass de npc e quest q nao funcionam (de quest nao tenho certeza, nao tentei e ainda nao sei fazer um script de quest hehe). Mas como ja disse comando como "bypass -h admin_admin" funcionam.

 

Mas desvio de html é feito por bypass tbm, o maximo que vc deve conseguir e fazer abrir uma janela com informações.

 

Creio que uma forma mais facil (nao pra fazer, e sim pra adicionar opcoes dpois) seria criar um CommandHandler novo, e entaum adicionar comandos (algo assim: "menuplayer_buff" entaum eu passaria como "bypass -h menuplayer_buff skillID skillLVL"). Tornaria mais pratico.

 

Edit: Descobri como funciona parte do AdminCommandHandler. A única coisa q eu nao descobri ainda é como que o servidor reconhece o "//" como sendo "admin_".

 

:vlw_l2jbr:

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

Fuuuncionooouu.. consegui criar um CustomCommandHandler. Vou tentar explicar aki:

 

No codigo:

 

Primeiro crie um arquivo java dentro do "net.sf.l2j.gameserver.handler" chamado CustomCommandHandler com este codigo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

e outro arquivo java também dentro do "net.sf.l2j.gameserver.handler" com nome ICustomCommandHandler com esse codigo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

Dpois altera o RequestBypassToServer do "net.sf.l2j.gameserver.network.clientpackets" com esse code:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

No data:

 

Vá no seu "data/scripts/handlers" e crie uma pasta com nome "customcommandhandlers", e crie uma arquivo chamado CustomBuffs.java com este codigo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

Agora adicione estas linhas no MasterHandler.java:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

Dpois disso vc pode usar esse comando pra buffar: "bypass -h custom_buff SkillID SkillLvl" (onde SkillID é a ID do buff e SkillLvl é o lvl da skill :rolleyes: )

 

Obs: usei no script o "useMagic()" então as animacoes das skills aparecem ^^.

 

Aew com isso eu consegui fazer meu PlayerMenu hehe.. funcionando perfeitim. Qualquer duvida com relação ao tópico manda pm que eu tento esclarecer.

 

Pra adicionar mais commandos é soh criar outro script handler, ou entao pode agrupar por tipo (ex: se for um comando de buff adiciona ele nos strings do CustomBuffer e poe um "if (command.startsWith("custom_seucomandodebuff"))". Usa a imaginação hehehe

 

Ainda nao sei como faz pra criar um comando do tipo "//" ou alguma outra coisa como "*". dpois eu procuro. creio que seja essas strings aki:

 

private static final String _C__6E_REQUESTGMCOMMAND = "[C] 6e RequestGMCommand";

 

se alguem souber posta aew ou manda pm.

 

:vlw_l2jbr:

Link para o comentário
Compartilhar em outros sites

Eita cara parabens , depois vc podia tentar fazer conexao com uma tabela da DB pra simplificar o modo de como adicionar os buff's

"In a way, the supernatural is what's behind the curtain. Normally, you only need to see what's happening on stage. That's how reality works. If you don't know then it's for the best. Actually, learning about the supernatural only increases the number of things you don't know."'

Link para o comentário
Compartilhar em outros sites

Da uma olhada nos npcs buffer que fazem isso, pode te ajudar...

"In a way, the supernatural is what's behind the curtain. Normally, you only need to see what's happening on stage. That's how reality works. If you don't know then it's for the best. Actually, learning about the supernatural only increases the number of things you don't know."'

Link para o comentário
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...




×
×
  • 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.