先纠正一下提问的问题:
0、不要期待所有的东西都有完整教程,有些东西是应该自己思考的,或者说用基础操作教程+构建教程+自己的拼合能力应该能够做出。
1、“类似崩溃大陆那种战斗宠物效果”,会导致的一个情况是“没玩过这个游戏又不接受安利的就不要来回答了”。
2、实例没有父关系,对象才有;但对象没有变量,实例才有。
3、“宠物”是属于玩家的(和怪物战斗,以下简称A类)还是属于怪物的(每个宠物有唯一的怪物来跟随,以下简称Z类)这个逻辑没有在问题里说明。
排除掉各方面因素后,问题有可能变成这样:
0、有一个怪物object;
1、有一个宠物object;
2、宠物object的parent是怪物object;
3、怪物设置了一个battlestate变量;
4、场上会存在多个怪物实例,可能也有多个宠物实例;(单object 多instance 结构)
5、宠物实例检查怪物实例的变量时,目前只会检查“第一个怪物实例”的变量,而设计的还想检测其他怪物实例。
甚至简化成
“当场上存在相同object的多个实例时,怎样对这些实例的同一个变量进行判定”。
(其实object-instance结构的事情可以参照咱之前的帖子,精品-研究成果里应该比较好找。)
显然,截图第一行的写法(p_enemy.battlestate)这种写法是行不通的,因为这样读取时永远是“第一个”,而赋值时是“所有的”。顺便下次截图记得截上行号,后期说的时候比较方便。
这个问题的解法不唯一,但由于题主并没有完整出问题细节(比如多个p_enemy满足条件时截图可见第3行如何选择),所以有些地方可能需要题主根据实际做出调整。(注:在with结构中,所有代码是由被调用的实例执行的,原实例可由关键字other来指定)
简易解1:

这里的关键点是第11行,这里要存储的目标不是“对象名”,而是“实例ID”,因为单obj多ins结构里用对象名无法表示特定的实例。当然,实际测试时可能会发现这里保存的ID永远是“参战怪物里的最后一个”。所以题主需要对这段进行调整,以适应实际需要,推测可能会是“最近的”、“当可攻击未离开范围则不进行切换”或者什么其他的情况。