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); } } } } } }
public override void Initialize(Bot Bot) { mSelfBot = Bot; mCurrentAction = PetBotAction.Idle; mActionStartedTimestamp = UnixTimestamp.GetCurrent(); mPossibleTricks = PetDataManager.GetTricksForType(Bot.PetData.Type); }
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); } } } }
/// <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(); } }
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); } }
public bool NpcIsMyPet(IEntity npc) { PetDataManager petData = DataManager.Manager <PetDataManager>(); if (petData != null) { return(petData.NpcIsPet(npc.GetID())); } return(false); }
public uint GetMyPetNpcID() { PetDataManager petData = DataManager.Manager <PetDataManager>(); if (petData != null) { return(petData.GetNpcIDByPetID(petData.CurFightingPet)); } return(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); }
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); }
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; } }
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(); }
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)); }
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); }
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))); } } }
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. }
public void OnFirstForceFightPetUser(stFirstForceFightPetUserCmd_CS cmd) { PetDataManager pm = DataManager.Manager <PetDataManager>(); pm.OnFirstForceFightPetUser(cmd.force_fight); }