ÓRDENES DE BÚSQUEDA Y CAPTURA | SCRIPT
Hace un tiempo estuve jugando en un servidor que tenía un sistema parecido. Se trata de un sistema para los policías de órdenes de búsqueda y captura de jugadores. Tiene varios comandos con los que puedes editar el estado del fugitivo, o, borrar la orden. Cada uno lo puede editar a su gusto.
Adicional: Si no lo queréis, podéis quitar el evento de onPlayerChangeNick. Lo puse para que, al intentar editar su nick, le cancele el evento cuando esté en orden de búsqueda y captura.
local police_data = { }
local policias = createTeam( "Policia Nacional", 0, 0, 51 ) -- Team de la policia
addCommandHandler( "addbusq",
function( player, commandName, nombre_fugitivo, motivo, estado )
local nombre_fugitivo = tostring( nombre_fugitivo )
local estado = tostring( estado )
local motivo = tostring( motivo )
local team = getTeamName( getPlayerTeam ( player ) )
if team == "Policia Nacional" then
if nombre_fugitivo and estado and motivo then
if not police_data[ nombre_fugitivo ] then
police_data[ nombre_fugitivo ] = { motivo = motivo, estado = estado }
outputChatBox( "Añadida orden de búsqueda para "..nombre_fugitivo, player, 255, 255, 0 )
outputChatBox( "Motivo:", player, 255, 255, 0 )
outputChatBox( tostring( motivo ), player, 255, 255, 255 )
else
local razon = police_data[ nombre_fugitivo ].motivo
outputChatBox( "Hay una orden contra "..nombre_fugitivo..". Motivo:", player, 0, 255, 0 )
outputChatBox( tostring( razon ), player, 255, 255, 255 )
end
end
end
end
)
function bloquearCambio( viejoNick )
if police_data[ viejoNick ] then
cancelEvent( )
end
end
addEventHandler( "onPlayerChangeNick", getRootElement(), bloquearCambio )
addCommandHandler( "checkorden",
function( player, commandName, nombre_fugitivo )
local nombre_fugitivo = tostring( nombre_fugitivo )
local team = getTeamName( getPlayerTeam( player ) )
if team == "Policia Nacional" then
if nombre_fugitivo then
if police_data[ nombre_fugitivo ] then
outputChatBox( nombre_fugitivo.." es buscado por la policía.", player, 0, 255, 0 )
outputChatBox( "Motivo: "..police_data[ nombre_fugitivo ].motivo, player, 255, 255, 0 )
outputChatBox( "Estado: "..police_data[ nombre_fugitivo ].estado, player, 255, 255, 0 )
else
outputChatBox( nombre_fugitivo.." no tiene una orden de búsqueda y captura", player, 255, 0, 0 )
end
end
end
end
)
addCommandHandler( "bbusq",
function( player, commandName, nombre_fugitivo )
local team = getTeamName( getPlayerTeam( player ) )
local nombre_fugitivo = tostring( nombre_fugitivo )
if team == "Policia Nacional" then
if nombre_fugitivo then
if police_data[ nombre_fugitivo ] then
police_data[ nombre_fugitivo ] = nil
outputChatBox( "Borrada la orden contra "..nombre_fugitivo, player, 0, 255, 0 )
else
outputChatBox( nombre_fugitivo.." no tiene una orden de búsqueda y captura", player, 255, 0, 0 )
end
end
end
end
)
addCommandHandler( "ebusq",
function( player, commandName, nombre_fugitivo, estado )
local nombre_fugitivo = tostring( nombre_fugitivo )
local estado = tostring( estado )
local team = getTeamName( getPlayerTeam( player ) )
if team == "Policia Nacional" then
if nombre_fugitivo then
if police_data[ nombre_fugitivo ] then
local _estado = tostring( police_data[ nombre_fugitivo ].estado )
police_data[ nombre_fugitivo ].estado = estado
outputChatBox( "Editada orden de búsqueda de "..nombre_fugitivo, player, 0, 255, 0 )
outputChatBox( "Nuevo estado: "..estado, player, 255, 255, 255 )
else
outputChatBox( nombre_fugitivo.." no tiene una orden de búsqueda.", player, 255, 0, 0 )
end
end
end
end
)
¿Cómo funciona?
Este sistema cuenta con una serie de comandos los cuales perfectamente se pueden pasar a eventos y usar junto a una GUI y hacerlo más práctico, no obstante, esta es una versión libre por lo cual funciona con comandos, los cuales, son los siguientes:
/addbusq [nombre del fugitivo] [motivo] [estado (detenido o libre)]: Con este comando añadimos una orden de búsqueda y captura a nuestra tabla global (base de datos, digamos), police_data.
/checkorden [nombre del fugitivo]: Con este comando comprobamos si hay alguna orden de búsqueda pendiente en la base de datos de la policía.
/bbusq [nombre del fugitivo]: Con este comando podemos borrar la orden de búsqueda del jugador en cuestión.
/ebusq [nombre del fugitivo] [nuevo estado]: Con este comando podemos editar el estado de búsqueda del jugador (detenido, en búsqueda, etc...)
Espero que os guste. Aún no he podido testearlo a fondo porque no tengo con quién, si alguien tiene un servidor, podemos ir mejorandolo para la comunidad