예제 #1
0
        public static InventoryReadResult GetInventoryItems()
        {
            var result = new InventoryReadResult();

            if (!Scanner.Instance.Locations.ContainsKey("INVENTORY"))
            {
                return(result);
            }

            try
            {
                InventoryPointerMap = new IntPtr(MemoryHandler.Instance.GetPlatformUInt(Scanner.Instance.Locations["INVENTORY"]));

                result.InventoryEntities = new List <InventoryEntity>
                {
                    GetItems(InventoryPointerMap, Inventory.Container.INVENTORY_1),
                    GetItems(InventoryPointerMap, Inventory.Container.INVENTORY_2),
                    GetItems(InventoryPointerMap, Inventory.Container.INVENTORY_3),
                    GetItems(InventoryPointerMap, Inventory.Container.INVENTORY_4),
                    GetItems(InventoryPointerMap, Inventory.Container.CURRENT_EQ),
                    GetItems(InventoryPointerMap, Inventory.Container.EXTRA_EQ),
                    GetItems(InventoryPointerMap, Inventory.Container.CRYSTALS),
                    GetItems(InventoryPointerMap, Inventory.Container.QUESTS_KI),
                    GetItems(InventoryPointerMap, Inventory.Container.HIRE_1),
                    GetItems(InventoryPointerMap, Inventory.Container.HIRE_2),
                    GetItems(InventoryPointerMap, Inventory.Container.HIRE_3),
                    GetItems(InventoryPointerMap, Inventory.Container.HIRE_4),
                    GetItems(InventoryPointerMap, Inventory.Container.HIRE_5),
                    GetItems(InventoryPointerMap, Inventory.Container.HIRE_6),
                    GetItems(InventoryPointerMap, Inventory.Container.HIRE_7),
                    GetItems(InventoryPointerMap, Inventory.Container.COMPANY_1),
                    GetItems(InventoryPointerMap, Inventory.Container.COMPANY_2),
                    GetItems(InventoryPointerMap, Inventory.Container.COMPANY_3),
                    GetItems(InventoryPointerMap, Inventory.Container.COMPANY_CRYSTALS),
                    GetItems(InventoryPointerMap, Inventory.Container.AC_MH),
                    GetItems(InventoryPointerMap, Inventory.Container.AC_OH),
                    GetItems(InventoryPointerMap, Inventory.Container.AC_HEAD),
                    GetItems(InventoryPointerMap, Inventory.Container.AC_BODY),
                    GetItems(InventoryPointerMap, Inventory.Container.AC_HANDS),
                    GetItems(InventoryPointerMap, Inventory.Container.AC_BELT),
                    GetItems(InventoryPointerMap, Inventory.Container.AC_LEGS),
                    GetItems(InventoryPointerMap, Inventory.Container.AC_FEET),
                    GetItems(InventoryPointerMap, Inventory.Container.AC_EARRINGS),
                    GetItems(InventoryPointerMap, Inventory.Container.AC_NECK),
                    GetItems(InventoryPointerMap, Inventory.Container.AC_WRISTS),
                    GetItems(InventoryPointerMap, Inventory.Container.AC_RINGS),
                    GetItems(InventoryPointerMap, Inventory.Container.AC_SOULS)
                };
            }
            catch (Exception ex)
            {
                MemoryHandler.Instance.RaiseException(Logger, ex, true);
            }

            return(result);
        }
예제 #2
0
        public static InventoryReadResult GetInventoryItems()
        {
            var result = new InventoryReadResult();

            if (!CanGetInventory() || !MemoryHandler.Instance.IsAttached)
            {
                return(result);
            }

            try
            {
                result.InventoryEntities = new List <InventoryEntity>
                {
                    GetItems(Inventory.Container.INVENTORY_1),
                    GetItems(Inventory.Container.INVENTORY_2),
                    GetItems(Inventory.Container.INVENTORY_3),
                    GetItems(Inventory.Container.INVENTORY_4),
                    GetItems(Inventory.Container.CURRENT_EQ),
                    GetItems(Inventory.Container.EXTRA_EQ),
                    GetItems(Inventory.Container.CRYSTALS),
                    GetItems(Inventory.Container.QUESTS_KI),
                    GetItems(Inventory.Container.HIRE_1),
                    GetItems(Inventory.Container.HIRE_2),
                    GetItems(Inventory.Container.HIRE_3),
                    GetItems(Inventory.Container.HIRE_4),
                    GetItems(Inventory.Container.HIRE_5),
                    GetItems(Inventory.Container.HIRE_6),
                    GetItems(Inventory.Container.HIRE_7),
                    GetItems(Inventory.Container.COMPANY_1),
                    GetItems(Inventory.Container.COMPANY_2),
                    GetItems(Inventory.Container.COMPANY_3),
                    GetItems(Inventory.Container.COMPANY_CRYSTALS),
                    GetItems(Inventory.Container.AC_MH),
                    GetItems(Inventory.Container.AC_OH),
                    GetItems(Inventory.Container.AC_HEAD),
                    GetItems(Inventory.Container.AC_BODY),
                    GetItems(Inventory.Container.AC_HANDS),
                    GetItems(Inventory.Container.AC_BELT),
                    GetItems(Inventory.Container.AC_LEGS),
                    GetItems(Inventory.Container.AC_FEET),
                    GetItems(Inventory.Container.AC_EARRINGS),
                    GetItems(Inventory.Container.AC_NECK),
                    GetItems(Inventory.Container.AC_WRISTS),
                    GetItems(Inventory.Container.AC_RINGS),
                    GetItems(Inventory.Container.AC_SOULS)
                };
            }
            catch (Exception ex)
            {
                MemoryHandler.Instance.RaiseException(Logger, ex, true);
            }

            return(result);
        }
예제 #3
0
        private void GetCharacterInfo(object source, System.Timers.ElapsedEventArgs e)
        {
            try
            {
                Sharlayan.Core.PlayerEntity player = Reader.GetPlayerInfo().PlayerEntity;
                playerName = player.Name;
                Sharlayan.Core.ActorEntity charInfo = getPC();

                if (charInfo == null)
                {
                    MessageBox.Show(localization[3][locale], this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    btnConnect.Enabled = true;
                    infoTimer.Stop();
                }

                InventoryReadResult readResultInv = Reader.GetInventoryItems();
                List <Sharlayan.Core.InventoryEntity> Inventories = readResultInv.InventoryEntities;
#if DEBUG
                Debug.WriteLine(Inventories.ToArray().Length.ToString());
                Debug.WriteLine(Inventories.ToArray().ToString());
#endif
                currentHP = charInfo.HPCurrent;
                maxHP     = charInfo.HPMax;
                currentMP = charInfo.MPCurrent;
                maxMP     = charInfo.MPMax;
                currentTP = charInfo.TPCurrent;
                maxTP     = charInfo.TPMax;
                currentCP = charInfo.CPCurrent;
                maxCP     = charInfo.CPMax;
                currentGP = charInfo.GPCurrent;
                maxGP     = charInfo.GPMax;
                job       = charInfo.JobID;
                level     = charInfo.Level;
                x         = charInfo.X;
                y         = charInfo.Y;
                z         = charInfo.Z;
                title     = charInfo.Title;

                #region Stats
                STR  = player.Strength;
                bSTR = player.BaseStrength;
                DEX  = player.Dexterity;
                bDEX = player.BaseDexterity;
                VIT  = player.Vitality;
                bVIT = player.BaseVitality;
                INT  = player.Intelligence;
                bINT = player.BaseIntelligence;
                MND  = player.Mind;
                bMND = player.BaseMind;
                PIE  = player.Piety;
                bPIE = player.BasePiety;
                //TODO
                statTenacity       = player.Tenacity;
                statDefense        = player.Defense;
                statControl        = player.Control;
                statSpellSpeed     = player.SpellSpeed;
                statSkillSpeed     = player.SkillSpeed;
                statDetermination  = player.Determination;
                statHealingPotency = player.HealingMagicPotency;
                statAttackPotency  = player.AttackMagicPotency;
                statCritRate       = player.CriticalHitRate;
                statDirectHit      = player.DirectHit;
                statAttackPower    = player.AttackPower;
                statMagicDefense   = player.MagicDefense;
                statEvasion        = player.Evasion;
                statGathering      = player.Gathering;
                statPerception     = player.Perception;
                #endregion
                #region Resistances
                resWater     = player.WaterResistance;
                resLightning = player.LightningResistance;
                resEarth     = player.EarthResistance;
                resWind      = player.WindResistance;
                resIce       = player.IceResistance;
                resFire      = player.FireResistance;
                resBlunt     = player.BluntResistance;
                resPiercing  = player.PiercingResistance;
                resSlashing  = player.SlashingResistance;
                #endregion
                #region EXP
                expGLD = player.GLD_CurrentEXP;
                expPGL = player.PGL_CurrentEXP;
                expMRD = player.MRD_CurrentEXP;
                expLNC = player.LNC_CurrentEXP;
                expARC = player.ARC_CurrentEXP;
                expROG = player.ROG_CurrentEXP;
                expCNJ = player.CNJ_CurrentEXP;
                expTHM = player.THM_CurrentEXP;
                expACN = player.ACN_CurrentEXP;
                expCPT = player.CPT_CurrentEXP;
                expBSM = player.BSM_CurrentEXP;
                expARM = player.ARM_CurrentEXP;
                expGSM = player.GSM_CurrentEXP;
                expLTW = player.LTW_CurrentEXP;
                expWVR = player.WVR_CurrentEXP;
                expALC = player.ALC_CurrentEXP;
                expCUL = player.CUL_CurrentEXP;
                expMIN = player.MIN_CurrentEXP;
                expBTN = player.BTN_CurrentEXP;
                expFSH = player.FSH_CurrentEXP;
                expDRK = player.DRK_CurrentEXP;
                expAST = player.AST_CurrentEXP;
                expMCH = player.MCH_CurrentEXP;
                expSAM = player.SAM_CurrentEXP;
                expRDM = player.RDM_CurrentEXP;
                #endregion
                #region Levels
                levelGLD = player.GLD;
                levelPGL = player.PGL;
                levelMRD = player.MRD;
                levelLNC = player.LNC;
                levelARC = player.ARC;
                levelROG = player.ROG;
                levelCNJ = player.CNJ;
                levelTHM = player.THM;
                levelACN = player.ACN;
                levelCPT = player.CPT;
                levelBSM = player.BSM;
                levelARM = player.ARM;
                levelGSM = player.GSM;
                levelLTW = player.LTW;
                levelWVR = player.WVR;
                levelALC = player.ALC;
                levelCUL = player.CUL;
                levelMIN = player.MIN;
                levelBTN = player.BTN;
                levelFSH = player.FSH;
                levelDRK = player.DRK;
                levelAST = player.AST;
                levelMCH = player.MCH;
                levelSAM = player.SAM;
                levelRDM = player.RDM;
                #endregion
            }
            catch (NullReferenceException ex)
            {
                infoTimer.Stop();
                btnConnect.Enabled = true;
                currentDisplayMode = -1;
            }
        }