UDN
Search public documentation:

MOBAKitHeroesCH
English Translation
日本語訳
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 主页 > 虚幻开发工具包精华文章 > MOBA入门包 >Heroes (英雄)

MOBA 初学者工具包 - Heroes(英雄)


于2012 年 5 月针对 UDK 进行最后测试

概述


Heroes(英雄)是玩家控制的特殊专用pawn。它们专用于这些情况:允许玩家投射法术、购买及使用道具,当玩家死亡时可以再生并可以具备其他东西。

UDKMOBAHeroAIController


这是AI控制器,它从玩家接收命令,然后基于这些命令执行动作。因为没有赋予玩家对它们的hero(英雄)的直接控制权,所以这个类是玩家和其英雄之间的桥梁。

函数

  • StartMoveCommand() - 该函数告诉英雄AI控制器将该英雄移动到世界中的某处。当玩家让英雄移动到一个无效位置时,它将自动地调整最终目的地。
  • StartAttackCommand() - 该函数让英雄AI控制器攻击一个敌人。该敌人可以是敌对的怪物、英雄或城堡。
  • StartFollowCommand() - 该函数让英雄AI控制器跟随一个actor。该actor可以是友好的怪物、英雄或城堡。

状态

  • MovingToDestination - 在该状态中,英雄正在向一个目的点移动。通过使用 ReachedPreciseDestination() ,使用native代码来跟踪判断英雄什么时候到达一个路点或者最终目的地。状态隐含代码在等待 ReachedPreciseDestination() 时将简单地设置为循环,然后定期地判断它是否可以直接地到达目的地或者它是否需要执行路经查询来获得下一个路点。
  • FollowingAnActor - 在该状态中,英雄正在向一个actor移动。该状态和 MovingToDestination 非常类似。

UDKMOBAHeroPawn


这是所有英雄使用的模板基类。

函数

  • PostBeginPlay() - 当在世界中第一次实例化该pawn时调用该函数。该函数缓存了水体积,设置统计数据修改器来设置主要状态并设置 HealthFloatBaseHealth
  • PhysicsVolumeChange() - 当玩家所处的物理体积改变时调用该函数。这用于发现英雄pawn什么时候进入到一个属于该玩家的商店体积 。
  • NotifyTeamChanged() - 当玩家复制信息或者玩家复制信息的团队属性改变时调用该函数。该函数使得玩家控制器可以发现英雄pawn什么时候改变团队。
  • NotifyPlayerColorChanged() - 当复制了玩家的颜色时调用该函数。这更新了英雄的光照和遮挡的颜色。
  • GetTeamNum() - 这返回了英雄当前所在的团队。
  • StartMoveCommand() - 该函数将开始移动的命令传递给英雄AI控制器。
  • StartAttackCommand() - 该函数将开始攻击的命令传递给英雄AI控制器。
  • StartFollowCommand() - 该函数将开始跟随的命令传递给英雄AI控制器。
  • LevelUpStats() - 该函数允许英雄提高它们的统计数据。如果在客户端调用该函数,那么它将会被复制到服务器。
  • ServerLevelUpStats() - 通过复制从 LevelUpStats() 中调用该函数。它仅调用了 DoLevelUpStats()
  • DoLevelUpStats() - 该函数通过要求统计数据修改器增加相关统计数据来执行实际的统计数据计算。
  • LevelUpSpell() - 该函数允许英雄提高它们的法术。如果在客户端调用该函数,那么它将会被复制到服务器。
  • ServerLevelUpSpell() - 通过复制从 LevelUpSpell() 中调用该函数。它仅调用了 PerformLevelUpSpell()
  • PerformLevelUpSpell() - 该函数通过要求法术提升级别来执行真正的法术升级。
  • CanLevelUpSpell() - 该函数通过是否可以升级法术返回 true/false。如果不能升级法术,那么将会通知玩家。
  • GetMinimapLayer() - 该函数返回枚举值,指出了英雄迷你地图图标在迷你地图图层上的位置。
  • UpdateMinimapIcon() - 该函数更新了迷你地图图标,尤其是它的外观及尺寸。
  • GetTouchPriority() - 该函数返回了英雄的触摸优先级,应该设置为非常高的值,因为英雄的重要性应该高于其他一切。
  • HasMana() - 返回true,因为英雄总是可以具有法力。
  • GetManaPercentage() - 以百分比的形式返回英雄具有的法力量。

变量

  • SpellArchetypes - 该英雄所具有的法术原型的数组。
  • HeroName - 在HUD及其它地方显示的英雄的名称。
  • HeroPortrait - 到贴图的引用,用于在移动设备HUD上进行显示,因为在移动设备上不支持实时头像。
  • Light - 该英雄pawn所使用的光源组件。这仅是个虚拟效果,使得可以在游戏中更轻松地看到英雄。
  • MainStat - 这是该英雄所使用的主要统计数据,它的工作原理和大部分其他MOBA游戏类似。

UDKMOBAHeroPawn_Cathode, UDKMOBAHeroPawn_DemoGuy

这是用于继承其创建英雄原型的空类。不幸的是,很难在创建原型后很难改变原型的类。因此,通过创建一个让原型继承的空类,如果在以后需要新的英雄逻辑时,可以在这些类中添加该逻辑,而不需要在基类中添加。

UDKMOBAHeroPawnReplicationInfo


函数

  • ProgressToNextLevel() - 返回还有多远可以到下一关 - 0.f 意味着无法到达,而1.f 意味着玩家具备了下一关所要求的经验。
  • ProgressToLevel() - 测试您到达下一关(没有‘应用’的关卡)有多远。所以如果您具有了到达第四关的经验,那么您可以测试您到达第三关有多远(1.f)。
  • TriangleNumber() - 返回第N个三角形数值 (从1到N的整数和).
  • GiveExperience() - 赋予这个英雄一些经验。
  • ApplyLevel() - 当英雄通过选择一些东西升级来‘应用’它们的关卡时调用该函数。