找回密码
 注册
搜索
查看: 592|回复: 5

【闲的蛋疼】改写个checkBags函数

[复制链接]
门派:古墓派
发表于 2021-1-10 23:37:27 | 显示全部楼层 |阅读模式
本帖最后由 joyce@tj 于 2021-1-10 23:38 编辑

感觉更简洁一点,看着舒服点。。。

  1. Bag = {}
  2. weaponUsave = {}
  3. function checkBags(func)
  4.     tmp.hook_checkBags = func
  5.     local cmd = 'id;i;look bei nang;uweapon'
  6.     exe(cmd)
  7.     return checkBags1()
  8. end
  9. function checkBags1()
  10.     local timeout = 1.5
  11.     wait.make(function()
  12.         local l_tmp = ''
  13. --   二十颗川贝内息丸(Chuanbei wan)
  14. --   十九颗蝉蜕金疮药(Chantui yao)
  15. --   十九颗黄芪内息丹(Huangqi dan)
  16.         _,w = wait.regexp ("^(> )*(你身上携带物品的别称如下\\(\\D+\\):|你目前没有自己的私有装备。|你身上带着(\\D*)件东西\\(负重 (\\d*)\\.\\d*\\%\\):|(□|  )(\\D+)(锭|两|张|文|颗)(白银|黄金|壹仟两银票|铜钱|川贝内息丸|蝉蜕金疮药|黄芪内息丹|百花丸|大还丹)\\((\\D+)\\)|\\d*:(\\D*) = (\\D*)|你目前已经拥有了(\\D*)件私有装备:(\\D*)。)$", timeout)
  17.         if w then l_tmp = w[2] end
  18.         if l_tmp ~= '' then
  19.             if string.find(l_tmp,'你身上携带物品的别称如下') then
  20.                 -- 初始化背包
  21.                 Bag = {}
  22.                 return checkBags1()
  23.             elseif string.find(l_tmp,'你身上带着') then
  24.                 local s = trans(w[3]) -- 道具数量
  25.                 local t = tonumber(w[4]) -- 负重
  26.                 -- 负重
  27.                 Bag["ENCB"] = t
  28.                 return checkBags1()
  29.             elseif string.find(l_tmp,'两白银') or string.find(l_tmp,'锭黄金') or string.find(l_tmp,'文铜钱') or string.find(l_tmp,'张壹仟两银票')
  30.                 or string.find(l_tmp,'颗川贝内息丸') or string.find(l_tmp,'颗蝉蜕金疮药') or string.find(l_tmp,'颗黄芪内息丹') or string.find(l_tmp,'颗百花丸') or string.find(l_tmp,'颗大还丹') then
  31.                 -- (□|  )(\\D+)(锭|两|张|文|颗)(白银|黄金|壹仟两银票|铜钱|川贝内息丸|蝉蜕金疮药|黄芪内息丹|百花丸|大还丹)\\((\\D+)\\)                -- 5
  32.                 local n = trans(Trim(w[6])) -- 数量
  33.                 local id = string.lower(Trim(w[9])) -- id
  34.                 local name = w[8] -- 名字
  35.                 Bag[name] = {}
  36.                 Bag[name].id = id
  37.                 Bag[name].cnt = n
  38.                 return checkBags1()
  39.             elseif string.find(l_tmp,' = ') then
  40.                 -- \\d*:(\\D*) = (\\D*)
  41.                 -- 10
  42.                 local name = Trim(w[10])
  43.                 local id = w[11]
  44.                 if not Bag[name] then Bag[name] = {} end
  45.                 local set = {}
  46.                 local cnt = 0
  47.               if string.find(id, ",") then
  48.                     set = utils.split(id,',')
  49.                     id = set[1]
  50.                     for k,v in ipairs(set) do
  51.                         if string.len(Trim(v))> cnt then
  52.                             Bag[name].id = Trim(v)
  53.                             cnt = string.len(Trim(v))
  54.                         end
  55.                     end
  56.                 else
  57.                     Bag[name].id = Trim(id)
  58.                 end
  59.    
  60.                 if Bag[name].cnt then
  61.                     Bag[name].cnt = Bag[name].cnt + 1
  62.                 else
  63.                     Bag[name].cnt = 1
  64.                 end
  65.                 return checkBags1()
  66.             elseif string.find(l_tmp,'你目前已经拥有了') then
  67.                 -- 你目前已经拥有了(\\D*)件私有装备:(\\D*)。
  68.                 local t = Trim(w[13])
  69.                 local s = utils.split(t,',')
  70.                 -- tprint(s)
  71.                 for p,q in pairs(s) do
  72.                     if string.find(q,'⊕') then
  73.                         q = string.sub(q,3,-1)
  74.                     end
  75.                     -- print(q)
  76.                     weaponUsave[q] = {}
  77.                 end
  78.                 return hook(tmp.hook_checkBags)
  79.             elseif l_tmp == '你目前没有自己的私有装备。' then
  80.                 return hook(tmp.hook_checkBags)
  81.             end
  82.         end

  83.         -- 超时
  84.         print('checkBags 超时!')
  85.         return checkBags(tmp.hook_checkBags)
  86.     end)
  87. end
复制代码

评分

2

查看全部评分

门派:古墓派
 楼主| 发表于 2021-1-10 23:38:13 | 显示全部楼层
给大家参考着玩。等陆续把函数都改一遍。。。
门派:明教
发表于 2021-1-11 09:42:12 | 显示全部楼层
其實這種流程函數都該加個func,有返回操作
门派:峨嵋派
发表于 2021-1-11 10:37:53 | 显示全部楼层
joyce@tj 发表于 2021-1-10 23:38
给大家参考着玩。等陆续把函数都改一遍。。。

原来平时和我聊天扯皮的猪神这么能干啊
门派:明教
发表于 2021-1-11 12:53:15 | 显示全部楼层
猪神太勤劳了!赞!        
门派:天龙寺
发表于 2021-2-20 22:10:08 | 显示全部楼层
诸神很给力,好东西呀.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-4 21:19 , Processed in 0.039107 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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