> 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 为不使用引擎的自动回血 |
- 更新日志
- 2021年更新日志
- 2020年更新日志
- 2019年更新日志
- 2017年更新日志
- 2016年更新日志
- 2015年更新日志
- 2014年更新日志
- 2013年更新日志
- 游戏对象
- GameLib
- TActor
- TActorList
- TAddedAbility
- TAddLevelItem
- TAddPointItem
- TArgs
- TAttatckMode
- TDBEngine
- TEnvirnoment
- TFunctionFlag
- TGuild
- TItemState
- TItemWhere
- TMissionItem
- TMissionLinkItem
- TMissions
- TNormNpc
- TPlayMonster
- TPlayMonsterNPC
- TPlayObject
- TStdItem
- TStoreItemList
- TToptenz
- TUserCastle
- TUserItem
- TUserMagic
- TVarValue
- Tbuff
- TBuffCategory
- TBuffAbilityType
- TBuffStatusType
- TBuffIntervalType
- 固定NPC
- AINpc
- ExternalNPC
- MagicNpc
- ManagerNPC
- MapEventNPC
- MissionsNpc
- QFunctionNPC
- RobotManagerNPC
- TimeManagerNPC
- 自定义功能
- 自定义客户端UI
- Buffer效果自定义设计
- UI管理界面预览
- 如何实现物品放入或取下时的函数触发
- 自定义窗口
- 自定义界面中编辑框参数发送方式
- 自定义客户端装备提示效果
- 自定义特效
- 自定义装备提示样式
- Buff系统说明
- 自定义技能编辑器
- 技能扩展自定义
- 自定义技能初识
- 被动技能属性定义
- 技能模式定义
- 客户端效果定义
- 主动技能动作定义
- 新自定义技能编辑器
- 初始编辑器
- 自定义编辑器使用说明
- 如何实现自定义怪物
- 脚本实例
- NPC对话编辑
- 宝宝叛变的启动和停止
- 创建脚本单元
- 创建一个藏匿于地图上的攻击事件
- 地图传送
- 获取服务器名称
- 获取玩家任务信息
- 检测是否为沙城成员
- 角色称号、头顶花翎、头顶特效设置
- 判断PK值
- 判断队伍信息
- 判断角色对面是一个什么对象
- 判断角色金币、元宝及礼金等数量
- 判断角色所在的地图信息
- 判断角色性别
- 判断角色职业
- 判断两个角色之间的距离
- 判断是否为队长
- 判断是否为行会掌门
- 判断是否为沙巴克城主
- 判断有某一物品的数量
- 判断转生等级及等级
- 让目标移动到指定的坐标
- 让玩家回城
- 如何播放一个声音文件
- 如何操作Check状态检查
- 如何操作数据库
- 如何查看玩家IP来源
- 如何查看装备是否可被穿戴或取下
- 如何查找一个行会
- 如何充值角色的属性点
- 如何初始化全局变量
- 如何穿戴或取下一件装备
- 如何创建一个副本地图
- 如何创建一个行会
- 如何打开一个宝箱
- 如何打开指定的URL
- 如何弹出对话框让玩家选择执行
- 如何读写个人变量、行会变量及全局变量
- 如何读写文本文件
- 如何发送各种文字信息
- 如何访问其他角色
- 如何复活
- 如何给客户端发送一个标题栏闪动
- 如何给玩家发放物品
- 如何更新自定义窗口上的内容
- 如何关闭进度条
- 如何关闭一个打开的自定义窗口
- 如何过滤字符串中的文字
- 如何获得地图上全部玩家的信息
- 如何获得地图上指定范围内的怪物数量
- 如何获取丢在地上物品对象
- 如何获取角色当前使用的称号
- 如何获取角色负重
- 如何获取角色在线时长
- 如何获取排行榜信息
- 如何获取人物当前获得的称号信息
- 如何获取坐标上指定范围内的全部怪物
- 如何加入或离开队伍
- 如何加入一个指定的行会
- 如何加载和保存自定义的配置文件(INI文件读写
- 如何监控攻击模式的更改
- 如何监控玩家扔物品
- 如何检查目标是否处于某种状态
- 如何将NPC设置为当前玩家的雕像
- 如何将地图上的角色全部随机传送到另外一个地图上
- 如何将指定玩家传送到身边
- 如何将装备显示在NPC对话框上
- 如何脚本封速
- 如何脚本刷怪
- 如何脚本增加和删除一个NPC
- 如何脚本增加和删除一个怪物NPC
- 如何禁止玩家聊天
- 如何开启及停止自动增加经验值
- 如何克隆玩家为人形怪
- 如何判断当前等级的经验值上限
- 如何判断队伍中是否为不同职业的角色
- 如何判断角色是否为新人
- 如何判断玩家曾经是否接过某任务
- 如何清除地图上的怪物
- 如何请求一个URL
- 如何取得地图上的怪物数量
- 如何取得行会全部称号及全部成员信息
- 如何取得全部在线用户信息
- 如何取得玩当前机器的机器码
- 如何取得物品的数据库单价和销售价格
- 如何取得邮件的数量信息
- 如何取得自定义界面里面玩家放入的物品信息
- 如何让打开客户端的背包、商城及市场
- 如何让他人执行指定的脚本
- 如何删除或修改行会称号
- 如何删除玩家的物品
- 如何删除一个称号
- 如何删除一个副本地图
- 如何删除一个扩展按钮
- 如何删除一个延时调用函数
- 如何设置当前称号
- 如何设置角色死亡不爆出
- 如何实现充值平台对接
- 如何实现骰子
- 如何实现无敌隐身
- 如何实现物品属性转移(物品复制)
- 如何实现一个带参数的输入框
- 如何实现一个机器人
- 如何实现自定义装备爆出提示
- 如何使用JSON对象
- 如何使用角色S、P及N变量
- 如何使用静态数组和动态数组
- 如何使用升级加属性点
- 如何收取城堡金币
- 如何随机刷新物品属性
- 如何踢出在线人物
- 如何添加一个称号
- 如何调整角色的HP、MP值
- 如何调整角色声望值
- 如何调整人物攻击模式
- 如何调整人物转生等级
- 如何调整限时杀怪经验倍率
- 如何调整装备属性上限
- 如何完全控制他人
- 如何显示一个进度条
- 如何修改怪物名称
- 如何修改行会帮主
- 如何修改人物技能属性
- 如何修改一个物品的属性
- 如何延时调用一个函数
- 如何以爆物的方式将一个怪物的爆率给玩家
- 如何用脚本存取物品
- 如何在地图上爆出一个指定的物品
- 如何在行会指定的称号里面添加成员
- 如何在脚本中引用外部DLL
- 如何在客户端显示一个特效
- 如何增加和移除一个个人时钟事件
- 如何增加或减少角色经验值
- 如何增加一个地图连接点
- 如何增加一个行会的称号
- 如何增加一个扩展按钮
- 如何召唤下属
- 如何指定删除角色身上的装备
- 如何重新计算排行榜
- 如何转职
- 如何自动增加或减少元宝
- 如何做一个感叹号提示
- 实现自定义的客户端命令集
- 推开指定的目标
- 修改怪物的爆率为一个指定的爆率文件
- 循环自身全部技能
- 如何设置装备掉落触发脚本处理
- 如何设置装备掉落提示
- 给玩家添加一个未接任务
- 给玩家添加一个已接任务
- 补丁规则
- NPC补丁设置
- Prguse.data文件编辑的注意事项
- 引擎补丁规则
- 地图补丁规则
- 盾牌补丁
- 怪物补丁设置
- 头发补丁设置
- 武器及衣服补丁设置方法
- 坐骑补丁设置
- 操作相关
- 数据库设置
- 版本数据库管理
- 锄头设置方法
- 攻速及幸运设置
- 技能特殊设置
- 扩展数据管理
- 魔法数据设置要点
- 人形怪穿戴及技能设置
- 人形怪攻击速度设置
- 人形怪数据库设置
- 如何配置宝箱及钥匙
- 如何设置解包物品
- 如何设置一个固定位置的传送道具
- 设计采集类怪物
- 设置自定义物品种类名称
- 数据库报错问题
- 特殊物品属性设置说明
- 添加宝石物品
- 添加可穿戴宝石、气血石及魔血石物品
- 物品数据库设置说明
- 游戏数据库的导入导出
- 服务端操作
- [M2]开启物品属性下限功能
- 摆摊相关
- 备份与恢复
- 防外挂设置
- 服务端部署
- 合区
- 角色成长属性调整
- 配置排行榜系统
- 如何查看M2Server所在机器的机器码
- 如何实现多机负载
- 网关防攻击配置
- 游戏网关性能设置
- 任务系统
- 脚本混编说明
- Call命令说明
- 参数Args的读取
- 存在的意义
- 让他人执行脚本
- 如何定义常量
- 如何读写变量
- 如何实现混编
- 特殊标志段说明
- 特殊的CHECK和SET
- 调整杀怪倍率
- 支持编译时错误提示
- 地图配置
- 地图NPC配置
- 地图安全区编辑
- 地图创建及属性说明
- 地图杀怪任务触发
- 地图事件编辑
- 地图刷怪配置
- 地图挖矿设置
- 附属地图配置
- 关联到盛大新格式地图
- 检查地图文件使用情况
- 卫士配置
- 登陆器操作
- 登陆器自我更新
- 登录器界面组件介绍
- 登录器设计界面初识
- 管理登陆器列表
- 将登陆器列表部署到服务器
- 客户端控制
- 客户端样式选择
- 列表设计界面初识
- 如何创建登陆器皮肤
- 如何生成登陆器文件
- 玩家登陆器选项
- 微端控制
- 版本管理器
- NPC对话内容编辑
- 版本文件二次注册使用方法
- 查看程序是否更新
- 创建新的版本文件
- 单个脚本加密方法
- 额外数据库信息配置
- 给版本设置一个唯一ID
- 怪物爆率配置
- 将版本运行所需的配置文件植入版本文件中
- 角色登陆提示信息
- 脚本分类说明
- 脚本机器人配置
- 配置宝箱
- 配置怪物说话
- 如何开启技能自动追踪目标的功能
- 如何实现登陆器图标及客户端Logo的替换
- 如何下载最新版本
- 商城(元宝、礼金)管理
- 商贩贩卖物品配置
- 设置版本工具环境变量
- 套装配置
- 添加一个盾牌物品
- 系统提示信息配置
- 一键导入其他引擎的版本
- 远程管理
- 资源数据管理
- 如何添加一个任务模板中的任务
- 其他辅助说明
- [重要]脚本编写注意项
- 256颜色值
- IP库
- Mir200_Envir下的列表文件详解
- 各种时间控制方法
- 怪物DB数据
- 怪物Race设置
- 键盘码对应数值表
- 脚本系统与系统安全说明
- Pascal基础说明
- Pascal变量类型
- Pascal数据类型
- 基础函数及单元
- 客户端标签变量
- 疑问/建议/反馈/留言
- 在线教程
- 引擎下载