Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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());
            }
        }
Beispiel #3
0
        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);
        }