Example #1
0
        public async Task NpcAction(NpcCommandAction commandAction)
        {
            var result = await DoCommand(async() => {
                var playerId = _account.PlayerId;

                var command = new NpcActionCommand(playerId, commandAction.NpcId, commandAction.Action.ScriptId, commandAction.Action.CommandId, commandAction.Action.Name, commandAction.Action.Message);
                await _bus.SendCommand(command);
            });
        }
Example #2
0
        public async Task NpcAction(NpcCommandAction commandAction)
        {
            var result = await DoCommand(async() => {
                var playerId = _account.PlayerId;

                var npcId       = commandAction.NpcId;
                var commandId   = commandAction.Action.CommandId;
                var commandName = commandAction.Action.Name;
                var input       = commandAction.Action.Message;
                var scriptId    = commandAction.Action.ScriptId;



                if (scriptId > 0)
                {
                    var command = new NpcScriptCommand(playerId, commandAction.NpcId, commandAction.Action.ScriptId, commandAction.Action.CommandId, commandAction.Action.Message);
                    await _bus.SendCommand(command);
                }
                else
                {
                    NpcActionEnum actionEnum;
                    if (Enum.TryParse(commandName, out actionEnum))
                    {
                        switch (actionEnum)
                        {
                        case NpcActionEnum.切磋:

                            await _bus.SendCommand(new FightWithNpcCommand(playerId, commandAction.NpcId));

                            break;

                        case NpcActionEnum.杀死:

                            await _bus.SendCommand(new KillNpcCommand(playerId, commandAction.NpcId));

                            break;

                        case NpcActionEnum.给予:

                            await _bus.SendCommand(new GiveToNpcCommand(playerId, commandAction.NpcId));

                            break;
                        }
                    }
                }
            });
        }