Exemplo n.º 1
0
 public int getBasicSkill()
 {
     if (basicSkill != 0)
     {
         return(basicSkill);
     }
     else
     {
         ItemData it = null;
         if (owner.getEquipment().getEquipments().ContainsKey(7))
         {
             it = ItemDataCache.Instance.getItemData(owner.getEquipment().getEquipments()[7].getItemID());
         }
         if (it != null && it.getCategory() < 13)
         {
             return(SkillDataCache.Instance.getStandardBasicSkillId(it.getCategory()));
         }
         else
         {
             return(SkillDataCache.Instance.getWoodenSkillID(owner.getcClass()));
         }
     }
 }
Exemplo n.º 2
0
        //equip an item
        public Boolean equipItem(int fromInvID, int toEquipID, Equipment equip)
        {
            updateInv();
            if (equipping == true)
            {
                fromInvID = seq.IndexOf(8);
                if (fromInvID == -1)
                {
                    Console.WriteLine("Cannot equip item [item index missing]");
                    return(false);
                }
            }

            Item itemF;

            //swap if holdingItem
            if (indexHold != -1)
            {
                int saveSwapHash = seq[indexToSwap];
                seq[indexToSwap]        = -1;
                seq[nextFreeSequence()] = seq[indexHold];
                seq[indexHold]          = saveSwapHash;
                indexHold = -1;
                itemF     = holdingItem;
            }
            else
            {
                //remove item from inv
                if (seq[fromInvID] == -1)
                {
                    Console.WriteLine("Cannot equip item [item missing]");
                    return(false);
                }
                itemF = inv[seq[fromInvID]];
                if (itemF == null)
                {
                    Console.WriteLine("Cannot equip item [item null(ghost)]");
                    return(false);
                }
                removeItemFromInv(seq[fromInvID]);
                seq[fromInvID] = -1;
            }

            ItemData itemE = ItemDataCache.Instance.getItemData(itemF.getItemID());

            Console.WriteLine("to equip slot {0} | itemcate {1}", toEquipID, itemE.getCategory());
            if (!itemE.getClassUsable()[equip.getOwner().getcClass() - 1])
            {
                Console.WriteLine("nie da sie ubrać qq :[ nie dla klasy huj");
                return(false);
            }
            if (itemE.getMinLvl() > equip.getOwner().getLevel())
            {
                Console.WriteLine("nie da sie ubrać qq :[ za niski lvlion");
                return(false);
            }
            if (itemE.getMaxLvl() < equip.getOwner().getLevel())
            {
                Console.WriteLine("nie da sie ubrać qq :[ za wysoki lvlion");
                return(false);
            }
            if (itemE.getFaction() != 0 && equip.getOwner().getFaction() != itemE.getFaction())
            {
                Console.WriteLine("not for yar faction");
                return(false);
            }
            short[] equipstats = itemE.getRequirementStats();
            short[] charstats  = equip.getOwner().getCStats();
            for (int i = 0; i < 5; i++)
            {
                if (equipstats[i] > charstats[i])
                {
                    Console.WriteLine("nie da sie ubrać qq :[ za niskie staty :<<");
                    return(false);
                }
            }
            switch (toEquipID)
            {
            /*0, cap
             * 1, neck
             * 2, cape
             * 3, jacket
             * 4, pants
             * 5, armor
             * 6, brace
             * 7, wep 1
             * 8, wep 2
             * 9, ring 1
             * 10, ring 2
             * 11, shoes
             * 12, bird
             * 13, tablet
             * 14, fame pad
             * 15, mount
             * 16, bead*/
            case 0:
            {
                if (itemE.getCategory() != 18)
                {
                    return(false);
                }
                break;
            }

            case 1:
            {
                if (itemE.getCategory() != 20)
                {
                    return(false);
                }
                break;
            }

            case 2:
            {
                break;
            }

            case 3:
            {
                if (itemE.getCategory() != 13)
                {
                    return(false);
                }
                break;
            }

            case 4:
            {
                if (itemE.getCategory() != 14)
                {
                    return(false);
                }
                break;
            }

            case 5:
            {
                if (itemE.getCategory() != 15)
                {
                    return(false);
                }
                break;
            }

            case 6:
            {
                if (itemE.getCategory() != 22)
                {
                    return(false);
                }
                break;
            }

            case 7:
            case 8:
            {
                if (itemE.getCategory() < 1 || itemE.getCategory() > 12)
                {
                    return(false);
                }
                break;
            }

            case 9:
            case 10:
            {
                if (itemE.getCategory() != 21)
                {
                    return(false);
                }
                break;
            }

            case 11:
            {
                if (itemE.getCategory() != 17)
                {
                    return(false);
                }
                break;
            }

            case 12:
            case 13:
            {
                if (itemE.getCategory() != 23 && itemE.getCategory() != 53)
                {
                    return(false);
                }
                break;
            }

            case 14:
            {
                break;
            }

            case 15:
            {
                if (itemE.getCategory() != 52 && itemE.getCategory() != 53 && itemE.getCategory() != 55)
                {
                    return(false);
                }
                break;
            }

            case 16:
            {
                if (itemE.getCategory() != 47)
                {
                    return(false);
                }
                break;
            }

            default:
            {
                return(false);
            }
            }

            //equip
            if (equip.getEquipments().ContainsKey((byte)toEquipID))
            {
                //8 is imaginary slot
                seq[nextFreeSequence()] = 8;
                putIntoInv(8, 0, equip.getEquipments()[(byte)toEquipID]);
                equip.getEquipments()[(byte)toEquipID] = itemF;
                equipping = true;
            }
            else
            {
                equip.getEquipments()[(byte)toEquipID] = itemF;
            }

            saveInv();
            return(true);
        }