Example #1
0
        /// <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);
            }
        }
Example #2
0
        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;
                }
            }
        }
Example #3
0
        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();
        }
Example #4
0
        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);
            }
        }
Example #5
0
        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);//不允许传送
            }
        }
Example #6
0
 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);
            }
        }
Example #9
0
        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);
        }
Example #10
0
        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);
        }
Example #12
0
        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();
            }
        }
Example #13
0
        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);
            }
        }
Example #14
0
        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);
            }
        }
Example #15
0
        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);
            }
        }
Example #16
0
        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);
        }
Example #17
0
 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);
        }
Example #19
0
 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);
        }
Example #21
0
        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);
            }
        }
Example #23
0
 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);
     }
 }
Example #24
0
        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);
            }
        }
Example #26
0
        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);
        }
Example #27
0
        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);
            }
        }
Example #28
0
        /// <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);
        }
Example #29
0
 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");
     }
 }
Example #30
0
        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);
            }
        }