LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
楼主: 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,所以就不对后面的条件进行判断了,如果给这个随便搞的东西赋个值,那就会报错。
我应该是完全明白这个问题了,多谢各位大佬指点!!感谢vshrdblxyz521lbabey
回复 支持 反对

使用道具 举报

发表于 2024-8-26 15:07:08 | 显示全部楼层
xiaoyao1 发表于 2024-8-26 03:01 PM
我有点明白这个意思了,在if后面加个其他条件,生命周期就延过来了?这话可能还真有点蒙对了。因为if后面 ...

你明白什么了
怎么可能
延期
回复 支持 反对

使用道具 举报

发表于 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栈 否则是没有这个变量的

同时,脚本分段不是包含关系,而是并列关系

其实很好理解
[Lua] 纯文本查看 复制代码
function A()
    local a = 1
end
function B()
    local b = 1
    print(a)--这里的a还是A栈里的a吗?
end

A()--不是,因为这里函数执行完A栈就释放了,顺带的,栈内的临时变量a也一起释放了
B()

--这种并列关系才是魔风当中做脚本分段时的关系


回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-26 15:08:53 | 显示全部楼层
本帖最后由 xiaoyao1 于 2024-8-26 03:10 PM 编辑

赶紧删了,好像没完全理解对。
回复 支持 反对

使用道具 举报

发表于 2024-8-26 15:12:45 | 显示全部楼层
xiaoyao1 发表于 2024-8-26 03:08 PM
回顾一下,魔蜂对于分段脚本的管理,就是分开的chunk,要注意变量的传递。想到一个小技巧,如果想在本段脚 ...

如果真要说瀑布代码的话
实现这样的需求通常是写出到本地
另一个分段的脚本再去本地读取这个值= =
也就是bee的BeeSetValue 和BeeGetValue(好像是叫这个吧,记不得了)
回复 支持 反对

使用道具 举报

发表于 2024-8-26 15:21:22 | 显示全部楼层
xiaoyao1 发表于 2024-8-26 03:08 PM
赶紧删了,好像没完全理解对。

我画的那样只是说父级栈里的临时变量因为还没出栈所以还没释放
但并不代表下面的子栈就可以享用到这个变量了.

我画的不太好 引起误解了= =
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-26 15:23:09 | 显示全部楼层
vshrd 发表于 2024-8-26 03:12 PM
如果真要说瀑布代码的话
实现这样的需求通常是写出到本地
另一个分段的脚本再去本地读取这个值= =

唉,我感觉我又不会了。大佬,你手里是有代码的,初始化中定义了对象me,和类似local LRZD = BeeUnitAffectingCombat()的变量,初始化没调用其他脚本,栈应该是结束了。
在其他分段脚本中,引用了LRZD和对象me的属性,按道理,LRZD也应该引用不到,可情况是能引用LRZD,并且在之后就能用me的属性。但如果不先引用LRZD,就引用不到me的属性。
要整出病了!!


回复 支持 反对

使用道具 举报

发表于 2024-8-26 15:25:25 | 显示全部楼层
xiaoyao1 发表于 2024-8-26 03:23 PM
唉,我感觉我又不会了。大佬,你手里是有代码的,初始化中定义了对象me,和类似local LRZD = BeeUnitAffe ...

我都不知道你的代码里哪儿冒出来个LRZD
我在前面的代码里都没看到

实在不行等我下班找你语音+远程
我给你好好讲清楚这里面是咋回事儿
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-26 15:26:31 | 显示全部楼层
vshrd 发表于 2024-8-26 03:21 PM
我画的那样只是说父级栈里的临时变量因为还没出栈所以还没释放
但并不代表下面的子栈就可以享用到这个变 ...

我从使用魔蜂的第一天就是分段式的,对于瀑布式的,见到的第一眼就比较鄙夷。哈哈,现在明白啥叫瀑布式了,就是不分段。现在感觉我这分段式,一直是误打误疮的,居然还写通了那么几个。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-26 15:29:55 | 显示全部楼层
vshrd 发表于 2024-8-26 03:25 PM
我都不知道你的代码里哪儿冒出来个LRZD
我在前面的代码里都没看到

初始化段里的倒数第二行。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2025-5-2 02:32 AM , Processed in 0.390450 second(s), 28 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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