北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 8619|回复: 13

插件如何读取mush的数字变量?

[复制链接]
发表于 2018-8-28 23:39:22 | 显示全部楼层 |阅读模式
插件如何读取mush的数字变量?
status.jing = GetVariable ("", jing)这样读不到
status.jingli = GetPluginVariable ("", "jingli")这样也不行

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2018-8-29 11:03:17 | 显示全部楼层
需要你自行补习一下 GetVariable 与 GetPluginVariable 的用法
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2018-8-29 11:36:07 | 显示全部楼层
本帖最后由 suineg 于 2018-8-29 03:55 AM 编辑

我看反了
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2018-8-29 11:39:15 | 显示全部楼层
插件调全局
World.GetVariable("xxx")
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2018-8-29 11:39:22 | 显示全部楼层
插件调全局
World.GetVariable("xxx")
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2018-8-29 12:12:58 | 显示全部楼层
谢谢,晚上回去再试试
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2018-8-29 18:28:00 | 显示全部楼层
神灯教新手套装1.4.4.3
“北大侠客行状态插件20180829”
增加功能:在更新图形时同步推送status表到当前world。
  1. require"tprint" tprint(status)
复制代码
使用以上命令察看

具体值见下方,使用时在变量前面加上status.
比如status.qi既是当前气血"qi"="2982"
  1. "qi_pre"="100"
  2. "yuntime"="0"
  3. "jingli"="5110"
  4. "zhenqi_max"="0"
  5. "neili_canadd"="0"
  6. "neili_curmax"="5120"
  7. "jing_curmax"="1804"
  8. "shiwu_max"="1000"
  9. "exp_lastadd"="0"
  10. "zhenqi_per"="0"
  11. "jing_max"="1804"
  12. "qi_max"="2982"
  13. "fullmetime"="146"
  14. "qi"="2982"
  15. "jingli_curmax"="5110"
  16. "yinsui_max"="1000"
  17. "neili"="4685"
  18. "jingli_canadd"="0"
  19. "jing"="1804"
  20. "pot_lastadd"="0"
  21. "pot"="94452"
  22. "shiwu"="1000"
  23. "week"="平静之周"
  24. "yinsui"="1000"
  25. "jing_pre"="100"
  26. "qi_curmax"="2982"
  27. "exp"="4.76M"
  28. "zhenqi"="0"
  29. "yun"="0"
复制代码
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2018-8-29 20:44:49 | 显示全部楼层
我的想法是一、所有的触发都写在脚本里面 方便修改,所有的变量都在脚本里面触发,并在设置为mush变量,当然,如果能从插件直接读取lua脚本更好。
二、所有的插件功能单一,写好后就不再更改,除非算法有变,否则所有的变量都从lua脚本或游戏变量中获得。
三、避免出现写脚本时出现的变量和插件中的变量产生冲穾,或者插件和插件之间的变量产生冲穾。
四、方便维护。
  1.         local jing = GetPluginVariable ("", "jing")
  2.         local jing_max = GetPluginVariable ("", "jing_max")
  3.         local jing_curmax = GetPluginVariable ("","jing_curmax")
  4.         local qi = GetPluginVariable ("", "qi")
  5.         local qi_max = GetPluginVariable ("", "qi_max")
  6.         local qi_curmax = GetPluginVariable ("", "qi_curmax")
  7.         local jingli = GetPluginVariable("","jingli")
  8.         local jingli_curmax = GetPluginVariable("","jingli_curmax")
  9.         local neili = GetPluginVariable("","neili")
  10.         local neili_curmax = GetPluginVariable("","neili_curmax")
  11.         local shiwu = GetPluginVariable("","shiwu")
  12.         local shiwu_max = GetPluginVariable("","shiwu_max")
  13.         local yinsui = GetPluginVariable("","yinsui")
  14.         local yinsui_max = GetPluginVariable("","yinsui_max")
  15.         local pot = GetPluginVariable("","pot")
  16.         local exp = GetPluginVariable("","exp")
  17.         if jing == nil then jing = 1000 end
  18.         if jing_max == nil then jing_max = 1000 end
  19.         if jing_curmax == nil then jing_curmax = 1000 end
  20.         if qi == nil then qi = 1000 end
  21.         if qi_max == nil then qi_max = 1000 end
  22.         if qi_curmax == nil then qi_curmax = 1000 end
  23.         if jingli == nil then jingli = 1000 end
  24.         if jingli_curmax == nil then jingli_curmax = 1000 end
  25.         if neili == nil then neili = 1000 end
  26.         if neili_curmax == nil then neili_curmax = 1000 end
  27.         if shiwu == nil then shiwu = 1000 end
  28.         if shiwu_max == nil then shiwu_max = 1000 end
  29.         if yinsui == nil then yinsui = 1000 end
  30.         if yinsui_max == nil then yinsui_max = 1000 end
  31.         if pot == nil then pot = 1000 end
  32.         if exp == nil then exp = 1000 end
  33.         status.exp                                 = exp
  34.         status.pot                                 = tonumber(pot)
  35.         status.neili_curmax         = tonumber(neili_curmax)
  36.         status.neili                         = tonumber(neili)
  37.         status.jingli_curmax         = tonumber(jingli_curmax)
  38.         status.jingli                         = tonumber(jingli)
  39.         status.qi_max                         = tonumber(qi_max)
  40.         status.qi_curmax                 = tonumber(qi_curmax)
  41.         status.qi                                 = tonumber(qi)
  42.         status.jing_max                 = tonumber(jing_max)
  43.         status.jing_curmax                 = tonumber(jing_curmax)
  44.         status.jing                         = tonumber(jing)
  45.         status.shiwu            = tonumber(shiwu)
  46.         status.shiwu_max        = tonumber(shiwu_max)
  47.         status.yinsui                        = tonumber(yinsui)
  48.         status.yinsui_max                = tonumber(yinsui_max)
复制代码


我用这个方法读到了mush变量里的内容了。现在hp开窗正常。skills的开窗还不知道咋搞。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2018-8-29 21:46:27 | 显示全部楼层
回复 8# j


    每个插件、每个world都是独立的运行环境。在没有指定互动的情况下互相不影响。
你这个方法也是可行的,有个小小的麻烦就是需要修改两处或者更多的地方——插件和world所使用的脚本。
这样的话每次更新插件(如果更新的话)都需要你再次修改插件。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2018-8-29 22:49:57 | 显示全部楼层
插件,我觉得做好了以后,除非大变样才去更新插件,否则一般不需要去更新插件,比如开窗的插件,每次发生变化,都是触发发生变化,真正开窗那一块几乎没什么变化,有也是很小的一点点变化。
插件中用到的变量,全部在lua文件中列出,除非万不得一 ,不去动插件。
例如,战斗中出招perform sword.chan,就可以用变量的形式列出来,插件只读取变量。所有需要手动修改的变量,都可以在lua文件中列出来,这样每次修改只改lua文件中的变量就好了。修改起来也方便。
麻烦的就是,每个插件都要加载。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-4-20 06:14 PM , Processed in 0.011581 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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