2021-10-03

image

网上找到一个罗技的xml格式的永劫无间鼠标宏,但是现在的罗技的驱动一般都是ghub,好像导入不了xml格式的驱动,用java写了一个转换代码,把罗技的xml格式的鼠标宏转到按键精灵。之前写的万能宏脚本就是用的按键精灵,之前用按键精灵的同学可以拿下这次转换后的脚本,不过这次需要你自己手动新建下脚本。

xml鼠标宏截图

1.png

按键精灵脚本

2.png

从上面张图片可以看出 xml格式的鼠标宏按键精灵的区别挺大的,手动改的话很费时间,所以写了个转换代码。

java转换代码

import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class XmlAnalysis {
    public static void main(String[] args) throws DocumentException {
        //1.创建Reader对象
        SAXReader reader = new SAXReader();
        //2.加载xml
        Document document = reader.read(new File(Test.class.getClassLoader().getResource("924.xml").getPath()));
        //3.获取根节点
        Element rootElement = document.getRootElement();
        System.out.println("rootname:"+rootElement.getName());
        Element data = rootElement.element("profile").element("macros");
        //遍历根节点的子节点,用Element对象的elementIterator获取子节点的迭代器
        Iterator<Element> booksIterator = data.elementIterator();
        //遍历迭代器,获取根节点的信息
        while(booksIterator.hasNext()) {
            System.out.println("------开始遍历---------");
            Element book = booksIterator.next();
            //获取book的属性名和属性值
            List<Attribute> bookattributes = book.attributes();
            for (Attribute attribute : bookattributes) {
                if("name".equals(attribute.getName())){
                    //去掉括号
                    System.out.println("name:"+attribute.getValue());
                }
            }
            //遍历book节点子节点,elementIterator得到迭代器
            Iterator it2 = book.elementIterator();
            while(it2.hasNext()) {
                Element a = (Element) it2.next();
                Iterator it3 = a.elementIterator();
                while(it3.hasNext()){
                    Element a1 = (Element) it3.next();
                    //System.out.println("21212:"+a1.getTextTrim());
                    List<Attribute> aattributes = a1.attributes();
                    String tempStr = "";
                    for (Attribute attribute : aattributes) {
                        if("button".equals(attribute.getName())||"direction".equals(attribute.getName())||"value".equals(attribute.getName())){
                            tempStr += attribute.getName()+":"+attribute.getValue()+" ";
                        }
                        if("milliseconds".equals(attribute.getName())){
                            tempStr = "Delay "+attribute.getValue();
                        }
                    }
//                    System.out.println("源:"+tempStr);
//                    System.out.println("目标:"+change2Aj(tempStr));
                    System.out.println(change2Aj(tempStr));
                }
            }
            System.out.println("------结束遍历--------");
        }
    }

    /**
     * 罗技xml 转换成 按键精灵脚本内容
     * @param tempStr
     * @return
     */
    public static String change2Aj(String tempStr){
        String cmdStr = "";
        //判断是否是按键
        if(tempStr.contains("value")){
            String[] strArrays = tempStr.trim().split(" ");
            String tep1 = "";
            String tep2 = "";
            for (int i = 0; i < strArrays.length; i++) {
                if(strArrays[i].contains("direction")){
                    //System.out.println("strArrays[i].split(\":\")[1]:"+strArrays[i].split(":")[1]);
                    if("down".equals(strArrays[i].split(":")[1])){
                        tep1 = "KeyDown ";
                    }
                    if("up".equals(strArrays[i].split(":")[1])){
                        tep1 = "KeyUp ";
                    }
                }else{
                    //获取 key 用:分割 取第二个
                   String key = strArrays[i].split(":")[1];
                   tep2 = key;
                }
            }
            cmdStr = tep1 + "\""+tep2+"\", 1";
            //如果是鼠标点击
        }else if(tempStr.contains("button")){
            String[] strArrays = tempStr.trim().split(" ");
            String tep1 = "";
            String tep2 = "";
            for (int i = 0; i < strArrays.length; i++) {
                if(strArrays[i].contains("direction")){
                    //System.out.println("strArrays[i].split(\":\")[1]:"+strArrays[i].split(":")[1]);
                    if("down".equals(strArrays[i].split(":")[1])){
                        tep1 = "Down ";
                    }
                    if("up".equals(strArrays[i].split(":")[1])){
                        tep1 = "Up ";
                    }
                }else{
                    if("right".equals(strArrays[i].split(":")[1])){
                        tep2 = "Right";
                    }
                    if("left".equals(strArrays[i].split(":")[1])){
                        tep2 = "Left";
                    }
                }
            }
            cmdStr = tep2 + tep1 + " 1";
            //deley 直接输出
        }else if(tempStr.contains("Delay")) {
            cmdStr = tempStr;
        }else{
            cmdStr = "未识别";
        }
        return cmdStr;
    }
}

转换后的脚本

8.png

永劫无间万能宏 按键精灵使用说明

1.打开按键精灵 点击新建脚本

3.png

2.点击切换源文件模式

4.png

3.打开转换后的脚本 把这一段复制到按键精灵 注意不要复制name

5.png

4.然后修改下文件名及描述,点击保存 如果出现 您的脚本已经顺利通过语法检查,说明脚本没有错误,保存成功。

6.png

5.关闭脚本编写界面回到主界面 勾选有效,设置启动按键,终止按键,就可以到游戏中使用了

7.png

转换的脚本有:

一键飞爪
•一键单发长剑剑气
•一键右键蓄力振 右键按住
•一键跳振刀
•一键闪C振刀
•一键通用跳砍
•一键通用振刀
•一键通用升龙
•太刀-升龙斩+下劈连招(海迅电商)
•太刀长剑闪避升龙
•连续按E挣脱金刚抓取
•长剑-升龙斩+下劈连招
•一键匕首跳下劈
•一键匕首金色霸体+C震
•匕首妖刀姬左蓄力+妖刀斩+下劈一套连
•一键匕首金+蓝色滑步霸体
•一键振刀(支持蓄力)海迅电商
•一键通用蓄力闪
•一键长枪太刀单次赶路
•一键长枪太刀双次赶路
•一键龙王破
•长剑-长枪-太刀通用无霸体连招
•长枪+升龙斩+下劈蓄力
•长枪+升龙斩+下劈
•长枪+跳A+下劈
•长枪双A+升龙斩+下劈连招
•长枪-龙王破金色霸体哪吒闹海
•阔刀升龙+空中A+右键斩
•一键C振刀
•一键闪振刀
•按住滑铲跳赶路 手动先跑起来
•长剑连招AA升龙AA下劈
•长枪按住无限上挑
•太刀连招2 A双A 升龙 下劈
•匕首连招1 AA升龙下劈
•阔刀连招1 升龙下劈
•按住吃甲+滑步
•按住吃药+滑步
•一键右键龙王破
•匕首7连 A升龙AA跳AA下劈
•匕首金色滑步+蓄力连招
•太刀-A闪-A闪-升龙AA+跳AA下劈
•太刀连招1 A 双A跳 双A 下劈 右蓄力斩+左冲刺斩
•崔三娘长枪秒人连招
•按住连续下劈 拜年下劈
•火男遮影步后闪3升龙连招
•火男遮影步轰拳A三升龙蓄力斩( 开大跑起来用 海迅电商)
•长剑-A闪-A闪-升龙+右+左+跳AA+下劈
•长枪-龙王破+闹海1下+升龙A下劈
•一键双发长剑剑气
•一键太刀二次滑步+蓄力斩
•一键太刀一次滑步+蓄力斩

下载: 包含破解版按键精灵及转换后的脚本 关注公众号 程序员咩咩 回复 1003 获取 回复时注意不要带空格

鼠标宏 - - 89504e470d0a1a0a0000000d4948445200000030000000300802000000d8606ed0000000097048597300000ec400000ec401952b0e1b00000528494441545885cd984b2c3b5f14c7ef996a3de34d1b1a5a1ba95a908844ac88b0b0a8e7825810c1c22352dd0a36421a2a56363616121261e1950891088285d85858205122ded17854db39bfc5fc7f9331d33badaabfdf77d18cebdc733ff79c73e7de3b8088e45f12f3db0062fd73402101f7743a9dc7c7c7e3e3e3e7e7e72121216b6b6bc121425f625956d4323737979797171111c13bd16ab53efdf829df40425d5d5d9597978ba604003a9dee1780fafbfbbdc638b8407ed5d0ebeb6b6e6eeec9c9894cd2fdaa0f3fe41b0811b55aede3e3a3f45f001044144ebe977d7e7efed3d393bccdf3f37390787cadb2a4a4245a4783c1b0b4b4c4b2ac74197e473e80b8b10180fbe51fe6e7e7830821945c0df5f5f5f1345c2cb907bbdd9e9292128cf478138df4e3e32339399937e3b19a9a9a7e28369ca840e3e3e352fad6d6d68047f2b3daa840393939221a86615e5e5e0206f253d41ababcbc14b51416160af72fa1dc6e7745458552a944443eb95ea552a9666666640ca8110a0911b3ceccccd062fef1f121378640d1d1d1f211a2be183d1e8f68ae898989f2b30f8aa829c35f3ada5223244dd9fdfdfd0fc3102203141b1b2b4ad0c4c484574bae9045c60127979a32b55a7d7777276cd9dcdc74bbddd2c80100c3304545450a8542d80800ebebeb6eb7fb6b44b46a1f1e1e961a9bcd6691192b90d4496262a2c883cf554605723a9df1f1f152a6b6b636798f42c5c5c5050d8865d99e9e1ee2ad1aeeefef85f190d910820ce472b9bc024546466e6c6cc8fb0d3e10a7cece4e69d6784a83c1303d3d7d7777e776bbff2720fcbccb4aa3c5ada6a4a4247f801886f92e10cbb2efefef6ab5da6b9c7844bd5eefb5bbf41da15028e447f471eb0080d0d0d08b8b0bbd5e7f7979e9f59a216dc4bf7bfed9d999e83dc430beae15f2bc4299cd66516078fdcecd1511ed76bbc160100101002d6501e86b9f635253538f8f8fa7a6a6b2b2b2f8fa40449665bfe44746015e3df95e6f6f6f37373784109d4ef78340f8f9248a9483a9b49df3c695b9b40bcd8f50d4947577775badd6ffa8295e00a0b2b2d26ab5a2e04a29a411cd766c6caca3a3431e885ad47abdbeac
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值