//itemskill fun
        public RandomItemObj TryGetItemskill(Vector3 pos, float percent = 1.0f)
        {
            System.Random rand = new System.Random();
            List <List <ItemAsset.MaterialItem> > ItemsMasters = new List <List <ItemAsset.MaterialItem> >();

            //List<ItemAsset.MaterialItem> ItemsMaster;
            if (m_curNpcAblitys == null)
            {
                return(null);
            }

            foreach (NpcAbility Ablity in m_curNpcAblitys)
            {
                if (Ablity.IsGetItem())
                {
                    //ItemsMaster = Ablity.GetItem(percent);
                    ItemsMasters.Add(Ablity.GetItem(percent));
                    //break;
                }
            }
            if (ItemsMasters == null)
            {
                return(null);
            }

            List <int> _Items = new List <int>();

            for (int i = 0; i < ItemsMasters.Count; i++)
            {
                if (ItemsMasters[i] != null && ItemsMasters[i].Count > 0)
                {
                    foreach (ItemAsset.MaterialItem masrerItem in ItemsMasters[i])
                    {
                        if (masrerItem.count > 0)
                        {
                            _Items.Add(masrerItem.protoId);
                            _Items.Add(masrerItem.count);
                        }
                    }
                }
            }

            if (_Items == null || _Items.Count <= 0)
            {
                return(null);
            }

            return(new RandomItemObj(pos + new Vector3((float)rand.NextDouble() * 0.15f, 0, (float)rand.NextDouble() * 0.15f), _Items.ToArray()));
        }
 private void  GetAblityInfos()
 {
     AblityInfos.Clear();
     foreach (NpcAbility Ablity in m_curNpcAblitys)
     {
         if (Ablity == null)
         {
             return;
         }
         if (Ablity.IsTalent())
         {
             AblityInfo info = new AblityInfo();
             Ablity.CalculateCondtion();
             info._Percent          = GetValueById(Ablity.id);
             info._ProtoIds         = GetProtoIDs(Ablity.id);
             info.IsTalent          = true;
             info._type             = Ablity.Type;
             info._Correctrate      = Ablity.Correctrate;
             info.DecsId            = Ablity.desc;
             info._icon             = Ablity.icon;
             info._level            = Ablity.level;
             AblityInfos[Ablity.id] = info;
         }
         else if (Ablity.Isskill())
         {
             AblityInfo info = new AblityInfo();
             info.IsSkill = true;
             Ablity.CalculateCondtion();
             info.SkillId           = Ablity.skillId;
             info._Skill_R          = Ablity.SkillRange;
             info._Percent          = Ablity.SkillPerCent;
             info._type             = Ablity.Type;
             info.DecsId            = Ablity.desc;
             info._icon             = Ablity.icon;
             info._level            = Ablity.level;
             AblityInfos[Ablity.id] = info;
         }
         else if (Ablity.IsBuff())
         {
             AblityInfo info = new AblityInfo();
             info.IsBuff            = true;
             info.BuffId            = Ablity.buffId;
             info._type             = Ablity.Type;
             info.DecsId            = Ablity.desc;
             info._icon             = Ablity.icon;
             info._level            = Ablity.level;
             AblityInfos[Ablity.id] = info;
         }
         if (Ablity.IsGetItem())
         {
             AblityInfo info = new AblityInfo();
             info.IsGetItem         = true;
             info._Items            = Ablity.GetItem(1.0f);
             info._type             = Ablity.Type;
             info.DecsId            = Ablity.desc;
             info._level            = Ablity.level;
             AblityInfos[Ablity.id] = info;
         }
     }
     return;
 }