コード例 #1
0
 private void immunitiesSpellLevel(IntPtr intPtr)
 {
     for (int i = 0; i < 10; ++i)
     {
         this.spellImmuneLevel[i] = WinAPIBindings.ReadInt32(intPtr + i * 0x4);
     }
 }
コード例 #2
0
 public CWeaponIdentification(IntPtr addr)
 {
     addr            = WinAPIBindings.FindDMAAddy(addr, new int[] { });
     this.Type       = WinAPIBindings.ReadUInt16(addr);
     this.Flags      = WinAPIBindings.ReadUInt32(addr + 0x04);
     this.FlagMask   = WinAPIBindings.ReadUInt32(addr + 0x08);
     this.Attributes = WinAPIBindings.ReadUInt32(addr + 0x0C);
 }
コード例 #3
0
 public CDerivedStats(IntPtr addr)
 {
     this.MaxHP = WinAPIBindings.ReadInt16(addr + 4);
     this.immunitiesSpellLevel(addr + 0x344);
     this.immunitiesWeapon(addr + 0x36C);
     this.immunitiesEffect(addr + 0x30C);
     //this.immunitiesSpells(addr + 0x5A0);
 }
コード例 #4
0
 public CGameEffect(IntPtr addr)
 {
     addr = WinAPIBindings.FindDMAAddy(addr, new int[] { 0x04 });
     //addr += 4;
     this.Version    = WinAPIBindings.ReadString(addr, 8);
     this.EffectId   = (Effect)WinAPIBindings.ReadUInt32(addr + 0x08);
     this.Res        = WinAPIBindings.ReadString(addr + 0x28, 8);
     this.SourceRes  = WinAPIBindings.ReadString(addr + 0x8C, 8);
     this.ScriptName = WinAPIBindings.ReadString(addr + 0xA0, 32);
 }
コード例 #5
0
        public BGEntity(ResourceManager resourceManager, IntPtr entityIdPtr)
        {
            this.resourceManager = resourceManager;
            this.Loaded          = false;
            // 1020 bytes CGameAIBase
            this.Id      = WinAPIBindings.ReadInt32(entityIdPtr);
            entityIdPtr += 0x4;
            this.Type    = WinAPIBindings.ReadByte(WinAPIBindings.FindDMAAddy(entityIdPtr, new int[] { 0x004 }));
            if (Type != 49)
            {
                return;
            }
            this.X = WinAPIBindings.ReadInt32(WinAPIBindings.FindDMAAddy(entityIdPtr, new int[] { 0x008 }));
            this.Y = WinAPIBindings.ReadInt32(WinAPIBindings.FindDMAAddy(entityIdPtr, new int[] { 0x00C }));
            if (X < 0 || Y < 0)
            {
                return;
            }
            IntPtr cGameAreaPtr = WinAPIBindings.FindDMAAddy(entityIdPtr, new int[] { 0x14 });

            this.RealId              = WinAPIBindings.ReadInt32(WinAPIBindings.FindDMAAddy(entityIdPtr, new int[] { 0x34 }));
            this.AreaName            = WinAPIBindings.ReadString(WinAPIBindings.FindDMAAddy(cGameAreaPtr, new int[] { 0x0 }), 8);
            this.AreaRef             = WinAPIBindings.ReadString(WinAPIBindings.FindDMAAddy(cGameAreaPtr, new int[] { 0x1E4 }), 8);
            this.MousePosX           = WinAPIBindings.ReadInt32(WinAPIBindings.FindDMAAddy(cGameAreaPtr, new int[] { 0x22C }));
            this.MousePosY           = WinAPIBindings.ReadInt32(WinAPIBindings.FindDMAAddy(cGameAreaPtr, new int[] { 0x22C + 4 }));
            this.MousePosX1          = WinAPIBindings.ReadInt32(WinAPIBindings.FindDMAAddy(cGameAreaPtr, new int[] { 0xA84 }));
            this.MousePosY1          = WinAPIBindings.ReadInt32(WinAPIBindings.FindDMAAddy(cGameAreaPtr, new int[] { 0xA84 + 4 }));
            this.Name2               = WinAPIBindings.ReadString(WinAPIBindings.FindDMAAddy(entityIdPtr, new int[] { 0x28A8, 0 }), 64);
            this.Name1               = WinAPIBindings.ReadString(WinAPIBindings.FindDMAAddy(entityIdPtr, new int[] { 0x364 }), 8);
            this.CreResourceFilename = WinAPIBindings.ReadString(WinAPIBindings.FindDMAAddy(entityIdPtr, new int[] { 0x3FC }), 8).Trim('*') + ".CRE";
            this.CurrentHP           = WinAPIBindings.ReadByte(WinAPIBindings.FindDMAAddy(entityIdPtr, new int[] { 0x438 }));
            //this.DerivedStats                = new CDerivedStats(WinAPIBindings.FindDMAAddy(entityIdPtr, new int[] { 0xB30 }));
            //this.DerivedStatsTemp            = new CDerivedStats(entityIdPtr + 0x1454 );
            this.DerivedStatsTemp = new CDerivedStats(WinAPIBindings.FindDMAAddy(entityIdPtr, new int[] { 0x1454 }));

            //this.DerivedStatsBonus = new CDerivedStats(WinAPIBindings.FindDMAAddy(entityIdPtr, new int[] { 0x1D78 }));
            if (Type == 49)
            {
                this.Reader = resourceManager.GetCREReader(CreResourceFilename.ToUpper());
                if (Reader == null)
                {
                    this.Reader = resourceManager.GetCREReader(CreResourceFilename.ToUpper());
                }
            }
            this.Loaded = true;
        }
コード例 #6
0
 public void Init()
 {
     Configuration.Init();
     this.TextEntries     = new ObservableCollection <string>();
     this.ResourceManager = new ResourceManager();
     ResourceManager.Init();
     while (Process.GetProcessesByName("Baldur").Length == 0)
     {
         Thread.Sleep(3000);
     }
     this.proc           = Process.GetProcessesByName("Baldur")[0];
     this.hProc          = WinAPIBindings.OpenProcess(WinAPIBindings.ProcessAccessFlags.All, false, proc.Id);
     this.modBase        = WinAPIBindings.GetModuleBaseAddress(proc, "Baldur.exe");
     this.modBase2       = WinAPIBindings.GetModuleBaseAddress(proc.Id, "Baldur.exe");
     this.entityList     = new ConcurrentBag <BGEntity>();
     Configuration.hProc = hProc;
 }
コード例 #7
0
 public Node(IntPtr addr)
 {
     this.next = WinAPIBindings.FindDMAAddy(addr, new int[] { 0x0 });
     this.prev = WinAPIBindings.FindDMAAddy(addr, new int[] { 0x4 });
     this.Data = WinAPIBindings.FindDMAAddy(addr, new int[] { 0x8 });
 }
コード例 #8
0
 public CPtrList(IntPtr addr)
 {
     this.Head  = new Node(addr + 0x04);
     this.Tail  = new Node(addr + 0x08);
     this.Count = WinAPIBindings.ReadInt32(addr + 0x0C);
 }