123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- using CommonAI.Zone.Helper;
- using CommonAI.Zone.Instance;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using XmdsCommon.Plugin;
- using XmdsCommonServer.Plugin;
- using XmdsServerNode.Node.Interface;
- namespace XmdsServerNode.Node
- {
- public class ZoneNodeServerFactory : XmdsZoneServerFactory
- {
- private IServerProxy mProxy;
- public ZoneNodeServerFactory(IServerProxy proxy)
- {
- mProxy = proxy;
- }
- public override CommonAI.Zone.Helper.IQuestAdapter CreateQuestAdapter(CommonAI.Zone.Instance.InstanceZone zone)
- {
- XmdsQuestAdapterServerProfile adapter = new XmdsQuestAdapterServerProfile(zone, mProxy);
- return adapter;
- }
- }
- public class XmdsQuestAdapterServerProfile : IQuestAdapter
- {
- private readonly IServerProxy mProxy;
- private const string EVENT_TYPE = "taskEvent";
- public XmdsQuestAdapterServerProfile(InstanceZone zone, IServerProxy proxy)
- : base(zone)
- {
- mProxy = proxy;
- }
- public override void Dispose()
- {
- base.Dispose();
- }
- private void SendToGameServer(string playerUUID, object msg)
- {
- if (mProxy != null)
- {
- mProxy.SendToGameServer(playerUUID, EVENT_TYPE, msg);
- }
- }
- private void SendMsgToPlayer(string playerUUID, CommonLang.Protocol.IMessage msg)
- {
- if (mProxy != null)
- {
- mProxy.SendMsgToPlayer(playerUUID, msg);
- }
- }
- /// <summary>
- /// 向游戏服接受任务
- /// </summary>
- /// <param name="playerUUID"></param>
- /// <param name="quest"></param>
- /// <param name="args"></param>
- public override void DoAcceptQuest(string playerUUID, string quest, string args)
- {
- var msg = new { eventName = "AcceptQuest", playerId = playerUUID, id = quest, args = args };
- SendToGameServer(playerUUID, msg);
- }
- //向玩家发送消息
- public override void DoSendMsgToPlayer(string playerUUID, CommonLang.Protocol.IMessage msg)
- {
- SendMsgToPlayer(playerUUID, msg);
- }
- /// <summary>
- /// 向游戏服提交任务
- /// </summary>
- /// <param name="playerUUID"></param>
- /// <param name="quest"></param>
- /// <param name="args"></param>
- public override void DoCommitQuest(string playerUUID, string quest, string args)
- {
- var msg = new { eventName = "CommitQuest", playerId = playerUUID, id = quest, args = args };
- SendToGameServer(playerUUID, msg);
- }
- /// <summary>
- /// 向游戏服放弃任务
- /// </summary>
- /// <param name="playerUUID"></param>
- /// <param name="quest"></param>
- /// <param name="args"></param>
- public override void DoDropQuest(string playerUUID, string quest, string args)
- {
- var msg = new { eventName = "DropQuest", playerId = playerUUID, id = quest, args = args };
- SendToGameServer(playerUUID, msg);
- }
- /// <summary>
- /// 向游戏服更新任务状态
- /// </summary>
- /// <param name="playerUUID"></param>
- /// <param name="quest"></param>
- /// <param name="key"></param>
- /// <param name="value"></param>
- public override void DoUpdateQuestStatus(string playerUUID, string quest, string key, string value)
- {
- var msg = new { eventName = "UpdateQuestStatus", playerId = playerUUID, id = quest, key = key, value = value };
- SendToGameServer(playerUUID, msg);
- OnQuestStatusChangedHandler(playerUUID, quest, key, value);
- }
- }
- }
|