北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 6681|回复: 4

zmud 462 颜色触发案例

[复制链接]
发表于 2017-8-12 16:24:42 | 显示全部楼层 |阅读模式
本帖最后由 oolong 于 2017-8-12 10:41 PM 编辑

最近写了一个公孙止任务辅助。里面用到一些颜色触发的基础。
zmud 462 中颜色字符基本都是乱码的,所以需要截取下来才能分析出来。
当然每人有各自的写法,这里抛砖引玉提出我的机器思路。
首先需要标准化得到的乱码字符串。目标格式:
a --颜色a 的替代字母
b --颜色b 的替代字母
c --其他乱码颜色的替代字母
大概会变成这样
a?     c?c?c? b? c? a? c? c?
为啥要标准化?因为我要根据颜色字符位置判断要截取实际中文的位置。不是标准化的不好截取和判断中文大小。

具体代码如下:

需要变量
含字符的信息:gszrawline
不含字符的信息:gszline

#var gszrawline %replace(@gszrawline,%copy(@gszrawline,1,1),e);
#var colora %copy(@gszrawline,7,2);
#var temp2 %copy(@gszrawline,1,12);
#var temp %copy(@temp2,4,1);
#var gszrawline %replace(@gszrawline,e[0m,);
#var gszrawline %replace(@gszrawline,@temp2,a);
#var gszrawline %replace(@gszrawline,%concat(e[1,@temp,@colora,m),a);
#var gszrawline %replace(@gszrawline,%concat(e[0,@temp,@colora,m),a);
#var gszrawline %replace(@gszrawline,e[1m,c);
#if %pos(m,@gszrawline)>2 {#var colorb %copy(@gszrawline,%eval(%pos(m,@gszrawline)-2),2);
#var gszrawline %replace(@gszrawline,%concat(e[1,@temp,@colorb,m),b);
#var gszrawline %replace(@gszrawline,%concat(e[0,@temp,@colorb,m),b);
#var gszrawline %replace(@gszrawline,%concat(%copy(@temp2,1,6),@colorb,%copy(@colorall,9,4)),b)} {#var colorb 0};
#sh %len(@gszrawline);
#unvar colora;
#unvar colorb;
#var gszwugong "";
#if %numwords(@gszrawline,a)>%numwords(@gszrawline,b) {#loop %numwords(@gszrawline,b)-1 {#var temp %word(%word(@{gszrawline}a,%i+1,b),1,a);
#var temp2 %eval(%len(%word(@gszrawline,1,b@temp))/2);
#var temp %eval(%len(b@temp)/2);
#var gszwugong %additem(%copy(@gszline,@temp2+1,@temp),@gszwugong);
};
#unvar temp;
#unvar temp2;
} {#loop %numwords(@gszrawline,a)-1 {#var temp %word(%word(@{gszrawline}b,%i+1,a),1,b);
#var temp2 %eval(%len(%word(@gszrawline,1,a@temp))/2);
#var temp %eval(%len(a@temp)/2);
#var gszwugong %additem(%copy(@gszline,@temp2+1,@temp),@gszwugong);
};
#unvar temp;
#unvar temp2;
};
#unvar gszrawline;
#unvar gszline;
#var gszwugong %replace(@gszwugong,|,);
#sh @gszwugong

输出:gszwugong (未调整格式)

测试机器见附件,有bug通知我。

修订1:
发现一个可能的bug,就是目标字在所有文字结尾出现。修改见红色部分。



北大侠客行MUD,中国最好的MUD

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-8-15 08:10:56 | 显示全部楼层
做这个又啥意义?
难道还有人用zmud
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2017-8-15 12:42:10 | 显示全部楼层
做这个又啥意义?
难道还有人用zmud
pkugumu 发表于 2017-8-15 12:10 AM



    用zmud 462 的多得很,我就是其中一员
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2018-2-6 11:20:47 | 显示全部楼层
受教~,佩服佩服!
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2018-2-6 14:23:39 | 显示全部楼层
本帖最后由 bbye 于 2018-2-8 07:56 AM 编辑

有些时候第一个字就是目标字,加一句即可解决:
加在:
#var gszrawline %replace(@gszrawline,%concat(e[0,@temp,@colorb,m),b);
之后:
#var gszrawline %replace(@gszrawline,%replace(@temp2,@colora,@colorb),b);
另外发现了一些问题,都处理了一下,见新帖:

http://www.pkuxkx.net/forum/viewthread.php?tid=43138
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-6-11 10:18 PM , Processed in 0.010552 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表