找回密码
 注册
搜索
查看: 1174|回复: 6

【修复公版】关于中文数字转换罗马数字的问题

[复制链接]
门派:古墓派
发表于 2019-1-8 07:30:02 | 显示全部楼层 |阅读模式
发现公版的转换函数有问题,score超过十万,或者身上10~20gold,都会导致机器人获取数值时,数字转换错误。

修正如下,请用下面的代码替换原来的trans函数,函数在shujian中。

这个会对机器人运行有影响,比如身上gold多了会去存,少了会去取等等。

还是silver,同样的道理。好了,说完了,希望大家喜欢!


  1. function trans(num)
  2.         if not num then
  3.                 return 0
  4.         end
  5.         local _, _, wan, other = string.find(num, "^(.-)万(.*)$")
  6.         local result = 0
  7.         if wan then
  8.                 result = result + trans0(wan) * 10000
  9.                 num = other
  10.         end
  11.         result = result + trans0(num)
  12.         return result
  13. end

  14. function trans0(num)
  15.         num = string.gsub(num,"^十(.*)$","一十%1")
  16.         num = string.gsub(num,"零十","一十")
  17.         num = string.gsub(num,"零","")
  18.         local result = 0
  19.         local numbers = {"一","二","三","四","五","六","七","八","九"}
  20.         for k,v in pairs(numbers) do
  21.                 num = string.gsub(num,v,k)
  22.         end
  23.         local units = {["0|"] = "十", ["00|"] = "百", ["000|"] = "千"}
  24.         for k,v in pairs(units) do
  25.                 num = string.gsub(num,v,k)
  26.         end
  27.         for v in string.gmatch(num,"(%d+)") do
  28.                 result = result + v
  29.         end
  30.         return result
  31. end
复制代码

评分

2

查看全部评分

门派:武当派
发表于 2019-1-8 21:15:43 | 显示全部楼层
感谢小猪猪的分享。robot越来越完善了。
门派:古墓派
 楼主| 发表于 2019-1-8 23:06:33 | 显示全部楼层
kjrwd@tj 发表于 2019-1-8 21:15
感谢小猪猪的分享。robot越来越完善了。

不客气,大家多交流,多分享哈
门派:武当派
发表于 2019-1-8 23:56:04 | 显示全部楼层
joyce@tj 发表于 2019-1-8 23:06
不客气,大家多交流,多分享哈

应该是向你多请教才对,我只是个半桶水的水平。。
门派:古墓派
 楼主| 发表于 2019-1-9 00:20:43 | 显示全部楼层
kjrwd@tj 发表于 2019-1-8 23:56
应该是向你多请教才对,我只是个半桶水的水平。。

我也是一瓶子不满的水平,哈哈
门派:神龙教
发表于 2019-2-12 17:03:14 | 显示全部楼层
这个是加在shujian.lua里面吗?
门派:神龙教
发表于 2019-2-12 21:12:06 | 显示全部楼层
我一改就出现错误啊。一版红色的字
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-9 01:46 , Processed in 0.037450 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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