ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
> TActor介绍 ``` TActor 可以表示所有生物 玩家 NPC 怪物 都是TActor但是 TActor 不一定是玩家 不一定是NPC 不一定是怪物 TPlayObject 和 TNormNpc 可使用 TActor(TPlayObject) 强制转换为TActor 但是TActor 不能 使用 TPlayObject(TActor) 强制转换直接的表现就是 TPlayObject 可以使用 TActor的函数 但是 TActor 不能用 TPlayObject 的函数 TNormNpc和TPlayObject都继承于TActor 相关教程请看视频 ``` | TActor | | | --- | --- | | 属性名称 | **功能** | | property Name: String | 名称 | | property RaceType: Byte | 物种 | | property MapName: String | 所在地图ID | | property Map: TEnvirnoment | 所在地图对象 | | property MapX: Integer | X坐标 | | property MapY: Integer | Y坐标 | | property Gender: Byte | 性别:0-男 1-女 | | property Hair: Byte | 发型 | | property Direction: Byte | 当前方向(0-7) | | property Job: Byte | 职业:0-战士 1-法师 2-道士 | | property Nation: Byte | 国别 | | property Camp: Byte | 阵营(临时属性,不保存到数据库) | | property Gold: Integer | 金币数量 | | property MaxGold: Integer | 可携带的最大金币数量 | | property PkPoint: Integer | PK值 | | property PkLevel: Integer | PK等级 | | property Ghost: Boolean | 是否已清除尸体(是否无效) | | property Death: Boolean | 是否死亡 | | property HasHorse: Boolean | 是否拥有马牌 | | property HorseType: Byte | 马的类型 | | property OnHorse: Boolean | 是否骑在马背上 | | property Guild: TGuild | 所在行会,没有加入行会是为nil | | property Castle: TUserCastle | 所在城堡 | | property GuildName: String | 行会名称 | | property GuildRankName: String | 行会称呼 | | property HasGUILD: Boolean | 是否拥有行会 | | property IsGuildMaster: Boolean | 是否行会帮主 | | property ISCastleMaster: Boolean | 是否城堡拥有者 | | property ISCastleGuild: Boolean | 行会是否属于城堡拥有者 | | property Level: Integer | 等级 | | property Exp: LongWord | 经验值 | | property Mask: TUserItem | 面巾(面纱) | | property NameColor: Byte | 名字颜色(0-255) | | property KillMonExpRate: Integer | 杀怪经验倍率 | | property PowerRate: Integer | 攻击倍率 | | property ISAdmin: Boolean | 是否管理员 | | property ISSysOp: Boolean | 是否拥有管理权限(权限>6) | | property ISPlayer: Boolean | 当前对象是否为玩家(权限>4) | | property ISNPC: Boolean | 当前对象是否是一个NPC | | property ISMonNPC: Boolean | 当前对象是否是一个怪物NPC | | property IsFrindlyTarget(Actor:TActor) :Boolean | 判断对方是否友方单位 | | property IsUnknowActor: Boolean | 当前对象是否为神秘人 | | property AdminMode: Boolean | 是否管理模式 | | property SuperManMode: Boolean | 是否无敌模式 | | property ObserverMode: Boolean | 是否隐身模式 | | property Permission: Byte | 权限等级 | | property AttackMode: TAttatckMode | 攻击模式 | | property InSafeZone: Boolean | 是否在安全区 | | property Check\[Index: Integer \]: Boolean | Check变量 | | property SlaveCount: Integer | 宝宝数量 | | property Slave\[Index: Integer \]: TActor | 取指定序号的宝宝对象 | | property HP: Int64 | HP值 | | property MaxHP: Int64 | HP最大值 | | property MP: Int64 | MP值 | | property MaxMP: Int64 | MP最大值 | | property DCMin: Int64 | 物理攻击下限值 | | property DCMax: Int64 | 物理攻击上限值 | | property MCMin: Int64 | 魔法攻击下限 | | property MCMax: Int64 | 魔法攻击上限 | | property SCMin: Int64 | 道术下限 | | property SCMax: Int64 | 道术上限 | | property TCMin: Int64 | 射术下限 | | property TCMax: Int64 | 射术上限 | | property PCMin: Int64 | 刺术下限 | | property PCMax: Int64 | 刺术上限 | | property WCMin: Int64 | 武术下限 | | property WCMax: Int64 | 武术上限 | | property ACMin: Int64 | 防御下限 | | property ACMax: Int64 | 防御上限 | | property MACMin: Int64 | 魔御下限 | | property MACMax: Int64 | 魔御上限 | | property SpeedPoint: Byte | 敏捷 | | property HitPoint: Byte | 准确 | | property WalkSpeed: Byte | 移动速度 | | property HitSpeed: ShortInt | 攻击速度 | | property TitleEffect: byte | 使怪物也可以头顶上有动态称号 | | property CustomEffect\[1..10\]:Integer | 自定义特效。可用于实现自定义动态称号 功能。ID 为UI设计中自定义特效ID | | property WalkStep: Byte | 移动脚步大小 | | property WalkWait: Byte | 移动间隔时间 | | property AttackSpeed: Byte | 攻击速度 | | property Luck: Integer | 幸运 | | property ExpHitter: TActor | 死亡后该对象获得经验 | | property LastHitter: TActor | 死亡时记录杀死当前对象的角色或怪物 | | property TargetActor: TActor | 当前选择的角色(可能是正在攻击的角色) | | property Master: TActor | 拥有当前怪物的主人 | | property MasterRoyaltyTick: LongWord | 怪物叛变时间(达到指定时间后叛变) | | property InProtect: Boolean | 是否处于保护状态,处于保护状态不可攻击他人也不能被他人攻击 | | property PoseCreate: TActor | 站在对面的角色 | | property TotalAbility: Integer | 总战斗力 | | property DropName: String | 爆率文件名称 | | property MaxBagSize: Integer | 包裹最大容量 | | property ItemSize: Integer | 当前包裹道具个数(叠加物品只算1个) | | property BagItem\[Index: Integer\]: TUserItem | 取得包裹里指定位置的道具 | | property StationTick: LongWord | 站立不动的时间 | | property Dress: TUserItem | 衣服 | | property Wepon: TUserItem | 武器 | | property NeckLace: TUserItem | 项链 | | property Helmet: TUserItem | 头盔 | | property RightHand: TUserItem | 蜡烛位置的装备 | | property ArmringLeft: TUserItem | 左手手镯 | | property ArmringRight: TUserItem | 右手手镯 | | property RingLeft: TUserItem | 左戒指 | | property RingRight: TUserItem | 右戒指 | | property Belt: TUserItem | 腰带 | | property Boots: TUserItem | 鞋 | | property Charm: TUserItem | 宝石 | | property Bujuk: TUserItem | 物品(毒符) | | property Fashion: TUserItem | 时装 | | property Mount: TUserItem | 马牌 | | property Shield: TUserItem | 左手武器(盾牌) | | property DropItemRate: Integer | 用于动态调整怪物掉落物品几率的倍率 | | property BlendColor:Byte | 身体绘制染色颜色 | | property WeaponBlendColor:Byte | 武器染色颜色 | | property S\[index: Integer \]: String | 怪物变量 字符串 0-99 | | property N\[index: Integer \]: Integer | 怪物变量 整数型 0-99 | | property ThroughHuman: Boolean | 动态控制是否可以穿过玩家。如果此值没被设置 True 或者 False 那么根据引擎规则 决定是否可以穿过。如果此值呗赋值过 那么根据赋值的值来决定是否可以穿过。 使用TActor.ResetThroughHuman(); 来清除脚本赋值 还原由引擎控制。 | | property ThroughMonster: Boolean | 是否可以穿过怪物 | | property ThroughNPC: Boolean | 是否可以穿过NPC | | property ThroughGuard: Boolean | 是否可以穿过卫士 | | property MaxDropHP: Integer | 动态调节一次最多掉血量,同样适用于怪物 和 玩家。下线不保存 | | procedure AddExp(Value: Integer ); | 增加指定的经验值(小于0减少经验值) | | procedure ClearSkill; | 删除全部已学技能 | | procedure DelNoJobSkill; | 删除所有和职业不符合的技能 | | procedure DelSkill(const ASkillName: String ); | 删除指定名称的技能 | | procedure AddSkill(const ASkillName: String ; const SkillLevel: Integer =0); | 增加指定名称的技能,技能等级为SkillLevel指定的值 | | function FindSkill(const ASkillName: String ): TUserMagic; | 查找指定名称的技能,查找失败返回nil值 | | procedure ChangeSkillLevel(const ASkillName: String ; const SkillLevel: Integer =0); | 修改指定名称的技能等级 | | procedure KillSlave(const ASlaveName: String ; const ACount: Integer =0); | 杀死指定名称的召唤怪,如果数量为0则杀死相同名字的全部召唤怪 | | function GetSideSlaveCount(const Range: Integer ; const ASlaveName: String =''): Integer ; | 查找距离身边指定范围的召唤怪数量,如果名称为空则返回全部 | | function GetSlaveCount(const ASlaveName: String =''): Integer ; | 查找召唤怪数量,名称为空时返回全部数量 | | procedure ChangePowerRate(const ARate, ATime: Integer ); | 修改攻击倍率 | | procedure Kill(const AMode: Integer =0); | 杀死当前怪物 | | function GetItemCount(const ItemName: String ): Integer ; | 查找拥有多少个指定名称的道具 | | procedure TakeOnItem(AUserItem: TUserItem; ItemWhere: TItemWhere); | 将指定的装备穿戴在身上某个部位 | | procedure TakeOffItem(ItemWhere: TItemWhere); | 将身上指定部位的装备取下 | | function AddItemToBag(Item: TUserItem): Boolean ; | 增加一个物品到背包,如果背包满了返回为False | | procedure GoldChanged; | 给客户端发送金币、元宝、礼金更新消息 | | procedure Die; | 当前怪死亡 | | procedure MakeGhost; | 死亡并且直接清除尸体 | | procedure RepairItem(ItemWhere: TItemWhere); | 修复指定位置的装备 | | procedure RepairAll; | 修复全部装备 | | procedure RecalcAbilitys; | 重新计算能力值(比如血量、攻击、魔法、经验倍率等) | | procedure SearchViewRange; | 搜索可视范围(怪物只有搜索到了可视范围的可攻击角色才会攻击) | | procedure ClearViewRange; | 清除搜索范围列表(清除了搜索列表,怪物就不会再攻击了) | | procedure ChangeToMonster(sMonName:string;nSec:Integer ); | 游戏变身函数 | | procedure SendMessage(const Msg: String ; const Kind: Integer =0); | 怪物说话 | | function GetSlaveList : TActorList; | 获取下属(宝宝)的列表 | | property SlaveRelax: Boolean ; | 设置下属(宝宝)的状态 | | procedure CancelToMonster(); | 立即取消变身 | | procedure ResetThroughMonster(); | 重置穿过怪物 | | procedure ResetThroughNPC(); | 重置怪物NPC | | procedure ResetThroughGuard(); | 重置穿过卫士 | | procedure ResetThroughHuman(); | 清除脚本赋值 还原由引擎控制 | | procedure DamageDelay; | 在Damage基础上增加延迟功能 | | procedure Damage; | 对对方造成伤害 | | procedure CreateAttackEvent(AMapX: Integer; AMapY: Integer; ATime: Integer; AInterval: Integer; ADamage: Integer); | 创建一个藏匿于地图上的攻击事件 (X坐标, Y 坐标, 持续存在时间, 伤害间隔时间, 单次伤害值 ( 时间单位为毫秒 )) | | procedure MagicAttack(ATarget: TActor; AMagic: Integer); | 对目标释放魔法(目标,魔法ID) | | procedure MagicAttack(ATarget: TActor; AMagic: TUserMagic); | 对目标释放魔法(目标,魔法对象) | | procedure MagicAttack(ATarget: TActor; ATargetX: Integer; ATargetY:Integer; AMagic: Integer); | 对目标释放魔法(目标,目标X,目标Y,魔法ID) | | procedure MagicAttack(ATarget: TActor; ATargetX: Integer; ATargetY:Integer; AMagic: TUserMagic); | 对目标释放魔法(目标,目标X,目标Y,魔法对象) | | procedure MagicAttack(ATarget:TActor; X,Y, MagicID,Level,Group:Integer); | 对目标释放魔法(要攻击的目标 ,目标X,目标 Y,技能ID,技能等级 , 技能的作用分组 ) ;支持10000以上的技能ID;同时对于原来的 MagicAttack 和 SelectMagic 都支持新的技能编辑器编辑的技能。 | | procedure AddAbilityBuff(GroupID:Integer; AbilityType:TBuffAbilityType; DuraMs:Cardinal; AblityValue:Int64; ValueIsRate:Boolean):TBuff; | 添加属性类Buff | | procedure AddStatusBuff(GroupID:Integer; StatusType:TBuffStatusType; DuraMs:Cardinal; Args1:Int64 = 0; Args2:Int64 = 0):TBuff; | 添加状态类Buff | | procedure AddIntervalBuff(GroupID:Integer; IntervalType:TBuffIntervalType; DuraMs:Cardinal; Interval:Cardinal; Args1:Int64 = 0;Args2:Int64 = 0):TBuff; | 添加间隔作用类Buff | | procedure AddBuffByID(BuffID:Integer; GroupID:Integer = -1):TBuff; | 使用预定义BuffID 添加Buff | | procedure AddBuffByName(BuffName:String; GroupID:Integer = -1):TBuff; | 使用预定义Buff名称 添加Buf | | function DeleteBuff(BuffHandle:Integer):Boolean; | 移除Buff | | function DeleteBuffByGroupID(MinGroupID:Integer;MaxGroupID:Integer):Integer; | 根据Buff分组移除Buff | | procedure Buff\[i:integer\]:TBuff; | 第I个Buff | | procedure BuffCount:integer; | Buff数量 | | property AlwaysShowHP: Boolean; | 使得玩家或者怪物总是处于心灵启示状态 (掉血始终广播给周围玩家) | | property DenyAutoAddHP:Boolean; | 禁止引擎对怪物以及人物的自动回血 true 为不使用引擎的自动回血 |