骑砍2霸主MOD开发(5)-游戏事件

一.MissionBehavior

    Mission任务中发生的事件,AgentSpawn,AgentRemove,BeforeMissionStart等统称为MissionBehavior.

   通过在Mission中添加属于自己的MissionBehavior实现对游戏任务事件的捕捉

   <1.在MBSubModuleBase中重写OnBeforeMissionBehaviorInitialize(Mission mission)

   <2.获取Mission添加MyMissionBehavior事件捕捉

   <3.实现MyMissionBehavior继承MissionBehavior重写OnAgentSpawn,OnMissionTick等回调

public override void OnMissionBehaviorInitialize(Mission mission)
{
    base.OnMissionBehaviorInitialize(mission);
    mission.AddMissionBehavior(new MissionSoundTimer(mission));
}

public class MissionSoundTimer : BasicMissionHandler
{
    public override void OnAgentCreated(Agent agent)
    {
        base.OnAgentCreated(agent);
    }

    public override void OnMissionTick(float dt)
    {
    }
}

二.CampaignBehavior

   大地图中发生的事件,PartyEncounter,DaliyTick等统称为CampaignBehavior.

   通过在Campaign中添加属于自己的Behavior实现对大地图事件的捕捉.

   <1.在MBSubModuleBase中重写OnGameStart(Game game, IGameStarter gameStarterObject)

   <2.在CampaignGameStarter中添加MyCampaignBehavior

   <3.MyCampaignBehavior继承CampaignBehavior重写RegisterEvents,捕捉大地图事件

protected override void OnGameStart(Game game, IGameStarter gameStarterObject)
{
    base.OnGameStart(game, gameStarterObject);
    if (gameStarterObject is CampaignGameStarter)
    {
       CampaignGameStarter starter = (CampaignGameStarter)gameStarterObject;
       starter.AddBehavior(new WorldMapBehavior());
    }
}

public class WorldMapBehavior : CampaignBehaviorBase {

    public override void RegisterEvents()
    {
        CampaignEvents.OnMainPartyStarvingEvent.AddNonSerializedListener(this, PlayMusic);
        CampaignEvents.DailyTickEvent.AddNonSerializedListener(this, PlayMusic);
    }

    public void PlayMusic()
    {
        MBMusicManager.Current.StartTheme(MusicTheme.MainTheme, 10, false);
    }


    public override void SyncData(IDataStore dataStore)
    {

    }
}

相关推荐

  1. 2霸主MOD开发(5)-游戏事件

    2024-04-20 12:50:06       14 阅读
  2. 2霸主MOD开发(12)-游戏实例GameEntity

    2024-04-20 12:50:06       9 阅读
  3. 2霸主MOD开发(4)-游戏场景(scene)制作

    2024-04-20 12:50:06       16 阅读
  4. 2霸主MOD开发(8)-action_sets.xml骨骼动画

    2024-04-20 12:50:06       13 阅读
  5. 2霸主MOD开发(11)-瓦兰迪亚火骑兵

    2024-04-20 12:50:06       7 阅读
  6. 2霸主MOD开发(14)-进击的巨人

    2024-04-20 12:50:06       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-20 12:50:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-20 12:50:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-20 12:50:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-20 12:50:06       18 阅读

热门阅读

  1. Linux 防火墙端口设置常用命令

    2024-04-20 12:50:06       14 阅读
  2. 前端开发--命名规范-非常值得大家停留脚步看看

    2024-04-20 12:50:06       12 阅读
  3. 密码学中的RSA算法与椭圆曲线算法

    2024-04-20 12:50:06       17 阅读
  4. sql知识总结二(接上)

    2024-04-20 12:50:06       12 阅读
  5. Debian安装和基本使用

    2024-04-20 12:50:06       15 阅读