找回密码
 注册
搜索
查看: 586|回复: 9

公版脚本支持10万以上黄金显示

[复制链接]
门派:嵩山派
发表于 2020-3-7 20:30:30 | 显示全部楼层 |阅读模式
最近发现公版居然不能正确显示10万以上黄金
看了下发现算法有点问题。所以这里给个小补丁大家
百万,千万可以用同样方法解决
  1. function trans(num)
  2.     local words = {}
  3.     local i = 0
  4.     num = string.gsub(num, "零十", "10 ")
  5.     num = string.gsub(num, "零", "")
  6.     num = string.gsub(num, "一", "1")
  7.     num = string.gsub(num, "二", "2")
  8.     num = string.gsub(num, "三", "3")
  9.     num = string.gsub(num, "四", "4")
  10.     num = string.gsub(num, "五", "5")
  11.     num = string.gsub(num, "六", "6")
  12.     num = string.gsub(num, "七", "7")
  13.     num = string.gsub(num, "八", "8")
  14.     num = string.gsub(num, "九", "9")
  15.     num = string.gsub(num, "十万", "00000 ")
  16.     num = string.gsub(num, "百万", "000000 ")
  17.     i = string.find(num, "十")
  18.     if i == 1 then
  19.         num = string.gsub(num, "十", "10 ")
  20.     else
  21.         num = string.gsub(num, "十", "0 ")
  22.     end
  23.     num = string.gsub(num, "百", "00 ")
  24.     num = string.gsub(num, "千", "000 ")
  25.     num = string.gsub(num, "万", "0000 ")
  26.     for w in string.gmatch(num, "(%w+)") do table.insert(words, w) end
  27.     i = 0
  28.     for p = 1, table.getn(words) do i = i + tonumber(words[p]) end
  29.     return i
  30. end
复制代码

评分

1

查看全部评分

门派:明教
发表于 2020-3-8 12:59:00 | 显示全部楼层
哈哈,替楼主大大补充一下,修改shujian.lua
门派:嵩山派
 楼主| 发表于 2020-3-8 13:56:56 | 显示全部楼层
补充一下,还是不太完美,干脆重写一个解法

  1. function trans(num)
  2.     local words = {}
  3.     local i = 0
  4.     local num2 = 0
  5.     if num:find("万") then
  6.         local idx,e_idx = num:find("万")
  7.         num2 = trans(num:sub(1,idx-1)) * 10000
  8.         num = num:sub(e_idx+1)        
  9.     end   
  10.     num = string.gsub(num, "零十", "10 ")
  11.     num = string.gsub(num, "零", "")
  12.     num = string.gsub(num, "一", "1")
  13.     num = string.gsub(num, "二", "2")
  14.     num = string.gsub(num, "三", "3")
  15.     num = string.gsub(num, "四", "4")
  16.     num = string.gsub(num, "五", "5")
  17.     num = string.gsub(num, "六", "6")
  18.     num = string.gsub(num, "七", "7")
  19.     num = string.gsub(num, "八", "8")
  20.     num = string.gsub(num, "九", "9")
  21.     i = string.find(num, "十")
  22.     if i == 1 then
  23.         num = string.gsub(num, "十", "10 ")
  24.     else
  25.         num = string.gsub(num, "十", "0 ")
  26.     end
  27.     num = string.gsub(num, "百", "00 ")
  28.     num = string.gsub(num, "千", "000 ")
  29.     num = string.gsub(num, "万", "0000 ")
  30.     for w in string.gmatch(num, "(%w+)") do table.insert(words, w) end
  31.     i = 0
  32.     for p = 1, table.getn(words) do i = i + tonumber(words[p]) end
  33.     return i + num2
  34. end
复制代码
门派:嵩山派
 楼主| 发表于 2020-3-8 13:57:29 | 显示全部楼层
简单写了几个测试,都通过了,应该好了
门派:峨嵋派
发表于 2020-3-8 17:58:16 | 显示全部楼层
感谢分享 新接手的兄弟是个高手啊
门派:嵩山派
 楼主| 发表于 2020-3-8 23:05:24 | 显示全部楼层
alphago@tj 发表于 2020-3-8 17:58
感谢分享 新接手的兄弟是个高手啊

谢谢大佬支持,一点小小的帮助而已
门派:少林派
发表于 2020-3-8 23:50:29 | 显示全部楼层
太复杂,看不懂,帮顶一下
门派:桃花岛
发表于 2020-3-15 09:14:05 | 显示全部楼层
顶一下 ,,等有10万以上gold了实际测试下
门派:少林派
发表于 2020-3-15 18:06:23 | 显示全部楼层
同顶一下 ,,等有10万以上gold了实际测试下
门派:武当派
发表于 2020-4-25 06:28:47 来自手机 | 显示全部楼层
太复杂,看不懂,帮顶一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-8 05:48 , Processed in 0.029061 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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