/// <summary> /// btLoadType 0-召唤 1-新建 2-删除 3-查询数据 4-召唤副将英雄 5-新建副将英雄 6-删除副将英雄 /// </summary> /// <param name="sCharName"></param> /// <param name="sMsg"></param> /// <param name="PlayObject"></param> /// <param name="btLoadType"></param> public void AddToLoadHeroRcdList(string sCharName, string sMsg, TPlayObject PlayObject, byte btLoadType) { TLoadDBInfo LoadRcdInfo = new TLoadDBInfo(); PlayObject.m_boWaitHeroDate = true; LoadRcdInfo.sAccount = PlayObject.m_sUserID; LoadRcdInfo.sCharName = sCharName; LoadRcdInfo.sIPaddr = PlayObject.m_sIPaddr; LoadRcdInfo.boClinetFlag = PlayObject.m_boClientFlag; LoadRcdInfo.nSessionID = PlayObject.m_nSessionID; LoadRcdInfo.nSoftVersionDate = PlayObject.m_nSoftVersionDate; LoadRcdInfo.nPayMent = PlayObject.m_nPayMent; LoadRcdInfo.nPayMode = PlayObject.m_nPayMode; LoadRcdInfo.nSocket = PlayObject.m_nSocket; LoadRcdInfo.nGSocketIdx = PlayObject.m_nGSocketIdx; LoadRcdInfo.nGateIdx = PlayObject.m_nGateIdx; LoadRcdInfo.dwNewUserTick = HUtil32.GetTickCount(); LoadRcdInfo.PlayObject = PlayObject; LoadRcdInfo.nReLoadCount = 0; LoadRcdInfo.boIsHero = true; LoadRcdInfo.btLoadDBType = btLoadType; LoadRcdInfo.sMsg = sMsg; LoadRcdInfo.btJob = PlayObject.m_btDeputyHeroJob; HUtil32.EnterCriticalSection(m_UserCriticalSection); try { m_LoadRcdList.Add(LoadRcdInfo); } finally { HUtil32.LeaveCriticalSection(m_UserCriticalSection); } }
public unsafe void TrainingSkill(string[] @Params, TPlayObject PlayObject) { string sHumanName = @Params.Length > 0 ? @Params[0] : ""; string sSkillName = @Params.Length > 1 ? @Params[1] : ""; int nLevel = @Params.Length > 2 ? int.Parse(@Params[2]) : 0; TUserMagic *UserMagic; if ((sHumanName == "") || (sSkillName == "") || (nLevel <= 0)) { PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " 人物名称 技能名称 修炼等级(0-3)", TMsgColor.c_Red, TMsgType.t_Hint); return; } nLevel = HUtil32._MIN(3, nLevel); TPlayObject m_PlayObject = UserEngine.GetPlayObject(sHumanName); if (m_PlayObject == null) { PlayObject.SysMsg(String.Format("{0}不在线,或在其它服务器上!!", sHumanName), TMsgColor.c_Red, TMsgType.t_Hint); return; } for (int I = 0; I < m_PlayObject.m_MagicList.Count; I++) { UserMagic = (TUserMagic *)m_PlayObject.m_MagicList[I]; if ((HUtil32.SBytePtrToString(UserMagic->MagicInfo.sDescr, 0, UserMagic->MagicInfo.DescrLen)).ToLower().CompareTo((sSkillName).ToLower()) == 0) { UserMagic->btLevel = (byte)nLevel; m_PlayObject.SendMsg(m_PlayObject, Grobal2.RM_MAGIC_LVEXP, 0, UserMagic->MagicInfo.wMagicId, UserMagic->btLevel, UserMagic->nTranPoint, ""); m_PlayObject.SysMsg(String.Format("{0}的修改炼等级为{1}", sSkillName, nLevel), TMsgColor.c_Green, TMsgType.t_Hint); PlayObject.SysMsg(String.Format("{0}的技能{1}修炼等级为{2}", sHumanName, sSkillName, nLevel), TMsgColor.c_Green, TMsgType.t_Hint); break; } } }
public void Kill(string[] @Params, TPlayObject PlayObject) { if (@Params == null) { return; } string sHumanName = @Params.Length > 0 ? @Params[0] : ""; TBaseObject BaseObject; if (sHumanName != "") { BaseObject = UserEngine.GetPlayObject(sHumanName); if (BaseObject == null) { PlayObject.SysMsg(string.Format(GameMsgDef.g_sNowNotOnLineOrOnOtherServer, sHumanName), TMsgColor.c_Red, TMsgType.t_Hint); return; } } else { BaseObject = PlayObject.GetPoseCreate(); if (BaseObject == null) { PlayObject.SysMsg("命令使用方法不正确,必须与角色面对面站好!!!", TMsgColor.c_Red, TMsgType.t_Hint); return; } } BaseObject.Die(); }
public void ViewWhisper(TPlayObject PlayObject, string[] @Params) { string sCharName = @Params.Length > 0 ? @Params[0] : ""; string sParam2 = @Params.Length > 1 ? @Params[1] : ""; if ((string.IsNullOrEmpty(sCharName)) && (sCharName[1] == '?')) { PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandParamUnKnow, this.Attributes.Name, GameMsgDef.g_sGameCommandViewWhisperHelpMsg), TMsgColor.c_Red, TMsgType.t_Hint); return; } TPlayObject m_PlayObject = UserEngine.GetPlayObject(sCharName); if (m_PlayObject != null) { if (m_PlayObject.m_GetWhisperHuman == PlayObject) { m_PlayObject.m_GetWhisperHuman = null; PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandViewWhisperMsg1, sCharName), TMsgColor.c_Green, TMsgType.t_Hint); } else { m_PlayObject.m_GetWhisperHuman = PlayObject; PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandViewWhisperMsg2, sCharName), TMsgColor.c_Green, TMsgType.t_Hint); } } else { PlayObject.SysMsg(String.Format(GameMsgDef.g_sNowNotOnLineOrOnOtherServer, sCharName), TMsgColor.c_Red, TMsgType.t_Hint); } }
public void MapMove(string[] @Params, TPlayObject PlayObject) { string sMapName = @Params.Length > 0 ? @Params[0] : ""; if ((sMapName == "") || ((sMapName != "") && (sMapName[0] == '?'))) { PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandParamUnKnow, this.Attributes.Name, GameMsgDef.g_sGameCommandMoveHelpMsg), TMsgColor.c_Red, TMsgType.t_Hint); return; } TEnvirnoment Envir = M2Share.g_MapManager.FindMap(sMapName); if ((Envir == null)) { PlayObject.SysMsg(String.Format(GameMsgDef.g_sTheMapNotFound, sMapName), TMsgColor.c_Red, TMsgType.t_Hint); return; } if ((PlayObject.m_btPermission >= this.Attributes.nPermissionMin) || M2Share.CanMoveMap(sMapName)) { PlayObject.SendRefMsg(Grobal2.RM_SPACEMOVE_FIRE, 0, 0, 0, 0, ""); PlayObject.MapRandomMove(sMapName, 0); } else { PlayObject.SysMsg(String.Format(GameMsgDef.g_sTheMapDisableMove, sMapName, Envir.sMapDesc), TMsgColor.c_Red, TMsgType.t_Hint);//不允许传送 } }
public void AdjustExp(string[] @Params, TPlayObject PlayObject) { if ((PlayObject.m_btPermission < 6)) { return; } }
public void LuckPoint(string[] @Params, TPlayObject PlayObject) { int nPermission = @Params.Length > 0 ? Convert.ToInt32(@Params[0]) : 0; string sHumanName = @Params.Length > 1 ? @Params[1] : ""; string sCtr = @Params.Length > 2 ? @Params[2] : ""; if ((PlayObject.m_btPermission < nPermission)) { PlayObject.SysMsg(GameMsgDef.g_sGameCommandPermissionTooLow, TMsgColor.c_Red, TMsgType.t_Hint); return; } if ((sHumanName == "") || ((sHumanName != "") && (sHumanName[1] == '?'))) { PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandParamUnKnow, this.Attributes.Name, GameMsgDef.g_sGameCommandLuckPointHelpMsg), TMsgColor.c_Red, TMsgType.t_Hint); return; } TPlayObject m_PlayObject = UserEngine.GetPlayObject(sHumanName); if (m_PlayObject == null) { PlayObject.SysMsg(String.Format(GameMsgDef.g_sNowNotOnLineOrOnOtherServer, sHumanName), TMsgColor.c_Red, TMsgType.t_Hint); return; } if (sCtr == "") { PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandLuckPointMsg, sHumanName, m_PlayObject.m_nBodyLuckLevel, m_PlayObject.m_dBodyLuck, m_PlayObject.m_nLuck), TMsgColor.c_Green, TMsgType.t_Hint); return; } }
public void ChangeSabukLord(TPlayObject PlayObject, string[] @Params) { string sCASTLENAME = @Params.Length > 0 ? @Params[0] : ""; string sGuildName = @Params.Length > 1 ? @Params[1] : ""; bool boFlag = @Params.Length > 2 ? bool.Parse(@Params[2]) : false; if ((sCASTLENAME == "") || (sGuildName == "")) { PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " 城堡名称 行会名称", TMsgColor.c_Red, TMsgType.t_Hint); return; } TUserCastle Castle = M2Share.g_CastleManager.Find(sCASTLENAME); if (Castle == null) { PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandSbkGoldCastleNotFoundMsg, sCASTLENAME), TMsgColor.c_Red, TMsgType.t_Hint); return; } TGUild Guild = GuildManager.FindGuild(sGuildName); if (Guild != null) { M2Share.AddGameDataLog("27" + "\09" + Castle.m_sOwnGuild + "\09" + '0' + "\09" + '1' + "\09" + "sGuildName" + "\09" + PlayObject.m_sCharName + "\09" + '0' + "\09" + '1' + "\09" + '0'); Castle.GetCastle(Guild); UserEngine.SendServerGroupMsg(Grobal2.SS_211, M2Share.nServerIndex, sGuildName); PlayObject.SysMsg(Castle.m_sName + " 所属行会已经更改为 " + sGuildName, TMsgColor.c_Green, TMsgType.t_Hint); } else { PlayObject.SysMsg("行会 " + sGuildName + "还没建立!!!", TMsgColor.c_Red, TMsgType.t_Hint); } }
public void BonuPoint(string[] @Params, TPlayObject PlayObject) { string sHumName = @Params.Length > 0 ? @Params[0] : ""; int nCount = @Params.Length > 1 ? int.Parse(@Params[1]) : 0; string sMsg; if ((sHumName == "")) { PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " 人物名称 属性点数(不输入为查看点数)", TMsgColor.c_Red, TMsgType.t_Hint); return; } TPlayObject m_PlayObject = UserEngine.GetPlayObject(sHumName); if (m_PlayObject == null) { PlayObject.SysMsg(String.Format(GameMsgDef.g_sNowNotOnLineOrOnOtherServer, sHumName), TMsgColor.c_Red, TMsgType.t_Hint); return; } if ((nCount > 0)) { m_PlayObject.m_nBonusPoint = nCount; m_PlayObject.SendMsg(PlayObject, Grobal2.RM_ADJUST_BONUS, 0, 0, 0, 0, ""); return; } sMsg = String.Format("未分配点数:%d 已分配点数:(DC:%d MC:%d SC:%d AC:%d MAC:%d HP:%d MP:%d HIT:%d SPEED:%d)", m_PlayObject.m_nBonusPoint, m_PlayObject.m_BonusAbil.DC, m_PlayObject.m_BonusAbil.MC, m_PlayObject.m_BonusAbil.SC, m_PlayObject.m_BonusAbil.AC, m_PlayObject.m_BonusAbil.MAC, m_PlayObject.m_BonusAbil.HP, m_PlayObject.m_BonusAbil.MP, m_PlayObject.m_BonusAbil.Hit, m_PlayObject.m_BonusAbil.Speed); PlayObject.SysMsg(String.Format("%s的属性点数为:%s", sHumName, sMsg), TMsgColor.c_Red, TMsgType.t_Hint); }
public void ShowDenyIPaddrLogon(TPlayObject PlayObject, string[] @Params) { int nCount; M2Share.g_DenyIPAddrList.__Lock(); try { nCount = M2Share.g_DenyIPAddrList.Count; if (M2Share.g_DenyIPAddrList.Count <= 0) { PlayObject.SysMsg("禁止登录角色列表为空。", TMsgColor.c_Green, TMsgType.t_Hint); } if (nCount > 0) { for (int I = 0; I < M2Share.g_DenyIPAddrList.Count; I++) { PlayObject.SysMsg(M2Share.g_DenyIPAddrList[I], TMsgColor.c_Green, TMsgType.t_Hint); } } } finally { M2Share.g_DenyIPAddrList.UnLock(); } }
public void ChangeItemName(string[] @params, TPlayObject PlayObject) { int nMakeIndex; int nItemIndex; string sMakeIndex = @params.Length > 0 ? @params[0] : ""; string sItemIndex = @params.Length > 1 ? @params[1] : ""; string sItemName = @params.Length > 2 ? @params[2] : ""; if ((PlayObject.m_btPermission < 6)) { return; } if ((sMakeIndex == "") || (sItemIndex == "") || (sItemName == "")) { PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " 物品编号 物品ID号 物品名称", TMsgColor.c_Red, TMsgType.t_Hint); return; } nMakeIndex = HUtil32.Str_ToInt(sMakeIndex, -1); nItemIndex = HUtil32.Str_ToInt(sItemIndex, -1); if ((nMakeIndex <= 0) || (nItemIndex < 0)) { PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " 物品编号 物品ID号 物品名称", TMsgColor.c_Red, TMsgType.t_Hint); return; } if (ItemUnit.AddCustomItemName(nMakeIndex, nItemIndex, sItemName)) { ItemUnit.SaveCustomItemName(); PlayObject.SysMsg("物品名称设置成功。", TMsgColor.c_Green, TMsgType.t_Hint); return; } PlayObject.SysMsg("此物品,已经设置了其它的名称!!!", TMsgColor.c_Red, TMsgType.t_Hint); }
public void DenyIPaddrLogon(TPlayObject PlayObject, string[] @Params) { string sIPaddr = @Params.Length > 0 ? @Params[0] : ""; string sFixDeny = @Params.Length > 1 ? @Params[3] : ""; if (sIPaddr == "") { PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " IP地址 是否永久封(0,1)", TMsgColor.c_Red, TMsgType.t_Hint); return; } M2Share.g_DenyIPAddrList.__Lock(); try { if ((sFixDeny != "") && (sFixDeny[0] == '1')) { //M2Share.g_DenyIPAddrList.Add(sIPaddr, ((1) as Object)); M2Share.SaveDenyIPAddrList(); PlayObject.SysMsg(sIPaddr + "已加入禁止登录IP列表", TMsgColor.c_Green, TMsgType.t_Hint); } else { //M2Share.g_DenyIPAddrList.Add(sIPaddr, ((0) as Object)); PlayObject.SysMsg(sIPaddr + "已加入临时禁止登录IP列表", TMsgColor.c_Green, TMsgType.t_Hint); } } finally { M2Share.g_DenyIPAddrList.UnLock(); } }
public void Hunger(TPlayObject PlayObject, string[] @Params) { string sHumanName = @Params.Length > 0 ? @Params[0] : ""; int nHungerPoint = @Params.Length > 1 ? Convert.ToInt32(@Params[1]) : -1; TPlayObject m_PlayObject; if ((PlayObject.m_btPermission < 6)) { return; } if ((sHumanName == "") || (nHungerPoint < 0)) { PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " 人物名称 能量值", TMsgColor.c_Red, TMsgType.t_Hint); return; } m_PlayObject = UserEngine.GetPlayObject(sHumanName); if (m_PlayObject != null) { m_PlayObject.m_nHungerStatus = nHungerPoint; m_PlayObject.SendMsg(m_PlayObject, Grobal2.RM_MYSTATUS, 0, 0, 0, 0, ""); m_PlayObject.RefMyStatus(); PlayObject.SysMsg(sHumanName + " 的能量值已改变。", TMsgColor.c_Green, TMsgType.t_Hint); } else { PlayObject.SysMsg(sHumanName + "没有在线!!!", TMsgColor.c_Red, TMsgType.t_Hint); } }
public void ReNewLevel(string[] @Params, TPlayObject PlayObject) { string sHumanName = @Params.Length > 0 ? @Params[0] : ""; string sLevel = @Params.Length > 1 ? @Params[1] : ""; if ((PlayObject.m_btPermission < 6)) { return; } if ((sHumanName == "") || ((sHumanName != "") && (sHumanName[0] == '?'))) { PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " 人物名称 点数(为空则查看)", TMsgColor.c_Red, TMsgType.t_Hint); return; } int nLevel = HUtil32.Str_ToInt(sLevel, -1); TPlayObject m_PlayObject = UserEngine.GetPlayObject(sHumanName); if (m_PlayObject != null) { if ((nLevel >= 0) && (nLevel <= 255)) { m_PlayObject.m_btReLevel = (byte)nLevel; m_PlayObject.RefShowName(); } PlayObject.SysMsg(sHumanName + " 的转生等级为 " + PlayObject.m_btReLevel, TMsgColor.c_Green, TMsgType.t_Hint); } else { PlayObject.SysMsg(sHumanName + " 没在线上!!!", TMsgColor.c_Red, TMsgType.t_Hint); } }
public void DelGuild(TPlayObject PlayObject, string[] @Params) { string sGuildName = @Params.Length > 0 ? @Params[0] : ""; if (M2Share.nServerIndex != 0) { PlayObject.SysMsg("只能在主服务器上才可以使用此命令删除行会!!!", TMsgColor.c_Red, TMsgType.t_Hint); return; } if (sGuildName == "") { if (GameConfig.boGMShowFailMsg) { PlayObject.SysMsg("命令格式: @" + base.Attributes.Name + " 行会名称", TMsgColor.c_Red, TMsgType.t_Hint); } return; } if (GuildManager.DelGuild(sGuildName)) { UserEngine.SendServerGroupMsg(Grobal2.SS_206, M2Share.nServerIndex, sGuildName); } else { PlayObject.SysMsg("没找到" + sGuildName + "这个行会!!!", TMsgColor.c_Red, TMsgType.t_Hint); } }
public unsafe void RefineWeapon(TPlayObject PlayObject, string[] @Params) { int nDc = @Params.Length > 0 ? Convert.ToInt32(@Params[0]) : 0; int nMc = @Params.Length > 1 ? Convert.ToInt32(@Params[1]) : 0; int nSc = @Params.Length > 2 ? Convert.ToInt32(@Params[2]) : 0; int nHit = @Params.Length > 3 ? Convert.ToInt32(@Params[3]) : 0; if ((nDc + nMc + nSc) > 10) { return; } if (PlayObject.m_UseItems[TPosition.U_WEAPON]->wIndex <= 0) { return; } PlayObject.m_UseItems[TPosition.U_WEAPON]->btValue[0] = (byte)nDc; PlayObject.m_UseItems[TPosition.U_WEAPON]->btValue[1] = (byte)nMc; PlayObject.m_UseItems[TPosition.U_WEAPON]->btValue[2] = (byte)nSc; PlayObject.m_UseItems[TPosition.U_WEAPON]->btValue[5] = (byte)nHit; PlayObject.SendUpdateItem(PlayObject.m_UseItems[TPosition.U_WEAPON]); PlayObject.RecalcAbilitys(); PlayObject.SendMsg(PlayObject, Grobal2.RM_ABILITY, 0, 0, 0, 0, ""); PlayObject.SendMsg(PlayObject, Grobal2.RM_SUBABILITY, 0, 0, 0, 0, ""); M2Share.MainOutMessage("[武器调整]" + PlayObject.m_sCharName + " DC:" + nDc + " MC" + nMc + " SC" + nSc + " HIT:" + nHit); }
public void RestHero(string[] @Params, TPlayObject PlayObject) { if ((PlayObject.m_MyHero != null)) { // ((THeroObject)(PlayObject.m_MyHero)).RestHero(); } }
public void EnableSendMsg(string[] @params, TPlayObject PlayObject) { string sHumanName = @params.Length > 0 ? @params[0] : ""; TPlayObject m_PlayObject; if (sHumanName == "") { PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " 人物名称", TMsgColor.c_Red, TMsgType.t_Hint); return; } for (int I = M2Share.g_DisableSendMsgList.Count - 1; I >= 0; I--) { if (M2Share.g_DisableSendMsgList.Count <= 0) { break; } if ((sHumanName).ToLower().CompareTo((M2Share.g_DisableSendMsgList[I]).ToLower()) == 0) { m_PlayObject = UserEngine.GetPlayObject(sHumanName); if (m_PlayObject != null) { m_PlayObject.m_boFilterSendMsg = false; } M2Share.g_DisableSendMsgList.RemoveAt(I); M2Share.SaveDisableSendMsgList(); PlayObject.SysMsg(sHumanName + " 已从禁言列表中删除。", TMsgColor.c_Green, TMsgType.t_Hint); return; } } PlayObject.SysMsg(sHumanName + " 没有被禁言!!!", TMsgColor.c_Red, TMsgType.t_Hint); }
public void GuildWar(string[] @Parsms, TPlayObject PlayObject) { if ((PlayObject.m_btPermission < 6)) { return; } }
public void SpirtStart(string[] @Params, TPlayObject PlayObject) { string sParam1 = @Params.Length > 0 ? @Params[0] : ""; if ((PlayObject.m_btPermission < 6)) { return; } if ((sParam1 != "") && (sParam1[0] == '?')) { PlayObject.SysMsg("此命令用于开始祈祷生效宝宝叛变。", TMsgColor.c_Red, TMsgType.t_Hint); return; } int nTime = HUtil32.Str_ToInt(sParam1, -1); uint dwTime = 0; if (nTime > 0) { dwTime = (uint)nTime * 1000; } else { dwTime = M2Share.g_Config.dwSpiritMutinyTime; } M2Share.g_dwSpiritMutinyTick = HUtil32.GetTickCount() + dwTime; PlayObject.SysMsg("祈祷叛变已开始。持续时长 " + dwTime / 1000 + " 秒。", TMsgColor.c_Green, TMsgType.t_Hint); }
public void ChangeSuperManMode(string[] @Params, TPlayObject PlayObject) { int nPermission = @Params.Length > 0 ? int.Parse(@Params[0]) : 0; string sParam1 = @Params.Length > 1 ? @Params[1] : ""; bool boFlag = @Params.Length > 2 ? bool.Parse(@Params[2]) : false; if ((PlayObject.m_btPermission < nPermission)) { PlayObject.SysMsg(GameMsgDef.g_sGameCommandPermissionTooLow, TMsgColor.c_Red, TMsgType.t_Hint); return; } if (((sParam1 != "") && (sParam1[0] == '?'))) { PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandParamUnKnow, this.Attributes.Name, ""), TMsgColor.c_Red, TMsgType.t_Hint); return; } PlayObject.m_boSuperMan = boFlag; if (PlayObject.m_boSuperMan) { PlayObject.SysMsg(GameMsgDef.sSupermanMode, TMsgColor.c_Green, TMsgType.t_Hint); } else { PlayObject.SysMsg(GameMsgDef.sReleaseSupermanMode, TMsgColor.c_Green, TMsgType.t_Hint); } }
public unsafe void ShowUseItem(string[] @Params, TPlayObject PlayObject) { string sHumanName = @Params.Length > 0 ? @Params[0] : ""; TUserItem *UserItem = null; if ((sHumanName == "") || ((sHumanName != "") && (sHumanName[1] == '?'))) { PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandParamUnKnow, this.Attributes.Name, GameMsgDef.g_sGameCommandShowUseItemInfoHelpMsg), TMsgColor.c_Red, TMsgType.t_Hint); return; } TPlayObject m_PlayObject = UserEngine.GetPlayObject(sHumanName); if (m_PlayObject == null) { PlayObject.SysMsg(String.Format(GameMsgDef.g_sNowNotOnLineOrOnOtherServer, sHumanName), TMsgColor.c_Red, TMsgType.t_Hint); return; } for (int I = m_PlayObject.m_UseItems.GetLowerBound(0); I <= m_PlayObject.m_UseItems.GetUpperBound(0); I++) { UserItem = m_PlayObject.m_UseItems[I]; if (UserItem->wIndex == 0) { continue; } PlayObject.SysMsg(String.Format("%s[%s]IDX[%d]系列号[%d]持久[%d-%d]", M2Share.GetUseItemName(I), UserEngine.GetStdItemName(UserItem->wIndex), UserItem->wIndex, UserItem->MakeIndex, UserItem->Dura, UserItem->DuraMax), TMsgColor.c_Blue, TMsgType.t_Hint); } }
public void SignMapMove(string[] @Params, TPlayObject PlayObject) { try { TEnvirnoment Envir = null; if ((PlayObject.m_btPermission >= this.Attributes.nPermissionMin) || M2Share.CanMoveMap(PlayObject.m_sLastMapName)) { Envir = M2Share.g_MapManager.FindMap(PlayObject.m_sLastMapName); if (Envir != null) { if (Envir.CanWalk(PlayObject.m_nLastCurrX, PlayObject.m_nLastCurrY, true)) { PlayObject.SpaceMove(PlayObject.m_sLastMapName, PlayObject.m_nLastCurrX, PlayObject.m_nLastCurrY, 0); } else { PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandPositionMoveCanotMoveToMap1, PlayObject.m_sLastMapName, PlayObject.m_nLastCurrX, PlayObject.m_nLastCurrY), TMsgColor.c_Green, TMsgType.t_Hint); } } } else { PlayObject.SysMsg(String.Format(GameMsgDef.g_sTheMapDisableMove, PlayObject.m_sLastMapName, Envir.sMapDesc), TMsgColor.c_Red, TMsgType.t_Hint); } } catch (Exception E) { M2Share.MainOutMessage("[Exceptioin] TPlayObject.CmdPositionMove"); M2Share.MainOutMessage(E.Message); } }
public void TestFire(TPlayObject PlayObject, string[] @Params) { int nRange = @Params.Length > 0 ? int.Parse(@Params[0]) : 0; int nType = @Params.Length > 1 ? int.Parse(@Params[1]) : 0; uint nTime = @Params.Length > 2 ? uint.Parse(@Params[2]) : 0; int nPoint = @Params.Length > 3 ? int.Parse(@Params[3]) : 0; TFireBurnEvent FireBurnEvent; int nMinX = PlayObject.m_nCurrX - nRange; int nMaxX = PlayObject.m_nCurrX + nRange; int nMinY = PlayObject.m_nCurrY - nRange; int nMaxY = PlayObject.m_nCurrY + nRange; for (int nX = nMinX; nX <= nMaxX; nX++) { for (int nY = nMinY; nY <= nMaxY; nY++) { if (((nX < nMaxX) && (nY == nMinY)) || ((nY < nMaxY) && (nX == nMinX)) || (nX == nMaxX) || (nY == nMaxY)) { FireBurnEvent = new TFireBurnEvent(PlayObject, nX, nY, nType, nTime * 1000, nPoint); M2Share.g_EventManager.AddEvent(FireBurnEvent); } } } }
public void ChangeObMode(string[] @Params, TPlayObject PlayObject) { int nPermission = @Params.Length > 0 ? int.Parse(@Params[0]) : 0; string sParam1 = @Params.Length > 1 ? @Params[1] : ""; bool boFlag = @Params.Length > 2 ? bool.Parse(@Params[2]) : false; if (((sParam1 != "") && (sParam1[0] == '?'))) { PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandParamUnKnow, this.Attributes.Name, ""), TMsgColor.c_Red, TMsgType.t_Hint); return; } if (boFlag) { PlayObject.SendRefMsg(Grobal2.RM_DISAPPEAR, 0, 0, 0, 0, "");// 01/21 强行发送刷新数据到客户端,解决GM登录隐身有影子问题 } PlayObject.m_boObMode = boFlag; if (PlayObject.m_boObMode) { PlayObject.SysMsg(GameMsgDef.sObserverMode, TMsgColor.c_Green, TMsgType.t_Hint); } else { PlayObject.SysMsg(GameMsgDef.g_sReleaseObserverMode, TMsgColor.c_Green, TMsgType.t_Hint); } }
public void PrvMsg(TPlayObject PlayObject, string[] @Params) { int nPermission = @Params.Length > 0 ? int.Parse(@Params[0]) : 0; string sHumanName = @Params.Length > 1 ? @Params[1] : ""; if ((sHumanName == "") || ((sHumanName != "") && (sHumanName[1] == '?'))) { PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandParamUnKnow, this.Attributes.Name, GameMsgDef.g_sGameCommandPrvMsgHelpMsg), TMsgColor.c_Red, TMsgType.t_Hint); return; } for (int I = PlayObject.m_BlockWhisperList.Count - 1; I >= 0; I--) { if (PlayObject.m_BlockWhisperList.Count <= 0) { break; } if ((PlayObject.m_BlockWhisperList[I]).ToLower().CompareTo((sHumanName).ToLower()) == 0) { PlayObject.m_BlockWhisperList.RemoveAt(I); PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandPrvMsgUnLimitMsg, sHumanName), TMsgColor.c_Green, TMsgType.t_Hint); return; } } PlayObject.m_BlockWhisperList.Add(sHumanName); PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandPrvMsgLimitMsg, sHumanName), TMsgColor.c_Green, TMsgType.t_Hint); }
public void ChangeDearName(TPlayObject PlayObject, string[] @Params) { string sHumanName = @Params.Length > 0 ? @Params[0] : ""; string sDearName = @Params.Length > 1 ? @Params[1] : ""; if ((sHumanName == "") || (sDearName == "")) { PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " 人物名称 配偶名称(如果为 无 则清除)", TMsgColor.c_Red, TMsgType.t_Hint); return; } TPlayObject m_PlayObject = UserEngine.GetPlayObject(sHumanName); if (m_PlayObject != null) { if ((sDearName).ToLower().CompareTo(("无").ToLower()) == 0) { m_PlayObject.m_sDearName = ""; m_PlayObject.RefShowName(); PlayObject.SysMsg(sHumanName + " 的配偶名清除成功。", TMsgColor.c_Green, TMsgType.t_Hint); } else { m_PlayObject.m_sDearName = sDearName; m_PlayObject.RefShowName(); PlayObject.SysMsg(sHumanName + " 的配偶名更改成功。", TMsgColor.c_Green, TMsgType.t_Hint); } } else { PlayObject.SysMsg(String.Format(GameMsgDef.g_sNowNotOnLineOrOnOtherServer, sHumanName), TMsgColor.c_Red, TMsgType.t_Hint); } }
/// <summary> /// 申请开启行会战 /// </summary> /// <param name="PlayObject"></param> /// <param name="sGuildName"></param> /// <returns></returns> private int ReQuestGuildWar(TPlayObject PlayObject, string sGuildName) { int result = 0; try { if (GuildManager.FindGuild(sGuildName) != null) { if (PlayObject.m_nGold >= M2Share.g_Config.nGuildWarPrice) { PlayObject.DecGold(M2Share.g_Config.nGuildWarPrice); PlayObject.GoldChanged(); PlayObject.ReQuestGuildWar(sGuildName); } else { PlayObject.SysMsg("您没有足够的金币!!!", TMsgColor.c_Red, TMsgType.t_Hint); } } else { PlayObject.SysMsg("行会 " + sGuildName + " 不存在!!!", TMsgColor.c_Red, TMsgType.t_Hint); } result = 1; } catch { M2Share.MainOutMessage("{异常} TGuildOfficial.ReQuestGuildWar"); } return(result); }
private void RepairWallNow(int nWallIndex, TPlayObject PlayObject) { try { if (this.m_Castle == null) { PlayObject.SysMsg("NPC不属于城堡!!!", TMsgColor.c_Red, TMsgType.t_Hint); return; } if (this.m_Castle.m_nTotalGold >= M2Share.g_Config.nRepairWallPrice) { if (this.m_Castle.RepairWall(nWallIndex)) { this.m_Castle.m_nTotalGold -= M2Share.g_Config.nRepairWallPrice; PlayObject.SysMsg("修理成功。", TMsgColor.c_Green, TMsgType.t_Hint); } else { PlayObject.SysMsg("城门不需要修理!!!", TMsgColor.c_Green, TMsgType.t_Hint); } } else { PlayObject.SysMsg("城内资金不足!!!", TMsgColor.c_Red, TMsgType.t_Hint); } } catch { M2Share.MainOutMessage("{异常} TGuildOfficial.RepairWallNow"); } }
public void IncPkPoint(string[] @Params, TPlayObject PlayObject) { string sHumanName = @Params.Length > 0 ? @Params[0] : ""; int nPoint = @Params.Length > 1 ? int.Parse(@Params[1]) : 0; if (((sHumanName != "") && (sHumanName[1] == '?'))) { PlayObject.SysMsg(string.Format(GameMsgDef.g_sGameCommandParamUnKnow, this.Attributes.Name, GameMsgDef.g_sGameCommandIncPkPointHelpMsg), TMsgColor.c_Red, TMsgType.t_Hint); return; } TPlayObject m_PlayObject = UserEngine.GetPlayObject(sHumanName); if (m_PlayObject == null) { PlayObject.SysMsg(string.Format(GameMsgDef.g_sNowNotOnLineOrOnOtherServer, sHumanName), TMsgColor.c_Red, TMsgType.t_Hint); return; } m_PlayObject.m_nPkPoint += nPoint; m_PlayObject.RefNameColor(); if (nPoint > 0) { PlayObject.SysMsg(string.Format(GameMsgDef.g_sGameCommandIncPkPointAddPointMsg, sHumanName, nPoint), TMsgColor.c_Green, TMsgType.t_Hint); } else { PlayObject.SysMsg(string.Format(GameMsgDef.g_sGameCommandIncPkPointDecPointMsg, sHumanName, -nPoint), TMsgColor.c_Green, TMsgType.t_Hint); } }