mirror of
https://github.com/sr229/metastruct-experiments.git
synced 2024-09-20 06:30:36 +00:00
Upload Init hooks
This commit is contained in:
parent
41abeccd6c
commit
491b784661
6 changed files with 163 additions and 0 deletions
5
prejoin_hooks/README.md
Normal file
5
prejoin_hooks/README.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# How to use?
|
||||||
|
|
||||||
|
Drop this folder to your `lua/` folder and then set `lua_load_specific_files` to `prejoin_hooks/init.lua`.
|
||||||
|
|
||||||
|
This only works on Metastruct servers.
|
2
prejoin_hooks/init.lua
Normal file
2
prejoin_hooks/init.lua
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
include("metastruct_specific/modules/pickup_hook.lua")
|
||||||
|
include("metastruct_specific/modules/use_hook.lua")
|
31
prejoin_hooks/modules/pickup_hook.lua
Normal file
31
prejoin_hooks/modules/pickup_hook.lua
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
-- original code by Aoki (@aoki.me)
|
||||||
|
|
||||||
|
local prefixes = {
|
||||||
|
'/',
|
||||||
|
'!',
|
||||||
|
'.',
|
||||||
|
}
|
||||||
|
|
||||||
|
hook.Add( 'OnPlayerChat', 'pickuper', function( ply, message )
|
||||||
|
local usedPrefix = nil
|
||||||
|
|
||||||
|
for _, prefix in ipairs( prefixes ) do
|
||||||
|
if string.StartWith( message, prefix ) then
|
||||||
|
usedPrefix = prefix
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if !usedPrefix then return end
|
||||||
|
local args = string.Explode( '%s+', string.sub( message, #usedPrefix + 1 ):lower(), true )
|
||||||
|
|
||||||
|
if args[1] == 'pickup' then
|
||||||
|
local target = easylua.FindEntity( args[2] )
|
||||||
|
|
||||||
|
if target != LocalPlayer() then return end
|
||||||
|
if !LocalPlayer():IsFriend( ply ) then return end
|
||||||
|
|
||||||
|
RunConsoleCommand( 'aowl', 'goto', ply:SteamID64() )
|
||||||
|
RunConsoleCommand( 'aowl', 'siton', ply:SteamID64() )
|
||||||
|
end
|
||||||
|
end)
|
42
prejoin_hooks/modules/use_hook.lua
Normal file
42
prejoin_hooks/modules/use_hook.lua
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
include("metastruct_specific/util/use_hook_randomiser.lua")
|
||||||
|
include("metastruct_specific/util/tbl_utils.lua")
|
||||||
|
|
||||||
|
local lastTime = 0
|
||||||
|
local pokeCount = 0
|
||||||
|
local SPECIAL_UIDS = { 195868133, 48693720 }
|
||||||
|
local INPUT_COOLDOWN = false
|
||||||
|
|
||||||
|
hook.Add("PlayerUsedByPlayer", "touched", function(target, aimer)
|
||||||
|
if lastTime + 0.1 > CurTime() or INPUT_COOLDOWN then return end
|
||||||
|
lastTime= CurTime()
|
||||||
|
|
||||||
|
if pokeCount == 40 then
|
||||||
|
pokeCount = 0
|
||||||
|
INPUT_COOLDOWN = true
|
||||||
|
print(string.format("%s triggered the limit!", aimer))
|
||||||
|
|
||||||
|
-- check if player is in the UID list
|
||||||
|
if tbl_utils.contains(SPECIAL_UIDS, aimer:AccountID()) then
|
||||||
|
interactions.interact(aimer, true)
|
||||||
|
|
||||||
|
timer.Simple(4, function()
|
||||||
|
INPUT_COOLDOWN = false
|
||||||
|
end)
|
||||||
|
else
|
||||||
|
interactions.interact(aimer, false)
|
||||||
|
|
||||||
|
timer.Simple(4, function()
|
||||||
|
INPUT_COOLDOWN = false
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
pokeCount = pokeCount + 1
|
||||||
|
RunConsoleCommand("actx", "poke")
|
||||||
|
|
||||||
|
if tbl_utils.contains(SPECIAL_UIDS, aimer:AccountID()) then
|
||||||
|
RunConsoleCommand("saysound", "hi honey++29")
|
||||||
|
else
|
||||||
|
RunConsoleCommand("saysound", "hi honey#1--25 hi honey#1++75:pitch(-1)")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
11
prejoin_hooks/util/tbl_utils.lua
Normal file
11
prejoin_hooks/util/tbl_utils.lua
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
tbl_utils = {}
|
||||||
|
|
||||||
|
|
||||||
|
tbl_utils.contains = function (table, element)
|
||||||
|
for _, value in pairs(table) do
|
||||||
|
if value == element then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
72
prejoin_hooks/util/use_hook_randomiser.lua
Normal file
72
prejoin_hooks/util/use_hook_randomiser.lua
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
interactions = {
|
||||||
|
[1] = function(tp)
|
||||||
|
hook.Add("StartCommand", "impending_doom", function(ply, cmd)
|
||||||
|
local tgtAng = (tp:GetShootPos() - ply:GetShootPos()):GetNormalized():Angle()
|
||||||
|
|
||||||
|
cmd:SetViewAngles(tgtAng)
|
||||||
|
end)
|
||||||
|
|
||||||
|
timer.Simple(1.5, function()
|
||||||
|
RunConsoleCommand("actx", "shove")
|
||||||
|
RunConsoleCommand("hax", "nosound")
|
||||||
|
RunConsoleCommand("saysound", "you are hentai++40^999")
|
||||||
|
|
||||||
|
hook.Remove("StartCommand", "impending_doom")
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
|
||||||
|
[2] = function()
|
||||||
|
RunConsoleCommand("saysound", "i love you#5")
|
||||||
|
RunConsoleCommand("taunt", "IHeartYou")
|
||||||
|
end,
|
||||||
|
|
||||||
|
[3] = function()
|
||||||
|
RunConsoleCommand("actx", "disagree")
|
||||||
|
RunConsoleCommand("saysound", "you are horny")
|
||||||
|
end,
|
||||||
|
|
||||||
|
[4] = function(tp)
|
||||||
|
local amt = math.random(1, 10000)
|
||||||
|
SayLocal(":heart:")
|
||||||
|
SayLocal(string.format("!givecoins %s, %s", tp:GetName(), amt))
|
||||||
|
end,
|
||||||
|
|
||||||
|
[5] = function()
|
||||||
|
RunConsoleCommand("aowl", "killx", "1")
|
||||||
|
RunConsoleCommand("saysound", "kani:echo()^500")
|
||||||
|
|
||||||
|
timer.Simple(4, function()
|
||||||
|
RunConsoleCommand("aowl", "revive")
|
||||||
|
RunConsoleCommand("saysound", "oh my gah#2")
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
|
||||||
|
[6] = function(tp)
|
||||||
|
hook.Add("StartCommand", "impending_doom", function(ply, cmd)
|
||||||
|
local tgtAng = (tp:GetShootPos() - ply:GetShootPos()):GetNormalized():Angle()
|
||||||
|
|
||||||
|
cmd:SetViewAngles(tgtAng)
|
||||||
|
end)
|
||||||
|
|
||||||
|
RunConsoleCommand("taunt", "blow_kiss")
|
||||||
|
RunConsoleCommand("saysound", "elmo kiss")
|
||||||
|
|
||||||
|
timer.Simple(3, function()
|
||||||
|
hook.Remove("StartCommand", "impending_doom")
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
interactions.interact = function(tp, isPlySpecial)
|
||||||
|
local rnd = math.random(#interactions)
|
||||||
|
local res = interactions[rnd]
|
||||||
|
|
||||||
|
if isPlySpecial then
|
||||||
|
while rnd % 2 ~= 0 do
|
||||||
|
rnd = math.random(#interactions)
|
||||||
|
res = interactions[rnd]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
res(tp)
|
||||||
|
end
|
Loading…
Reference in a new issue