_xiaofang/xiaofang/Assets/ProtoBuf/test.cs
2024-12-30 11:52:00 +08:00

1000 lines
36 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;
using System.Net.Sockets;
using UnityWebSocket;
using System.Text;
using Google.Protobuf;
using System.Net.WebSockets;
using System;
using System.Threading.Tasks;
public class test : MonoBehaviour
{
public string token;
public WEBScriptListener wEBScriptListener;
public class auth_login
{
public string clientId = "e5cd7e4891bf95d1d19206ce24a7b32e";
public string grantType = "password";
public string userType = "company_user";
public string username = "13006065371";
public string password = "YYL5371!";
}
//public async void loging()
//{
// auth_login auth_Login = new auth_login();
// string response = await web.SendRequest(web.URL + "/auth/login", "POST", JsonUtility.ToJson(auth_Login));
// // 解析服务器返回的数据
// server serverData = JsonConvert.DeserializeObject<server>(response);
// token = serverData.data.access_token;
// //Debug.Log(setverData.msg);
//}
//登录
void lodingWebSocket()
{
LoginRequest data = new LoginRequest();
data.UserId = "1845037177556934657";
data.Account = "17311259169";
WSMessage msg = new WSMessage();
msg.Module = "hall";
msg.ServiceName = "Login";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
LoginRequest login = ProtoBufffer.DeSerialize<LoginRequest>(deinfo.Data.ToByteArray());
Debug.Log("登录");
wEBScriptListener.SendMessageByte(sendData);
}
//加入房间
public void JoinRoom(string roomid)
{
JoinRoomRequest data = new JoinRoomRequest();
data.RoomId = roomid;
WSMessage msg = new WSMessage();
msg.Module = "hall";
msg.ServiceName = "JoinRoom";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
JoinRoomRequest login = ProtoBufffer.DeSerialize<JoinRoomRequest>(deinfo.Data.ToByteArray());
Debug.Log("加入房间");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//void BroadcastMessage()
//{
// WSMessage msg = new WSMessage();
// msg.Module = "hall";
// msg.ServiceName = "BroadcastMessage";
// //msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
// byte[] sendData = ProtoBufffer.Serialize(msg);
// WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
// JoinRoomRequest login = ProtoBufffer.DeSerialize<JoinRoomRequest>(deinfo.Data.ToByteArray());
// Debug.Log("加入房间");
// //BroadcastFrameMsg.FramesFieldNumber
// wEBScriptListener.SendMessageByte(sendData);
//}
//心跳
async void Heartbeat()
{
//WSMessage msg = new WSMessage();
//msg.Data = ByteString.CopyFrom(new byte[] { 1 });
//byte[] sendData = ProtoBufffer.Serialize(msg);
//Debug.Log("");
while (true)
{
WSMessage msg = new WSMessage();
msg.Module = "ping";
//msg.Data = ByteString.CopyFrom(new byte[] { 1 });
byte[] sendData = ProtoBufffer.Serialize(msg);
// 每秒执行的任务
Debug.Log("每秒执行一次");
wEBScriptListener.SendMessageByte(sendData);
// 等待2秒
await Task.Delay(2000);
}
}
//帧存储操作输入
void UpFps()
{
InputData data = new InputData();
data.RoomId = "168888";
data.Id = "778899";
data.SId = "7";
data.X = 7f;
data.Y = 5f;
data.Z = 4f;
data.RoomSeatId = 5;
WSMessage msg = new WSMessage();
msg.Module = "fps";
msg.ServiceName = "UpFps";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
InputData login = ProtoBufffer.DeSerialize<InputData>(deinfo.Data.ToByteArray());
Debug.Log("帧存储操作输入");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//拾取道具
void PickUpProp()
{
PropRequest data = new PropRequest();
data.PropId = 1001;
data.RoomId = "168888";
WSMessage msg = new WSMessage();
msg.Module = "prop";
msg.ServiceName = "PickUpProp";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
PropRequest login = ProtoBufffer.DeSerialize<PropRequest>(deinfo.Data.ToByteArray());
Debug.Log("拾取道具");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//使用道具
void StartUseProp()
{
PropRequest data = new PropRequest();
data.RoomId = "168888";
data.PropId = 1001;
data.Action = 1;
data.PropServerId = "MTg1OTc5MDMwOTIyODc4OTc2MA==";
WSMessage msg = new WSMessage();
msg.Module = "prop";
msg.ServiceName = "StartUseProp";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
PropRequest login = ProtoBufffer.DeSerialize<PropRequest>(deinfo.Data.ToByteArray());
Debug.Log("使用道具");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//停止使用道具
void StopUseProp()
{
PropRequest data = new PropRequest();
data.RoomId = "168888";
data.PropId = 1001;
data.PropServerId = "MTg1OTc5MDMwOTIyODc4OTc2MA==";
WSMessage msg = new WSMessage();
msg.Module = "prop";
msg.ServiceName = "StopUseProp";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
PropRequest login = ProtoBufffer.DeSerialize<PropRequest>(deinfo.Data.ToByteArray());
Debug.Log("停止使用道具");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//创建NPC ========================暂时不需要
//void CreateNpc()
//{
// PropRequest data = new PropRequest();
// data.RoomId = "168888";
// WSMessage msg = new WSMessage();
// msg.Module = "move";
// msg.ServiceName = "CreateNpc";
// msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
// byte[] sendData = ProtoBufffer.Serialize(msg);
// WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
// PropRequest login = ProtoBufffer.DeSerialize<PropRequest>(deinfo.Data.ToByteArray());
// Debug.Log("创建NPC");
// //BroadcastFrameMsg.FramesFieldNumber
// wEBScriptListener.SendMessageByte(sendData);
//}
//推送npc和玩家的信息 ===============只需要收消息
//void Location()
//{
// PropRequest data = new PropRequest();
// data.RoomId = "168888";
// WSMessage msg = new WSMessage();
// msg.Module = "prop";
// msg.ServiceName = "CreateNpc";
// msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
// byte[] sendData = ProtoBufffer.Serialize(msg);
// WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
// PropRequest login = ProtoBufffer.DeSerialize<PropRequest>(deinfo.Data.ToByteArray());
// Debug.Log("推送npc和玩家的信息");
// //BroadcastFrameMsg.FramesFieldNumber
// wEBScriptListener.SendMessageByte(sendData);
//}
//11开始计时
void RoomStartTime(string rooid)
{
JoinRoomRequest data = new JoinRoomRequest();
data.RoomId = rooid;
WSMessage msg = new WSMessage();
msg.Module = "hall";
msg.ServiceName = "RoomStartTime";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
JoinRoomRequest login = ProtoBufffer.DeSerialize<JoinRoomRequest>(deinfo.Data.ToByteArray());
Debug.Log("推送npc和玩家的信息");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//推送npc和玩家的信息
void Location(string userId = "2", string roomId = "3")
{
MoveResponse data = new MoveResponse();
data.RoomId = roomId;
data.UserId = userId;
WSMessage msg = new WSMessage();
msg.Module = "move";
msg.ServiceName = "Location";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
MoveResponse login = ProtoBufffer.DeSerialize<MoveResponse>(deinfo.Data.ToByteArray());
Debug.Log("推送npc和玩家的信息");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
void TaskTrigger()
{
TaskTrigger data = new TaskTrigger();
data.RoomId = "168888";
data.TriggerId = "10006";
data.UserId = "1845037177556934659";
data.TypeStr = "selector";
WSMessage msg = new WSMessage();
msg.Module = "task";
msg.ServiceName = "TaskTrigger";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
TaskTrigger login = ProtoBufffer.DeSerialize<TaskTrigger>(deinfo.Data.ToByteArray());
Debug.Log("==========任务触发");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
void TaskUpdateRequest()
{
TaskUpdateRequest data = new TaskUpdateRequest();
data.RoomId = "168888";
data.TaskId = "d9608224-18b4-4d68-af45-82b3c843e3c3";
data.UserId = "1845037177556934659";
data.PropId = "3005";
WSMessage msg = new WSMessage();
msg.Module = "task";
msg.ServiceName = "UpdateTask";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
TaskUpdateRequest login = ProtoBufffer.DeSerialize<TaskUpdateRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========任务触发");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//NPC路线选择
public void NpcMove(string roomId = "1", int moveType = 2, int selectId = 3)
{
MoveRequest data = new MoveRequest();
data.RoomId = roomId;
data.MoveType = moveType;
data.SelectId = selectId;
WSMessage msg = new WSMessage();
msg.Module = "move";
msg.ServiceName = "MoveNpc";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
MoveRequest login = ProtoBufffer.DeSerialize<MoveRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========选择路线");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//12消息转发
public void MessageToUser()
{
MessageBroadcastRequest data = new MessageBroadcastRequest();
data.RoomId = "168888";
data.Type = 1;
data.RoleId = "8002";
data.Cmd = "55";
WSMessage msg = new WSMessage();
msg.Module = "hall";
msg.ServiceName = "MessageToUser";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
MessageBroadcastRequest login = ProtoBufffer.DeSerialize<MessageBroadcastRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
public void CreateNpcHandler()
{
NpcCreateRequest data = new NpcCreateRequest();
data.RoomId = "168888";
data.SceneId = "9003";
data.TemplateId = 2;
WSMessage msg = new WSMessage();
msg.Module = "move";
msg.ServiceName = "CreateNpcHandler";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
NpcCreateRequest login = ProtoBufffer.DeSerialize<NpcCreateRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//创建语音频道
public void RtcTokenHandler()
{
VoiceRequest data = new VoiceRequest();
data.Uid = 1;
data.RoomId = "8";
data.ChannelName = "2";
data.ChannelType = "5";
data.Role = "6";
WSMessage msg = new WSMessage();
msg.Module = "voice";
msg.ServiceName = "RtcTokenHandler";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
VoiceRequest login = ProtoBufffer.DeSerialize<VoiceRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//NPC是否进入烟雾区域
public void EnterFogArea()
{
npcRequest data = new npcRequest();
data.RoomId = "8";
data.Action = 3;
WSMessage msg = new WSMessage();
msg.Module = "voice";
msg.ServiceName = "RtcTokenHandler";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
VoiceRequest login = ProtoBufffer.DeSerialize<VoiceRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//界面选项操作
public void SelectTrigger()
{
SelectRequest data = new SelectRequest();
data.SelectId = "1";
data.UserId = "2";
data.RoomId = "3";
data.TaskId = "4";
data.RoleId = "5";
WSMessage msg = new WSMessage();
msg.Module = "voice";
msg.ServiceName = "RtcTokenHandler";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
SelectRequest login = ProtoBufffer.DeSerialize<SelectRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//
public void GetSelectHistoryList()
{
SelectHistoryRequest data = new SelectHistoryRequest();
data.SelectId = "1";
data.UserId = "2";
data.RoomId = "3";
WSMessage msg = new WSMessage();
msg.Module = "select";
msg.ServiceName = "GetSelectHistoryList";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
SelectHistoryRequest login = ProtoBufffer.DeSerialize<SelectHistoryRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//
public void GetTaskList(string userID, string roomID)
{
TaskTrigger data = new TaskTrigger();
data.UserId = "2";
data.RoomId = "3";
WSMessage msg = new WSMessage();
msg.Module = "select";
msg.ServiceName = "GetSelectHistoryList";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
TaskTrigger login = ProtoBufffer.DeSerialize<TaskTrigger>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//推送玩家信息
public void ThatUser(PlayerJoinResponse player)
{
PlayerJoinResponse data = new PlayerJoinResponse();
data = player;
WSMessage msg = new WSMessage();
msg.Module = "select";
msg.ServiceName = "GetSelectHistoryList";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
PlayerJoinResponse login = ProtoBufffer.DeSerialize<PlayerJoinResponse>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
public void TriggerNpcArrive()
{
MoveRoomAoiRequest data = new MoveRoomAoiRequest();
data.RoomId = "1";
data.UserId = 2;
data.X = 3f;
data.Y = 4f;
data.Z = 5f;
data.SceneId = "6";
data.NpcId = "7";
data.Action = 8;
WSMessage msg = new WSMessage();
msg.Module = "select";
msg.ServiceName = "GetSelectHistoryList";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
MoveRoomAoiRequest login = ProtoBufffer.DeSerialize<MoveRoomAoiRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
public void PlayerReady(string roomId,bool isready)
{
PlayerReadyRequest data = new PlayerReadyRequest();
data.RoomId = roomId;
data.IsReady = isready;
Debug.Log("==========玩家准备,,,,,,,,,,,,,,");
WSMessage msg = new WSMessage();
msg.Module = "hall";
msg.ServiceName = "PlayerReady";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
PlayerReadyRequest login = ProtoBufffer.DeSerialize<PlayerReadyRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
public void StartGameDrill(string roomId)
{
JoinRoomRequest data = new JoinRoomRequest();
data.RoomId = roomId;
WSMessage msg = new WSMessage();
msg.Module = "hall";
msg.ServiceName = "StartGameDrill";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
JoinRoomRequest login = ProtoBufffer.DeSerialize<JoinRoomRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
// Start is called before the first frame update
async void Start()
{
//loging();
wEBScriptListener.ConcatWEBSocket();
wEBScriptListener.OnCallback += callback;
if (wEBScriptListener != null)
{
lodingWebSocket();
//JoinRoom();
Heartbeat();
//BroadcastMessage();
//UpFps();
//PickUpProp();
//StartUseProp();
//StopUseProp();
//RoomStartTime();
//Location();
//TaskTrigger();
//TaskUpdateRequest();
}
//int index = 0;
//while (true)
//{
// index++;
// NpcData moveData = new NpcData();
// moveData.X = index;
// moveData.Y = 1;
// moveData.Z = 1;
// MoveResponse data = new MoveResponse();
// data.MoveData.Add(moveData);
// WSResponse ws = new WSResponse();
// ws.MessageType = "move.Location";
// ws.Data = ByteString.CopyFrom(data.ToByteArray());
// callback(ProtoBufffer.Serialize(ws));
// //PlayerJoinResponse pj = new PlayerJoinResponse();
// //pj.UserName = "abc";
// //pj.RoomId = "2";
// //pj.Status = 0;
// //pj.RoleName = "ABC";
// //pj.IsLeadingNPC = 5;
// //pj.Online = true;
// //pj.RoleId = 7;
// //pj.GroupLeader = 0;
// //pj.ActionMode = 2;
// //pj.Group = -1;
// //pj.X = 11;
// //pj.Y = 12;
// //pj.Z = 13;
// //pj.OverseeCond = "14";
// //pj.SendFrameCount = 15;
// //pj.MoveSpeedFirst = 16;
// //pj.MoveSpeedSecond = 17;
// //pj.MoveSpeedThird = 18;
// //pj.BearLoad = 19;
// //pj.Protection = 20;
// //pj.Health = 21;
// //pj.RoleStatus = 22;
// //pj.UserId = 23;
// //JoinRoomResponse data = new JoinRoomResponse();
// //data.Data = pj;
// //WSResponse ws = new WSResponse();
// //ws.MessageType = "hall.JoinRoom";
// //ws.Data = ByteString.CopyFrom(data.ToByteArray());
// //callback(ProtoBufffer.Serialize(ws));
// await Task.Delay(1000);
//}
}
void callback(byte[] data)
{
WSResponse deinfo = ProtoBufffer.DeSerialize<WSResponse>(data);
Debug.Log("返回数据类型:" + deinfo.MessageType);
byte[] bytes = deinfo.Data.ToByteArray();
switch (deinfo.MessageType)
{
//监听
//登录
case "hall.Login":
Debug.Log("-=====--");
LoginResponse user = ProtoBufffer.DeSerialize<LoginResponse>(bytes);
Debug.Log(user);
//这里是测试阶段用的,在登录之后调用加入房间,后续会删掉
break;
//进入房间
case "hall.JoinRoom":
JoinRoomResponse joinRoomResponse = ProtoBufffer.DeSerialize<JoinRoomResponse>(bytes);
byte[] joinByte = joinRoomResponse.Data.ToByteArray();
PlayerJoinResponse playerJoinResponse = ProtoBufffer.DeSerialize<PlayerJoinResponse>(joinByte);
Debug.Log("玩家:" + playerJoinResponse.UserName + "加入房间:" + playerJoinResponse.RoomId.ToString());
GameObject.Find("player").transform.position = new Vector3((float)playerJoinResponse.X, (float)playerJoinResponse.Y, (float)playerJoinResponse.Z);
Debug.Log(playerJoinResponse.IsReady);//是否准备的判断
Debug.Log("玩家位置");
break;
//广播
case "hall.BroadcastMessage":
UserJoinResponse userJoinResponse = ProtoBufffer.DeSerialize<UserJoinResponse>(bytes);
/*
这里是userJoinResponse带的数据信息
int64 userId =1;//用户id
string nickName=2;//用户名
string roleName=3;//用户角色
string roomId=4;//房间号
bool online =5;//状态 接收这个用户是不是掉线了
事件状态 1 用户上线 2用户下线 3 用户加入房间 4 事故发生 5 火势6 任务7 对象操作 8 NPc 属性更新 9 语音信息、 10 用户信息更新 11 房间开始
int32 messageType = 6;
string cmd =7;//操作指令
string incidentPosition=8://事件发生位置
float fireRadius =9;//火势半径
int32 firevalue = 10;//火势值
TaskInfoResponse taskResponse=11;//任务信息
0bjectInfoResponse objectResponse=12;//对象信息
NpcInfoResponse npcResponse=13;//npc信息
VoiceTransportResponse voiceResponse =14;//语音信息
PlayerJoinResponse playerResponse=15;//玩家信息
*/
//Debug.Log(userJoinResponse);
if (userJoinResponse.MessageType == 1)//用户上线
{
Debug.Log("玩家:" + userJoinResponse.NickName + "上线");
}
if (userJoinResponse.MessageType == 2)//用户下线
{
Debug.Log("玩家:" + userJoinResponse.NickName + "下线");
}
if (userJoinResponse.MessageType == 3)//加入房间
{
Debug.Log("玩家" + userJoinResponse.NickName + "加入房间:" + userJoinResponse.RoomId.ToString() + ",用户角色" + userJoinResponse.RoleName);
}
if (userJoinResponse.MessageType == 4)//事故发生
{
}
if (userJoinResponse.MessageType == 5)//火势
{
//这里写更新火势的信息 半径userJoinResponse.FireRadius 位置userJoinResponse.IncidentPosition 火势值userJoinResponse.FireValue
}
if (userJoinResponse.MessageType == 6)//任务
{
//解析出任务信息到taskInfoResponse 里面有TaskId 状态Status 房间id 坐标xyz 类型Type 时间限制Timelimit 描述Des 触发条件Trigger 下一步任务NextTask 目标类型TargetType 奖励Reward 备注Note 创建时间CreatTime 更新时间UpdateTime 目标用户id ToUserId 基础任务的id BaseTaskid
TaskInfoResponse taskInfoResponse = userJoinResponse.TaskResponse;
if (long.Parse(taskInfoResponse.ToUserId) == userJoinResponse.UserId)//当这个任务是当前玩家的任务时显示任务
{
TaskPanel.instance.Taskad(int.Parse(taskInfoResponse.TaskId));
}
}
if (userJoinResponse.MessageType == 7)//对象操作
{
//解析出的对象信息objectInfoResponse里面有
/*
string RoomId=1;//对象id
string Id=2://ID
string objectId=3;//对象ID
string Note =4;//状态
string Type =5;// 对象类型lilubing2024/11/2716:37·对象物体及任务:Changes
string Name=6;//对象文本Id
int64 Nameshowoffset=7;//对象文本显示偏移量
int64 showRadius=8;//对象显示半径
string Icon =9;//对象图标
string Role =10;//对象角色
string ItemDepend =11;//依赖物品
int64 Takerime = 12;// 交互、读条时间 -1 立即执行
string Needplayers = 13;// 判定范围,玩家数量,是否可操作(当人数不满足时)
string Taskstatus=14;//对应事件ID
string selectList=15;//选择列表
int64 onoff =16;// 操作状态 0不可操作1 可操作
string status=17;//状态
string ResChange =18;//资源变化
int64 ParallelControl=19;//是否支持多人操作
string ExtraValue=20;//额外参数
string UserIds = 21;// 玩家id列表 逗号分隔
string Createrime =22;//创建时间
string Updaterime =23;//更新时间
*/
ObjectInfoResponse objectInfoResponse = userJoinResponse.ObjectResponse;
}
if (userJoinResponse.MessageType == 8)//NPC属性更新
{
}
if (userJoinResponse.MessageType == 9)//语音信息
{
//解析出的语音信息voiceTransportResponse里面有 应用id AppId 用户id channelName
VoiceTransportResponse voiceTransportResponse = userJoinResponse.VoiceResponse;
}
if (userJoinResponse.MessageType == 10)//用户信息更新
{
//
}
if (userJoinResponse.MessageType == 11)//房间开始
{
test111.instance.Oppanel();
}
if (userJoinResponse.MessageType == 12)//玩家准备
{
Debug.Log("服务器给准备好消息");
GameObject.Find("HostCanvas").GetComponent<Starthost>().isSatisfy=true;
}
break;
//
case "fps.UpFps":
InputData inputData = ProtoBufffer.DeSerialize<InputData>(bytes);
Debug.Log("Id" + inputData.Id + ",sId :" + inputData.SId + "X:" + inputData.X.ToString() + "Y:" + inputData.Y.ToString() + "roomSeatId :" + inputData.RoomSeatId + "z:" + inputData.Z.ToString() + "roomId:" + inputData.RoomId);
break;
case "prop.PickUpProp":
PropRequest propRequest = ProtoBufffer.DeSerialize<PropRequest>(bytes);
Debug.Log("PropId:" + propRequest.PropId);
break;
case "prop.StartUseProp":
PropResponse useProp = ProtoBufffer.DeSerialize<PropResponse>(bytes);
Debug.Log("PropId:" + useProp);
break;
case "prop.StopUseProp":
PropResponse stopuseProp = ProtoBufffer.DeSerialize<PropResponse>(bytes);
Debug.Log("PropId:" + stopuseProp);
break;
case "move.Location":
//Debug.Log("move.Location接受到了");
NpcData npcData = ProtoBufffer.DeSerialize<NpcData>(bytes);
//Debug.Log(npcData);
if (npcData.Type == 1)//npc创建
{
float x = -float.Parse(npcData.X.ToString());
float y = float.Parse(npcData.Y.ToString());
float z = float.Parse(npcData.Z.ToString());
Vector3 position = new Vector3(x, y, z);
NPCController.instance.InitNPC(position, npcData);
}
if (npcData.Type == 2)//npc移动
{
Vector3 v = new Vector3(float.Parse(npcData.X.ToString()), float.Parse(npcData.Y.ToString()) + 0.5f, float.Parse(npcData.Z.ToString()));
//NPCController.instance.npcposition.Add(v);
//foreach (RecuseNpc item in NPCController.instance.npcsList)
//{
// if (npcData.UserId == item.npcId)
// {
// //Debug.Log("================" + v);
// item.SetNpcDes(v);
// }
//}
foreach (var npcDict in NPCController.instance.npcsList)
{
foreach (var kvp in npcDict)
{
RecuseNpc npc = kvp.Key; // 获取 NPC 脚本(键)
Vector3 position = kvp.Value; // 获取 NPC 的位置(值)
if (npcData.UserId == npc.npcId)
{
npc.SetNpcDes(v);
Debug.Log($"NPCID{npcData.UserId}NPCPOSITION{v}");
}
}
}
}
//npc.transform.name = npcData.UserId;
//npc.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f);
//npc.transform.position = new Vector3(x, y + 0.25f, z);
//npc.transform.parent = GameObject.Find("schoo103").transform;
break;
case "task.InitStart":
break;
//13(1)任务触发
case "task.TaskTrigger":
Debug.Log("-----------task.TaskTrigger");
TaskTrigger taskTrigger = ProtoBufffer.DeSerialize<TaskTrigger>(bytes);
Debug.Log(taskTrigger);
break;
//13(2)更新任务
case "task.UpdateTask":
Debug.Log("-----------task.TaskTrigger");
MoveRequest taskUpdateRequest = ProtoBufffer.DeSerialize<MoveRequest>(bytes);
Debug.Log(taskUpdateRequest);
break;
//对象触发操作
case "object.HandleObject":
Debug.Log("-----------object.HandleObject");
RequestObject requestObject = ProtoBufffer.DeSerialize<RequestObject>(bytes);
Debug.Log(requestObject);
break;
//
case "move.MoveNpc":
Debug.Log("-----------move.MoveNpc");
MoveRequest moveRequest = ProtoBufffer.DeSerialize<MoveRequest>(bytes);
Debug.Log(moveRequest);
break;
//17.语音频道
case "voice.RtcTokenHandler":
Debug.Log("-----------move.MoveNpc");
VoiceResponse voiceResponse = ProtoBufffer.DeSerialize<VoiceResponse>(bytes);
Debug.Log(voiceResponse);
break;
//15.对象触发操作
case "hall.ThatUser":
Debug.Log("-----------move.MoveNpc");
PlayerJoinResponse PlayerJoinResponse = ProtoBufffer.DeSerialize<PlayerJoinResponse>(bytes);
Debug.Log(PlayerJoinResponse);
break;
//16.获取任务列表
case "hall.GetTaskList":
Debug.Log("-----------move.MoveNpc");
TaskListResponse TaskListResponse = ProtoBufffer.DeSerialize<TaskListResponse>(bytes);
foreach (var task in TaskListResponse.Tasks)
{
Debug.Log(task.TaskId);
}
break;
//19. 界面选项操作
case "select.SelectTrigger":
Debug.Log("select.SelectTrigger");
SelectResponse selectRequest = ProtoBufffer.DeSerialize<SelectResponse>(bytes);
Debug.Log(selectRequest);
break;
//20. 选项操作记录
case "select.GetSelectHistoryList":
Debug.Log("select.GetSelectHistoryList");
SelectHistoryResponse selectHistoryResponse = ProtoBufffer.DeSerialize<SelectHistoryResponse>(bytes);
foreach (var selectRes in selectHistoryResponse.Selects)
{
Debug.Log(selectRes.Id);
}
break;
//21.NPC是否被扛起
case "move.TriggerNpcArrive":
SelectResponse selectResponse = ProtoBufffer.DeSerialize<SelectResponse>(bytes);
break;
//case "prop.CreateNpc":
// MoveResponse moveResponse = ProtoBufffer.DeSerialize<MoveResponse>(bytes);
// Debug.Log("UserId:" + moveResponse.UserId + "RoomId:" + moveResponse.RoomId + "x:" + moveResponse.MoveData);
// break;
//case "hall.RoomStartTime":
// JoinRoomRequest joinRoomRequest = ProtoBufffer.DeSerialize<JoinRoomRequest>(bytes);
// Debug.Log("PropId:" + joinRoomRequest.RoomId);
// break;
//case " hall.MessageToUser":
// //JoinRoomRequest joinRoomRequest = ProtoBufffer.DeSerialize<JoinRoomRequest>(bytes);
// //Debug.Log("PropId:" + joinRoomRequest.RoomId);
// break;
}
}
}