TS-直接把怪物对象变成玩家的宝宝[老论坛]
我目前属于初学者,希望大家多指点 谢谢啦!//以FunctionNpc的玩家攻击触发为例:GameLib.onPlayerAttack = (Player : TPlayObject,UserMagic : TUserMagic,Target : TActor,Accept : boolean) : boolean => { let a: TActor ;//声明一个空对象,用来判断 if ( Target.Master == a &&//判断目标的主人是空对象(即没有主人) Target.IsNPC() == false &&//目标不是NPC Target.IsPlayer() == false//目标不是玩家 ) { Player.SlaveList.Add(Target);//在玩家的宝宝列表内加入目标对象 Target.Master = Player;//目标的主人设为玩家 Target.MasterRoyaltyTick = 86400000;//叛变时间,好像单位是毫秒 Target.Name = Target.Name;//刷新一下宝宝名,不然宝宝名字后面不出现"(玩家名)" //下面这句在控制台会报错,有人能告诉我为什么吗 //初步猜测是玩家的宝宝列表没加上目标对象,可上面有加,所以有些懵啦 // Player.SendMessage('我的一号宝宝:'+ Player.SlaveList.Name, 3); Target.SearchViewRange//之前目标变成宝宝后宝宝会打主人,加了这句好像就不会打人了(搜索可视范围,有攻击目标才会攻击) Target.SendMessage('F我的主人是'+Target.Master.Name , 3); }
报错的关键信息: Unable to get property 'Name' of undefined or null reference "undefined" TypeError: Unable to get property 'Name' of undefined or null reference
需使用:Player.SlaveList.Actor(0)
TActorList 获取TActor时使用方法Actor(index: number),不是直接用下标
参考描述文件
declare class TActorList { GetCount(): number; Count: number; Actor(index: number): TActor; Add(Item: TActor): number; Delete(Index: number): void; Free: () => void;
}大包子:
哇 谢谢!学到了 最新:用 Target.SearchViewRange 刷新宝宝仇恨,让它不打主人好像有时候不生效。。 大佬 感谢分享!!!
页:
[1]