dev init commit

This commit is contained in:
raphaeIl 2024-12-27 18:31:06 -05:00
parent 1c91ecfa6b
commit 0d86d2600d
20 changed files with 22677 additions and 15616 deletions

View File

@ -13,7 +13,7 @@ namespace MX.Core.Crypto
// private static readonly short PROTOCOL_HEAD_RESERVE = 8;
private readonly XORCryptor _cryptor = new();
private readonly FastCRC _checke = new();
private ProtocolConverter _converter = new();
private SCHALE.Common.Crypto.ProtocolConverter _converter = new();
public static PacketCryptManager Instance = new();
public byte[] RequestToBinary(Protocol protocol, string json)

View File

@ -0,0 +1,525 @@
using SCHALE.Common.FlatData;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace SCHALE.Common.Database
{
public class AccountDB
{
[JsonIgnore]
public virtual ICollection<ItemDB> Items { get; }
[JsonIgnore]
public virtual ICollection<CharacterDB> Characters { get; }
[JsonIgnore]
public virtual ICollection<MissionProgressDB> MissionProgresses { get; }
[JsonIgnore]
public virtual ICollection<EchelonDB> Echelons { get; }
[JsonIgnore]
public virtual ICollection<EquipmentDB> Equipment { get; }
[JsonIgnore]
public virtual ICollection<WeaponDB> Weapons { get; }
[JsonIgnore]
public virtual ICollection<GearDB> Gears { get; }
[JsonIgnore]
public virtual ICollection<MemoryLobbyDB> MemoryLobbies { get; }
[JsonIgnore]
public virtual ICollection<ScenarioHistoryDB> Scenarios { get; }
[JsonIgnore]
public virtual ICollection<CafeDB> Cafes { get; }
[JsonIgnore]
public virtual ICollection<FurnitureDB> Furnitures { get; }
[JsonIgnore]
public virtual RaidInfo RaidInfo { get; set; }
public AccountDB()
{
Items = new List<ItemDB>();
Characters = new List<CharacterDB>();
MissionProgresses = new List<MissionProgressDB>();
Echelons = new List<EchelonDB>();
Equipment = new List<EquipmentDB>();
Weapons = new List<WeaponDB>();
Gears = new List<GearDB>();
MemoryLobbies = new List<MemoryLobbyDB>();
Scenarios = new List<ScenarioHistoryDB>();
Cafes = new List<CafeDB>();
Furnitures = new List<FurnitureDB>();
}
public AccountDB(long publisherAccountId) : this()
{
PublisherAccountId = publisherAccountId;
State = AccountState.Normal;
Level = 1;
LastConnectTime = DateTime.Now;
CreateDate = DateTime.Now;
RaidInfo = new()
{
SeasonId = 1, // default
BestRankingPoint = 0,
TotalRankingPoint = 0,
};
}
[Key]
public long ServerId { get; set; }
public string? Nickname { get; set; }
public string? CallName { get; set; }
public string? DevId { get; set; }
public AccountState State { get; set; }
public int Level { get; set; }
public long Exp { get; set; }
public string? Comment { get; set; }
public int? LobbyMode { get; set; }
public long RepresentCharacterServerId { get; set; }
public long MemoryLobbyUniqueId { get; set; }
public DateTime LastConnectTime { get; set; }
public DateTime BirthDay { get; set; }
public DateTime CallNameUpdateTime { get; set; }
public long PublisherAccountId { get; set; }
public Nullable<int> RetentionDays { get; set; }
public Nullable<int> VIPLevel { get; set; }
public DateTime CreateDate { get; set; }
public Nullable<int> UnReadMailCount { get; set; }
public Nullable<DateTime> LinkRewardDate { get; set; }
}
public class FurnitureDB : ConsumableItemBaseDB
{
public override ParcelType Type { get => ParcelType.Furniture; }
[NotMapped]
[JsonIgnore]
public override IEnumerable<ParcelInfo> ParcelInfos { get; }
[JsonIgnore]
public override bool CanConsume { get => false; }
public FurnitureLocation Location { get; set; }
public long CafeDBId { get; set; }
public float PositionX { get; set; }
public float PositionY { get; set; }
public float Rotation { get; set; }
public long ItemDeploySequence { get; set; }
}
public class MissionProgressDB : IEquatable<MissionProgressDB>, IMemoryPackable<MissionProgressDB>, IMemoryPackFormatterRegister
{
[Key]
[JsonIgnore]
public long ServerId { get; set; }
[JsonIgnore]
public virtual AccountDB Account { get; set; }
[JsonIgnore]
public long AccountServerId { get; set; }
public long MissionUniqueId { get; set; }
public bool Complete { get; set; }
public DateTime StartTime { get; set; }
public Dictionary<long, long> ProgressParameters { get; set; } = [];
public bool Equals(MissionProgressDB other)
{
return default;
}
}
public abstract class ConsumableItemBaseDB : ParcelBase
{
[JsonIgnore]
public virtual AccountDB Account { get; set; }
[JsonIgnore]
public abstract bool CanConsume { get; }
[JsonIgnore]
public ParcelKeyPair Key { get; }
[JsonIgnore]
public long AccountServerId { get; set; }
[Key]
public long ServerId { get; set; }
public long UniqueId { get; set; }
public long StackCount { get; set; }
}
public class ItemDB : ConsumableItemBaseDB
{
[NotMapped]
public override ParcelType Type => ParcelType.Item;
[NotMapped]
[JsonIgnore]
public override IEnumerable<ParcelInfo> ParcelInfos { get; }
[NotMapped]
[JsonIgnore]
public override bool CanConsume => true;
}
public class CharacterDB : ParcelBase
{
[NotMapped]
public override ParcelType Type { get => ParcelType.Character; }
[JsonIgnore]
public virtual AccountDB Account { get; set; }
[JsonIgnore]
public long AccountServerId { get; set; }
[JsonIgnore]
[NotMapped]
public override IEnumerable<ParcelInfo> ParcelInfos { get; }
[Key]
public long ServerId { get; set; }
public long UniqueId { get; set; }
public int StarGrade { get; set; }
public int Level { get; set; }
public long Exp { get; set; }
public int FavorRank { get; set; }
public long FavorExp { get; set; }
public int PublicSkillLevel { get; set; }
public int ExSkillLevel { get; set; }
public int PassiveSkillLevel { get; set; }
public int ExtraPassiveSkillLevel { get; set; }
public int LeaderSkillLevel { get; set; }
public bool IsFavorite { get; set; }
public List<long> EquipmentServerIds { get; set; } = [];
public Dictionary<int, int> PotentialStats { get; set; } = [];
[JsonIgnore]
public Dictionary<int, long> EquipmentSlotAndDBIds { get; } = [];
}
public class EquipmentDB : ConsumableItemBaseDB
{
[NotMapped]
public override ParcelType Type { get => ParcelType.Equipment; }
[NotMapped]
[JsonIgnore]
public override IEnumerable<ParcelInfo> ParcelInfos { get; }
[JsonIgnore]
public override bool CanConsume { get => false; }
public int Level { get; set; }
public long Exp { get; set; }
public int Tier { get; set; }
public long BoundCharacterServerId { get; set; }
}
public class WeaponDB : ParcelBase
{
[NotMapped]
public override ParcelType Type { get => ParcelType.CharacterWeapon; }
[NotMapped]
[JsonIgnore]
public override IEnumerable<ParcelInfo> ParcelInfos { get; }
[JsonIgnore]
public virtual AccountDB Account { get; set; }
[JsonIgnore]
public long AccountServerId { get; set; }
[Key]
public long ServerId { get; set; }
public long UniqueId { get; set; }
public int Level { get; set; }
public long Exp { get; set; }
public int StarGrade { get; set; }
public long BoundCharacterServerId { get; set; }
}
public class GearDB : ParcelBase
{
[NotMapped]
public override ParcelType Type { get => ParcelType.CharacterGear; }
[NotMapped]
[JsonIgnore]
public override IEnumerable<ParcelInfo> ParcelInfos { get; }
[JsonIgnore]
public virtual AccountDB Account { get; set; }
[JsonIgnore]
public long AccountServerId { get; set; }
[Key]
public long ServerId { get; set; }
public long UniqueId { get; set; }
public int Level { get; set; }
public long Exp { get; set; }
public int Tier { get; set; }
public long SlotIndex { get; set; }
public long BoundCharacterServerId { get; set; }
[JsonIgnore]
public EquipmentDB ToEquipmentDB { get; }
}
public class MemoryLobbyDB : ParcelBase
{
public override ParcelType Type { get => ParcelType.MemoryLobby; }
[NotMapped]
[JsonIgnore]
public override IEnumerable<ParcelInfo> ParcelInfos { get; }
[JsonIgnore]
public virtual AccountDB Account { get; set; }
[JsonIgnore]
public long AccountServerId { get; set; }
[Key]
public long ServerId { get; set; }
public long MemoryLobbyUniqueId { get; set; }
}
public class ScenarioHistoryDB
{
[JsonIgnore]
public virtual AccountDB Account { get; set; }
[JsonIgnore]
public long AccountServerId { get; set; }
[Key]
public long ServerId { get; set; }
public long ScenarioUniqueId { get; set; }
public DateTime ClearDateTime { get; set; }
}
public class EchelonDB
{
[Key]
[JsonIgnore]
public long ServerId { get; set; }
[JsonIgnore]
public virtual AccountDB Account { get; set; }
[JsonIgnore]
public long AccountServerId { get; set; }
public EchelonType EchelonType { get; set; }
public long EchelonNumber { get; set; }
public EchelonExtensionType ExtensionType { get; set; }
public long LeaderServerId { get; set; }
[JsonIgnore]
public int MainSlotCount { get; }
[JsonIgnore]
public int SupportSlotCount { get; }
public List<long> MainSlotServerIds { get; set; } = [];
public List<long> SupportSlotServerIds { get; set; } = [];
public long TSSInteractionServerId { get; set; }
public EchelonStatusFlag UsingFlag { get; set; }
[JsonIgnore]
public bool IsUsing { get; }
[JsonIgnore]
public List<long> AllCharacterServerIds { get; } = [];
[JsonIgnore]
public List<long> AllCharacterWithoutTSSServerIds { get; } = [];
[JsonIgnore]
public List<long> AllCharacterWithEmptyServerIds { get; } = [];
[JsonIgnore]
public List<long> BattleCharacterServerIds { get; } = [];
public List<long> SkillCardMulliganCharacterIds { get; set; } = [];
public int[] CombatStyleIndex { get; set; } = [];
}
public class CafeDB
{
[JsonIgnore]
public virtual AccountDB Account { get; set; }
[JsonIgnore]
public long AccountServerId { get; set; }
[Key]
public long CafeDBId { get; set; }
public long CafeId { get; set; }
public long AccountId { get; set; }
public int CafeRank { get; set; }
public DateTime LastUpdate { get; set; }
public Nullable<DateTime> LastSummonDate { get; set; }
[NotMapped]
public bool IsNew { get; set; }
public Dictionary<long, CafeCharacterDB> CafeVisitCharacterDBs { get; set; }
[NotMapped]
public List<FurnitureDB> FurnitureDBs { get => Account.Furnitures.Where(x => x.CafeDBId == CafeDBId).ToList(); }
public DateTime ProductionAppliedTime { get; set; }
[NotMapped]
public CafeProductionDB ProductionDB
{
get => new()
{
CafeDBId = 1,
AppliedDate = DateTime.UtcNow,
ProductionParcelInfos = [
new(){ Key = new ParcelKeyPair { Type = ParcelType.Currency, Id = 1 } }, // id 1
new() { Key = new ParcelKeyPair { Type = ParcelType.Currency, Id = 5 } }
],
};
}
[JsonIgnore]
public Dictionary<CurrencyTypes, long> CurrencyDict_Obsolete { get; set; } = new Dictionary<CurrencyTypes, long>();
[JsonIgnore]
public Dictionary<CurrencyTypes, DateTime> UpdateTimeDict_Obsolete { get; set; } = new Dictionary<CurrencyTypes, DateTime>();
}
public class RaidInfo // custom class for all raid stuff needed
{
public long SeasonId { get; set; }
public long CurrentRaidUniqueId { get; set; }
public Difficulty CurrentDifficulty { get; set; }
public long BestRankingPoint { get; set; }
public long TotalRankingPoint { get; set; }
}
public class AcademyDB
{
public long AccountId { get; set; }
public DateTime LastUpdate { get; set; }
public Dictionary<long, List<VisitingCharacterDB>> ZoneVisitCharacterDBs { get; set; }
public Dictionary<long, List<long>> ZoneScheduleGroupRecords { get; set; }
}
public class CampaignStageHistoryDB
{
public long AccountServerId { get; set; }
public long StoryUniqueId { get; set; }
public long ChapterUniqueId { get; set; }
public long StageUniqueId { get; set; }
public long TacticClearCountWithRankSRecord { get; set; }
public long ClearTurnRecord { get; set; }
[JsonIgnore]
public long BestStarRecord { get; }
public bool Star1Flag { get; set; }
public bool Star2Flag { get; set; }
public bool Star3Flag { get; set; }
public DateTime LastPlay { get; set; }
public long TodayPlayCount { get; set; }
public long TodayPurchasePlayCountHardStage { get; set; }
public Nullable<DateTime> FirstClearRewardReceive { get; set; }
public Nullable<DateTime> StarRewardReceive { get; set; }
[JsonIgnore]
public bool IsClearedEver { get; }
public long TodayPlayCountForUI { get; }
}
public class CampaignChapterClearRewardHistoryDB
{
public long AccountServerId { get; set; }
public long ChapterUniqueId { get; set; }
public StageDifficulty RewardType { get; set; }
public DateTime ReceiveDate { get; set; }
}
[Serializable]
public struct BasisPoint : IEquatable<BasisPoint>, IComparable<BasisPoint>
{
private static readonly long Multiplier;
private static readonly double OneOver10_4 = 1.0 / 10000.0;
public static readonly BasisPoint Zero;
public static readonly BasisPoint One;
public static readonly BasisPoint Epsilon;
public static readonly double DoubleEpsilon;
[JsonIgnore]
public long RawValue { get; }
private long rawValue;
public BasisPoint(long rawValue)
{
this.rawValue = rawValue;
}
public bool Equals(BasisPoint other)
{
return this.rawValue == other.rawValue;
}
public int CompareTo(BasisPoint other)
{
return rawValue.CompareTo(other.rawValue);
}
public static long operator *(long value, BasisPoint other)
{
return MultiplyLong(value, other);
}
public static long MultiplyLong(long value, BasisPoint other)
{
double result = OneOver10_4 * ((double)other.rawValue * value);
if (double.IsInfinity(result))
return long.MaxValue;
return (long)result;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,701 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using SCHALE.Common.Database;
#nullable disable
namespace SCHALE.Common.Migrations.SqlServerMigrations
{
[DbContext(typeof(SCHALEContext))]
[Migration("20241227021741_BIGUPDATE")]
partial class BIGUPDATE
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.6")
.HasAnnotation("Proxies:ChangeTracking", false)
.HasAnnotation("Proxies:CheckEquality", false)
.HasAnnotation("Proxies:LazyLoading", true)
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("SCHALE.Common.Database.AccountDB", b =>
{
b.Property<long>("ServerId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ServerId"));
b.Property<DateTime>("BirthDay")
.HasColumnType("datetime2");
b.Property<string>("CallName")
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("CallNameUpdateTime")
.HasColumnType("datetime2");
b.Property<string>("Comment")
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("CreateDate")
.HasColumnType("datetime2");
b.Property<string>("DevId")
.HasColumnType("nvarchar(max)");
b.Property<long>("Exp")
.HasColumnType("bigint");
b.Property<DateTime>("LastConnectTime")
.HasColumnType("datetime2");
b.Property<int>("Level")
.HasColumnType("int");
b.Property<DateTime?>("LinkRewardDate")
.HasColumnType("datetime2");
b.Property<int?>("LobbyMode")
.HasColumnType("int");
b.Property<long>("MemoryLobbyUniqueId")
.HasColumnType("bigint");
b.Property<string>("Nickname")
.HasColumnType("nvarchar(max)");
b.Property<long>("PublisherAccountId")
.HasColumnType("bigint");
b.Property<string>("RaidInfo")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<long>("RepresentCharacterServerId")
.HasColumnType("bigint");
b.Property<int?>("RetentionDays")
.HasColumnType("int");
b.Property<int>("State")
.HasColumnType("int");
b.Property<int?>("UnReadMailCount")
.HasColumnType("int");
b.Property<int?>("VIPLevel")
.HasColumnType("int");
b.HasKey("ServerId");
b.ToTable("Accounts");
});
modelBuilder.Entity("SCHALE.Common.Database.CafeDB", b =>
{
b.Property<long>("CafeDBId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("CafeDBId"));
b.Property<long>("AccountId")
.HasColumnType("bigint");
b.Property<long>("AccountServerId")
.HasColumnType("bigint");
b.Property<long>("CafeId")
.HasColumnType("bigint");
b.Property<int>("CafeRank")
.HasColumnType("int");
b.Property<string>("CafeVisitCharacterDBs")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("CurrencyDict_Obsolete")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime?>("LastSummonDate")
.HasColumnType("datetime2");
b.Property<DateTime>("LastUpdate")
.HasColumnType("datetime2");
b.Property<DateTime>("ProductionAppliedTime")
.HasColumnType("datetime2");
b.Property<string>("UpdateTimeDict_Obsolete")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("CafeDBId");
b.HasIndex("AccountServerId");
b.ToTable("Cafes");
});
modelBuilder.Entity("SCHALE.Common.Database.CharacterDB", b =>
{
b.Property<long>("ServerId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ServerId"));
b.Property<long>("AccountServerId")
.HasColumnType("bigint");
b.Property<string>("EquipmentServerIds")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("EquipmentSlotAndDBIds")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ExSkillLevel")
.HasColumnType("int");
b.Property<long>("Exp")
.HasColumnType("bigint");
b.Property<int>("ExtraPassiveSkillLevel")
.HasColumnType("int");
b.Property<long>("FavorExp")
.HasColumnType("bigint");
b.Property<int>("FavorRank")
.HasColumnType("int");
b.Property<bool>("IsFavorite")
.HasColumnType("bit");
b.Property<int>("LeaderSkillLevel")
.HasColumnType("int");
b.Property<int>("Level")
.HasColumnType("int");
b.Property<int>("PassiveSkillLevel")
.HasColumnType("int");
b.Property<string>("PotentialStats")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("PublicSkillLevel")
.HasColumnType("int");
b.Property<int>("StarGrade")
.HasColumnType("int");
b.Property<long>("UniqueId")
.HasColumnType("bigint");
b.HasKey("ServerId");
b.HasIndex("AccountServerId");
b.ToTable("Characters");
});
modelBuilder.Entity("SCHALE.Common.Database.EchelonDB", b =>
{
b.Property<long>("ServerId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ServerId"));
b.Property<long>("AccountServerId")
.HasColumnType("bigint");
b.Property<string>("CombatStyleIndex")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<long>("EchelonNumber")
.HasColumnType("bigint");
b.Property<int>("EchelonType")
.HasColumnType("int");
b.Property<int>("ExtensionType")
.HasColumnType("int");
b.Property<long>("LeaderServerId")
.HasColumnType("bigint");
b.Property<string>("MainSlotServerIds")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("SkillCardMulliganCharacterIds")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("SupportSlotServerIds")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<long>("TSSInteractionServerId")
.HasColumnType("bigint");
b.Property<int>("UsingFlag")
.HasColumnType("int");
b.HasKey("ServerId");
b.HasIndex("AccountServerId");
b.ToTable("Echelons");
});
modelBuilder.Entity("SCHALE.Common.Database.EquipmentDB", b =>
{
b.Property<long>("ServerId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ServerId"));
b.Property<long>("AccountServerId")
.HasColumnType("bigint");
b.Property<long>("BoundCharacterServerId")
.HasColumnType("bigint");
b.Property<long>("Exp")
.HasColumnType("bigint");
b.Property<int>("Level")
.HasColumnType("int");
b.Property<long>("StackCount")
.HasColumnType("bigint");
b.Property<int>("Tier")
.HasColumnType("int");
b.Property<long>("UniqueId")
.HasColumnType("bigint");
b.HasKey("ServerId");
b.HasIndex("AccountServerId");
b.ToTable("Equipment");
});
modelBuilder.Entity("SCHALE.Common.Database.FurnitureDB", b =>
{
b.Property<long>("ServerId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ServerId"));
b.Property<long>("AccountServerId")
.HasColumnType("bigint");
b.Property<long>("CafeDBId")
.HasColumnType("bigint");
b.Property<long>("ItemDeploySequence")
.HasColumnType("bigint");
b.Property<int>("Location")
.HasColumnType("int");
b.Property<float>("PositionX")
.HasColumnType("real");
b.Property<float>("PositionY")
.HasColumnType("real");
b.Property<float>("Rotation")
.HasColumnType("real");
b.Property<long>("StackCount")
.HasColumnType("bigint");
b.Property<long>("UniqueId")
.HasColumnType("bigint");
b.HasKey("ServerId");
b.HasIndex("AccountServerId");
b.ToTable("Furnitures");
});
modelBuilder.Entity("SCHALE.Common.Database.GearDB", b =>
{
b.Property<long>("ServerId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ServerId"));
b.Property<long>("AccountServerId")
.HasColumnType("bigint");
b.Property<long>("BoundCharacterServerId")
.HasColumnType("bigint");
b.Property<long>("Exp")
.HasColumnType("bigint");
b.Property<int>("Level")
.HasColumnType("int");
b.Property<long>("SlotIndex")
.HasColumnType("bigint");
b.Property<int>("Tier")
.HasColumnType("int");
b.Property<long>("UniqueId")
.HasColumnType("bigint");
b.HasKey("ServerId");
b.HasIndex("AccountServerId");
b.ToTable("Gears");
});
modelBuilder.Entity("SCHALE.Common.Database.ItemDB", b =>
{
b.Property<long>("ServerId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ServerId"));
b.Property<long>("AccountServerId")
.HasColumnType("bigint");
b.Property<long>("StackCount")
.HasColumnType("bigint");
b.Property<long>("UniqueId")
.HasColumnType("bigint");
b.HasKey("ServerId");
b.HasIndex("AccountServerId");
b.ToTable("Items");
});
modelBuilder.Entity("SCHALE.Common.Database.MemoryLobbyDB", b =>
{
b.Property<long>("ServerId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ServerId"));
b.Property<long>("AccountServerId")
.HasColumnType("bigint");
b.Property<long>("MemoryLobbyUniqueId")
.HasColumnType("bigint");
b.HasKey("ServerId");
b.HasIndex("AccountServerId");
b.ToTable("MemoryLobbies");
});
modelBuilder.Entity("SCHALE.Common.Database.MissionProgressDB", b =>
{
b.Property<long>("ServerId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ServerId"));
b.Property<long>("AccountServerId")
.HasColumnType("bigint");
b.Property<bool>("Complete")
.HasColumnType("bit");
b.Property<long>("MissionUniqueId")
.HasColumnType("bigint");
b.Property<string>("ProgressParameters")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("StartTime")
.HasColumnType("datetime2");
b.HasKey("ServerId");
b.HasIndex("AccountServerId");
b.ToTable("MissionProgresses");
});
modelBuilder.Entity("SCHALE.Common.Database.Models.AccountTutorial", b =>
{
b.Property<long>("AccountServerId")
.HasColumnType("bigint");
b.Property<string>("TutorialIds")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("AccountServerId");
b.ToTable("AccountTutorials");
});
modelBuilder.Entity("SCHALE.Common.Database.Models.GuestAccount", b =>
{
b.Property<long>("Uid")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("Uid"));
b.Property<string>("DeviceId")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Token")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Uid");
b.ToTable("GuestAccounts");
});
modelBuilder.Entity("SCHALE.Common.Database.ScenarioHistoryDB", b =>
{
b.Property<long>("ServerId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ServerId"));
b.Property<long>("AccountServerId")
.HasColumnType("bigint");
b.Property<DateTime>("ClearDateTime")
.HasColumnType("datetime2");
b.Property<long>("ScenarioUniqueId")
.HasColumnType("bigint");
b.HasKey("ServerId");
b.HasIndex("AccountServerId");
b.ToTable("Scenarios");
});
modelBuilder.Entity("SCHALE.Common.Database.WeaponDB", b =>
{
b.Property<long>("ServerId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ServerId"));
b.Property<long>("AccountServerId")
.HasColumnType("bigint");
b.Property<long>("BoundCharacterServerId")
.HasColumnType("bigint");
b.Property<long>("Exp")
.HasColumnType("bigint");
b.Property<int>("Level")
.HasColumnType("int");
b.Property<int>("StarGrade")
.HasColumnType("int");
b.Property<long>("UniqueId")
.HasColumnType("bigint");
b.HasKey("ServerId");
b.HasIndex("AccountServerId");
b.ToTable("Weapons");
});
modelBuilder.Entity("SCHALE.Common.Database.CafeDB", b =>
{
b.HasOne("SCHALE.Common.Database.AccountDB", "Account")
.WithMany("Cafes")
.HasForeignKey("AccountServerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Account");
});
modelBuilder.Entity("SCHALE.Common.Database.CharacterDB", b =>
{
b.HasOne("SCHALE.Common.Database.AccountDB", "Account")
.WithMany("Characters")
.HasForeignKey("AccountServerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Account");
});
modelBuilder.Entity("SCHALE.Common.Database.EchelonDB", b =>
{
b.HasOne("SCHALE.Common.Database.AccountDB", "Account")
.WithMany("Echelons")
.HasForeignKey("AccountServerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Account");
});
modelBuilder.Entity("SCHALE.Common.Database.EquipmentDB", b =>
{
b.HasOne("SCHALE.Common.Database.AccountDB", "Account")
.WithMany("Equipment")
.HasForeignKey("AccountServerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Account");
});
modelBuilder.Entity("SCHALE.Common.Database.FurnitureDB", b =>
{
b.HasOne("SCHALE.Common.Database.AccountDB", "Account")
.WithMany("Furnitures")
.HasForeignKey("AccountServerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Account");
});
modelBuilder.Entity("SCHALE.Common.Database.GearDB", b =>
{
b.HasOne("SCHALE.Common.Database.AccountDB", "Account")
.WithMany("Gears")
.HasForeignKey("AccountServerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Account");
});
modelBuilder.Entity("SCHALE.Common.Database.ItemDB", b =>
{
b.HasOne("SCHALE.Common.Database.AccountDB", "Account")
.WithMany("Items")
.HasForeignKey("AccountServerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Account");
});
modelBuilder.Entity("SCHALE.Common.Database.MemoryLobbyDB", b =>
{
b.HasOne("SCHALE.Common.Database.AccountDB", "Account")
.WithMany("MemoryLobbies")
.HasForeignKey("AccountServerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Account");
});
modelBuilder.Entity("SCHALE.Common.Database.MissionProgressDB", b =>
{
b.HasOne("SCHALE.Common.Database.AccountDB", "Account")
.WithMany("MissionProgresses")
.HasForeignKey("AccountServerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Account");
});
modelBuilder.Entity("SCHALE.Common.Database.ScenarioHistoryDB", b =>
{
b.HasOne("SCHALE.Common.Database.AccountDB", "Account")
.WithMany("Scenarios")
.HasForeignKey("AccountServerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Account");
});
modelBuilder.Entity("SCHALE.Common.Database.WeaponDB", b =>
{
b.HasOne("SCHALE.Common.Database.AccountDB", "Account")
.WithMany("Weapons")
.HasForeignKey("AccountServerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Account");
});
modelBuilder.Entity("SCHALE.Common.Database.AccountDB", b =>
{
b.Navigation("Cafes");
b.Navigation("Characters");
b.Navigation("Echelons");
b.Navigation("Equipment");
b.Navigation("Furnitures");
b.Navigation("Gears");
b.Navigation("Items");
b.Navigation("MemoryLobbies");
b.Navigation("MissionProgresses");
b.Navigation("Scenarios");
b.Navigation("Weapons");
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,115 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace SCHALE.Common.Migrations.SqlServerMigrations
{
/// <inheritdoc />
public partial class BIGUPDATE : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "IsLocked",
table: "Weapons");
migrationBuilder.DropColumn(
name: "IsLocked",
table: "Items");
migrationBuilder.DropColumn(
name: "IsLocked",
table: "Equipment");
migrationBuilder.DropColumn(
name: "IsLocked",
table: "Characters");
migrationBuilder.AlterColumn<long>(
name: "RepresentCharacterServerId",
table: "Accounts",
type: "bigint",
nullable: false,
oldClrType: typeof(int),
oldType: "int");
migrationBuilder.AlterColumn<int>(
name: "LobbyMode",
table: "Accounts",
type: "int",
nullable: true,
oldClrType: typeof(int),
oldType: "int");
migrationBuilder.AlterColumn<DateTime>(
name: "BirthDay",
table: "Accounts",
type: "datetime2",
nullable: false,
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
oldClrType: typeof(DateTime),
oldType: "datetime2",
oldNullable: true);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<bool>(
name: "IsLocked",
table: "Weapons",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "IsLocked",
table: "Items",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "IsLocked",
table: "Equipment",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "IsLocked",
table: "Characters",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.AlterColumn<int>(
name: "RepresentCharacterServerId",
table: "Accounts",
type: "int",
nullable: false,
oldClrType: typeof(long),
oldType: "bigint");
migrationBuilder.AlterColumn<int>(
name: "LobbyMode",
table: "Accounts",
type: "int",
nullable: false,
defaultValue: 0,
oldClrType: typeof(int),
oldType: "int",
oldNullable: true);
migrationBuilder.AlterColumn<DateTime>(
name: "BirthDay",
table: "Accounts",
type: "datetime2",
nullable: true,
oldClrType: typeof(DateTime),
oldType: "datetime2");
}
}
}

View File

@ -33,7 +33,7 @@ namespace SCHALE.Common.Migrations.SqlServerMigrations
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ServerId"));
b.Property<DateTime?>("BirthDay")
b.Property<DateTime>("BirthDay")
.HasColumnType("datetime2");
b.Property<string>("CallName")
@ -63,7 +63,7 @@ namespace SCHALE.Common.Migrations.SqlServerMigrations
b.Property<DateTime?>("LinkRewardDate")
.HasColumnType("datetime2");
b.Property<int>("LobbyMode")
b.Property<int?>("LobbyMode")
.HasColumnType("int");
b.Property<long>("MemoryLobbyUniqueId")
@ -79,8 +79,8 @@ namespace SCHALE.Common.Migrations.SqlServerMigrations
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("RepresentCharacterServerId")
.HasColumnType("int");
b.Property<long>("RepresentCharacterServerId")
.HasColumnType("bigint");
b.Property<int?>("RetentionDays")
.HasColumnType("int");
@ -184,9 +184,6 @@ namespace SCHALE.Common.Migrations.SqlServerMigrations
b.Property<bool>("IsFavorite")
.HasColumnType("bit");
b.Property<bool>("IsLocked")
.HasColumnType("bit");
b.Property<int>("LeaderSkillLevel")
.HasColumnType("int");
@ -285,9 +282,6 @@ namespace SCHALE.Common.Migrations.SqlServerMigrations
b.Property<long>("Exp")
.HasColumnType("bigint");
b.Property<bool>("IsLocked")
.HasColumnType("bit");
b.Property<int>("Level")
.HasColumnType("int");
@ -396,9 +390,6 @@ namespace SCHALE.Common.Migrations.SqlServerMigrations
b.Property<long>("AccountServerId")
.HasColumnType("bigint");
b.Property<bool>("IsLocked")
.HasColumnType("bit");
b.Property<long>("StackCount")
.HasColumnType("bigint");
@ -540,9 +531,6 @@ namespace SCHALE.Common.Migrations.SqlServerMigrations
b.Property<long>("Exp")
.HasColumnType("bigint");
b.Property<bool>("IsLocked")
.HasColumnType("bit");
b.Property<int>("Level")
.HasColumnType("int");

View File

@ -41,24 +41,4 @@ namespace SCHALE.Common.NetworkProtocol
public Dictionary<long, List<MissionProgressDB>> EventMissionProgressDBDict { get; set; }
public Dictionary<OpenConditionContent, OpenConditionLockReason> StaticOpenConditions { get; set; }
}
[Flags]
public enum ServerNotificationFlag
{
None = 0,
NewMailArrived = 4,
HasUnreadMail = 8,
NewToastDetected = 16,
CanReceiveArenaDailyReward = 32,
CanReceiveRaidReward = 64,
ServerMaintenance = 256,
CannotReceiveMail = 512,
InventoryFullRewardMail = 1024,
CanReceiveClanAttendanceReward = 2048,
HasClanApplicant = 4096,
HasFriendRequest = 8192,
CheckConquest = 16384,
CanReceiveEliminateRaidReward = 32768,
CanReceiveMultiFloorRaidReward = 65536
}
}

View File

@ -1,431 +0,0 @@
namespace SCHALE.Common.NetworkProtocol
{
public enum Protocol
{
Common_Cheat = -9999,
Error = -1,
None = 0,
System_Version = 1,
[Obsolete]
Session_Info = 2,
NetworkTime_Sync = 3,
[Obsolete]
NetworkTime_SyncReply = 4,
Audit_GachaStatistics = 5,
Account_Create = 1000,
Account_Nickname = 1001,
Account_Auth = 1002,
Account_CurrencySync = 1003,
Account_SetRepresentCharacterAndComment = 1004,
Account_GetTutorial = 1005,
Account_SetTutorial = 1006,
Account_PassCheck = 1007,
Account_VerifyForYostar = 1008,
Account_CheckYostar = 1009,
Account_CallName = 1010,
Account_BirthDay = 1011,
Account_Auth2 = 1012,
Account_LinkReward = 1013,
Account_ReportXignCodeCheater = 1014,
Account_DismissRepurchasablePopup = 1015,
Account_InvalidateToken = 1016,
Account_LoginSync = 1017,
Account_Reset = 1018,
Account_RequestBirthdayMail = 1019,
Character_List = 2000,
Character_Transcendence = 2001,
Character_ExpGrowth = 2002,
Character_FavorGrowth = 2003,
Character_UpdateSkillLevel = 2004,
Character_UnlockWeapon = 2005,
Character_WeaponExpGrowth = 2006,
Character_WeaponTranscendence = 2007,
Character_SetFavorites = 2008,
Character_SetCostume = 2009,
Character_BatchSkillLevelUpdate = 2010,
Character_PotentialGrowth = 2011,
Equipment_List = 3000,
Equipment_Sell = 3001,
Equipment_Equip = 3002,
Equipment_LevelUp = 3003,
Equipment_TierUp = 3004,
Equipment_Lock = 3005,
Equipment_BatchGrowth = 3006,
Item_List = 4000,
Item_Sell = 4001,
Item_Consume = 4002,
Item_Lock = 4003,
Item_BulkConsume = 4004,
Item_SelectTicket = 4005,
Item_AutoSynth = 4006,
Echelon_List = 5000,
Echelon_Save = 5001,
Echelon_PresetList = 5002,
Echelon_PresetSave = 5003,
Echelon_PresetGroupRename = 5004,
Campaign_List = 6000,
Campaign_EnterMainStage = 6001,
Campaign_ConfirmMainStage = 6002,
Campaign_DeployEchelon = 6003,
Campaign_WithdrawEchelon = 6004,
Campaign_MapMove = 6005,
Campaign_EndTurn = 6006,
Campaign_EnterTactic = 6007,
Campaign_TacticResult = 6008,
Campaign_Retreat = 6009,
Campaign_ChapterClearReward = 6010,
Campaign_Heal = 6011,
Campaign_EnterSubStage = 6012,
Campaign_SubStageResult = 6013,
Campaign_Portal = 6014,
Campaign_ConfirmTutorialStage = 6015,
Campaign_PurchasePlayCountHardStage = 6016,
Campaign_EnterTutorialStage = 6017,
Campaign_TutorialStageResult = 6018,
Campaign_RestartMainStage = 6019,
Campaign_EnterMainStageStrategySkip = 6020,
Campaign_MainStageStrategySkipResult = 6021,
Mail_List = 7000,
Mail_Check = 7001,
Mail_Receive = 7002,
Mission_List = 8000,
Mission_Reward = 8001,
Mission_MultipleReward = 8002,
Mission_GuideReward = 8003,
Mission_MultipleGuideReward = 8004,
Mission_Sync = 8005,
Mission_GuideMissionSeasonList = 8006,
Attendance_List = 9000,
Attendance_Check = 9001,
Attendance_Reward = 9002,
Shop_BuyMerchandise = 10000,
Shop_BuyGacha = 10001,
Shop_List = 10002,
Shop_Refresh = 10003,
Shop_BuyEligma = 10004,
Shop_BuyGacha2 = 10005,
Shop_GachaRecruitList = 10006,
Shop_BuyRefreshMerchandise = 10007,
Shop_BuyGacha3 = 10008,
Shop_BuyAP = 10009,
Shop_BeforehandGachaGet = 10010,
Shop_BeforehandGachaRun = 10011,
Shop_BeforehandGachaSave = 10012,
Shop_BeforehandGachaPick = 10013,
Recipe_Craft = 11000,
MemoryLobby_List = 12000,
MemoryLobby_SetMain = 12001,
MemoryLobby_UpdateLobbyMode = 12002,
MemoryLobby_Interact = 12003,
[Obsolete]
CumulativeTimeReward_List = 13000,
[Obsolete]
CumulativeTimeReward_Reward = 13001,
OpenCondition_List = 15000,
OpenCondition_Set = 15001,
OpenCondition_EventList = 15002,
Toast_List = 16000,
Raid_List = 17000,
Raid_CompleteList = 17001,
Raid_Detail = 17002,
Raid_Search = 17003,
Raid_CreateBattle = 17004,
Raid_EnterBattle = 17005,
Raid_BattleUpdate = 17006,
Raid_EndBattle = 17007,
Raid_Reward = 17008,
Raid_RewardAll = 17009,
Raid_Revive = 17010,
Raid_Share = 17011,
Raid_SeasonInfo = 17012,
Raid_SeasonReward = 17013,
Raid_Lobby = 17014,
Raid_GiveUp = 17015,
Raid_OpponentList = 17016,
Raid_RankingReward = 17017,
Raid_Login = 17018,
Raid_Sweep = 17019,
Raid_GetBestTeam = 17020,
SkipHistory_List = 18000,
SkipHistory_Save = 18001,
Scenario_List = 19000,
Scenario_Clear = 19001,
Scenario_GroupHistoryUpdate = 19002,
Scenario_Skip = 19003,
Scenario_Select = 19004,
Scenario_AccountStudentChange = 19005,
Scenario_LobbyStudentChange = 19006,
Scenario_SpecialLobbyChange = 19007,
Scenario_Enter = 19008,
Scenario_EnterMainStage = 19009,
Scenario_ConfirmMainStage = 19010,
Scenario_DeployEchelon = 19011,
Scenario_WithdrawEchelon = 19012,
Scenario_MapMove = 19013,
Scenario_EndTurn = 19014,
Scenario_EnterTactic = 19015,
Scenario_TacticResult = 19016,
Scenario_Retreat = 19017,
Scenario_Portal = 19018,
Scenario_RestartMainStage = 19019,
Scenario_SkipMainStage = 19020,
Cafe_Get = 20000,
Cafe_Ack = 20001,
Cafe_Deploy = 20002,
Cafe_Relocate = 20003,
Cafe_Remove = 20004,
Cafe_RemoveAll = 20005,
Cafe_Interact = 20006,
Cafe_ListPreset = 20007,
Cafe_RenamePreset = 20008,
Cafe_ClearPreset = 20009,
Cafe_UpdatePresetFurniture = 20010,
Cafe_ApplyPreset = 20011,
Cafe_RankUp = 20012,
Cafe_ReceiveCurrency = 20013,
Cafe_GiveGift = 20014,
Cafe_SummonCharacter = 20015,
Cafe_TrophyHistory = 20016,
Cafe_ApplyTemplate = 20017,
Cafe_Open = 20018,
Craft_List = 21000,
Craft_SelectNode = 21001,
Craft_UpdateNodeLevel = 21002,
Craft_BeginProcess = 21003,
Craft_CompleteProcess = 21004,
Craft_Reward = 21005,
Craft_HistoryList = 21006,
Craft_ShiftingBeginProcess = 21007,
Craft_ShiftingCompleteProcess = 21008,
Craft_ShiftingReward = 21009,
Craft_AutoBeginProcess = 21010,
Craft_CompleteProcessAll = 21011,
Craft_RewardAll = 21012,
Craft_ShiftingCompleteProcessAll = 21013,
Craft_ShiftingRewardAll = 21014,
Arena_EnterLobby = 22000,
Arena_Login = 22001,
Arena_SettingChange = 22002,
Arena_OpponentList = 22003,
Arena_EnterBattle = 22004,
Arena_EnterBattlePart1 = 22005,
Arena_EnterBattlePart2 = 22006,
Arena_BattleResult = 22007,
Arena_CumulativeTimeReward = 22008,
Arena_DailyReward = 22009,
Arena_RankList = 22010,
Arena_History = 22011,
Arena_RecordSync = 22012,
Arena_TicketPurchase = 22013,
Arena_DamageReport = 22014,
Arena_CheckSeasonCloseReward = 22015,
Arena_SyncEchelonSettingTime = 22016,
WeekDungeon_List = 23000,
WeekDungeon_EnterBattle = 23001,
WeekDungeon_BattleResult = 23002,
WeekDungeon_Retreat = 23003,
Academy_GetInfo = 24000,
Academy_AttendSchedule = 24001,
Academy_AttendFavorSchedule = 24002,
Event_GetList = 25000,
Event_GetImage = 25001,
Event_UseCoupon = 25002,
Event_RewardIncrease = 25003,
ContentSave_Get = 26000,
ContentSave_Discard = 26001,
ContentSweep_Request = 27000,
ContentSweep_MultiSweep = 27001,
ContentSweep_MultiSweepPresetList = 27002,
ContentSweep_SetMultiSweepPreset = 27003,
Clan_Lobby = 28000,
Clan_Login = 28001,
Clan_Search = 28002,
Clan_Create = 28003,
Clan_Member = 28004,
Clan_Applicant = 28005,
Clan_Join = 28006,
Clan_Quit = 28007,
Clan_Permit = 28008,
Clan_Kick = 28009,
Clan_Setting = 28010,
Clan_Confer = 28011,
Clan_Dismiss = 28012,
Clan_AutoJoin = 28013,
Clan_MemberList = 28014,
Clan_CancelApply = 28015,
Clan_MyAssistList = 28016,
Clan_SetAssist = 28017,
Clan_ChatLog = 28018,
Clan_Check = 28019,
Clan_AllAssistList = 28020,
Billing_TransactionStartByYostar = 29000,
Billing_TransactionEndByYostar = 29001,
Billing_PurchaseListByYostar = 29002,
EventContent_AdventureList = 30000,
EventContent_EnterMainStage = 30001,
EventContent_ConfirmMainStage = 30002,
EventContent_EnterTactic = 30003,
EventContent_TacticResult = 30004,
EventContent_EnterSubStage = 30005,
EventContent_SubStageResult = 30006,
EventContent_DeployEchelon = 30007,
EventContent_WithdrawEchelon = 30008,
EventContent_MapMove = 30009,
EventContent_EndTurn = 30010,
EventContent_Retreat = 30011,
EventContent_Portal = 30012,
EventContent_PurchasePlayCountHardStage = 30013,
EventContent_ShopList = 30014,
EventContent_ShopRefresh = 30015,
EventContent_ReceiveStageTotalReward = 30016,
EventContent_EnterMainGroundStage = 30017,
EventContent_MainGroundStageResult = 30018,
EventContent_ShopBuyMerchandise = 30019,
EventContent_ShopBuyRefreshMerchandise = 30020,
EventContent_SelectBuff = 30021,
EventContent_BoxGachaShopList = 30022,
EventContent_BoxGachaShopPurchase = 30023,
EventContent_BoxGachaShopRefresh = 30024,
EventContent_CollectionList = 30025,
EventContent_CollectionForMission = 30026,
EventContent_ScenarioGroupHistoryUpdate = 30027,
EventContent_CardShopList = 30028,
EventContent_CardShopShuffle = 30029,
EventContent_CardShopPurchase = 30030,
EventContent_RestartMainStage = 30031,
EventContent_LocationGetInfo = 30032,
EventContent_LocationAttendSchedule = 30033,
EventContent_FortuneGachaPurchase = 30034,
EventContent_SubEventLobby = 30035,
EventContent_EnterStoryStage = 30036,
EventContent_StoryStageResult = 30037,
EventContent_DiceRaceLobby = 30038,
EventContent_DiceRaceRoll = 30039,
EventContent_DiceRaceLapReward = 30040,
EventContent_PermanentList = 30041,
EventContent_DiceRaceUseItem = 30042,
EventContent_CardShopPurchaseAll = 30043,
EventContent_TreasureLobby = 30044,
EventContent_TreasureFlip = 30045,
EventContent_TreasureNextRound = 30046,
TTS_GetFile = 31000,
ContentLog_UIOpenStatistics = 32000,
MomoTalk_OutLine = 33000,
MomoTalk_MessageList = 33001,
MomoTalk_Read = 33002,
MomoTalk_Reply = 33003,
MomoTalk_FavorSchedule = 33004,
ClearDeck_List = 34000,
MiniGame_StageList = 35000,
MiniGame_EnterStage = 35001,
MiniGame_Result = 35002,
MiniGame_MissionList = 35003,
MiniGame_MissionReward = 35004,
MiniGame_MissionMultipleReward = 35005,
MiniGame_ShootingLobby = 35006,
MiniGame_ShootingBattleEnter = 35007,
MiniGame_ShootingBattleResult = 35008,
MiniGame_ShootingSweep = 35009,
MiniGame_TableBoardSync = 35010,
MiniGame_TableBoardMove = 35011,
MiniGame_TableBoardEncounterInput = 35012,
MiniGame_TableBoardBattleEncounter = 35013,
MiniGame_TableBoardBattleRunAway = 35014,
MiniGame_TableBoardClearThema = 35015,
MiniGame_TableBoardUseItem = 35016,
MiniGame_TableBoardResurrect = 35017,
MiniGame_TableBoardSweep = 35018,
MiniGame_TableBoardMoveThema = 35019,
MiniGame_DreamMakerGetInfo = 35020,
MiniGame_DreamMakerNewGame = 35021,
MiniGame_DreamMakerRestart = 35022,
MiniGame_DreamMakerAttendSchedule = 35023,
MiniGame_DreamMakerDailyClosing = 35024,
Notification_LobbyCheck = 36000,
Notification_EventContentReddotCheck = 36001,
ProofToken_RequestQuestion = 37000,
ProofToken_Submit = 37001,
SchoolDungeon_List = 38000,
SchoolDungeon_EnterBattle = 38001,
SchoolDungeon_BattleResult = 38002,
SchoolDungeon_Retreat = 38003,
TimeAttackDungeon_Lobby = 39000,
TimeAttackDungeon_CreateBattle = 39001,
TimeAttackDungeon_EnterBattle = 39002,
TimeAttackDungeon_EndBattle = 39003,
TimeAttackDungeon_Sweep = 39004,
TimeAttackDungeon_GiveUp = 39005,
TimeAttackDungeon_Login = 39006,
WorldRaid_Lobby = 40000,
WorldRaid_BossList = 40001,
WorldRaid_EnterBattle = 40002,
WorldRaid_BattleResult = 40003,
WorldRaid_ReceiveReward = 40004,
ResetableContent_Get = 41000,
Conquest_GetInfo = 42000,
Conquest_Conquer = 42001,
Conquest_ConquerWithBattleStart = 42002,
Conquest_ConquerWithBattleResult = 42003,
Conquest_DeployEchelon = 42004,
Conquest_ManageBase = 42005,
Conquest_UpgradeBase = 42006,
Conquest_TakeEventObject = 42007,
Conquest_EventObjectBattleStart = 42008,
Conquest_EventObjectBattleResult = 42009,
Conquest_ReceiveCalculateRewards = 42010,
Conquest_NormalizeEchelon = 42011,
Conquest_Check = 42012,
Conquest_ErosionBattleStart = 42013,
Conquest_ErosionBattleResult = 42014,
Conquest_MainStoryGetInfo = 42015,
Conquest_MainStoryConquer = 42016,
Conquest_MainStoryConquerWithBattleStart = 42017,
Conquest_MainStoryConquerWithBattleResult = 42018,
Conquest_MainStoryCheck = 42019,
Friend_List = 43000,
Friend_Remove = 43001,
Friend_GetFriendDetailedInfo = 43002,
Friend_GetIdCard = 43003,
Friend_SetIdCard = 43004,
Friend_Search = 43005,
Friend_SendFriendRequest = 43006,
Friend_AcceptFriendRequest = 43007,
Friend_DeclineFriendRequest = 43008,
Friend_CancelFriendRequest = 43009,
Friend_Check = 43010,
CharacterGear_List = 44000,
CharacterGear_Unlock = 44001,
CharacterGear_TierUp = 44002,
EliminateRaid_Login = 45000,
EliminateRaid_Lobby = 45001,
EliminateRaid_OpponentList = 45002,
EliminateRaid_GetBestTeam = 45003,
EliminateRaid_CreateBattle = 45004,
EliminateRaid_EnterBattle = 45005,
EliminateRaid_EndBattle = 45006,
EliminateRaid_GiveUp = 45007,
EliminateRaid_Sweep = 45008,
EliminateRaid_SeasonReward = 45009,
EliminateRaid_RankingReward = 45010,
EliminateRaid_LimitedReward = 45011,
Attachment_Get = 46000,
Attachment_EmblemList = 46001,
Attachment_EmblemAcquire = 46002,
Attachment_EmblemAttach = 46003,
Sticker_Login = 47000,
Sticker_Lobby = 47001,
Sticker_UseSticker = 47002,
Field_Sync = 48000,
Field_Interaction = 48001,
Field_QuestClear = 48002,
Field_SceneChanged = 48003,
Field_EndDate = 48004,
Field_EnterStage = 48005,
Field_StageResult = 48006,
MultiFloorRaid_Sync = 49000,
MultiFloorRaid_EnterBattle = 49001,
MultiFloorRaid_EndBattle = 49002,
MultiFloorRaid_ReceiveReward = 49003,
Queuing_GetTicket = 50000
}
}

View File

@ -1,542 +0,0 @@
namespace SCHALE.Common.NetworkProtocol
{
public enum WebAPIErrorCode
{
None = 0,
InvalidPacket = 1,
InvalidProtocol = 2,
InvalidSession = 3,
InvalidVersion = 4,
InternalServerError = 5,
DBError = 6,
InvalidToken = 7,
FailedToLockAccount = 8,
InvalidCheatError = 9,
AccountCurrencyCannotAffordCost = 10,
ExceedTranscendenceCountLimit = 11,
MailBoxFull = 12,
InventoryAlreadyFull = 13,
AccountNotFound = 14,
DataClassNotFound = 15,
DataEntityNotFound = 16,
AccountGemPaidCannotAffordCost = 17,
AccountGemBonusCannotAffordCost = 18,
AccountItemCannotAffordCost = 19,
APITimeoutError = 20,
FunctionTimeoutError = 21,
DBDistributeTransactionError = 22,
OccasionalJobError = 23,
FailedToConsumeParcel = 100,
InvalidString = 200,
InvalidStringLength = 201,
EmptyString = 202,
SpecialSymbolNotAllowed = 203,
InvalidDate = 300,
CoolTimeRemain = 301,
TimeElapseError = 302,
ClientSendBadRequest = 400,
ClientSendTooManyRequest = 401,
ClientSuspectedAsCheater = 402,
ServerFailedToHandleRequest = 500,
DocumentDBFailedToHandleRequest = 501,
ServerCacheFailedToHandleRequest = 502,
ReconnectBundleUpdateRequired = 800,
GatewayMakeStandbyNotSupport = 900,
GatewayPassCheckNotSupport = 901,
GatewayWaitingTicketTimeOut = 902,
ClientUpdateRequire = 903,
AccountCreateNoDevId = 1000,
AccountCreateDuplicatedDevId = 1001,
AccountAuthEmptyDevId = 1002,
AccountAuthNotCreated = 1003,
AccountAccessControlWithoutPermission = 1004,
AccountNicknameEmptyString = 1005,
AccountNicknameSameName = 1006,
AccountNicknameWithInvalidString = 1007,
AccountNicknameWithInvalidLength = 1008,
YostarServerNotSuccessStatusCode = 1009,
YostarNetworkException = 1010,
YostarException = 1011,
AccoountPassCheckNotSupportCheat = 1012,
AccountCreateFail = 1013,
AccountAddPubliserAccountFail = 1014,
AccountAddDevIdFail = 1015,
AccountCreateAlreadyPublisherAccoundId = 1016,
AccountUpdateStateFail = 1017,
YostarCheckFail = 1018,
EnterTicketInvalid = 1019,
EnterTicketTimeOut = 1020,
EnterTicketUsed = 1021,
AccountCommentLengthOverLimit = 1022,
AccountUpdateBirthdayFailed = 1023,
AccountLoginError = 1024,
AccountCurrencySyncError = 1025,
InvalidClientCookie = 1026,
CharacterNotFound = 2000,
CharacterLocked = 2001,
CharacterAlreadyHas = 2002,
CharacterAssignedEchelon = 2003,
CharacterFavorDownException = 2004,
CharacterFavorMaxLevelExceed = 2005,
CannotLevelUpSkill = 2006,
CharacterLevelAlreadyMax = 2007,
InvalidCharacterExpGrowthRequest = 2008,
CharacterWeaponDataNotFound = 2009,
CharacterWeaponNotFound = 2010,
CharacterWeaponAlreadyUnlocked = 2011,
CharacterWeaponUnlockConditionFail = 2012,
CharacterWeaponExpGrowthNotValidItem = 2013,
InvalidCharacterWeaponExpGrowthRequest = 2014,
CharacterWeaponTranscendenceRecipeNotFound = 2015,
CharacterWeaponTranscendenceConditionFail = 2016,
CharacterWeaponUpdateFail = 2017,
CharacterGearNotFound = 2018,
CharacterGearAlreadyEquiped = 2019,
CharacterGearCannotTierUp = 2020,
CharacterGearCannotUnlock = 2021,
CharacterCostumeNotFound = 2022,
CharacterCostumeAlreadySet = 2023,
CharacterCannotEquipCostume = 2024,
InvalidCharacterSkillLevelUpdateRequest = 2025,
InvalidCharacterPotentialGrowthRequest = 2026,
CharacterPotentialGrowthDataNotFound = 2027,
EquipmentNotFound = 3000,
InvalidEquipmentExpGrowthRequest = 3001,
EquipmentNotMatchingSlotItemCategory = 3002,
EquipmentLocked = 3003,
EquipmentAlreadyEquiped = 3004,
EquipmentConsumeItemLimitCountOver = 3005,
EquipmentNotEquiped = 3006,
EquipmentCanNotEquip = 3007,
EquipmentIngredientEmtpy = 3008,
EquipmentCannotLevelUp = 3009,
EquipmentCannotTierUp = 3010,
EquipmentGearCannotUnlock = 3011,
EquipmentBatchGrowthNotValid = 3012,
ItemNotFound = 4000,
ItemLocked = 4001,
ItemCreateWithoutStackCount = 4002,
ItemCreateStackCountFull = 4003,
ItemNotUsingType = 4004,
ItemEnchantIngredientFail = 4005,
ItemInvalidConsumeRequest = 4006,
ItemInsufficientStackCount = 4007,
ItemOverExpirationDateTime = 4008,
ItemCannotAutoSynth = 4009,
EchelonEmptyLeader = 5000,
EchelonNotFound = 5001,
EchelonNotDeployed = 5002,
EchelonSlotOverMaxCount = 5003,
EchelonAssignCharacterOnOtherEchelon = 5004,
EchelonTypeNotAcceptable = 5005,
EchelonEmptyNotAcceptable = 5006,
EchelonPresetInvalidSave = 5007,
EchelonPresetLabelLengthInvalid = 5008,
CampaignStageNotOpen = 6000,
CampaignStagePlayLimit = 6001,
CampaignStageEnterFail = 6002,
CampaignStageInvalidSaveData = 6003,
CampaignStageNotPlayerTurn = 6004,
CampaignStageStageNotFound = 6005,
CampaignStageHistoryNotFound = 6006,
CampaignStageChapterNotFound = 6007,
CampaignStageEchelonNotFound = 6008,
CampaignStageWithdrawedCannotReUse = 6009,
CampaignStageChapterRewardInvalidReward = 6010,
CampaignStageChapterRewardAlreadyReceived = 6011,
CampaignStageTacticWinnerInvalid = 6012,
CampaignStageActionCountZero = 6013,
CampaignStageHealNotAcceptable = 6014,
CampaignStageHealLimit = 6015,
CampaignStageLocationCanNotEngage = 6016,
CampaignEncounterWaitingCannotEndTurn = 6017,
CampaignTacticResultEmpty = 6018,
CampaignPortalExitNotFound = 6019,
CampaignCannotReachDestination = 6020,
CampaignChapterRewardConditionNotSatisfied = 6021,
CampaignStageDataInvalid = 6022,
ContentSweepNotOpened = 6023,
CampaignTacticSkipFailed = 6024,
CampaignUnableToRemoveFixedEchelon = 6025,
CampaignCharacterIsNotWhitelist = 6026,
CampaignFailedToSkipStrategy = 6027,
InvalidSweepRequest = 6028,
MailReceiveRequestInvalid = 7000,
MissionCannotComplete = 8000,
MissionRewardInvalid = 8001,
AttendanceInvalid = 9000,
ShopExcelNotFound = 10000,
ShopAndGoodsNotMatched = 10001,
ShopGoodsNotFound = 10002,
ShopExceedPurchaseCountLimit = 10003,
ShopCannotRefresh = 10004,
ShopInfoNotFound = 10005,
ShopCannotPurchaseActionPointLimitOver = 10006,
ShopNotOpened = 10007,
ShopInvalidGoods = 10008,
ShopInvalidCostOrReward = 10009,
ShopEligmaOverPurchase = 10010,
ShopFreeRecruitInvalid = 10011,
ShopNewbieGachaInvalid = 10012,
ShopCannotNewGoodsRefresh = 10013,
GachaCostNotValid = 10014,
ShopRestrictBuyWhenInventoryFull = 10015,
BeforehandGachaMetadataNotFound = 10016,
BeforehandGachaCandidateNotFound = 10017,
BeforehandGachaInvalidLastIndex = 10018,
BeforehandGachaInvalidSaveIndex = 10019,
BeforehandGachaInvalidPickIndex = 10020,
BeforehandGachaDuplicatedResults = 10021,
RecipeCraftNoData = 11000,
RecipeCraftInsufficientIngredients = 11001,
RecipeCraftDataError = 11002,
MemoryLobbyNotFound = 12000,
LobbyModeChangeFailed = 12001,
CumulativeTimeRewardNotFound = 13000,
CumulativeTimeRewardAlreadyReceipt = 13001,
CumulativeTimeRewardInsufficientConnectionTime = 13002,
OpenConditionClosed = 14000,
OpenConditionSetNotSupport = 14001,
CafeNotFound = 15000,
CafeFurnitureNotFound = 15001,
CafeDeployFail = 15002,
CafeRelocateFail = 15003,
CafeInteractionNotFound = 15004,
CafeProductionEmpty = 15005,
CafeRankUpFail = 15006,
CafePresetNotFound = 15007,
CafeRenamePresetFail = 15008,
CafeClearPresetFail = 15009,
CafeUpdatePresetFurnitureFail = 15010,
CafeReservePresetActivationTimeFail = 15011,
CafePresetApplyFail = 15012,
CafePresetIsEmpty = 15013,
CafeAlreadyVisitCharacter = 15014,
CafeCannotSummonCharacter = 15015,
CafeCanRefreshVisitCharacter = 15016,
CafeAlreadyInteraction = 15017,
CafeTemplateNotFound = 15018,
CafeAlreadyOpened = 15019,
ScenarioMode_Fail = 16000,
ScenarioMode_DuplicatedScenarioModeId = 16001,
ScenarioMode_LimitClearedScenario = 16002,
ScenarioMode_LimitAccountLevel = 16003,
ScenarioMode_LimitClearedStage = 16004,
ScenarioMode_LimitClubStudent = 16005,
ScenarioMode_FailInDBProcess = 16006,
ScenarioGroup_DuplicatedScenarioGroupId = 16007,
ScenarioGroup_FailInDBProcess = 16008,
ScenarioGroup_DataNotFound = 16009,
ScenarioGroup_MeetupConditionFail = 16010,
CraftInfoNotFound = 17000,
CraftCanNotCreateNode = 17001,
CraftCanNotUpdateNode = 17002,
CraftCanNotBeginProcess = 17003,
CraftNodeDepthError = 17004,
CraftAlreadyProcessing = 17005,
CraftCanNotCompleteProcess = 17006,
CraftProcessNotComplete = 17007,
CraftInvalidIngredient = 17008,
CraftError = 17009,
CraftInvalidData = 17010,
CraftNotAvailableToCafePresets = 17011,
CraftNotEnoughEmptySlotCount = 17012,
CraftInvalidPresetSlotDB = 17013,
RaidExcelDataNotFound = 18000,
RaidSeasonNotOpen = 18001,
RaidDBDataNotFound = 18002,
RaidBattleNotFound = 18003,
RaidBattleUpdateFail = 18004,
RaidCompleteListEmpty = 18005,
RaidRoomCanNotCreate = 18006,
RaidActionPointZero = 18007,
RaidTicketZero = 18008,
RaidRoomCanNotJoin = 18009,
RaidRoomMaxPlayer = 18010,
RaidRewardDataNotFound = 18011,
RaidSeasonRewardNotFound = 18012,
RaidSeasonAlreadyReceiveReward = 18013,
RaidSeasonAddRewardPointError = 18014,
RaidSeasonRewardNotUpdate = 18015,
RaidSeasonReceiveRewardFail = 18016,
RaidSearchNotFound = 18017,
RaidShareNotFound = 18018,
RaidEndRewardFlagError = 18019,
RaidCanNotFoundPlayer = 18020,
RaidAlreadyParticipateCharacters = 18021,
RaidClearHistoryNotSave = 18022,
RaidBattleAlreadyEnd = 18023,
RaidEchelonNotFound = 18024,
RaidSeasonOpen = 18025,
RaidRoomIsAlreadyClose = 18026,
RaidRankingNotFound = 18027,
WeekDungeonInfoNotFound = 19000,
WeekDungeonNotOpenToday = 19001,
WeekDungeonBattleWinnerInvalid = 19002,
WeekDungeonInvalidSaveData = 19003,
FindGiftRewardNotFound = 20000,
FindGiftRewardAlreadyAcquired = 20001,
FindGiftClearCountOverTotalCount = 20002,
ArenaInfoNotFound = 21000,
ArenaGroupNotFound = 21001,
ArenaRankHistoryNotFound = 21002,
ArenaRankInvalid = 21003,
ArenaBattleFail = 21004,
ArenaDailyRewardAlreadyBeenReceived = 21005,
ArenaNoSeasonAvailable = 21006,
ArenaAttackCoolTime = 21007,
ArenaOpponentAlreadyBeenAttacked = 21008,
ArenaOpponentRankInvalid = 21009,
ArenaNeedFormationSetting = 21010,
ArenaNoHistory = 21011,
ArenaInvalidRequest = 21012,
ArenaInvalidIndex = 21013,
ArenaNotFoundBattle = 21014,
ArenaBattleTimeOver = 21015,
ArenaRefreshTimeOver = 21016,
ArenaEchelonSettingTimeOver = 21017,
ArenaCannotReceiveReward = 21018,
ArenaRewardNotExist = 21019,
ArenaCannotSetMap = 21020,
ArenaDefenderRankChange = 21021,
AcademyNotFound = 22000,
AcademyScheduleTableNotFound = 22001,
AcademyScheduleOperationNotFound = 22002,
AcademyAlreadyAttendedSchedule = 22003,
AcademyAlreadyAttendedFavorSchedule = 22004,
AcademyRewardCharacterNotFound = 22005,
AcademyScheduleCanNotAttend = 22006,
AcademyTicketZero = 22007,
AcademyMessageCanNotSend = 22008,
ContentSaveDBNotFound = 26000,
ContentSaveDBEntranceFeeEmpty = 26001,
AccountBanned = 27000,
ServerNowLoadingProhibitedWord = 28000,
ServerIsUnderMaintenance = 28001,
ServerMaintenanceSoon = 28002,
AccountIsNotInWhiteList = 28003,
ServerContentsLockUpdating = 28004,
ServerContentsLock = 28005,
CouponIsEmpty = 29000,
CouponIsInvalid = 29001,
UseCouponUsedListReadFail = 29002,
UseCouponUsedCoupon = 29003,
UseCouponNotFoundSerials = 29004,
UseCouponDeleteSerials = 29005,
UseCouponUnapprovedSerials = 29006,
UseCouponExpiredSerials = 29007,
UseCouponMaximumSerials = 29008,
UseCouponNotFoundMeta = 29009,
UseCouponDuplicateUseCoupon = 29010,
UseCouponDuplicateUseSerial = 29011,
BillingStartShopCashIdNotFound = 30000,
BillingStartNotServiceTime = 30001,
BillingStartUseConditionCheckError = 30002,
BillingStartSmallLevel = 30003,
BillingStartMaxPurchaseCount = 30004,
BillingStartFailAddOrder = 30005,
BillingStartExistPurchase = 30006,
BillingEndFailGetOrder = 30007,
BillingEndShopCashIdNotFound = 30008,
BillingEndProductIdNotFound = 30009,
BillingEndMonthlyProductIdNotFound = 30010,
BillingEndInvalidState = 30011,
BillingEndFailUpdteState = 30012,
BillingEndFailSendMail = 30013,
BillingEndInvalidAccount = 30014,
BillingEndNotFoundPurchaseCount = 30015,
BillingEndFailUpdteMonthlyProduct = 30016,
BillingStartMailFull = 30017,
BillingStartInventoryAndMailFull = 30018,
BillingEndRecvedErrorMonthlyProduct = 30019,
MonthlyProductNotOutdated = 30020,
ClanNotFound = 31000,
ClanSearchFailed = 31001,
ClanEmptySearchString = 31002,
ClanAccountAlreadyJoinedClan = 31003,
ClanAccountAlreadyQuitClan = 31004,
ClanCreateFailed = 31005,
ClanMemberExceedCapacity = 31006,
ClanDoesNotHavePermission = 31007,
ClanTargetAccountIsNotApplicant = 31008,
ClanMemberNotFound = 31009,
ClanCanNotKick = 31010,
ClanCanNotDismiss = 31011,
ClanCanNotQuit = 31012,
ClanRejoinCoolOff = 31013,
ClanChangeMemberGradeFailed = 31014,
ClanHasBeenDisMissed = 31015,
ClanCannotChangeJoinOption = 31016,
ClanExceedConferCountLimit = 31017,
ClanBusy = 31018,
ClanNameEmptyString = 31019,
ClanNameWithInvalidLength = 31020,
ClanAssistCharacterAlreadyDeployed = 31021,
ClanAssistNotValidUse = 31022,
ClanAssistCharacterChanged = 31023,
ClanAssistCoolTime = 31024,
ClanAssistAlreadyUsedInRaidRoom = 31025,
ClanAssistAlreadyUsedInTimeAttackDungeonRoom = 31026,
ClanAssistEchelonHasAssistOnly = 31027,
PaymentInvalidSign = 32000,
PaymentInvalidSeed1 = 32001,
PaymentInvalidSeed2 = 32002,
PaymentInvalidInput = 32003,
PaymentNotFoundPurchase = 32004,
PaymentGetPurchaseOrderNotZero = 32005,
PaymentSetPurchaseOrderNotZero = 32006,
PaymentException = 32007,
PaymentInvalidState = 32008,
SessionNotFound = 33000,
SessionParseFail = 33001,
SessionInvalidInput = 33002,
SessionNotAuth = 33003,
SessionDuplicateLogin = 33004,
SessionTimeOver = 33005,
SessionInvalidVersion = 33006,
SessionChangeDate = 33007,
CallName_RenameCoolTime = 34000,
CallName_EmptyString = 34001,
CallName_InvalidString = 34002,
CallName_TTSServerIsNotAvailable = 34003,
CouchbaseInvalidCas = 35000,
CouchbaseOperationFailed = 35001,
CouchbaseRollBackFailed = 35002,
EventContentCannotSelectBuff = 36000,
EventContentNoBuffGroupAvailable = 36001,
EventContentBuffGroupIdDuplicated = 36002,
EventContentNotOpen = 36003,
EventContentNoTotalRewardAvailable = 36004,
EventContentBoxGachaPurchaseFailed = 36005,
EventContentBoxGachaCannotRefresh = 36006,
EventContentCardShopCannotShuffle = 36007,
EventContentElementDoesNotExist = 36008,
EventContentElementAlreadyPurchased = 36009,
EventContentLocationNotFound = 36010,
EventContentLocationScheduleCanNotAttend = 36011,
EventContentDiceRaceDataNotFound = 36012,
EventContentDiceRaceAlreadyReceiveLapRewardAll = 36013,
EventContentDiceRaceInvalidDiceRaceResultType = 36014,
EventContentTreasureDataNotFound = 36015,
EventContentTreasureNotComplete = 36016,
EventContentTreasureFlipFailed = 36017,
MiniGameStageIsNotOpen = 37000,
MiniGameStageInvalidResult = 37001,
MiniGameShootingStageInvlid = 37002,
MiniGameShootingCannotSweep = 37003,
MiniGameTableBoardSaveNotExist = 37004,
MiniGameTableBoardPlayerCannotMove = 37005,
MiniGameTableBoardNoActiveEncounter = 37006,
MiniGameTableBoardInvalidEncounterRequest = 37007,
MiniGameTableBoardProcessEncounterFailed = 37008,
MiniGameTableBoardItemNotExist = 37009,
MiniGameTableBoardInvalidItemUse = 37010,
MiniGameTableBoardInvalidClearThemaRequest = 37011,
MiniGameTableBoardInvalidSeason = 37012,
MiniGameTableBoardInvalidResurrectRequest = 37013,
MiniGameTableBoardSweepConditionFail = 37014,
MiniGameTableBoardInvalidData = 37015,
ProofTokenNotSubmitted = 38000,
SchoolDungeonInfoNotFound = 39000,
SchoolDungeonNotOpened = 39001,
SchoolDungeonInvalidSaveData = 39002,
SchoolDungeonBattleWinnerInvalid = 39003,
SchoolDungeonInvalidReward = 39004,
TimeAttackDungeonDataNotFound = 40000,
TimeAttackDungeonNotOpen = 40001,
TimeAttackDungeonRoomTimeOut = 40002,
TimeAttackDungeonRoomPlayCountOver = 40003,
TimeAttackDungeonRoomAlreadyExists = 40004,
TimeAttackDungeonRoomAlreadyClosed = 40005,
TimeAttackDungeonRoomNotExist = 40006,
TimeAttackDungeonInvalidRequest = 40007,
TimeAttackDungeonInvalidData = 40008,
WorldRaidDataNotFound = 41000,
WorldRaidSeasonNotOpen = 41001,
WorldRaidBossGroupNotOpen = 41002,
WorldRaidInvalidOpenCondition = 41003,
WorldRaidDifficultyNotOpen = 41004,
WorldRaidAssistCharacterLimitOver = 41005,
WorldRaidContainBlackListCharacter = 41006,
WorldRaidValidFixedEchelonSetting = 41007,
WorldRaidAlredayReceiveRewardAll = 41008,
WorldRaidCannotReceiveReward = 41009,
WorldRaidBossAlreadyDead = 41010,
WorldRaidNotAnotherBossKilled = 41011,
WorldRaidBattleResultUpdateFailed = 41012,
WorldRaidGemEnterCountLimitOver = 41013,
WorldRaidCannotGemEnter = 41014,
WorldRaidNeedClearScenarioBoss = 41015,
WorldRaidBossIsAlive = 41016,
ConquestDataNotFound = 42000,
ConquestAlreadyConquested = 42001,
ConquestNotFullyConquested = 42002,
ConquestStepNotOpened = 42003,
ConquestUnableToReach = 42004,
ConquestUnableToAttack = 42005,
ConquestEchelonChangedCountMax = 42006,
ConquestEchelonNotFound = 42007,
ConquestCharacterAlreadyDeployed = 42008,
ConquestMaxUpgrade = 42009,
ConquestUnitNotFound = 42010,
ConquestObjectNotFound = 42011,
ConquestCalculateRewardNotFound = 42012,
ConquestInvalidTileType = 42013,
ConquestInvalidObjectType = 42014,
ConquestInvalidSaveData = 42015,
ConquestMaxAssistCountReached = 42016,
ConquestErosionConditionNotSatisfied = 42017,
ConquestAdditionalContentNotInUse = 42018,
ConquestCannotUseManageEchelon = 42019,
FriendUserIsNotFriend = 43000,
FriendFailedToCreateFriendIdCard = 43001,
FriendRequestNotFound = 43002,
FriendInvalidFriendCode = 43003,
FriendAlreadyFriend = 43004,
FriendMaxSentRequestReached = 43005,
FriendMaxReceivedRequestReached = 43006,
FriendCannotRequestMaxFriendCountReached = 43007,
FriendCannotAcceptMaxFriendCountReached = 43008,
FriendOpponentMaxFriendCountReached = 43009,
FriendTargetIsBusy = 43010,
FriendRequestTargetIsYourself = 43011,
FriendSearchTargetIsYourself = 43012,
FriendInvalidBackgroundId = 43013,
FriendIdCardCommentLengthOverLimit = 43014,
FriendBackgroundNotOwned = 43015,
EliminateStageIsNotOpened = 44000,
MultiSweepPresetDocumentNotFound = 45000,
MultiSweepPresetNameEmpty = 45001,
MultiSweepPresetInvalidStageId = 45002,
MultiSweepPresetInvalidId = 45003,
MultiSweepPresetNameInvalidLength = 45004,
EmblemDataNotFound = 46000,
EmblemAttachFailed = 46001,
EmblemCannotReceive = 46002,
EmblemPassCheckEmblemIsEmpty = 46003,
StickerDataNotFound = 47000,
StickerNotAcquired = 47001,
StickerDocumentNotFound = 47002,
StickerAlreadyUsed = 47003,
ClearDeckInvalidKey = 48000,
ClearDeckOutOfDate = 48001,
MultiFloorRaidSeasonNotOpened = 49000,
MultiFloorRaidDataNotFound = 49001,
MultiFloorRaidAssistCharacterLimitOver = 49002,
MultiFloorRaidStageOpenConditionFail = 49003,
MultiFloorRaidInvalidSummary = 49004,
MultiFloorRaidInvalidRewardRequest = 49005,
FieldDataNotFound = 60000,
FieldInteracionFailed = 60001,
FieldQuestClearFailed = 60002,
FieldInvalidSceneChangedRequest = 60003,
FieldInvalidEndDateRequest = 60004,
FieldCreateDailyQuestFailed = 60005,
FieldResetReplayFailed = 60006,
FieldIncreaseMasteryFailed = 60007,
FieldStageDataInvalid = 60008,
FieldStageEnterFail = 60009,
FieldContentIsClosed = 60010,
FieldEventStageNotCleared = 60011
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,338 +0,0 @@

using Newtonsoft.Json;
using SCHALE.Common.Database;
using SCHALE.Common.FlatData;
using System.Net.NetworkInformation;
namespace SCHALE.Common.Parcel
{
public class CurrencyValue
{
public Dictionary<CurrencyTypes, long> Values { get; set; }
public Dictionary<CurrencyTypes, long> Tickets { get; set; }
public Dictionary<CurrencyTypes, long> Property { get; set; }
public long Gold { get; set; }
public long Gem { get; set; }
public long GemBonus { get; set; }
public long GemPaid { get; set; }
public long ActionPoint { get; set; }
public long ArenaTicket { get; set; }
public long RaidTicket { get; set; }
public long WeekDungeonChaserATicket { get; set; }
public long WeekDungeonChaserBTicket { get; set; }
public long WeekDungeonChaserCTicket { get; set; }
public long WeekDungeonFindGiftTicket { get; set; }
public long WeekDungeonBloodTicket { get; set; }
public long AcademyTicket { get; set; }
public long SchoolDungeonATicket { get; set; }
public long SchoolDungeonBTicket { get; set; }
public long SchoolDungeonCTicket { get; set; }
public long TimeAttackDungeonTicket { get; set; }
public long MasterCoin { get; set; }
public long WorldRaidTicketA { get; set; }
public long WorldRaidTicketB { get; set; }
public long WorldRaidTicketC { get; set; }
public long ChaserTotalTicket { get; set; }
public long SchoolDungeonTotalTicket { get; set; }
public long EliminateTicketA { get; set; }
public long EliminateTicketB { get; set; }
public long EliminateTicketC { get; set; }
public bool IsEmpty { get; set; }
}
public class FavorExpTransaction
{
public ParcelType Type { get; set; }
public IEnumerable<ParcelInfo> ParcelInfos { get; set; }
public long TargetCharacterUniqueId { get; set; }
public long Amount { get; set; }
public long Prob { get; set; }
}
public class FavorParcelValue
{
public int FavorRank { get; set; }
public int FavorExp { get; set; }
//public IList<FavorLevelReward> Rewards { get; set; }
public bool IsEmpty { get; set; }
}
public class LocationExpTransaction
{
public ParcelType Type { get; set; }
public IEnumerable<ParcelInfo> ParcelInfos { get; set; }
public long TargetLocationUniqueId { get; set; }
public long Amount { get; set; }
}
public abstract class ParcelBase
{
public abstract ParcelType Type { get; }
[JsonIgnore]
public abstract IEnumerable<ParcelInfo> ParcelInfos { get; }
}
public class ParcelCost
{
public List<ParcelInfo> ParcelInfos { get; set; }
public CurrencyTransaction Currency { get; set; }
public List<EquipmentDB> EquipmentDBs { get; set; }
public List<ItemDB> ItemDBs { get; set; }
public List<FurnitureDB> FurnitureDBs { get; set; }
public bool HasCurrency { get; set; }
public bool HasItem { get; set; }
public IEnumerable<ConsumableItemBaseDB> ConsumableItemBaseDBs { get; set; }
public ConsumeCondition ConsumeCondition { get; set; }
}
public class ParcelDetail
{
public ParcelInfo OriginParcel { get; set; }
public ParcelInfo MailSendParcel { get; set; }
public List<ParcelInfo> ConvertedParcelInfos { get; set; }
public ParcelChangeType ParcelChangeType { get; set; }
}
[Serializable]
public struct BasisPoint : IEquatable<BasisPoint>, IComparable<BasisPoint>
{
//[JsonIgnore]
//public long RawValue
//{
// get
// {
// return this.rawValue;
// }
//}
private static readonly long Multiplier;
private static readonly double OneOver10_4 = 1.0 / 10000.0;
public static readonly BasisPoint Zero;
public static readonly BasisPoint One;
public static readonly BasisPoint Epsilon;
public static readonly double DoubleEpsilon;
public long rawValue { get; set; }
public BasisPoint(long rawValue)
{
this.rawValue = rawValue;
}
public bool Equals(BasisPoint other)
{
return this.rawValue == other.rawValue;
}
public int CompareTo(BasisPoint other)
{
return rawValue.CompareTo(other.rawValue);
}
public static long operator *(long value, BasisPoint other)
{
return MultiplyLong(value, other);
}
public static long MultiplyLong(long value, BasisPoint other)
{
double result = OneOver10_4 * ((double)other.rawValue * value);
if (double.IsInfinity(result))
return long.MaxValue;
return (long)result;
}
}
public class ParcelInfo : IEquatable<ParcelInfo>
{
public long Amount { get; set; }
public ParcelKeyPair Key { get; set; }
public BasisPoint Multiplier { get; set; }
[JsonIgnore]
public long MultipliedAmount
{
get
{
return Amount * Multiplier;
}
}
public BasisPoint Probability { get; set; }
public bool Equals(ParcelInfo? other)
{
return this.Key.Id.Equals(other.Key.Id);
}
}
public class ParcelKeyPair : IEquatable<ParcelKeyPair>, IComparable<ParcelKeyPair>
{
public static readonly ParcelKeyPair Empty;
public ParcelType Type { get; set; }
public long Id { get; set; }
public int CompareTo(ParcelKeyPair? other)
{
return Id.CompareTo(other.Id);
}
public bool Equals(ParcelKeyPair? other)
{
return Id.Equals(other.Id);
}
}
public class ParcelResultDB
{
public AccountDB AccountDB { get; set; }
public List<AcademyLocationDB> AcademyLocationDBs { get; set; }
public AccountCurrencyDB AccountCurrencyDB { get; set; }
public List<CharacterDB> CharacterDBs { get; set; }
public List<WeaponDB> WeaponDBs { get; set; }
public List<CostumeDB> CostumeDBs { get; set; }
public List<CharacterDB> TSSCharacterDBs { get; set; }
public Dictionary<long, EquipmentDB> EquipmentDBs { get; set; }
public List<long> RemovedEquipmentIds { get; set; }
public Dictionary<long, ItemDB> ItemDBs { get; set; }
public List<long> RemovedItemIds { get; set; }
public Dictionary<long, FurnitureDB> FurnitureDBs { get; set; }
public List<long> RemovedFurnitureIds { get; set; }
public Dictionary<long, IdCardBackgroundDB> IdCardBackgroundDBs { get; set; }
public List<EmblemDB> EmblemDBs { get; set; }
public List<StickerDB> StickerDBs { get; set; }
public List<MemoryLobbyDB> MemoryLobbyDBs { get; set; }
public List<long> CharacterNewUniqueIds { get; set; }
public Dictionary<long, int> SecretStoneCharacterIdAndCounts { get; set; }
public List<ParcelInfo> DisplaySequence { get; set; }
public List<ParcelInfo> ParcelForMission { get; set; }
public List<ParcelResultStepInfo> ParcelResultStepInfoList { get; set; }
public long BaseAccountExp { get; set; }
public long AdditionalAccountExp { get; set; }
public List<long> GachaResultCharacters { get; set; }
}
public enum ParcelProcessActionType
{
// Token: 0x04009F7B RID: 40827
None,
// Token: 0x04009F7C RID: 40828
Cost,
// Token: 0x04009F7D RID: 40829
Reward
}
public class ParcelResultStepInfo
{
public ParcelProcessActionType ParcelProcessActionType { get; set; }
public List<ParcelDetail> StepParcelDetails { get; set; }
}
public class AccountExpTransaction
{
public ParcelType Type { get; set; }
public IEnumerable<ParcelInfo> ParcelInfos { get; set; }
public long Amount { get; set; }
}
public class CharacterExpTransaction
{
public ParcelType Type { get; set; }
public IEnumerable<ParcelInfo> ParcelInfos { get; set; }
public long TargetCharacterUniqueId { get; set; }
public long Amount { get; set; }
}
public class CurrencySnapshot
{
public AccountCurrencyDB LastAccountCurrencyDB { get; set; }
public Dictionary<CurrencyTypes, long> CurrencyValues { get; set; }
public CurrencyValue currencyValue { get; set; }
public DateTime ServerTimeSnapshot { get; set; }
public long Gold { get; set; }
public long Gem { get; set; }
public long GemBonus { get; set; }
public long GemPaid { get; set; }
public long ActionPoint { get; set; }
public long ArenaTicket { get; set; }
public long RaidTicket { get; set; }
public long WeekDungeonChaserATicket { get; set; }
public long WeekDungeonChaserBTicket { get; set; }
public long WeekDungeonChaserCTicket { get; set; }
public long WeekDungeonFindGiftTicket { get; set; }
public long WeekDungeonBloodTicket { get; set; }
public long AcademyTicket { get; set; }
public long SchoolDungeonATicket { get; set; }
public long SchoolDungeonBTicket { get; set; }
public long SchoolDungeonCTicket { get; set; }
public long TimeAttackDungeonTicket { get; set; }
public long MasterCoin { get; set; }
public long WorldRaidTicketA { get; set; }
public long WorldRaidTicketB { get; set; }
public long WorldRaidTicketC { get; set; }
public long ChaserTotalTicket { get; set; }
public long SchoolDungeonTotalTicket { get; set; }
public long EliminateTicketA { get; set; }
public long EliminateTicketB { get; set; }
public long EliminateTicketC { get; set; }
}
public class CurrencyTransaction
{
public CurrencyValue currencyValue { get; set; }
public ParcelType Type { get; set; }
public IEnumerable<ParcelInfo> ParcelInfos { get; set; }
public IDictionary<CurrencyTypes, long> CurrencyValues { get; set; }
public CurrencyTransaction Inverse { get; set; }
public bool IsEmpty { get; set; }
public long Gold { get; set; }
public long Gem { get; set; }
public long GemBonus { get; set; }
public long GemPaid { get; set; }
public long ActionPoint { get; set; }
public long ArenaTicket { get; set; }
public long RaidTicket { get; set; }
public long WeekDungeonChaserATicket { get; set; }
public long WeekDungeonChaserBTicket { get; set; }
public long WeekDungeonChaserCTicket { get; set; }
public long WeekDungeonFindGiftTicket { get; set; }
public long WeekDungeonBloodTicket { get; set; }
public long AcademyTicket { get; set; }
public long SchoolDungeonATicket { get; set; }
public long SchoolDungeonBTicket { get; set; }
public long SchoolDungeonCTicket { get; set; }
public long TimeAttackDungeonTicket { get; set; }
public long MasterCoin { get; set; }
public long WorldRaidTicketA { get; set; }
public long WorldRaidTicketB { get; set; }
public long WorldRaidTicketC { get; set; }
public long ChaserTotalTicket { get; set; }
public long SchoolDungeonTotalTicket { get; set; }
public long EliminateTicketA { get; set; }
public long EliminateTicketB { get; set; }
public long EliminateTicketC { get; set; }
}
}

View File

@ -7,6 +7,12 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Compile Remove="Parcel\**" />
<EmbeddedResource Remove="Parcel\**" />
<None Remove="Parcel\**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Google.FlatBuffers" Version="24.3.25" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.2">

File diff suppressed because one or more lines are too long

View File

@ -28,7 +28,7 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
excelTableService = _excelTableService;
}
[ProtocolHandler(Protocol.Account_CheckYostar)]
[ProtocolHandler(Protocol.Account_CheckYostar)]
public ResponsePacket CheckYostarHandler(AccountCheckYostarRequest req)
{
string[] uidToken = req.EnterTicket.Split(':');
@ -69,6 +69,8 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
{
CurrentVersion = req.Version,
AccountDB = account,
BattleValidation = true,
IssueAlertInfos = [],
StaticOpenConditions = new()
{
{ OpenConditionContent.Shop, OpenConditionLockReason.None },
@ -212,8 +214,6 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
PassiveSkillLevel = x.PassiveSkillLevel,
ExtraPassiveSkillLevel = x.ExtraPassiveSkillLevel,
LeaderSkillLevel = x.LeaderSkillLevel,
IsNew = true,
IsLocked = true,
EquipmentServerIds = characterExcel is not null
? characterExcel.EquipmentSlot.Select(x => (long)0).ToList()
: [0, 0, 0],
@ -303,7 +303,7 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
return new AccountLoginSyncResponse()
{
/*
CampaignListResponse = new CampaignListResponse()
{
CampaignChapterClearRewardHistoryDBs = [
@ -1608,12 +1608,16 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
}
],
},
*/
/*
CafeGetInfoResponse = new CafeGetInfoResponse()
{
CafeDBs = [.. account.Cafes],
FurnitureDBs = [.. account.Furnitures]
},
*/
AccountCurrencySyncResponse = new AccountCurrencySyncResponse()
{
AccountCurrencyDB = new AccountCurrencyDB
@ -1740,7 +1744,7 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
{
MemoryLobbyDBs = [.. account.MemoryLobbies]
},
/*
EventContentPermanentListResponse = new EventContentPermanentListResponse()
{
PermanentDBs =
@ -1761,6 +1765,8 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
],
},
*/
EquipmentItemListResponse = new EquipmentItemListResponse()
{
EquipmentDBs = [.. account.Equipment]

View File

@ -1361,7 +1361,7 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
{
Key = new() { Type = ParcelType.Currency, Id = 5 },
Amount = 10,
Multiplier = new(10000),
Multiplier = new() { },
Probability = new(10000),
}
],
@ -1369,7 +1369,7 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
AccountServerId = req.AccountId,
ContentType = ContentType.CampaignMainStage,
//ContentType = ContentType.CampaignMainStage,
ActivatedHexaEventsAndConditions = new() { { 0, [0] } },
HexaEventDelayedExecutions = [],
CreateTime = DateTime.UtcNow,

View File

@ -32,7 +32,6 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
{
UniqueId = account.Characters.FirstOrDefault(x => x.ServerId == req.TargetCharacterServerId).UniqueId,
BoundCharacterServerId = req.TargetCharacterServerId,
IsLocked = false,
StarGrade = 1,
Level = 1
};

View File

@ -84,7 +84,6 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
targetEquipment.Tier = (int)batchGrowthDB.AfterTier;
targetEquipment.Level = (int)batchGrowthDB.AfterLevel;
targetEquipment.UniqueId = targetEquipment.UniqueId + batchGrowthDB.AfterTier - 1; // should prob use excel, im lazyzz...
targetEquipment.IsNew = true;
targetEquipment.StackCount = 1;
context.SaveChanges();

View File

@ -71,8 +71,9 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
foreach (var charId in SavedGachaResults)
{
GachaResults.Add(new GachaResult(charId) // hardcode until table
GachaResults.Add(new GachaResult() // hardcode until table
{
CharacterId = charId,
Character = new()
{
ServerId = account.ServerId,
@ -85,8 +86,6 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
PassiveSkillLevel = 1,
ExtraPassiveSkillLevel = 1,
LeaderSkillLevel = 1,
IsNew = true,
IsLocked = true
}
});
}
@ -146,8 +145,9 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
// always 3 star
shouldDoGuaranteedSR = false;
var isNew = accountChSet.Add(rateUpChId);
gachaList.Add(new(rateUpChId)
gachaList.Add(new()
{
CharacterId = rateUpChId,
Character = !isNew ? null : new()
{
AccountServerId = account.ServerId,
@ -178,8 +178,9 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
var chId = normalSSRList[randomPoolIdx].Id;
var isNew = accountChSet.Add(chId);
gachaList.Add(new(chId)
gachaList.Add(new()
{
CharacterId = chId,
Character = !isNew ? null : new()
{
AccountServerId = account.ServerId,
@ -206,8 +207,9 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
var chId = normalSRList[randomPoolIdx].Id;
var isNew = accountChSet.Add(chId);
gachaList.Add(new(chId)
gachaList.Add(new()
{
CharacterId = chId,
Character = !isNew ? null : new()
{
AccountServerId = account.ServerId,
@ -233,8 +235,9 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
var chId = normalRList[randomPoolIdx].Id;
var isNew = accountChSet.Add(chId);
gachaList.Add(new(chId)
gachaList.Add(new()
{
CharacterId = chId,
Character = !isNew ? null : new()
{
AccountServerId = account.ServerId,
@ -261,7 +264,6 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers
acquiredItems = itemDict.Keys.Select(x => new ItemDB()
{
IsNew = true,
UniqueId = x,
StackCount = itemDict[x],
}).ToList();

View File

@ -59,7 +59,7 @@ namespace SCHALE.GameServer.Managers
SeasonId = raidInfo.SeasonId,
RaidState = RaidStatus.Playing,
IsPractice = isPractice,
BossDifficulty = raidInfo.CurrentDifficulty,
//BossDifficulty = raidInfo.CurrentDifficulty,
RaidBossDBs = [
new() {
ContentType = ContentType.Raid,
@ -71,7 +71,7 @@ namespace SCHALE.GameServer.Managers
else
{
RaidDB.BossDifficulty = raidInfo.CurrentDifficulty;
//RaidDB.BossDifficulty = raidInfo.CurrentDifficulty;
RaidDB.UniqueId = raidId;
RaidDB.IsPractice = isPractice;
}

View File

@ -59,7 +59,6 @@ namespace SCHALE.Common.Utils
{
return new ItemDB()
{
IsNew = true,
UniqueId = x.Id,
StackCount = 1000,
};
@ -83,7 +82,6 @@ namespace SCHALE.Common.Utils
{
UniqueId = x.UniqueId,
BoundCharacterServerId = x.ServerId,
IsLocked = false,
StarGrade = 3,
Level = 50
};
@ -213,8 +211,6 @@ namespace SCHALE.Common.Utils
ExtraPassiveSkillLevel = 10,
LeaderSkillLevel = 1,
FavorRank = 20,
IsNew = true,
IsLocked = true,
PotentialStats = { { 1, 0 }, { 2, 0 }, { 3, 0 } },
EquipmentServerIds = [0, 0, 0]
};