Ejemplo n.º 1
0
        public void MobNpc(string[] @Params, TPlayObject PlayObject)
        {
            int       nAppr      = 0;
            bool      boIsCastle = false;
            TMerchant Merchant   = null;
            int       nX         = 0;
            int       nY         = 0;
            string    sParam1    = @Params.Length > 0 ? @Params[0] : "";
            string    sParam2    = @Params.Length > 1 ? @Params[1] : "";
            string    sParam3    = @Params.Length > 2 ? @Params[2] : "";
            string    sParam4    = @Params.Length > 3 ? @Params[3] : "";

            if ((sParam1 == "") || (sParam2 == "") || ((sParam1 != "") && (sParam1[0] == '?')))
            {
                if (M2Share.g_Config.boGMShowFailMsg)
                {
                    PlayObject.SysMsg(string.Format(GameMsgDef.g_sGameCommandParamUnKnow, this.Attributes.Name, GameMsgDef.g_sGameCommandMobNpcHelpMsg), TMsgColor.c_Red, TMsgType.t_Hint);
                }
                return;
            }
            nAppr      = HUtil32.Str_ToInt(sParam3, 0);
            boIsCastle = (HUtil32.Str_ToInt(sParam4, 0) == 1);
            if (sParam1 == "")
            {
                if (M2Share.g_Config.boGMShowFailMsg)
                {
                    PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " NPC名称 脚本文件名 外形(数字) 属沙城(0,1)", TMsgColor.c_Red, TMsgType.t_Hint);
                }
                return;
            }
            Merchant             = new TMerchant();
            Merchant.m_sCharName = sParam1;
            Merchant.m_sMapName  = PlayObject.m_sMapName;
            Merchant.m_PEnvir    = PlayObject.m_PEnvir;
            Merchant.m_wAppr     = (ushort)nAppr;
            Merchant.m_nFlag     = 0;
            Merchant.m_boCastle  = boIsCastle;
            Merchant.m_sScript   = sParam2;
            PlayObject.GetFrontPosition(ref nX, ref nY);
            Merchant.m_nCurrX = nX;
            Merchant.m_nCurrY = nY;
            Merchant.Initialize();
            UserEngine.AddMerchant(Merchant);
        }
Ejemplo n.º 2
0
        private void RefListViewSession()
        {
            int          I;
            int          n01;
            TMerchant    Merchant = null;
            TNormNpc     NormNpc  = null;
            ListViewItem ListItem = null;

            PanelStatus.Text = "正在取得数据...";
            ListView.Visible = false;
            ListView.Items.Clear();
            n01 = 0;
            lock (M2Share.UserEngine.m_MerchantList)
            {
                try
                {
                    if (M2Share.UserEngine.m_MerchantList.Count > 0)
                    {
                        for (I = 0; I < M2Share.UserEngine.m_MerchantList.Count; I++)
                        {
                            Merchant = M2Share.UserEngine.m_MerchantList[I];
                            Merchant.ClearData();
                        }
                    }
                }
                finally { }

                try
                {
                    foreach (var item in M2Share.UserEngine.m_MerchantList)
                    {
                        Merchant = item;
                        if (Merchant.m_PEnvir != SelEnvirnoment)
                        {
                            continue;
                        }
                        n01++;
                        ListItem      = new ListViewItem();
                        ListItem.Text = (n01).ToString();
                        ListItem.SubItems.Add(Merchant.m_sCharName);
                        ListItem.SubItems.Add((Merchant.m_nCurrX).ToString() + ':' + (Merchant.m_nCurrY).ToString());
                        ListItem.SubItems.Add("是");
                        ListItem.SubItems.Add("否");
                        ListItem.SubItems.Add(HUtil32.BooleanToStr(Merchant.m_boIsHide));
                        ListView.Items.Add(ListItem);
                    }
                }
                finally
                {
                }
                foreach (var item in M2Share.UserEngine.QuestNPCList)
                {
                    NormNpc = item;
                    if (NormNpc.m_PEnvir != SelEnvirnoment) //by John Add 只有管理类NPC才添加到列表
                    {
                        continue;
                    }
                    if (NormNpc.m_NpcType == TNpcType.n_Merchant)
                    {
                        continue;
                    }
                    n01++;
                    ListItem      = new ListViewItem();
                    ListItem.Text = (n01).ToString();
                    ListItem.SubItems.Add(NormNpc.m_sCharName);
                    ListItem.SubItems.Add((NormNpc.m_nCurrX).ToString() + ':' + (NormNpc.m_nCurrY).ToString());
                    ListItem.SubItems.Add("否");
                    ListItem.SubItems.Add("是");
                    ListItem.SubItems.Add(HUtil32.BooleanToStr(NormNpc.m_boIsHide));
                    ListView.Items.Add(ListItem);
                }
            }
            this.Text        = SelEnvirnoment.sMapDesc + " " + "NPC数:" + ListView.Items.Count;
            ListView.Visible = true;
            Dispose(ListItem);
            Dispose(Merchant);
            Dispose(NormNpc);
        }