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); }
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); }