Exemple #1
0
        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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
 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();
            };
        }
Exemple #5
0
 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);
 }
Exemple #6
0
 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()); });
 }
Exemple #7
0
        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());
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        public Item EnsureItem(ItemId item, int amount)
        {
            Setup.EnsureBasicSetup();
            ItemMgr.LoadAll();

            return(EnsureItem(ItemMgr.GetTemplate(item), amount));
        }
Exemple #12
0
        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;
        }
Exemple #13
0
        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);
 }
Exemple #15
0
        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
                            });
                        }
                    }
                }
            }
        }
Exemple #16
0
        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);
            }
        }
Exemple #17
0
        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);
            }
        }
Exemple #18
0
        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);
                    }
                }
            }
        }
Exemple #19
0
        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);
        }
Exemple #20
0
        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);
            }
        }
Exemple #21
0
        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);
                }
            }
        }
Exemple #22
0
        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);
                    }
                }
            }
        }
Exemple #24
0
            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;
        }
Exemple #26
0
        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);
        }
Exemple #29
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();
            }
        }
Exemple #30
0
        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
                        });
                    }
                }
            }
        }
Exemple #31
0
	//---------------------------------------------------------------------
	/* Virtual */ 
	//---------------------------------------------------------------------	


    // Awake
	void Awake()
	{       
        m_ItemManagement = new ItemManagement();
        m_DropItemManagement = new DropItemManagement();
        m_UseItemManagement = new UseItemManagement();
        m_HadItemManagement = new HadItemManagement();

        ms_kIstance = this;
	}