public void OnClassHandler(NFGUID self, int nContainerID, int nGroupID, NFIObject.CLASS_EVENT_TYPE eType, string strClassName, string strConfigIndex) { if (eType == NFIObject.CLASS_EVENT_TYPE.OBJECT_CREATE) { NFIObject xObject = NFCKernelModule.Instance.GetObject(self); NFIPropertyManager xPropertyManager = xObject.GetPropertyManager(); NFIDataList xPropertyNameList = xPropertyManager.GetPropertyList(); for (int i = 0; i < xPropertyNameList.Count(); i++) { string strPropertyName = xPropertyNameList.StringVal(i); NFIProperty xProperty = xPropertyManager.GetProperty(strPropertyName); if (xProperty.GetUpload()) { xProperty.RegisterCallback(OnPropertyHandler); } } NFIRecordManager xRecordManager = xObject.GetRecordManager(); NFIDataList xRecordNameList = xRecordManager.GetRecordList(); for (int i = 0; i < xRecordNameList.Count(); i++) { string strRecodeName = xRecordNameList.StringVal(i); NFIRecord xRecord = xRecordManager.GetRecord(strRecodeName); if(xRecord.GetUpload()) { xRecord.RegisterCallback(OnRecordHandler); } } } }
//有可能是他副本的NPC移动,因此增加64对象ID public void RequireUseSkill(NFrame.NFGUID objectID, string strKillID, Int32 index, List <NFrame.NFGUID> nTargetIDList) { NFMsg.ReqAckUseSkill xData = new NFMsg.ReqAckUseSkill(); xData.user = NFNetController.NFToPB(objectID); xData.skill_id = System.Text.Encoding.Default.GetBytes(strKillID); xData.use_index = index; if (nTargetIDList != null) { foreach (NFGUID id in nTargetIDList) { NFMsg.EffectData xEffData = new NFMsg.EffectData(); xEffData.effect_ident = (NFNetController.NFToPB(id)); xEffData.effect_value = 0; xEffData.effect_rlt = 0; xData.effect_data.Add(xEffData); } } mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_SKILL_OBJECTX, mxBody); }
//有可能是他副本的NPC移动,因此增加64对象ID public void RequireUseSkill(NFrame.NFGUID objectID, string strKillID, NFrame.NFGUID nTargetID, float fNowX, float fNowZ, float fTarX, float fTarZ) { NFMsg.Position xNowPos = new NFMsg.Position(); NFMsg.Position xTarPos = new NFMsg.Position(); xNowPos.x = fNowX; xNowPos.y = 0.0f; xNowPos.z = fNowZ; xTarPos.x = fTarX; xTarPos.y = 0.0f; xTarPos.z = fTarZ; NFMsg.ReqAckUseSkill xData = new NFMsg.ReqAckUseSkill(); xData.user = NFToPB(objectID); xData.skill_id = System.Text.Encoding.Default.GetBytes(strKillID); xData.tar_pos = xTarPos; xData.now_pos = xNowPos; NFMsg.EffectData xEffData = new NFMsg.EffectData(); xEffData.effect_ident = (NFToPB(nTargetID)); xEffData.effect_value = 0; xEffData.effect_rlt = 0; xData.effect_data.Add(xEffData); MemoryStream stream = new MemoryStream(); Serializer.Serialize <NFMsg.ReqAckUseSkill>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_SKILL_OBJECTX, stream); }
public void SendMsg(NFrame.NFGUID xID, NFMsg.EGameMsgID unMsgID, MemoryStream stream) { if (NFStart.Instance.bDebugMode) { return; } NFMsg.MsgBase xData = new NFMsg.MsgBase(); xData.player_id = NFToPB(xID); xData.msg_data = stream.ToArray(); MemoryStream body = new MemoryStream(); Serializer.Serialize <NFMsg.MsgBase>(body, xData); MsgHead head = new MsgHead(); head.unMsgID = (UInt16)unMsgID; head.unDataLen = (UInt32)body.Length + (UInt32)ConstDefine.NF_PACKET_HEAD_SIZE; byte[] bodyByte = body.ToArray(); byte[] headByte = StructureTransform.StructureToByteArrayEndian(head); byte[] sendBytes = new byte[head.unDataLen]; headByte.CopyTo(sendBytes, 0); bodyByte.CopyTo(sendBytes, headByte.Length); xNet.mxClient.SendBytes(sendBytes); string strTime = DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second; string strData = "S***:" + strTime + " MsgID:" + head.unMsgID + " Len:" + head.unDataLen; xNet.mxListener.aMsgList.Add(strData); }
public bool Parse(string strData, out NFGUID id) { NFGUID xId = new NFGUID(); id = xId; string[] strList = strData.Split('-'); if (strList.Count() != 2) { return false; } Int64 nHead = 0; if (!Int64.TryParse(strList[0], out nHead)) { return false; } Int64 nData = 0; if (!Int64.TryParse(strList[1], out nData)) { return false; } id.nHead64 = nHead; id.nData64 = nData; return true; }
public NFCRecord(NFGUID self, string strRecordName, int nRow, NFIDataList varData) { mSelf = self; mnRow = nRow; mstrRecordName = strRecordName; mVarRecordType = new NFCDataList(varData); }
private void OnClassNPCEventHandler(NFGUID self, int nContainerID, int nGroupID, NFIObject.CLASS_EVENT_TYPE eType, string strClassName, string strConfigIndex) { if (eType == NFIObject.CLASS_EVENT_TYPE.OBJECT_CREATE) { string strConfigID = NFCKernelModule.Instance.QueryPropertyString(self, "ConfigID"); Vector3 vec = new Vector3(); vec.x = (float)NFCKernelModule.Instance.QueryPropertyFloat(self, "X"); vec.y = (float)NFCKernelModule.Instance.QueryPropertyFloat(self, "Y"); vec.z = (float)NFCKernelModule.Instance.QueryPropertyFloat(self, "Z"); string strPrefabPath = ""; if (strConfigID.Length <= 0) { strPrefabPath = NFCKernelModule.Instance.GetElementModule().QueryPropertyString("Player", "Prefab"); } else { strPrefabPath = NFCKernelModule.Instance.GetElementModule().QueryPropertyString(strConfigID, "Prefab"); } //CreateObject(self, strPrefabPath, vec, strClassName); } else if (eType == NFIObject.CLASS_EVENT_TYPE.OBJECT_DESTROY) { //DestroyObject(self); } }
public void UseItem(NFrame.NFGUID ident, string strItemConfigID) { if (mhtObject.ContainsKey(ident)) { GameObject xGameObject = (GameObject)mhtObject[ident]; } }
public void SendMsg(NFrame.NFGUID xID, NFMsg.EGameMsgID unMsgID, MemoryStream stream) { mxData.player_id = NFNetController.NFToPB(xID); mxData.msg_data = stream.ToArray(); mxBody.SetLength(0); mxSerializer.Serialize(mxBody, mxData); mxHead.unMsgID = (UInt16)unMsgID; mxHead.unDataLen = (UInt32)mxBody.Length + (UInt32)ConstDefine.NF_PACKET_HEAD_SIZE; byte[] bodyByte = mxBody.ToArray(); byte[] headByte = mxHead.EnCode(); byte[] sendBytes = new byte[mxHead.unDataLen]; headByte.CopyTo(sendBytes, 0); bodyByte.CopyTo(sendBytes, headByte.Length); mxNetController.mxNetClient.SendBytes(sendBytes); ///////////////////////////////////////////////////////////////// NFLog.Instance.Log(NFLog.LOG_LEVEL.INFO, "SendMsg:" + unMsgID); }
public NFCProperty( NFGUID self, string strPropertyName, NFIDataList varData) { mSelf = self; msPropertyName = strPropertyName; mxData = new NFIDataList.TData(varData.GetType(0)); switch (varData.GetType(0)) { case NFIDataList.VARIANT_TYPE.VTYPE_INT: mxData.Set(varData.IntVal(0)); break; case NFIDataList.VARIANT_TYPE.VTYPE_FLOAT: mxData.Set(varData.FloatVal(0)); break; case NFIDataList.VARIANT_TYPE.VTYPE_DOUBLE: mxData.Set(varData.DoubleVal(0)); break; case NFIDataList.VARIANT_TYPE.VTYPE_OBJECT: mxData.Set(varData.ObjectVal(0)); break; case NFIDataList.VARIANT_TYPE.VTYPE_STRING: mxData.Set(varData.StringVal(0)); break; default: break; } }
public override NFGUID CreateActor(NFIActor.Handler handler) { NFGUID xID = new NFGUID(0, ++mnActorIndex); NFIActor xActor = new NFCActor(xID, this); //添加仍旧有问题,foreach中万一有其他线程添加 bool bRet = mxActorDic.TryAdd(xID, xActor); if (bRet) { if (null != handler) { RegisterHandler(xID, handler); NFIActorMessage xMessage = new NFIActorMessage(); xMessage.bAsync = false;//同步消息 xMessage.bReturn = false;//无需返回 xMessage.eType = NFIActorMessage.EACTOR_MESSAGE_ID.EACTOR_INIT; SendMsg(xActor.GetAddress(), null, xMessage); xMessage.eType = NFIActorMessage.EACTOR_MESSAGE_ID.EACTOR_AFTER_INIT; SendMsg(xActor.GetAddress(), null, xMessage); } return xID; } return null; }
//WSAD移动 public void RequireMove(NFrame.NFGUID objectID, int nType, UnityEngine.Vector3 vPos, UnityEngine.Vector3 vTar) { NFMsg.ReqAckPlayerMove xData = new NFMsg.ReqAckPlayerMove(); xData.mover = NFNetController.NFToPB(objectID); xData.moveType = nType; NFMsg.Vector3 xNowPos = new NFMsg.Vector3(); xNowPos.x = vPos.x; xNowPos.y = vPos.y; xNowPos.z = vPos.z; xData.source_pos.Add(xNowPos); NFMsg.Vector3 xTargetPos = new NFMsg.Vector3(); xTargetPos.x = vTar.x; xTargetPos.y = vTar.y; xTargetPos.z = vTar.z; xData.target_pos.Add(xTargetPos); mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_MOVE, mxBody); //为了表现,客户端先走,后续同步 }
//WSAD移动 public void RequireMove(NFrame.NFGUID objectID, int nType, float fPosX, float fPosY, float fTarX, float fTarY) { NFMsg.ReqAckPlayerMove xData = new NFMsg.ReqAckPlayerMove(); xData.mover = NFNetController.NFToPB(objectID); xData.moveType = nType; NFMsg.Vector3 xNowPos = new NFMsg.Vector3(); xNowPos.x = fPosX; xNowPos.y = 0.0f; xNowPos.z = fPosY; xData.source_pos.Add(xNowPos); NFMsg.Vector3 xTargetPos = new NFMsg.Vector3(); xTargetPos.x = fTarX; xTargetPos.y = 0.0f; xTargetPos.z = fTarY; xData.target_pos.Add(xTargetPos); mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_MOVE, mxBody); //为了表现,客户端先走,后续同步 }
static public NFrame.NFGUID PBToNF(NFMsg.Ident xID) { NFrame.NFGUID xIdent = new NFrame.NFGUID(); xIdent.nHead64 = xID.svrid; xIdent.nData64 = xID.index; return xIdent; }
static public NFMsg.Ident NFToPB(NFrame.NFGUID xID) { NFMsg.Ident xIdent = new NFMsg.Ident(); xIdent.svrid = xID.nHead64; xIdent.index = xID.nData64; return(xIdent); }
public NFCHeartBeat(NFGUID self, string strHeartBeatName, float fTime, int nCount) { mSelf = self; mstrHeartBeatName = strHeartBeatName; mfTime = fTime; mfOldTime = fTime; mnCount = nCount; }
static public NFrame.NFGUID PBToNF(NFMsg.Ident xID) { NFrame.NFGUID xIdent = new NFrame.NFGUID(); xIdent.nHead64 = xID.svrid; xIdent.nData64 = xID.index; return(xIdent); }
//申请状态机同步 public void RequireStateSync(NFrame.NFGUID objectID, NFMsg.ReqAckPlayerMove xData) { mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_STATE_SYNC, mxBody); }
public void SetVisible(NFrame.NFGUID ident, bool bVisible) { if (mhtObject.ContainsKey(ident)) { GameObject xGameObject = (GameObject)mhtObject[ident]; xGameObject.SetActive(bVisible); } }
static void HeartBeatEventHandler(NFGUID self, string strHeartBeat, float fTime, int nRemainCount) { Console.Write(self); Console.Write(" "); Console.Write(strHeartBeat); Console.Write(" "); Console.Write(fTime.ToString()); Console.WriteLine(" "); }
public bool MoveImmune(NFrame.NFGUID ident, Vector3 vPos, float fTime, bool bFaceToPos) { if (mhtObject.ContainsKey(ident)) { GameObject xGameObject = (GameObject)mhtObject[ident]; } return(false); }
public GameObject GetObject(NFrame.NFGUID ident) { if (mhtObject.ContainsKey(ident)) { return((GameObject)mhtObject[ident]); } return(null); }
public bool AttackObject(NFrame.NFGUID ident, Hashtable beAttackInfo, string strStateName, Hashtable resultInfo) { if (mhtObject.ContainsKey(ident)) { GameObject xGameObject = (GameObject)mhtObject[ident]; } return(false); }
static void HeartBeatEventHandler(NFGUID self, string strHeartBeat, float fTime,int nCount) { Debug.Log(self); Debug.Log(" "); Debug.Log(strHeartBeat); Debug.Log(" "); Debug.Log(fTime.ToString()); Debug.Log(" "); }
public NFCObject(NFGUID self, int nContainerID, int nGroupID, string strClassName, string strConfigIndex) { mSelf = self; mstrClassName = strClassName; mstrConfigIndex = strConfigIndex; mnContainerID = nContainerID; mnGroupID = nGroupID; Init(); }
//申请结束pvp public void RequireEndPvp(NFrame.NFGUID objectID) { NFMsg.ReqEndBattle xData = new NFMsg.ReqEndBattle(); mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_END_OPPNENT, mxBody); }
//发送心跳 public void RequireHeartBeat(NFrame.NFGUID objectID) { NFMsg.ReqHeartBeat xData = new NFMsg.ReqHeartBeat(); mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_STS_HEART_BEAT, mxBody); }
//申请查找对手 public void RequireSearchOppnent(NFrame.NFGUID objectID) { NFMsg.ReqSearchOppnent xData = new NFMsg.ReqSearchOppnent(); mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_SEARCH_OPPNENT, mxBody); }
void OnClassHandler(NFGUID self, int nContainerID, int nGroupID, NFIObject.CLASS_EVENT_TYPE eType, string strClassName, string strConfigIndex) { NFrame.NFGUID xIdent = NFNetController.Instance.xMainRoleID; if (self == xIdent) { if (NFIObject.CLASS_EVENT_TYPE.OBJECT_CREATE_FINISH == eType) { } } }
public bool Set(NFGUID value) { if (nType == VARIANT_TYPE.VTYPE_OBJECT) { mData = value; return true; } return false; }
public void RequireEnterGameFinish(NFrame.NFGUID objectID) { //only use in the first time when player enter game world NFMsg.ReqAckEnterGameSuccess xData = new NFMsg.ReqAckEnterGameSuccess(); mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_ENTER_GAME_FINISH, mxBody); }
public void RequireHeartBeat(NFrame.NFGUID objectID) { NFMsg.ReqHeartBeat xData = new NFMsg.ReqHeartBeat(); MemoryStream stream = new MemoryStream(); Serializer.Serialize <NFMsg.ReqHeartBeat>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_STS_HEART_BEAT, stream); }
//申请切换到homescene public void RequireSwapToHomeScene(NFrame.NFGUID objectID) { NFMsg.ReqAckHomeScene xData = new NFMsg.ReqAckHomeScene(); mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_SWAP_HOME_SCENE, mxBody); }
static void OnClassHandler(NFGUID self, int nContainerID, int nGroupID, NFIObject.CLASS_EVENT_TYPE eType, string strClassName, string strConfigIndex) { Debug.Log(self); Debug.Log(" "); Debug.Log(eType.ToString()); Debug.Log(" "); Debug.Log(strClassName); Debug.Log(" "); Debug.Log(strConfigIndex); Debug.Log(" "); }
public void RequirePickUpItem(NFrame.NFGUID objectID, NFrame.NFGUID nItemID) { NFMsg.ReqPickDropItem xData = new NFMsg.ReqPickDropItem(); xData.item_guid = NFToPB(nItemID); MemoryStream stream = new MemoryStream(); Serializer.Serialize <NFMsg.ReqPickDropItem>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_PICK_ITEM, stream); }
//switch fight hero public void RequireSwitchFightHero(NFrame.NFGUID objectID, NFrame.NFGUID hero) { NFMsg.ReqSwitchFightHero xData = new NFMsg.ReqSwitchFightHero(); xData.Heroid = NFNetController.NFToPB(hero); mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGEC_REQ_SWITCH_FIGHT_HERO, mxBody); }
static void OnClassHandler(NFGUID self, int nContainerID, int nGroupID, NFIObject.CLASS_EVENT_TYPE eType, string strClassName, string strConfigIndex) { Console.Write(self); Console.Write(" "); Console.Write(eType.ToString()); Console.Write(" "); Console.Write(strClassName); Console.Write(" "); Console.Write(strConfigIndex); Console.WriteLine(" "); }
//申请开始pvp public void RequireStartPVP(NFrame.NFGUID objectID, int nGold, int nDiamond) { NFMsg.ReqAckStartBattle xData = new NFMsg.ReqAckStartBattle(); xData.diamond = nDiamond; xData.gold = nGold; mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_START_OPPNENT, mxBody); }
void OnEntryClick(GameObject go) { if (NFNetController.Instance.aCharList.Count > 0) { NFMsg.RoleLiteInfo xLiteInfo = (NFMsg.RoleLiteInfo)NFNetController.Instance.aCharList[0]; NFrame.NFGUID xEnterID = new NFrame.NFGUID(); xEnterID.nData64 = xLiteInfo.id.index; xEnterID.nHead64 = xLiteInfo.id.svrid; NFNetController.Instance.mxNetSender.RequireEnterGameServer(xEnterID, NFNetController.Instance.strAccount, System.Text.Encoding.Default.GetString(xLiteInfo.noob_name), NFNetController.Instance.nServerID); } }
public void RequirePickUpItem(NFrame.NFGUID objectID, NFrame.NFGUID nItemID) { NFMsg.ReqPickDropItem xData = new NFMsg.ReqPickDropItem(); xData.item_guid = NFNetController.NFToPB(nItemID); mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_PICK_ITEM, mxBody); }
public void RequireCompeleteTask(NFrame.NFGUID objectID, string strTaskID) { NFMsg.ReqCompeleteTask xData = new NFMsg.ReqCompeleteTask(); xData.task_id = UnicodeEncoding.Default.GetBytes(strTaskID); mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_COMPELETE_TASK, mxBody); }
static void OnPropertydHandler(NFGUID self, string strProperty, NFIDataList.TData oldVar, NFIDataList.TData newVar) { Console.Write(self); Console.Write(" "); Console.Write(strProperty); Console.Write(" "); Console.Write(oldVar.IntVal()); Console.Write(" "); Console.Write(oldVar.IntVal()); Console.WriteLine(" "); }
public void RequireCompeleteTask(NFrame.NFGUID objectID, string strTaskID) { NFMsg.ReqCompeleteTask xData = new NFMsg.ReqCompeleteTask(); xData.task_id = UnicodeEncoding.Default.GetBytes(strTaskID); MemoryStream stream = new MemoryStream(); Serializer.Serialize <NFMsg.ReqCompeleteTask>(stream, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_COMPELETE_TASK, stream); }
static void OnPropertydHandler(NFGUID self, string strProperty, NFIDataList.TData oldVar, NFIDataList.TData newVar) { Debug.Log(self); Debug.Log(" "); Debug.Log(strProperty); Debug.Log(" "); Debug.Log(oldVar.IntVal()); Debug.Log(" "); Debug.Log(newVar.IntVal()); Debug.Log(" "); }
public void RequireDelRole(NFrame.NFGUID objectID, string strAccount, string strRoleName, int nGameID) { NFMsg.ReqDeleteRole xData = new NFMsg.ReqDeleteRole(); xData.name = UnicodeEncoding.Default.GetBytes(strRoleName); xData.account = UnicodeEncoding.Default.GetBytes(strAccount); xData.game_id = nGameID; mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_DELETE_ROLE, mxBody); }
//申请挖掉某个矿石 public void RequireMineTile(NFrame.NFGUID objectID, int nX, int nY) { NFMsg.ReqMiningTitle xData = new NFMsg.ReqMiningTitle(); xData.x = nX; xData.y = nY; xData.opr = 0; mxBody.SetLength(0); mxSerializer.Serialize(mxBody, xData); SendMsg(objectID, NFMsg.EGameMsgID.EGEC_REQ_MINING_TITLE, mxBody); }
public override void DoEvent(NFGUID self, int nEventID, NFIDataList valueList) { Dictionary<int, NFIEvent> xData = mhtEvent[self]; if (null != xData) { if (xData.ContainsKey(nEventID)) { NFIEvent identEvent = (NFIEvent)xData[nEventID]; identEvent.DoEvent(valueList); } } }
static void OnRecordEventHandler(NFGUID self, string strRecordName, NFIRecord.eRecordOptype eType, int nRow, int nCol, NFIDataList.TData oldVar, NFIDataList.TData newVar) { Console.Write(self); Console.Write(" "); Console.Write(strRecordName); Console.Write(" "); Console.Write(eType.ToString()); Console.Write(" "); Console.Write(nRow); Console.Write(" "); Console.Write(nCol); Console.Write(" "); Console.Write(oldVar.IntVal()); Console.Write(" "); Console.Write(oldVar.IntVal()); Console.WriteLine(" "); }
static void OnRecordEventHandler(NFGUID self, string strRecordName, NFIRecord.eRecordOptype eType, int nRow, int nCol, NFIDataList.TData oldVar, NFIDataList.TData newVar) { Debug.Log(self); Debug.Log(" "); Debug.Log(strRecordName); Debug.Log(" "); Debug.Log(eType.ToString()); Debug.Log(" "); Debug.Log(nRow); Debug.Log(" "); Debug.Log(nCol); Debug.Log(" "); Debug.Log(oldVar.IntVal()); Debug.Log(" "); Debug.Log(newVar.IntVal()); Debug.Log(" "); }
public NFIActorMessage(NFIActorMessage x) { eType = x.eType; bAsync = x.bAsync; bReturn = x.bReturn; nSubMsgID = x.nSubMsgID; nFromActor = x.nFromActor; nMasterActor = x.nMasterActor; if (null != x.xMasterHandler) { xMasterHandler = new ConcurrentQueue<NFIActor.Handler>(x.xMasterHandler); } if (null != x.data) { data = (string)x.data.Clone(); } }
public void OnPropertyHandler(NFGUID self, string strPropertyName, NFIDataList.TData oldVar, NFIDataList.TData newVar) { NFIObject xObject = NFCKernelModule.Instance.GetObject(self); NFIProperty xProperty = xObject.GetPropertyManager().GetProperty(strPropertyName); if (!xProperty.GetUpload()) { return; } switch (oldVar.GetType()) { case NFIDataList.VARIANT_TYPE.VTYPE_INT: { NFStart.Instance.GetFocusSender().RequirePropertyInt(self, strPropertyName, newVar); } break; case NFIDataList.VARIANT_TYPE.VTYPE_FLOAT: { NFStart.Instance.GetFocusSender().RequirePropertyFloat(self, strPropertyName, newVar); } break; case NFIDataList.VARIANT_TYPE.VTYPE_STRING: { NFStart.Instance.GetFocusSender().RequirePropertyString(self, strPropertyName, newVar); } break; case NFIDataList.VARIANT_TYPE.VTYPE_OBJECT: { NFStart.Instance.GetFocusSender().RequirePropertyObject(self, strPropertyName, newVar); } break; case NFIDataList.VARIANT_TYPE.VTYPE_VECTOR2: { NFStart.Instance.GetFocusSender().RequirePropertyVector2(self, strPropertyName, newVar); } break; case NFIDataList.VARIANT_TYPE.VTYPE_VECTOR3: { NFStart.Instance.GetFocusSender().RequirePropertyVector3(self, strPropertyName, newVar); } break; } }
public override void RegisterCallback(NFGUID self, int nEventID, NFIEvent.EventHandler handler, NFIDataList valueList) { Dictionary<int, NFIEvent> xData = mhtEvent[self]; if (!mhtEvent.ContainsKey(self) || null == xData) { xData = new Dictionary<int, NFIEvent>(); xData.Add(nEventID, new NFCEvent(self, nEventID, valueList)); mhtEvent.Add(self, xData); return; } if (!xData.ContainsKey(nEventID)) { xData.Add(nEventID, new NFCEvent(self, nEventID, valueList)); return ; } NFIEvent identEvent = (NFIEvent)mhtEvent[self][nEventID]; identEvent.RegisterCallback(handler); }
private void ADD_ROW(NFGUID self, string strRecordName, NFMsg.RecordAddRowStruct xAddStruct) { NFIObject go = NFCKernelModule.Instance.GetObject(self); NFIRecordManager xRecordManager = go.GetRecordManager(); Hashtable recordVecDesc = new Hashtable(); Hashtable recordVecData = new Hashtable(); for (int k = 0; k < xAddStruct.record_int_list.Count; ++k) { NFMsg.RecordInt addIntStruct = (NFMsg.RecordInt)xAddStruct.record_int_list[k]; if (addIntStruct.col >= 0) { recordVecDesc[addIntStruct.col] = NFIDataList.VARIANT_TYPE.VTYPE_INT; recordVecData[addIntStruct.col] = addIntStruct.data; } } for (int k = 0; k < xAddStruct.record_float_list.Count; ++k) { NFMsg.RecordFloat addFloatStruct = (NFMsg.RecordFloat)xAddStruct.record_float_list[k]; if (addFloatStruct.col >= 0) { recordVecDesc[addFloatStruct.col] = NFIDataList.VARIANT_TYPE.VTYPE_FLOAT; recordVecData[addFloatStruct.col] = addFloatStruct.data; } } for (int k = 0; k < xAddStruct.record_string_list.Count; ++k) { NFMsg.RecordString addStringStruct = (NFMsg.RecordString)xAddStruct.record_string_list[k]; if (addStringStruct.col >= 0) { recordVecDesc[addStringStruct.col] = NFIDataList.VARIANT_TYPE.VTYPE_STRING; recordVecData[addStringStruct.col] = System.Text.Encoding.Default.GetString(addStringStruct.data); } } for (int k = 0; k < xAddStruct.record_object_list.Count; ++k) { NFMsg.RecordObject addObjectStruct = (NFMsg.RecordObject)xAddStruct.record_object_list[k]; if (addObjectStruct.col >= 0) { recordVecDesc[addObjectStruct.col] = NFIDataList.VARIANT_TYPE.VTYPE_OBJECT; recordVecData[addObjectStruct.col] = PBToNF(addObjectStruct.data); } } NFIDataList varListDesc = new NFCDataList(); NFIDataList varListData = new NFCDataList(); for (int m = 0; m < recordVecDesc.Count; m++) { if (recordVecDesc.ContainsKey(m) && recordVecData.ContainsKey(m)) { NFIDataList.VARIANT_TYPE nType = (NFIDataList.VARIANT_TYPE)recordVecDesc[m]; switch (nType) { case NFIDataList.VARIANT_TYPE.VTYPE_INT: { varListDesc.AddInt(0); varListData.AddInt((Int64)recordVecData[m]); } break; case NFIDataList.VARIANT_TYPE.VTYPE_FLOAT: { varListDesc.AddFloat(0.0f); varListData.AddFloat((float)recordVecData[m]); } break; case NFIDataList.VARIANT_TYPE.VTYPE_STRING: { varListDesc.AddString(""); varListData.AddString((string)recordVecData[m]); } break; case NFIDataList.VARIANT_TYPE.VTYPE_OBJECT: { varListDesc.AddObject(new NFGUID()); varListData.AddObject((NFGUID)recordVecData[m]); } break; default: break; } } else { //报错 //Debug.LogException(i); } } NFIRecord xRecord = xRecordManager.GetRecord(strRecordName); if (null == xRecord) { xRecord = xRecordManager.AddRecord(strRecordName, 512, varListDesc); } xRecord.AddRow(xAddStruct.row, varListData); }
public abstract int FindObject(int nCol, NFGUID value, ref NFIDataList varResult);
public abstract bool SetObject(NFGUID value);
public NFCProperty(NFGUID self, string strPropertyName, NFIDataList.TData varData) { mSelf = self; msPropertyName = strPropertyName; mxData = new NFIDataList.TData(varData); }
public override bool SetObject(NFGUID value) { if (mxData.ObjectVal() != value) { NFIDataList.TData oldValue = new NFIDataList.TData(mxData); NFIDataList.TData newValue = new NFIDataList.TData(NFIDataList.VARIANT_TYPE.VTYPE_OBJECT); newValue.Set(value); mxData.Set(value); if (null != doHandleDel) { doHandleDel(mSelf, msPropertyName, oldValue, newValue); } } return true; }
public override int FindObject(int nCol, NFGUID value, ref NFIDataList varResult) { foreach (int i in mhtRecordVec.Keys) { NFIDataList valueList = (NFIDataList)mhtRecordVec[i]; if (valueList.ObjectVal(nCol) == value) { varResult.AddInt(i); } } return varResult.Count(); }
public override bool SetObject(int nRow, int nCol, NFGUID value) { if(nRow >= 0 && nRow < mnRow) { if (!mhtRecordVec.ContainsKey(nRow)) { AddRow(nRow); } NFIDataList valueList = (NFIDataList)mhtRecordVec[nRow]; if (valueList.GetType(nCol) == NFIDataList.VARIANT_TYPE.VTYPE_OBJECT) { if (valueList.ObjectVal(nCol) != value) { NFIDataList.TData oldValue = new NFIDataList.TData(NFIDataList.VARIANT_TYPE.VTYPE_OBJECT); NFIDataList.TData newValue = new NFIDataList.TData(NFIDataList.VARIANT_TYPE.VTYPE_OBJECT); oldValue.Set(valueList.ObjectVal(nCol)); newValue.Set(value); valueList.SetObject(nCol, value); if (null != doHandleDel) { doHandleDel(mSelf, mstrRecordName, eRecordOptype.Update, nRow, nCol, oldValue, newValue); } } } return true; } return false; }
public virtual void SetSelf(NFGUID xID) { mxID = xID; }