插件如何读取mush的数字变量?
插件如何读取mush的数字变量?status.jing = GetVariable ("", jing)这样读不到
status.jingli = GetPluginVariable ("", "jingli")这样也不行
北大侠客行MUD,中国最好的MUD 需要你自行补习一下 GetVariable 与 GetPluginVariable 的用法 本帖最后由 suineg 于 2018-8-29 03:55 AM 编辑
我看反了 插件调全局
World.GetVariable("xxx") 插件调全局
World.GetVariable("xxx") 谢谢,晚上回去再试试 神灯教新手套装1.4.4.3
“北大侠客行状态插件20180829”
增加功能:在更新图形时同步推送status表到当前world。require"tprint" tprint(status)使用以上命令察看
具体值见下方,使用时在变量前面加上status.
比如status.qi既是当前气血"qi"="2982""qi_pre"="100"
"yuntime"="0"
"jingli"="5110"
"zhenqi_max"="0"
"neili_canadd"="0"
"neili_curmax"="5120"
"jing_curmax"="1804"
"shiwu_max"="1000"
"exp_lastadd"="0"
"zhenqi_per"="0"
"jing_max"="1804"
"qi_max"="2982"
"fullmetime"="146"
"qi"="2982"
"jingli_curmax"="5110"
"yinsui_max"="1000"
"neili"="4685"
"jingli_canadd"="0"
"jing"="1804"
"pot_lastadd"="0"
"pot"="94452"
"shiwu"="1000"
"week"="平静之周"
"yinsui"="1000"
"jing_pre"="100"
"qi_curmax"="2982"
"exp"="4.76M"
"zhenqi"="0"
"yun"="0" 我的想法是一、所有的触发都写在脚本里面 方便修改,所有的变量都在脚本里面触发,并在设置为mush变量,当然,如果能从插件直接读取lua脚本更好。
二、所有的插件功能单一,写好后就不再更改,除非算法有变,否则所有的变量都从lua脚本或游戏变量中获得。
三、避免出现写脚本时出现的变量和插件中的变量产生冲穾,或者插件和插件之间的变量产生冲穾。
四、方便维护。
local jing = GetPluginVariable ("", "jing")
local jing_max = GetPluginVariable ("", "jing_max")
local jing_curmax = GetPluginVariable ("","jing_curmax")
local qi = GetPluginVariable ("", "qi")
local qi_max = GetPluginVariable ("", "qi_max")
local qi_curmax = GetPluginVariable ("", "qi_curmax")
local jingli = GetPluginVariable("","jingli")
local jingli_curmax = GetPluginVariable("","jingli_curmax")
local neili = GetPluginVariable("","neili")
local neili_curmax = GetPluginVariable("","neili_curmax")
local shiwu = GetPluginVariable("","shiwu")
local shiwu_max = GetPluginVariable("","shiwu_max")
local yinsui = GetPluginVariable("","yinsui")
local yinsui_max = GetPluginVariable("","yinsui_max")
local pot = GetPluginVariable("","pot")
local exp = GetPluginVariable("","exp")
if jing == nil then jing = 1000 end
if jing_max == nil then jing_max = 1000 end
if jing_curmax == nil then jing_curmax = 1000 end
if qi == nil then qi = 1000 end
if qi_max == nil then qi_max = 1000 end
if qi_curmax == nil then qi_curmax = 1000 end
if jingli == nil then jingli = 1000 end
if jingli_curmax == nil then jingli_curmax = 1000 end
if neili == nil then neili = 1000 end
if neili_curmax == nil then neili_curmax = 1000 end
if shiwu == nil then shiwu = 1000 end
if shiwu_max == nil then shiwu_max = 1000 end
if yinsui == nil then yinsui = 1000 end
if yinsui_max == nil then yinsui_max = 1000 end
if pot == nil then pot = 1000 end
if exp == nil then exp = 1000 end
status.exp = exp
status.pot = tonumber(pot)
status.neili_curmax = tonumber(neili_curmax)
status.neili = tonumber(neili)
status.jingli_curmax = tonumber(jingli_curmax)
status.jingli = tonumber(jingli)
status.qi_max = tonumber(qi_max)
status.qi_curmax = tonumber(qi_curmax)
status.qi = tonumber(qi)
status.jing_max = tonumber(jing_max)
status.jing_curmax = tonumber(jing_curmax)
status.jing = tonumber(jing)
status.shiwu = tonumber(shiwu)
status.shiwu_max = tonumber(shiwu_max)
status.yinsui = tonumber(yinsui)
status.yinsui_max = tonumber(yinsui_max)
我用这个方法读到了mush变量里的内容了。现在hp开窗正常。skills的开窗还不知道咋搞。 回复 8# jhzg
每个插件、每个world都是独立的运行环境。在没有指定互动的情况下互相不影响。
你这个方法也是可行的,有个小小的麻烦就是需要修改两处或者更多的地方——插件和world所使用的脚本。
这样的话每次更新插件(如果更新的话)都需要你再次修改插件。 插件,我觉得做好了以后,除非大变样才去更新插件,否则一般不需要去更新插件,比如开窗的插件,每次发生变化,都是触发发生变化,真正开窗那一块几乎没什么变化,有也是很小的一点点变化。
插件中用到的变量,全部在lua文件中列出,除非万不得一 ,不去动插件。
例如,战斗中出招perform sword.chan,就可以用变量的形式列出来,插件只读取变量。所有需要手动修改的变量,都可以在lua文件中列出来,这样每次修改只改lua文件中的变量就好了。修改起来也方便。
麻烦的就是,每个插件都要加载。
页:
[1]
2