初始化提交

This commit is contained in:
2026-01-07 10:21:12 +08:00
parent 6d27123a26
commit 7e52d2fbcc
60 changed files with 6599 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f8939796ed96d754dad0824d88e97473
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,74 @@
using System.Collections.Generic;
using Google.Protobuf;
using UnityEngine;
public class PlayerManager : MonoBehaviour
{
public GameObject playerPrefab;
public Transform playerScene;
private Dictionary<long, PlayerMove> _players = new();
public static PlayerManager Instance { get; private set; }
private void Awake()
{
if (Instance != null)
{
Destroy(gameObject);
return;
}
Instance = this;
}
private void Start()
{
SocketMessageManager.Instance.Subscribe(MessageID.LoginSuccess, OnLoginSuccess);
SocketMessageManager.Instance.Subscribe(MessageID.EnterInstance, OnEnterInstance);
SocketMessageManager.Instance.Subscribe(MessageID.Position, OnPosition);
SocketManager.Instance.Connect();
}
private GameObject AddPlayer(PositionInfo info)
{
var player = Instantiate(playerPrefab, playerScene);
player.GetComponent<PlayerInfo>().usn = info.USN;
var move = player.GetComponent<PlayerMove>();
move.SetPosition(info.X, info.Y);
_players.Add(info.USN, move);
return player;
}
private void OnLoginSuccess(ByteString msg)
{
var loginSuccess = S2C_LoginSuccess.Parser.ParseFrom(msg);
SocketManager.Instance.SendMessage(MessageID.EnterInstance, new C2S_EnterInstance
{
InstanceID = loginSuccess.InstanceID
});
}
private void OnEnterInstance(ByteString msg)
{
var enterInstance = S2C_EnterInstance.Parser.ParseFrom(msg);
var player = AddPlayer(enterInstance.Info);
player.AddComponent<PlayerControl>();
}
private void OnPosition(ByteString msg)
{
var position = S2C_Position.Parser.ParseFrom(msg);
foreach (var info in position.Info)
{
if (!_players.ContainsKey(info.USN))
{
AddPlayer(info);
}
else
{
_players[info.USN].SetPosition(info.X, info.Y);
}
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 5228fd1670b3455a9900c17b9c1899e6
timeCreated: 1765791557

View File

@@ -0,0 +1,129 @@
using System.Collections;
using Google.Protobuf;
using NativeWebSocket;
using UnityEngine;
using UnityEngine.Networking;
[System.Serializable]
public class LoginResponse
{
public int code;
public string msg;
public Data data;
}
[System.Serializable]
public class Data
{
public long usn;
public string name;
public string accessToken;
public string refreshToken;
}
public class SocketManager : MonoBehaviour
{
private WebSocket _ws;
public static SocketManager Instance { get; private set; }
private void Awake()
{
if (Instance != null)
{
Destroy(gameObject);
return;
}
Instance = this;
}
public async void Connect()
{
var token = await GetTokenAsync();
// _ws = new WebSocket($"wss://www.hlsq.asia/ws/?token={Random.Range(1, 1000)}");
_ws = new WebSocket($"ws://127.0.0.1:8501/?token={token}");
_ws.OnOpen += () => { Debug.Log("Connection open!"); };
_ws.OnError += (e) => { Debug.Log("Error! " + e); };
_ws.OnClose += (e) => { Debug.Log("Connection closed!"); };
_ws.OnMessage += (bytes) =>
{
var message = Message.Parser.ParseFrom(bytes);
Debug.Log("OnMessage: " + message.ID);
SocketMessageManager.Instance.TriggerEvent(message.ID, message.Payload);
};
await _ws.Connect();
}
private async System.Threading.Tasks.Task<string> GetTokenAsync()
{
string token = "";
var tcs = new System.Threading.Tasks.TaskCompletionSource<string>();
StartCoroutine(HttpPost("http://127.0.0.1:8503/gw/login", "{\"phone\": \"1234\", \"code\": \"1234\"}", (resp) =>
{
try
{
var r = JsonUtility.FromJson<LoginResponse>(resp);
token = r.data.accessToken;
tcs.SetResult(token);
}
catch (System.Exception e)
{
tcs.SetException(e);
}
}));
return await tcs.Task;
}
public void SendMessage(MessageID id, IMessage msg)
{
var m = new Message
{
ID = id,
Payload = ByteString.CopyFrom(msg.ToByteArray())
};
_ws.Send(m.ToByteArray());
}
public IEnumerator HttpPost(string url, string jsonData, System.Action<string> callback)
{
var request = new UnityWebRequest(url, "POST");
var bodyRaw = System.Text.Encoding.UTF8.GetBytes(jsonData);
request.uploadHandler = new UploadHandlerRaw(bodyRaw);
request.downloadHandler = new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
yield return request.SendWebRequest();
if (request.result == UnityWebRequest.Result.Success)
{
callback?.Invoke(request.downloadHandler.text);
}
else
{
Debug.LogError("HTTP POST Error: " + request.error);
}
request.Dispose();
}
private void Update()
{
#if !UNITY_WEBGL || UNITY_EDITOR
_ws?.DispatchMessageQueue();
#endif
}
private async void OnApplicationQuit()
{
await _ws.Close();
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d6b127b9486a4f07acfbdcc29fc7d2a5
timeCreated: 1765791343

View File

@@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using Google.Protobuf;
using UnityEngine;
public class SocketMessageManager : MonoBehaviour
{
// 使用字典存储
private Dictionary<MessageID, Action<ByteString>> _eventDictionary;
public static SocketMessageManager Instance { get; private set; }
private void Awake()
{
if (Instance != null)
{
Destroy(gameObject);
return;
}
Instance = this;
_eventDictionary = new Dictionary<MessageID, Action<ByteString>>();
}
// 订阅事件
public void Subscribe(MessageID messageID, Action<ByteString> listener)
{
if (_eventDictionary.ContainsKey(messageID))
{
_eventDictionary[messageID] += listener;
}
else
{
_eventDictionary[messageID] = listener;
}
}
// 取消订阅
public void Unsubscribe(MessageID messageID, Action<ByteString> listener)
{
if (_eventDictionary.ContainsKey(messageID))
{
_eventDictionary[messageID] -= listener;
}
}
// 触发事件
public void TriggerEvent(MessageID messageID, ByteString data = null)
{
if (_eventDictionary.ContainsKey(messageID))
{
_eventDictionary[messageID]?.Invoke(data);
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: afc9630f7f1a49b5b0e8b13bffa9b4ea
timeCreated: 1765791087

View File

@@ -0,0 +1,45 @@
using UnityEngine;
// 玩家控制,只有当前玩家能控制自己角色
public class PlayerControl : MonoBehaviour
{
private const float SendRate = 1f; // 1秒至少发送一次
private float _lastSendTime;
private Vector2 _lastSentDirection = Vector2.zero;
private void Update()
{
var input = new Vector2(
Input.GetAxisRaw("Horizontal"),
Input.GetAxisRaw("Vertical")
);
var currentDir = input == Vector2.zero ? Vector2.zero : input.normalized;
if (Time.time >= _lastSendTime + 1f / SendRate)
{
if (currentDir != Vector2.zero)
{
SendMoveInput(currentDir);
}
}
else if (currentDir != _lastSentDirection)
{
SendMoveInput(currentDir);
}
}
private void SendMoveInput(Vector2 direction)
{
Debug.Log($"SendMoveInput {direction} {transform.GetComponent<PlayerInfo>().usn}");
_lastSentDirection = direction;
_lastSendTime = Time.time;
SocketManager.Instance.SendMessage(MessageID.Action, new C2S_Action
{
// Sequence = SocketManager.Instance.Sequence,
// Timestamp = (long)(Time.time * 1000),
Action = ActionID.Move,
DirX = (int)(direction.x * 100),
DirY = (int)(direction.y * 100)
});
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d7c83e290b104d08836d805dd0733f69
timeCreated: 1765872496

View File

@@ -0,0 +1,6 @@
using UnityEngine;
public class PlayerInfo : MonoBehaviour
{
[HideInInspector] public long usn;
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: b2fb6c5cc8234d1f853f94a89472348c
timeCreated: 1765858911

View File

@@ -0,0 +1,23 @@
using UnityEngine;
// 控制玩家移动
public class PlayerMove : MonoBehaviour
{
private Vector3 _targetPosition;
private const float SmoothSpeed = 10f;
private void Start()
{
_targetPosition = transform.position;
}
private void Update()
{
transform.position = Vector3.Lerp(transform.position, _targetPosition, SmoothSpeed * Time.deltaTime);
}
public void SetPosition(float x, float y)
{
_targetPosition = new Vector3(x / 100, y / 100, 0f);
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e8262c63fb4770549befe57c9245251c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 616d927c0d69413d84be47b97ebda7b4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7ca822f0a057b8c42b38e4605c0482d0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,303 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: define.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code
using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
/// <summary>Holder for reflection information generated from define.proto</summary>
public static partial class DefineReflection {
#region Descriptor
/// <summary>File descriptor for define.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
static DefineReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CgxkZWZpbmUucHJvdG8aD3NjX2NvbW1vbi5wcm90byIyCgdNZXNzYWdlEhYK",
"AklEGAEgASgOMgouTWVzc2FnZUlEEg8KB1BheWxvYWQYAiABKAwqwgEKCU1l",
"c3NhZ2VJRBIWChJNRVNTQUdFX0lEX0lOVkFMSUQQABIXChNNRVNTQUdFX0lE",
"X0tJQ0tfT1VUEAESFwoTTUVTU0FHRV9JRF9RVUVVRV9VUBACEhwKGE1FU1NB",
"R0VfSURfTE9HSU5fU1VDQ0VTUxADEh0KGU1FU1NBR0VfSURfRU5URVJfSU5T",
"VEFOQ0UQZRIVChFNRVNTQUdFX0lEX0FDVElPThBmEhcKE01FU1NBR0VfSURf",
"UE9TSVRJT04QZ0IXWhVjb21tb24vcHJvdG8vc2Mvc2NfcGJiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::ScCommonReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::MessageID), }, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::Message), global::Message.Parser, new[]{ "ID", "Payload" }, null, null, null, null)
}));
}
#endregion
}
#region Enums
public enum MessageID {
[pbr::OriginalName("MESSAGE_ID_INVALID")] Invalid = 0,
/// <summary>
/// 服务器踢人
/// </summary>
[pbr::OriginalName("MESSAGE_ID_KICK_OUT")] KickOut = 1,
/// <summary>
/// 排队中
/// </summary>
[pbr::OriginalName("MESSAGE_ID_QUEUE_UP")] QueueUp = 2,
/// <summary>
/// 登录成功
/// </summary>
[pbr::OriginalName("MESSAGE_ID_LOGIN_SUCCESS")] LoginSuccess = 3,
/// <summary>
/// 进入副本
/// </summary>
[pbr::OriginalName("MESSAGE_ID_ENTER_INSTANCE")] EnterInstance = 101,
/// <summary>
/// 指令
/// </summary>
[pbr::OriginalName("MESSAGE_ID_ACTION")] Action = 102,
/// <summary>
/// 位置更新
/// </summary>
[pbr::OriginalName("MESSAGE_ID_POSITION")] Position = 103,
}
#endregion
#region Messages
[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
public sealed partial class Message : pb::IMessage<Message>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<Message> _parser = new pb::MessageParser<Message>(() => new Message());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<Message> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::DefineReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public Message() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public Message(Message other) : this() {
iD_ = other.iD_;
payload_ = other.payload_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public Message Clone() {
return new Message(this);
}
/// <summary>Field number for the "ID" field.</summary>
public const int IDFieldNumber = 1;
private global::MessageID iD_ = global::MessageID.Invalid;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::MessageID ID {
get { return iD_; }
set {
iD_ = value;
}
}
/// <summary>Field number for the "Payload" field.</summary>
public const int PayloadFieldNumber = 2;
private pb::ByteString payload_ = pb::ByteString.Empty;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public pb::ByteString Payload {
get { return payload_; }
set {
payload_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as Message);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(Message other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (ID != other.ID) return false;
if (Payload != other.Payload) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override int GetHashCode() {
int hash = 1;
if (ID != global::MessageID.Invalid) hash ^= ID.GetHashCode();
if (Payload.Length != 0) hash ^= Payload.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (ID != global::MessageID.Invalid) {
output.WriteRawTag(8);
output.WriteEnum((int) ID);
}
if (Payload.Length != 0) {
output.WriteRawTag(18);
output.WriteBytes(Payload);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (ID != global::MessageID.Invalid) {
output.WriteRawTag(8);
output.WriteEnum((int) ID);
}
if (Payload.Length != 0) {
output.WriteRawTag(18);
output.WriteBytes(Payload);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CalculateSize() {
int size = 0;
if (ID != global::MessageID.Invalid) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ID);
}
if (Payload.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeBytesSize(Payload);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(Message other) {
if (other == null) {
return;
}
if (other.ID != global::MessageID.Invalid) {
ID = other.ID;
}
if (other.Payload.Length != 0) {
Payload = other.Payload;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
case 8: {
ID = (global::MessageID) input.ReadEnum();
break;
}
case 18: {
Payload = input.ReadBytes();
break;
}
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
case 8: {
ID = (global::MessageID) input.ReadEnum();
break;
}
case 18: {
Payload = input.ReadBytes();
break;
}
}
}
}
#endif
}
#endregion
#endregion Designer generated code

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d4e8c64e79289b744a0ea4b3a8386ab9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,35 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: sc_common.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code
using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
/// <summary>Holder for reflection information generated from sc_common.proto</summary>
public static partial class ScCommonReflection {
#region Descriptor
/// <summary>File descriptor for sc_common.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
static ScCommonReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"Cg9zY19jb21tb24ucHJvdG9CG1oZY29tbW9uL3Byb3RvL3NjL3NjX2NvbW1v",
"bmIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, null));
}
#endregion
}
#endregion Designer generated code

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2858039bb822fe74a92883426174f776
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,661 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: service.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code
using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
/// <summary>Holder for reflection information generated from service.proto</summary>
public static partial class ServiceReflection {
#region Descriptor
/// <summary>File descriptor for service.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
static ServiceReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"Cg1zZXJ2aWNlLnByb3RvGg9zY19jb21tb24ucHJvdG8iJQoLUzJDX0tpY2tP",
"dXQSFgoCSUQYASABKA4yCi5LaWNrT3V0SUQiIwoLUzJDX1F1ZXVlVXASFAoM",
"UXVldWVVcENvdW50GAEgASgFIiYKEFMyQ19Mb2dpblN1Y2Nlc3MSEgoKSW5z",
"dGFuY2VJRBgBIAEoBSq+AQoJS2lja091dElEEhcKE0tJQ0tfT1VUX0lEX0lO",
"VkFMSUQQABIfChtLSUNLX09VVF9JRF9EVVBMSUNBVEVfTE9HSU4QARIbChdL",
"SUNLX09VVF9JRF9TRVJWRVJfQlVTWRACEhwKGEtJQ0tfT1VUX0lEX1NFUlZF",
"Ul9DTE9TRRADEh0KGUtJQ0tfT1VUX0lEX1FVRVVFX1VQX0ZVTEwQBBIdChlL",
"SUNLX09VVF9JRF9UT0tFTl9JTlZBTElEEAVCF1oVY29tbW9uL3Byb3RvL3Nj",
"L3NjX3BiYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::ScCommonReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::KickOutID), }, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::S2C_KickOut), global::S2C_KickOut.Parser, new[]{ "ID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::S2C_QueueUp), global::S2C_QueueUp.Parser, new[]{ "QueueUpCount" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::S2C_LoginSuccess), global::S2C_LoginSuccess.Parser, new[]{ "InstanceID" }, null, null, null, null)
}));
}
#endregion
}
#region Enums
/// <summary>
/// MESSAGE_ID_KICK_OUT
/// </summary>
public enum KickOutID {
[pbr::OriginalName("KICK_OUT_ID_INVALID")] Invalid = 0,
/// <summary>
/// 重复登录
/// </summary>
[pbr::OriginalName("KICK_OUT_ID_DUPLICATE_LOGIN")] DuplicateLogin = 1,
/// <summary>
/// 服务器繁忙
/// </summary>
[pbr::OriginalName("KICK_OUT_ID_SERVER_BUSY")] ServerBusy = 2,
/// <summary>
/// 服务器关闭
/// </summary>
[pbr::OriginalName("KICK_OUT_ID_SERVER_CLOSE")] ServerClose = 3,
/// <summary>
/// 排队上限
/// </summary>
[pbr::OriginalName("KICK_OUT_ID_QUEUE_UP_FULL")] QueueUpFull = 4,
/// <summary>
/// Token无效
/// </summary>
[pbr::OriginalName("KICK_OUT_ID_TOKEN_INVALID")] TokenInvalid = 5,
}
#endregion
#region Messages
[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
public sealed partial class S2C_KickOut : pb::IMessage<S2C_KickOut>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<S2C_KickOut> _parser = new pb::MessageParser<S2C_KickOut>(() => new S2C_KickOut());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<S2C_KickOut> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::ServiceReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public S2C_KickOut() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public S2C_KickOut(S2C_KickOut other) : this() {
iD_ = other.iD_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public S2C_KickOut Clone() {
return new S2C_KickOut(this);
}
/// <summary>Field number for the "ID" field.</summary>
public const int IDFieldNumber = 1;
private global::KickOutID iD_ = global::KickOutID.Invalid;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::KickOutID ID {
get { return iD_; }
set {
iD_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as S2C_KickOut);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(S2C_KickOut other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (ID != other.ID) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override int GetHashCode() {
int hash = 1;
if (ID != global::KickOutID.Invalid) hash ^= ID.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (ID != global::KickOutID.Invalid) {
output.WriteRawTag(8);
output.WriteEnum((int) ID);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (ID != global::KickOutID.Invalid) {
output.WriteRawTag(8);
output.WriteEnum((int) ID);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CalculateSize() {
int size = 0;
if (ID != global::KickOutID.Invalid) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ID);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(S2C_KickOut other) {
if (other == null) {
return;
}
if (other.ID != global::KickOutID.Invalid) {
ID = other.ID;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
case 8: {
ID = (global::KickOutID) input.ReadEnum();
break;
}
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
case 8: {
ID = (global::KickOutID) input.ReadEnum();
break;
}
}
}
}
#endif
}
/// <summary>
/// MESSAGE_ID_QUEUE_UP
/// </summary>
[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
public sealed partial class S2C_QueueUp : pb::IMessage<S2C_QueueUp>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<S2C_QueueUp> _parser = new pb::MessageParser<S2C_QueueUp>(() => new S2C_QueueUp());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<S2C_QueueUp> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::ServiceReflection.Descriptor.MessageTypes[1]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public S2C_QueueUp() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public S2C_QueueUp(S2C_QueueUp other) : this() {
queueUpCount_ = other.queueUpCount_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public S2C_QueueUp Clone() {
return new S2C_QueueUp(this);
}
/// <summary>Field number for the "QueueUpCount" field.</summary>
public const int QueueUpCountFieldNumber = 1;
private int queueUpCount_;
/// <summary>
/// 排队人数
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int QueueUpCount {
get { return queueUpCount_; }
set {
queueUpCount_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as S2C_QueueUp);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(S2C_QueueUp other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (QueueUpCount != other.QueueUpCount) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override int GetHashCode() {
int hash = 1;
if (QueueUpCount != 0) hash ^= QueueUpCount.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (QueueUpCount != 0) {
output.WriteRawTag(8);
output.WriteInt32(QueueUpCount);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (QueueUpCount != 0) {
output.WriteRawTag(8);
output.WriteInt32(QueueUpCount);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CalculateSize() {
int size = 0;
if (QueueUpCount != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(QueueUpCount);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(S2C_QueueUp other) {
if (other == null) {
return;
}
if (other.QueueUpCount != 0) {
QueueUpCount = other.QueueUpCount;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
case 8: {
QueueUpCount = input.ReadInt32();
break;
}
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
case 8: {
QueueUpCount = input.ReadInt32();
break;
}
}
}
}
#endif
}
/// <summary>
/// MESSAGE_ID_LOGIN_SUCCESS
/// </summary>
[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
public sealed partial class S2C_LoginSuccess : pb::IMessage<S2C_LoginSuccess>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<S2C_LoginSuccess> _parser = new pb::MessageParser<S2C_LoginSuccess>(() => new S2C_LoginSuccess());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<S2C_LoginSuccess> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::ServiceReflection.Descriptor.MessageTypes[2]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public S2C_LoginSuccess() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public S2C_LoginSuccess(S2C_LoginSuccess other) : this() {
instanceID_ = other.instanceID_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public S2C_LoginSuccess Clone() {
return new S2C_LoginSuccess(this);
}
/// <summary>Field number for the "InstanceID" field.</summary>
public const int InstanceIDFieldNumber = 1;
private int instanceID_;
/// <summary>
/// 副本ID
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int InstanceID {
get { return instanceID_; }
set {
instanceID_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as S2C_LoginSuccess);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(S2C_LoginSuccess other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (InstanceID != other.InstanceID) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override int GetHashCode() {
int hash = 1;
if (InstanceID != 0) hash ^= InstanceID.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (InstanceID != 0) {
output.WriteRawTag(8);
output.WriteInt32(InstanceID);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (InstanceID != 0) {
output.WriteRawTag(8);
output.WriteInt32(InstanceID);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CalculateSize() {
int size = 0;
if (InstanceID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(InstanceID);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(S2C_LoginSuccess other) {
if (other == null) {
return;
}
if (other.InstanceID != 0) {
InstanceID = other.InstanceID;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
case 8: {
InstanceID = input.ReadInt32();
break;
}
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
case 8: {
InstanceID = input.ReadInt32();
break;
}
}
}
}
#endif
}
#endregion
#endregion Designer generated code

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 3a51699186974d3e8a11d764e0e8c90d
timeCreated: 1767689425