Repository navigation
Expand file tree
/
Copy pathconfig.lua
More file actions
198 lines (172 loc) · 9.5 KB
/
Copy pathconfig.lua
File metadata and controls
198 lines (172 loc) · 9.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
Config = {}
-- Tudo o que está aqui também pode ser mudado dentro do jogo, no painel (/chatadmin). Este arquivo
-- é o valor inicial: o que for salvo no painel vale por cima dele, na hora, sem reiniciar.
-- Ficam só neste arquivo (mudam com restart): idioma, framework, aviso de versão, nomes dos comandos e teclas.
-- Idioma dos textos: 'pt-br' ou 'en' (arquivos em locales/)
Config.Locale = 'pt-br'
-- Framework do servidor: 'auto' descobre sozinho. Para forçar: 'qbcore' ou 'standalone'.
Config.Framework = 'auto'
-- Avisa no console do servidor quando sair versão nova. Só lê um arquivo público; não envia nada.
Config.VersionCheck = true
-- Registros no Discord do servidor (alterações do painel e, se ligado em Config.Log, o que foi dito):
-- opcional, desligado por padrão. NÃO coloque o webhook neste arquivo (ele vai para o jogo de todos os
-- jogadores). Use o painel (/chatadmin → Geral) ou a convar no server.cfg: set alm_chat_webhook "https://..."
-- Nomes dos comandos (sem a barra). Os de cena substituem os do qb-core com o mesmo nome.
Config.Commands = {
me = 'me', -- ação do personagem (chat e texto 3D)
['do'] = 'do', -- descrição da cena
ooc = 'ooc', -- fala fora do personagem
try = 'try', -- tentativa: o servidor sorteia se conseguiu
announce = 'anuncio', -- anúncio para a cidade (ligue em Config.Announce)
clear = 'limpar', -- limpa o próprio chat
binds = 'atalhos', -- janela dos atalhos de ação
toggle = 'togglechat', -- alterna: some sozinho / sempre visível / só ao digitar
admin = 'chatadmin', -- painel de configuração (permissão: ace alm_chat.admin ou admin do framework)
}
-- Teclas (padrão de cada jogador; ele troca em Configurações > Atalhos de teclado > FiveM)
Config.Key = 'T' -- abre o chat
Config.ToggleKey = '' -- alterna a visibilidade; vazio = sem tecla padrão (o L do chat padrão é a tranca do qb-vehiclekeys)
-- Cores da interface (cor CSS em #rgb ou #rrggbb)
Config.Theme = {
accent = '#8b5cf6',
background = '#14121f',
surface = '#1e1b2e',
line = '#2d2942',
text = '#f3f1fa',
muted = '#9c97b5',
success = '#4ade80',
warning = '#facc15',
danger = '#f43f5e',
radius = 10, -- arredondamento dos cantos, em pixels
}
-- Cor da etiqueta de cada tipo de mensagem
Config.Colors = {
say = '#c4b5fd', -- fala sem barra
me = '#a78bfa', -- /me
['do'] = '#60a5fa', -- /do
ooc = '#9c97b5', -- /ooc
try = '#fbbf24', -- /try
announce = '#f43f5e', -- /anuncio
city = '#38bdf8', -- avisos da cidade
news = '#34d399', -- rádio da cidade
system = '#facc15', -- avisos do sistema e de outros scripts
}
-- Janela do chat
Config.Window = {
position = 'left', -- canto de cima: 'left' (esquerda) ou 'right' (direita)
width = 34, -- largura, em % da largura da tela
height = 30, -- altura das linhas, em % da altura da tela
fontSize = 15, -- tamanho da letra, em pixels (em 1080p; escala com a tela)
opacity = 70, -- fundo das linhas, em % (0 = transparente)
showTime = true, -- horário em cada linha (ajuda nos prints de denúncia)
}
-- Mensagens
Config.Message = {
maxLength = 200, -- letras por mensagem
cooldown = 800, -- espera mínima entre duas mensagens do mesmo jogador, em milissegundos
maxLines = 60, -- linhas guardadas na tela (máximo 60)
fadeAfter = 9, -- segundos até o chat sumir sozinho depois da última mensagem
allowColors = false, -- jogadores podem usar códigos de cor (^1, ^*...) no que escrevem
showId = false, -- mostra o ID do jogador ao lado do nome (escondido quando mascarado); desligado evita metagaming
}
-- Fala sem barra (o texto que o jogador digita direto)
Config.Say = {
mode = 'local', -- 'local' (só quem está perto), 'global' (a cidade inteira) ou 'off' (desligada: só comandos)
distance = 15.0, -- alcance da fala local, em metros
}
-- Liga e desliga cada comando de cena. Desligado, o comando some das sugestões e responde que está
-- desligado (no QBCore, o /me e o /ooc do qb-core continuam sem rodar).
Config.Scene = {
me = true,
['do'] = true,
ooc = true,
try = true,
}
-- Alcance de cada comando de cena, em metros
Config.Distance = {
me = 15.0,
['do'] = 15.0,
ooc = 15.0,
try = 15.0,
}
-- /me também aparece sobre a cabeça do personagem
Config.Me3D = {
enabled = true,
seconds = 6, -- quanto tempo fica na tela
distance = 20.0, -- até que distância é visto, em metros
}
-- Máscara: quem está mascarado aparece como "Desconhecido" na fala, no /me, no /do e no /try (o /ooc mostra o nome)
Config.Mask = { hide = true }
-- Caído (morto ou em último suspiro) só fala no /ooc
Config.Downed = { onlyOoc = true }
-- Canais de grupo: cada um vira um comando. Quem pode usar também é quem lê.
-- jobs = empregos e cargo mínimo ({ police = 0 }); duty = só em serviço
-- ace = permissão ACE (ex.: 'alm_chat.staff'); quem tem a ACE entra mesmo sem o emprego
Config.Channels = {
{ command = 'policia', label = { ['pt-br'] = 'POLÍCIA', en = 'POLICE' }, jobs = { police = 0 }, duty = true, ace = '', color = '#3b82f6' },
{ command = 'staff', label = { ['pt-br'] = 'STAFF', en = 'STAFF' }, jobs = {}, duty = false, ace = 'alm_chat.staff', color = '#f97316' },
}
-- /anuncio: mensagem para a cidade inteira, com o nome do personagem
Config.Announce = {
enabled = false,
cooldown = 300, -- segundos entre dois anúncios do mesmo jogador
jobs = {}, -- empregos que podem anunciar, com o cargo mínimo ({ realestate = 0 }). Vazio: todos.
}
-- Atalhos de ação (binds): o jogador grava mensagens em /atalhos e escolhe a tecla de cada uma
Config.Binds = {
enabled = true,
slots = 6, -- quantos atalhos cada jogador tem (1 a 6)
maxLength = 150, -- letras por atalho
cooldown = 3, -- segundos entre dois atalhos do mesmo jogador
}
-- Aviso de entrada e saída de jogadores (mostra o nome da conta, por isso vem desligado).
-- As convars do chat padrão valem por cima: set chat_showJoins 1 / set chat_showQuits 1
Config.JoinQuit = { joins = false, quits = false }
-- Registro do que foi dito (fala, cena, canais, anúncios) no webhook do Discord do servidor, para a staff
-- julgar denúncias. O evento local alm_chat:log dispara sempre; o webhook só com isto ligado.
Config.Log = { chat = false }
-- Avisos da cidade: frases do dono que aparecem para todos de tempos em tempos
Config.City = {
enabled = true,
interval = 15, -- minutos entre um aviso e outro
minPlayers = 1, -- só manda com pelo menos este número de jogadores
}
-- As frases dos avisos (from = etiqueta; text = frase), nas duas línguas.
-- {/me}, {/do}, {/binds}... viram /<nome do comando> conforme Config.Commands (troque o nome lá e a frase acompanha).
Config.CityMessages = {
{ from = { ['pt-br'] = 'CIDADE', en = 'CITY' },
text = { ['pt-br'] = 'Bem-vindo! Respeite as regras e bom roleplay.', en = 'Welcome! Follow the rules and enjoy the roleplay.' } },
{ from = { ['pt-br'] = 'TRÂNSITO', en = 'TRAFFIC' },
text = { ['pt-br'] = 'Dirija com atenção e use o cinto de segurança.', en = 'Drive carefully and wear your seat belt.' } },
{ from = { ['pt-br'] = 'SAÚDE', en = 'HEALTH' },
text = { ['pt-br'] = 'Não esqueça de comer e beber água ao longo do dia.', en = 'Remember to eat and drink water during the day.' } },
{ from = { ['pt-br'] = 'CIDADE', en = 'CITY' },
text = { ['pt-br'] = 'Use {/me} para narrar ações e {/do} para descrever a cena.', en = 'Use {/me} to narrate actions and {/do} to describe the scene.' } },
{ from = { ['pt-br'] = 'CIDADE', en = 'CITY' },
text = { ['pt-br'] = 'Grave os seus atalhos de ação em {/binds}.', en = 'Save your action shortcuts with {/binds}.' } },
}
-- Rádio da cidade: notícias de fatos do servidor. Outros scripts avisam com
-- exports.alm_chat:News('tipo', { name = 'Nome do comércio' })
-- e a frase sai de um dos modelos do tipo, depois de um atraso sorteado. Nunca use nome de jogador nem lugar de crime.
Config.News = {
enabled = true,
label = { ['pt-br'] = 'RÁDIO', en = 'RADIO' }, -- etiqueta das notícias
delayMin = 2, -- minutos entre o fato e a notícia: sorteado entre o mínimo...
delayMax = 6, -- ...e o máximo
gap = 3, -- minutos mínimos entre duas notícias
sameKind = 10, -- minutos até o mesmo tipo de notícia poder voltar
maxQueue = 6, -- notícias esperando na fila (o que passar disso é descartado)
}
-- Tipos de notícia e os modelos de frase de cada um. {name} é trocado pelo nome que o script mandar.
Config.NewsKinds = {
{ id = 'weather', templates = {
{ ['pt-br'] = 'A Defesa Civil avisa: o tempo virou. Atenção redobrada nas ruas.', en = 'Civil Defense warns: the weather has turned. Take extra care on the roads.' },
{ ['pt-br'] = 'Previsão do tempo: mudança no clima nas próximas horas.', en = 'Weather report: conditions will change over the next few hours.' },
} },
{ id = 'arrest', templates = {
{ ['pt-br'] = 'A polícia confirmou uma prisão nas últimas horas. Mais detalhes não foram divulgados.', en = 'Police confirmed an arrest in the last few hours. No further details were released.' },
} },
{ id = 'business_open', templates = {
{ ['pt-br'] = 'Novidade no comércio: {name} abriu as portas. Passe lá e confira.', en = 'New in town: {name} has opened its doors. Stop by and check it out.' },
} },
}