コード例 #1
0
 public void onMoveItem(InventoryItemModel Item)
 {
     lock (this.ItemSetEffects)
     {
         if (Item.Template.ItemSetID != -1)
         {
             if (ItemSetTable.getItemSet(Item.Template.ItemSetID) == null)
             {
                 return;
             }
             var countByItemSet = CountItemByItemSet(Item.Template.ItemSetID);
             var Stat           = ItemSetTable.getItemSet(Item.Template.ItemSetID).getBonusStatByItemCount(countByItemSet);
             if (!this.ItemSetEffects.Keys.Contains(Item.Template.ItemSetID))
             {
                 if (countByItemSet > 1)
                 {
                     this.ItemSetEffects.Add(Item.Template.ItemSetID, Stat);
                     this.Player.myStats.Merge(Stat);
                     this.Player.Life += Stat.GetTotal(EffectEnum.AddVitalite);
                 }
             }
             else
             {
                 if (countByItemSet <= 1)
                 {
                     this.Player.myStats.UnMerge(this.ItemSetEffects[Item.Template.ItemSetID]);
                     this.Player.Life -= this.ItemSetEffects[Item.Template.ItemSetID].GetTotal(EffectEnum.AddVitalite);
                     this.ItemSetEffects.Remove(Item.Template.ItemSetID);
                 }
                 else if (this.ItemSetEffects[Item.Template.ItemSetID] != Stat)
                 {
                     this.Player.myStats.UnMerge(this.ItemSetEffects[Item.Template.ItemSetID]);
                     this.Player.Life -= this.ItemSetEffects[Item.Template.ItemSetID].GetTotal(EffectEnum.AddVitalite);
                     this.ItemSetEffects[Item.Template.ItemSetID] = Stat;
                     this.Player.myStats.Merge(Stat);
                     this.Player.Life += Stat.GetTotal(EffectEnum.AddVitalite);
                 }
             }
             Player.BeginCachedBuffer();
             Player.Send(new ItemSetAppearMessage(Player, Item.Template.ItemSetID));
             Player.Send(new AccountStatsMessage(Player));
             Player.EndCachedBuffer();
         }
     }
 }
コード例 #2
0
 public void RefreshSet()
 {
     lock (ItemsCache)
     {
         foreach (var Item in this.ItemsCache.Values.Where(x => x != null && x.Template.ItemSetID != -1 && ItemSetTable.getItemSet(x.Template.ItemSetID) != null && x.Slot > ItemSlotEnum.SLOT_INVENTAIRE && x.Slot <= ItemSlotEnum.SLOT_BOUCLIER))
         {
             if (!this.ItemSetEffects.Keys.Contains(Item.Template.ItemSetID))
             {
                 if (CountItemByItemSet(Item.Template.ItemSetID) > 1)
                 {
                     this.ItemSetEffects.Add(Item.Template.ItemSetID, ItemSetTable.getItemSet(Item.Template.ItemSetID).getBonusStatByItemCount(CountItemByItemSet(Item.Template.ItemSetID)));
                     this.Player.myStats.Merge(ItemSetTable.getItemSet(Item.Template.ItemSetID).getBonusStatByItemCount(CountItemByItemSet(Item.Template.ItemSetID)));
                     this.Player.Life += ItemSetTable.getItemSet(Item.Template.ItemSetID).getBonusStatByItemCount(CountItemByItemSet(Item.Template.ItemSetID)).GetTotal(EffectEnum.AddVitalite);
                 }
                 Player.Send(new ItemSetAppearMessage(Player, Item.Template.ItemSetID));
             }
         }
     }
 }
コード例 #3
0
        public override string Compile()
        {
            StringBuilder Packet = new StringBuilder("OS");
            int           num    = Character.InventoryCache.CountItemByItemSet(Pano);

            if (num <= 0)
            {
                Packet.Append("-").Append(Pano);
            }
            else
            {
                Packet.Append("+").Append(Pano).Append("|");
                var ItemSet = ItemSetTable.getItemSet(Pano);
                if (ItemSet != null)
                {
                    StringBuilder Items = new StringBuilder();
                    foreach (var Item in ItemSet.Items)
                    {
                        if (Character.InventoryCache.HasTemplateEquiped(Item.ID))
                        {
                            if (Items.Length > 0)
                            {
                                Items.Append(";");
                            }
                            Items.Append(Item.ID);
                        }
                    }
                    var stat = ItemSet.getBonusStatByItemCount(num).ToItemStats();
                    if (stat.StartsWith(","))
                    {
                        stat = stat.Substring(1);
                    }
                    Packet.Append(Items.ToString()).Append("|").Append(stat);
                }
            }
            return(Packet.ToString());
        }