mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-02 20:26:03 +08:00
fix: the server will reupgrade when new player register
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
public static class GameConstants
|
||||
{
|
||||
public const string GAME_VERSION = "3.2.0";
|
||||
public const string AvatarDbVersion = "20250430";
|
||||
public const int GameVersionInt = 3200;
|
||||
public const int MAX_STAMINA = 300;
|
||||
public const int MAX_STAMINA_RESERVE = 2400;
|
||||
|
||||
@@ -164,6 +164,8 @@ public class PlayerInstance(PlayerData data)
|
||||
Uid = Data.Uid;
|
||||
ActivityManager = new ActivityManager(this);
|
||||
AvatarManager = new AvatarManager(this);
|
||||
AvatarManager.AvatarData.DatabaseVersion = GameConstants.AvatarDbVersion;
|
||||
|
||||
LineupManager = new LineupManager(this);
|
||||
InventoryManager = new InventoryManager(this);
|
||||
BattleManager = new BattleManager(this);
|
||||
@@ -326,12 +328,13 @@ public class PlayerInstance(PlayerData data)
|
||||
|
||||
public async ValueTask ChangeAvatarPathType(int baseAvatarId, MultiPathAvatarTypeEnum type)
|
||||
{
|
||||
FormalAvatarInfo avatar;
|
||||
if (baseAvatarId == 8001)
|
||||
{
|
||||
var id = (int)((int)type + Data.CurrentGender - 1);
|
||||
if (Data.CurBasicType == id) return;
|
||||
Data.CurBasicType = id;
|
||||
var avatar = AvatarManager!.GetHero()!;
|
||||
avatar = AvatarManager!.GetHero()!;
|
||||
// Set avatar path
|
||||
avatar.AvatarId = id;
|
||||
avatar.ValidateHero(Data.CurrentGender);
|
||||
@@ -343,7 +346,7 @@ public class PlayerInstance(PlayerData data)
|
||||
}
|
||||
else
|
||||
{
|
||||
var avatar = AvatarManager!.GetFormalAvatar(baseAvatarId)!;
|
||||
avatar = AvatarManager!.GetFormalAvatar(baseAvatarId)!;
|
||||
avatar.AvatarId = (int)type;
|
||||
avatar.SetCurSp(0, LineupManager!.GetCurLineup()!.IsExtraLineup());
|
||||
// Save new skill tree
|
||||
@@ -351,6 +354,15 @@ public class PlayerInstance(PlayerData data)
|
||||
await SendPacket(new PacketAvatarPathChangedNotify((uint)avatar.AvatarId, (MultiPathAvatarType)type));
|
||||
await SendPacket(new PacketPlayerSyncScNotify(avatar));
|
||||
}
|
||||
|
||||
// check if avatar is in scene
|
||||
if (SceneInstance != null)
|
||||
{
|
||||
var avatarScene = SceneInstance.AvatarInfo.Values.FirstOrDefault(x => x.AvatarInfo.BaseAvatarId == baseAvatarId);
|
||||
if (avatarScene == null) return;
|
||||
|
||||
await avatarScene.ClearAllBuff();
|
||||
}
|
||||
}
|
||||
|
||||
public async ValueTask ChangeAvatarSkin(int avatarId, int skinId)
|
||||
|
||||
@@ -287,7 +287,7 @@ public class EntryPoint
|
||||
var updated = false;
|
||||
foreach (var avatarData in DatabaseHelper.GetAllInstanceFromMap<AvatarData>()!)
|
||||
{
|
||||
if (avatarData.DatabaseVersion == "20250430") continue;
|
||||
if (avatarData.DatabaseVersion == GameConstants.AvatarDbVersion) continue;
|
||||
|
||||
foreach (var avatar in avatarData.Avatars)
|
||||
{
|
||||
@@ -308,6 +308,8 @@ public class EntryPoint
|
||||
|
||||
foreach (var info in avatar.PathInfoes)
|
||||
{
|
||||
if (info.Value.PathId == 0)
|
||||
info.Value.PathId = info.Key;
|
||||
formalAvatar.PathInfos.Add(info.Key, new PathInfo(info.Value.PathId)
|
||||
{
|
||||
PathId = info.Value.PathId,
|
||||
|
||||
Reference in New Issue
Block a user