Password Cracker
Password Cracker funciona en el cliente. Tu script lo lanza con una palabra de cinco letras y el jugador tiene que volver a ordenar las letras antes de quedarse sin intentos o sin tiempo. Mientras el hackeo está en pantalla, el jugador no se puede mover.
Instalación
- Consigue los archivos. Owner: en Granted Assets de tu Cfx.re Portal. Developer: el enlace de descarga del correo de Tebex.
- Pon la carpeta
passwordcrackeren los recursos de tu servidor. - Añade esta línea a tu
server.cfgy reinicia:
ensure passwordcracker
No tiene dependencias.
Lánzalo
Password Cracker se lanza con un evento, desde un script de cliente. No tiene export.
TriggerEvent('passwordhack:robbery_computer', 'major', 120000, 5, function(result, reason)
-- tu código
end)
El resultado vuelve por esa función, y una función no puede viajar del servidor al cliente. Para lanzarlo desde el servidor, manda tu propio evento al jugador y lanza allí este. Es lo que hace el ejemplo del final.
Opciones
| Opción | Qué es | Por defecto |
|---|---|---|
word |
La contraseña, de 5 letras exactas. Obligatoria | — |
time |
Tiempo para todo el hackeo, en milisegundos | 120000 (2 minutos) |
attempts |
Intentos que tiene el jugador, de 1 a 5 | 5 |
Resultados
result |
Cuándo |
|---|---|
1 |
El jugador sacó la palabra |
2 |
Se acabó el tiempo |
0 |
El hackeo falló |
-1 |
Error, por ejemplo una palabra que no tiene 5 letras |
Da la recompensa en el servidor
Cualquiera con un menú de trucos puede lanzar miatraco:hackeoTerminado sin jugar, así que el servidor solo paga un hackeo que ha empezado él, que ha durado un tiempo posible, y una sola vez:
-- client.lua
RegisterNetEvent('miatraco:empezarHackeo', function(token)
TriggerEvent('passwordhack:robbery_computer', 'major', 120000, 5, function(result)
TriggerServerEvent('miatraco:hackeoTerminado', token, result == 1)
end)
end)
-- server.lua
local MAX_TIME = 120 + 10 -- segundos: tu límite de tiempo más margen para la carga y la red
local MIN_TIME = 5 -- segundos: cronometra una partida rápida en tu servidor y súbelo
local hacks = {}
-- Llámala desde tu atraco cuando el jugador pueda hackear (en el terminal y sin cooldown).
local function startHack(src)
local token = ('%08x%08x'):format(math.random(0, 0x7fffffff), math.random(0, 0x7fffffff))
hacks[src] = { token = token, startedAt = os.time() }
TriggerClientEvent('miatraco:empezarHackeo', src, token)
end
RegisterNetEvent('miatraco:hackeoTerminado', function(token, success)
local src = source
local hack = hacks[src]
hacks[src] = nil -- un solo uso: un segundo aviso ya no encuentra nada
if not hack or hack.token ~= token or not success then return end
local took = os.time() - hack.startedAt
if took < MIN_TIME or took > MAX_TIME then return end
-- Da aquí la recompensa.
end)
AddEventHandler('playerDropped', function()
hacks[source] = nil
end)