void StartToWork() { if (!GameConfig.IsMultiMode) { //lw:2017.4.6 crash PeCreature.Instance.mainPlayer可能为null if (PeCreature.Instance != null && PeCreature.Instance.mainPlayer != null) { PlayerPackageCmpt pkg = PeCreature.Instance.mainPlayer.packageCmpt as PlayerPackageCmpt; if (pkg != null) { ItemPackage accessor = pkg.package._playerPak; if (m_CurType == CSConst.etEnhance) { //lw:2017.4.6 crash if (m_Enhance != null && m_Enhance.m_Item != null && m_Enhance.m_Item.protoData != null) { // take out material from player foreach (CSUI_MaterialGrid matGrid in m_MatList) { accessor.Destroy(matGrid.ItemID, matGrid.NeedCnt); } m_Enhance.StartCounter(); CSUI_MainWndCtrl.ShowStatusBar(CSUtils.GetNoFormatString(UIMsgBoxInfo.mStartToEnhance.GetString(), m_Enhance.m_Item.protoData.GetName())); // Popoup hints foreach (CSUI_MaterialGrid mg in m_MatList) { Vector3 pos = mg.transform.position; CSUI_MainWndCtrl.CreatePopupHint(pos, transform, new Vector3(10, -2, -8), " - " + mg.NeedCnt, false); } } } else if (m_CurType == CSConst.etRepair) { if (null != m_Repair && m_Repair.m_Item != null && m_Repair.m_Item.protoData != null) { // take out material from player foreach (CSUI_MaterialGrid matGrid in m_MatList) { accessor.Destroy(matGrid.ItemID, matGrid.NeedCnt); } m_Repair.StartCounter(); CSUI_MainWndCtrl.ShowStatusBar(CSUtils.GetNoFormatString(UIMsgBoxInfo.mStartToRepair.GetString(), m_Repair.m_Item.protoData.GetName())); } } else if (m_CurType == CSConst.etRecyle) { if (m_Recycle != null && m_Recycle.m_Item != null && m_Recycle.m_Item.protoData != null) { m_Recycle.StartCounter(); CSUI_MainWndCtrl.ShowStatusBar(CSUtils.GetNoFormatString(UIMsgBoxInfo.mStartToRecycle.GetString(), m_Recycle.m_Item.protoData.GetName())); } } } } } else { //multimode if (m_CurType == CSConst.etEnhance) { m_Enhance._ColonyObj._Network.EHN_Start(); } else if (m_CurType == CSConst.etRepair) { m_Repair._ColonyObj._Network.RPA_Start(); } else if (m_CurType == CSConst.etRecyle) { m_Recycle._ColonyObj._Network.RCY_Start(); } } }