xiaoyao1
发表于 2024-8-26 15:01:58
vshrd 发表于 2024-8-26 02:43 PM
你可以养成一个习惯
你那个报错很明显是用if去判断了nil值
那么直接print(me.hp)看看是成员nil了
我有点明白这个意思了,在if后面加个其他条件,生命周期就延过来了?这话可能还真有点蒙对了。因为if后面加的LRZD是在初始化里的,那相当于在B()中用了A(),所以,A()里的变量生命周期就延续到了B()
那在if后面随便搞了个东西,在本段脚本中就是ni的,因为if后面的用的是and,所以就不对后面的条件进行判断了,如果给这个随便搞的东西赋个值,那就会报错。
我应该是完全明白这个问题了,多谢各位大佬指点!!感谢vshrd、blxyz521、lbabey
lbabey
发表于 2024-8-26 15:07:08
xiaoyao1 发表于 2024-8-26 03:01 PM
我有点明白这个意思了,在if后面加个其他条件,生命周期就延过来了?这话可能还真有点蒙对了。因为if后面 ...
你明白什么了
怎么可能延期
vshrd
发表于 2024-8-26 15:08:40
本帖最后由 vshrd 于 2024-8-26 03:23 PM 编辑
xiaoyao1 发表于 2024-8-26 03:01 PM
我有点明白这个意思了,在if后面加个其他条件,生命周期就延过来了?这话可能还真有点蒙对了。因为if后面 ...
不= =
我列举的A栈和B栈是包含关系
即A栈还没出,这时去调用了B栈
A栈中的局部变量除非你主动压入B栈 否则是没有这个变量的
同时,脚本分段不是包含关系,而是并列关系
其实很好理解
function A()
local a = 1
end
function B()
local b = 1
print(a)--这里的a还是A栈里的a吗?
end
A()--不是,因为这里函数执行完A栈就释放了,顺带的,栈内的临时变量a也一起释放了
B()
--这种并列关系才是魔风当中做脚本分段时的关系
xiaoyao1
发表于 2024-8-26 15:08:53
本帖最后由 xiaoyao1 于 2024-8-26 03:10 PM 编辑
赶紧删了,好像没完全理解对。
vshrd
发表于 2024-8-26 15:12:45
xiaoyao1 发表于 2024-8-26 03:08 PM
回顾一下,魔蜂对于分段脚本的管理,就是分开的chunk,要注意变量的传递。想到一个小技巧,如果想在本段脚 ...
如果真要说瀑布代码的话
实现这样的需求通常是写出到本地
另一个分段的脚本再去本地读取这个值= =
也就是bee的BeeSetValue 和BeeGetValue(好像是叫这个吧,记不得了)
vshrd
发表于 2024-8-26 15:21:22
xiaoyao1 发表于 2024-8-26 03:08 PM
赶紧删了,好像没完全理解对。
我画的那样只是说父级栈里的临时变量因为还没出栈所以还没释放
但并不代表下面的子栈就可以享用到这个变量了.
我画的不太好 引起误解了= =
xiaoyao1
发表于 2024-8-26 15:23:09
vshrd 发表于 2024-8-26 03:12 PM
如果真要说瀑布代码的话
实现这样的需求通常是写出到本地
另一个分段的脚本再去本地读取这个值= =
唉,我感觉我又不会了。大佬,你手里是有代码的,初始化中定义了对象me,和类似local LRZD = BeeUnitAffectingCombat()的变量,初始化没调用其他脚本,栈应该是结束了。
在其他分段脚本中,引用了LRZD和对象me的属性,按道理,LRZD也应该引用不到,可情况是能引用LRZD,并且在之后就能用me的属性。但如果不先引用LRZD,就引用不到me的属性。
要整出病了!!
vshrd
发表于 2024-8-26 15:25:25
xiaoyao1 发表于 2024-8-26 03:23 PM
唉,我感觉我又不会了。大佬,你手里是有代码的,初始化中定义了对象me,和类似local LRZD = BeeUnitAffe ...
我都不知道你的代码里哪儿冒出来个LRZD
我在前面的代码里都没看到
实在不行等我下班找你语音+远程
我给你好好讲清楚这里面是咋回事儿
xiaoyao1
发表于 2024-8-26 15:26:31
vshrd 发表于 2024-8-26 03:21 PM
我画的那样只是说父级栈里的临时变量因为还没出栈所以还没释放
但并不代表下面的子栈就可以享用到这个变 ...
我从使用魔蜂的第一天就是分段式的,对于瀑布式的,见到的第一眼就比较鄙夷。哈哈,现在明白啥叫瀑布式了,就是不分段。现在感觉我这分段式,一直是误打误疮的,居然还写通了那么几个。
xiaoyao1
发表于 2024-8-26 15:29:55
vshrd 发表于 2024-8-26 03:25 PM
我都不知道你的代码里哪儿冒出来个LRZD
我在前面的代码里都没看到
初始化段里的倒数第二行。。。。