private void OnClassPlayerEventHandler(NFGUID self, int nContainerID, int nGroupID, NFIObject.CLASS_EVENT_TYPE eType, string strClassName, string strConfigIndex) { if (eType == NFIObject.CLASS_EVENT_TYPE.OBJECT_CREATE) { } else if (eType == NFIObject.CLASS_EVENT_TYPE.OBJECT_LOADDATA) { } else if (eType == NFIObject.CLASS_EVENT_TYPE.OBJECT_DESTROY) { DestroyObject(self); } else if (eType == NFIObject.CLASS_EVENT_TYPE.OBJECT_CREATE_FINISH) { string strCnfID = mKernelModule.QueryPropertyString(self, NFrame.Player.ConfigID); NFDataList.TData data = new NFDataList.TData(NFDataList.VARIANT_TYPE.VTYPE_STRING); if (strCnfID != "") { data.Set(strCnfID); } else { data.Set(strConfigIndex); } if (data.StringVal().Length > 0) { OnConfigIDChangeHandler(self, NFrame.Player.ConfigID, data, data, 0); } mKernelModule.RegisterPropertyCallback(self, NFrame.Player.ConfigID, OnConfigIDChangeHandler); mKernelModule.RegisterPropertyCallback(self, NFrame.Player.HP, OnHPChangeHandler); } }
private void OnConfigChangeHandler(NFGUID self, string strProperty, NFDataList.TData oldVar, NFDataList.TData newVar) { Vector3 vec = GetRenderObjectPosition(self); DestroyObject(self); if (vec.Equals(Vector3.zero)) { NFVector3 vec3 = mKernelModule.QueryPropertyVector3(self, NPC.Position); vec.x = vec3.X(); vec.y = vec3.Y(); vec.z = vec3.Z(); } string strHeroCnfID = newVar.StringVal(); string strPrefabPath = mElementModule.QueryPropertyString(strHeroCnfID, NPC.Prefab); if (strPrefabPath.Length <= 0) { strPrefabPath = mElementModule.QueryPropertyString("Enemy", NPC.Prefab); } GameObject xPlayer = CreateObject(self, strPrefabPath, vec, NFrame.Player.ThisName); if (xPlayer) { xPlayer.name = NFrame.Player.ThisName; xPlayer.transform.Rotate(new Vector3(0, 90, 0)); NFBodyIdent xBodyIdent = xPlayer.GetComponent <NFBodyIdent>(); if (null != xBodyIdent) {//不能没有 xBodyIdent.enabled = true; xBodyIdent.SetObjectID(self); xBodyIdent.cnfID = strHeroCnfID; } else { Debug.LogError("No 'BodyIdent' component in " + strPrefabPath); } if (self == mLoginModule.mRoleID) { InitPlayerComponent(self, xPlayer, true); } else { InitPlayerComponent(self, xPlayer, false); } Debug.Log("Create Object successful" + NFrame.Player.ThisName + " " + vec.ToString() + " " + self.ToString()); } else { Debug.LogError("Create Object failed" + NFrame.Player.ThisName + " " + vec.ToString() + " " + self.ToString()); } }
public override bool SetData(NFDataList.TData x) { if (NFDataList.VARIANT_TYPE.VTYPE_UNKNOWN == mxData.GetType() || x.GetType() == mxData.GetType()) { switch (mxData.GetType()) { case NFDataList.VARIANT_TYPE.VTYPE_INT: SetInt(x.IntVal()); break; case NFDataList.VARIANT_TYPE.VTYPE_STRING: SetString(x.StringVal()); break; case NFDataList.VARIANT_TYPE.VTYPE_FLOAT: SetFloat(x.FloatVal()); break; case NFDataList.VARIANT_TYPE.VTYPE_OBJECT: SetObject(x.ObjectVal()); break; case NFDataList.VARIANT_TYPE.VTYPE_VECTOR2: SetVector2(x.Vector2Val()); break; case NFDataList.VARIANT_TYPE.VTYPE_VECTOR3: SetVector3(x.Vector3Val()); break; default: break; } return(true); } return(false); }