|
@@ -0,0 +1,259 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using MongoDB.Bson.Serialization.Attributes;
|
|
|
+using ProtoBuf;
|
|
|
+
|
|
|
+namespace ET
|
|
|
+{
|
|
|
+ [ProtoContract]
|
|
|
+ [Config]
|
|
|
+ public partial class MapConfigCategory : ConfigSingleton<MapConfigCategory>, IMerge
|
|
|
+ {
|
|
|
+ [ProtoIgnore]
|
|
|
+ [BsonIgnore]
|
|
|
+ private Dictionary<int, MapConfig> dict = new Dictionary<int, MapConfig>();
|
|
|
+
|
|
|
+ [BsonElement]
|
|
|
+ [ProtoMember(1)]
|
|
|
+ private List<MapConfig> list = new List<MapConfig>();
|
|
|
+
|
|
|
+ public void Merge(object o)
|
|
|
+ {
|
|
|
+ MapConfigCategory s = o as MapConfigCategory;
|
|
|
+ this.list.AddRange(s.list);
|
|
|
+ }
|
|
|
+
|
|
|
+ [ProtoAfterDeserialization]
|
|
|
+ public void ProtoEndInit()
|
|
|
+ {
|
|
|
+ foreach (MapConfig config in list)
|
|
|
+ {
|
|
|
+ config.AfterEndInit();
|
|
|
+ this.dict.Add(config.Id, config);
|
|
|
+ }
|
|
|
+ this.list.Clear();
|
|
|
+
|
|
|
+ this.AfterEndInit();
|
|
|
+ }
|
|
|
+
|
|
|
+ public MapConfig Get(int id)
|
|
|
+ {
|
|
|
+ this.dict.TryGetValue(id, out MapConfig item);
|
|
|
+
|
|
|
+ if (item == null)
|
|
|
+ {
|
|
|
+ throw new Exception($"配置找不到,配置表名: {nameof (MapConfig)},配置id: {id}");
|
|
|
+ }
|
|
|
+
|
|
|
+ return item;
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool Contain(int id)
|
|
|
+ {
|
|
|
+ return this.dict.ContainsKey(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ public Dictionary<int, MapConfig> GetAll()
|
|
|
+ {
|
|
|
+ return this.dict;
|
|
|
+ }
|
|
|
+
|
|
|
+ public MapConfig GetOne()
|
|
|
+ {
|
|
|
+ if (this.dict == null || this.dict.Count <= 0)
|
|
|
+ {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ return this.dict.Values.GetEnumerator().Current;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [ProtoContract]
|
|
|
+ public partial class MapConfig: ProtoObject, IConfig
|
|
|
+ {
|
|
|
+ /// <summary>Id</summary>
|
|
|
+ [ProtoMember(1)]
|
|
|
+ public int Id { get; set; }
|
|
|
+ /// <summary>名字</summary>
|
|
|
+ [ProtoMember(2)]
|
|
|
+ public string Name { get; set; }
|
|
|
+ /// <summary>成色</summary>
|
|
|
+ [ProtoMember(3)]
|
|
|
+ public int Qcolor { get; set; }
|
|
|
+ /// <summary>玩法类型</summary>
|
|
|
+ [ProtoMember(4)]
|
|
|
+ public int Type { get; set; }
|
|
|
+ /// <summary>场景类型</summary>
|
|
|
+ [ProtoMember(5)]
|
|
|
+ public int AreaType { get; set; }
|
|
|
+ /// <summary>地图模版id</summary>
|
|
|
+ [ProtoMember(6)]
|
|
|
+ public int TemplateID { get; set; }
|
|
|
+ /// <summary>怪物强度</summary>
|
|
|
+ [ProtoMember(7)]
|
|
|
+ public string MonsterHard { get; set; }
|
|
|
+ /// <summary>所属阵营</summary>
|
|
|
+ [ProtoMember(8)]
|
|
|
+ public int Race { get; set; }
|
|
|
+ /// <summary>默认PK模式</summary>
|
|
|
+ [ProtoMember(9)]
|
|
|
+ public int Pktype { get; set; }
|
|
|
+ /// <summary>是否允许改变PK模式</summary>
|
|
|
+ [ProtoMember(10)]
|
|
|
+ public int changePKtype { get; set; }
|
|
|
+ /// <summary>是否无视PK红名规则</summary>
|
|
|
+ [ProtoMember(11)]
|
|
|
+ public int ignorePkRule { get; set; }
|
|
|
+ /// <summary>是否可使用回城功能</summary>
|
|
|
+ [ProtoMember(12)]
|
|
|
+ public int canBeTrans { get; set; }
|
|
|
+ /// <summary>地图等级</summary>
|
|
|
+ [ProtoMember(13)]
|
|
|
+ public int MapLevel { get; set; }
|
|
|
+ /// <summary>掉线后返回地图ID</summary>
|
|
|
+ [ProtoMember(14)]
|
|
|
+ public int DisConnToMapID { get; set; }
|
|
|
+ /// <summary>复活地图ID</summary>
|
|
|
+ [ProtoMember(15)]
|
|
|
+ public int RevivedMapID { get; set; }
|
|
|
+ /// <summary>生命周期</summary>
|
|
|
+ [ProtoMember(16)]
|
|
|
+ public int LifeTime { get; set; }
|
|
|
+ /// <summary>人数软上限</summary>
|
|
|
+ [ProtoMember(17)]
|
|
|
+ public int FullPlayers { get; set; }
|
|
|
+ /// <summary>人数硬上限</summary>
|
|
|
+ [ProtoMember(18)]
|
|
|
+ public int MaxPlayers { get; set; }
|
|
|
+ /// <summary>状态分界值</summary>
|
|
|
+ [ProtoMember(19)]
|
|
|
+ public int Boundary { get; set; }
|
|
|
+ /// <summary>需要等级</summary>
|
|
|
+ [ProtoMember(20)]
|
|
|
+ public int ReqLevel { get; set; }
|
|
|
+ /// <summary>限制等级</summary>
|
|
|
+ [ProtoMember(21)]
|
|
|
+ public int Levellimit { get; set; }
|
|
|
+ /// <summary>需要VIP等级</summary>
|
|
|
+ [ProtoMember(22)]
|
|
|
+ public string ReqVip { get; set; }
|
|
|
+ /// <summary>需要任务ID</summary>
|
|
|
+ [ProtoMember(23)]
|
|
|
+ public int ReqQuestId { get; set; }
|
|
|
+ /// <summary>可进入阵营</summary>
|
|
|
+ [ProtoMember(24)]
|
|
|
+ public int AllowedRace { get; set; }
|
|
|
+ /// <summary>状态条件</summary>
|
|
|
+ [ProtoMember(25)]
|
|
|
+ public string ReqState { get; set; }
|
|
|
+ /// <summary>状态值</summary>
|
|
|
+ [ProtoMember(26)]
|
|
|
+ public int StateValue { get; set; }
|
|
|
+ /// <summary>开放策略</summary>
|
|
|
+ [ProtoMember(27)]
|
|
|
+ public int OpenRule { get; set; }
|
|
|
+ /// <summary>开放日</summary>
|
|
|
+ [ProtoMember(28)]
|
|
|
+ public string OpenDate { get; set; }
|
|
|
+ /// <summary>开始时间</summary>
|
|
|
+ [ProtoMember(29)]
|
|
|
+ public string BeginTime { get; set; }
|
|
|
+ /// <summary>结束时间</summary>
|
|
|
+ [ProtoMember(30)]
|
|
|
+ public string EndTime { get; set; }
|
|
|
+ /// <summary>关闭时强制传送到地图ID</summary>
|
|
|
+ [ProtoMember(31)]
|
|
|
+ public int ClosedToMapID { get; set; }
|
|
|
+ /// <summary>进入是否扣除队员物品</summary>
|
|
|
+ [ProtoMember(32)]
|
|
|
+ public int ReqNotOnlyLeader { get; set; }
|
|
|
+ /// <summary>进入需要物品Code</summary>
|
|
|
+ [ProtoMember(33)]
|
|
|
+ public string ReqItemCode { get; set; }
|
|
|
+ /// <summary>进入需要物品数量</summary>
|
|
|
+ [ProtoMember(34)]
|
|
|
+ public int ReqItemCount { get; set; }
|
|
|
+ /// <summary>进入后扣除物品数量</summary>
|
|
|
+ [ProtoMember(35)]
|
|
|
+ public int ReduceItemCount { get; set; }
|
|
|
+ /// <summary>是否可以传送</summary>
|
|
|
+ [ProtoMember(36)]
|
|
|
+ public int AllowedTransfer { get; set; }
|
|
|
+ /// <summary>传送消耗道具</summary>
|
|
|
+ [ProtoMember(37)]
|
|
|
+ public string CostItem { get; set; }
|
|
|
+ /// <summary>传送消耗道具数量</summary>
|
|
|
+ [ProtoMember(38)]
|
|
|
+ public int CostItemNum { get; set; }
|
|
|
+ /// <summary>扣除金币</summary>
|
|
|
+ [ProtoMember(39)]
|
|
|
+ public int CostGold { get; set; }
|
|
|
+ /// <summary>随机宝箱出现概率</summary>
|
|
|
+ [ProtoMember(40)]
|
|
|
+ public int RandChestChance { get; set; }
|
|
|
+ /// <summary>随机宝箱最大数量</summary>
|
|
|
+ [ProtoMember(41)]
|
|
|
+ public int MaxRandChest { get; set; }
|
|
|
+ /// <summary>随机宝箱TC</summary>
|
|
|
+ [ProtoMember(42)]
|
|
|
+ public string RandChestTC { get; set; }
|
|
|
+ /// <summary>场景小地图</summary>
|
|
|
+ [ProtoMember(43)]
|
|
|
+ public string SceneSmallMap { get; set; }
|
|
|
+ /// <summary>地图描述</summary>
|
|
|
+ [ProtoMember(45)]
|
|
|
+ public string MapDesc { get; set; }
|
|
|
+ /// <summary>场景传送</summary>
|
|
|
+ [ProtoMember(46)]
|
|
|
+ public string Connect { get; set; }
|
|
|
+ /// <summary>是否允许改变分配方式</summary>
|
|
|
+ [ProtoMember(47)]
|
|
|
+ public int IsChange { get; set; }
|
|
|
+ /// <summary>默认分配模式</summary>
|
|
|
+ [ProtoMember(48)]
|
|
|
+ public int Distribution { get; set; }
|
|
|
+ /// <summary>能否自动战斗</summary>
|
|
|
+ [ProtoMember(49)]
|
|
|
+ public int AutoFight { get; set; }
|
|
|
+ /// <summary>能否吃药剂</summary>
|
|
|
+ [ProtoMember(50)]
|
|
|
+ public int UseAgent { get; set; }
|
|
|
+ /// <summary>能否使用坐骑</summary>
|
|
|
+ [ProtoMember(51)]
|
|
|
+ public int RideMount { get; set; }
|
|
|
+ /// <summary>能否携带宠物</summary>
|
|
|
+ [ProtoMember(52)]
|
|
|
+ public int TakePet { get; set; }
|
|
|
+ /// <summary>是否重置状态</summary>
|
|
|
+ [ProtoMember(53)]
|
|
|
+ public int Recovery { get; set; }
|
|
|
+ /// <summary>BOSS列表显示</summary>
|
|
|
+ [ProtoMember(54)]
|
|
|
+ public int BossInfoShow { get; set; }
|
|
|
+ /// <summary>连杀时间间隔-毫秒</summary>
|
|
|
+ [ProtoMember(55)]
|
|
|
+ public int killInterval { get; set; }
|
|
|
+ /// <summary>连杀满值重置</summary>
|
|
|
+ [ProtoMember(56)]
|
|
|
+ public int killFullNum { get; set; }
|
|
|
+ /// <summary>连杀满值冷却-秒</summary>
|
|
|
+ [ProtoMember(57)]
|
|
|
+ public int killFullCollSec { get; set; }
|
|
|
+ /// <summary>灵气点采集修为值</summary>
|
|
|
+ [ProtoMember(58)]
|
|
|
+ public int Cultivation { get; set; }
|
|
|
+ /// <summary>地图是否有迷雾</summary>
|
|
|
+ [ProtoMember(59)]
|
|
|
+ public int IsFog { get; set; }
|
|
|
+ /// <summary>副本通关时长</summary>
|
|
|
+ [ProtoMember(60)]
|
|
|
+ public int GameTime { get; set; }
|
|
|
+ /// <summary>能否进行召唤</summary>
|
|
|
+ [ProtoMember(61)]
|
|
|
+ public int IsCall { get; set; }
|
|
|
+ /// <summary>能否响应召唤</summary>
|
|
|
+ [ProtoMember(62)]
|
|
|
+ public int IsCanBeCall { get; set; }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|