master #66
@ -56,7 +56,7 @@ MonoBehaviour:
|
||||
m_msgText: {fileID: 4253545256053581529}
|
||||
OutTime: 0.5
|
||||
OutEase: 9
|
||||
StandTime: 5
|
||||
StandTime: 2
|
||||
InTime: 0.5
|
||||
InEase: 28
|
||||
--- !u!114 &7081568093111909217
|
||||
|
@ -5,6 +5,7 @@ using AxibugEmuOnline.Client.Network;
|
||||
using AxibugProtobuf;
|
||||
using AxiReplay;
|
||||
using Google.Protobuf;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
@ -451,6 +452,25 @@ namespace AxibugEmuOnline.Client.Manager
|
||||
//解压
|
||||
byte[] data = Helper.DecompressByteArray(msg.RawBitmap.ToArray());
|
||||
}
|
||||
|
||||
public void ChangeCurrRoomPlayerName(long uid)
|
||||
{
|
||||
UserDataBase userdata = App.user.GetUserByUid(uid);
|
||||
if (userdata == null)
|
||||
return;
|
||||
|
||||
if (mineRoomMiniInfo == null)
|
||||
{
|
||||
if (mineRoomMiniInfo.Player1UID == uid)
|
||||
mineRoomMiniInfo.Player1NickName = userdata.NickName;
|
||||
else if (mineRoomMiniInfo.Player2UID == uid)
|
||||
mineRoomMiniInfo.Player2NickName = userdata.NickName;
|
||||
else if (mineRoomMiniInfo.Player3UID == uid)
|
||||
mineRoomMiniInfo.Player3NickName = userdata.NickName;
|
||||
else if (mineRoomMiniInfo.Player4UID == uid)
|
||||
mineRoomMiniInfo.Player4NickName = userdata.NickName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class RoomEX
|
||||
|
@ -207,7 +207,9 @@ namespace AxibugEmuOnline.Client.Manager
|
||||
if (userdata == null)
|
||||
return;
|
||||
userdata.NickName = msg.UserInfo.NickName;
|
||||
//TODO其他
|
||||
|
||||
App.roomMgr.ChangeCurrRoomPlayerName(msg.UID);
|
||||
|
||||
Eventer.Instance.PostEvent(EEvent.OnOtherUserInfoUpdate, msg.UID);
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@ namespace AxibugEmuOnline.Client
|
||||
m_msgText.text = msg;
|
||||
Canvas.ForceUpdateCanvases();
|
||||
|
||||
var targetPos = new Vector2(-RectTransform.rect.width,RectTransform.anchoredPosition.y);
|
||||
var targetPos = new Vector2(-RectTransform.rect.width - 20 , RectTransform.anchoredPosition.y);
|
||||
DOTween.To(
|
||||
() => RectTransform.anchoredPosition,
|
||||
(value) => RectTransform.anchoredPosition = value,
|
||||
|
@ -12,7 +12,7 @@ namespace AxibugEmuOnline.Client
|
||||
List<PopTipsItem> m_runtimeItems = new List<PopTipsItem>();
|
||||
|
||||
const float StartY = -108f;
|
||||
const float StepY = -120;
|
||||
const float StepY = -140f;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
|
@ -78,8 +78,7 @@ namespace AxibugEmuOnline.Server.Manager
|
||||
{
|
||||
// 设置参数值
|
||||
command.Parameters.AddWithValue("?uid", _c.UID);
|
||||
command.Parameters.AddWithValue("?uid", msg.NickName);
|
||||
|
||||
command.Parameters.AddWithValue("?nikename", msg.NickName);
|
||||
if (command.ExecuteNonQuery() > 0)
|
||||
{
|
||||
bDone = true;
|
||||
@ -104,6 +103,7 @@ namespace AxibugEmuOnline.Server.Manager
|
||||
{
|
||||
UserInfo = miniinfo,
|
||||
};
|
||||
|
||||
//回执给自己
|
||||
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdUpdateSelfUserInfo, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(infodata));
|
||||
|
||||
@ -145,7 +145,7 @@ namespace AxibugEmuOnline.Server.Manager
|
||||
}
|
||||
else
|
||||
{
|
||||
query = "INSERT INTO `haoyue_emu`.`users` (`nikename`, `regdate`, `lastlogindate`) VALUES (NULL,now(),now());SELECT LAST_INSERT_ID(); ";
|
||||
query = "INSERT INTO `haoyue_emu`.`users` (`nikename`, `regdate`,`lastlogindate`) VALUES (NULL,now(),now());SELECT LAST_INSERT_ID(); ";
|
||||
using (var command = new MySqlCommand(query, conn))
|
||||
{
|
||||
// 设置参数值
|
||||
@ -159,6 +159,19 @@ namespace AxibugEmuOnline.Server.Manager
|
||||
}
|
||||
}
|
||||
|
||||
//设置默认名字
|
||||
query = "update users set nikename = ?nikename where uid = ?uid ";
|
||||
using (var command = new MySqlCommand(query, conn))
|
||||
{
|
||||
// 设置参数值
|
||||
command.Parameters.AddWithValue("?uid", uid);
|
||||
command.Parameters.AddWithValue("?nikename", GetRandomNickName(uid));
|
||||
if (command.ExecuteNonQuery() < 1)
|
||||
{
|
||||
bDone = false;
|
||||
}
|
||||
}
|
||||
|
||||
query = "INSERT INTO `haoyue_emu`.`user_devices` (`device`, `devicetype`, `uid`) VALUES (?deviceStr, ?DeviceType, ?uid);";
|
||||
using (var command = new MySqlCommand(query, conn))
|
||||
{
|
||||
@ -201,7 +214,7 @@ namespace AxibugEmuOnline.Server.Manager
|
||||
{
|
||||
|
||||
_c.Account = reader.IsDBNull(0) ? string.Empty : reader.GetString(0);
|
||||
_c.NickName = reader.IsDBNull(1) ? string.Empty:reader.GetString(1);
|
||||
_c.NickName = reader.IsDBNull(1) ? string.Empty : reader.GetString(1);
|
||||
_c.LogInDT = DateTime.Now;
|
||||
_c.RegisterDT = reader.IsDBNull(2) ? DateTime.Now : reader.GetDateTime(2);
|
||||
_c.LastLogInDT = reader.IsDBNull(3) ? DateTime.Now : reader.GetDateTime(3);
|
||||
@ -222,5 +235,216 @@ namespace AxibugEmuOnline.Server.Manager
|
||||
Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
|
||||
}
|
||||
|
||||
public string GetRandomNickName(long uid)
|
||||
{
|
||||
int Idx = new Random((int)DateTime.Now.TimeOfDay.TotalMilliseconds).Next(0, RandomNickName.Length - 1);
|
||||
return $"{RandomNickName[Idx]}_{uid}";
|
||||
}
|
||||
|
||||
static string[] RandomNickName =
|
||||
[
|
||||
"马里奥",
|
||||
"路易基",
|
||||
"碧琪公主",
|
||||
"库巴",
|
||||
"耀西",
|
||||
"瓦里奥",
|
||||
"瓦路易吉",
|
||||
"奇诺比奥",
|
||||
"罗塞塔公主",
|
||||
"布斯特",
|
||||
"凯萨琳/凯瑟琳",
|
||||
"盖拉库巴",
|
||||
"黛西",
|
||||
"保罗","马里奥先锋",
|
||||
"塞尔达勇士",
|
||||
"银河猎人",
|
||||
"主手柄",
|
||||
"8-bit英雄",
|
||||
"像素战士",
|
||||
"魂斗罗精英",
|
||||
"城堡征服者",
|
||||
"塔特博尔打击",
|
||||
"奇迹神庙",
|
||||
"勇者斗恶龙",
|
||||
"龟速侠",
|
||||
"拳皇大师",
|
||||
"无敌破坏王",
|
||||
"时空之刃",
|
||||
"跳跃达人",
|
||||
"炸弹超人",
|
||||
"复古玩家",
|
||||
"混沌骑士",
|
||||
"传说之翼",
|
||||
"火箭骑士",
|
||||
"像素魔法师",
|
||||
"超级马车手",
|
||||
"冒险之星",
|
||||
"银河护卫",
|
||||
"弹跳英雄",
|
||||
"红白机战神",
|
||||
"像素忍者",
|
||||
"激战霸主",
|
||||
"挑战之王",
|
||||
"像素巫师",
|
||||
"红白机复仇者",
|
||||
"马里奥兄弟",
|
||||
"赛博战士",
|
||||
"像素传说",
|
||||
"红白机神话",
|
||||
"复古传承者",
|
||||
"街头霸王",
|
||||
"合金装备",
|
||||
"像素英雄",
|
||||
"打砖块大师",
|
||||
"复活节彩蛋",
|
||||
"8-bit传奇",
|
||||
"炸弹达人",
|
||||
"原子战士",
|
||||
"猎天使魔女",
|
||||
"探险家",
|
||||
"奇异探险",
|
||||
"像素大师",
|
||||
"星际狂热",
|
||||
"点阵图王",
|
||||
"掘地者",
|
||||
"街机勇士",
|
||||
"极速赛车手",
|
||||
"星际旅行者",
|
||||
"红白机守护者",
|
||||
"扭曲像素",
|
||||
"冒险家俱乐部",
|
||||
"像素方块",
|
||||
"时空探险者",
|
||||
"红白机奇迹",
|
||||
"战士之魂",
|
||||
"复古英雄",
|
||||
"超级星战士",
|
||||
"跳跃精灵",
|
||||
"时空旅行者",
|
||||
"银河征服者",
|
||||
"奇妙世界",
|
||||
"无敌小子",
|
||||
"打怪达人",
|
||||
"复古王者",
|
||||
"超级马拉松",
|
||||
"银河守护者",
|
||||
"街机传奇",
|
||||
"像素探险家",
|
||||
"红白机战士",
|
||||
"复活小队",
|
||||
"时间扭曲者",
|
||||
"像素骑士",
|
||||
"复古探索者",
|
||||
"超级跳跃者",
|
||||
"银河冒险者",
|
||||
"复古时代",
|
||||
"超级英雄",
|
||||
"街机探险者",
|
||||
"红白机大师",
|
||||
"时间旅行者",
|
||||
"星际战士",
|
||||
"冒险之子",
|
||||
"红白机复仇",
|
||||
"像素探索者",
|
||||
"超级宇航员",
|
||||
"复古复仇者",
|
||||
"时间守护者",
|
||||
"银河之子",
|
||||
"超级格斗家",
|
||||
"时空征服者",
|
||||
"复古之星",
|
||||
"超级战斗机",
|
||||
"时间冒险者",
|
||||
"银河神话",
|
||||
"超级星际",
|
||||
"冒险之魂",
|
||||
"复古传奇",
|
||||
"超级街机",
|
||||
"像素英雄王",
|
||||
"红白机探险",
|
||||
"超级复仇者",
|
||||
"时间征服者",
|
||||
"银河之王",
|
||||
"超级探险家",
|
||||
"复古守护者",
|
||||
"超级跳跃王",
|
||||
"冒险之王",
|
||||
"超级像素",
|
||||
"复古战斗",
|
||||
"超级复古",
|
||||
"时间之神",
|
||||
"银河征服",
|
||||
"超级传奇",
|
||||
"冒险战士",
|
||||
"红白机冒险",
|
||||
"超级复仇",
|
||||
"复古之神",
|
||||
"超级时间",
|
||||
"银河守护",
|
||||
"超级银河",
|
||||
"冒险守护",
|
||||
"红白机战斗",
|
||||
"超级探险",
|
||||
"超级星际战士",
|
||||
"时间之子",
|
||||
"银河之神",
|
||||
"超级复古战士",
|
||||
"红白机之魂",
|
||||
"超级时间旅行者",
|
||||
"冒险之神",
|
||||
"复古探险家",
|
||||
"超级银河探险",
|
||||
"时间复仇者",
|
||||
"银河战斗机",
|
||||
"超级复古探险",
|
||||
"红白机战士王",
|
||||
"超级冒险家",
|
||||
"复古之王",
|
||||
"超级像素战士",
|
||||
"时间战士",
|
||||
"银河探险家",
|
||||
"超级红白机",
|
||||
"复古复仇者王",
|
||||
"超级时间之神",
|
||||
"银河冒险家",
|
||||
"超级复古传奇",
|
||||
"超级冒险王",
|
||||
"复古之魂",
|
||||
"超级银河战士",
|
||||
"时间探险者",
|
||||
"银河战士之神",
|
||||
"超级复古冒险",
|
||||
"红白机探险王",
|
||||
"超级时间之子",
|
||||
"冒险战士王",
|
||||
"复古战士王",
|
||||
"超级像素传奇",
|
||||
"时间探险王",
|
||||
"银河之魂",
|
||||
"超级复古神话",
|
||||
"超级冒险传奇",
|
||||
"复古战士之神",
|
||||
"超级银河探险家",
|
||||
"时间战士之神",
|
||||
"银河战士传奇",
|
||||
"超级复古之神",
|
||||
"超级冒险神话",
|
||||
"复古探险传奇",
|
||||
"超级像素神话",
|
||||
"时间探险之神",
|
||||
"银河冒险传奇",
|
||||
"超级复古探险家",
|
||||
"超级时间探险者",
|
||||
"复古战士传奇",
|
||||
"超级银河之神",
|
||||
"时间冒险传奇",
|
||||
"银河探险传奇",
|
||||
"超级红白机神话",
|
||||
"超级银河战士之神",
|
||||
"超级复古探险之神",
|
||||
"红白机战士之魂",
|
||||
"超级时间探险家"
|
||||
];
|
||||
}
|
||||
}
|
@ -557,7 +557,6 @@ namespace AxibugEmuOnline.Server
|
||||
public Google.Protobuf.ByteString? NextStateRaw { get; private set; }
|
||||
public Google.Protobuf.ByteString? ScreenRaw { get; private set; }
|
||||
public bool[] PlayerReadyState { get; private set; }
|
||||
|
||||
public List<long> SynUIDs;
|
||||
//public RoomPlayerState PlayerState => getPlayerState();
|
||||
private RoomGameState mGameState;
|
||||
@ -587,13 +586,10 @@ namespace AxibugEmuOnline.Server
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 服务器提前帧数
|
||||
/// </summary>
|
||||
public uint SrvForwardFrames { get; set; }
|
||||
|
||||
|
||||
bool IsAllReady()
|
||||
{
|
||||
bool Ready = true;
|
||||
@ -611,7 +607,6 @@ namespace AxibugEmuOnline.Server
|
||||
}
|
||||
return Ready;
|
||||
}
|
||||
|
||||
public void Init(int roomID, int gameRomID, string roomHash, long hostUId, bool bloadState = false)
|
||||
{
|
||||
RoomID = roomID;
|
||||
@ -630,7 +625,6 @@ namespace AxibugEmuOnline.Server
|
||||
mInputQueue = new Queue<(uint, ServerInputSnapShot)>();
|
||||
mDictPlayerIdx2SendQueue = new Dictionary<int, Queue<byte[]>>();
|
||||
}
|
||||
|
||||
public void SetPlayerUID(int PlayerIdx, ClientInfo _c)
|
||||
{
|
||||
long oldUID = -1;
|
||||
@ -647,7 +641,6 @@ namespace AxibugEmuOnline.Server
|
||||
AppSrv.g_Log.Debug($"SetPlayerUID RoomID->{RoomID} _c.UID->{_c.UID} PlayerIdx->{PlayerIdx}");
|
||||
_c.RoomState.SetRoomData(this.RoomID, PlayerIdx);
|
||||
}
|
||||
|
||||
public void RemovePlayer(ClientInfo _c)
|
||||
{
|
||||
int PlayerIdx = GetPlayerIdx(_c);
|
||||
@ -660,7 +653,6 @@ namespace AxibugEmuOnline.Server
|
||||
}
|
||||
_c.RoomState.ClearRoomData();
|
||||
}
|
||||
|
||||
int GetPlayerIdx(ClientInfo _c)
|
||||
{
|
||||
if (Player1_UID == _c.UID) return 0;
|
||||
@ -669,7 +661,6 @@ namespace AxibugEmuOnline.Server
|
||||
if (Player4_UID == _c.UID) return 3;
|
||||
return -1;
|
||||
}
|
||||
|
||||
public bool GetPlayerUIDByIdx(int Idx, out long UID)
|
||||
{
|
||||
switch (Idx)
|
||||
@ -693,7 +684,6 @@ namespace AxibugEmuOnline.Server
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public List<long> GetAllPlayerUIDs()
|
||||
{
|
||||
List<long> list = new List<long>();
|
||||
@ -703,7 +693,6 @@ namespace AxibugEmuOnline.Server
|
||||
if (Player4_UID > 0) list.Add(Player4_UID);
|
||||
return list;
|
||||
}
|
||||
|
||||
public List<ClientInfo> GetAllPlayerClientList()
|
||||
{
|
||||
List<ClientInfo> list = new List<ClientInfo>();
|
||||
@ -720,7 +709,6 @@ namespace AxibugEmuOnline.Server
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public void SetPlayerInput(int PlayerIdx, long mFrameID, ServerInputSnapShot allinput)
|
||||
{
|
||||
switch (PlayerIdx)
|
||||
@ -731,9 +719,9 @@ namespace AxibugEmuOnline.Server
|
||||
case 3: mCurrInputData.p4_byte = allinput.p1_byte; break;
|
||||
}
|
||||
}
|
||||
|
||||
public void ClearPlayerInput(int PlayerIdx)
|
||||
public void ClearPlayerInput(ClientInfo _c)
|
||||
{
|
||||
int PlayerIdx = GetPlayerIdx(_c);
|
||||
switch (PlayerIdx)
|
||||
{
|
||||
case 0: mCurrInputData.p1_byte = 0; break;
|
||||
@ -742,7 +730,6 @@ namespace AxibugEmuOnline.Server
|
||||
case 3: mCurrInputData.p4_byte = 0; break;
|
||||
}
|
||||
}
|
||||
|
||||
public int GetPlayerCount()
|
||||
{
|
||||
int count = 0;
|
||||
@ -752,7 +739,6 @@ namespace AxibugEmuOnline.Server
|
||||
if (Player4_UID > 0) count++;
|
||||
return count;
|
||||
}
|
||||
|
||||
void StartNewTick()
|
||||
{
|
||||
mInputQueue.Clear();
|
||||
@ -902,6 +888,7 @@ namespace AxibugEmuOnline.Server
|
||||
{
|
||||
int oldPlayerCount = GetPlayerCount();
|
||||
RemovePlayer(_c);
|
||||
ClearPlayerInput(_c);
|
||||
int newPlayerCount = GetPlayerCount();
|
||||
errcode = ErrorCode.ErrorOk;
|
||||
bHadRoomStateChange = CheckRoomStateChange(oldPlayerCount, newPlayerCount);
|
||||
|
Loading…
Reference in New Issue
Block a user