Esempio n. 1
0
        //初始化数据
        private void Init(int nId, ItemBaseData Dbdata)
        {
            mDbData = Dbdata;
            SetId(nId);
            SetCount(1);
            CleanExdata();
            var tbPet = Table.GetPet(nId);

            if (tbPet == null)
            {
                Logger.Error("PetId  Id={0} not find", nId);
                return;
            }

            //初始等级
            AddExdata(1);
            //初始经验
            AddExdata(0);
            //初始星级
            AddExdata(tbPet.Ladder);
            //初始状态
            AddExdata((int)PetStateType.Idle);
            //碎片数量
            AddExdata(0);
            //特长
            for (var i = 0; i != 3; i++)
            {
                AddExdata(-1);
            }
            //随机特长
            RefreshSpeciality(this, tbPet);
        }
Esempio n. 2
0
 public void PickUpItem(ItemBaseData item)
 {
     if (!HaveItem)
     {
         HaveItem = item;
     }
 }
Esempio n. 3
0
        //发放每日奖励
        public void SendReward()
        {
            var item = new ItemBaseData();

            item.ItemId = -1;
            var args = new StringArray();

            foreach (var server in ServerAllianceManager.Servers.Values)
            {
                foreach (var data in server.mDBData.Values)
                {
                    var alliance = ServerAllianceManager.GetAllianceById(data.Occupant);
                    if (alliance == null)
                    {
                        continue;
                    }
                    var serverAlliance = alliance.Dad;
                    foreach (var id in alliance.mDBData.Members)
                    {
                        var member = serverAlliance.GetCharacterData(id);
                        if (member == null)
                        {
                            continue;
                        }
                        var tbGA = Table.GetGuildAccess(member.Ladder);
                        if (tbGA == null)
                        {
                            Logger.Error("In SendReward().tbGA == null");
                            continue;
                        }
                        SendMailToCharacter(id, tbGA.MailId, item, args);
                    }
                }
            }
        }
Esempio n. 4
0
        //初始化数据
        private void Init(int nId, ItemBaseData Dbdata)
        {
            mDbData = Dbdata;
            SetId(nId);
            SetCount(1);
            CleanExdata();
            var tbWing = Table.GetWingQuality(nId);

            if (tbWing == null)
            {
                Logger.Error("WingQualityId  Id={0} not find", nId);
                return;
            }

            //初始翅膀祝福值
            AddExdata((int)eWingExDefine.eGrowValue);
            //培养数据
            for (var i = 0; i != 5; i++)
            {
                AddExdata(1 + i * 10000);
                AddExdata(0);
            }
            AddExdata(1);  //11 装备模型显隐(1:显示 0:隐藏)
            // 保留
            for (var i = 0; i < 4; ++i)
            {
                AddExdata(0);
            }
        }
    private void Populate()
    {
        for (int i = 0; i < 1000; i++)
        {
            ItemBaseData item = null;

            if (ItemDatabase.GetItem(i, out item))
            {
                GameObject         go    = Instantiate(prefab);
                ItemContainerPanel panel = go.GetComponent <ItemContainerPanel> ();
                panel.SetInventoryIndex(i);
                panel.SetContent(item.Sprite, item.ID, 1000);
                go.transform.SetParent(contentPanel);

                int shiftClick = 1000;
                panel.PanelButton.onClick.AddListener(() =>
                {
                    if (Input.GetKey(KeyCode.LeftShift))
                    {
                        EntityManager.instance.PlayerInventory.AddItem(item.ID, shiftClick);
                    }
                    else
                    {
                        EntityManager.instance.PlayerInventory.AddItem(item.ID, 1);
                    }
                });
            }
        }
    }
Esempio n. 6
0
        //初始化数据
        private void Init(int nId, ItemBaseData Dbdata)
        {
            mDbData = Dbdata;
            SetId(nId);
            SetCount(1);
            CleanExdata();

            var tbItem = Table.GetItemBase(nId);
            var tbSU   = Table.GetSkillUpgrading(tbItem.Exdata[0]);
            var values = tbSU.Values;

            if (values.Count % 3 != 0)
            {
                Logger.Error("tbSU.Values.Count can't be divided by 3!!");
                return;
            }
            var count   = values.Count / 3;
            var idx     = MyRandom.Random(count) * 3;
            var sceneId = values[idx++];
            var x       = values[idx++];
            var y       = values[idx++];

            //初始exdata
            AddExdata(sceneId);
            AddExdata(x);
            AddExdata(y);
        }
Esempio n. 7
0
        private void OnRankRefreshModelView(IEvent ievent)
        {
            var e    = ievent as RankRefreshModelView;
            var info = e.Info;

            ModelRoot.DestroyFakeCharacter();
            ItemBaseData elfData = null;
            var elfId            = -1;

            if (info.Equips.ItemsChange.TryGetValue((int)eBagType.Elf, out elfData))
            {
                elfId = elfData.ItemId;
            }

            if (AnimModelRoot)
            {
                AnimModelRoot.DestroyModel();
            }

            if (e.Iselfrank)
            {
                var tbElf = Table.GetElf(elfId);
                if (tbElf == null)
                {
                    return;
                }
                var dataId = tbElf.ElfModel;
                if (dataId == -1)
                {
                    return;
                }
                var tableNpc = Table.GetCharacterBase(dataId);
                if (null == tableNpc)
                {
                    Logger.Error("In CreateFormationElfModel(), null == tableNpc!!!!!!!");
                    return;
                }

                var offset  = tableNpc.CameraHeight / 10000.0f;
                var colorId = -1;
                if (elfData.Exdata.Count > (int)ElfExdataDefine.StarLevel)
                {
                    colorId = GameUtils.GetElfStarColorId(tbElf.ElfModel, elfData.Exdata[(int)ElfExdataDefine.StarLevel]);
                }
                ModelRoot.CreateWithColor(dataId, colorId, null, character =>
                {
                    character.SetScale(tableNpc.CameraMult / 10000.0f);
                    character.ObjTransform.localPosition = new Vector3(0, offset - 0.48f, 0);
                });
            }
            else if (e.IsMountRank)
            {
                CreateMountModel(info.MountId);
            }
            else
            {
                ModelRoot.Create(info.TypeId, info.EquipsModel, character => { ModelDrag.Target = character.transform; },
                                 elfId, true);
            }
        }
Esempio n. 8
0
 public void PutBackItem()
 {
     if (HaveItem)
     {
         inventory.AddItem(HaveItem);
         HaveItem = null;
     }
 }
Esempio n. 9
0
 public void SetItem(ItemBaseData item)
 {
     Item = item;
     if (Item)
     {
         itemImage.sprite = item.ItemImage;
     }
 }
Esempio n. 10
0
 //添加广播道具
 public static long PushItem(ulong characterId,
                             string characterName,
                             ItemBaseData itemBaseData,
                             int needCount,
                             int continueMinutes)
 {
     return(mImpl.PushItem(characterId, characterName, itemBaseData, needCount, continueMinutes));
 }
Esempio n. 11
0
 public void ResetData(ExchangeItem _this, long guid, ItemBaseData itemBase, int needCount)
 {
     _this.mDbdata.Id        = guid;
     _this.mDbdata.ItemData  = itemBase;
     _this.mDbdata.StartTime = DateTime.Now.ToBinary();
     _this.mDbdata.NeedCount = needCount;
     _this.State             = StoreItemType.Normal;
 }
Esempio n. 12
0
 public WingItem(ItemBaseData Dbdata, bool IsNull = true)
 {
     mDbData = Dbdata;
     if (IsNull)
     {
         SetId(-1);
         SetCount(0);
     }
 }
Esempio n. 13
0
 public ItemBase(ItemBaseData Dbdata, bool IsNull = true)
 {
     mDbData = Dbdata;
     if (IsNull)
     {
         mDbData.ItemId = -1;
         mDbData.Count  = 0;
     }
 }
Esempio n. 14
0
    public void AddItem(ItemBaseData item)
    {
        ItemSlot slot = ItemSlots.Where(i => i.Item == null).FirstOrDefault();

        if (slot)
        {
            slot.SetItem(item);
        }
    }
Esempio n. 15
0
 public TreasureMap(ItemBaseData Dbdata, bool IsNull = true)
 {
     mDbData = Dbdata;
     if (IsNull)
     {
         SetId(-1);
         SetCount(0);
     }
 }
Esempio n. 16
0
        private IEnumerator SendMailToCharacterCoroutine(Coroutine co,
                                                         ulong characterId,
                                                         int mailId,
                                                         ItemBaseData item,
                                                         StringArray args)
        {
            var msg = TeamServer.Instance.LogicAgent.SendMailToCharacterByItems(characterId, mailId, item, args);

            yield return(msg.SendAndWaitUntilDone(co));
        }
Esempio n. 17
0
        //通知玩家被谁杀死
        public void PushMail(MailManager _this, int tableId, int ExtendType, string ExtendPara0, string ExtendPara1)
        {
            var tbMail = Table.GetMail(tableId);

            if (tbMail == null)
            {
                Logger.Fatal("null==Table.GetMail({0})", tableId);
                return;
            }
            //  if (tbMail.Flag < 0)
            //  {
            //      PlayerLog.WriteLog((int)LogType.MailConfigError, "PushMail tbMail[{0}] Flag is -1", tbMail.Id);
            //       return;
            //  }
            // if (_this.mCharacter.GetFlag(tbMail.Flag))
            //  {
            //     return;
            //  }
            if (_this.mCharacter.CheckCondition(tbMail.Condition) != -2)
            {
                return;
            }
            var nextId   = _this.GetNextId();
            var tempmail = new Mail(_this.mCharacter, nextId);

            tempmail.Name        = tbMail.Title;
            tempmail.Text        = tbMail.Text;
            tempmail.Send        = tbMail.Sender;
            tempmail.ExtendType  = ExtendType;
            tempmail.ExtendPara0 = ExtendPara0;
            tempmail.ExtendPara1 = ExtendPara1;

            for (var i = 0; i != 5; ++i)
            {
                if (tbMail.ItemId[i] < 0)
                {
                    continue;
                }
                if (tbMail.ItemCount[i] < 1)
                {
                    continue;
                }
                var itemDb = new ItemBaseData();
                ShareItemFactory.Create(tbMail.ItemId[i], itemDb);
                itemDb.Count = tbMail.ItemCount[i];
                tempmail.Reward.Add(itemDb);
                //tempmail.Reward.Add(tbMail.ItemId[i],tbMail.ItemCount[i]);
            }
            tempmail.OverTime = DateTime.Now.AddDays(15).ToBinary();
            _this.Mails.Add(tempmail.Guid, tempmail);
            _this.AddChild(tempmail);
            _this.mDbData.mData.Add(tempmail.mDbData);
            tempmail.MarkDirty();
            //  _this.mCharacter.SetFlag(tbMail.Flag);
        }
Esempio n. 18
0
 //初始化数据
 private void Init(int nId, ItemBaseData Dbdata)
 {
     mDbData = Dbdata;
     SetId(nId);
     SetCount(1);
     CleanExdata();
     //初始等级
     AddExdata(1);
     //初始经验
     AddExdata(0);
 }
Esempio n. 19
0
 public void RecycleItem()
 {
     if (HaveItem)
     {
         if (!recycleMachine)
         {
             recycleMachine = GameObject.Find("再生機").GetComponent <RecycleMachine>();
         }
         recycleMachine.DropMaterial(HaveItem.HaveMaterials);
         HaveItem = null;
     }
 }
Esempio n. 20
0
        //初始化(用某块DB初始一个空的类型)
        public static ItemBase CreateByDb(ItemBaseData Dbdata)
        {
            //if (Table.GetItemBase(Dbdata.ItemId) == null)
            //{
            //    return null;
            //}
            var it = CheckGeneral.GetItemType(Dbdata.ItemId);

            switch (it)
            {
            case eItemType.Error:
                return(new ItemBase(Dbdata, false));

            case eItemType.Resources:
                return(null);

            case eItemType.Equip:
                return(new ItemEquip2(Dbdata, false));

            case eItemType.BaseItem:
                return(new ItemBase(Dbdata, false));

            case eItemType.Piece:
                return(new ItemBase(Dbdata, false));

            case eItemType.Mission:
                return(new ItemBase(Dbdata, false));

            case eItemType.Elf:     //精灵
                return(new ElfItem(Dbdata, false));

            case eItemType.Pet:     //宠物
                return(new PetItem(Dbdata, false));

            case eItemType.Wing:     //翅膀
                return(new WingItem(Dbdata, false));

            case eItemType.Astrology:     //占星宝石
                return(new Astrology(Dbdata, false));

            case eItemType.Medal:     //勋章
                return(new MedalItem(Dbdata, false));

            case eItemType.TreasureMap:     //藏宝图
                return(new TreasureMap(Dbdata, false));

            default:
                return(new ItemBase(Dbdata, false));
            }
        }
Esempio n. 21
0
        //初始化(按初始配置)
        /// <summary>
        ///     创造物品
        /// </summary>
        /// <param name="nId">物品Id</param>
        /// <returns></returns>
        public static ItemBase Create(int nId, ItemBaseData Dbdata, int Count = 1)
        {
            if (Table.GetItemBase(nId) == null)
            {
                return(null);
            }
            var it = CheckGeneral.GetItemType(nId);

            switch (it)
            {
            case eItemType.Error:
                return(null);

            case eItemType.Resources:
                return(new ItemBase(nId, Dbdata));

            case eItemType.Equip:
                return(new ItemEquip2(nId, Dbdata));

            case eItemType.BaseItem:
                return(new ItemBase(nId, Dbdata, Count));

            case eItemType.Piece:
                return(new ItemBase(nId, Dbdata));

            case eItemType.Mission:
                return(new ItemBase(nId, Dbdata));

            case eItemType.Elf:     //精灵
                return(new ElfItem(nId, Dbdata));

            case eItemType.Pet:     //宠物
                return(new PetItem(nId, Dbdata));

            case eItemType.Wing:     //翅膀
                return(new WingItem(nId, Dbdata));

            case eItemType.Astrology:     //占星宝石
                return(new Astrology(nId, Dbdata));

            case eItemType.Medal:     //勋章
                return(new MedalItem(nId, Dbdata));

            case eItemType.TreasureMap:     //藏宝图
                return(new TreasureMap(nId, Dbdata));

            default:
                return(null);
            }
        }
Esempio n. 22
0
        private static int GetGrowAttrId(ItemBaseData dbData, int index)
        {
            if (index < (int)eWingExDefine.eGrowProperty)
            {
                return(-1);
            }

            var attrId = -1;

            if (index < dbData.Exdata.Count)
            {
                attrId = dbData.Exdata[index];
            }
            return(attrId);
        }
Esempio n. 23
0
        private void OnRefreshRankModelView(IEvent ievent)
        {
            var e    = ievent as BattleUnionRefreshModelViewLogic;
            var info = e.Info;
            //ModelRoot.DestroyFakeCharacter();
            ItemBaseData elfData = null;
            var elfId            = -1;

            if (info.Equips.ItemsChange.TryGetValue((int)eBagType.Elf, out elfData))
            {
                elfId = elfData.ItemId;
            }
            //ModelRoot.Create(info.TypeId, info.EquipsModel, character => { ModelDrag.Target = character.transform; }, elfId,
            //    true);
        }
Esempio n. 24
0
 public ElfItem(ItemBaseData Dbdata, bool IsNull = true)
 {
     mDbData = Dbdata;
     if (IsNull)
     {
         SetId(-1);
         SetCount(0);
     }
     else
     {
         for (var i = mDbData.Exdata.Count; i < (int)ElfExdataDefine.Count; ++i)
         {
             AddExdata(-1);
         }
     }
 }
Esempio n. 25
0
        //添加广播道具
        public long PushItem(ulong characterId,
                             string characterName,
                             ItemBaseData itemBaseData,
                             int needCount,
                             int ContinueMinutes)
        {
            var temp = new DBExchangeOne();

            temp.Id = GetNextId();
            temp.SellCharacterName = characterName;
            temp.SellCharacterId   = characterId;
            temp.NeedCount         = needCount;
            temp.ItemData          = itemBaseData;
            temp.OverTime          = DateTime.Now.AddMinutes(ContinueMinutes).ToBinary();
            ExchangeManager.mDbData.StoreItems.Add(temp.Id, temp);
            AddItem(temp);
            //tbItem.
            return(temp.Id);
        }
    private void CreateButtons()
    {
        List <ItemBaseData> items = new List <ItemBaseData> ();

        for (int i = 0; i < 1000; i++)
        {
            ItemBaseData item = null;

            if (ItemDatabase.GetItem(i, out item))
            {
                if (itemsToIgnore.Contains(i))
                {
                    continue;
                }

                items.Add(item);
            }
        }

        items = items.OrderBy(x => x.Name).ToList();

        for (int i = 0; i < items.Count; i++)
        {
            ItemBaseData item   = items[i];
            int          itemID = item.ID;

            GameObject newButton = Instantiate(itemButtonGameObject);
            newButton.transform.SetParent(buttonsParent);
            newButton.GetComponentInChildren <TextMeshProUGUI> ().text = item.Name;
            newButton.GetComponentInChildren <TextMeshProUGUI> ().transform.GetChild(0).GetComponent <Image> ().sprite = item.Sprite;

            newButton.GetComponentInChildren <Button> ().onClick.AddListener(() =>
            {
                OpenInformationPanel(itemID);
            });

            ItemInformation itemInformation = new ItemInformation(itemID, npcs, craftingTables, shopkeepers);
            dictionary.Add(itemID, itemInformation);
        }

        itemButtonGameObject.SetActive(false);
    }
Esempio n. 27
0
        private IEnumerator PassIn(Coroutine co, GroupShopOne _this)
        {
            var args = new StringArray();
            var item = new ItemBaseData();

            item.ItemId = (int)eResourcesType.DiamondRes;
            var tbItem = Table.GetItemBase(_this.mDbData.ItemData.ItemId);

            if (tbItem != null)
            {
                args.Items.Add(tbItem.Name);
            }
            foreach (var v in _this.CharactersCount)
            {
                item.Count = v.Value;
                var msg = TeamServer.Instance.LogicAgent.SendMailToCharacterByItems(v.Key, 5, item, args);
                msg.SendAndWaitUntilDone(co);
            }
            Reset(_this);
            yield break;
        }
Esempio n. 28
0
        //初始化数据
        private void Init(int nId, ItemBaseData Dbdata)
        {
            mDbData = Dbdata;
            SetId(nId);
            SetCount(1);
            CleanExdata();
            //初始等级
            AddExdata(1);
            //初始经验
            AddExdata(0);
            var tbMedal = Table.GetMedal(nId);

            if (tbMedal != null)
            {
                var exp = Table.GetSkillUpgrading(tbMedal.LevelUpExp).GetSkillUpgradingValue(1);
                AddExdata(exp);
            }
            else
            {
                AddExdata(0);
            }
        }
Esempio n. 29
0
 void IEndDragHandler.OnEndDrag(PointerEventData eventData)
 {
     if (dragItem)
     {
         Destroy(dragItem);
     }
     if (IinventoryManager.Instance.GetRecycle(eventData))
     {
         Item = null;
         IinventoryManager.Instance.RecycleItem();
     }
     else if (IinventoryManager.Instance.GetRecycleO(eventData))
     {
         if (Player.Instance.obstacle)
         {
             Player.Instance.obstacle.BreakObstacle(Item.type);
         }
         Item = null;
         IinventoryManager.Instance.PutBackItem();
     }
     else if (IinventoryManager.Instance.GetRecycleT(eventData))
     {
         if (Player.Instance.timeMachine)
         {
             if (Item.type == CommandType.GetTimeParts)
             {
                 Player.Instance.timeMachine.Message();
             }
         }
         Item = null;
         IinventoryManager.Instance.PutBackItem();
     }
     else
     {
         Item = null;
         IinventoryManager.Instance.PutBackItem();
     }
 }
Esempio n. 30
0
        //物品封装
        public static string ItemWrap(ItemBaseData item)
        {
            var data = new ChatInfoNodeData();

            data.Type = (int)eChatLinkType.Equip;
            data.Id   = item.ItemId;
            var nowItemExdataCount0 = item.Exdata.Count;

            for (var i = 0; i < nowItemExdataCount0; i++)
            {
                data.ExData.Add(item.Exdata[i]);
            }
            var str = "";

            using (var ms = new MemoryStream())
            {
                Serializer.Serialize(ms, data);
                var wrap = LZ4Codec.Encode(ms.GetBuffer(), 0, (int)ms.Length);
                str = Convert.ToBase64String(wrap);
            }
            str = SpecialCode.ChatBegin + str + SpecialCode.ChatEnd;
            return(str);
        }