コード例 #1
0
        public void CallDefaultNPC(DefaultNPCType type, params object[] value)
        {
            string key = string.Empty;

            switch (type)
            {
                case DefaultNPCType.Login:
                    key = "Login";
                    break;
                case DefaultNPCType.UseItem:
                    if (value.Length < 1) return;
                    key = string.Format("UseItem({0})", value[0]);
                    break;
                case DefaultNPCType.Trigger:
                    if (value.Length < 1) return;
                    key = string.Format("Trigger({0})", value[0]);
                    break;
                case DefaultNPCType.MapCoord:
                    if (value.Length < 3) return;
                    key = string.Format("MapCoord({0},{1},{2})", value[0], value[1], value[2]);
                    break;
                case DefaultNPCType.MapEnter:
                    if (value.Length < 1) return;
                    key = string.Format("MapEnter({0})", value[0]);
                    break;
                case DefaultNPCType.Die:
                    key = "Die";
                    break;
                case DefaultNPCType.LevelUp:
                    key = "LevelUp";
                    break;
                case DefaultNPCType.CustomCommand:
                    if (value.Length < 1) return;
                    key = string.Format("CustomCommand({0})", value[0]);
                    break;
                case DefaultNPCType.OnAcceptQuest:
                    if (value.Length < 1) return;
                    key = string.Format("OnAcceptQuest({0})", value[0]);
                    break;
                case DefaultNPCType.OnFinishQuest:
                    if (value.Length < 1) return;
                    key = string.Format("OnFinishQuest({0})", value[0]);
                    break;
                case DefaultNPCType.Daily:
                    key = "Daily";
                    Info.NewDay = false;
                    break;
                case DefaultNPCType.TalkMonster:
                    if (value.Length < 1) return;
                    key = string.Format("TalkMonster({0})", value[0]);
                    break;
            }

            key = string.Format("[@_{0}]", key);

            DelayedAction action = new DelayedAction(DelayedType.NPC, SMain.Envir.Time + 0, DefaultNPC.ObjectID, key);
            ActionList.Add(action);

            Enqueue(new S.NPCUpdate { NPCID = DefaultNPC.ObjectID });
        }
コード例 #2
0
ファイル: PublicEvent.cs プロジェクト: coolzoom/mir2-master
        public void CallDefaultNPC(DefaultNPCType type, PlayerObject player, params object[] value)
        {
            string key = string.Empty;

            switch (type)
            {
            case DefaultNPCType.Login:
                key = "Login";
                break;

            case DefaultNPCType.UseItem:
                if (value.Length < 1)
                {
                    return;
                }
                key = string.Format("UseItem({0})", value[0]);
                break;

            case DefaultNPCType.Trigger:
                if (value.Length < 1)
                {
                    return;
                }
                key = string.Format("Trigger({0})", value[0]);
                break;

            case DefaultNPCType.MapCoord:
                if (value.Length < 3)
                {
                    return;
                }
                key = string.Format("MapCoord({0},{1},{2})", value[0], value[1], value[2]);
                break;

            case DefaultNPCType.MapEnter:
                if (value.Length < 1)
                {
                    return;
                }
                key = string.Format("MapEnter({0})", value[0]);
                break;

            case DefaultNPCType.Die:
                key = "Die";
                break;

            case DefaultNPCType.LevelUp:
                key = "LevelUp";
                break;

            case DefaultNPCType.CustomCommand:
                if (value.Length < 1)
                {
                    return;
                }
                key = string.Format("CustomCommand({0})", value[0]);
                break;

            case DefaultNPCType.OnAcceptQuest:
                if (value.Length < 1)
                {
                    return;
                }
                key = string.Format("OnAcceptQuest({0})", value[0]);
                break;

            case DefaultNPCType.OnFinishQuest:
                if (value.Length < 1)
                {
                    return;
                }
                key = string.Format("OnFinishQuest({0})", value[0]);
                break;

            case DefaultNPCType.Daily:
                key = "Daily";
                player.Info.NewDay = false;
                break;

            case DefaultNPCType.TalkMonster:
                if (value.Length < 1)
                {
                    return;
                }
                key = string.Format("TalkMonster({0})", value[0]);
                break;

            case DefaultNPCType.EventReward:
                key = "EventReward";
                break;
            }
            key = string.Format("[@_{0}]", key);

            if (player == null)
            {
                return;
            }

            DelayedAction action = new DelayedAction(DelayedType.NPC, SMain.Envir.Time + 1, DefaultNPC.ObjectID, key);

            player.ActionList.Add(action);

            player.Enqueue(new S.NPCUpdate {
                NPCID = DefaultNPC.ObjectID
            });
        }