public void Init() { allLayouts = CDataBaseSystem.Instance.GetDataBase <_DBC_UI_LAYOUTDEFINE>((int)DataBaseStruct.DBC_UI_LAYOUTDEFINE); if (allLayouts == null || allLayouts.StructDict.Count == 0) { LogManager.LogWarning("layouts is empty!"); return; } foreach (_DBC_UI_LAYOUTDEFINE layout in allLayouts.StructDict.Values) { if (layout.downImmediately == 1) { needDownList.Add(layout); } } _DBC_UI_LAYOUTDEFINE common = allLayouts.Search_Index_EQU(0); ResourceManager.Me.DownloadAsync(UIWindowItem.UIRoot + common.szLayout, null, CommonWindowDownload); _DBC_UI_LAYOUTDEFINE fonts = allLayouts.Search_Index_EQU(2); ResourceManager.Me.DownloadAsync(UIWindowItem.UIRoot + fonts.szLayout, null, FontsDownload); // 这里是为了初始化Icon管理器 [2/17/2012 Ivan] _DBC_UI_LAYOUTDEFINE icon = allLayouts.Search_Index_EQU(1); IconManager.Instance.Init(UIWindowItem.UIRoot + icon.szLayout); }
void UpdateCharActionSetFile() { m_pCharActionSetFile = null; if (m_pBusData != null) { int nCharModelID = m_pBusData.m_nModelID; DBC.COMMON_DBC <_DBC_CHARACTER_MODEL> s_pCharModelDBC = CDataBaseSystem.Instance.GetDataBase <_DBC_CHARACTER_MODEL>((int)DataBaseStruct.DBC_CHARACTER_MODEL); if (nCharModelID != MacroDefine.INVALID_ID) { _DBC_CHARACTER_MODEL pCharModel = s_pCharModelDBC.Search_Index_EQU(m_pBusData.m_nModelID); if (pCharModel != null) { string pszActionSetFileName = pCharModel.m_pszActionSetName_None; if (pszActionSetFileName.Length > 0) { m_pCharActionSetFile = CActionSetMgr.Instance.GetActionSetFile(pszActionSetFileName); } } } } }
private void ParseNewDialogue(int id) { _DBC_Dialogue dialogue = dialogues.Search_Index_EQU(id); if (dialogue == null) { return; } currIndex = 0; currContent = new List <DialogueContent>(); string[] temps = dialogue.diglogueGroup.Split(']'); foreach (string item in temps) { if (item.Length <= 0) { continue; } string temp = item; temp = temp.Replace(",[", ""); temp = temp.Replace("[", ""); DialogueContent content = new DialogueContent(); int first = temp.IndexOf('/'); content.iconName = temp.Substring(0, first); int second = temp.IndexOf('/', first + 1); content.speakerName = temp.Substring(first + 1, second - first - 1); content.speakContent = temp.Substring(second + 1, temp.Length - second - 1); currContent.Add(content); } return; }
// 心法特殊描述 [5/9/2012 SUN] public string GetDesc1() { SCLIENT_SKILL pSkill = GetSkillImpl() as SCLIENT_SKILL; if (pSkill != null) { SCLIENT_SKILLCLASS pXinfa = CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Get_SkillClass(pSkill.m_pDefine.m_nSkillClass); DBC.COMMON_DBC <_DBC_XINFA_SKILL_DATA> dbc = CDataBaseSystem.Instance.GetDataBase <_DBC_XINFA_SKILL_DATA>((int)DataBaseStruct.DBC_XINFA_SKILL_DATA); _DBC_XINFA_SKILL_DATA define = dbc.Search_Index_EQU(pXinfa.m_pDefine.nID); int nMenPai = CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Get_MenPai(); int nStepValue = define.nMenPaiValue[nMenPai] / 100; int curValue = pXinfa.m_nLevel * nStepValue; return(string.Format(pSkill.GetSkillDesc(), nStepValue, curValue)); } return(""); }
private void UpdateFaces() { DBC.COMMON_DBC <_DBC_CHAR_FACE> dbs = CDataBaseSystem.Instance.GetDataBase <_DBC_CHAR_FACE>( (int)DataBaseStruct.DBC_CHAR_FACE); if (dbs != null) { int addNum = (1 - GameProcedure.s_ProcCharCreate.Sex) * GamePro_CharCreate.MaxMaleCount; for (int i = 0; i < 9; i++) { _DBC_CHAR_FACE item = dbs.Search_Index_EQU(i + 1 + addNum);// 配置表从1开始计数 [3/30/2012 Ivan] if (item != null) { faceBtns[i].SetTexture(IconManager.Instance.GetIcon(item.pImageSetName)); } } } }
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()); } } } }
string ChangeGb2Unicode(byte[] gbSource) { if (gb2Unicode == null) { LogManager.LogError("没有加载gb2Unicode编码表"); return(""); } StringBuilder sb = new StringBuilder(); ushort gbCode = 0; for (int i = 0; i < gbSource.Length;) { if (i < gbSource.Length - 1 && (IsGbCode(gbSource[i], gbSource[i + 1]))) { gbCode = 0; gbCode |= (ushort)(gbSource[i] << 8); gbCode |= gbSource[i + 1]; EncodeBase code = gb2Unicode.Search_Index_EQU(gbCode); if (code != null) { sb.Append((char)code.tarCode); } else { sb.Append("_"); } i += 2; } else { sb.Append((char)gbSource[i]); i += 1; } } return(sb.ToString()); }
public void Initial() { DBC.COMMON_DBC <_DBC_ACTIVITY_INFO> activityDBC = CDataBaseSystem.Instance.GetDataBase <_DBC_ACTIVITY_INFO>((int)DataBaseStruct.DBC_ACTIVITY_INFO); int nCount = activityDBC.StructDict.Count; for (int i = 0; i < nCount; i++) { _DBC_ACTIVITY_INFO info = activityDBC.Search_Index_EQU(i); //按照类型区分活动 if (s_ActivityDBC.ContainsKey(info.nActivityType)) { s_ActivityDBC[info.nActivityType].Add(info); } else { List <_DBC_ACTIVITY_INFO> infoList = new List <_DBC_ACTIVITY_INFO>(); infoList.Add(info); s_ActivityDBC.Add(info.nActivityType, infoList); } } }
void CreateRenderInterface() { if (m_pBusData != null && m_pBusData.m_nModelID != MacroDefine.INVALID_ID) { DBC.COMMON_DBC <_DBC_CHARACTER_MODEL> s_pCharModelDBC = CDataBaseSystem.Instance.GetDataBase <_DBC_CHARACTER_MODEL>((int)DataBaseStruct.DBC_CHARACTER_MODEL); string lpszModelFileName = null; _DBC_CHARACTER_MODEL pCharModel = s_pCharModelDBC.Search_Index_EQU(m_pBusData.m_nModelID); if (pCharModel != null) { lpszModelFileName = pCharModel.m_pszModelName; } if (lpszModelFileName != null) { mRenderInterface = GFX.GFXObjectManager.Instance.createObject(lpszModelFileName, GFX.GFXObjectType.ACTOR); mRenderInterface.useTempAsset();//资源未加载完全时使用临时模型 mRenderInterface.SetData(ID); //mRenderInterface.Actor_SetFile(lpszModelFileName); setVisible(isVisible()); mRenderInterface.SetRayQuery(false); mRenderInterface.SetAnimationEndEvent(new GFX.OnAnimationEvent(OnAnimationEnd)); UpdatePassengerAttached(); UpdateCharActionSetFile(); SetPosition(GetPosition()); SetFaceDir(GetFaceDir()); setVisible(isVisible()); } } }
void UpdateData() { if (m_pBusData != null && m_pBusData.m_nDataID == m_nDataID) { return; } ReleaseRenderInterface(); m_pBusData = null; if (m_nDataID != MacroDefine.INVALID_ID) { DBC.COMMON_DBC <_BUS_INFO> allBus = CDataBaseSystem.Instance.GetDataBase <_BUS_INFO>((int)DataBaseStruct.DBC_BUS_INFO); if (allBus == null) { LogManager.LogError("无法找到Bus配置表。"); return; } m_pBusData = allBus.Search_Index_EQU(m_nDataID); } CreateRenderInterface(); }
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 bool Resource_CanOperation() { if (m_pResourceDef == null) { return(false); } SCLIENT_LIFEABILITY pSclientAbilityDef = (CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Get_LifeAbility(m_pResourceDef.nLifeAbility)); if (pSclientAbilityDef == null) { _DBC_LIFEABILITY_DEFINE pAbilityDef = DBSystem.CDataBaseSystem.Instance.GetDataBase <_DBC_LIFEABILITY_DEFINE>((int)DataBaseStruct.DBC_LIFEABILITY_DEFINE).Search_Index_EQU(m_pResourceDef.nLifeAbility); if (pAbilityDef == null) { return(false); } string szMsg = "Ability_Requiement" + pAbilityDef.szName; GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, szMsg); return(false); } int my_level = CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Get_Level(); if (my_level < pSclientAbilityDef.m_pDefine.nLevelNeed) { GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "等级不够"); return(false); } int idNeedFacility = pSclientAbilityDef.m_pDefine.nToolNeed; if (idNeedFacility >= 0) { bool bHaveTool = false; CObject_Item Facility; Facility = CDataPool.Instance.UserEquip_GetItem(HUMAN_EQUIP.HEQUIP_WEAPON); if (Facility == null || idNeedFacility != Facility.GetParticularID()) { for (int i = 0; i < GAMEDEFINE.MAX_BAG_SIZE; i++) { if ((Facility = CDataPool.Instance.UserBag_GetItem(i)) != null) { if (idNeedFacility == Facility.GetParticularID()) { bHaveTool = true; break; } } } string szTemp = ""; //从资源表中去查找工具名称 DBC.COMMON_DBC <_DBC_ITEM_EQUIP_BASE> equipBaseDBC = DBSystem.CDataBaseSystem.Instance.GetDataBase <_DBC_ITEM_EQUIP_BASE>((int)DataBaseStruct.DBC_ITEM_EQUIP_BASE); _DBC_ITEM_EQUIP_BASE pWhiteEquip = equipBaseDBC.Search_Index_EQU(idNeedFacility); if (pWhiteEquip != null) { if (bHaveTool) { szTemp = "你需要先将" + pWhiteEquip.szName + "装备上"; } else { szTemp = "你还没有" + pWhiteEquip.szName; } } else { szTemp = "你需要装备工具。"; } GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, szTemp); //todo // ADDTALKMSG(szTemp); return(false); } } return(true); }