コード例 #1
0
ファイル: MSManager.cs プロジェクト: Prosecutor/test
 public MSManager()
 {
     WorldServers           = new List <WorldServer>();
     LoginServers           = new List <IScsServiceClient>();
     ConnectedAccounts      = new ThreadSafeGenericList <AccountConnection>();
     AuthentificatedClients = new List <long>();
     ConfigurationObject    = new ConfigurationObject
     {
         RateXP            = int.Parse(ConfigurationManager.AppSettings["RateXp"]),
         RateHeroicXP      = int.Parse(ConfigurationManager.AppSettings["RateHeroicXp"]),
         RateDrop          = int.Parse(ConfigurationManager.AppSettings["RateDrop"]),
         MaxGold           = long.Parse(ConfigurationManager.AppSettings["MaxGold"]),
         RateGoldDrop      = int.Parse(ConfigurationManager.AppSettings["GoldRateDrop"]),
         RateGold          = int.Parse(ConfigurationManager.AppSettings["RateGold"]),
         RateFairyXP       = int.Parse(ConfigurationManager.AppSettings["RateFairyXp"]),
         MaxLevel          = byte.Parse(ConfigurationManager.AppSettings["MaxLevel"]),
         MaxJobLevel       = byte.Parse(ConfigurationManager.AppSettings["MaxJobLevel"]),
         MaxSPLevel        = byte.Parse(ConfigurationManager.AppSettings["MaxSPLevel"]),
         MaxHeroLevel      = byte.Parse(ConfigurationManager.AppSettings["MaxHeroLevel"]),
         HeroicStartLevel  = byte.Parse(ConfigurationManager.AppSettings["HeroicStartLevel"]),
         MaxUpgrade        = byte.Parse(ConfigurationManager.AppSettings["MaxUpgrade"]),
         SceneOnCreate     = bool.Parse(ConfigurationManager.AppSettings["SceneOnCreate"]),
         SessionLimit      = int.Parse(ConfigurationManager.AppSettings["SessionLimit"]),
         WorldInformation  = bool.Parse(ConfigurationManager.AppSettings["WorldInformation"]),
         Act4IP            = ConfigurationManager.AppSettings["Act4IP"],
         Act4Port          = int.Parse(ConfigurationManager.AppSettings["Act4Port"]),
         MallBaseURL       = ConfigurationManager.AppSettings["MallBaseURL"],
         MallAPIKey        = ConfigurationManager.AppSettings["MallAPIKey"],
         UseChatLogService = bool.Parse(ConfigurationManager.AppSettings["UseChatLogService"])
     };
 }
コード例 #2
0
 public MapInstance(Map map, Guid guid, bool shopAllowed, MapInstanceType type, InstanceBag instanceBag)
 {
     Buttons           = new List <MapButton>();
     XpRate            = 1;
     DropRate          = 1;
     InstanceMusic     = map.Music;
     ShopAllowed       = shopAllowed;
     MapInstanceType   = type;
     _isSleeping       = true;
     LastUserShopId    = 0;
     InstanceBag       = instanceBag;
     Clock             = new Clock(3);
     _random           = new Random();
     Map               = map;
     MapInstanceId     = guid;
     ScriptedInstances = new List <ScriptedInstance>();
     OnCharacterDiscoveringMapEvents = new List <Tuple <EventContainer, List <long> > >();
     OnMoveOnMapEvents = new ThreadSafeGenericList <EventContainer>();
     OnAreaEntryEvents = new ThreadSafeGenericList <ZoneEvent>();
     WaveEvents        = new List <EventWave>();
     OnMapClean        = new List <EventContainer>();
     _monsters         = new ThreadSafeSortedList <long, MapMonster>();
     _npcs             = new ThreadSafeSortedList <long, MapNpc>();
     _mapMonsterIds    = new ThreadSafeSortedList <int, int>();
     _mapNpcIds        = new ThreadSafeSortedList <int, int>();
     DroppedList       = new ThreadSafeSortedList <long, MapItem>();
     Portals           = new List <Portal>();
     UnlockEvents      = new List <EventContainer>();
     UserShops         = new Dictionary <long, MapShop>();
     StartLife();
 }
コード例 #3
0
 public Group(GroupType type)
 {
     Characters = new ThreadSafeGenericList <ClientSession>();
     GroupId    = ServerManager.Instance.GetNextGroupId();
     _order     = 0;
     GroupType  = type;
 }
コード例 #4
0
 public MSManager()
 {
     WorldServers           = new List <WorldServer>();
     LoginServers           = new List <IScsServiceClient>();
     ConnectedAccounts      = new ThreadSafeGenericList <AccountConnection>();
     AuthentificatedClients = new List <long>();
 }
コード例 #5
0
ファイル: MapInstance.cs プロジェクト: Akasasori/MoTale-dev
        public MapInstance(Map map, Guid guid, bool shopAllowed, MapInstanceType type, InstanceBag instanceBag, bool dropAllowed = false)
        {
            OnSpawnEvents = new List <EventContainer>();
            Buttons       = new List <MapButton>();
            XpRate        = 0;

            if (type == MapInstanceType.BaseMapInstance)
            {
                XpRate = map.XpRate;
            }
            //check here
            MinLevel = 1;
            MaxLevel = 99;

            if (type != MapInstanceType.TimeSpaceInstance && type != MapInstanceType.RaidInstance)
            {
                switch (map.MapId)
                {
                case 154:     // Caligor's Realm
                    MinLevel = 80;
                    break;

                case 228:     // Cylloan
                    MinLevel = 88;
                    break;
                }
            }

            DropRate          = 0;
            DropAllowed       = dropAllowed;
            InstanceMusic     = map.Music;
            ShopAllowed       = shopAllowed;
            MapInstanceType   = type;
            _isSleeping       = true;
            LastUserShopId    = 0;
            InstanceBag       = instanceBag;
            Clock             = new Clock(3);
            _random           = new Random();
            Map               = map;
            MapInstanceId     = guid;
            ScriptedInstances = new List <ScriptedInstance>();
            OnCharacterDiscoveringMapEvents = new List <Tuple <EventContainer, List <long> > >();
            OnMoveOnMapEvents = new ThreadSafeGenericList <EventContainer>();
            OnAreaEntryEvents = new ThreadSafeGenericList <ZoneEvent>();
            WaveEvents        = new List <EventWave>();
            OnMapClean        = new List <EventContainer>();
            _monsters         = new ThreadSafeSortedList <long, MapMonster>();
            _delayedMonsters  = new ThreadSafeSortedList <long, MapMonster>();
            _npcs             = new ThreadSafeSortedList <long, MapNpc>();
            _mapMonsterIds    = new ThreadSafeSortedList <int, int>();
            _mapNpcIds        = new ThreadSafeSortedList <int, int>();
            DroppedList       = new ThreadSafeSortedList <long, MapItem>();
            Portals           = new List <Portal>();
            UnlockEvents      = new List <EventContainer>();
            UserShops         = new Dictionary <long, MapShop>();
            RemovedMobNpcList = new List <object>();
            StartLife();
        }
コード例 #6
0
ファイル: MSManager.cs プロジェクト: Akasasori/MoTale-dev
 public MSManager()
 {
     WorldServers           = new List <WorldServer>();
     LoginServers           = new List <IScsServiceClient>();
     ConnectedAccounts      = new ThreadSafeGenericList <AccountConnection>();
     AuthentificatedClients = new ThreadSafeGenericLockedList <long>();
     ConfigurationObject    = new ConfigurationObject
     {
         RateXP              = int.Parse(ConfigurationManager.AppSettings["RateXp"]),
         RateHeroicXP        = int.Parse(ConfigurationManager.AppSettings["RateHeroicXp"]),
         RateDrop            = int.Parse(ConfigurationManager.AppSettings["RateDrop"]),
         MaxGold             = long.Parse(ConfigurationManager.AppSettings["MaxGold"]),
         RateGoldDrop        = int.Parse(ConfigurationManager.AppSettings["GoldRateDrop"]),
         RateGold            = int.Parse(ConfigurationManager.AppSettings["RateGold"]),
         RateReputation      = int.Parse(ConfigurationManager.AppSettings["RateReputation"]),
         RateFairyXP         = int.Parse(ConfigurationManager.AppSettings["RateFairyXp"]),
         PartnerSpXp         = long.Parse(ConfigurationManager.AppSettings["PartnerSpXp"]),
         MaxLevel            = byte.Parse(ConfigurationManager.AppSettings["MaxLevel"]),
         MaxJobLevel         = byte.Parse(ConfigurationManager.AppSettings["MaxJobLevel"]),
         MaxSPLevel          = byte.Parse(ConfigurationManager.AppSettings["MaxSPLevel"]),
         MaxHeroLevel        = byte.Parse(ConfigurationManager.AppSettings["MaxHeroLevel"]),
         HeroicStartLevel    = byte.Parse(ConfigurationManager.AppSettings["HeroicStartLevel"]),
         MaxUpgrade          = byte.Parse(ConfigurationManager.AppSettings["MaxUpgrade"]),
         SceneOnCreate       = bool.Parse(ConfigurationManager.AppSettings["SceneOnCreate"]),
         SessionLimit        = int.Parse(ConfigurationManager.AppSettings["SessionLimit"]),
         WorldInformation    = bool.Parse(ConfigurationManager.AppSettings["WorldInformation"]),
         IsAntiCheatEnabled  = bool.Parse(ConfigurationManager.AppSettings["IsAntiCheatEnabled"]),
         AntiCheatClientKey  = ConfigurationManager.AppSettings["AntiCheatClientKey"],
         AntiCheatServerKey  = ConfigurationManager.AppSettings["AntiCheatServerKey"],
         Act4IP              = ConfigurationManager.AppSettings["Act4IP"],
         Act4Port            = int.Parse(ConfigurationManager.AppSettings["Act4Port"]),
         MallBaseURL         = ConfigurationManager.AppSettings["MallBaseURL"],
         MallAPIKey          = ConfigurationManager.AppSettings["MallAPIKey"],
         UseLogService       = bool.Parse(ConfigurationManager.AppSettings["UseLogService"]),
         QuestDropRate       = int.Parse(ConfigurationManager.AppSettings["QuestDropRate"]),
         HalloweenEvent      = bool.Parse(ConfigurationManager.AppSettings["HalloweenEvent"]),
         ChristmasEvent      = bool.Parse(ConfigurationManager.AppSettings["ChristmasEvent"]),
         EasterEvent         = bool.Parse(ConfigurationManager.AppSettings["EasterEvent"]),
         LockSystem          = bool.Parse(ConfigurationManager.AppSettings["LockSystem"]),
         AutoLootEnable      = bool.Parse(ConfigurationManager.AppSettings["AutoLootEnable"]),
         BCardsInArenaTalent = bool.Parse(ConfigurationManager.AppSettings["BCardsInArenaTalent"]),
         Act4Rate            = int.Parse(ConfigurationManager.AppSettings["Act4Rate"]),
         SPJLvl              = int.Parse(ConfigurationManager.AppSettings["SPJLvl"]),
         DoubleXP            = bool.Parse(ConfigurationManager.AppSettings["DoubleXP"]),
         DoubleFairyXP       = bool.Parse(ConfigurationManager.AppSettings["DoubleFairyXP"]),
         DoubleRaidBox       = bool.Parse(ConfigurationManager.AppSettings["DoubleRaidBox"]),
         DoubleSpUp          = bool.Parse(ConfigurationManager.AppSettings["DoubleSpUp"]),
         DoubleEqUp          = bool.Parse(ConfigurationManager.AppSettings["DoubleEqUp"]),
         DoubleBet           = bool.Parse(ConfigurationManager.AppSettings["DoubleBet"]),
         DoublePerfectionUp  = bool.Parse(ConfigurationManager.AppSettings["DoublePerfectionUp"]),
         DoubleXPFamily      = bool.Parse(ConfigurationManager.AppSettings["DoubleXPFamily"]),
         DoubleGold          = bool.Parse(ConfigurationManager.AppSettings["DoubleGold"]),
         DoubleReput         = bool.Parse(ConfigurationManager.AppSettings["DoubleReput"]),
         DoubleDrop          = bool.Parse(ConfigurationManager.AppSettings["DoubleDrop"]),
         MultiEvent          = bool.Parse(ConfigurationManager.AppSettings["MultiEvent"])
     };
 }
コード例 #7
0
 public ChatLogManager()
 {
     _reader = new LogFileReader();
     AuthentificatedClients = new List <long>();
     ChatLogs    = new ThreadSafeGenericList <ChatLogEntry>();
     AllChatLogs = new ThreadSafeGenericList <ChatLogEntry>();
     RecursiveFileOpen("chatlogs");
     AuthentificationServiceClient.Instance.Authenticate(ConfigurationManager.AppSettings["AuthentificationServiceAuthKey"]);
     Observable.Interval(TimeSpan.FromMinutes(15)).Subscribe(observer => SaveChatLogs());
 }
コード例 #8
0
        public BattleEntity(IBattleEntity entity)
        {
            Entity                = entity;
            Session               = entity.GetSession();
            Buffs                 = new ConcurrentBag <Buff.Buff>();
            StaticBcards          = new ConcurrentBag <BCard>();
            SkillBcards           = new ConcurrentBag <BCard>();
            OnDeathEvents         = new ConcurrentBag <EventContainer>();
            OnHitEvents           = new ConcurrentBag <EventContainer>();
            ObservableBag         = new ConcurrentDictionary <short, IDisposable>();
            ShellOptionArmor      = new ConcurrentBag <EquipmentOptionDTO>();
            ShellOptionsMain      = new ConcurrentBag <EquipmentOptionDTO>();
            ShellOptionsSecondary = new ConcurrentBag <EquipmentOptionDTO>();
            CostumeHatBcards      = new ConcurrentBag <BCard>();
            CostumeSuitBcards     = new ConcurrentBag <BCard>();
            CostumeBcards         = new ConcurrentBag <BCard>();
            CellonOptions         = new ThreadSafeGenericList <EquipmentOptionDTO>();

            if (Session is Character character)
            {
                Level = character.Level;
                return;
            }

            NpcMonster npcMonster = Session is MapMonster mon ? mon.Monster
                : Session is MapNpc npc ? npc.Npc
                : Session is Mate mate ? mate.Monster
                : null;

            if (npcMonster == null)
            {
                return;
            }

            Level               = npcMonster.Level;
            Element             = npcMonster.Element;
            ElementRate         = npcMonster.ElementRate;
            FireResistance      = npcMonster.FireResistance;
            WaterResistance     = npcMonster.WaterResistance;
            LightResistance     = npcMonster.LightResistance;
            DarkResistance      = npcMonster.DarkResistance;
            DefenceRate         = npcMonster.DefenceDodge;
            DistanceDefenceRate = npcMonster.DistanceDefenceDodge;
            CloseDefence        = npcMonster.CloseDefence;
            RangedDefence       = npcMonster.DistanceDefence;
            MagicDefence        = npcMonster.MagicDefence;
            AttackUpgrade       = npcMonster.AttackUpgrade;
            CriticalChance      = npcMonster.CriticalChance;
            CriticalRate        = npcMonster.CriticalRate - 30;
            MinDamage           = npcMonster.DamageMinimum;
            MaxDamage           = npcMonster.DamageMaximum;
            HitRate             = npcMonster.Concentrate;
        }
コード例 #9
0
        public MsManager()
        {
            WorldServers           = new List <WorldServer>();
            LoginServers           = new List <IScsServiceClient>();
            ConnectedAccounts      = new ThreadSafeGenericList <AccountConnection>();
            AuthentificatedClients = new List <long>();
            ConfigurationObject    = new ConfigurationObject
            {
                RateXP            = int.Parse(ConfigurationManager.AppSettings["RateXp"]),
                RateHeroicXP      = int.Parse(ConfigurationManager.AppSettings["RateHeroicXp"]),
                RateDrop          = int.Parse(ConfigurationManager.AppSettings["RateDrop"]),
                MaxGold           = long.Parse(ConfigurationManager.AppSettings["MaxGold"]),
                RateGoldDrop      = int.Parse(ConfigurationManager.AppSettings["GoldRateDrop"]),
                RateGold          = int.Parse(ConfigurationManager.AppSettings["RateGold"]),
                RateFairyXP       = int.Parse(ConfigurationManager.AppSettings["RateFairyXp"]),
                MaxLevel          = byte.Parse(ConfigurationManager.AppSettings["MaxLevel"]),
                MaxJobLevel       = byte.Parse(ConfigurationManager.AppSettings["MaxJobLevel"]),
                MaxSpLevel        = byte.Parse(ConfigurationManager.AppSettings["MaxSPLevel"]),
                MaxHeroLevel      = byte.Parse(ConfigurationManager.AppSettings["MaxHeroLevel"]),
                HeroicStartLevel  = byte.Parse(ConfigurationManager.AppSettings["HeroicStartLevel"]),
                MaxUpgrade        = byte.Parse(ConfigurationManager.AppSettings["MaxUpgrade"]),
                SceneOnCreate     = bool.Parse(ConfigurationManager.AppSettings["SceneOnCreate"]),
                SessionLimit      = int.Parse(ConfigurationManager.AppSettings["SessionLimit"]),
                WorldInformation  = bool.Parse(ConfigurationManager.AppSettings["WorldInformation"]),
                Act4IP            = ConfigurationManager.AppSettings["Act4IP"],
                Act4Port          = int.Parse(ConfigurationManager.AppSettings["Act4Port"]),
                MallBaseUrl       = ConfigurationManager.AppSettings["MallBaseURL"],
                MallApiKey        = ConfigurationManager.AppSettings["MallAPIKey"],
                UseChatLogService = bool.Parse(ConfigurationManager.AppSettings["UseChatLogService"]),
                UseGameLogService = bool.Parse(ConfigurationManager.AppSettings["UseGameLogService"]),
                EnableAutoRestart = bool.Parse(ConfigurationManager.AppSettings["EnableAutoRestart"]),
                AutoRestartHour   = byte.Parse(ConfigurationManager.AppSettings["AutoRestartHour"])
            };

            if (ConfigurationObject.EnableAutoRestart)
            {
                Observable.Interval(TimeSpan.FromMinutes(1)).Subscribe(observer => AutoMaintenanceProcess());
            }
        }
コード例 #10
0
        public MapInstance(Map map, Guid guid, bool shopAllowed, MapInstanceType type, InstanceBag instanceBag, bool dropAllowed = false)
        {
            OnSpawnEvents = new List <EventContainer>();
            Buttons       = new List <MapButton>();
            XpRate        = 0;

            if (type == MapInstanceType.BaseMapInstance)
            {
                XpRate = map.XpRate;
            }

            MinLevel     = 1;
            MaxLevel     = 99;
            MinHeroLevel = 0;
            MaxHeroLevel = 100;

            if (type != MapInstanceType.TimeSpaceInstance && type != MapInstanceType.RaidInstance)
            {
                switch (map.MapId)
                {
                case 154:     // Caligor's Realm
                    MinLevel = 80;
                    break;

                case 170:     // Desert
                case 171:
                case 172:
                case 173:
                case 174:
                case 175:
                case 176:
                case 177:
                case 178:
                case 179:
                case 180:
                case 181:
                case 182:
                case 183:
                case 184:
                case 185:
                case 186:
                case 187:
                case 188:
                case 189:
                case 190:
                case 191:
                case 192:
                case 193:
                case 194:
                case 195:
                case 196:
                case 197:
                case 198:
                case 199:
                case 200:
                case 201:
                case 202:
                case 203:
                case 204:
                case 205:
                case 207:
                case 208:
                case 209:
                case 210:
                case 211:
                case 212:
                case 223:
                case 224:
                case 225:
                case 226:
                case 227:
                    MinLevel = 70;
                    break;

                case 228:     //Cylloan
                case 229:
                case 230:
                case 231:
                case 232:
                case 233:
                case 234:
                case 235:
                case 236:
                case 237:
                case 238:
                case 239:
                case 240:
                case 241:
                case 242:
                case 243:
                case 244:
                case 245:
                case 246:
                    MinLevel = 85;
                    break;

                case 2628:
                case 2629:
                case 2630:
                case 2631:
                case 2632:
                case 2633:
                case 2634:
                case 2635:
                case 2636:
                case 2637:
                case 2638:
                case 2639:
                case 2640:
                case 2641:
                case 2642:
                case 2643:
                case 2644:
                case 2645:
                case 2646:
                case 2647:
                case 2648:
                case 2649:
                case 2650:
                    MinLevel     = 88;
                    MinHeroLevel = 10;
                    break;
                }
            }

            DropRate          = 0;
            DropAllowed       = dropAllowed;
            InstanceMusic     = map.Music;
            ShopAllowed       = shopAllowed;
            MapInstanceType   = type;
            _isSleeping       = true;
            LastUserShopId    = 0;
            InstanceBag       = instanceBag;
            Clock             = new Clock(3);
            _random           = new Random();
            Map               = map;
            MapInstanceId     = guid;
            ScriptedInstances = new List <ScriptedInstance>();
            OnCharacterDiscoveringMapEvents = new List <Tuple <EventContainer, List <long> > >();
            OnMoveOnMapEvents = new ThreadSafeGenericList <EventContainer>();
            OnAreaEntryEvents = new ThreadSafeGenericList <ZoneEvent>();
            WaveEvents        = new List <EventWave>();
            OnMapClean        = new List <EventContainer>();
            _monsters         = new ThreadSafeSortedList <long, MapMonster>();
            _delayedMonsters  = new ThreadSafeSortedList <long, MapMonster>();
            _npcs             = new ThreadSafeSortedList <long, MapNpc>();
            _mapMonsterIds    = new ThreadSafeSortedList <int, int>();
            _mapNpcIds        = new ThreadSafeSortedList <int, int>();
            DroppedList       = new ThreadSafeSortedList <long, MapItem>();
            Portals           = new List <Portal>();
            UnlockEvents      = new List <EventContainer>();
            UserShops         = new Dictionary <long, MapShop>();
            RemovedMobNpcList = new List <object>();
            StartLife();
        }
コード例 #11
0
ファイル: Group.cs プロジェクト: tolgatr61/nostormv2
 public Group()
 {
     Sessions = new ThreadSafeGenericList <ClientSession>();
     GroupId  = ServerManager.Instance.GetNextGroupId();
     _order   = 0;
 }