找回密码
 注册
搜索
查看: 2884|回复: 20

绝情谷水潭负重测试

[复制链接]
门派:昆仑派
发表于 2019-1-15 15:16:43 | 显示全部楼层 |阅读模式
绝情谷总出问题,经过分析,感觉应该时checkBags函数运算时间太多导致的。所以我这边干脆把负重触发重新制作,成为独立函数。因为不用checkBags,也是函数写的复杂了,不管怎么样……能用就行把。欢迎门派兄弟们帮忙测试一下。


  1. dropstone=0
  2. function shuitan_check(n,l,w)
  3.         EnableTimer("shuitan_check",false)
  4.         DeleteTimer("shuitan_check")
  5.         fuzhongbfb=0
  6.         local t = tonumber(w[3])
  7.         fuzhongbfb=t
  8.         print(fuzhongbfb)
  9.         if fuzhongbfb == 0  then
  10.         return check_busy(shuitan_checkpre,1)
  11.         else
  12.         return jqg_checktrigger()
  13.         end
  14. end

  15. function jqg_checktrigger()
  16.         DeleteTriggerGroup("dashikuai")
  17.     create_trigger_t('dashikuai1','^>*\\s*你身上没有这样东西。,'','dropstone_false')
  18.     create_trigger_t('dashikuai2','^>*\\s*你丢下一块','','dropstone_true')
  19.         for i = 1,2 do SetTriggerOption('dashikuai'..i,'group','dashikuai') end
  20.     EnableTriggerGroup("dashikuai",false)
  21.         return jqg_checkMdo()
  22. end

  23. function jqg_checkMdo()
  24.         if fuzhongbfb>100 then
  25.                 dropstone=1
  26.                 return dashikuai_dg()
  27.         else if fuzhongbfb>80 then
  28.                 exe('tiao tan')
  29.             return jgq_qiandown()
  30.                 else
  31.                     exe('#3(jian shi)')
  32.                         return shuitan_checkpre()
  33.         end
  34. end
  35. end

  36. function dashikuai_dg()
  37.         EnableTriggerGroup("dashikuai",true)
  38.         if dropstone==1 then
  39.         exe('drop da shikuai')
  40.         end
  41.         if dropstone==2 then
  42.         exe('drop xiao shitou')
  43.         end
  44.         if dropstone==3 then
  45.         exe('drop e luanshi')
  46.         end
  47.         if dropstone==4 then
  48.         dropstone=1
  49.         return Totanan()
  50.         end
  51. end

  52. function dropstone_true()
  53.         EnableTriggerGroup("dashikuai",false)       
  54.         return shuitan_checkpre()
  55. end

  56. function dropstone_false()
  57. dropstone=dropstone+1
  58. return dashikuai_dg()
  59. end


  60. function shuitan_checkpre()
  61. exe('i')
  62. EnableTimer("shuitan_check",true)
  63. end

  64. function Totanan()
  65.         DeleteTimer("shuitan_check")
  66.     DeleteTriggerGroup("qqs")
  67.     create_trigger_t('qqs1','^>*\\s*你要往哪里潜?,'','qQydok')
  68.     create_trigger_t('qqs2','^>*\\s*由于重力不够,你无法继续下潜!,'','qQyderorr')
  69.     create_trigger_t('qqs3','^>*\\s*你一个猛栽,潜了下去。,'','jgq_qiandown')
  70.     SetTriggerOption("qqs1","group","qqs")
  71.     SetTriggerOption("qqs2","group","qqs")
  72.     SetTriggerOption("qqs3","group","qqs")
  73.     EnableTriggerGroup("qqs",true)  
  74.         create_trigger_t('shuitan_bags','^(> )*你身上带着(\\D*)件东西\\(负重\\s*(\\d*)\\.\\d*\\%\\):','','shuitan_check')
  75.         EnableTrigger("shuitan_bags",true)

  76.                 exe('unwield taiji sword;unwield changjian;unwield yunny jian')
  77.         exe('#10(jian shi)')
  78.                
  79.         create_timer_s('shuitan_check',1,'shuitan_checkpre')
  80.         EnableTimer("shuitan_check",true)
  81. end

  82. function jgq_qiandown()
  83.                 EnableTriggerGroup("dashikuai",false)
  84.                 DeleteTriggerGroup("dashikuai")
  85.                 DeleteTimer("shuitan_check")
  86.                 EnableTrigger("shuitan_bags",false)
  87.                 DeleteTrigger("shuitan_bags")
  88.         check_busy(function() exe('qian down') end,1)
  89. end
  90. function jqg_qianup()
  91.         check_busy(function() exe('qian up') end,1)
  92. end

  93. function qQyderorr()
  94.         EnableTriggerGroup("qqs",false)         
  95.         check_halt(qQyderorrgetstone)
  96. end
  97. function qQyderorrgetstone()
  98.             exe('pa up')
  99.         return Totanan()
  100. --[[        exe('pa up;#2(jian shi)')
  101.         EnableTriggerGroup("qqs",true)  
  102.         checkBags()
  103.         return check_busy(jqg_checktiaotan)--]]
  104. end
  105. function qQydok()
  106.                 DeleteTriggerGroup("qqs")            
  107.         --checkBags()
  108.         check_busy(qQyd_dropstone)               
  109. end

  110. function qQyd_dropstone()
  111.         if not Bag["ENCB"] or not Bag["ENCB"].value then
  112.                 exe('#20(drop stone)')
  113.         else
  114.                 if Bag['大石块'] and Bag['大石块'].cnt then
  115.                         exe('#' .. Bag['大石块'].cnt .. '(drop da shikuai)')               
  116.                 end
  117.                 if Bag['鹅卵石'] and Bag['鹅卵石'].cnt then
  118.                         exe('#' .. Bag['鹅卵石'].cnt .. '(drop e luanshi)')               
  119.                 end
  120.                 if Bag['小石头'] and Bag['小石头'].cnt then
  121.                         exe('#' .. Bag['小石头'].cnt .. '(drop xiao shitou)')               
  122.                 end        
  123.         end
  124.         return check_busy(totanan_check_qqup)        
  125. end
  126. function totanan_check_qqup()        
  127.         create_trigger_t('qqs1','^>*\\s*你身子沉重,用尽全力也无法向上面游去!,'','totanan_check_qqup')               
  128.         create_trigger_t('qqs2','^>*\\s*你两腿用力一蹬,向左上方浮去。,'','qQup')        
  129.         create_trigger_t('qqs3','^>*\\s*你要往哪里潜?,'','Hyadi')        
  130.         SetTriggerOption("qqs1","group","qqs")
  131.                 SetTriggerOption("qqs2","group","qqs")
  132.         SetTriggerOption("qqs3","group","qqs")
  133.         exe('#20(drop stone);qian zuoshang')                        
  134. end

  135. function qQup()
  136.         check_busy(function() exe('qian up') return check_busy(qQsover) end,1)
  137. end

  138. function qQsover()
  139.         DeleteTriggerGroup("qqs")
  140.     exe("pa up")
  141.     exe("#10(drop stone)")
  142.     return walk_wait()
  143. end
  144. function Hgudi()   
  145.         DeleteTriggerGroup("qqs")
  146.     create_trigger_t('qqs1','^>*\\s*你要往哪里潜?,'','Hyadi')
  147.     create_trigger_t('qqs2','^>*\\s*由于重力不够,你无法继续下潜!,'','qQyderorr')
  148.         create_trigger_t('qqs3','^>*\\s*你一个猛栽,潜了下去。,'','jgq_qiandown')
  149.     SetTriggerOption("qqs1","group","qqs")
  150.     SetTriggerOption("qqs2","group","qqs")
  151.         SetTriggerOption("qqs3","group","qqs")
  152.     EnableTriggerGroup("qqs",true)   
  153.         create_trigger_t('shuitan_bags','^(> )*你身上带着(\\D*)件东西\\(负重\\s*(\\d*)\\.\\d*\\%\\):','','shuitan_check')
  154.         EnableTrigger("shuitan_bags",true)

  155.                 exe('unwield taiji sword;unwield changjian;unwield yunny jian')
  156.         exe('#10(jian shi)')
  157.                
  158.         create_timer_s('shuitan_check',1,'shuitan_checkpre')
  159.         EnableTimer("shuitan_check",true)
  160. --[[        exe('#10(jian shi)')
  161.         checkBags()
  162.         return check_busy(jqg_checktiaotan)--]]
  163. end

  164. function Hyadi()
  165.         DeleteTriggerGroup("qqs")
  166.         --checkBags()
  167.         check_busy(hhq_dropstone,1)
  168. end
  169. function hhq_dropstone()
  170.         if not Bag["ENCB"] or not Bag["ENCB"].value then
  171.                 exe('#20(drop stone)')
  172.         else
  173.                 if Bag['大石块'] and Bag['大石块'].cnt then
  174.                         exe('#' .. Bag['大石块'].cnt .. '(drop da shikuai)')               
  175.                 end
  176.                 if Bag['鹅卵石'] and Bag['鹅卵石'].cnt then
  177.                         exe('#' .. Bag['鹅卵石'].cnt .. '(drop e luanshi)')               
  178.                 end
  179.                 if Bag['小石头'] and Bag['小石头'].cnt then
  180.                         exe('#' .. Bag['小石头'].cnt .. '(drop xiao shitou)')               
  181.                 end        
  182.         end        
  183.         return check_busy(Hyadiup)        
  184. end
  185. function Hyadiup()        
  186.         DeleteTriggerGroup("qqs")
  187.         create_trigger_t('qqs1','^>*\\s*你身子沉重,用尽全力也无法向上面游去!,'','Hyadiup')               
  188.         create_trigger_t('qqs2','^>*\\s*你(两腿用力一蹬,向上面浮去|手脚齐划,顺着水势向上面浮去)','','jqg_qianup')        
  189.         create_trigger_t('qqs3','^>*\\s*你要往哪里潜?,'','hhqover')        
  190.         SetTriggerOption("qqs1","group","qqs")
  191.     SetTriggerOption("qqs2","group","qqs")
  192.         SetTriggerOption("qqs3","group","qqs")         
  193.         exe('#5(drop stone);qian up')                        
  194. end

  195. function hhqover()
  196.         exe('#10(drop stone);pa up')        
  197.         DeleteTriggerGroup("qqs")
  198.         return walk_wait()
  199. end
复制代码

评分

1

查看全部评分

门派:昆仑派
 楼主| 发表于 2019-1-15 15:19:20 | 显示全部楼层
1. 有两处  exe('unwield taiji sword;unwield changjian;unwield yunny jian')  要换成自己的武器
门派:昆仑派
 楼主| 发表于 2019-1-15 15:19:54 | 显示全部楼层
2. 在dropstone=0 下面再加一行fuzhongbfb=0
门派:昆仑派
发表于 2019-1-15 16:11:39 | 显示全部楼层
好的,我去测试看看。
怎么弄啊?复制到lujing里吗?
门派:昆仑派
 楼主| 发表于 2019-1-15 16:13:41 | 显示全部楼层
得替换原来水潭的部分呀
门派:明教
发表于 2019-1-16 02:50:29 | 显示全部楼层
30: 铜钱 = coin, coins, coin_money
31: 白金指环 = ring
32: 黄金头饰 = headgear
33: 紫晶项链 = necklace
34: 翡翠玉镯 = bangle
35: 龙凤玉佩 = jade
> 你身上带着三十五件东西(负重
bei bei bei
66.54%):
  五十六两白银(Silver)
  二十四锭黄金(Gold)
  十一颗飞蝗石(Feihuang shi)
  三百六十七颗石子(Shizi)
  四十八文铜钱(Coin)
□三才无极箫(Wuji xiao)
□背囊(Bei Nang)
□紫长衫(Cloth)
□神通靴(Shentong boot)
□黄龙甲胄(Huanglong armor)
□风云手套(Fengyun glove)
□贵宾卡(VIP Card)
□白金指环(Ring)
□黄金头饰(Headgear)
□紫晶项链(Necklace)
□翡翠玉镯(Bangle)
□龙凤玉佩(Jade)
  一柄三才乾坤剑(Qiankun sword)
  一柄木剑(Mu jian)
  一支火折(Fire)
  一本菜谱(Cai pu)
  一条粗绳子(Cu shengzi)
  四块大石块(Da shikuai)
  二颗蝉蜕金疮药(Chantui yao)
  一个牛皮酒袋(Jiudai)
  三块小石头(Xiao shitou)
  三块鹅卵石(E luanshi)
> 你的背囊里有:
  三颗活血疗精丹(Huoxue dan)
  十颗川贝内息丸(Chuanbei wan)
  二十颗蝉蜕金疮药(Chantui yao)
  十颗黄芪内息丹(Huangqi dan)
  二颗正气丹(Zhengqi dan)
  一千二百块金矿石(Jinkuang shi)                  【零级】
  一千块铁矿石(Tiekuang shi)                      【零级】
  一百四十块铜矿石(Tongkuang shi)                 【零级】
  十四块银矿石(Yinkuang shi)                      【零级】
  五千九百五十团原丝(Raw silk I)                  【一级】
  四十一块精铁魄(Jingtie po I)                    【一级】
> 你目前已经拥有了五件私有装备:风云手套,三才乾坤剑,黄龙甲胄,神通靴,三才无极箫。
> 你把 "action" 设定为 "检查包裹" 成功完成。
Run-time error
World: tj.sjever.net
Function/Sub: checkBagsOver called by trigger
Reason: 正在处理触发器 "bags5"
C:\MUSHS\lua\show_switch.lua:1136: attempt to index field 'ENCB' (a nil value)
stack traceback:
        C:\MUSHS\lua\show_switch.lua:1136: in function 'draw_bagwindow'
        [string "Script file"]:2901: in function <[string "Script file"]:2900>
> 你已准备有一种技能了。
Run-time error
World: tj.sjever.net
Function/Sub: beiok called by trigger
Reason: 正在处理触发器 "check_bei1"
C:\MUSHS\lua\lujing.lua:2332: attempt to index field 'ENCB' (a nil value)
stack traceback:
        C:\MUSHS\lua\lujing.lua:2332: in function <C:\MUSHS\lua\lujing.lua:2331>
        (tail call): ?
> 你已准备有一种技能了。

开命令显示,是否也会截断负重显示,导致ENCB抓不到值啊?
门派:昆仑派
 楼主| 发表于 2019-1-16 15:12:31 | 显示全部楼层
kkfromch@tj 发表于 2019-1-16 02:50
30: 铜钱 = coin, coins, coin_money
31: 白金指环 = ring
32: 黄金头饰 = headgear

跟无法兄你的什么有冲突 我也不太清楚啦 我是根据自己的改的  我不用ENCB了 触发里面的相关语句其实都可以删了
门派:昆仑派
 楼主| 发表于 2019-1-16 15:13:12 | 显示全部楼层
checkBags 执行的东西太多了 很容易出问题
门派:明教
发表于 2019-1-16 15:22:11 | 显示全部楼层
yunny@tj 发表于 2019-1-16 15:12
跟无法兄你的什么有冲突 我也不太清楚啦 我是根据自己的改的  我不用ENCB了 触发里面的相关语句其实都可 ...

你这个不错,绝情谷水潭报错困扰我好长时间,昨晚看了你这个之后,深受启发!

我在原程序里添加一条语句——

function jqg_checktiaotan()
            if Bag["ENCB"].value==nil then Bag["ENCB"].value=81 end

看看能不能糊弄过去,如果为空则赋值为81,先跳水潭试试,反正石头不够会有触发器判断的,毕竟这个ENCB不会永远取不到值吧?

要是不行的话,我再抄你这个,我懒嘛!

门派:昆仑派
 楼主| 发表于 2019-1-16 15:24:06 | 显示全部楼层
kkfromch@tj 发表于 2019-1-16 15:22
你这个不错,绝情谷水潭报错困扰我好长时间,昨晚看了你这个之后,深受启发!

我在原程序里添加一条语 ...

我最早是这么改的  但是极端情况还是会发呆……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-23 23:38 , Processed in 0.047603 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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