jhzg 发表于 2018-8-28 23:39:22

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

插件如何读取mush的数字变量?
status.jing = GetVariable ("", jing)这样读不到
status.jingli = GetPluginVariable ("", "jingli")这样也不行

北大侠客行MUD,中国最好的MUD

nrm 发表于 2018-8-29 11:03:17

需要你自行补习一下 GetVariable 与 GetPluginVariable 的用法

suineg 发表于 2018-8-29 11:36:07

本帖最后由 suineg 于 2018-8-29 03:55 AM 编辑

我看反了

nrm 发表于 2018-8-29 11:39:15

插件调全局
World.GetVariable("xxx")

nrm 发表于 2018-8-29 11:39:22

插件调全局
World.GetVariable("xxx")

jhzg 发表于 2018-8-29 12:12:58

谢谢,晚上回去再试试

creat 发表于 2018-8-29 18:28:00

神灯教新手套装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"

jhzg 发表于 2018-8-29 20:44:49

我的想法是一、所有的触发都写在脚本里面 方便修改,所有的变量都在脚本里面触发,并在设置为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的开窗还不知道咋搞。

creat 发表于 2018-8-29 21:46:27

回复 8# jhzg


    每个插件、每个world都是独立的运行环境。在没有指定互动的情况下互相不影响。
你这个方法也是可行的,有个小小的麻烦就是需要修改两处或者更多的地方——插件和world所使用的脚本。
这样的话每次更新插件(如果更新的话)都需要你再次修改插件。

jhzg 发表于 2018-8-29 22:49:57

插件,我觉得做好了以后,除非大变样才去更新插件,否则一般不需要去更新插件,比如开窗的插件,每次发生变化,都是触发发生变化,真正开窗那一块几乎没什么变化,有也是很小的一点点变化。
插件中用到的变量,全部在lua文件中列出,除非万不得一 ,不去动插件。
例如,战斗中出招perform sword.chan,就可以用变量的形式列出来,插件只读取变量。所有需要手动修改的变量,都可以在lua文件中列出来,这样每次修改只改lua文件中的变量就好了。修改起来也方便。
麻烦的就是,每个插件都要加载。
页: [1] 2
查看完整版本: 插件如何读取mush的数字变量?