diff --git a/Engine/CLEngine.Core/framework/ItemManager.cs b/Engine/CLEngine.Core/framework/ItemManager.cs
index f0273e365db2fbfd0b403c5205ba9cd1ea4fe299..d88fb9e2ac78298e9c4dfad1c7c2f7a9eea3a0bf 100644
--- a/Engine/CLEngine.Core/framework/ItemManager.cs
+++ b/Engine/CLEngine.Core/framework/ItemManager.cs
@@ -184,17 +184,19 @@ namespace CLEngine.Core.framework
///
///
///
- public static void GetItemById(int id, int number)
+ public static void GetItemById(int id, int number)//需要注意检索是否装备唯一
{
var onget = WorldFindItemById(id);
ItemObject item = null;
- int max = _playerItem.Count;
- bool is_finish = false;
- for (int i = 0; i < max; i++)
+ var max = _playerItem.Count;
+ var is_finish = false;
+ var have = false;
+ for (var i = 0; i < max; i++)
{
item = _playerItem[i];
if (item.Id == id)
{
+ have = true;
if (item.Number + number <= item.MaxNumber)
{
item.Number += number;
@@ -203,7 +205,7 @@ namespace CLEngine.Core.framework
}
}
}
- if (!is_finish)
+ if (!is_finish||(!have&&item.OnlyGetOne))
{
onget.Number = number;
_playerItem.Add(onget);
@@ -221,11 +223,13 @@ namespace CLEngine.Core.framework
ItemObject item = null;
var max = _playerItem.Count;
var is_finish = false;
+ var have = false;
for (int i = 0; i < max; i++)
{
item = _playerItem[i];
if (item.Name == name)
{
+ have = true;
if (item.Number + number <= item.MaxNumber)
{
item.Number += number;
@@ -234,7 +238,7 @@ namespace CLEngine.Core.framework
}
}
}
- if (!is_finish)
+ if (!is_finish || (!have && item.OnlyGetOne))
{
onget.Number = number;
_playerItem.Add(onget);
diff --git a/Engine/CLEngine.Core/framework/ItemObject.cs b/Engine/CLEngine.Core/framework/ItemObject.cs
index 265729cce30bc0cf2e7d36dc28cabc1ef3d4d23c..41c1a7c8e4388fd1a24fa71a4595984bb96d4df1 100644
--- a/Engine/CLEngine.Core/framework/ItemObject.cs
+++ b/Engine/CLEngine.Core/framework/ItemObject.cs
@@ -95,10 +95,40 @@ namespace CLEngine.Core.framework
[DataMember] private int _addADDef;
[DataMember] private int _addAPDef;
[DataMember] private int _cd;
+ [DataMember] private bool _onlyGetOne;
+ [DataMember] private float _hitAccuracy;
+ [DataMember] private float _missPercent;
+ [DataMember] private float _magicUseSpeed;
+ [DataMember] private string _classification;
+ [DataMember] private bool _onlyStoreOne;
[NonSerialized] private Texture2D _texture;
private int _positionInBag;
///
+ /// 仓库唯一
+ ///
+ public bool OnlyStoreOne{ get{ return _onlyStoreOne; }set{ _onlyStoreOne = value; } }
+ ///
+ /// 分类
+ ///
+ public string Classification{ get{ return _classification; }set{ _classification = value; } }
+ ///
+ /// 施法速率
+ ///
+ public float MagicUseSpeed{ get{ return _magicUseSpeed; }set{ _magicUseSpeed = value; } }
+ ///
+ /// 闪避率
+ ///
+ public float MissPercent { get { return _missPercent; } set { _missPercent = value; } }
+ ///
+ /// 命中率
+ ///
+ public float HitAccuracy{ get{ return _hitAccuracy; }set{ _hitAccuracy = value; } }
+ ///
+ /// 背包唯一
+ ///
+ public bool OnlyGetOne{ get{ return _onlyGetOne; }set{ _onlyGetOne = value; } }
+ ///
/// 冷却时间
///
public int CD{ get { return _cd; }set { _cd = value; } }
@@ -297,7 +327,7 @@ namespace CLEngine.Core.framework
///
/// 附加属性:角色魔法值
///
- public int AddHeroMp { get { return _addMp; } set { _addMp = value; } }
+ public int AddMp { get { return _addMp; } set { _addMp = value; } }
///
/// 附加属性:角色生命值恢复
///