181 lines
4.7 KiB
Lua
181 lines
4.7 KiB
Lua
-- proudly coded by chelog
|
|
|
|
if SERVER then function ScrW() return 1920 end function ScrH() return 1080 end end cats = cats or {} cats.config = {}
|
|
-- ^
|
|
-- | please do not touch these
|
|
|
|
------------------------------------------------------
|
|
-- BASIC CONFIG
|
|
------------------------------------------------------
|
|
|
|
-- positions
|
|
cats.config.spawnSize = { 450, 220 }
|
|
cats.config.spawnPosAdmin = { ScrW() - 500, 50 }
|
|
cats.config.spawnPosUser = { ScrW() - 500, ScrH() - 250 }
|
|
|
|
-- appearance
|
|
cats.config.punchCardMode = 'dots' -- 'line', 'dots' or 'columns'
|
|
cats.config.punchCardStart = 5
|
|
|
|
-- rating
|
|
cats.config.defaultRating = 3
|
|
cats.config.ratingTimeout = 60
|
|
|
|
-- admin notify
|
|
cats.config.oldTicketTrigger = 30 * 60
|
|
cats.config.notificationDelay = 15 * 60
|
|
|
|
-- sound
|
|
cats.config.newTicketSound = 'buttons/bell1.wav'
|
|
|
|
-- language
|
|
cats.lang = {
|
|
openTickets = L.openTickets,
|
|
myTicket = L.myTicket,
|
|
userDisconnected = L.userDisconnected,
|
|
claimedBy = L.claimedBy,
|
|
sendMessage = L.sendMessage,
|
|
typeYourMessage = L.typeYourMessage,
|
|
actions = L.actions,
|
|
action_claim = L.action_claim,
|
|
action_unclaim = L.action_unclaim,
|
|
action_spectate = L.action_spectate,
|
|
action_goto = L.action_goto,
|
|
action_bring = L.action_bring,
|
|
action_return = L.action_return,
|
|
action_returnself = L.action_returnself,
|
|
action_copySteamID = L.action_copySteamID,
|
|
action_callon = L.action_callon,
|
|
action_calloff = L.action_calloff,
|
|
action_close = L.action_close,
|
|
error_wait = L.error_wait,
|
|
error_noAccess = L.error_noAccess,
|
|
error_playerNotFound = L.error_playerNotFound,
|
|
error_ticketNotEnded = L.error_ticketNotEnded,
|
|
error_ticketNotFound = L.error_ticketNotFound,
|
|
error_ticketEnded = L.error_ticketEnded,
|
|
error_ticketNotClaimed = L.error_ticketNotClaimed,
|
|
error_ticketAlreadyClaimed = L.error_ticketAlreadyClaimed,
|
|
error_needToRate = L.error_needToRate,
|
|
error_cantCancelHasAdmin = L.error_cantCancelHasAdmin,
|
|
ticketClaimed = L.ticketClaimed,
|
|
ticketUnclaimed = L.ticketUnclaimed,
|
|
ticketClaimedBy = L.ticketClaimedBy,
|
|
ticketUnclaimedBy = L.ticketUnclaimedBy,
|
|
ticketClosed = L.ticketClosed,
|
|
ticketClosedBy = L.ticketClosedBy,
|
|
ticketRatedForAdmin = L.ticketRatedForAdmin,
|
|
ticketRatedForUser = L.ticketRatedForUser,
|
|
ticketUserLeft = L.ticketUserLeft,
|
|
rateAdmin = L.rateAdmin,
|
|
ok = L.finish,
|
|
cancel = L.cancel,
|
|
ticket_noAdmins = L.ticket_noAdmins,
|
|
dow = L.dow,
|
|
}
|
|
|
|
cats.config.actualAdminRanks = octolib.array.toKeys {
|
|
'trainee',
|
|
'admin',
|
|
'tadmin',
|
|
'sadmin',
|
|
}
|
|
|
|
------------------------------------------------------
|
|
-- ADVANCED SETTINGS (do not edit unless you're a dev)
|
|
------------------------------------------------------
|
|
|
|
cats.config.getPlayerName = function(ply)
|
|
if not IsValid(ply) then return L.player_left end
|
|
return ply:Name() .. " (" .. ply:SteamName() .. ")"
|
|
end
|
|
cats.config.playerCanSeeTicket = function(ply, ticketSteamID)
|
|
return ply:query("DBG: Видеть админ-запросы") or ply:SteamID() == ticketSteamID
|
|
end
|
|
cats.config.triggerText = function(ply, text)
|
|
if cats.config.playerCanSeeTicket(ply, "") then return false end
|
|
|
|
text = text:Trim()
|
|
if text:sub(1,1) == '@' then
|
|
return true, text:sub(2):Trim()
|
|
elseif text:sub(1,3) == '///' then
|
|
return true, text:sub(4):Trim()
|
|
end
|
|
|
|
return false
|
|
end
|
|
cats.config.notify = function(ply, type, ...)
|
|
if IsValid(ply) then
|
|
ply:Notify(type, ...)
|
|
else
|
|
octolib.notify.sendAll(type, ...)
|
|
end
|
|
end
|
|
cats.config.iDiffers = function(t1, t2)
|
|
local delta = {}
|
|
for _, v in ipairs(t1) do
|
|
delta[v] = true
|
|
end
|
|
for _, v in ipairs(t2) do
|
|
if not delta[v] then return true end
|
|
delta[v] = nil
|
|
end
|
|
return not table.IsEmpty(delta)
|
|
end
|
|
|
|
-- NOTE: these are clientside
|
|
cats.config.commands = {
|
|
{ -- spectate
|
|
text = cats.lang.action_spectate,
|
|
icon = 'eye',
|
|
click = function(ply)
|
|
RunConsoleCommand('FSpectate', ply:SteamID())
|
|
end
|
|
},
|
|
{ -- copy steamID
|
|
text = L.spawn,
|
|
icon = 'asterisk_yellow',
|
|
click = function(ply)
|
|
RunConsoleCommand("say", "/spawn " .. ply:Name())
|
|
end
|
|
},
|
|
{ -- bring
|
|
text = cats.lang.action_bring,
|
|
icon = 'arrow_left',
|
|
click = function(ply)
|
|
RunConsoleCommand('sgs', 'bring', ply:SteamID())
|
|
end
|
|
},
|
|
{ -- return
|
|
text = cats.lang.action_return,
|
|
icon = 'arrow_redo',
|
|
click = function(ply)
|
|
RunConsoleCommand('sgs', 'return', ply:SteamID())
|
|
end
|
|
},
|
|
{ -- goto
|
|
text = cats.lang.action_goto,
|
|
icon = 'arrow_right',
|
|
click = function(ply)
|
|
RunConsoleCommand('sgs', 'goto', ply:SteamID())
|
|
end
|
|
},
|
|
{ -- return self
|
|
text = cats.lang.action_returnself,
|
|
icon = 'arrow_undo',
|
|
click = function(ply)
|
|
RunConsoleCommand('sgs', 'return', LocalPlayer():SteamID())
|
|
end
|
|
},
|
|
{ -- copy steamID
|
|
text = cats.lang.action_copySteamID,
|
|
icon = 'page_copy',
|
|
click = function(ply)
|
|
SetClipboardText( ply:SteamID() )
|
|
end
|
|
},
|
|
}
|
|
|
|
-- | also please do not touch these
|
|
-- V
|
|
if SERVER then ScrW = nil ScrH = nil end
|