Menu voice command

    
  1. Atsijungęs

    Julius

    Pranešimai: 0

    4 Vasario 2013 - 18:52 / #1
  2. 
  3. Atsijungęs

    maugllis

    Administratorius

    Pranešimai: 542

    So I've been receiving pms this week on how to do a voicedcommand with a textbuilder html so I decide to do this rlly quick on l2jfrozen its pretty basic idea atm but you could just extend it i just leave it like this in order to ppl add their own stuff.

    ### Eclipse Workspace Patch 1.0
    #P L2jFrozen_GameServer
    Index: head-src/com/l2jfrozen/gameserver/handler/voicedcommandhandlers/HtmCmd.java
    ===================================================================
    --- head-src/com/l2jfrozen/gameserver/handler/voicedcommandhandlers/HtmCmd.java	(revision 0)
    +++ head-src/com/l2jfrozen/gameserver/handler/voicedcommandhandlers/HtmCmd.java	(revision 0)
    @@ -0,0 +1,153 @@
    +package com.l2jfrozen.gameserver.handler.voicedcommandhandlers;
    +
    +
    +import javolution.text.TextBuilder;
    +
    +
    +import com.l2jfrozen.gameserver.handler.IVoicedCommandHandler;
    +import com.l2jfrozen.gameserver.model.L2World;
    +import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
    +import com.l2jfrozen.gameserver.network.SystemMessageId;
    +import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage;
    +import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage;
    +
    +
    +/*
    + * @Author Mhoska
    + */
    +
    +
    +public class HtmCmd
    +implements IVoicedCommandHandler
    +{
    +private static final String[] VOICED_COMMANDS = 
    +{ 
    +	"menu", 
    +	"mhoska_menu_"
    +};
    +
    +
    +@Override
    +public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
    +{
    +  if (command.equalsIgnoreCase("menu"))
    +  {
    +    showHtm(activeChar);
    +  }
    +  else if (command.startsWith("mhoska_menu_"))
    +  {
    +    String addcmd = command.substring(12).trim();
    +        	 if (addcmd.startsWith("trade"))
    +             {
    +                 int flag = Integer.parseInt(addcmd.substring(5).trim());
    +                 if (flag == 0)
    +                 {
    +                         activeChar.setExchangeRefusal(false);
    +                     activeChar.sendMessage("You can receive trade invitations now");
    +                 }
    +                 else 
    +                 {
    +                         activeChar.setExchangeRefusal(true);
    +                     activeChar.sendMessage("You cant receive trade invitations again");
    +                 }
    +                 showHtm(activeChar);
    +                 return true;
    +             }
    +               
    +             if (addcmd.startsWith("pm"))
    +             {
    +                 int flag = Integer.parseInt(addcmd.substring(2).trim());
    +                 if (flag == 0)
    +                 {
    +                  activeChar.setMessageRefusal(false);
    +                  activeChar.sendPacket(new SystemMessage(SystemMessageId.MESSAGE_ACCEPTANCE_MODE));
    +                 }
    +                 else
    +                 {
    +                 activeChar.setMessageRefusal(true);
    +                 activeChar.sendPacket(new SystemMessage(SystemMessageId.MESSAGE_REFUSAL_MODE));
    +                 }
    +                 showHtm(activeChar);
    +                 return true;
    +             }
    +
    +        }
    +return false; 
    +    } 
    +
    +    	private void showHtm(L2PcInstance activeChar)
    +    	  {    
    +                NpcHtmlMessage MhoskaInfo = new NpcHtmlMessage(activeChar.getLastQuestNpcObject());
    +                TextBuilder Mhoska = new TextBuilder("<html><body>");		
    +				//htm start from here i just didnt decide what am i doing yet.				
    +                Mhoska.append("<html><head><title>L2JHidden Menu v1</title></head><body>");
    +                //elfo's part of the htm
    +				Mhoska.append("<center>");
    +				Mhoska.append("<table width=\"250\" cellpadding=\"5\" bgcolor=\"000000\">");
    +				Mhoska.append("<tr>");
    +				Mhoska.append("<td width=\"45\" valign=\"top\" align=\"center\"><img src=\"L2ui_ch3.menubutton4\" width=\"38\" height=\"38\"></td>");
    +				Mhoska.append("<td valign=\"top\"><font color=\"FF6600\">Menu</font>");
    +				Mhoska.append("<br1><font color=\"00FF00\">"+activeChar.getName()+"</font>, Welcome there are %online% online players at the moment.</td>");
    +				Mhoska.append("</tr>");
    +				Mhoska.append("</table>");
    +				//ends here.
    +				Mhoska.append("<img src=\"l2ui_ch3.herotower_deco\" width=256 height=32 align=center><br>");
    +				Mhoska.append("</center>");
    +				Mhoska.append("<br1>");
    +				Mhoska.append("<table bgcolor=\"000000\">");
    +				//tr that opens gotta clsoe
    +				Mhoska.append("<tr>");
    +				Mhoska.append("<td width=5></td>");
    +				Mhoska.append("<td width=150>Trade Refusal:</td>");
    +				Mhoska.append("<td width=30>%trade%</td>");
    +				Mhoska.append("<td width=35><button width=35 height=15 back=\"sek.cbui94\" fore=\"sek.cbui94\" action=\"bypass -h mhoska_menu_trade 0\" value=\"ON\"></td>");
    +				Mhoska.append("<td width=35><button width=35 height=15 back=\"sek.cbui94\" fore=\"sek.cbui94\" action=\"bypass -h mhoska_menu_trade 1\" value=\"OFF\"></td>");
    +				Mhoska.append("</tr>");
    +				//tr that opens gotta close.
    +				Mhoska.append("<tr>");
    +				Mhoska.append("<td width=5></td>");
    +				Mhoska.append("<td width=150>Msg Refusal:</td>");
    +				Mhoska.append("<td width=30>%pm%</td>");
    +				Mhoska.append("<td width=35><button width=35 height=15 back=\"sek.cbui94\" fore=\"sek.cbui94\" action=\"bypass -h mhoska_menu_pm 0\" value=\"ON\"></td>");
    +				Mhoska.append("<td width=35><button width=35 height=15 back=\"sek.cbui94\" fore=\"sek.cbui94\" action=\"bypass -h mhoska_menu_pm 1\" value=\"OFF\"></td>");
    +				Mhoska.append("</tr>");
    +				Mhoska.append("<br1>");
    +				Mhoska.append("</table bgcolor=\"000000\">");
    +				Mhoska.append("<br1>");
    +				Mhoska.append("<center>");
    +				Mhoska.append("<img src=\"l2ui_ch3.herotower_deco\" width=256 height=32 align=center>");
    +				Mhoska.append("<font color=\"FF6600\">L2JHidden</font>");
    +				Mhoska.append("</center>");
    +				Mhoska.append("</body></html>");
    +                MhoskaInfo.setHtml(Mhoska.toString());
    +                activeChar.sendPacket(MhoskaInfo);
    +                
    +                L2World.getInstance();
    +                int whoisonline = L2World.getAllPlayersCount();
    +                String online = Integer.toString(whoisonline);
    +                MhoskaInfo.replace("%online%", online );
    +                
    +                if (activeChar.getExchangeRefusal())
    +                {
    +                                MhoskaInfo.replace("%trade%", "OFF");
    +                }
    +                else
    +                        {
    +                                MhoskaInfo.replace("%trade%", "ON");
    +                        }
    +                if (activeChar.getMessageRefusal())
    +                        {
    +                                MhoskaInfo.replace("%pm%", "OFF");
    +                        }
    +                else
    +                        {
    +                                MhoskaInfo.replace("%pm%", "ON");
    +                        }                
    +		                       
    +		  }		
    +    @Override
    +	public String[] getVoicedCommandList()
    +    {
    +        return VOICED_COMMANDS;
    +    }
    +}   
    \ No newline at end of file
    Index: head-src/com/l2jfrozen/gameserver/handler/VoicedCommandHandler.java
    ===================================================================
    --- head-src/com/l2jfrozen/gameserver/handler/VoicedCommandHandler.java	(revision 952)
    +++ head-src/com/l2jfrozen/gameserver/handler/VoicedCommandHandler.java	(working copy)
    @@ -28,8 +28,11 @@
     import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.AwayCmd;
     import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.BankingCmd;
     import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.CTFCmd;
     import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.DMCmd;
     import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.FarmPvpCmd;
    +import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.HtmCmd;
     import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.Online;
     import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.StatsCmd;
     import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.TvTCmd;
    @@ -113,6 +116,12 @@
     			registerVoicedCommandHandler(new Online());
     		}
     
    +		registerVoicedCommandHandler(new HtmCmd());
    		
     		_log.config("VoicedCommandHandler: Loaded " + _datatable.size() + " handlers.");
     
     	}
    Index: head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java
    ===================================================================
    --- head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java	(revision 952)
    +++ head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java	(working copy)
    @@ -27,6 +27,8 @@
     import com.l2jfrozen.gameserver.datatables.sql.AdminCommandAccessRights;
     import com.l2jfrozen.gameserver.handler.AdminCommandHandler;
     import com.l2jfrozen.gameserver.handler.IAdminCommandHandler;
    +import com.l2jfrozen.gameserver.handler.IVoicedCommandHandler;
    +import com.l2jfrozen.gameserver.handler.VoicedCommandHandler;
     import com.l2jfrozen.gameserver.handler.custom.CustomBypassHandler;
     import com.l2jfrozen.gameserver.model.L2Object;
     import com.l2jfrozen.gameserver.model.L2World;
    @@ -124,6 +126,7 @@
     			{
     				playerHelp(activeChar, _command.substring(12));
     			}
    +			
     			else if(_command.startsWith("npc_"))
     			{
     				if(!activeChar.validateBypass(_command))
    @@ -286,6 +289,11 @@
     			{
     				CommunityBoard.getInstance().handleCommands(getClient(), _command);
     			}
    +			else if (_command.startsWith("mhoska_menu_"))
    +            {
    +          IVoicedCommandHandler vch = VoicedCommandHandler.getInstance().getVoicedCommandHandler("mhoska_menu_");
    +              vch.useVoicedCommand(_command, activeChar, null);
    +            }
     			else if(_command.startsWith("Quest "))
     			{
     				if(!activeChar.validateBypass(_command))
    


    some ss



    if anyone wants to add something else just try it and ill help you guys, i just want you to learn something, not to have everything done and just c/p the code.

    credits: To me, and elfocrash cos I just steel part of his html troll.
    4 Vasario 2013 - 18:57 / #2