-
Notifications
You must be signed in to change notification settings - Fork 73
Open
Description
I attempted to retrieve the tile.
His C# class is as follows:
public class Main{
public static TileData tile;
}
public class TileData
{
public Tile this[int x, int y]
}
public struct Tile
{
[Token(Token = "0x4003733")]
[FieldOffset(Offset = "0x0")]
public static Tile s_Null;
[Token(Token = "0x4003734")]
[FieldOffset(Offset = "0x0")]
private int _tileOffset;
[Token(Token = "0x4003735")]
[FieldOffset(Offset = "0x4")]
public static ushort CurrentSearchUID;
[Token(Token = "0x4003736")]
[FieldOffset(Offset = "0x6")]
public static ushort MaxSearchUID;
[Token(Token = "0x4003737")]
public const int Type_Solid = 0;
[Token(Token = "0x4003738")]
public const int Type_Halfbrick = 1;
[Token(Token = "0x4003739")]
public const int Type_SlopeDownRight = 2;
[Token(Token = "0x400373A")]
public const int Type_SlopeDownLeft = 3;
[Token(Token = "0x400373B")]
public const int Type_SlopeUpRight = 4;
[Token(Token = "0x400373C")]
public const int Type_SlopeUpLeft = 5;
[Token(Token = "0x400373D")]
public const int Liquid_Water = 0;
[Token(Token = "0x400373E")]
public const int Liquid_Lava = 1;
[Token(Token = "0x400373F")]
public const int Liquid_Honey = 2;
[Token(Token = "0x4003740")]
public const int Liquid_Shimmer = 3;
[Token(Token = "0x170005EB")]
public bool IsLoaded
{
[Token(Token = "0x6002A38")]
[Address(RVA = "0x12C5274", Offset = "0x12C5274", VA = "0x12C5274")]
get
{
return default(bool);
}
}
[Token(Token = "0x170005EC")]
[Il2CppSetOption(Option.ArrayBoundsChecks, false)]
[Il2CppSetOption(Option.NullChecks, false)]
public ushort type
{
[Token(Token = "0x6002A3A")]
[Address(RVA = "0x12C2C30", Offset = "0x12C2C30", VA = "0x12C2C30")]
get
{
return default(ushort);
}
[Token(Token = "0x6002A3B")]
[Address(RVA = "0x12C54A0", Offset = "0x12C54A0", VA = "0x12C54A0")]
set
{
}
}
[Token(Token = "0x170005ED")]
[Il2CppSetOption(Option.NullChecks, false)]
[Il2CppSetOption(Option.ArrayBoundsChecks, false)]
public ushort wall
{
[Token(Token = "0x6002A3D")]
[Address(RVA = "0x12C56DC", Offset = "0x12C56DC", VA = "0x12C56DC")]
get
{
return default(ushort);
}
[Token(Token = "0x6002A3E")]
[Address(RVA = "0x12C5740", Offset = "0x12C5740", VA = "0x12C5740")]
set
{
}
}
[Token(Token = "0x170005EE")]
[Il2CppSetOption(Option.NullChecks, false)]
[Il2CppSetOption(Option.ArrayBoundsChecks, false)]
public byte liquid
{
[Token(Token = "0x6002A40")]
[Address(RVA = "0x12C58C4", Offset = "0x12C58C4", VA = "0x12C58C4")]
get
{
return default(byte);
}
[Token(Token = "0x6002A41")]
[Address(RVA = "0x12C5928", Offset = "0x12C5928", VA = "0x12C5928")]
set
{
}
}
[Token(Token = "0x170005EF")]
[Il2CppSetOption(Option.NullChecks, false)]
[Il2CppSetOption(Option.ArrayBoundsChecks, false)]
public short sTileHeader
{
[Token(Token = "0x6002A43")]
[Address(RVA = "0x12C5A64", Offset = "0x12C5A64", VA = "0x12C5A64")]
get
{
return default(short);
}
[Token(Token = "0x6002A44")]
[Address(RVA = "0x12C5AE4", Offset = "0x12C5AE4", VA = "0x12C5AE4")]
set
{
}
}
[Token(Token = "0x170005F0")]
[Il2CppSetOption(Option.ArrayBoundsChecks, false)]
[Il2CppSetOption(Option.NullChecks, false)]
public byte bTileHeader
{
[Token(Token = "0x6002A46")]
[Address(RVA = "0x12C5D28", Offset = "0x12C5D28", VA = "0x12C5D28")]
get
{
return default(byte);
}
[Token(Token = "0x6002A47")]
[Address(RVA = "0x12C5D94", Offset = "0x12C5D94", VA = "0x12C5D94")]
set
{
}
}
[Token(Token = "0x170005F1")]
[Il2CppSetOption(Option.NullChecks, false)]
[Il2CppSetOption(Option.ArrayBoundsChecks, false)]
public byte bTileHeader2
{
[Token(Token = "0x6002A49")]
[Address(RVA = "0x12C5F78", Offset = "0x12C5F78", VA = "0x12C5F78")]
get
{
return default(byte);
}
[Token(Token = "0x6002A4A")]
[Address(RVA = "0x12C5FE4", Offset = "0x12C5FE4", VA = "0x12C5FE4")]
set
{
}
}
[Token(Token = "0x170005F2")]
[Il2CppSetOption(Option.NullChecks, false)]
[Il2CppSetOption(Option.ArrayBoundsChecks, false)]
public byte bTileHeader3
{
[Token(Token = "0x6002A4C")]
[Address(RVA = "0x12C61CC", Offset = "0x12C61CC", VA = "0x12C61CC")]
get
{
return default(byte);
}
[Token(Token = "0x6002A4D")]
[Address(RVA = "0x12C6238", Offset = "0x12C6238", VA = "0x12C6238")]
set
{
}
}
[Token(Token = "0x170005F3")]
[Il2CppSetOption(Option.NullChecks, false)]
[Il2CppSetOption(Option.ArrayBoundsChecks, false)]
public short frameX
{
[Token(Token = "0x6002A4F")]
[Address(RVA = "0x12C2C9C", Offset = "0x12C2C9C", VA = "0x12C2C9C")]
get
{
return default(short);
}
[Token(Token = "0x6002A50")]
[Address(RVA = "0x12C641C", Offset = "0x12C641C", VA = "0x12C641C")]
set
{
}
}
[Token(Token = "0x170005F4")]
[Il2CppSetOption(Option.NullChecks, false)]
[Il2CppSetOption(Option.ArrayBoundsChecks, false)]
public short frameY
{
[Token(Token = "0x6002A54")]
[Address(RVA = "0x12C324C", Offset = "0x12C324C", VA = "0x12C324C")]
get
{
return default(short);
}
[Token(Token = "0x6002A55")]
[Address(RVA = "0x12C6858", Offset = "0x12C6858", VA = "0x12C6858")]
set
{
}
}
[Token(Token = "0x170005F5")]
[Il2CppSetOption(Option.ArrayBoundsChecks, false)]
[Il2CppSetOption(Option.NullChecks, false)]
public ushort TileSeachUID
{
[Token(Token = "0x6002A59")]
[Address(RVA = "0x12C6B78", Offset = "0x12C6B78", VA = "0x12C6B78")]
get
{
return default(ushort);
}
}
[Token(Token = "0x170005F6")]
public int collisionType
}
I'm trying to retrieve the tile at specified coordinates. Here's my C++ code:
struct Tile{
int _tileOffset;
bool IsLoaded;
u_short type;
u_short wall;
std::byte liquid;
std::byte sTileHeader;
std::byte bTileHeader;
std::byte bTileHeader2;
std::byte bTileHeader3;
short frameX;
short frameY;
short TileSeachUID;
int collisionType;
};
BNM::Field<BNM::UnityEngine::Object*> tile_f = Instance().gameClass.GetField("tile");
auto TileData_cls = BNM::Class("Terraria","TileData");
BNM::Field<int> width = TileData_cls.GetField("_width");
BNM::Method<Tile> get_Item = TileData_cls.GetMethod("get_Item");
auto ins = get_Item[tile_f()](x,y);
LOGI("图格ID:%d %d", ins.type, width[tile_f()]());However, the type cannot be correctly obtained.

Metadata
Metadata
Assignees
Labels
No labels