Пример #1
0
    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);
    }
Пример #2
0
    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);
                    }
                }
            }
        }
    }
Пример #3
0
    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("");
    }
Пример #5
0
 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));
             }
         }
     }
 }
Пример #6
0
    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());
                }
            }
        }
    }
Пример #7
0
    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());
    }
Пример #8
0
    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);
            }
        }
    }
Пример #9
0
    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());
            }
        }
    }
Пример #10
0
    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();
    }
Пример #11
0
    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);
    }