北大侠客行MUD论坛

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

我也请教一个函数

[复制链接]
发表于 2009-6-4 05:16:34 | 显示全部楼层 |阅读模式
借用来的题目,其实是想请教一个模块。

谁手头有把中文数字转换成阿拉伯数字的zmud 模块? 想用来自动存钱。
谢谢
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-6-4 06:14:07 | 显示全部楼层
触发:
^(*)两白银~(Silver~)

执行:
str=%1" "
str=%replace( @str, "万", "*10000+")
str=%replace( @str, "千", "*1000+")
str=%replace( @str, "百", "*100+")
str=%replace( @str, "十", "*10+")
str=%replace( @str, "零", "")
str=%replace( @str, "一", "1")
str=%replace( @str, "二", "2")
str=%replace( @str, "三", "3")
str=%replace( @str, "四", "4")
str=%replace( @str, "五", "5")
str=%replace( @str, "六", "6")
str=%replace( @str, "七", "7")
str=%replace( @str, "八", "8")
str=%replace( @str, "九", "9")
str=%replace( @str, "+*", "+1*")
str=%replace( @str, "+ ", "")
#show @str = %eval( @str)

先把中文串转为四则运算式,然后用 %eval 计算式子
Log:
你身上带著下列这些东西(负重 76%):
一千二百六十四两白银(Silver)
1*1000+2*100+6*10+4  = 1264

[ 本帖最后由 duno 于 2009-6-4 06:20 AM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-6-4 06:16:34 | 显示全部楼层
上面的是思路,实际用的时候可以省略中间变量 @str 的声明,减少变量名占用
作用一样,只是压缩写成表达式形式,不占用全局变量
#show result : %eval( %replace( %replace( %replace( %replace( %replace( %replace( %replace( %replace( %replace( %replace( %replace( %replace( %replace( %replace( %replace( %1" ", "万", "*10000+"), "千", "*1000+"), "百", "*100+"), "十", "*10+"), "零", ""), "一", "1"), "二", "2"), "三", "3"), "四", "4"), "五", "5"), "六", "6"), "七", "7"), "八", "8"), "九", "9"), "+*", "+1*"))

表达式方式就可以写在变量的值中,把变量作为自定义函数用了

[ 本帖最后由 duno 于 2009-6-4 02:53 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-6-4 08:49:47 | 显示全部楼层
想简单点直接cun all silver就是
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-6-5 04:57:40 | 显示全部楼层
谢谢,回头把模块输入。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-6-5 04:57:59 | 显示全部楼层
原帖由 lkyun 于 2009-6-4 08:49 AM 发表
想简单点直接cun all silver就是


哈哈,还有这么一招的啊。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-10-28 11:05:31 | 显示全部楼层
如过只是“十九两”的话就不会计算,前面多了个*
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-10-28 12:44:22 | 显示全部楼层
直接alias cunall  cun all silver;cun all gold;cun all coin;cun all cash
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-10-28 23:50:59 | 显示全部楼层
不仅仅是为了存钱啊,还有别的用处
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-1-4 07:47:01 | 显示全部楼层
原帖由 killunix 于 2009-10-28 11:05 AM 发表
如过只是“十九两”的话就不会计算,前面多了个*

str=" "%1" "
str=%replace(@str,"万","*10000+")
...
str=%replace(@str,"+ ","")
str=%replace(@str," *","")
#show 囧 = %eval(@str)
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 04:58 PM , Processed in 0.011514 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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