Hmm, looks interesting, thanks for sharing. I didn't know that the guildnames are saved in the same way than playernames. My Playername-Lookup-Code is a bit different, and it seems it is doing his work in less than 5 loops but I will look into yours. Maybe I can optimise mine even more
Well, for those who are interested in it, this is the code I'm currently using for my Player-Name lookups (which is an optimised version of this one *click*)... But it could also be some very bad piece of code
Code:public override string name { get { string cname = ""; int mask = Core.Memory.ReadInt((uint)Offsets.Name.NameStorePtr + (uint)Core.Memory.MainModule.BaseAddress + (uint)Offsets.Name.NameMaskOffset); if (mask == -1) { cname = "UNKNOWN"; } else { UInt64 guid = this.GUID; int nameStoreBasePtr = Core.Memory.ReadInt((uint)Offsets.Name.NameBaseOffset + (uint)Offsets.Name.NameStorePtr + (uint)Core.Memory.MainModule.BaseAddress); int maskedGUID = mask & (int)guid; maskedGUID += maskedGUID * 2; int ptr = Core.Memory.ReadInt((uint)(nameStoreBasePtr + (maskedGUID * 4) + 4) + 4); while (Core.Memory.ReadUInt((uint)ptr) != (uint)guid) { int maskedGUID2 = (int)this.GUID & mask; maskedGUID2 += maskedGUID2 * 2; int ptr2 = Core.Memory.ReadInt((uint)nameStoreBasePtr + ((uint)maskedGUID2 * 4)); ptr2 += ptr; ptr = Core.Memory.ReadInt((uint)ptr2 + 4); } cname = Core.Memory.ReadASCIIString((uint)ptr + (uint)Offsets.Name.NameStringOffset, 64); } return cname; } }




LinkBack URL
About LinkBacks
Reply With Quote




Bookmarks