private void EGMI_ACK_OBJECT_PROPERTY_ENTRY(MsgHead head, MemoryStream stream) { AFMsg.MultiEntityDataNodeList xMultiObjectPropertyList = MultiEntityDataNodeList.Parser.ParseFrom(stream); // ReceiveMsg(stream, ref xMultiObjectPropertyList); for (int i = 0; i < xMultiObjectPropertyList.MultiEntityDataNodeList_.Count; i++) { AFMsg.EntityDataNodeList xPropertyData = xMultiObjectPropertyList.MultiEntityDataNodeList_[i]; AFIObject go = AFCKernel.Instance.GetObject(PBToAF(xPropertyData.EntityId)); AFIPropertyManager xPropertyManager = go.GetPropertyManager(); for (int j = 0; j < xPropertyData.DataNodeList.Count; j++) { string strPropertyName = xPropertyData.DataNodeList[j].NodeName; AFCoreEx.AFIDataList.Var_Data xPropertyValue = PBPropertyToData(xPropertyData.DataNodeList[j]); AFIProperty xProperty = xPropertyManager.GetProperty(strPropertyName); if (null == xProperty) { AFIDataList varList = new AFCDataList(); varList.AddDataObject(ref xPropertyValue); xProperty = xPropertyManager.AddProperty(strPropertyName, varList); } xProperty.SetDataObject(ref xPropertyValue); } } }
private void EGMI_ACK_MOVE_IMMUNE(MsgHead head, MemoryStream stream) { AFMsg.ReqAckPlayerMove xData = ReceiveMsg(stream, ReqAckPlayerMove.Parser) as ReqAckPlayerMove; if (xData.TargetPos.Count <= 0) { return; } //其实就是jump float fSpeed = AFCKernel.Instance.QueryPropertyInt(PBToAF(xData.Mover), "MOVE_SPEED") / 10000.0f; fSpeed *= 1.5f; AFCDataList varList = new AFCDataList(); varList.AddObject(PBToAF(xData.Mover)); varList.AddFloat(xData.TargetPos[0].X); varList.AddFloat(xData.TargetPos[0].Y); varList.AddFloat(xData.TargetPos[0].Z); varList.AddFloat(fSpeed); AFCLogicEvent.Instance.DoEvent((int)ClientEventDefine.EVENTDEFINE_MOVE_IMMUNE, varList); //AFCRenderInterface.Instance.MoveImmuneBySpeed(PBToAF(xData.mover), new Vector3(xData.target_pos[0].x, xData.target_pos[0].y, xData.target_pos[0].z), fSpeed, true); }
private void ADD_ROW(AFCoreEx.AFIDENTID self, string strRecordName, AFMsg.DataTableAddRow xAddStruct) { AFIObject go = AFCKernel.Instance.GetObject(self); AFIRecordManager xRecordManager = go.GetRecordManager(); Hashtable recordVecDesc = new Hashtable(); Hashtable recordVecData = new Hashtable(); AFCoreEx.AFCDataList RowList = new AFCDataList(); AFCoreEx.AFIDataList varListDesc = new AFCDataList(); for (int k = 0; k < xAddStruct.CellList.Count; ++k) { AFMsg.PBCellData addStruct = (AFMsg.PBCellData)xAddStruct.CellList[k]; if (addStruct.Col >= 0) { int nRow = -1; int nCol = -1; AFCoreEx.AFIDataList.Var_Data xRowData = PBRecordToData(addStruct, ref nRow, ref nCol); RowList.AddDataObject(ref xRowData); varListDesc.AddDataObject(ref xRowData); } } AFIRecord xRecord = xRecordManager.GetRecord(strRecordName); if (null == xRecord) { xRecord = xRecordManager.AddRecord(strRecordName, 512, varListDesc); } xRecord.AddRow(xAddStruct.Row, RowList); }
private void EGMI_ACK_SWAP_SCENE(MsgHead head, MemoryStream stream) { mxPlayerNet.ChangePlayerState(PlayerNet.PLAYER_STATE.E_PLAYER_GAMEING); AFMsg.ReqAckSwapScene xData = new AFMsg.ReqAckSwapScene(); xData = AFMsg.ReqAckSwapScene.Parser.ParseFrom(stream); //ReceiveMsg(stream, ref xData); //AFCRenderInterface.Instance.LoadScene(xData.scene_id, xData.x, xData.y, xData.z); AFCDataList varList = new AFCDataList(); varList.AddInt64(xData.SceneId); varList.AddFloat(xData.X); varList.AddFloat(xData.Y); varList.AddFloat(xData.Z); AFCLogicEvent.Instance.DoEvent((int)ClientEventDefine.EventDefine_Swap_Scene, varList); }
private void EGMI_ACK_ROLE_LIST(MsgHead head, MemoryStream stream) { AFMsg.AckRoleLiteInfoList xData = new AFMsg.AckRoleLiteInfoList(); xData = AFMsg.AckRoleLiteInfoList.Parser.ParseFrom(stream); //ReceiveMsg(stream, ref xData); mxPlayerNet.aCharList.Clear(); for (int i = 0; i < xData.CharData.Count; ++i) { AFMsg.RoleLiteInfo info = xData.CharData[i]; mxPlayerNet.aCharList.Add(info); } if (PlayerNet.PLAYER_STATE.E_WAIT_SELECT_ROLE != mxPlayerNet.GetPlayerState()) { AFCDataList varList = new AFCDataList(); varList.AddString("SelectScene"); AFCLogicEvent.Instance.DoEvent((int)ClientEventDefine.EventDefine_LoadSelectRole, varList); } mxPlayerNet.ChangePlayerState(PlayerNet.PLAYER_STATE.E_GETROLELIST_SUCCESSFUL); }
///////////////////////////////////////////////////////////////////// private void EGMI_ACK_PROPERTY_DATA(MsgHead head, MemoryStream stream) { AFMsg.EntityDataNode propertyData = ReceiveMsg(stream, EntityDataNode.Parser) as EntityDataNode; AFIObject go = AFCKernel.Instance.GetObject(PBToAF(propertyData.EntityId)); AFIPropertyManager propertyManager = go.GetPropertyManager(); for (int i = 0; i < propertyData.DataNodeList.Count; i++) { AFCoreEx.AFIDataList.Var_Data xData = PBPropertyToData(propertyData.DataNodeList[i]); AFIProperty property = propertyManager.GetProperty(propertyData.DataNodeList[i].NodeName); if (null == property) { AFIDataList varList = new AFCDataList(); varList.AddDataObject(ref xData); property = propertyManager.AddProperty(propertyData.DataNodeList[i].NodeName, varList); } property.SetDataObject(ref xData); } }
private void EGMI_ACK_MOVE(MsgHead head, MemoryStream stream) { AFMsg.ReqAckPlayerMove xData = new AFMsg.ReqAckPlayerMove(); xData = AFMsg.ReqAckPlayerMove.Parser.ParseFrom(stream); //ReceiveMsg(stream, ref xData); if (xData.TargetPos.Count <= 0) { return; } float fSpeed = AFCKernel.Instance.QueryPropertyInt(PBToAF(xData.Mover), "MOVE_SPEED") / 10000.0f; AFCDataList varList = new AFCDataList(); varList.AddObject(PBToAF(xData.Mover)); varList.AddFloat(xData.TargetPos[0].X); varList.AddFloat(xData.TargetPos[0].Y); varList.AddFloat(xData.TargetPos[0].Z); varList.AddFloat(fSpeed); AFCLogicEvent.Instance.DoEvent((int)ClientEventDefine.EventDefine_MoveTo, varList); //AFCRenderInterface.Instance.MoveTo(PBToAF(xData.mover), new Vector3(xData.target_pos[0].x, xData.target_pos[0].y, xData.target_pos[0].z), fSpeed, true); }
private void EGMI_ACK_OBJECT_ENTRY(MsgHead head, MemoryStream stream) { AFMsg.AckEntityEnterList xData = new AFMsg.AckEntityEnterList(); xData = AFMsg.AckEntityEnterList.Parser.ParseFrom(stream); //ReceiveMsg(stream, ref xData); for (int i = 0; i < xData.EntityList.Count; ++i) { AFMsg.EntityEnterInfo xInfo = xData.EntityList[i]; AFIDataList var = new AFCDataList(); var.AddString("X"); var.AddFloat(xInfo.Pos.X); var.AddString("Y"); var.AddFloat(xInfo.Pos.Y); var.AddString("Z"); var.AddFloat(xInfo.Pos.Z); AFIObject xGO = AFCKernel.Instance.CreateObject(PBToAF(xInfo.ObjectGuid), xInfo.SceneId, 0, xInfo.ClassId, xInfo.ConfigId, var); if (null == xGO) { continue; } } }
////////////////////////////////// private void EGMI_ACK_SKILL_OBJECTX(MsgHead head, MemoryStream stream) { AFMsg.ReqAckUseSkill xReqAckUseSkill = ReqAckUseSkill.Parser.ParseFrom(stream);// new AFMsg.ReqAckUseSkill(); // ReceiveMsg(stream, ref xReqAckUseSkill); AFMsg.Position xNowPos = xReqAckUseSkill.NowPos; AFMsg.Position xTarPos = xReqAckUseSkill.TarPos; AFIDataList xObjectList = new AFCDataList(); AFIDataList xRtlList = new AFCDataList(); AFIDataList xValueList = new AFCDataList(); if (xReqAckUseSkill.EffectData.Count <= 0) { return; } for (int i = 0; i < xReqAckUseSkill.EffectData.Count; ++i) { xObjectList.AddObject(PBToAF(xReqAckUseSkill.EffectData[i].EffectIdent)); xRtlList.AddInt64((int)xReqAckUseSkill.EffectData[i].EffectRlt); xValueList.AddInt64((int)xReqAckUseSkill.EffectData[i].EffectValue); } string strSkillName = xReqAckUseSkill.SkillId;//System.Text.Encoding.Default.GetString(); //Debug.Log("AckUseSkill:" + strSkillName); AFCDataList varList = new AFCDataList(); varList.AddObject(PBToAF(xReqAckUseSkill.User)); varList.AddFloat(xNowPos.X); varList.AddFloat(xNowPos.Z); varList.AddFloat(xTarPos.X); varList.AddFloat(xTarPos.Z); if (xObjectList.Count() != xRtlList.Count() || xObjectList.Count() != xValueList.Count()) { return; } varList.AddInt64(xObjectList.Count()); for (int i = 0; i < xObjectList.Count(); ++i) { varList.AddObject(xObjectList.ObjectVal(i)); } for (int i = 0; i < xRtlList.Count(); ++i) { varList.AddInt64(xRtlList.Int64Val(i)); } for (int i = 0; i < xValueList.Count(); ++i) { varList.AddInt64(xValueList.Int64Val(i)); } AFCLogicEvent.Instance.DoEvent((int)ClientEventDefine.EVENTDEFINE_USESKILL, varList); //AFCRenderInterface.Instance.UseSkill(, strSkillName, xNowPos.x, xNowPos.z, xTarPos.x, xTarPos.z, xObjectList, xRtlList, xValueList); }