Beispiel #1
0
    private void *SetQuestMarkerInfoDetour(Map *map, uint index, ushort questId, Utf8String *name, ushort recommendedLevel)
    {
        var result = this.setQuestMarkerInfoHook.Original(map, index, questId, name, recommendedLevel);

        if (!QuestManager.Instance()->Quest[(int)index]->IsHidden)
        {
            map->QuestMarkers[(int)index]->ShouldRender = 1;
        }

        return(result);
    }
Beispiel #2
0
 private Utf8String *Utf8StringFromSequenceDetour(Utf8String *thisPtr, byte *sourcePtr, nuint sourceLen)
 {
     if (sourcePtr != null)
     {
         this.utf8StringFromSequenceHook.Original(thisPtr, sourcePtr, sourceLen);
     }
     else
     {
         thisPtr->Ctor(); // this is in clientstructs but you could do it manually too
     }
     return(thisPtr);     // this function shouldn't need to return but the original asm moves this into rax before returning so be safe?
 }
Beispiel #3
0
        public string[] ToArray()
        {
            if (Buffer == IntPtr.Zero)
            {
                return(null);
            }
            var buffer = new string[Length];

            for (int i = 0; i < Length; i++)
            {
                unsafe
                {
                    Utf8String *current = ((Utf8String *)Buffer) + i;
                    buffer[i] = (*current).ToString();
                }
            }
            return(buffer);
        }
Beispiel #4
0
        /// <summary>
        /// Read an SeString from a specified Utf8String structure.
        /// </summary>
        /// <param name="utf8String">The memory address to read from.</param>
        /// <returns>The read in string.</returns>
        public static unsafe SeString ReadSeString(Utf8String *utf8String)
        {
            if (utf8String == null)
            {
                return(string.Empty);
            }

            var ptr = utf8String->StringPtr;

            if (ptr == null)
            {
                return(string.Empty);
            }

            var len = Math.Max(utf8String->BufUsed, utf8String->StringLength);

            return(ReadSeString((IntPtr)ptr, (int)len));
        }
    public Common()
    {
        var gameAllocPtr        = Scanner.ScanText("E8 ?? ?? ?? ?? 49 83 CF FF 4C 8B F0");
        var getGameAllocatorPtr = Scanner.ScanText("E8 ?? ?? ?? ?? 8B 75 08");

        InventoryManagerAddress = Scanner.GetStaticAddressFromSig("BA ?? ?? ?? ?? 48 8D 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8B F8 48 85 C0");
        var getInventoryContainerPtr = Scanner.ScanText("E8 ?? ?? ?? ?? 8B 55 BB");
        var getContainerSlotPtr      = Scanner.ScanText("E8 ?? ?? ?? ?? 8B 5B 0C");

        PlayerStaticAddress = Scanner.GetStaticAddressFromSig("8B D7 48 8D 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B7 E8");
        LastCommandAddress  = Scanner.GetStaticAddressFromSig("4C 8D 05 ?? ?? ?? ?? 41 B1 01 49 8B D4 E8 ?? ?? ?? ?? 83 EB 06");
        LastCommand         = (Utf8String *)(LastCommandAddress);

        _gameAlloc        = Marshal.GetDelegateForFunctionPointer <GameAlloc>(gameAllocPtr);
        _getGameAllocator = Marshal.GetDelegateForFunctionPointer <GetGameAllocator>(getGameAllocatorPtr);

        _getInventoryContainer = Marshal.GetDelegateForFunctionPointer <GetInventoryContainer>(getInventoryContainerPtr);
        _getContainerSlot      = Marshal.GetDelegateForFunctionPointer <GetContainerSlot>(getContainerSlotPtr);
    }
Beispiel #6
0
 /// <summary>
 /// Read an SeString from a specified Utf8String structure.
 /// </summary>
 /// <param name="utf8String">The memory address to read from.</param>
 /// <param name="value">The read in string.</param>
 public static unsafe void ReadSeString(Utf8String *utf8String, out SeString value)
 => value = ReadSeString(utf8String);
 public partial void SetMacroLines(Macro *macro, int lineStartIndex, Utf8String *lines);
 public partial void AppendMacroLines(Macro *macro, Utf8String *lines);
 public partial void ReplaceMacroLines(Macro *macro, Utf8String *lines);
Beispiel #10
0
 public partial void AddGatheringTempMarker(uint styleFlags, int mapX, int mapY, uint iconId, int radius,
                                            Utf8String *tooltip);