| 
 | 
 
 本帖最后由 joyce@tj 于 2019-5-16 23:07 编辑  
 
 
附件是文本文件,改一下扩展名为lua即可。 
 
供大家研究探讨,可以节省一些set指令。 
 
 
 
 
- -- joyce@tj 2019.4.14
 
  
- -- usage: 
 
 - --      set()
 
 - --      set('ynj')
 
 - --      set('ynj','YES')
 
 - --      unset('ynj')
 
  
- Set = {}
 
  
- function set(name,value)
 
 -     local l_value
 
 -     value = value or "YES"
 
  
-     -- set()
 
 -     if name == nil then 
 
 -         if not GetTriggerInfo('set',8) then set_trigger() end
 
 -         Set = {}
 
 -         return exe('set')
 
 -     end
 
  
-     -- set('ynj')
 
 -     for k,v in pairs(Set) do
 
 -         if k == name then
 
 -             l_value = v --找Set表已存在的值
 
 -             break
 
 -         end
 
 -     end
 
  
-     if l_value == value then --如果Set表已存在值相同,退出
 
 -         return
 
 -     else
 
 -         wait.make(function() 
 
 -             repeat 
 
 -                 exe('set '..name..' '..value)
 
 -                 _,w = wait.regexp ("^(> )*设定环境变量:(\\S+) = (\\S+)$",1)
 
 -                 if w then
 
 -                     local l_name = w[2]
 
 -                     local l_value = w[3]
 
 -                     if l_name and l_value then
 
 -                         if flag.trace == true then print(l_name..' '..l_value) end
 
 -                         if string.find(l_value,'"') then
 
 -                             Set[l_name] = trim(l_value,'"')
 
 -                         else
 
 -                             Set[l_name] = tonumber(l_value)
 
 -                         end
 
 -                     end
 
 -                 end
 
 -             until Set[name] == value
 
 -         end)
 
 -     end
 
 - end
 
 - function unset(name)
 
 -     -- unset 变量,并同步Set表,如果表中本来也不存在,不执行exe
 
 -     for k,v in pairs(Set) do
 
 -         if k == name then
 
 -             wait.make(function() 
 
 -                 repeat 
 
 -                     exe('unset '..name)
 
 -                     l,w = wait.regexp ("^(> )*Ok.$",1)
 
 -                     if string.find(l,"Ok") then Set[name] = nil end
 
 -                 until Set[name] == nil
 
 -             end)
 
 -         end
 
 -     end
 
 - end
 
  
- function set_trigger()
 
 -     local l_match = ''
 
 -     l_match = l_match..'env_msg|wimpycmd|block|public|no_accept|no_follow|积蓄|fight_player|kill_msg|look'
 
 -     l_match = l_match..'|over_buy|no_kill_ap|buf_off|no_auto_pfm|brief|武馆玉肌丸'
 
 -     l_match = l_match..'|jyzj|double_attack|lbwb|ynj|whdmd|jybgz|hubo_switch|pxj|qzs|szj|hmg|txj|po|玉女心经'
 
 -     l_match = l_match..'|wimpy|debuff_boost|fatal_boost'
 
 -     create_trigger_j('set','general','^('..l_match..')\\s{1,19}(\\S+)
 
 - ,'set_Set','y',50)
 
 - end
 
 - function set_Set(n,l,w)
 
 -     local l_name = w[1]
 
 -     local l_value = w[2]
 
 -     if l_name and l_value then
 
 -         if string.find(l_value,'"') then
 
 -             Set[l_name] = trim(l_value,'"')
 
 -         else
 
 -             Set[l_name] = tonumber(l_value)
 
 -         end
 
 -     end
 
 -     if flag.trace == true then print(l_name..' '..Set[l_name]) end
 
 - end
 
  
  复制代码 
 |   
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册  
 
×
 
 
评分
- 
1
查看全部评分 
 
- 
 
 
 
 
 |