Beispiel #1
0
    void ChangePetBody(uint suitID, uint petID)
    {
        PetDataManager pm = DataManager.Manager <PetDataManager>();

        if (pm != null)
        {
            //if (pm.CurFightingPet != 0)
            {
                IEntitySystem es = ClientGlobal.Instance().GetEntitySystem();
                if (es != null)
                {
                    INPC npc = es.FindNPC(petID);
                    if (npc != null)
                    {
                        if (suitID != 0)
                        {
                            SuitDataBase sdb = GameTableManager.Instance.GetTableItem <SuitDataBase>(suitID, 1);
                            if (sdb != null)
                            {
                                Client.ChangeBody cb = new Client.ChangeBody();
                                cb.resId      = (int)sdb.resid;
                                cb.modleScale = sdb.sceneModleScale;
                                npc.SendMessage(EntityMessage.EntityCommand_Change, cb);
                            }
                        }
                        else
                        {
                            npc.SendMessage(EntityMessage.EntityCommand_Restore);
                        }
                    }
                }
            }
        }
    }
Beispiel #2
0
 public override void Initialize(Bot Bot)
 {
     mSelfBot                = Bot;
     mCurrentAction          = PetBotAction.Idle;
     mActionStartedTimestamp = UnixTimestamp.GetCurrent();
     mPossibleTricks         = PetDataManager.GetTricksForType(Bot.PetData.Type);
 }
Beispiel #3
0
    void InitLineupData()
    {
        PetDataManager pm = DataManager.Manager <PetDataManager>();

        if (m_trans_petquicklisting != null)
        {
            Transform gridTrans = m_trans_petquicklisting.Find("grid");
            for (int i = 0; i < gridTrans.childCount; i++)
            {
                Transform         item = gridTrans.GetChild(i);
                PetLineUPItemInfo info = item.GetComponent <PetLineUPItemInfo>();
                if (info == null)
                {
                    info = item.gameObject.AddComponent <PetLineUPItemInfo>();
                }
                if (i < pm.PetQuickList.Count)
                {
                    info.InitLineUpItem(pm.PetQuickList[i]);
                }
                else
                {
                    info.InitLineUpItem(0);
                }
            }
        }
    }
Beispiel #4
0
    /// <summary>
    /// 设置宠物技能
    /// </summary>
    void SetPetSkill()
    {
        LearnSkillDataManager data = DataManager.Manager <LearnSkillDataManager>();

        gameObject.SetActive(data.bShowPetSkill);

        PetDataManager petData = DataManager.Manager <PetDataManager>();

        if (petData != null)
        {
            IPet pet = petData.GetPetByThisID(petData.CurFightingPet);
            if (pet != null)
            {
                List <PetSkillObj> list = pet.GetPetSkillList();
                if (list.Count == 0)
                {
                    skillIcon.mainTexture = null;
                    SetLongPressEvent(false);
                    ShowAdd(true);
                    return;
                }


                for (int i = 0; i < list.Count; i++)
                {
                    var           skill   = list[i];
                    uint          skillID = (uint)skill.id;
                    SkillDatabase db      = GameTableManager.Instance.GetTableItem <SkillDatabase>(skillID, skill.lv);
                    if (db != null)
                    {
                        if (db.petType == (int)PetSkillType.Initiative)
                        {
                            m_skillid = skillID;
                            UIManager.GetTextureAsyn(DataManager.Manager <UIManager>().GetResIDByFileName(false, db.iconPath, true), ref iuiIconAtlas, () =>
                            {
                                if (null != skillIcon)
                                {
                                    skillIcon.mainTexture = null;
                                }
                            }, skillIcon, false);
                            ShowAdd(false);
                            SetLongPressEvent(true);
                            break;
                        }
                        else
                        {
                            SetLongPressEvent(false);
                            ShowAdd(true);
                            skillIcon.mainTexture = null;
                        }
                    }
                }
            }
        }
        if (data.bShowPetSkill)
        {
            RunCD();
        }
    }
Beispiel #5
0
    private void UpdatePetFragments()
    {
        if (null == _db)
        {
            return;
        }
        int    itemCount = DataManager.Manager <ItemManager>().GetItemNumByBaseId(_db.fragmentID);
        uint   needNum   = _db.fragmentNum;
        string str       = itemCount + "/" + needNum;

        if (itemCount >= needNum)
        {
            str = StringUtil.GetNumNeedString(itemCount, needNum);
            m_label_Percent.color = Color.green;
        }
        else
        {
            m_label_Percent.color = Color.white;
        }
        float scale = itemCount * 1.0f / needNum;

        m_label_Percent.text = str;

        bool visible = (itemCount >= needNum);

        if (null != m_sprite_useable_mark && m_sprite_useable_mark.gameObject.activeSelf != visible)
        {
            m_sprite_useable_mark.gameObject.SetActive(visible);
        }
        m_slider_suipian_slider.value = scale;

        PetDataManager          dm     = DataManager.Manager <PetDataManager>();
        Dictionary <uint, IPet> petDic = dm.GetPetDic();

        bCotain = false;
        var iter = petDic.GetEnumerator();

        while (iter.MoveNext())
        {
            var pet = iter.Current;
            if (pet.Value.PetBaseID == _db.petID)
            {
                bCotain = true;
                break;
            }
        }

        if (dm.HasPossessPetList.Contains(_db.petID))
        {
            bCotain = true;
        }

        visible = !bCotain && (itemCount < needNum);
        if (null != m_sprite_nohave && m_sprite_nohave.gameObject.activeSelf != visible)
        {
            m_sprite_nohave.gameObject.SetActive(visible);
        }
    }
Beispiel #6
0
    public bool NpcIsMyPet(IEntity npc)
    {
        PetDataManager petData = DataManager.Manager <PetDataManager>();

        if (petData != null)
        {
            return(petData.NpcIsPet(npc.GetID()));
        }
        return(false);
    }
Beispiel #7
0
    public uint GetMyPetNpcID()
    {
        PetDataManager petData = DataManager.Manager <PetDataManager>();

        if (petData != null)
        {
            return(petData.GetNpcIDByPetID(petData.CurFightingPet));
        }
        return(0);
    }
Beispiel #8
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="baseID">等于0时为第一次初始化</param>
    /// <returns></returns>
    int GetPetResID(int baseID = 0)
    {
        int resID = 0;
        List <SuitDataBase> petList = GetPetSuitData();
        SuitDataBase        petData = null;

        if (baseID == 0)
        {
            if (petList.Count == 0)
            {
                return(resID);
            }

            petData = petList[0];
            PetDataManager pm = DataManager.Manager <PetDataManager>();
            if (pm != null)
            {
                if (pm.CurFightingPet != 0)
                {
                    IPet pet = pm.GetPetByThisID(pm.CurFightingPet);
                    if (pet != null)
                    {
                        uint        petBaseID = pet.PetBaseID;
                        PetDataBase db        = GameTableManager.Instance.GetTableItem <PetDataBase>(petBaseID);
                        if (db != null)
                        {
                            resID = (int)db.modelID;
                        }
                    }
                }
                else
                {
                    resID = (int)petData.resid;
                }
            }
        }
        else
        {
            for (int i = 0; i < petList.Count; i++)
            {
                if (baseID == petList[i].base_id)
                {
                    petData = petList[i];
                    break;
                }
            }
            if (petData == null)
            {
                return(resID);
            }

            resID = (int)petData.resid;
        }
        return(resID);
    }
Beispiel #9
0
    public void OnAllPetData(stUserDataPetUserCmd_S cmd)
    {
        PetUserData    userData = cmd.data;
        PetDataManager pm       = DataManager.Manager <PetDataManager>();

        pm.maxPetNum = userData.max_pet;
        for (int i = 0; i < userData.pet_list.Count; ++i)
        {
            AddPet(userData.pet_list[i]);
        }
        pm.HasPossessPetList = userData.pet_atlas;

        pm.SetQuickList(cmd.data.quick_list);
        pm.OnFirstForceFightPetUser(userData.first_force_fight);
    }
Beispiel #10
0
 void InitControls()
 {
     if (!bInit)
     {
         petLevel = transform.Find("petlevel").GetComponent <UILabel>();
         petName  = transform.Find("petshowname").GetComponent <UILabel>();
         typeName = transform.Find("PetType/typeName").GetComponent <UILabel>();
         // fightLabel = transform.Find( "fighting/Label" ).GetComponent<UILabel>();
         petModeTrans = transform.Find("PetModel");
         UIEventListener.Get(petModeTrans.gameObject).onClick = OnPlayAudio;
         m__CharacterRenderTexture = petModeTrans.GetComponent <UITexture>();
         petDataManager            = DataManager.Manager <PetDataManager>();
         bInit = true;
     }
 }
Beispiel #11
0
    void onClick_Gaiming_queding_Btn(GameObject caster)
    {
        petname = m_input_input.value;
        petname = petname.Replace(" ", "");
        petname = DataManager.Manager <TextManager>().ReplaceSensitiveWord(petname, TextManager.MatchType.Max);
        stChangeNamePetUserCmd_CS cmd = new stChangeNamePetUserCmd_CS();
        PetDataManager            dm  = DataManager.Manager <PetDataManager>();

        if (dm.CurPet != null)
        {
            cmd.id   = dm.CurPet.GetID();
            cmd.name = petname;
            NetService.Instance.Send(cmd);
        }
        HideSelf();
    }
Beispiel #12
0
        private static void GetPetData(Session Session, ClientMessage Message)
        {
            CatalogItem PetItem  = null;
            string      ItemName = Message.PopString();

            if (mCatalogItemsNameIndex.ContainsKey(ItemName))
            {
                PetItem = mCatalogItemsNameIndex[ItemName];
            }

            if (PetItem == null || PetItem.Definition.Behavior != ItemBehavior.Pet)
            {
                return;
            }

            int PetType = PetItem.Definition.BehaviorData;

            Session.SendData(CatalogPetDataComposer.Compose(PetItem, PetDataManager.GetRaceDataForType(PetType), PetType));
        }
Beispiel #13
0
    void Awake()
    {
        petDataManager = DataManager.Manager <PetDataManager>();
        UISlider liliangslider = transform.Find("liliangslider").GetComponent <UISlider>();

        sliderDic.Add(PetProp.StrengthTalent.ToString(), liliangslider);
        UISlider tilislider = transform.Find("tilislider").GetComponent <UISlider>();

        sliderDic.Add(PetProp.CorporeityTalent.ToString(), tilislider);
        UISlider zhilislider = transform.Find("zhilislider").GetComponent <UISlider>();

        sliderDic.Add(PetProp.IntelligenceTalent.ToString(), zhilislider);
        UISlider jingshenslider = transform.Find("jingshenslider").GetComponent <UISlider>();

        sliderDic.Add(PetProp.SpiritTalent.ToString(), jingshenslider);
        UISlider minjieslider = transform.Find("minjieslider").GetComponent <UISlider>();

        sliderDic.Add(PetProp.AgilityTalent.ToString(), minjieslider);
    }
Beispiel #14
0
        public static void Main(string[] args)
        {
            mAlive = true;
            DateTime InitStart = DateTime.Now;

            // Set up basic output
            Console.WriteLine("Initializing Snowlight..."); // Cannot be localized before config+lang is loaded

            // Load configuration, translation, and re-configure output from config data
            ConfigManager.Initialize(Constants.DataFileDirectory + "server-main.cfg");
            Output.InitializeStream(true, (OutputLevel)ConfigManager.GetValue("output.verbositylevel"));
            Output.WriteLine("Initializing Snowlight...");

            Localization.Initialize(Constants.LangFileDirectory + "lang_" + ConfigManager.GetValue("lang") + ".lang");

            // Process args
            foreach (string arg in args)
            {
                Output.WriteLine(Localization.GetValue("core.init.cmdarg", arg));
                Input.ProcessInput(arg.Split(' '));
            }

            try
            {
                // Initialize and test database
                Output.WriteLine(Localization.GetValue("core.init.mysql"));
                SqlDatabaseManager.Initialize();

                // Initialize network components
                Output.WriteLine(Localization.GetValue("core.init.net", ConfigManager.GetValue("net.bind.port").ToString()));
                mServer = new SnowTcpListener(new IPEndPoint((IPAddress)ConfigManager.GetValue("net.bind.ip"), (int)ConfigManager.GetValue("net.bind.port")),
                                              (int)ConfigManager.GetValue("net.backlog"), new OnNewConnectionCallback(
                                                  SessionManager.HandleIncomingConnection));

                Output.WriteLine(Localization.GetValue("core.init.net", ConfigManager.GetValue("net.cmd.bind.port").ToString()));
                musServer = new SnowTcpListener(new IPEndPoint((IPAddress)ConfigManager.GetValue("net.cmd.bind.ip"), (int)ConfigManager.GetValue("net.cmd.bind.port")),
                                                (int)ConfigManager.GetValue("net.backlog"), new OnNewConnectionCallback(
                                                    CommandListener.parse));

                using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient())
                {
                    Output.WriteLine(Localization.GetValue("core.init.dbcleanup"));
                    PerformDatabaseCleanup(MySqlClient);

                    Output.WriteLine(Localization.GetValue("core.init.game"));

                    // Core
                    DataRouter.Initialize();

                    // Sessions, characters
                    Handshake.Initialize();
                    GlobalHandler.Initialize();
                    SessionManager.Initialize();
                    CharacterInfoLoader.Initialize();
                    RightsManager.Initialize(MySqlClient);
                    SingleSignOnAuthenticator.Initialize();

                    // Room management and navigator
                    RoomManager.Initialize(MySqlClient);
                    RoomInfoLoader.Initialize();
                    RoomHandler.Initialize();
                    RoomItemHandler.Initialize();
                    Navigator.Initialize(MySqlClient);

                    // Help and moderation
                    HelpTool.Initialize(MySqlClient);
                    ModerationPresets.Initialize(MySqlClient);
                    ModerationTicketManager.Initialize(MySqlClient);
                    ModerationHandler.Initialize();
                    ModerationBanManager.Initialize(MySqlClient);

                    // Catalog, pets and items
                    ItemDefinitionManager.Initialize(MySqlClient);
                    CatalogManager.Initialize(MySqlClient);
                    CatalogPurchaseHandler.Initialize();
                    Inventory.Initialize();
                    ItemEventDispatcher.Initialize();
                    PetDataManager.Initialize(MySqlClient);

                    // Messenger
                    MessengerHandler.Initialize();

                    // Achievements and quests
                    AchievementManager.Initialize(MySqlClient);
                    QuestManager.Initialize(MySqlClient);

                    // Misc/extras
                    CrossdomainPolicy.Initialize("Data\\crossdomain.xml");
                    InfobusManager.Initialize();
                    ActivityPointsWorker.Initialize();
                    BotManager.Initialize(MySqlClient);
                    InterstitialManager.Initialize(MySqlClient);
                    ChatEmotions.Initialize();
                    EffectsCacheWorker.Initialize();
                    RecyclerManager.Initialize(MySqlClient);
                    DrinkSetManager.Initialize(MySqlClient);
                    SongManager.Initialize();
                    TradeHandler.Initialize();
                    RandomGenerator.Initialize();
                    StatisticsSyncUtil.Initialize();
                    Wordfilter.Initialize(MySqlClient);

                    // Polish
                    WarningSurpressors.Initialize();
                }
            }
            catch (Exception e)
            {
                HandleFatalError(Localization.GetValue("core.init.error.details", new string[] { e.Message, e.StackTrace }));
                return;
            }

            // Init complete
            TimeSpan TimeSpent = DateTime.Now - InitStart;

            Output.WriteLine(Localization.GetValue("core.init.ok", Math.Round(TimeSpent.TotalSeconds, 2).ToString()), OutputLevel.Notification);
            Output.WriteLine((string)Localization.GetValue("core.init.ok.cmdinfo"), OutputLevel.Notification);

            Console.Write("$" + Environment.UserName.ToLower() + "@snowlight> ");
            Console.Beep();
            Input.Listen(); // This will make the main thread process console while Program.Alive.
        }
        public static void HandlePurchase(SqlDatabaseClient MySqlClient, Session Session, CatalogItem Item, string ItemFlags)
        {
            lock (mPurchaseSyncRoot)
            {
                string Color           = "ffffff";
                int    TotalCreditCost = Item.CostCredits;
                int    TotalApCost     = Item.CostActivityPoints;

                if (Session.CharacterInfo.CreditsBalance < TotalCreditCost || Session.CharacterInfo.ActivityPointsBalance
                    < TotalApCost)
                {
                    return;
                }

                string[] PetData = null;

                if (Item.PresetFlags.Length > 0)
                {
                    ItemFlags = Item.PresetFlags;
                }
                else
                {
                    switch (Item.Definition.Behavior)
                    {
                    case ItemBehavior.Pet:

                        PetData = ItemFlags.Split('\n');
                        if (PetData.Length != 3)
                        {
                            return;
                        }

                        string Name = PetData[0];
                        Color = PetData[2];

                        int Race = 0;
                        int.TryParse(PetData[1], out Race);

                        bool RaceOk = false;

                        List <PetRaceData> Races = PetDataManager.GetRaceDataForType(Item.Definition.BehaviorData);

                        foreach (PetRaceData RaceData in Races)
                        {
                            if (RaceData.Data1 == Race)
                            {
                                RaceOk = true;
                                break;
                            }
                        }

                        /// if (PetName.VerifyPetName(Name) != PetNameError.NameOk || Color.ToLower() != "ffffff" || !RaceOk)
                        if (PetName.VerifyPetName(Name) != PetNameError.NameOk || !RaceOk)     // WHY COLOR???
                        {
                            return;
                        }

                        break;

                    case ItemBehavior.PrizeTrophy:

                        if (ItemFlags.Length > 255)
                        {
                            ItemFlags = ItemFlags.Substring(0, 255);
                        }

                        ItemFlags = Session.CharacterInfo.Username + Convert.ToChar(9) + DateTime.Now.Day + "-" +
                                    DateTime.Now.Month + "-" + DateTime.Now.Year + Convert.ToChar(9) +
                                    UserInputFilter.FilterString(ItemFlags.Trim(), true);
                        break;

                    default:

                        ItemFlags = string.Empty;
                        break;
                    }
                }

                if (TotalCreditCost > 0)
                {
                    Session.CharacterInfo.UpdateCreditsBalance(MySqlClient, -TotalCreditCost);
                    Session.SendData(CreditsBalanceComposer.Compose(Session.CharacterInfo.CreditsBalance));
                }

                if (TotalApCost > 0)
                {
                    Session.CharacterInfo.UpdateActivityPointsBalance(MySqlClient, -TotalApCost);
                    Session.SendData(ActivityPointsBalanceComposer.Compose(Session.CharacterInfo.ActivityPointsBalance, -TotalApCost));
                }

                Dictionary <int, List <uint> > NewItems = new Dictionary <int, List <uint> >();

                for (int i = 0; i < Item.Amount; i++)
                {
                    switch (Item.Definition.Type)
                    {
                    default:

                        List <Item> GeneratedGenericItems = new List <Item>();
                        double      ExpireTimestamp       = 0;

                        if (Item.Definition.Behavior == ItemBehavior.Rental)
                        {
                            ExpireTimestamp = UnixTimestamp.GetCurrent() + 3600;
                        }

                        GeneratedGenericItems.Add(ItemFactory.CreateItem(MySqlClient, Item.DefinitionId,
                                                                         Session.CharacterId, ItemFlags, ItemFlags, ExpireTimestamp));

                        switch (Item.Definition.Behavior)
                        {
                        case ItemBehavior.Teleporter:

                            Item LinkedItem = ItemFactory.CreateItem(MySqlClient, Item.DefinitionId,
                                                                     Session.CharacterId, GeneratedGenericItems[0].Id.ToString(), string.Empty,
                                                                     ExpireTimestamp);

                            GeneratedGenericItems[0].Flags = LinkedItem.Id.ToString();
                            GeneratedGenericItems[0].SynchronizeDatabase(MySqlClient, true);

                            GeneratedGenericItems.Add(LinkedItem);
                            break;
                        }

                        foreach (Item GeneratedItem in GeneratedGenericItems)
                        {
                            Session.InventoryCache.Add(GeneratedItem);

                            int TabId = GeneratedItem.Definition.Type == ItemType.FloorItem ? 1 : 2;

                            if (!NewItems.ContainsKey(TabId))
                            {
                                NewItems.Add(TabId, new List <uint>());
                            }

                            NewItems[TabId].Add(GeneratedItem.Id);
                        }

                        break;

                    case ItemType.AvatarEffect:

                        AvatarEffect Effect = null;

                        if (Session.AvatarEffectCache.HasEffect((int)Item.Definition.SpriteId))
                        {
                            Effect = Session.AvatarEffectCache.GetEffect((int)Item.Definition.SpriteId);

                            if (Effect != null)
                            {
                                Effect.AddToQuantity();
                            }
                        }
                        else
                        {
                            Effect = AvatarEffectFactory.CreateEffect(MySqlClient, Session.CharacterId, (int)Item.Definition.SpriteId, 3600);
                            Session.AvatarEffectCache.Add(Effect);
                        }

                        if (Effect != null)
                        {
                            Session.SendData(UserEffectAddedComposer.Compose(Effect));
                        }

                        break;

                    case ItemType.Pet:

                        Pet Pet = PetFactory.CreatePet(MySqlClient, Session.CharacterId, Item.Definition.BehaviorData, PetData[0], int.Parse(PetData[1]), Color.ToLower());
                        Session.PetInventoryCache.Add(Pet);

                        Session.SendData(InventoryPetAddedComposer.Compose(Pet));

                        if (!NewItems.ContainsKey(3))
                        {
                            NewItems.Add(3, new List <uint>());
                        }

                        NewItems[3].Add(Pet.Id);

                        break;
                    }
                }

                Session.SendData(CatalogPurchaseResultComposer.Compose(Item));
                Session.SendData(InventoryRefreshComposer.Compose());

                foreach (KeyValuePair <int, List <uint> > NewItemData in NewItems)
                {
                    foreach (uint NewItem in NewItemData.Value)
                    {
                        Session.NewItemsCache.MarkNewItem(MySqlClient, NewItemData.Key, NewItem);
                    }
                }

                if (NewItems.Count > 0)
                {
                    Session.SendData(InventoryNewItemsComposer.Compose(new Dictionary <int, List <uint> >(NewItems)));
                }
            }
        }
Beispiel #16
0
        public static void Main(string[] args)
        {
            mAlive = true;
            DateTime InitStart = DateTime.Now;

            // Set up basic output, configuration, etc
            Output.InitializeStream(true, OutputLevel.DebugInformation);
            Output.WriteLine("Initializing Snowlight...");

            ConfigManager.Initialize(Constants.DataFileDirectory + "\\server-main.cfg");
            Output.SetVerbosityLevel((OutputLevel)ConfigManager.GetValue("output.verbositylevel"));

            // Load Lang
            LangManager.Initialize(Constants.LangFileDirectory + "\\lang_" + ConfigManager.GetValue("lang") + ".lang");

            // Process args
            foreach (string arg in args)
            {
                Output.WriteLine("Command line argument: " + arg);
                Input.ProcessInput(arg.Split(' '));
            }

            try
            {
                // Initialize and test database
                Output.WriteLine("Initializing MySQL manager...");
                SqlDatabaseManager.Initialize();

                // Initialize network components
                Output.WriteLine("Setting up server listener on port " + (int)ConfigManager.GetValue("net.bind.port") + "...");
                mServer = new SnowTcpListener(new IPEndPoint(IPAddress.Any, (int)ConfigManager.GetValue("net.bind.port")),
                                              (int)ConfigManager.GetValue("net.backlog"), new OnNewConnectionCallback(
                                                  SessionManager.HandleIncomingConnection));

                using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient())
                {
                    Output.WriteLine("Resetting database counters and statistics...");
                    PerformDatabaseCleanup(MySqlClient);

                    Output.WriteLine("Initializing game components and workers...");

                    // Core
                    DataRouter.Initialize();

                    // Sessions, characters
                    Handshake.Initialize();
                    GlobalHandler.Initialize();
                    SessionManager.Initialize();
                    CharacterInfoLoader.Initialize();
                    RightsManager.Initialize(MySqlClient);
                    SingleSignOnAuthenticator.Initialize();

                    // Room management and navigator
                    RoomManager.Initialize(MySqlClient);
                    RoomInfoLoader.Initialize();
                    RoomHandler.Initialize();
                    RoomItemHandler.Initialize();
                    Navigator.Initialize(MySqlClient);

                    // Help and moderation
                    HelpTool.Initialize(MySqlClient);
                    ModerationPresets.Initialize(MySqlClient);
                    ModerationTicketManager.Initialize(MySqlClient);
                    ModerationHandler.Initialize();
                    ModerationBanManager.Initialize(MySqlClient);

                    // Catalog, pets and items
                    ItemDefinitionManager.Initialize(MySqlClient);
                    CatalogManager.Initialize(MySqlClient);
                    CatalogPurchaseHandler.Initialize();
                    Inventory.Initialize();
                    ItemEventDispatcher.Initialize();
                    PetDataManager.Initialize(MySqlClient);

                    // Messenger
                    MessengerHandler.Initialize();

                    // Achievements and quests
                    AchievementManager.Initialize(MySqlClient);
                    QuestManager.Initialize(MySqlClient);

                    // Misc/extras
                    CrossdomainPolicy.Initialize("Data\\crossdomain.xml");
                    InfobusManager.Initialize();
                    ActivityPointsWorker.Initialize();
                    BotManager.Initialize(MySqlClient);
                    InterstitialManager.Initialize(MySqlClient);
                    ChatEmotions.Initialize();
                    EffectsCacheWorker.Initialize();
                    RecyclerManager.Initialize(MySqlClient);
                    DrinkSetManager.Initialize(MySqlClient);
                    SongManager.Initialize();
                    TradeHandler.Initialize();
                    RandomGenerator.Initialize();
                    StatisticsSyncUtil.Initialize();

                    // Polish
                    WarningSurpressors.Initialize();
                }
            }
            catch (Exception e)
            {
                HandleFatalError("Could not initialize Snowlight: " + e.Message + "\n" + e.StackTrace);
                return;
            }

            // Init complete
            TimeSpan TimeSpent = DateTime.Now - InitStart;

            Output.WriteLine("The server has initialized successfully (" + Math.Round(TimeSpent.TotalSeconds, 2) + " seconds). Ready for connections.", OutputLevel.Notification);
            Output.WriteLine((string)LangManager.GetValue("initialized.info.cmd"), OutputLevel.Notification);

            Console.Beep();
            Input.Listen(); // This will make the main thread process console while Program.Alive.
        }
Beispiel #17
0
    public void OnFirstForceFightPetUser(stFirstForceFightPetUserCmd_CS cmd)
    {
        PetDataManager pm = DataManager.Manager <PetDataManager>();

        pm.OnFirstForceFightPetUser(cmd.force_fight);
    }