Exemplo n.º 1
0
 public ItemBag(ItemFightStats itemFightStats, string itemName, int itemPrice,
                ItemUseData itemUseData, Sprite itemSprite, int maxBagSize, List <Item> items)
     : base(itemFightStats, itemName, itemPrice, itemUseData, itemSprite)
 {
     this.maxBagSize = maxBagSize;
     this.items      = items;
 }
Exemplo n.º 2
0
    public void OnReceiveUseItemPacket(int node, PacketId id, byte[] data)
    {
        ItemUsePacket packet  = new ItemUsePacket(data);
        ItemUseData   useData = packet.GetPacket();

        Debug.Log("Receive UseItemPacket:" + useData.userId + " -> " +
                  useData.targetId + " (" + useData.itemCategory + ")");

        chrController user = CharacterRoot.getInstance().findPlayer(useData.userId);

        AccountData account_data = AccountManager.get().getAccountData(GlobalParam.getInstance().global_account_id);

        if (user != null && account_data.avator_id != useData.userId)
        {
            Debug.Log("use item. favor:" + useData.itemFavor);

            Item.Favor favor = new Item.Favor();
            favor.category = (Item.CATEGORY)useData.itemCategory;
            this.useItem(-1, favor, useData.userId, useData.targetId, false);
        }
        else
        {
            Debug.Log("Receive packet is already done.");
        }
    }
Exemplo n.º 3
0
 public void UsePrimary()
 {
     if (PrimarySlot.Use())
     {
         ItemUseData data = new ItemUseData(0);
         data.ToBoltItemUseEventEvent(Character.Entity).Send();
     }
 }
Exemplo n.º 4
0
        //
        public bool Serialize(ItemUseData packet)
        {
            bool ret = true;

            ret &= Serialize(packet.itemFavor);
            ret &= Serialize(packet.targetId, ItemUseData.characterNameLength);
            ret &= Serialize(packet.userId, ItemUseData.characterNameLength);
            ret &= Serialize(packet.itemCategory);

            return(true);
        }
Exemplo n.º 5
0
 //ctr for non eatable items
 public Item(ItemFightStats itemFightStats, string itemName, int itemPrice,
             ItemUseData itemUseData, Sprite itemSprite, int capacity, List <Item> innerItems)
 {
     this.stats          = new ItemStats(PlayerStats.NONE, 0, 0, 0);
     this.id             = GenerateId(itemName, stats);
     this.ItemFightStats = itemFightStats;
     this.itemName       = itemName;
     this.itemPrice      = itemPrice;
     this.itemUseData    = itemUseData;
     this.itemSprite     = itemSprite;
     this.capacity       = capacity;
     this.innerItems     = innerItems;
 }
Exemplo n.º 6
0
        //
        public bool Deserialize(ref ItemUseData element)
        {
            if (GetDataSize() == 0)
            {
                // 데이터가 설정되어 있지 않습니다.
                return(false);
            }

            bool ret = true;

            ret &= Deserialize(ref element.itemFavor);
            ret &= Deserialize(ref element.targetId, ItemUseData.characterNameLength);
            ret &= Deserialize(ref element.userId, ItemUseData.characterNameLength);
            ret &= Deserialize(ref element.itemCategory);

            return(true);
        }
Exemplo n.º 7
0
    public void SendItemUseData(Item.Favor item_favor, string user_name, string target_name)
    {
        ItemUseData data = new ItemUseData();

        Debug.Log("[CLIENT] SendItemUseData: user:"******" target:" + target_name);
        dbwin.console().print("[CLIENT] SendItemUseData: user:"******" target:" + target_name);

        data.userId       = user_name;
        data.targetId     = target_name;
        data.itemCategory = (int)item_favor.category;

        ItemUsePacket packet = new ItemUsePacket(data);

        if (m_network != null)
        {
            int serverNode = m_network.GetServerNode();
            m_network.SendReliable <ItemUseData>(serverNode, packet);
        }
    }
Exemplo n.º 8
0
        private void _useItem(ItemUseData data)
        {
            World.Instance.MainPlayer.ActiveCharacter.UpdateInventoryItem(data.ItemID, data.CharacterAmount, data.Weight, data.MaxWeight);
            switch (data.Type)
            {
            case ItemType.Teleport: /*Warp packet handles the rest!*/ break;

            case ItemType.Heal:
            {
                World.Instance.MainPlayer.ActiveCharacter.Stats.SetHP(data.HP);
                World.Instance.MainPlayer.ActiveCharacter.Stats.SetTP(data.TP);

                int percent = (int)Math.Round(100.0 * ((double)data.HP / World.Instance.MainPlayer.ActiveCharacter.Stats.maxhp));

                if (data.HPGain > 0)
                {
                    World.Instance.ActiveCharacterRenderer.SetDamageCounterValue(data.HPGain, percent, true);
                }
                m_game.Hud.RefreshStats();
            }
            break;

            case ItemType.HairDye:
            {
                World.Instance.MainPlayer.ActiveCharacter.RenderData.SetHairColor(data.HairColor);
            }
            break;

            case ItemType.Beer:
                World.Instance.ActiveCharacterRenderer.MakeDrunk();
                m_game.Hud.SetStatusLabel(DATCONST2.STATUS_LABEL_TYPE_WARNING, DATCONST2.STATUS_LABEL_ITEM_USE_DRUNK);
                break;

            case ItemType.EffectPotion:
            {
                //World.Instance.ActiveCharacterRenderer.ShowEffect(data.EffectID);
                //todo: get effects working
            }
            break;

            case ItemType.CureCurse:
            {
                //actually remove the item(s) from the main character
                Character c = World.Instance.MainPlayer.ActiveCharacter;
                for (int i = 0; i < (int)EquipLocation.PAPERDOLL_MAX; ++i)
                {
                    int nextID = c.PaperDoll[i];
                    if (nextID > 0 && World.Instance.EIF.GetItemRecordByID(nextID).Special == ItemSpecial.Cursed)
                    {
                        c.PaperDoll[i] = 0;
                        switch ((EquipLocation)i)
                        {
                        case EquipLocation.Boots: c.RenderData.SetBoots(0); break;

                        case EquipLocation.Armor: c.RenderData.SetArmor(0); break;

                        case EquipLocation.Hat: c.RenderData.SetHat(0); break;

                        case EquipLocation.Shield: c.RenderData.SetShield(0); break;

                        case EquipLocation.Weapon: c.RenderData.SetWeapon(0); break;
                        }
                    }
                }

                //update main character's stats
                CharStatData s = c.Stats;
                s.SetMaxHP(data.CureStats.MaxHP);
                s.SetMaxTP(data.CureStats.MaxTP);
                s.SetStr(data.CureStats.Str);
                s.SetInt(data.CureStats.Int);
                s.SetWis(data.CureStats.Wis);
                s.SetAgi(data.CureStats.Agi);
                s.SetCon(data.CureStats.Con);
                s.SetCha(data.CureStats.Cha);
                s.SetMinDam(data.CureStats.MinDam);
                s.SetMaxDam(data.CureStats.MaxDam);
                s.SetAccuracy(data.CureStats.Accuracy);
                s.SetEvade(data.CureStats.Evade);
                s.SetArmor(data.CureStats.Armor);
                m_game.Hud.RefreshStats();
            }
            break;

            case ItemType.EXPReward:
            {
                CharStatData s = World.Instance.MainPlayer.ActiveCharacter.Stats;
                if (s.level < data.RewardStats.Level)
                {
                    //level up!
                    World.Instance.MainPlayer.ActiveCharacter.Emote(Emote.LevelUp);
                    World.Instance.ActiveCharacterRenderer.PlayerEmote();
                    s.level = data.RewardStats.Level;
                }
                s.exp         = data.RewardStats.Exp;
                s.statpoints  = data.RewardStats.StatPoints;
                s.skillpoints = data.RewardStats.SkillPoints;
                s.maxhp       = data.RewardStats.MaxHP;
                s.maxtp       = data.RewardStats.MaxTP;
                s.maxsp       = data.RewardStats.MaxSP;
            }
            break;
            }
        }
Exemplo n.º 9
0
	public void SendItemUseData(Item.Favor item_favor, string user_name, string target_name)
	{
		ItemUseData data = new ItemUseData();
		
		Debug.Log("[CLIENT] SendItemUseData: user:"******" target:" + target_name);
		dbwin.console().print("[CLIENT] SendItemUseData: user:"******" target:" + target_name);

		data.userId = user_name;
		data.targetId = target_name;
		data.itemCategory = (int)item_favor.category;

		ItemUsePacket packet = new ItemUsePacket(data);
		
		if (m_network != null) {
			int serverNode = m_network.GetServerNode();
			m_network.SendReliable<ItemUseData>(serverNode, packet);
		}
	}
Exemplo n.º 10
0
    void ButtonControl()
    {
        if (Input.GetKeyDown(KeyCode.DownArrow) && ShowUI.activeInHierarchy == true)
        {
            if (btn == ItemWidgetList[2])
            {
                ItemWidgetIndex = 0;
                btn             = ItemWidgetList[ItemWidgetIndex];

                TransformChoicePos(btn);
                Debug.Log(ItemWidgetList[ItemWidgetIndex].name);
            }
            else
            {
                ItemWidgetIndex += 1;
                btn              = ItemWidgetList[ItemWidgetIndex];
                //Debug.Log(btn.transform.position);
                TransformChoicePos(btn);
                //btn.isActive_Button = true;
                Debug.Log(ItemWidgetList[ItemWidgetIndex].name);
            }
        }
        else if (Input.GetKeyDown(KeyCode.DownArrow) && isActiveWhenShowUI == true)
        {
            Debug.Log("xxx");
            int length = ItemsBtnControlList.Count;
            if (ItemsBtnControlList.Count == 1)
            {
                index = 0;
                btn   = ItemsBtnControlList[index];
                TransformChoicePos(btn);
            }
            else
            {
                if (btn == ItemsBtnControlList[length - 1])
                {
                    // Debug.Log("Error");
                    index = 0;
                    btn   = ItemsBtnControlList[index];
                    TransformChoicePos(btn);
                    Debug.Log(ItemsBtnControlList[index].name);
                }
                else
                {
                    index += 1;
                    btn    = ItemsBtnControlList[index];
                    TransformChoicePos(btn);
                    Debug.Log(ItemsBtnControlList[index].name);
                }
            }
        }

        else if (Input.GetKeyDown(KeyCode.DownArrow) && isActive_1 == true)//ShowUI.activeInHierarchy == true)
        {
            int length = ItemsBtnControlList.Count;
            if (ItemsBtnControlList.Count == 1)
            {
                index = 0;
                btn   = ItemsBtnControlList[index];
                TransformChoicePos(btn);
            }
            else
            {
                if (btn == ItemsBtnControlList[length - 1])
                {
                    //Debug.Log("Error");
                    index = 0;
                    btn   = ItemsBtnControlList[index];
                    TransformChoicePos(btn);
                    Debug.Log(ItemsBtnControlList[index].name);
                }
                else
                {
                    index += 1;
                    btn    = ItemsBtnControlList[index];
                    TransformChoicePos(btn);
                    Debug.Log(ItemsBtnControlList[index].name);
                }
            }
        }
        else if (Input.GetKeyDown(KeyCode.DownArrow) && isActive_1 == false)
        {
            if (btn == m_BtnList[2])
            {
                index = 0;
                btn   = m_BtnList[index];

                TransformChoicePos(btn);
                Debug.Log(m_BtnList[index].name);
            }
            else
            {
                index += 1;
                btn    = m_BtnList[index];
                //Debug.Log(btn.transform.position);
                TransformChoicePos(btn);
                //btn.isActive_Button = true;
                Debug.Log(m_BtnList[index].name);
            }
        }
        if (Input.GetKeyDown(KeyCode.UpArrow) && ShowUI.activeInHierarchy == true)
        {
            if (btn == ItemWidgetList[0])
            {
                ItemWidgetIndex = 2;
                btn             = ItemWidgetList[ItemWidgetIndex];
                TransformChoicePos(btn);
                Debug.Log(ItemWidgetList[ItemWidgetIndex].name);
            }
            else
            {
                ItemWidgetIndex = ItemWidgetIndex - 1;
                btn             = ItemWidgetList[ItemWidgetIndex];
                TransformChoicePos(btn);
                Debug.Log(ItemWidgetList[ItemWidgetIndex].name);
            }
        }
        else if (Input.GetKeyDown(KeyCode.UpArrow) && isActiveWhenShowUI == true)
        {
            if (ItemsBtnControlList.Count == 1)
            {
                index = 0;
                btn   = ItemsBtnControlList[index];
            }
            else
            {
                if (btn == ItemsBtnControlList[0])
                {
                    index = ItemsBtnControlList.Count - 1;
                    btn   = ItemsBtnControlList[index];
                    TransformChoicePos(btn);
                    Debug.Log(ItemsBtnControlList[index].name);
                }
                else
                {
                    index = index - 1;
                    btn   = ItemsBtnControlList[index];
                    TransformChoicePos(btn);
                    Debug.Log(ItemsBtnControlList[index].name);
                }
            }
        }
        else if (Input.GetKeyDown(KeyCode.UpArrow) && isActive_1 == true)
        {
            if (ItemsBtnControlList.Count == 1)
            {
                index = 0;
                btn   = ItemsBtnControlList[index];
            }
            else
            {
                if (btn == ItemsBtnControlList[0])
                {
                    index = ItemsBtnControlList.Count - 1;
                    btn   = ItemsBtnControlList[index];
                    TransformChoicePos(btn);
                    Debug.Log(ItemsBtnControlList[index].name);
                }
                else
                {
                    index = index - 1;
                    btn   = ItemsBtnControlList[index];
                    TransformChoicePos(btn);
                    Debug.Log(ItemsBtnControlList[index].name);
                }
            }
        }
        else if (Input.GetKeyDown(KeyCode.UpArrow) && isActive_1 == false)
        {
            if (btn == m_BtnList[0])
            {
                index = 2;
                btn   = m_BtnList[index];
                TransformChoicePos(btn);
                Debug.Log(m_BtnList[index].name);
            }
            else
            {
                index = index - 1;
                btn   = m_BtnList[index];
                TransformChoicePos(btn);
                //btn.isActive_Button = true;
                Debug.Log(m_BtnList[index].name);
            }
        }
        if (Input.GetKeyDown(KeyCode.RightArrow) && ShowUI.activeInHierarchy == true)
        {
            return;
        }
        else if (Input.GetKeyDown(KeyCode.RightArrow) && isActiveWhenShowUI == true)
        {
            twoTothreeIndex = index;
            OnItemsClick_2();
            btn = ItemWidgetList[0];
            TransformChoicePos(btn);
        }
        else if (Input.GetKeyDown(KeyCode.RightArrow) && isActiveLeftArrow == true)//开启第三层,到第三层
        {
            twoTothreeIndex = index;
            OnItemsClick_2();
            btn = ItemWidgetList[0];
            TransformChoicePos(btn);
            Debug.Log("index=" + index);

            // isActiveWhenShowUI = true;
        }
        else if (Input.GetKeyDown(KeyCode.RightArrow) && isActive_1 == true)//到第二层
        {
            isActiveLeftArrow = true;
            if (ItemsBtnControlList.Count == 1)
            {
                index = 0;
                btn   = ItemsBtnControlList[index];
                TransformChoicePos(btn);
            }
            else
            {
                btn = ItemsBtnControlList[index];
                TransformChoicePos(btn);
            }


            //OnItemsClick_2();


            //isActive_1 = false;
        }
        else if (Input.GetKeyDown(KeyCode.RightArrow) && isActive_1 == false)//开启第二层
        {
            ItemGrid.gameObject.SetActive(true);
            oneTotwoIndex = index;
            Debug.Log("oneTotwoIndex=" + oneTotwoIndex);
            Debug.Log("index=" + index);
            switch (index)
            {
            case 0:
                OnClickEquipment();
                isActive_1 = true;
                break;

            case 1:
                OnClickMaterial();
                isActive_1 = true;
                break;

            case 2:
                OnClickItems();
                isActive_1 = true;
                break;
            }
        }

        if (Input.GetKeyDown(KeyCode.LeftArrow) && ShowUI.activeInHierarchy == true)
        {
            Debug.Log("xxx");
            isActiveWhenShowUI = true;
            isActiveLeftArrow  = false;
            if (ShowUI.activeInHierarchy == true)
            {
                ShowUI.SetActive(false);
            }
            index = twoTothreeIndex;
            Debug.Log(twoTothreeIndex + "twoTothreeIndex");
            btn = ItemsBtnControlList[index];
            TransformChoicePos(btn);
        }

        else if (Input.GetKeyDown(KeyCode.LeftArrow) && isActive_1 == true)
        {
            isActive_1         = false;
            isActiveLeftArrow  = false;
            isActiveWhenShowUI = false;
            ItemGrid.gameObject.SetActive(false);
            index = oneTotwoIndex;
            btn   = m_BtnList[index];
            TransformChoicePos(btn);
            //if (ShowUI.activeInHierarchy == true)
            //{
            //    ShowUI.SetActive(false);
            //}

            // TransformChoicePos(btn);
        }

        if (Input.GetKeyDown(KeyCode.Return) && btn.transform.position == ItemWidgetList[0].transform.position)
        {
            ItemUseData data = new ItemUseData();
            ItemUseManager.Instance.addDelegate_Use(data);
            if (data.u_Hander != null)
            {
                data.u_Hander();
            }
        }
    }
Exemplo n.º 11
0
 public void addDelegate_Use(ItemUseData data)
 {
     //EquipList = ItemDataManager.Instance.GetHasEquipList();
     data.u_Hander += ClickUse;
 }
Exemplo n.º 12
0
 // кстр для пустых ячеек инв
 public Item(string itemName, ItemUseData itemUseData, Sprite sprite)
 {
     this.itemName    = itemName;
     this.itemUseData = itemUseData;
     this.itemSprite  = sprite;
 }
        private void _useItem(ItemUseData data)
        {
            OldWorld.Instance.MainPlayer.ActiveCharacter.UpdateInventoryItem(data.ItemID, data.CharacterAmount, data.Weight, data.MaxWeight);
            switch (data.Type)
            {
            case ItemType.Teleport: /*Warp packet handles the rest!*/ break;

            case ItemType.Heal:
            {
                OldWorld.Instance.MainPlayer.ActiveCharacter.Stats.HP = data.HP;
                OldWorld.Instance.MainPlayer.ActiveCharacter.Stats.TP = data.TP;

                int percent = (int)Math.Round(100.0 * ((double)data.HP / OldWorld.Instance.MainPlayer.ActiveCharacter.Stats.MaxHP));

                if (data.HPGain > 0)
                {
                    OldWorld.Instance.ActiveCharacterRenderer.SetDamageCounterValue(data.HPGain, percent, true);
                }
                m_game.Hud.RefreshStats();
            }
            break;

            case ItemType.HairDye:
            {
                OldWorld.Instance.MainPlayer.ActiveCharacter.RenderData.SetHairColor(data.HairColor);
            }
            break;

            case ItemType.Beer:
                OldWorld.Instance.ActiveCharacterRenderer.MakeDrunk();
                m_game.Hud.SetStatusLabel(EOResourceID.STATUS_LABEL_TYPE_WARNING, EOResourceID.STATUS_LABEL_ITEM_USE_DRUNK);
                break;

            case ItemType.EffectPotion:     //todo: effect potions for other players
                OldWorld.Instance.ActiveCharacterRenderer.ShowPotionAnimation(data.EffectID);
                break;

            case ItemType.CureCurse:
            {
                //actually remove the item(s) from the main character
                OldCharacter c = OldWorld.Instance.MainPlayer.ActiveCharacter;
                for (int i = 0; i < (int)EquipLocation.PAPERDOLL_MAX; ++i)
                {
                    int nextID = c.PaperDoll[i];
                    if (nextID > 0 && OldWorld.Instance.EIF[nextID].Special == ItemSpecial.Cursed)
                    {
                        c.PaperDoll[i] = 0;
                        switch ((EquipLocation)i)
                        {
                        case EquipLocation.Boots: c.RenderData.SetBoots(0); break;

                        case EquipLocation.Armor: c.RenderData.SetArmor(0); break;

                        case EquipLocation.Hat: c.RenderData.SetHat(0); break;

                        case EquipLocation.Shield: c.RenderData.SetShield(0); break;

                        case EquipLocation.Weapon: c.RenderData.SetWeapon(0); break;
                        }
                    }
                }

                //update main character's stats
                CharStatData s = c.Stats;
                s.MaxHP    = data.CureStats.MaxHP;
                s.MaxTP    = data.CureStats.MaxTP;
                s.Str      = data.CureStats.Str;
                s.Int      = data.CureStats.Int;
                s.Wis      = data.CureStats.Wis;
                s.Agi      = data.CureStats.Agi;
                s.Con      = data.CureStats.Con;
                s.Cha      = data.CureStats.Cha;
                s.MinDam   = data.CureStats.MinDam;
                s.MaxDam   = data.CureStats.MaxDam;
                s.Accuracy = data.CureStats.Accuracy;
                s.Evade    = data.CureStats.Evade;
                s.Armor    = data.CureStats.Armor;
                m_game.Hud.RefreshStats();
            }
            break;

            case ItemType.EXPReward:
            {
                CharStatData s = OldWorld.Instance.MainPlayer.ActiveCharacter.Stats;
                if (s.Level < data.RewardStats.Level)
                {
                    //level up!
                    OldWorld.Instance.MainPlayer.ActiveCharacter.Emote(Emote.LevelUp);
                    OldWorld.Instance.ActiveCharacterRenderer.PlayerEmote();
                    s.Level = data.RewardStats.Level;
                }
                s.Experience  = data.RewardStats.Exp;
                s.StatPoints  = data.RewardStats.StatPoints;
                s.SkillPoints = data.RewardStats.SkillPoints;
                s.MaxHP       = data.RewardStats.MaxHP;
                s.MaxTP       = data.RewardStats.MaxTP;
                s.MaxSP       = data.RewardStats.MaxSP;
            }
            break;
            }
        }
Exemplo n.º 14
0
 public void SpawnPrimaryEffects(ItemUseData data)
 {
     Item.SpawnUseEffects(Character);
 }
Exemplo n.º 15
0
        public override void OnEvent(ItemUseEvent evnt)
        {
            ItemUseData data = ItemUseData.FromBoltEvent(evnt);

            Character.Inventory.SpawnPrimaryEffects(data);
        }