public void HandleGameRoomCreate(GSPacketIn pkg) { int roomId = pkg.ReadInt(); int gameType = pkg.ReadInt(); int count = pkg.ReadInt(); IGamePlayer[] players = new IGamePlayer[count]; for (int i = 0; i < count; i++) { PlayerInfo info = new PlayerInfo(); info.ID = pkg.ReadInt(); info.Attack = pkg.ReadInt(); info.Defence = pkg.ReadInt(); info.Agility = pkg.ReadInt(); info.Luck = pkg.ReadInt(); double baseAttack = pkg.ReadDouble(); double baseDefence = pkg.ReadDouble(); double baseAgility = pkg.ReadDouble(); double baseBlood = pkg.ReadDouble(); int templateId = pkg.ReadInt(); ItemTemplateInfo itemTemplate = ItemMgr.FindItemTemplate(templateId); ItemInfo item = new ItemInfo(itemTemplate); players[i] = new ProxyPlayer(info, item, baseAttack, baseDefence, baseAgility, baseBlood); } ProxyRoomMgr.CreateRoom(players, roomId, this); }
/// <summary>Loads the quest templates.</summary> /// <returns></returns> public static bool LoadAll() { if (!QuestMgr.Loaded) { QuestMgr.Templates = new QuestTemplate[30000]; ContentMgr.Load <QuestTemplate>(); ContentMgr.Load <QuestPOI>(); ContentMgr.Load <QuestPOIPoints>(); QuestMgr.CreateQuestRelationGraph(); QuestMgr.EnsureCharacterQuestsLoaded(); QuestMgr.AddSpellCastObjectives(); if (ItemMgr.Loaded) { ItemMgr.EnsureItemQuestRelations(); } foreach (QuestTemplate template1 in QuestMgr.Templates) { if (template1 != null) { ItemTemplate template2 = ItemMgr.GetTemplate(template1.SrcItemId); if (template2 != null && template1.SrcItemId != (Asda2ItemId)0 && !template1.Starters.Contains((IQuestHolderEntry)template2)) { template1.ProvidedItems.Add(new Asda2ItemStackDescription(template1.SrcItemId, 1)); } } } QuestMgr.Loaded = true; QuestMgr.log.Debug("{0} Quests loaded.", QuestMgr._questCount); } return(true); }
public static void WriteItemSetId() { ItemMgr.ForceInitialize(); WriteEnum("ItemSetId", "Items", ItemMgr.Sets, false, (item) => { return(true); }, (item) => { return(item.Name); }, set => { var strs = new List <string>(); foreach (var templ in set.Templates) { strs.Add(templ.ToString()); } strs.Add(" \nBoni:"); for (int i = 0; i < set.Boni.Length; i++) { var boni = set.Boni[i]; if (boni != null) { strs.Add((i + 1) + " Items: " + boni.ToString(", ")); } } if (set.RequiredSkillValue > 0) { strs.Add(" \nRequires: " + set.RequiredSkillValue + " " + set.RequiredSkill); } return(strs.ToString("\n")); }, (item, name) => null, (item) => { return(item.Id.ToString()); }); }
private void OnEnable() { this.asset = target as ItemMgr; this.itemListProp = serializedObject.FindProperty("items"); this.itemList = new ReorderableList(serializedObject, itemListProp, true, true, true, true); this.itemList.elementHeight = 2 * EditorGUIUtility.singleLineHeight; itemList.drawElementCallback = (rect, index, isActive, isFocused) => { var itemProp = itemListProp.GetArrayElementAtIndex(index); EditorGUI.PropertyField(rect, itemProp); }; itemList.onSelectCallback = (list) => this.selectedIndex = list.index; itemList.drawHeaderCallback = (rect) => EditorGUI.LabelField(rect, "物品信息"); itemList.onAddDropdownCallback = (rect, list) => { var menu = new GenericMenu(); var enumIndex = -1; foreach (var value in EnumUtil.GetValues <ItemType>()) { enumIndex++; menu.AddItem(new GUIContent(((ItemType)value).ToString()), false, OnAddUnitCallBack, enumIndex); } menu.ShowAsContext(); }; }
public static bool AddDailyAward(GamePlayer player) { if (DateTime.Now.Date == player.PlayerCharacter.LastAward.Date) { return(false); } player.PlayerCharacter.DayLoginCount++; player.PlayerCharacter.LastAward = DateTime.Now; DailyAwardInfo[] allAwardInfo = AwardMgr.GetAllAwardInfo(); DailyAwardInfo[] array = allAwardInfo; for (int i = 0; i < array.Length; i++) { DailyAwardInfo dailyAwardInfo = array[i]; if (dailyAwardInfo.Type == 0) { ItemTemplateInfo itemTemplateInfo = ItemMgr.FindItemTemplate(dailyAwardInfo.TemplateID); if (itemTemplateInfo != null) { AbstractBuffer abstractBuffer = BufferList.CreateBufferHour(itemTemplateInfo, dailyAwardInfo.ValidDate); abstractBuffer.Start(player); return(true); } } } return(false); }
public static void WriteItemId() { ItemMgr.ForceInitialize(); WriteEnum("ItemId", "Items", ItemMgr.Templates, false, (item) => { return(true); }, (item) => { return(item.Name); }, template => { var strs = new List <string>(); if (template.Description.Length > 0) { strs.Add("Desc: " + template.Description); } if (template.InventorySlotType != InventorySlotType.None) { strs.Add(template.InventorySlotType.ToString()); } if (template.Level > 0) { strs.Add("Level: " + template.Level); } if (template.Set != null) { strs.Add("Set: " + template.Set); } if (template.Class != ItemClass.None) { strs.Add("Class: " + template.Class); } if (template.ItemProfession != SkillId.None) { strs.Add("Skill: " + template.ItemProfession); } if (template.MaxAmount > 1) { strs.Add("Max Stack: " + template.MaxAmount); } if (template.Lock != null) { strs.Add("Lock: " + template.Lock); } if (template.TeachSpell != null) { strs.Add("Teaches: " + template.TeachSpell); } if (template.UseSpell != null) { strs.Add("Use: " + template.UseSpell.Spell + (template.UseSpell.Charges > 0 && template.UseSpell.Charges < int.MaxValue ? " (" + template.UseSpell.Charges + ")" : "")); } if (template.EquipSpell != null) { strs.Add("OnEquip: " + template.EquipSpell); } return(strs.ToString("\n")); }, (item, name) => null, (item) => { return(item.Id.ToString()); }); }
public static bool VIPRewardDrop(int level, ref List <ItemInfo> info) { int dropId = DropInventory.GetDropCondiction(eDropType.VIP, level.ToString(), "1"); bool result; if (dropId > 0) { List <DropItem> unFiltItems = DropMgr.FindDropItem(dropId); for (int i = 0; i < unFiltItems.Count; i++) { int itemCount = DropInventory.random.Next(unFiltItems[i].BeginData, unFiltItems[i].EndData); ItemTemplateInfo temp = ItemMgr.FindItemTemplate(unFiltItems[i].ItemId); ItemInfo item = ItemInfo.CreateFromTemplate(temp, itemCount, level); if (item != null) { item.IsBinds = unFiltItems[i].IsBind; item.ValidDate = unFiltItems[i].ValueDate; item.IsTips = unFiltItems[i].IsTips; item.IsLogs = unFiltItems[i].IsLogs; if (info == null) { info = new List <ItemInfo>(); } info.Add(item); } } result = true; } else { result = false; } return(result); }
protected override void Process() { if (NpcMgr.HasChanges) { string npc_filename = Paths.GetNPCData(); setStatus("Saving NPC Data...", false); BackupHelper.Create(npc_filename); NpcMgr.Save(npc_filename, npc_Progress); } // if (ItemMgr.HasChanges) { string item_filename = Paths.GetItemData(); setStatus("Saving Item Data...", false); BackupHelper.Create(item_filename); ItemMgr.Save(item_filename, item_Progress); } // if (ScriptMgr.HasChanges) { string ai_filename = Paths.GetAIData(); setStatus("Compiling AI Scripts...", true); BackupHelper.Create(ai_filename); is_compiled = false; CompilerResult = ScriptMgr.Compile(ai_Progress); } }
public static void WriteItemSetId() { RealmDBMgr.Initialize(); World.InitializeWorld(); SpellHandler.LoadSpells(); ItemMgr.ForceInitialize(); WriteEnum("ItemSetId", " : uint", "Items", ItemMgr.Sets, false, (item) => true, (item) => item.Name, set => { var strs = new List <string>(); foreach (ItemTemplate templ in set.Templates) { strs.Add(templ.ToString()); } strs.Add(" \nBoni:"); for (int i = 0; i < set.Boni.Length; i++) { Spell[] boni = set.Boni[i]; if (boni != null) { strs.Add((i + 1) + " Items: " + boni.ToString(", ")); } } if (set.RequiredSkillValue > 0) { strs.Add(" \nRequires: " + set.RequiredSkillValue + " " + set.RequiredSkill); } return(strs.ToString("\n")); }, (item, name) => null, (item) => item.Id.ToString()); }
public static ItemTemplateInfo RefineryTrend(int Operation, ItemInfo Item, ref bool result) { ItemTemplateInfo result2; if (Item != null) { foreach (int i in RefineryMgr.m_Item_Refinery.Keys) { if (RefineryMgr.m_Item_Refinery[i].m_Reward.Contains(Item.TemplateID)) { for (int j = 0; j < RefineryMgr.m_Item_Refinery[i].m_Reward.Count; j++) { if (RefineryMgr.m_Item_Refinery[i].m_Reward[j] == Operation) { int TemplateId = RefineryMgr.m_Item_Refinery[i].m_Reward[j + 2]; result = true; result2 = ItemMgr.FindItemTemplate(TemplateId); return(result2); } } } } } result2 = null; return(result2); }
public Item EnsureItem(ItemId item, int amount) { Setup.EnsureBasicSetup(); ItemMgr.LoadAll(); return(EnsureItem(ItemMgr.GetTemplate(item), amount)); }
protected void Edit_Click(object sender, EventArgs e) { var item = ItemMgr.FindItemTemplate(int.Parse(Template_tbx.Text)); var business = new Bussiness.PlayerBussiness(); try { var userid = business.GetUserSingleByNickName(UserName_tbx.Text).ID; var agility = int.Parse(Agility_tbx.Text); var attack = int.Parse(Attack_tbx.Text); var defence = int.Parse(Defence_tbx.Text); var luck = int.Parse(Luck_tbx.Text); business.SendMailAndItem("Add Item", "AddItem", userid, int.Parse(Template_tbx.Text), 1, 50, 0, 0, int.Parse(Level_tbx.Text), attack, defence, agility, luck, false); Error_lbl.Text = "OK"; } catch { Error_lbl.Text = "User is not valid or TemplateID is not valid :"; } Template_tbx.Text = string.Empty; Level_tbx.Text = string.Empty; return; }
public static uint GetRandomSuffixFactor(ItemTemplate template) { ItemSuffixCategory suffixCategory = GetSuffixCategory(template); if (suffixCategory >= ItemSuffixCategory.None) { return(0); } ItemLevelInfo levelInfo = ItemMgr.GetLevelInfo(template.Level); if (levelInfo != null) { switch (template.Quality) { case ItemQuality.Uncommon: return(levelInfo.UncommonPoints[(uint)suffixCategory]); case ItemQuality.Rare: return(levelInfo.RarePoints[(uint)suffixCategory]); case ItemQuality.Epic: case ItemQuality.Legendary: case ItemQuality.Artifact: return(levelInfo.EpicPoints[(uint)suffixCategory]); } } return(0); }
public bool HandleCommand(TankMarryLogicProcessor process, GamePlayer player, GSPacketIn packet) { if (player.CurrentMarryRoom != null) { packet.ReadInt(); int templateId = packet.ReadInt(); ItemTemplateInfo itemTemplateInfo = ItemMgr.FindItemTemplate(templateId); if (itemTemplateInfo != null && !player.CurrentMarryRoom.Info.IsGunsaluteUsed && (player.CurrentMarryRoom.Info.GroomID == player.PlayerCharacter.ID || player.CurrentMarryRoom.Info.BrideID == player.PlayerCharacter.ID)) { player.CurrentMarryRoom.ReturnPacketForScene(player, packet); player.CurrentMarryRoom.Info.IsGunsaluteUsed = true; GSPacketIn packet2 = player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("GunsaluteCommand.Successed1", new object[] { player.PlayerCharacter.NickName })); player.CurrentMarryRoom.SendToPlayerExceptSelfForScene(packet2, player); GameServer.Instance.LoginServer.SendMarryRoomInfoToPlayer(player.CurrentMarryRoom.Info.GroomID, true, player.CurrentMarryRoom.Info); GameServer.Instance.LoginServer.SendMarryRoomInfoToPlayer(player.CurrentMarryRoom.Info.BrideID, true, player.CurrentMarryRoom.Info); using (PlayerBussiness playerBussiness = new PlayerBussiness()) { playerBussiness.UpdateMarryRoomInfo(player.CurrentMarryRoom.Info); } return(true); } } return(false); }
public override void Convert(byte[] rawData) { var raceClassGender = GetUInt32(rawData, 1); var race = (RaceId)(raceClassGender & 0xFF); var clss = (ClassId)((raceClassGender & 0xFF00) >> 8); var gender = (GenderType)((raceClassGender & 0xFF0000) >> 16); var archetype = ArchetypeMgr.GetArchetype(race, clss); if (archetype == null) { return; } var items = archetype.GetInitialItems(gender); for (var i = 2; i <= 25; i++) { var itemId = GetInt32(rawData, i); if (itemId > 0) { var templ = ItemMgr.GetTemplate((ItemId)itemId); if (templ == null) { LogManager.GetCurrentClassLogger().Warn("Missing initial Item in DB: " + itemId + " (" + (uint)itemId + ")"); } else { if (templ.IsStackable) { var index = items.FindIndex(stack => stack.Template.Id == itemId); if (index > -1) { items[index] = new ItemStack { Template = templ, Amount = items[index].Amount + 1 }; } else { items.Add(new ItemStack { Template = templ, Amount = templ.IsAmmo ? templ.MaxAmount : 1 }); } } else { items.Add(new ItemStack { Template = templ, Amount = 1 }); } } } } }
public void OpenBox(int boxId) { Box box = null; foreach (Box temp in m_tempBoxes) { if (temp.Id == boxId && temp.Items != null) { box = temp; break; } } if (box != null) { ItemTemplateInfo temp = ItemMgr.GetSingleGoods(box.Items.GoodsID); if (temp != null) { if (temp.CategoryID == 10) //如果是道具 { if (m_player.PropInventory.AddItemTemplate(temp) == null) { m_player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("Game.Server.SceneGames.TankHandle.PropFull")); } } else { m_player.TempInventory.AddItemTemplate(temp, box.Items); } } m_tempBoxes.Remove(box); } }
public void SendGoodManCard(string receiverName, int receiverID, string senderName, int senderID, PlayerBussiness db) { ItemTemplateInfo goodMan = ItemMgr.FindItemTemplate(11105); ItemInfo goodManCard = ItemInfo.CreateFromTemplate(goodMan, 1, 112); goodManCard.IsBinds = true; GamePlayer player = WorldMgr.GetPlayerById(receiverID); goodManCard.UserID = 0; db.AddGoods(goodManCard); MailInfo mail = new MailInfo(); mail.Annex1 = goodManCard.ItemID.ToString(); mail.Content = LanguageMgr.GetTranslation("MarryApplyReplyHandler.Content", new object[0]); mail.Gold = 0; mail.IsExist = true; mail.Money = 0; mail.GiftToken = 0; mail.Receiver = receiverName; mail.ReceiverID = receiverID; mail.Sender = senderName; mail.SenderID = senderID; mail.Title = LanguageMgr.GetTranslation("MarryApplyReplyHandler.Title", new object[0]); mail.Type = 14; if (db.SendMail(mail) && player != null) { player.Out.SendMailResponse(mail.ReceiverID, eMailRespose.Receiver); } }
protected override void Remove(bool cancelled) { var procFlags = m_aura.Spell.ProcTriggerFlags; var owner = m_aura.Auras.Owner; if (!owner.IsAlive && (!procFlags.HasFlag(ProcTriggerFlags.KilledTargetThatYieldsExperienceOrHonor) || owner.YieldsXpOrHonor)) { var item = ItemMgr.GetTemplate(SpellEffect.ItemId); if (item == null) { log.Warn("Spell {0} referred to invalid Item: {1} ({2})", m_aura.Spell, (ItemId)SpellEffect.ItemId, SpellEffect.ItemId); } else { var caster = m_aura.CasterUnit; if (caster != null && (caster = caster.Master as Character) != null) { var amount = Math.Max(1, EffectValue); ((Character)caster).Inventory.TryAdd(item, ref amount); } } } }
public void SendGoodManCard(string receiverName, int receiverID, string senderName, int senderID, PlayerBussiness db) { ItemTemplateInfo goodMan = ItemMgr.FindItemTemplate(11105); ItemInfo goodManCard = ItemInfo.CreateFromTemplate(goodMan, 1, (int)ItemAddType.webing); goodManCard.IsBinds = true; goodManCard.UserID = 0; db.AddGoods(goodManCard); MailInfo mail = new MailInfo(); mail.Annex1 = goodManCard.ItemID.ToString(); mail.Content = LanguageMgr.GetTranslation("MarryApplyReplyHandler.Content"); mail.Gold = 0; mail.IsExist = true; mail.Money = 0; mail.Receiver = receiverName; mail.ReceiverID = receiverID; mail.Sender = senderName; mail.SenderID = senderID; mail.Title = LanguageMgr.GetTranslation("MarryApplyReplyHandler.Title"); mail.Type = (int)eMailType.Marry; db.SendMail(mail); //Spouse.Out.SendMailResponse(mail.ReceiverID, eMailRespose.Receiver); }
public void FinalizeDataHolder() { Template = ItemMgr.GetTemplate(ItemId); if (Template == null) { ContentMgr.OnInvalidDBData("{0} has invalid ItemId: {1} ({2})", this, ItemId, (int)ItemId); } else { var list = NPCMgr.GetOrCreateVendorList(VendorId); // set defaults if (StockAmount < 0) { StockAmount = Template.StockAmount; } if (StockRefillDelay < 0) { StockRefillDelay = Template.StockRefillDelay; } remainingStackAmount = StockAmount; list.Add(this); } }
public static void WriteMissingItemIds() { Tools.StartRealm(); var items = new Dictionary <uint, Spell>(500); foreach (var spell in SpellHandler.ById) { if (spell != null) { spell.ForeachEffect(effect => { if (effect.EffectType == SpellEffectType.CreateItem && effect.ItemId != 0) { if (ItemMgr.GetTemplate(effect.ItemId) == null) { items[effect.ItemId] = spell; } } }); } } using (var writer = new StreamWriter(ToolConfig.OutputDir + "MissingSpellItems.txt", false)) { foreach (var pair in items) { writer.WriteLine("{0} ({1})", pair.Key, pair.Value); } } }
public void HandleCommand(BaseGame game, Player player, GSPacketIn packet) { if (game.GameState != eGameState.Playing || player.GetSealState()) { return; } int type = packet.ReadByte(); int place = packet.ReadInt(); int templateID = packet.ReadInt(); ItemTemplateInfo template = ItemMgr.FindItemTemplate(templateID); if (player.CanUseItem(template)) { if (player.PlayerDetail.UsePropItem(game, type, place, templateID, player.IsLiving)) { if (player.UseItem(template) == false) { BaseGame.log.Error("Using prop error"); } } else { player.UseItem(template); //player.Prop = template; } } }
private void HandlePlayerAddTemplate(GSPacketIn pkg) { GamePlayer player = WorldMgr.GetPlayerById(pkg.ClientID); if (player != null) { ItemTemplateInfo template = ItemMgr.FindItemTemplate(pkg.ReadInt()); eBageType type = (eBageType)pkg.ReadByte(); if (template != null) { int Count = pkg.ReadInt(); ItemInfo item = ItemInfo.CreateFromTemplate(template, Count, 118); item.Count = Count; item.ValidDate = pkg.ReadInt(); item.IsBinds = pkg.ReadBoolean(); item.IsUsed = pkg.ReadBoolean(); item.IsTips = pkg.ReadBoolean(); item.IsLogs = pkg.ReadBoolean(); int check = pkg.ReadInt(); if (check == template.TemplateID + Count) { if (!player.AddTemplate(item, type, item.Count, item.IsTips)) { } } else { FightServerConnector.log.ErrorFormat("add template item error: userid {0} template id {1} count {2}", pkg.ClientID, template.TemplateID, Count); } } } }
public override void Process(CmdTrigger <RealmServerCmdArgs> trigger) { var mods = trigger.Text.NextModifiers(); var entry = trigger.Text.NextEnum(ItemId.None); var templ = ItemMgr.GetTemplate(entry); if (templ == null) { trigger.Reply("Invalid ItemId."); return; } if (templ.IsCharter) { trigger.Reply("Charters cannot be added by command."); return; } var amount = trigger.Text.NextInt(1); var stacks = trigger.Text.NextUInt(1); var ensure = mods.Contains("e"); var autoEquip = mods.Contains("a"); for (var i = 0; i < stacks; i++) { if (!AddItem((Character)trigger.Args.Target, templ, amount, autoEquip, ensure)) { break; } } //trigger.Reply("{0}/{1} stacks of {2} created{3}", x, stacks, templ, err == InventoryError.OK ? "." : ": " + err); }
public void Set(int itemID, Vector3 pos) { var item = ItemMgr.GetItem(itemID); this.name.text = item.ToString(); m_TransFrom.position = pos; }
public override SpellFailedReason InitializeTarget(WorldObject target) { var templId = Effect.ItemId; templ = ItemMgr.GetTemplate(templId); amount = CalcEffectValue(); if (templ == null) { log.Warn("Spell {0} referred to invalid Item {1}", Effect.Spell, templId); return(SpellFailedReason.ItemNotFound); } // find a free slot // TODO: Add & use HoldFreeSlotCheck instead, so slot won't get occupied InventoryError error; slotId = ((Character)target).Inventory.FindFreeSlotCheck(templ, amount, out error); if (error != InventoryError.OK) { ItemHandler.SendInventoryError((Character)target, error); return(SpellFailedReason.DontReport); } return(SpellFailedReason.Ok); }
private void Awake() { if (ItemMgr.GetInstance == null) { ItemMgr.GetInstance = this; } }
public int HandlePacket(GameClient client, GSPacketIn packet) { int num = packet.ReadInt(); packet.ReadBoolean(); if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked", new object[0])); return(1); } ShopItemInfo shopItemInfoById = ShopMgr.GetShopItemInfoById(1123301); ItemTemplateInfo itemTemplateInfo = ItemMgr.FindItemTemplate(shopItemInfoById.TemplateID); int num2 = num * shopItemInfoById.AValue1; if (client.Player.PlayerCharacter.Money > num2) { client.Player.RemoveMoney(num2); int num3 = 0; int num4 = 0; int num5 = 0; int num6 = 0; List <ItemInfo> infos = new List <ItemInfo>(); this.OpenUpItem(itemTemplateInfo.Data, infos, ref num4, ref num3, ref num5, ref num6); int num7 = num * num4; client.Player.AddGold(num7); client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bạn nhận được " + num7 + " vàng.", new object[0])); } else { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("UserBuyItemHandler.NoMoney", new object[0])); } return(0); }
public void StartGame() { if (GameState == eGameState.Loading) { m_gameState = eGameState.Playing; ClearWaitTimer(); //同步时间 SendSyncLifeTime(); VaneLoading(); List <Player> list = GetAllFightPlayers(); MapPoint mapPos = MapMgr.GetMapRandomPos(m_map.Info.ID); GSPacketIn pkg = new GSPacketIn((byte)ePackageType.GAME_CMD); pkg.WriteByte((byte)eTankCmdType.START_GAME); pkg.WriteInt(list.Count); foreach (Player p in list) { p.Reset(); Point pos = GetPlayerPoint(mapPos, p.Team); p.SetXY(pos); m_map.AddPhysical(p); p.StartMoving(); p.StartGame(); pkg.WriteInt(p.Id); pkg.WriteInt(p.X); pkg.WriteInt(p.Y); pkg.WriteInt(p.Direction); pkg.WriteInt(p.Blood); pkg.WriteInt(p.Team); //_loc_6.team = _loc_2.readInt(); pkg.WriteInt(p.Weapon.RefineryLevel); pkg.WriteInt(34); //powerRatio = _loc_2.readInt(); pkg.WriteInt(p.Dander); pkg.WriteInt(1); //_loc_6.wishKingCount = _loc_2.readInt(); pkg.WriteInt(1); //_loc_6.wishKingEnergy = _loc_2.readInt(); pkg.WriteInt(p.PlayerDetail.EquipEffect.Count); foreach (var templateID in p.PlayerDetail.EquipEffect) { ItemTemplateInfo item = ItemMgr.FindItemTemplate(templateID); if (item.Property3 < 27) { pkg.WriteInt(item.Property3); pkg.WriteInt(item.Property4); } else { pkg.WriteInt(0); pkg.WriteInt(0); } } } SendToAll(pkg); WaitTime(list.Count * 1000); OnGameStarted(); } }
public override void Convert(byte[] rawData) { uint uint32 = DBCRecordConverter.GetUInt32(rawData, 1); RaceId race = (RaceId)((int)uint32 & (int)byte.MaxValue); ClassId clssId = (ClassId)((uint32 & 65280U) >> 8); GenderType gender = (GenderType)((uint32 & 16711680U) >> 16); Archetype archetype = ArchetypeMgr.GetArchetype(race, clssId); if (archetype == null) { return; } List <ItemStack> initialItems = archetype.GetInitialItems(gender); for (int field = 2; field <= 25; ++field) { int itemId = DBCRecordConverter.GetInt32(rawData, field); if (itemId > 0) { ItemTemplate template = ItemMgr.GetTemplate((Asda2ItemId)itemId); if (template == null) { LogManager.GetCurrentClassLogger() .Warn("Missing initial Item in DB: " + (object)itemId + " (" + (object)(uint)itemId + ")"); } else if (template.IsStackable) { int index = initialItems.FindIndex((Predicate <ItemStack>)(stack => (long)stack.Template.Id == (long)itemId)); if (index > -1) { initialItems[index] = new ItemStack() { Template = template, Amount = initialItems[index].Amount + 1 } } ; else { initialItems.Add(new ItemStack() { Template = template, Amount = template.IsAmmo ? template.MaxAmount : 1 }); } } else { initialItems.Add(new ItemStack() { Template = template, Amount = 1 }); } } } }
//--------------------------------------------------------------------- /* Virtual */ //--------------------------------------------------------------------- // Awake void Awake() { m_ItemManagement = new ItemManagement(); m_DropItemManagement = new DropItemManagement(); m_UseItemManagement = new UseItemManagement(); m_HadItemManagement = new HadItemManagement(); ms_kIstance = this; }