コード例 #1
0
 public UnitReader(
     ProcessMemoryReader reader,
     GameMemoryTable memory,
     StringLookupTable stringReader
     )
 {
     this.reader       = reader;
     this.memory       = memory;
     this.stringReader = stringReader;
     skillReader       = new SkillReader(reader, memory);
     inventoryReader   = createInventoryReader();
 }
コード例 #2
0
        public Dictionary <int, D2Skill> GetSkillMap(D2Unit unit)
        {
            Dictionary <int, D2Skill> skills = new Dictionary <int, D2Skill>();
            SkillReader skillsReader         = new SkillReader(reader, memory);

            foreach (D2Skill skill in skillsReader.EnumerateSkills(unit))
            {
                int numberOfSkillPoints = skillsReader.GetTotalNumberOfSkillPoints(skill);
                if (numberOfSkillPoints > 0)
                {
                    D2SkillData skillData = skillsReader.ReadSkillData(skill);
                    if (skillData.ClassId >= 0 && skillData.ClassId <= 6)
                    {
                        string skillName   = skillsReader.GetSkillName((ushort)skillData.SkillId);
                        int    skillPoints = skill.numberOfSkillPoints;
                    }
                }
            }

            return(skills);
        }
コード例 #3
0
        public ItemReader(ProcessMemoryReader reader, GameMemoryTable memory) : base(reader, memory)
        {
            cachedItemData     = new Dictionary <IntPtr, D2ItemData>();
            cachedDescriptions = new Dictionary <int, D2ItemDescription>();

            globals          = reader.Read <D2GlobalData>(reader.ReadAddress32(memory.Address.GlobalData, AddressingMode.Relative));
            lowQualityTable  = reader.Read <D2SafeArray>(memory.Address.LowQualityItems, AddressingMode.Relative);
            descriptionTable = reader.Read <D2SafeArray>(memory.Address.ItemDescriptions, AddressingMode.Relative);
            magicModifiers   = reader.Read <ModifierTable>(memory.Address.MagicModifierTable, AddressingMode.Relative);
            rareModifiers    = reader.Read <ModifierTable>(memory.Address.RareModifierTable, AddressingMode.Relative);
            skillReader      = new SkillReader(reader, memory);
            if (globals != null)
            {
                opNestings = reader.ReadArray <ushort>(globals.OpStatNesting, (int)globals.OpStatNestingCount);

                if (ItemStatCost == null && !globals.ItemStatCost.IsNull)
                {
                    ItemStatCost = reader.ReadArray <D2ItemStatCost>(globals.ItemStatCost, (int)globals.ItemStatCostCount);
                }
            }
        }