//发送存钱消息 public int SaveMoneyToBank(int amount) { if (amount == 0) { return(0); } CCharacterData pCharData = CObjectManager.Instance.getPlayerMySelf().GetCharacterData(); if (pCharData != null) { if ((pCharData.Get_Money()) >= amount) { byte SaveType = (byte)CGBankMoney.OPtype.SAVE_MONEY; CGBankMoney msg = new CGBankMoney(); msg.SaveType = (SaveType); msg.AmountMoney = (amount); NetManager.GetNetManager().SendPacket(msg); } else { CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_INTERCOURSE, "存钱数目超过身上金钱数目"); } } return(0); }
public float GetFloatData(string typeName) { if (CObjectManager.Instance.getPlayerMySelf() == null) { return(-1); } CCharacterData pCharData = CObjectManager.Instance.getPlayerMySelf().GetCharacterData(); if (typeName == "EXP") //经验 { if (pCharData.Get_Exp() < 0) { return(0); } else { return(pCharData.Get_Exp()); } } else if (typeName == "NEEDEXP") //升级经验 { return(pCharData.Get_MaxExp()); } return(0); }
//发送存元宝消息 public int SaveRMBToBank(string szRMB) { int Amount = int.Parse(szRMB); if (Amount == 0) { return(0); } CCharacterData pCharData = CObjectManager.Instance.getPlayerMySelf().GetCharacterData(); if (pCharData != null) { if ((pCharData.Get_RMB()) >= Amount) { byte SaveType = (byte)CGBankMoney.OPtype.SAVE_RMB; CGBankMoney msg = new CGBankMoney(); msg.SaveType = SaveType; msg.AmountRMB = Amount; NetManager.GetNetManager().SendPacket(msg); } else { CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_INTERCOURSE, "存元宝的数目超过身上元宝的数目"); } } return(0); }
//------------ //角色属性创建/销毁 //------------ public CCharacterData CharacterData_Create(CObject_Character character) { //创建新的角色数据 CCharacterData pNewCharacterData = new CCharacterData(character); m_mapAllCharacterData[character.ID] = pNewCharacterData; return(pNewCharacterData); }
internal void PacketItem_UserEquip(CObject_Item item) { if (item == null) { return; } //摆摊时不可以随便换装 //...TODO //验证是否可以使用 if (!item.Rule(ITEM_RULE.RULE_USE)) { CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, item.RuleFailMessage(ITEM_RULE.RULE_USE)); return; } CCharacterData pCharData = CObjectManager.Instance.getPlayerMySelf().GetCharacterData(); if (pCharData == null) { LogManager.LogError("playerMyself's charData is null."); return; } int needLevel = item.GetNeedLevel(); int playerLevel = pCharData.Get_Level(); if (playerLevel < needLevel) { CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "等级不够"); return; } //是否鉴定 if (((CObject_Item_Equip)item).GetEquipQuantity() == EQUIP_QUALITY.BLUE_EQUIP && ((CObject_Item_Equip)item).GetEquipAttrib() == EQUIP_ATTRIB.EQUIP_ATTRIB_UNIDENTIFY) { CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "此物品需要鉴定"); return; } //取得详细信息 string szExtraInfo = item.GetExtraDesc(); //如果没有详细信息,从服务器上请求详细信息 if (szExtraInfo == "") { CDataPool.Instance.UserBag_AskExtraInfo(item.PosIndex); } CGUseEquip msg = new CGUseEquip(); msg.BagIndex = (byte)item.PosIndex; NetManager.GetNetManager().SendPacket(msg); }
public BankMoney GetBagMoney() { CCharacterData pCharData = CObjectManager.Instance.getPlayerMySelf().GetCharacterData(); int nMoney = 0; if (pCharData != null) { nMoney = pCharData.Get_Money(); } return(TransformCoin(nMoney)); }
public override void UpdateCharRace() { m_pCharRace = null; CCharacterData pCharacterData = GetCharacterData(); if (pCharacterData != null && pCharacterData.Get_RaceID() != MacroDefine.INVALID_ID) { DBC.COMMON_DBC <_DBC_CHAR_RACE> raceDBC = CDataBaseSystem.Instance.GetDataBase <_DBC_CHAR_RACE>((int)DataBaseStruct.DBC_CHAR_RACE); if (raceDBC != null) { m_pCharRace = raceDBC.Search_Index_EQU(pCharacterData.Get_RaceID()); if (m_pCharRace != null) { LogManager.Log("Race ID:" + pCharacterData.Get_RaceID().ToString() + "Model ID:" + m_pCharRace.nModelID.ToString()); } } } }
public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer) { if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcMain) { //刷新心法升级后的客户端数据(心法等级、当前金钱、当前经验值) GCStudyXinfa packet = pPacket as GCStudyXinfa; CCharacterData pCharData = CObjectManager.Instance.getPlayerMySelf().GetCharacterData(); GCStudyXinfa._STUDERESULT_INFO studyResult = packet.StudyResult; pCharData.Set_SkillClass(studyResult.m_idXinfa, studyResult.m_StudedLevel); // 刷新所有技能 [10/18/2011 Ivan edit] pCharData.UpdateAllSkillClassState(); string Action = string.Format("{0};0", (int)(ENUM_BASE_ACTION.BASE_ACTION_XINFA_LEVEL_UP)); CObjectManager.Instance.getPlayerMySelf().SetChatMoodAction(Action); //发送更新界面的事件 CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_SKILLSTUDY_SUCCEED); CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_SKILL_UPDATE); } return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); }
// 得到自己的队伍信息(从自己的数据池获取) void FillMyInfo(TeamMemberInfo member) { if (member == null) { throw new NullReferenceException("team member in FillMyInfo(member)"); } CObject_PlayerMySelf pMe = CObjectManager.Instance.getPlayerMySelf(); CCharacterData pMyData = pMe.GetCharacterData(); if (null == pMyData) { return; } member.m_szNick = pMyData.Get_Name(); member.m_uFamily = pMyData.Get_MenPai(); member.m_uDataID = pMyData.Get_RaceID(); member.m_uLevel = pMyData.Get_Level(); member.m_nPortrait = pMyData.Get_PortraitID(); member.m_WorldPos.m_fX = pMe.GetPosition().x; member.m_WorldPos.m_fZ = pMe.GetPosition().z; member.m_nHP = pMyData.Get_HP(); member.m_dwMaxHP = pMyData.Get_MaxHP(); member.m_nMP = pMyData.Get_MP(); member.m_dwMaxMP = pMyData.Get_MaxMP(); member.m_nAnger = 100; // 客户端没有 member.m_WeaponID = pMyData.Get_Equip(HUMAN_EQUIP.HEQUIP_WEAPON); member.m_CapID = pMyData.Get_Equip(HUMAN_EQUIP.HEQUIP_CAP); member.m_ArmourID = pMyData.Get_Equip(HUMAN_EQUIP.HEQUIP_ARMOR); member.m_CuffID = pMyData.Get_Equip(HUMAN_EQUIP.HEQUIP_CUFF); member.m_FootID = pMyData.Get_Equip(HUMAN_EQUIP.HEQUIP_BOOT); member.m_uBackID = pMyData.Get_Equip(HUMAN_EQUIP.HEQUIP_BACK);// [8/30/2010 Sun] member.m_bDead = (pMe.CharacterLogic_Get() == ENUM_CHARACTER_LOGIC.CHARACTER_LOGIC_DEAD); member.m_uFaceMeshID = pMyData.Get_FaceMesh(); member.m_uHairMeshID = pMyData.Get_HairMesh(); member.m_uHairColor = pMyData.Get_HairColor(); }
public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer) { GCCharBaseAttrib charBaseAttribPacket = (GCCharBaseAttrib)pPacket; //LogManager.Log("RECV GCCharBaseAttrib : Flag=" + charBaseAttribPacket.Flag); if (GameProcedure.GetActiveProcedure() == (GameProcedure)GameProcedure.s_ProcMain) { //LogManager.LogWarning("RECV GCCharBaseAttrib : id=" + charBaseAttribPacket.ObjectID); CObjectManager pObjectManager = CObjectManager.Instance; CObject pObj = (CObject)(pObjectManager.FindServerObject(charBaseAttribPacket.ObjectID)); if (pObj == null || !(pObj is CObject_Character)) { return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); } bool bAddLoadTask = false; CCharacterData pCharacterData = ((CObject_Character)pObj).GetCharacterData(); if (charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_DATA_ID) && !bAddLoadTask) { try { //if (pObj is CObject_PlayerMySelf) //{ // LogManager.Log("主角收到RaceID:" + charBaseAttribPacket.DataID); //} //else if (pObj is CObject_PlayerOther) //{ // LogManager.Log("其他玩家收到RaceID:" + charBaseAttribPacket.DataID); //} pCharacterData.Set_RaceID(charBaseAttribPacket.DataID); //LogManager.LogWarning("SetRace in GCCharBaseAttribHandler = " + charBaseAttribPacket.DataID + " ObjectID= " + pObj.ServerID); } catch (Exception e) { LogManager.LogError(e.ToString()); } } if (charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_CAMP_ID)) { pCharacterData.Set_CampData(charBaseAttribPacket.CampData); } if (charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_NAME)) { string name = UIString.Instance.GetUnicodeString(charBaseAttribPacket.Name); pCharacterData.Set_Name(name); } // if(charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_TITLE)) // { // pCharacterData.Set_CurTitle(charBaseAttribPacket.getTitle()); // pCharacterData.Set_CurTitleType(charBaseAttribPacket.getTitleType()); // CEventSystem::GetMe().PushEvent(GE_CUR_TITLE_CHANGEED); // } if (charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_LEVEL)) { pCharacterData.Set_Level(charBaseAttribPacket.Level); } if (charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_HP_PERCENT)) { pCharacterData.Set_HPPercent(charBaseAttribPacket.HPPercent / 100.0f); } if (charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_MP_PERCENT)) { pCharacterData.Set_MPPercent(charBaseAttribPacket.MPPercent / 100.0f); } // if(charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_RAGE)) // { // pCharacterData.Set_Rage(charBaseAttribPacket.getRage() ); // } if (charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_STEALTH_LEVEL)) { pCharacterData.Set_StealthLevel(charBaseAttribPacket.StealthLevel); } // if(charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_SIT)) // { // //pCharacterData.Set_Sit(charBaseAttribPacket.IsSit() ); // } if (charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_MOVE_SPEED)) { if (pObj is CObject_PlayerMySelf) { LogManager.Log("主角收到MOVE_SPEED:" + charBaseAttribPacket.MoveSpeed); } pCharacterData.Set_MoveSpeed(charBaseAttribPacket.MoveSpeed); } // if(charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_ATTACK_SPEED)) // { // //必须是主角 // if(pObj == CObjectManager::GetMe().GetMySelf()) // pCharacterData.Set_AttackSpeed((int)charBaseAttribPacket.AttackSpeed); // } // if(charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_OWNER)) // { // pCharacterData.Set_OwnerID(charBaseAttribPacket.OwnerID); // } // if(charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_OCCUPANT)) // { // pCharacterData.Set_OccupantGUID(charBaseAttribPacket.OccupantGUID); // } if (charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_PORTRAIT_ID)) { pCharacterData.Set_PortraitID(charBaseAttribPacket.PortraitID); } if (charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_MODEL_ID) && !bAddLoadTask) { pCharacterData.Set_ModelID(charBaseAttribPacket.ModelID); } if (charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_MOUNT_ID) && !bAddLoadTask) { pCharacterData.Set_MountID(charBaseAttribPacket.MountID);//坐骑ID } if (charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_PLAYER_DATA)) { pCharacterData.Set_FaceMesh(charBaseAttribPacket.FaceMesh); pCharacterData.Set_HairMesh(charBaseAttribPacket.HairMesh); pCharacterData.Set_HairColor(charBaseAttribPacket.HairColor); } // if(charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_IS_IN_STALL)) // { // pCharacterData.Set_IsInStall(charBaseAttribPacket.getIsOpen()); // } // if(charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_STALL_NAME)) // { // pCharacterData.Set_StallName(charBaseAttribPacket.getStallName()); // } // // if(charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_STALL_NAME)) // { // pCharacterData.Set_StallName(charBaseAttribPacket.getStallName()); // } // pObj.SetMsgTime(CGameProcedure::s_pTimeSystem.GetTimeNow()); //如果不是玩家自己 // if(pObj != (CObject*)CObjectManager::GetMe().GetMySelf() && charBaseAttribPacket.IsUpdateAttrib(ENUM_UPDATE_CHAR_ATT.UPDATE_CHAR_ATT_AITYPE)) /// { // pCharacterData.Set_AIType(charBaseAttribPacket.getAIType()); // } } else { } return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); }
public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase packet, ref Peer pPlayer) { if (GameProcedure.GetActiveProcedure() == (GameProcedure)GameProcedure.s_ProcMain) { GCDetailEquipList pPacket = packet as GCDetailEquipList; CObject pObj = CObjectManager.Instance.FindServerObject((int)pPacket.ObjId); if (pObj == null || !(pObj is CObject_Character)) { LogManager.LogError("找不到对应的NPC, ID:" + pPacket.ObjId); return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); } CCharacterData pCharacterData = ((CObject_Character)pObj).GetCharacterData(); //刷入数据池 uint dwEquipMask = pPacket.PartFlags; if (pObj != (CObject)CObjectManager.Instance.getPlayerMySelf()) { for (int i = 0; i < (int)HUMAN_EQUIP.HEQUIP_NUMBER; i++) { if ((dwEquipMask & (1 << i)) != 0) { _ITEM item = pPacket.GetEquipData((HUMAN_EQUIP)i); CObject_Item pItemObj = ObjectSystem.Instance.NewItem(item.m_ItemIndex); if (pItemObj == null) { CDataPool.Instance.OtherPlayerEquip_SetItem((HUMAN_EQUIP)i, null, true); } else { pItemObj.SetGUID((ushort)item.m_ItemGUID.m_World, (ushort)item.m_ItemGUID.m_Server, (uint)item.m_ItemGUID.m_Serial); pItemObj.SetExtraInfo(ref item); pItemObj.SetTypeOwner(ITEM_OWNER.IO_PLAYEROTHER_EQUIP); pItemObj.PosIndex = (short)i; CDataPool.Instance.OtherPlayerEquip_SetItem((HUMAN_EQUIP)i, pItemObj, true); } } else { CDataPool.Instance.OtherPlayerEquip_SetItem((HUMAN_EQUIP)i, null, true); } } // CObject_PlayerOther* TargetAvatar = CObjectManager::GetMe()->GetTarget_Avatar(); // // TargetAvatar->GetCharacterData()->Set_RaceID( ((CObject_Character*)pObj)->GetCharacterData()->Get_RaceID() ); // for(INT i=0; i<HEQUIP_NUMBER; i++) // { // TargetAvatar->GetCharacterData()->Set_Equip((HUMAN_EQUIP)i,((CObject_Character*)pObj)->GetCharacterData()->Get_Equip((HUMAN_EQUIP)i)); // } // TargetAvatar->SetFaceDir(0.0f); // // CDataPool::GetMe()->Copy_To_TargetEquip(pObj); // 更新其他玩家身上的装备到ActionSystem CActionSystem.Instance.OtherPlayerEquip_Update(); // 通知界面事件 CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_OTHERPLAYER_UPDATE_EQUIP); } else { for (int i = 0; i < (int)HUMAN_EQUIP.HEQUIP_NUMBER; i++) { if ((dwEquipMask & (1 << i)) != 0) { _ITEM item = pPacket.GetEquipData((HUMAN_EQUIP)i); CObject_Item pItemObj = ObjectSystem.Instance.NewItem(item.m_ItemIndex); if (pItemObj == null) { continue; } pItemObj.SetGUID((ushort)item.m_ItemGUID.m_World, (ushort)item.m_ItemGUID.m_Server, (uint)item.m_ItemGUID.m_Serial); pItemObj.SetExtraInfo(ref item); pItemObj.SetTypeOwner(ITEM_OWNER.IO_MYSELF_EQUIP); pItemObj.PosIndex = (short)i; CDataPool.Instance.UserEquip_SetItem((HUMAN_EQUIP)i, pItemObj, true); } } // 更新主角身上的装备到ActionSystem CActionSystem.Instance.UserEquip_Update(); // 通知界面事件 CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_UPDATE_EQUIP); } } return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); }
public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPack, ref Peer pPlayer) { LogManager.Log("RECV GCCharEquipment Packet "); if (GameProcedure.GetActiveProcedure() == (GameProcedure)GameProcedure.s_ProcMain) { CObjectManager pObjectManager = CObjectManager.Instance; GCCharEquipment pPacket = (GCCharEquipment)pPack; CObject pObj = (CObject)(pObjectManager.FindServerObject((int)pPacket.getObjID())); if (pObj == null || !(pObj is CObject_Character)) { return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); } /* * static UINT pBuf[UPDATE_CHAR_ATT_NUMBERS]; * pPacket.FillParamBuf( (VOID*)pBuf ); * * SCommand_Object cmdTemp; * cmdTemp.m_wID = OC_UPDATE_EQUIPMENT; * cmdTemp.m_adwParam[0] = pPacket.getFlags(); * cmdTemp.m_apParam[1] = (VOID*)pBuf; * pObj.PushCommand(&cmdTemp ); */ //刷入数据池 CCharacterData pCharacterData = ((CObject_Character)pObj).GetCharacterData(); // if(pObj == (CObject*)CObjectManager::GetMe().GetMySelf()) { uint dwEquipFlag = pPacket.getFlags(); if ((dwEquipFlag & (1 << (int)HUMAN_EQUIP.HEQUIP_WEAPON)) != 0) { pCharacterData.Set_EquipGem(HUMAN_EQUIP.HEQUIP_WEAPON, (int)pPacket.getWeaponGemID()); pCharacterData.Set_Equip(HUMAN_EQUIP.HEQUIP_WEAPON, (int)pPacket.getWeaponID()); } if ((dwEquipFlag & (1 << (int)HUMAN_EQUIP.HEQUIP_CAP)) != 0) { pCharacterData.Set_Equip(HUMAN_EQUIP.HEQUIP_CAP, (int)pPacket.getCapID()); } if ((dwEquipFlag & (1 << (int)HUMAN_EQUIP.HEQUIP_ARMOR)) != 0) { pCharacterData.Set_Equip(HUMAN_EQUIP.HEQUIP_ARMOR, (int)pPacket.getArmourID()); pCharacterData.Set_EquipGem(HUMAN_EQUIP.HEQUIP_ARMOR, (int)pPacket.getArmourGemID()); } if ((dwEquipFlag & (1 << (int)HUMAN_EQUIP.HEQUIP_CUFF)) != 0) { pCharacterData.Set_Equip(HUMAN_EQUIP.HEQUIP_CUFF, (int)pPacket.getCuffID()); } if ((dwEquipFlag & (1 << (int)HUMAN_EQUIP.HEQUIP_BOOT)) != 0) { pCharacterData.Set_Equip(HUMAN_EQUIP.HEQUIP_BOOT, (int)pPacket.getBootID()); } // [8/30/2010 Sun] if ((dwEquipFlag & (1 << (int)HUMAN_EQUIP.HEQUIP_BACK)) != 0) { pCharacterData.Set_Equip(HUMAN_EQUIP.HEQUIP_BACK, (int)pPacket.getBackID()); } // 支持进入游戏时,服务器刷新肩甲 [4/27/2011 ivan edit] if ((dwEquipFlag & (1 << (int)HUMAN_EQUIP.HEQUIP_SASH)) != 0) { pCharacterData.Set_Equip(HUMAN_EQUIP.HEQUIP_SASH, (int)pPacket.getSashID()); pCharacterData.Set_EquipGem(HUMAN_EQUIP.HEQUIP_SASH, (int)pPacket.getSashGemID()); } } pObj.PushDebugString("GCCharEquipment"); pObj.SetMsgTime(GameProcedure.s_pTimeSystem.GetTimeNow()); } return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); }
public string GetData(string typeName) { if (CObjectManager.Instance.getPlayerMySelf() == null) { return(""); } CCharacterData pCharData = CObjectManager.Instance.getPlayerMySelf().GetCharacterData(); if (typeName == "LEVEL") //等级 { return(pCharData.Get_Level().ToString()); } else if (typeName == "HP") //生命值 { return(pCharData.Get_HP().ToString()); } else if (typeName == "MP") //魔法值 { return(pCharData.Get_MP().ToString()); } else if (typeName == "MENPAI") //门派 { return(pCharData.Get_MenPai().ToString()); } else if (typeName == "AMBIT") //境界名称 { return(pCharData.Get_Ambit().ToString()); } else if (typeName == "PORTRAIT") //头像 { //得到玩家和自己的头像 string pImageName = ""; //打开生物定义表 _DBC_CHAR_FACE pFaceImage = CDataBaseSystem.Instance.GetDataBase <_DBC_CHAR_FACE>((int)DataBaseStruct.DBC_CHAR_FACE).Search_Index_EQU(pCharData.Get_PortraitID()); if (pFaceImage != null) { pImageName = pFaceImage.pImageSetName; } //else // 默认状态不显示头像图标, 头像图标显示空 //{ // pFaceImage = (const _DBC_CHAR_FACE*)(s_pFaceImageDBC->Search_LineNum_EQU(0)); // pImageName = pFaceImage->pImageSetName; //}// return(pImageName); } else if (typeName == "STR") //力量 力量 金 { //基础值 return((pCharData.Get_STR() - pCharData.Get_BringSTR()).ToString()); } else if (typeName == "SPR") //灵气 灵力 木 { return((pCharData.Get_SPR() - pCharData.Get_BringSPR()).ToString()); } else if (typeName == "CON") //体制 体制 水 { return((pCharData.Get_CON() - pCharData.Get_BringCON()).ToString()); } else if (typeName == "INT") //定力 智力 火 { return((pCharData.Get_INT() - pCharData.Get_BringINT()).ToString()); } else if (typeName == "DEX") //身法 敏捷 土 { return((pCharData.Get_DEX() - pCharData.Get_BringDEX()).ToString()); } else if (typeName == "BRING_STR") { return(pCharData.Get_BringSTR().ToString()); } else if (typeName == "BRING_SPR") { return(pCharData.Get_BringSPR().ToString()); } else if (typeName == "BRING_CON") { return(pCharData.Get_BringCON().ToString()); } else if (typeName == "BRING_INT") { return(pCharData.Get_BringINT().ToString()); } else if (typeName == "BRING_DEX") { return(pCharData.Get_BringDEX().ToString()); } else if (typeName == "ATT_PHYSICS") //物理攻击力 { return(pCharData.Get_AttPhysics().ToString()); } else if (typeName == "ATT_MAGIC") // 魔法攻击力 [7/16/2011 ivan edit] { return(pCharData.Get_AttMagic().ToString()); } else if (typeName == "DEF_PHYSICS") //物理防御力 { return(pCharData.Get_DefPhysics().ToString()); } else if (typeName == "DEF_MAGIC") //魔法防御力 { return(pCharData.Get_DefMagic().ToString()); } else if (typeName == "HIT") //命中率 { return(pCharData.Get_Hit().ToString()); } else if (typeName == "MISS") //闪避率 { return(pCharData.Get_Miss().ToString()); } else if (typeName == "CRITRATE") //会心率 { return(pCharData.Get_CritRate().ToString()); } else if (typeName == "DEFCRITRATE") // 会心防御 [12/24/2010 ivan edit] { return(pCharData.Get_DefCritRate().ToString()); } else if (typeName == "MAXHP") //最大生命值 { return(pCharData.Get_MaxHP().ToString()); } else if (typeName == "MAXMP") //最大魔法值 { return(pCharData.Get_MaxMP().ToString()); } return("0"); }
protected override RC_RESULT OnCommand(SCommand_Object pCmd) { RC_RESULT rcResult = RC_RESULT.RC_SKIP; switch ((OBJECTCOMMANDDEF)pCmd.m_wID) { case OBJECTCOMMANDDEF.OC_UPDATE_EQUIPMENT: { uint dwModifyFlags = pCmd.GetValue <uint>(0); uint[] pData = pCmd.GetValue <uint[]>(1); int i; uint dwIndex = 0; for (i = 0; i < (int)HUMAN_EQUIP.HEQUIP_NUMBER; i++) { if ((dwModifyFlags & (1 << i)) != 0) { GetCharacterData().Set_Equip((HUMAN_EQUIP)i, (int)(pData[dwIndex])); dwIndex++; } } rcResult = RC_RESULT.RC_OK; } break; case OBJECTCOMMANDDEF.OC_UPDATE_TEAM_FLAG: { if (this != CObjectManager.Instance.getPlayerMySelf()) { CCharacterData pData = GetCharacterData(); pData.Set_HaveTeamFlag(pCmd.GetValue <byte>(0) == 1); pData.Set_TeamLeaderFlag(pCmd.GetValue <byte>(1) == 1); pData.Set_TeamFullFlag(pCmd.GetValue <byte>(2) == 1); } rcResult = RC_RESULT.RC_OK; } break; // case OBJECTCOMMANDDEF.OC_TEAM_FOLLOW_MEMBER: // { // CCharacterData* pData = GetCharacterData(); // // pData->Set_TeamFollowListCount( pCmd->m_adwParam[0] ); // // for( INT i=0; i<(INT)(pCmd->m_adwParam[0]); ++i ) // { // pData->Set_TeamFollowedMember(i, pCmd->m_adwParam[i+1]); // } // // rcResult = RC_RESULT.RC_OK; // } // break; // case OBJECTCOMMANDDEF.OC_UPDATE_TEAM_FOLLOW_FLAG: // { // CCharacterData* pData = GetCharacterData(); // // pData->Set_TeamFollowFlag( pCmd->m_abParam[0] ); // CharacterLogic_GetAI()->OnAIStopped(); // // rcResult = RC_RESULT.RC_OK; // } // break; default: return(base.OnCommand(pCmd)); } return(rcResult); }
protected void UpdateEquip(HUMAN_EQUIP point) { CCharacterData pCharacterData = GetCharacterData(); if (pCharacterData == null) { return; } //生成一个临时的Item对象 int nID = pCharacterData.Get_Equip(point); // CObject_Item_Equip pTempEquip = null; // // if(nID != MacroDefine.INVALID_ID) // { // pTempEquip = (CObject_Item_Equip)CObject_Item.NewItem(nID); // visualID = pTempEquip.GetVisualID(); // } //因为和物品相关的代码还没有完成,暂时直接访问数据库 [1/4/2012 ZZY] DBC.COMMON_DBC <_DBC_ITEM_EQUIP_BASE> equipBaseDBC = CDataBaseSystem.Instance.GetDataBase <_DBC_ITEM_EQUIP_BASE>((int)DataBaseStruct.DBC_ITEM_EQUIP_BASE); _DBC_ITEM_EQUIP_BASE pEquip = equipBaseDBC.Search_Index_EQU(nID); //如果是装备根据装配点装备物品 bool result = false; if (/*pTempEquip != null && ITEM_CLASS.ICLASS_EQUIP == pTempEquip.GetItemClass()*/ pEquip != null && pEquip.nVisualID != MacroDefine.INVALID_ID) { if (point == HUMAN_EQUIP.HEQUIP_WEAPON) { if (m_bHideWeapon == true && mRenderInterface != null) //如果当前正隐藏武器,那么不装备武器 [2012/4/18 ZZY] { mRenderInterface.changeRightWeapon(""); mRenderInterface.changeLeftWeapon(""); SetWeaponType(ENUM_WEAPON_TYPE.WEAPON_TYPE_NONE); } else { result = EquipItem_BodyLocator(/*pTempEquip.GetItemType()*/ point, pEquip.nVisualID); SetWeaponType((ENUM_WEAPON_TYPE)pEquip.nType); } } else { result = EquipItem_BodyPart(point, pEquip.nVisualID); } } else { //卸载装备 UnEquipItem(point); } // [5/6/2011 ivan edit] if (result == false) { UnEquipItem(point); } //CObject_Item.DestroyItem(pTempEquip); }
public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer) { GCDetailAttrib detailAttribPacket = (GCDetailAttrib)pPacket; //LogManager.Log("RECV GCCharBaseAttrib : Flag=" + detailAttribPacket.Flags); if (GameProcedure.GetActiveProcedure() == (GameProcedure)GameProcedure.s_ProcMain) { CObjectManager pObjectManager = CObjectManager.Instance; CObject pObj = (CObject)(pObjectManager.FindServerObject((int)detailAttribPacket.ObjID)); if (pObj == null || !(pObj is CObject_Character)) { return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); } CCharacterData pCharacterData = ((CObject_Character)pObj).GetCharacterData(); // //玩家详细的属性刷新 if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_LEVEL)) //0 { pCharacterData.Set_Level((int)detailAttribPacket.LV); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_HP)) //1 { pCharacterData.Set_HP(detailAttribPacket.HP); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_MP)) //2 { pCharacterData.Set_MP(detailAttribPacket.MP); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_EXP)) //3 { pCharacterData.Set_Exp(detailAttribPacket.Exp); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_MONEY)) //4 { pCharacterData.Set_Money(detailAttribPacket.Money); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_STR)) //5 { pCharacterData.Set_STR(detailAttribPacket.Str); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_SPR)) //6 { pCharacterData.Set_SPR(detailAttribPacket.SPR); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_CON)) //7 { pCharacterData.Set_CON(detailAttribPacket.CON); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_INT)) //8 { pCharacterData.Set_INT(detailAttribPacket.INT); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_DEX)) //9 { pCharacterData.Set_DEX(detailAttribPacket.DEX); } // if ( flagDetail.isSetBit( DETAIL_ATTRIB_POINT_REMAIN) )//10 // pCharacterData->Set_PointRemain(pPacket->GetPoint_Remain()); // 培养点数 if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_STR_RANDOM_POINT)) //力量 力量 { pCharacterData.Set_BringSTR(detailAttribPacket.StrRandomPoint); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_SPR_RANDOM_POINT)) //力量 力量 { pCharacterData.Set_BringSPR(detailAttribPacket.SprRandomPoint); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_CON_RANDOM_POINT)) { pCharacterData.Set_BringCON(detailAttribPacket.ConRandomPoint); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_INT_RANDOM_POINT)) { pCharacterData.Set_BringINT(detailAttribPacket.IntRandomPoint); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_DEX_RANDOM_POINT)) { pCharacterData.Set_BringDEX(detailAttribPacket.DexRandomPoint); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_ATT_PHYSICS)) //11 { pCharacterData.Set_AttPhysics(detailAttribPacket.PhysicsAttk); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_DEF_PHYSICS)) //12 { pCharacterData.Set_DefPhysics(detailAttribPacket.PhysicsDef); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_ATT_MAGIC)) //13 { pCharacterData.Set_AttMagic(detailAttribPacket.MagicAttk); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_DEF_MAGIC)) //14 { pCharacterData.Set_DefMagic(detailAttribPacket.MagicDef); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_MAXHP)) //15 { pCharacterData.Set_MaxHP(detailAttribPacket.MaxHP); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_MAXMP)) //16 { pCharacterData.Set_MaxMP(detailAttribPacket.MaxMP); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_HP_RESPEED)) //17 { pCharacterData.Set_HPRespeed(detailAttribPacket.HPReSpeed); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_MP_RESPEED)) //18 { pCharacterData.Set_MPRespeed(detailAttribPacket.MPReSpeed); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_HIT)) //19 { pCharacterData.Set_Hit(detailAttribPacket.Hit); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_MISS)) //20 { pCharacterData.Set_Miss(detailAttribPacket.Miss); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_CRITRATE)) //21 { pCharacterData.Set_CritRate(detailAttribPacket.CriticalRate); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_DEFENCE_C)) //24 { pCharacterData.Set_DefCritRate(detailAttribPacket.CriticalDef); } //if ( detailAttribPacket.IsSetBit( ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_RAGE) ) //22 //{ // pCharacterData.Set_Rage(detailAttribPacket.Rage); // // 怒气更新要通知界面。2006-4-26 // CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_UNIT_RAGE); //} if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_STRIKE_POINT)) //23 { pCharacterData.Set_StrikePoint(detailAttribPacket.StrikePoint); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_MOVESPEED)) //24 { pCharacterData.Set_MoveSpeed(detailAttribPacket.MoveSpeed); } // if(flagDetail.isSetBit(DETAIL_ATTRIB_ATTACKSPEED)) //25 // pCharacterData->Set_AttackSpeed(pPacket->GetAttSpeed()); // if(flagDetail.isSetBit(DETAIL_ATTRIB_ATTACKCOLD)) //26 // pCharacterData->Set_AttWater(pPacket->GetAttCold()); // if(flagDetail.isSetBit(DETAIL_ATTRIB_DEFENCECOLD)) //27 // pCharacterData->Set_DefWater(pPacket->GetDefCold()); // if(flagDetail.isSetBit(DETAIL_ATTRIB_ATTACKFIRE)) //28 // pCharacterData->Set_AttFire(pPacket->GetAttFire()); // if(flagDetail.isSetBit(DETAIL_ATTRIB_DEFENCEFIRE)) //29 // pCharacterData->Set_DefFire(pPacket->GetDefFire()); // if(flagDetail.isSetBit(DETAIL_ATTRIB_ATTACKLIGHT)) //30 // pCharacterData->Set_AttMetal(pPacket->GetAttLight()); // if(flagDetail.isSetBit(DETAIL_ATTRIB_DEFENCELIGHT)) //31 // pCharacterData->Set_DefMetal(pPacket->GetDefLight()); // if(flagDetail.isSetBit(DETAIL_ATTRIB_ATTACKPOISON)) //32 // pCharacterData->Set_AttWood(pPacket->GetAttPoison()); // if(flagDetail.isSetBit(DETAIL_ATTRIB_DEFENCEPOISON)) //33 // pCharacterData->Set_DefWood(pPacket->GetDefPoison()); // // 增加土攻土防 [11/9/2011 Ivan edit] // if(flagDetail.isSetBit(DETAIL_ATTRIB_ATTACKEARTH)) // pCharacterData->Set_AttEarth(pPacket->GetAttEarth()); // if(flagDetail.isSetBit(DETAIL_ATTRIB_DEFENCEEARTH)) // pCharacterData->Set_DefEarth(pPacket->GetDefEarth()); //// if(flagDetail.isSetBit(DETAIL_ATTRIB_ATTACKWIND)) //风攻 //// pCharacterData->Set_AttWind(pPacket->GetAttWind()); //// //// if(flagDetail.isSetBit(DETAIL_ATTRIB_DEFENCEWIND)) //风防 //// pCharacterData->Set_DefWind(pPacket->GetDefWind()); //// //// if(flagDetail.isSetBit(DETAIL_ATTRIB_ATTACKTHUNDER)) //雷攻 //// pCharacterData->Set_AttThunder(pPacket->GetAttThunder()); //// //// if(flagDetail.isSetBit(DETAIL_ATTRIB_DEFENCETHUNDER)) //雷防 //// pCharacterData->Set_DefThunder(pPacket->GetDefThunder()); if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_MENPAI)) //34 { pCharacterData.Set_MenPai(detailAttribPacket.MenPai); } // if(flagDetail.isSetBit(DETAIL_ATTRIB_GUILD) ) //34 // pCharacterData->Set_Guild(pPacket->GetGuild()); // if(flagDetail.isSetBit(DETAIL_ATTRIB_CAMP) ) //35 // pCharacterData->Set_CampData(pPacket->GetCampData()); if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_DATAID)) //36 //pCharacterData.Set_RaceID(detailAttribPacket.DataID); //因为数据包接收错误 暂时屏蔽接收Race ID { if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_MODELID)) //36 { pCharacterData.Set_ModelID(detailAttribPacket.ModelID); } } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_MOUNTID)) //37 { pCharacterData.Set_MountID(detailAttribPacket.MountID); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_CURRENT_PET_GUID)) //37 { pCharacterData.Set_CurrentPetGUID(detailAttribPacket.CurrentPet); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_LIMIT_MOVE)) //38 { pCharacterData.SetLimitMove(detailAttribPacket.LimitMove); } // if(flagDetail.isSetBit(DETAIL_ATTRIB_CAN_ACTION1) ) //39 // pCharacterData->SetCanActionFlag1(pPacket->GetCanActionFlag1()); // if(flagDetail.isSetBit(DETAIL_ATTRIB_CAN_ACTION2) ) //40 // pCharacterData->SetCanActionFlag2(pPacket->GetCanActionFlag2()); // //if(flagDetail.isSetBit(DETAIL_ATTRIB_LIMIT_USE_SKILL) ) //39 // // pCharacterData->SetLimitUseSkill(pPacket->GetLimitUseSkill()); // //if(flagDetail.isSetBit(DETAIL_ATTRIB_LIMIT_HANDLE) ) //40 // // pCharacterData->SetLimitHandle(pPacket->GetLimitHandle()); if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_RMB)) { pCharacterData.Set_RMB(detailAttribPacket.RMBMoney); } //// if(flagDetail.isSetBit(DETAIL_ATTRIB_MAX_VIGOR) ) //// pCharacterData->Set_MaxVigor(pPacket->GetMaxVigor()); if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_ENERGY)) { pCharacterData.Set_DoubleExpTime_Num(detailAttribPacket.DoubleExpTimeNum); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_HELPMASK)) { pCharacterData.Set_TutorialMask(detailAttribPacket.HelpMask); } if (detailAttribPacket.IsSetBit(ENUM_DETAIL_ATTRIB.DETAIL_ATTRIB_MAX_ENERGY)) { pCharacterData.Set_MaxEnergy(detailAttribPacket.MaxEnergy); } // //if(flagDetail.isSetBit(DETAIL_ATTRIB_GOODBADVALUE) ) // // pCharacterData->Set_GoodBadValue(pPacket->GetGoodBadValue()); //// if(flagDetail.isSetBit(DETAIL_ATTRIB_MISSION_HAVEDONE_FLAGS) ) //// pCharacterData->Set_QuestHistory(pPacket->GetMissionHaveDoneFlags()); //// if(flagDetail.isSetBit(DETAIL_ATTRIB_AMBIT_EXP)) //// pCharacterData->Set_AmbitExp(pPacket->GetAmbitExp()); //// // if(flagDetail.isSetBit(DETAIL_ATTRIB_AMBIT)) // pCharacterData->Set_Ambit(pPacket->GetAmbit()); // pObj->PushDebugString("GCDetailAttrib"); // pObj->SetMsgTime(CGameProcedure::s_pTimeSystem->GetTimeNow()); } return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); }
public OPERATE_RESULT IsCanUse_CheckDeplete(int idUser) { CObject_Character pUser = (CObject_Character)CObjectManager.Instance.FindObject(idUser); if (pUser == null) { return(OPERATE_RESULT.OR_ERROR); } CCharacterData pCharData = CDataPool.Instance.CharacterData_Get(idUser); if (pCharData == null) { return(OPERATE_RESULT.OR_ERROR); } // 心法要求 //const SCLIENT_XINFA* pXinfa = CObjectManager::GetMe()->GetMySelf()->GetCharacterData()->Get_XinFa(m_pDefine->m_nXinFaID); //if ( pXinfa && pXinfa->m_nLevel <m_pDefine->m_nXinFaLevelRequirement ) //{ // return OR_NEED_HIGH_LEVEL_XINFA; //} // 武器判断 if (m_pDefine.m_bMustUseWeapon != 0) { if (pUser.GetCharacterData().Get_Equip(HUMAN_EQUIP.HEQUIP_WEAPON) == MacroDefine.INVALID_ID) { return(OPERATE_RESULT.OR_NEED_A_WEAPON); } } // 消耗判断 if (m_pDeplete == null) { //Assert( m_pDeplete != NULL && "SCLIENT_SKILL::IsCanUse_CheckDeplete" ); return(OPERATE_RESULT.OR_OK); } //待实现 CImpact_Character impactChar = pUser.Impact; uint nDerateAllImpactID = MacroDefine.UINT_MAX; if (impactChar.isExistEffect(nDerateAllImpactID)) { return(OPERATE_RESULT.OR_OK); } // 是否有减免当前技能消耗的BUFF uint nDerateCurImpactID = MacroDefine.UINT_MAX; if (impactChar.isExistEffect(nDerateCurImpactID)) { return(OPERATE_RESULT.OR_OK); } // if (m_pDeplete.m_nHP > 0) { // 是否有减免HP消耗的BUFF uint nDerateHPImpactID = MacroDefine.UINT_MAX; if (!impactChar.isExistEffect(nDerateHPImpactID)) { if (pCharData.Get_HP() < m_pDeplete.m_nHP) { return(OPERATE_RESULT.OR_NOT_ENOUGH_HP); } } } // if (m_pDeplete.m_nMP > 0) { // 是否有减免MP消耗的BUFF uint nDerateMPImpactID = MacroDefine.UINT_MAX; if (!impactChar.isExistEffect(nDerateMPImpactID)) { if (pCharData.Get_MP() < m_pDeplete.m_nMP) { return(OPERATE_RESULT.OR_LACK_MANA); } } } // //if (m_pDeplete.m_nSP > 0) //{ // // 是否有减免SP消耗的BUFF // uint nDerateSPImpactID = MacroDefine.UINT_MAX; // if (!impactChar.isExistEffect(nDerateSPImpactID)) // { // if (pCharData.Get_Rage() < m_pDeplete.m_nSP) // return OPERATE_RESULT.OR_NOT_ENOUGH_RAGE; // } //} // if (m_pDeplete.m_nStrikePoint > 0) { // 是否有减免StrikePoint消耗的BUFF // 这里的m_pDeplete->m_nStrikePoint为连技段 uint nDerateStrikePointImpactID = MacroDefine.UINT_MAX; if (!impactChar.isExistEffect(nDerateStrikePointImpactID)) { int nStrikePoint = m_pDeplete.m_nStrikePoint * 3; if (pCharData.Get_StrikePoint() < nStrikePoint) { return(OPERATE_RESULT.OR_NOT_ENOUGH_STRIKE_POINT); } } } // if (m_pDeplete.m_nItemID != MacroDefine.INVALID_ID) { // 是否有减免Item消耗的BUFF uint nDerateItemImpactID = MacroDefine.UINT_MAX; if (!impactChar.isExistEffect(nDerateItemImpactID)) { int nIndex = CDataPool.Instance.UserBag_GetItemIndexByID(m_pDeplete.m_nItemID); if (nIndex == -1) { return(OPERATE_RESULT.OR_NOT_ENOUGH_ITEM); } } } return(OPERATE_RESULT.OR_OK); }