Exemple #1
0
 public static void Copy(CMonsterInstanceInfo src, CMonsterInstanceInfo dest)
 {
     if (src == null || dest == null)
     {
         return;
     }
     dest.m_popupIndex       = src.m_popupIndex;
     dest.m_iRefreshTime     = src.m_iRefreshTime;
     dest.m_ActiveType       = src.m_ActiveType;
     dest.m_dwObjectId       = src.m_dwObjectId;
     dest.m_iBaseAIId        = src.m_iBaseAIId;
     dest.m_iAdvanceAIId     = src.m_iAdvanceAIId;
     dest.m_EvenId           = src.m_EvenId;
     dest.m_strInstanceName  = src.m_strInstanceName;
     dest.m_strTitleName     = src.m_strTitleName;
     dest.m_strAdvanceAIFile = src.m_strAdvanceAIFile;
     dest.m_strEvent         = src.m_strEvent;
     dest.m_dwMonsterGUID    = src.m_dwMonsterGUID;
     dest.m_iGroupId         = src.m_iGroupId;
     dest.m_iTeamId          = src.m_iTeamId;
     dest.m_iReputationID    = src.m_iReputationID;
     dest.m_iLevel           = src.m_iLevel;
     dest.m_iType            = src.m_iType;
     dest.m_iCampId          = src.m_iCampId;
     dest.m_iLineid          = src.m_iLineid;
     for (int i = 0; i < SHOP_COUNT; ++i)
     {
         dest.m_iShopArray[i] = src.m_iShopArray[i];
     }
 }
Exemple #2
0
 public void save()
 {
     if (mAllActor.ContainsKey(mCurrentActor))
     {
         CMonsterInstanceInfo monsterInfo = mAllActor[mCurrentActor];
         CMonsterInstanceInfo.Copy(mCurrentMonsterInfo, monsterInfo);
     }
 }
Exemple #3
0
    public void saveToFile(string path)
    {
        StreamWriter sw         = new StreamWriter(path);
        int          actorCount = mAllActor.Count;

        sw.WriteLine("[info]");//ini头
        sw.WriteLine("monstercount=" + actorCount.ToString());
        int i = 0;

        foreach (KeyValuePair <GFX.GfxActor, CMonsterInstanceInfo> kv in mAllActor)
        {
            GFX.GfxActor actor = kv.Key;
            if (actor == null || actor.getGameObject() == null)
            {
                continue;
            }
            CMonsterInstanceInfo monsterInfo = kv.Value;
            sw.WriteLine("");
            sw.WriteLine("[monster" + i.ToString() + "]");//section
            sw.WriteLine("guid=" + monsterInfo.m_dwMonsterGUID.ToString());
            sw.WriteLine("type=" + monsterInfo.m_dwObjectId.ToString());
            sw.WriteLine("name=" + monsterInfo.m_strInstanceName);
            sw.WriteLine("title=" + monsterInfo.m_strTitleName);
            sw.WriteLine("pos_x=" + actor.getGameObject().transform.position.x.ToString());
            //sw.WriteLine("pos_y=" + actor.position.y.ToString());
            sw.WriteLine("pos_z=" + actor.getGameObject().transform.position.z.ToString());
            //float dir =  GFX.GfxUtility.GetYAngle(Vector3.zero, actor.getGameObject().transform.forward)*180.0f/3.14f;
            float dir  = (actor.getGameObject().transform.rotation.eulerAngles.y / 180.0f) * 3.14f;
            int   iDir = (int)((dir / (6.28f)) * 36);
            iDir = iDir + 27;
            iDir = iDir % 36;
            sw.WriteLine("dir=" + iDir.ToString());
            sw.WriteLine("script_id=" + monsterInfo.m_EvenId.ToString());
            sw.WriteLine("respawn_time=" + monsterInfo.m_iRefreshTime.ToString());
            sw.WriteLine("group_id=" + monsterInfo.m_iGroupId);
            sw.WriteLine("team_id=" + monsterInfo.m_iTeamId);
            sw.WriteLine("base_ai=" + monsterInfo.m_iBaseAIId);
            sw.WriteLine("ai_file=" + monsterInfo.m_iAdvanceAIId);
            sw.WriteLine("patrol_id=" + monsterInfo.m_iLineid);
            sw.WriteLine("shop0=" + monsterInfo.m_iShopArray[0]);
            sw.WriteLine("shop1=" + monsterInfo.m_iShopArray[1]);
            sw.WriteLine("shop2=" + monsterInfo.m_iShopArray[2]);
            sw.WriteLine("shop3=" + monsterInfo.m_iShopArray[3]);
            sw.WriteLine("ReputationID=" + monsterInfo.m_iReputationID);
            sw.WriteLine("level=" + monsterInfo.m_iLevel);
            sw.WriteLine("npc=" + monsterInfo.m_iType);
            sw.WriteLine("camp=" + monsterInfo.m_iCampId);
            i++;
        }
        sw.Close();
    }
    void openINIFile()
    {
        string path = EditorUtility.OpenFilePanel("Open INI", "", "ini");

        if (path == null || path.Length == 0)
        {
            return;
        }
        mNPCScript.clear();
        /* mNPCScript.readFromIni(path);*/
        IniFile ini          = new IniFile(path, "info");
        int     monsterCount = System.Int32.Parse(ini["monstercount"]);

        for (int i = 0; i < monsterCount; ++i)
        {
            CMonsterInstanceInfo monsterInfo = new CMonsterInstanceInfo();
            ini = new IniFile(path, "monster" + i.ToString());
            monsterInfo.m_dwMonsterGUID   = UInt32.Parse(ini["guid"]);
            monsterInfo.m_dwObjectId      = UInt64.Parse(ini["type"]);
            monsterInfo.m_strInstanceName = ini["name"];
            monsterInfo.m_strTitleName    = ini["title"];
            float posX = Single.Parse(ini["pos_x"]);
            float posZ = Single.Parse(ini["pos_z"]);
            float posY = GFX.GfxUtility.getSceneHeight(posX, posZ);
            int   dir  = Int32.Parse(ini["dir"]);
            dir += 9;
            dir  = dir % 36;
            float fDir = (dir * 1.0f / 36) * (6.28f);
            monsterInfo.m_EvenId        = Int32.Parse(ini["script_id"]);
            monsterInfo.m_iRefreshTime  = Int32.Parse(ini["respawn_time"]);
            monsterInfo.m_iGroupId      = Int32.Parse(ini["group_id"]);
            monsterInfo.m_iTeamId       = Int32.Parse(ini["team_id"]);
            monsterInfo.m_iBaseAIId     = Int32.Parse(ini["base_ai"]);
            monsterInfo.m_iAdvanceAIId  = Int32.Parse(ini["ai_file"]);
            monsterInfo.m_iLineid       = Int32.Parse(ini["patrol_id"]);
            monsterInfo.m_iShopArray[0] = Int32.Parse(ini["shop0"]);
            monsterInfo.m_iShopArray[1] = Int32.Parse(ini["shop1"]);
            monsterInfo.m_iShopArray[2] = Int32.Parse(ini["shop2"]);
            monsterInfo.m_iShopArray[3] = Int32.Parse(ini["shop3"]);
            monsterInfo.m_iReputationID = Int32.Parse(ini["ReputationID"]);
            monsterInfo.m_iLevel        = Int32.Parse(ini["level"]);
            monsterInfo.m_iType         = Int32.Parse(ini["npc"]);
            monsterInfo.m_iCampId       = Int32.Parse(ini["camp"]);

            monsterInfo.m_popupIndex = mNPCScript.IDToPopupIndex[(int)monsterInfo.m_dwObjectId];
            mNPCScript.AddActor((int)monsterInfo.m_dwObjectId,
                                monsterInfo,
                                new Vector3(posX, posY, posZ),
                                Quaternion.AngleAxis(Mathf.Rad2Deg * fDir, Vector3.up));
        }
    }
Exemple #5
0
    public void resetCurrentMonsterInfo()
    {
        mCurrentMonsterInfo = new CMonsterInstanceInfo();
        if (mMonsterTable == null)
        {
            return;
        }
        _DBC_CREATURE_ATT monsterAttr = mMonsterTable.Search_Index_EQU(AllMonsterNpcID[mCurrentSelectMonsterIndex]);

        if (monsterAttr == null)
        {
            return;
        }
        mCurrentMonsterInfo.m_popupIndex = mCurrentSelectMonsterIndex;
        mCurrentMonsterInfo.m_iCampId    = monsterAttr.nCamp;
        mCurrentMonsterInfo.m_iLevel     = monsterAttr.nLevel;
        mCurrentMonsterInfo.m_dwObjectId = (uint)AllMonsterNpcID[mCurrentSelectMonsterIndex];
    }
Exemple #6
0
    void NotifyActiveActor(GFX.GfxActor actor)
    {
        // UnityEditor.Selection.activeGameObject = GameObject.Find("SGEditor");
        CMonsterInstanceInfo MonsterInfo = mAllActor[actor];

        CMonsterInstanceInfo.Copy(MonsterInfo, mCurrentMonsterInfo);
        if (mCurrentActor != null)
        {
            mCurrentActor.SetMouseHover(false);
        }
        mCurrentActor = actor;
        // UnityEditor.Selection.activeGameObject = actor.getGameObject();
        if (mCurrentActor != null)
        {
            mCurrentActor.SetMouseHover(true);
        }
        mCurrentSelectMonsterIndex = mCurrentMonsterInfo.m_popupIndex;
        mInspectorDirty            = true;
    }
Exemple #7
0
    public void AddActor(int ID, CMonsterInstanceInfo theMonsterInfo, Vector3 pos, Quaternion rot)
    {
        _DBC_CREATURE_ATT monsterAttr = mMonsterTable.Search_Index_EQU(ID);

        if (monsterAttr == null)
        {
            return;
        }
        _DBC_CHARACTER_MODEL CharModel = CDataBaseSystem.Instance.GetDataBase <_DBC_CHARACTER_MODEL>((int)DataBaseStruct.DBC_CHARACTER_MODEL).Search_Index_EQU(monsterAttr.nModelID);

        if (CharModel == null)
        {
            return;
        }
        GFX.GfxActor actor = (GFX.GfxActor)GFX.GFXObjectManager.Instance.createObject(CharModel.m_pszModelName, GFX.GFXObjectType.ACTOR);
        actor.position = pos;
        actor.rotation = rot;
        actor.setRenderInterfaceCreateEvt(new GFX.OnRenderInterfaceEvent(OnActorCreate));
        CMonsterInstanceInfo monsterInfo = new CMonsterInstanceInfo();

        CMonsterInstanceInfo.Copy(theMonsterInfo, monsterInfo);
        mAllActor.Add(actor, monsterInfo);
    }