Login

一个插件中,常常会使用到某段特别的功能,比如移动物品等,这类功能太常用,所以一般会写成函数,然后提供给整个插件使用,Script目录下的脚本文件,一般就是用来提供这类函数的函数库文件,这样分开的保存处理,便于日后的管理和维护。这里将讲解下IGAS的Addon类型提供的全局环境管理机制。

  • 首先,点击插件菜单Add File,然后Type选择Script,输入框中填入FuncLib,点击Okay创建脚本文件。

IGAS-Studio-Script-1.jpg

  • 双击打开FuncLib。修改代码如下,我们创建了一个用于弹出消息框的函数,并且将判断函数加进去,这样我们不用每个地方都做判断了。

   1 IGAS:NewAddon("MyAddon")
   2 
   3 function SendMsg(msg)
   4     if msg and type(msg) == "string" and msg ~= "" then
   5         return IGAS:MsgBox(L["Message is "]..msg)
   6     end
   7 end

IGAS-Studio-Script-2.jpg

  • 之后修改我们的MyAddon文件。

   1 IGAS:NewAddon("MyAddon")
   2 
   3 function _Addon:ADDON_LOADED(name)
   4     -- 判断是否是MyAddon被载入
   5     if name == "MyAddon" then
   6         SendMsg(L["MyAddon is Loaded!!!"])
   7     end
   8 end
   9 
  10 function _Addon:PLAYER_LOGIN()
  11     _Addon:AddSlashCmd("/mycmd", "/mycmd2", "/mycmd3")
  12 end
  13 
  14 function _Addon:OnSlashCmd(msg)
  15    SendMsg(msg)
  16 end

IGAS-Studio-Script-3.jpg

  • 之后,你们可以自行看效果。
  • 那么,这里FuncLibMyAddon是两个独立的文件,不过,它们都含有一句IGAS:NewAddon("MyAddon"),这句代码执行之后,余下的代码的执行环境将由_G转为_Addon,即环境转变成这个插件自身,那么随后定义的全局变量和函数,都将在这个插件中定义,而不会定义在_G中,这也保证了,我们在FuncLib中定义的SendMsg方法能在MyAddon中被使用,因为都是处于同一环境中。关于这点,更多的好处,将在IGAS中讨论。

IGAS-Studio-Script (last edited 2010-08-25 21:54:51 by kurapica)