网上找到一个罗技的xml格式的永劫无间鼠标宏,但是现在的罗技的驱动一般都是ghub,好像导入不了xml格式的驱动,用java写了一个转换代码,把罗技的xml格式的鼠标宏转到按键精灵。之前写的万能宏脚本就是用的按键精灵,之前用按键精灵的同学可以拿下这次转换后的脚本,不过这次需要你自己手动新建下脚本。
xml鼠标宏截图
按键精灵脚本
从上面张图片可以看出 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;
}
}
转换后的脚本
永劫无间万能宏 按键精灵使用说明
1.打开按键精灵 点击新建脚本
2.点击切换源文件模式
3.打开转换后的脚本 把这一段复制到按键精灵 注意不要复制name
4.然后修改下文件名及描述,点击保存 如果出现 您的脚本已经顺利通过语法检查,说明脚本没有错误,保存成功。
5.关闭脚本编写界面回到主界面 勾选有效,设置启动按键,终止按键,就可以到游戏中使用了
转换的脚本有:
一键飞爪
•一键单发长剑剑气
•一键右键蓄力振 右键按住
•一键跳振刀
•一键闪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下劈
•一键双发长剑剑气
•一键太刀二次滑步+蓄力斩
•一键太刀一次滑步+蓄力斩
评论区