public static int Open(lua_State L) { VCR_t *VCR = (VCR_t *)NativeInterface.LoadVariable <VCR_t>("tier0.dll", "g_pVCR"); OHook_recvfrom = NativeInterface.OverwriteVCRHook(VCR, new_Hook_recvfrom = Hook_recvfrom_detour); var netsock = Symbols.GetNetSocket(); udpSock = netsock->hUDP; var iserver = Symbols.GetIServer(); var gamedll = NativeInterface.Load <IServerGameDLL>(); var filesystem = NativeInterface.Load <IFileSystem>(); var engineServer = NativeInterface.Load <IVEngineServer>(); var description = gamedll.GetGameDescription(); var steamID = engineServer.GetGameServerSteamID(); var infoPacket = new ReplyInfoPacket { AmountBots = 0, AmountClients = 50, Appid = engineServer.GetAppID(), GameDirectory = "garrysmod", GamemodeName = "infinite wars", GameName = "this is my server name?", GameVersion = ReplyInfoPacket.default_game_version, MapName = "gm_fuckmynuts", MaxClients = 60, OS = ReplyInfoPacket.OSType.Windows, Passworded = false, Secure = false, Server = ReplyInfoPacket.ServerType.Dedicated, UDPPort = (short)netsock->nPort, SteamID = 0, Tags = "ayyy" }; var playerPacket = new ReplyPlayerPacket { Players = new List <ReplyPlayer> { new ReplyPlayer { Name = "Duck", Score = 123, Time = 10 }, new ReplyPlayer { Name = "F**k", Score = 456, Time = 9 }, new ReplyPlayer { Name = "Suck", Score = 789, Time = 8 }, } }; staticInfoPacket = infoPacket.GetPacket(); staticPlayerPacket = playerPacket.GetPacket(); Console.WriteLine("DotNet Query loaded"); return(0); }
public static T OverwriteVCRHook <T>(VCR_t *VCR, T newDelegate) where T : class { return(OverwriteVCRHook((IntPtr)VCR, newDelegate)); }