public override void OnDataChanged_Equip(HUMAN_EQUIP point) { base.OnDataChanged_Equip(point); m_pAvatar.GetCharacterData().Set_EquipGem(point, GetCharacterData().Get_EquipGem(point)); m_pAvatar.GetCharacterData().Set_Equip(point, GetCharacterData().Get_Equip(point)); m_pAvatar.Disalbe((uint)ObjectStatusFlags.OSF_VISIABLE); }
// 设置模型信息 public void SetUIModelInfo(HUMAN_EQUIP point, int nID) { if (m_pAvatar != null) { m_pAvatar.GetCharacterData().Set_Equip(point, nID); } }
//设置装备 public void SetItem(short ptEquip, CObject_Item item, bool bClearOld) { if (ptEquip < 0 || ptEquip >= (int)HUMAN_EQUIP.HEQUIP_NUMBER) { return; } if (mPlayerEquip[ptEquip] != null && bClearOld) { ObjectSystem.Instance.DestroyItem(mPlayerEquip[ptEquip]); } if (item != null) { HUMAN_EQUIP pointEquip = ((CObject_Item_Equip)item).GetItemType(); if (pointEquip != (HUMAN_EQUIP)ptEquip) { return; } // 设置所属 item.TypeOwner = ITEM_OWNER.IO_MYSELF_EQUIP; // 设置装备在action item 中的位置. item.PosIndex = ptEquip; mPlayerEquip[ptEquip] = item; } else { // 在装备点清空数据 mPlayerEquip[ptEquip] = null; } }
} // Allan_Tao 27/4/2011 public void setID(HUMAN_EQUIP EquipPoint, uint ID, uint uGemID) { switch (EquipPoint) { case HUMAN_EQUIP.HEQUIP_WEAPON: { setWeaponID(ID); setWeaponGemID(uGemID); } break; case HUMAN_EQUIP.HEQUIP_CAP: { setCapID(ID); setCapGemID(uGemID); } break; case HUMAN_EQUIP.HEQUIP_ARMOR: { setArmourID(ID); setArmourGemID(uGemID); } break; case HUMAN_EQUIP.HEQUIP_CUFF: { setCuffID(ID); setCuffGemID(uGemID); } break; case HUMAN_EQUIP.HEQUIP_BOOT: { setBootID(ID); setBootGemID(uGemID); } break; case HUMAN_EQUIP.HEQUIP_BACK: { setBackID(ID); setBackGemID(uGemID); } break; case HUMAN_EQUIP.HEQUIP_SASH: // Allan_Tao 27/4/2011 { setSashID(ID); setSashGemID(uGemID); } break; default: break; } }
public CObject_Item UserEquip_GetItem(HUMAN_EQUIP ptEquip) { if ((int)ptEquip < 0 && (int)ptEquip >= (int)HUMAN_EQUIP.HEQUIP_NUMBER) { return(null); } return(mMyEquip.GetItem((int)ptEquip)); }
internal CObject_Item OtherPlayerEquip_GetItem(HUMAN_EQUIP ptEquip) { if ((int)ptEquip < 0 && (int)ptEquip >= (int)HUMAN_EQUIP.HEQUIP_NUMBER) { return(null); } return(mOtherEquip.GetItem((int)ptEquip)); }
// // 获取装备点 [7/14/2011 ivan edit] // INT Get_Equip_Point(INT nIndexPacket); public int Get_Equip_Point(CObject_Item My_Equip) { if (My_Equip == null || My_Equip.GetItemClass() != ITEM_CLASS.ICLASS_EQUIP) { return(-1); } HUMAN_EQUIP equipType = ((CObject_Item_Equip)My_Equip).GetItemType(); return((int)equipType); }
public void SetUpdateAttrib(HUMAN_EQUIP eAttrib, bool bUpdate) { if (bUpdate) { m_wFlags = (ushort)(m_wFlags | (1 << (int)eAttrib)); } else { m_wFlags &= (ushort)(~(1 << (int)eAttrib)); } }
// 获得当前玩家身上装备的所有修理价格,(需要考虑这个Npc的修理价格系数,能不能修理等条件) public int GetRepairAllPrice() { int nRepairPrice = 0; float fRepairSpend = CDataPool.Instance.Booth_GetRepairSpend(); for (HUMAN_EQUIP i = HUMAN_EQUIP.HEQUIP_WEAPON; i < HUMAN_EQUIP.HEQUIP_NUMBER; i++) { CObject_Item pItem = CDataPool.Instance.UserEquip_GetItem(i); if (pItem != null) { if (pItem.GetItemClass() == ITEM_CLASS.ICLASS_EQUIP) { if (pItem.GetItemDur() < pItem.GetItemMaxDur()) { //计算修理价格 nRepairPrice += (int)(((CObject_Item_Equip)pItem).GetRepairPrice() * fRepairSpend); } } } } return(nRepairPrice); }
public bool IsUpdateAttrib(HUMAN_EQUIP eAttrib) { return(((m_wFlags & (1 << (int)eAttrib)) != 0)?(true):(false)); }
internal void UserEquip_SetItem(HUMAN_EQUIP ptEquip, CObject_Item pEquipItem, bool bClearOld) { mMyEquip.SetItem((short)ptEquip, pEquipItem, bClearOld); }
public void OtherPlayerEquip_SetItem(HUMAN_EQUIP ptEquip, CObject_Item pEquipItem, bool bClearOld) { mOtherEquip.SetItem((short)ptEquip, pEquipItem, bClearOld); }
public void UnEquipItem(HUMAN_EQUIP nPart) { if (nPart == HUMAN_EQUIP.HEQUIP_WEAPON) { SetWeaponType(ENUM_WEAPON_TYPE.WEAPON_TYPE_NONE); } if (mRenderInterface == null) { return; } switch (nPart) { case HUMAN_EQUIP.HEQUIP_WEAPON: mRenderInterface.changeRightWeapon(""); mRenderInterface.changeLeftWeapon(""); if (m_bHideWeapon == false) { EquipItem_BodyLocator(HUMAN_EQUIP.HEQUIP_WEAPON, m_pCharRace.nDefRWeapon); } break; case HUMAN_EQUIP.HEQUIP_CAP: UpdateHairMesh(); break; case HUMAN_EQUIP.HEQUIP_BACK: { } break; case HUMAN_EQUIP.HEQUIP_ARMOR: //设置缺省装备 EquipItem_BodyPart(HUMAN_EQUIP.HEQUIP_ARMOR, m_pCharRace.nDefBody); //衣服 break; case HUMAN_EQUIP.HEQUIP_CUFF: //设置缺省装备 EquipItem_BodyPart(HUMAN_EQUIP.HEQUIP_CUFF, m_pCharRace.nDefArm); //手 break; case HUMAN_EQUIP.HEQUIP_BOOT: //设置缺省装备 EquipItem_BodyPart(HUMAN_EQUIP.HEQUIP_BOOT, m_pCharRace.nDefFoot); //脚 break; case HUMAN_EQUIP.HEQUIP_SASH: mRenderInterface.changePart((int)HUMAN_EQUIP.HEQUIP_SASH, ""); break; case HUMAN_EQUIP.HEQUIP_RING: case HUMAN_EQUIP.HEQUIP_NECKLACE: // case HUMAN_EQUIP.HEQUIP_JADE: // case HUMAN_EQUIP.HEQUIP_AMULET: //Not Care... break; default: break; } }
public _ITEM GetEquipData(HUMAN_EQUIP Point) { return(m_ItemList[(int)Point]); }
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 packet, ref Peer pPlayer) { if (GameProcedure.GetActiveProcedure() == (GameProcedure)GameProcedure.s_ProcMain) { GCUseEquipResult pPacket = packet as GCUseEquipResult; UseEquipResultCode ret = (UseEquipResultCode)pPacket.Result; switch (ret) { case UseEquipResultCode.USEEQUIP_SUCCESS: { //--------------------------------------------------------- //背包里的装备 CObject_Item pItemAtBag = CDataPool.Instance.UserBag_GetItemByIndex(pPacket.BagIndex); if (pItemAtBag == null) { return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); } //身上的装备 CObject_Item pItemAtUser = CDataPool.Instance.UserEquip_GetItem((HUMAN_EQUIP)pPacket.EquipPoint); HUMAN_EQUIP equipPoint = ((CObject_Item_Equip)pItemAtBag).GetItemType(); //装配信息不对 if (pItemAtBag.GetItemClass() != ITEM_CLASS.ICLASS_EQUIP || equipPoint != (HUMAN_EQUIP)pPacket.EquipPoint) { return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); } //如果发生物品转移,则改变客户端id,以表示在客户端是不同物体 ObjectSystem.Instance.ChangeItemClientID(pItemAtBag); if (pItemAtUser != null) { ObjectSystem.Instance.ChangeItemClientID(pItemAtUser); } //--------------------------------------- //刷新角色属性 CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Set_Equip( ((CObject_Item_Equip)pItemAtBag).GetItemType(), pItemAtBag.GetIdTable()); //刷新数据池 CDataPool.Instance.UserEquip_SetItem(((CObject_Item_Equip)pItemAtBag).GetItemType(), pItemAtBag, false); //--------------------------------------- //刷新包裹数据 if (pItemAtBag != null) { pItemAtBag.SetGUID((ushort)pPacket.ItemID.m_World, (ushort)pPacket.ItemID.m_Server, (uint)pPacket.ItemID.m_Serial); } CDataPool.Instance.UserBag_SetItem((short)pPacket.BagIndex, pItemAtUser, false, false); CActionSystem.Instance.UserBag_Update(); CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_PACKAGE_ITEM_CHANGED, pPacket.BagIndex); //自动使用骑术 if (equipPoint == HUMAN_EQUIP.HEQUIP_RIDER) { CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_EQUIP_MOUNT); } } break; case UseEquipResultCode.USEEQUIP_LEVEL_FAIL: { CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "物品的装配等级高于您目前的等级"); } break; case UseEquipResultCode.USEEQUIP_TYPE_FAIL: { CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "装配类型错误"); } break; case UseEquipResultCode.USEEQUIP_JOB_FAIL: { CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "职业不匹配"); } break; case UseEquipResultCode.USEEQUIP_IDENT_FAIL: default: CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "未知错误"); break; } // 更新主角身上的装备到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 void OnDataChanged_Equip(HUMAN_EQUIP point) { UpdateEquip(point); }
bool EquipItem_BodyPart(HUMAN_EQUIP nPart, int nID) { //----------------------------------------------------------- //渲染层设置 if (mRenderInterface == null) { return(false); } //----------------------------------------------------------- //角色装备类数据库 _DBC_ITEM_VISUAL_CHAR pEquipVisual = CDataBaseSystem.Instance.GetDataBase <_DBC_ITEM_VISUAL_CHAR>((int)DataBaseStruct.DBC_ITEM_VISUAL_CHAR).Search_Index_EQU(nID); if (pEquipVisual == null) { return(false); } //种族(男,女) int nRaceID = GetCharacterData().Get_RaceID(); // 种族编号规则 [12/13/2010 ivan edit] // 奇数为男,偶数为女 nRaceID = nRaceID % 2; if (nRaceID < 0 || nRaceID >= DBC_DEFINE.CHAR_RACE_NUM) { return(false); } string szLocator = ""; switch (nPart) { case HUMAN_EQUIP.HEQUIP_CAP: //帽子 { // capmesh . headmesh . hairmesh [4/26/2011 ivan edit] mRenderInterface.changePart( (int)HUMAN_EQUIP.HEQUIP_CAP, pEquipVisual.pVisualEntity[nRaceID * 2 + 0]); } break; case HUMAN_EQUIP.HEQUIP_ARMOR: //身体 { mRenderInterface.changePart( (int)HUMAN_EQUIP.HEQUIP_ARMOR, pEquipVisual.pVisualEntity[nRaceID * 2 + 0]); } break; case HUMAN_EQUIP.HEQUIP_CUFF: //手臂 { mRenderInterface.changePart( (int)HUMAN_EQUIP.HEQUIP_CUFF, pEquipVisual.pVisualEntity[nRaceID * 2 + 0]); } break; case HUMAN_EQUIP.HEQUIP_BOOT: //鞋 { mRenderInterface.changePart( (int)HUMAN_EQUIP.HEQUIP_BOOT, pEquipVisual.pVisualEntity[nRaceID * 2 + 0]); } break; case HUMAN_EQUIP.HEQUIP_BACK: //背部 { mRenderInterface.changePart( (int)HUMAN_EQUIP.HEQUIP_BACK, pEquipVisual.pVisualEntity[nRaceID * 2 + 0]); } break; case HUMAN_EQUIP.HEQUIP_SASH: // 增加肩甲换装 [4/26/2011 ivan edit] { mRenderInterface.changePart( (int)HUMAN_EQUIP.HEQUIP_SASH, pEquipVisual.pVisualEntity[nRaceID * 2 + 0]); } break; } // //更新特效 // if(szLocator != NULL) // { // //-强化特效 // UINT uGemType = GetCharacterData().Get_EquipGem(nPart); // int nStrengthenIndex = GetCharacterData().Get_EquipStrengthenEffect(nPart); // int nGemEffectIndex = GetCharacterData().Get_EquipGemEffect(nPart); // mRenderInterface.DelEffect(szLocator); // if (uGemType != 0) // { // //强化特效 // if (nStrengthenIndex > 0) // { // if(pEquipVisual.pStrengthenEffectName // && pEquipVisual.pStrengthenEffectName[nStrengthenIndex-1] // && pEquipVisual.pStrengthenEffectName[nStrengthenIndex-1][0] !='\0' // ) // { // mRenderInterface.AddEffect(pEquipVisual.pStrengthenEffectName[nStrengthenIndex-1], // szLocator); // } // } // // //宝石特效 // if(nGemEffectIndex > 0) // { // if(pEquipVisual.pEffectName // && pEquipVisual.pEffectName[nGemEffectIndex-1] // && pEquipVisual.pEffectName[nGemEffectIndex-1][0] !='\0' // ) // { // mRenderInterface.AddEffect(pEquipVisual.pEffectName[nGemEffectIndex-1], // szLocator); // } // } // } // // } return(true); }
// 设置模型信息 public void SetUIModelInfo(HUMAN_EQUIP point, int nID) { }
public void SetEquipData(HUMAN_EQUIP Point, _ITEM pEquip) { m_ItemList[(int)Point] = pEquip; m_wPartFlags |= (uint)(1 << (int)Point); }
bool EquipItem_BodyLocator(HUMAN_EQUIP nPart, int nID) { //----------------------------------------------------------- //渲染层设置 if (mRenderInterface == null) { return(false); } //----------------------------------------------------------- //角色挂接类数据库 //DBC_DEFINEHANDLE(s_pWeaponItem, DBC_ITEM_VISUAL_LOCATOR); _DBC_ITEM_VISUAL_LOCATOR pEquipVisual = CDataBaseSystem.Instance.GetDataBase <_DBC_ITEM_VISUAL_LOCATOR>((int)DataBaseStruct.DBC_ITEM_VISUAL_LOCATOR).Search_Index_EQU(nID); if (pEquipVisual == null) { return(false); } // [5/16/2011 Sun] int nGender = GetCharacterData().Get_Gender(); //右手 int nOjbFileIndex = nGender * DBC_DEFINE.CHAR_RACE_NUM; int nMatFileIndex = nOjbFileIndex + 1; bool rightWeapon = pEquipVisual.pVisvalLocatorR[nOjbFileIndex] != "" && pEquipVisual.pVisvalLocatorR[nOjbFileIndex][0] != '\0'; bool leftWeapon = pEquipVisual.pVisvalLocatorL[nOjbFileIndex] != "" && pEquipVisual.pVisvalLocatorL[nOjbFileIndex][0] != '\0'; if (rightWeapon) { mRenderInterface.changeRightWeapon(pEquipVisual.pVisvalLocatorR[nOjbFileIndex]); // uint uGemType = GetCharacterData().Get_EquipGem(HEQUIP_WEAPON); // int nStrengthenIndex = GetCharacterData().Get_EquipStrengthenEffect(HEQUIP_WEAPON); // int nGemEffectIndex = GetCharacterData().Get_EquipGemEffect(HEQUIP_WEAPON); // // if(0 != uGemType) // { // // 强化特效 [10/25/2011 Sun] // if(nStrengthenIndex > 0 // && pEquipVisual.pStrendthenEffectName[nStrengthenIndex-1] // && pEquipVisual.pStrendthenEffectName[nStrengthenIndex-1][0] != '\0') // { // // mRenderInterface.setRightWeaponEffect(pEquipVisual.pStrendthenEffectName[nStrengthenIndex-1]); // } // else // mRenderInterface.setRightWeaponEffect(""); // } // else // { // if(pEquipVisual.pEffectName && pEquipVisual.pEffectName[0] != '\0') // { // mRenderInterface.SetRightWeaponEffect('\0',0); // } // mRenderInterface.SetRightWeaponEffect('\0', szIDSTRING_STRENTHEND_LOCSTOR, 0); // mRenderInterface.SetRightWeaponEffect('\0', szIDSTRING_GEM_LOCATOR, 0); // } } else { mRenderInterface.changeRightWeapon(""); } //左手 if (leftWeapon) { mRenderInterface.changeLeftWeapon(pEquipVisual.pVisvalLocatorL[nOjbFileIndex]); // uint uGemType = GetCharacterData().Get_EquipGem(HEQUIP_WEAPON); // int nStrengthenIndex = GetCharacterData().Get_EquipStrengthenEffect(HEQUIP_WEAPON); // int nGemEffectIndex = GetCharacterData().Get_EquipGemEffect(HEQUIP_WEAPON); // if(0 != uGemType) // { // // 强化特效 [10/25/2011 Sun] // if(nStrengthenIndex > 0 // && pEquipVisual.pStrendthenEffectName[nStrengthenIndex - 1] // && pEquipVisual.pStrendthenEffectName[nStrengthenIndex - 1][0] != '\0' // ) // { // mRenderInterface.SetLeftWeaponEffect(pEquipVisual.pStrendthenEffectName[nStrengthenIndex - 1], szIDSTRING_STRENTHEND_LOCSTOR, 0xFFFFFFFF); // } // else // mRenderInterface.SetLeftWeaponEffect('\0', szIDSTRING_STRENTHEND_LOCSTOR, 0); // //宝石特效 // if(nGemEffectIndex > 0 // && pEquipVisual.pEffectName[nGemEffectIndex - 1] // && pEquipVisual.pEffectName[nGemEffectIndex - 1][0] != '\0' // ) // mRenderInterface.SetLeftWeaponEffect(pEquipVisual.pEffectName[nGemEffectIndex-1], szIDSTRING_GEM_LOCATOR, 0xFFFFFFFF); // else // mRenderInterface.SetLeftWeaponEffect('\0', szIDSTRING_GEM_LOCATOR, 0); // } // else // { // if(pEquipVisual.pEffectName && pEquipVisual.pEffectName[0] != '\0') // { // mRenderInterface.SetLeftWeaponEffect('\0',0); // } // mRenderInterface.SetRightWeaponEffect('\0', szIDSTRING_STRENTHEND_LOCSTOR, 0); // mRenderInterface.SetRightWeaponEffect('\0', szIDSTRING_GEM_LOCATOR, 0); // } } else { mRenderInterface.changeLeftWeapon(""); } FreshAnimation();//刚刚装备上武器时,需要刷新下动作,动作由武器决定 [2012/4/26 ZZY] return(true); }