本帖最后由 xiaoyao1 于 2024-8-25 09:50 PM 编辑
[Lua] 纯文本查看 复制代码 ------------初始化----
local myUnit = {}
function myUnit:New(unit)
local s = {}
setmetatable(s,self)
self.__index = self
s.name = GetUnitName(unit)
s.lv = UnitLevel(unit)
s.hp = UnitHealth(unit)
s.maxHp = UnitHealthMax(unit)
s.mp = UnitMana(unit)
s.maxMp = UnitManaMax(unit)
s.buff = BeeUnitBuffList(unit)
s.php = (s.hp / s.maxHp)*100
s.pmp = (s.mp / (s.maxMp > 0 and s.maxMp or 1)) * 100
s.Skill = {}
return s
end
function update_var(var,new_var)
var.value = new_var
end
local me = me or myUnit:New("player")
local tar = tar or myUnit:New("target")
update_var(me,myUnit:New("player"))
update_var(tar,myUnit:New("target"))
以上在魔蜂通过,建立了初始化脚本,在下面继续建立其他脚本
[Lua] 纯文本查看 复制代码 ----加状态---
if me.hp then BeeRun("奥术光辉","nogoal") end
这话其实没啥实际意义,不用看运行啥,就看语句就好,提交保存时就报错提示attempt to index global 'me' (a nil value)
但如果在if后加一个条件就能通过,aabbcc甚至都没申明过。
[Lua] 纯文本查看 复制代码 if aabbcc and me.hp then BeeRun("奥术光辉","nogoal")end
多次测试,就是含有“me.”的不能紧放在if后面,放就报错,在if后加个任何其他条件就通过。想想以前编其他的时候似乎也遇到这种情况,当时就以为是方案内的各个脚本不在一个chunk,变量传不过来,所以不能用local,就把所有变量改成全局的,事实上不是这个引起的,改不改都一样。
这个啥情况,请各大佬不吝赐教!!
|