北大侠客行MUD论坛

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

MUSH 中怎么调用另一个插件内的函数呢?

[复制链接]
发表于 2011-10-30 09:16:46 | 显示全部楼层 |阅读模式
RT MUSH 中怎么调用另一个插件内的函数呢?

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-10-30 12:18:49 | 显示全部楼层
如果一个插件已经形成,其实就是已经封装了(我的理解)。调用其函数好像不成。
另外,若一个插件里有可用函数,直接拷贝过来到自己的脚本不就可以了。为什么要去调用呢?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-10-30 16:07:50 | 显示全部楼层
CallPlugin函数可以
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2011-10-30 22:38:14 | 显示全部楼层
回复 3# mygame


mygame 同学说的对
测试通过,但是只能传递string,不能传递table
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2011-10-30 22:44:11 | 显示全部楼层
回复 2# littleknife


是这样的,我有三个插件,地图插件,HP插件,和任务插件。
任务插件,需要知道角色当前的气血,潜能,经验,和当前所处的房间信息。
如果不能共享插件,就必须把HP和MAP的触发再拷贝一份给任务插件,这样比较麻烦。

能通过 callplugin 传递共享信息,省了很多事。
callplugin 就像是提供了接口服务,可惜只能string,不能table
serialize.save 保存的信息怎么再转成table呢
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-10-30 23:21:50 | 显示全部楼层
CallPlugin调用函数

GetPluginVariable调用变量,变量应该可以是table,没有测试!
两个结合下不知道行不行
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2011-10-30 23:38:14 | 显示全部楼层
本帖最后由 freeway 于 2011-10-30 11:46 PM 编辑

GetPluginVariable 我试了下,似乎只有在按下mush的保存按钮,state目录下生成Variable文件后,才可以被 GetPluginVariable 捕捉到。不知道你们测试是否也是这样。

上面的问题,我找了个解决办法

角色HP插件中做个别名,执行pushinfo()
function pushinfo()
   --  给任务追踪插件提供角色信息
  if PluginSupports ("5fcea3707a1d11ce12505f6d", "task.get_health_info") ~= error_code.eOK then
     Note ("'task.get_health_info' 函数无效")
  else
    local health_info_string   =  "health_info =  " .. serialize.save_simple (health_info)
    CallPlugin ("5fcea3707a1d11ce12505f6d", "task.get_health_info", health_info_string)
  end
end


任务插件中,马上就有信息返回,这样做妥妥的。
task.get_health_info = function (stringx)
  assert (loadstring (stringx)) ()
  for k, v in pairs (health_info) do  
    Note (k, " = ", v)
  end
end
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-11-1 15:52:51 | 显示全部楼层
本帖最后由 wdzyss 于 2011-11-1 03:55 PM 编辑

插件封装得时候不要把lua也封装进去就可以了,可以用require和dofile来调用这个lua.
就像GM一样,他的地图插件里就没把mapper.lua封进去
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 05:56 AM , Processed in 0.010167 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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