Ejemplo n.º 1
0
        //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);

            //为了表现,客户端先走,后续同步
        }
Ejemplo n.º 2
0
        //有可能是他副本的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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        //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);

            //为了表现,客户端先走,后续同步
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        //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);
        }
Ejemplo n.º 7
0
        public void RequireEnterGameServer(NFrame.NFGUID objectID, string strAccount, string strRoleName, int nServerID)
        {
            NFMsg.ReqEnterGameServer xData = new NFMsg.ReqEnterGameServer();
            xData.name    = UnicodeEncoding.Default.GetBytes(strRoleName);
            xData.account = UnicodeEncoding.Default.GetBytes(strAccount);
            xData.game_id = nServerID;
            xData.id      = NFNetController.NFToPB(objectID);

            mxBody.SetLength(0);
            mxSerializer.Serialize(mxBody, xData);

            SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_ENTER_GAME, mxBody);
        }
Ejemplo n.º 8
0
        public void RequireRemoveRow(NFrame.NFGUID self, string strRecordName, int nRow)
        {
            NFMsg.ObjectRecordRemove xData = new NFMsg.ObjectRecordRemove();
            xData.player_id   = NFNetController.NFToPB(self);
            xData.record_name = System.Text.Encoding.Default.GetBytes(strRecordName);
            xData.remove_row.Add(nRow);

            mxBody.SetLength(0);
            mxSerializer.Serialize(mxBody, xData);

            Debug.Log("send upload record removeRow");
            SendMsg(self, NFMsg.EGameMsgID.EGMI_ACK_REMOVE_ROW, mxBody);
        }
Ejemplo n.º 9
0
        public void RequireChat(NFrame.NFGUID objectID, NFrame.NFGUID targetID, int nType, string strData)
        {
            NFMsg.ReqAckPlayerChat xData = new NFMsg.ReqAckPlayerChat();
            xData.chat_id   = NFNetController.NFToPB(targetID);
            xData.chat_name = UnicodeEncoding.Default.GetBytes(mxNetController.strRoleName);
            xData.chat_type = (NFMsg.ReqAckPlayerChat.EGameChatType)nType;
            xData.chat_info = UnicodeEncoding.Default.GetBytes(strData);

            mxBody.SetLength(0);
            mxSerializer.Serialize(mxBody, xData);

            SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_CHAT, mxBody);
        }
Ejemplo n.º 10
0
        public void RequireUseItem(NFrame.NFGUID objectID, string strItemID, NFrame.NFGUID nTargetID)
        {
            NFMsg.ReqAckUseItem xData = new NFMsg.ReqAckUseItem();
            xData.user            = NFNetController.NFToPB(objectID);
            xData.item_guid       = new NFMsg.Ident();
            xData.item            = new ItemStruct();
            xData.item.item_id    = strItemID;
            xData.item.item_count = 1;
            xData.targetid        = (NFNetController.NFToPB(nTargetID));

            mxBody.SetLength(0);
            mxSerializer.Serialize(mxBody, xData);

            SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_ITEM_OBJECT, mxBody);
        }
Ejemplo n.º 11
0
        public void RequireSwapRow(NFrame.NFGUID self, string strRecordName, int nOriginRow, int nTargetRow)
        {
            NFMsg.ObjectRecordSwap xData = new NFMsg.ObjectRecordSwap();
            xData.player_id          = NFNetController.NFToPB(self);
            xData.origin_record_name = System.Text.Encoding.Default.GetBytes(strRecordName);
            xData.target_record_name = System.Text.Encoding.Default.GetBytes(strRecordName);
            xData.row_origin         = nOriginRow;
            xData.row_target         = nTargetRow;

            mxBody.SetLength(0);
            mxSerializer.Serialize(mxBody, xData);

            Debug.Log("send upload record swapRow");
            SendMsg(self, NFMsg.EGameMsgID.EGMI_ACK_SWAP_ROW, mxBody);
        }
Ejemplo n.º 12
0
        public void RequireMoveImmune(NFrame.NFGUID objectID, float fX, float fZ)
        {
            NFMsg.ReqAckPlayerMove xData = new NFMsg.ReqAckPlayerMove();
            xData.mover    = NFNetController.NFToPB(objectID);
            xData.moveType = 0;
            NFMsg.Vector3 xTargetPos = new NFMsg.Vector3();
            xTargetPos.x = fX;
            xTargetPos.z = fZ;
            xData.target_pos.Add(xTargetPos);

            mxBody.SetLength(0);
            mxSerializer.Serialize(mxBody, xData);


            SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_MOVE_IMMUNE, mxBody);
        }
Ejemplo n.º 13
0
        ////////////////////////////////////修改自身属性
        public void RequirePropertyInt(NFrame.NFGUID objectID, string strPropertyName, NFDataList.TData newVar)
        {
            NFMsg.ObjectPropertyInt xData = new NFMsg.ObjectPropertyInt();
            xData.player_id = NFNetController.NFToPB(objectID);

            NFMsg.PropertyInt xPropertyInt = new NFMsg.PropertyInt();
            xPropertyInt.property_name = System.Text.Encoding.Default.GetBytes(strPropertyName);
            xPropertyInt.data          = newVar.IntVal();
            xData.property_list.Add(xPropertyInt);

            mxBody.SetLength(0);
            mxSerializer.Serialize(mxBody, xData);

            Debug.Log("send upload int");
            SendMsg(objectID, NFMsg.EGameMsgID.EGMI_ACK_PROPERTY_INT, mxBody);
        }
Ejemplo n.º 14
0
        public void RequirePropertyVector3(NFrame.NFGUID objectID, string strPropertyName, NFDataList.TData newVar)
        {
            NFMsg.ObjectPropertyVector3 xData = new NFMsg.ObjectPropertyVector3();
            xData.player_id = NFNetController.NFToPB(objectID);

            NFMsg.PropertyVector3 xProperty = new NFMsg.PropertyVector3();
            xProperty.property_name = System.Text.Encoding.Default.GetBytes(strPropertyName);
            xProperty.data          = NFNetController.NFToPB(newVar.Vector3Val());
            xData.property_list.Add(xProperty);

            mxBody.SetLength(0);
            mxSerializer.Serialize(mxBody, xData);


            NFNetController.Instance.mxNetSender.SendMsg(objectID, NFMsg.EGameMsgID.EGMI_ACK_PROPERTY_VECTOR3, mxBody);
        }
Ejemplo n.º 15
0
        public void RequireUseItem(NFrame.NFGUID objectID, string strItemID, NFrame.NFGUID nTargetID, UnityEngine.Vector3 pos)
        {
            NFMsg.ReqAckUseItem xData = new NFMsg.ReqAckUseItem();
            xData.user            = NFNetController.NFToPB(objectID);
            xData.item_guid       = new NFMsg.Ident();
            xData.item            = new ItemStruct();
            xData.item.item_id    = UnicodeEncoding.Default.GetBytes(strItemID);
            xData.item.item_count = 1;
            xData.targetid        = (NFNetController.NFToPB(nTargetID));
            xData.position        = (NFNetController.NFToPB(new NFVector3(pos.x, pos.y, pos.z)));

            mxBody.SetLength(0);
            mxSerializer.Serialize(mxBody, xData);

            SendMsg(objectID, NFMsg.EGameMsgID.EGMI_REQ_ITEM_OBJECT, mxBody);
        }
Ejemplo n.º 16
0
        public void RequirePropertyString(NFrame.NFGUID objectID, string strPropertyName, NFDataList.TData newVar)
        {
            NFMsg.ObjectPropertyString xData = new NFMsg.ObjectPropertyString();
            xData.player_id = NFNetController.NFToPB(objectID);

            NFMsg.PropertyString xPropertyString = new NFMsg.PropertyString();
            xPropertyString.property_name = System.Text.Encoding.Default.GetBytes(strPropertyName);
            xPropertyString.data          = System.Text.Encoding.Default.GetBytes(newVar.StringVal());
            xData.property_list.Add(xPropertyString);

            mxBody.SetLength(0);
            mxSerializer.Serialize(mxBody, xData);

            Debug.Log("send upload String");
            NFNetController.Instance.mxNetSender.SendMsg(objectID, NFMsg.EGameMsgID.EGMI_ACK_PROPERTY_STRING, mxBody);
        }
Ejemplo n.º 17
0
        public void RequireRecordVector3(NFrame.NFGUID self, string strRecordName, int nRow, int nCol, NFDataList.TData newVar)
        {
            NFMsg.ObjectRecordVector3 xData = new NFMsg.ObjectRecordVector3();
            xData.player_id   = NFNetController.NFToPB(self);
            xData.record_name = System.Text.Encoding.Default.GetBytes(strRecordName);

            NFMsg.RecordVector3 xRecordVector = new NFMsg.RecordVector3();
            xRecordVector.row  = nRow;
            xRecordVector.col  = nCol;
            xRecordVector.data = NFNetController.NFToPB(newVar.Vector3Val());

            mxBody.SetLength(0);
            mxSerializer.Serialize(mxBody, xData);

            SendMsg(self, NFMsg.EGameMsgID.EGMI_ACK_RECORD_VECTOR3, mxBody);
        }
Ejemplo n.º 18
0
        public void RequireRecordObject(NFrame.NFGUID self, string strRecordName, int nRow, int nCol, NFDataList.TData newVar)
        {
            NFMsg.ObjectRecordObject xData = new NFMsg.ObjectRecordObject();
            xData.player_id   = NFNetController.NFToPB(self);
            xData.record_name = System.Text.Encoding.Default.GetBytes(strRecordName);

            NFMsg.RecordObject xRecordObject = new NFMsg.RecordObject();
            xData.property_list.Add(xRecordObject);
            xRecordObject.row  = nRow;
            xRecordObject.col  = nCol;
            xRecordObject.data = NFNetController.NFToPB(newVar.ObjectVal());

            mxBody.SetLength(0);
            mxSerializer.Serialize(mxBody, xData);

            Debug.Log("send upload record object");
            SendMsg(self, NFMsg.EGameMsgID.EGMI_ACK_RECORD_OBJECT, mxBody);
        }
Ejemplo n.º 19
0
        public void RequireAddRow(NFrame.NFGUID self, string strRecordName, int nRow)
        {
            NFMsg.ObjectRecordAddRow xData = new NFMsg.ObjectRecordAddRow();
            xData.player_id   = NFNetController.NFToPB(self);
            xData.record_name = System.Text.Encoding.Default.GetBytes(strRecordName);

            NFMsg.RecordAddRowStruct xRecordAddRowStruct = new NFMsg.RecordAddRowStruct();
            xData.row_data.Add(xRecordAddRowStruct);
            xRecordAddRowStruct.row = nRow;

            NFIObject  xObject  = NFCKernelModule.Instance.GetObject(self);
            NFIRecord  xRecord  = xObject.GetRecordManager().GetRecord(strRecordName);
            NFDataList xRowData = xRecord.QueryRow(nRow);

            for (int i = 0; i < xRowData.Count(); i++)
            {
                switch (xRowData.GetType(i))
                {
                case NFDataList.VARIANT_TYPE.VTYPE_INT:
                {
                    NFMsg.RecordInt xRecordInt = new NFMsg.RecordInt();
                    xRecordInt.row  = nRow;
                    xRecordInt.col  = i;
                    xRecordInt.data = xRowData.IntVal(i);
                    xRecordAddRowStruct.record_int_list.Add(xRecordInt);
                }
                break;

                case NFDataList.VARIANT_TYPE.VTYPE_FLOAT:
                {
                    NFMsg.RecordFloat xRecordFloat = new NFMsg.RecordFloat();
                    xRecordFloat.row  = nRow;
                    xRecordFloat.col  = i;
                    xRecordFloat.data = (float)xRowData.FloatVal(i);
                    xRecordAddRowStruct.record_float_list.Add(xRecordFloat);
                }
                break;

                case NFDataList.VARIANT_TYPE.VTYPE_STRING:
                {
                    NFMsg.RecordString xRecordString = new NFMsg.RecordString();
                    xRecordString.row  = nRow;
                    xRecordString.col  = i;
                    xRecordString.data = System.Text.Encoding.Default.GetBytes(xRowData.StringVal(i));
                    xRecordAddRowStruct.record_string_list.Add(xRecordString);
                }
                break;

                case NFDataList.VARIANT_TYPE.VTYPE_OBJECT:
                {
                    NFMsg.RecordObject xRecordObject = new NFMsg.RecordObject();
                    xRecordObject.row  = nRow;
                    xRecordObject.col  = i;
                    xRecordObject.data = NFNetController.NFToPB(xRowData.ObjectVal(i));
                    xRecordAddRowStruct.record_object_list.Add(xRecordObject);
                }
                break;

                case NFDataList.VARIANT_TYPE.VTYPE_VECTOR2:
                {
                    NFMsg.RecordVector2 xRecordVector = new NFMsg.RecordVector2();
                    xRecordVector.row  = nRow;
                    xRecordVector.col  = i;
                    xRecordVector.data = NFNetController.NFToPB(xRowData.Vector2Val(i));
                    xRecordAddRowStruct.record_vector2_list.Add(xRecordVector);
                }
                break;

                case NFDataList.VARIANT_TYPE.VTYPE_VECTOR3:
                {
                    NFMsg.RecordVector3 xRecordVector = new NFMsg.RecordVector3();
                    xRecordVector.row  = nRow;
                    xRecordVector.col  = i;
                    xRecordVector.data = NFNetController.NFToPB(xRowData.Vector3Val(i));
                    xRecordAddRowStruct.record_vector3_list.Add(xRecordVector);
                }
                break;
                }
            }

            mxBody.SetLength(0);
            mxSerializer.Serialize(mxBody, xData);

            Debug.Log("send upload record addRow");
            SendMsg(self, NFMsg.EGameMsgID.EGMI_ACK_ADD_ROW, mxBody);
        }