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]; } }
public void save() { if (mAllActor.ContainsKey(mCurrentActor)) { CMonsterInstanceInfo monsterInfo = mAllActor[mCurrentActor]; CMonsterInstanceInfo.Copy(mCurrentMonsterInfo, monsterInfo); } }
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)); } }
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]; }
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; }
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); }