Jump to content

[APORTE] Script de policías | Orden de búsqueda y captura


Recommended Posts

latest?cb=20110830224516

Ó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 ;) 

Edited by aka Blue
  • Like 1
Link to comment
  • HAZJ locked and unlocked this topic
  • 4 years later...

Hola amigo, tengo un problema con este maravilloso script, pasa que no quiero que sea por *teams*, Solo quiero que una Faccion de mta roleplay la tenga osea la de policia, asi me queda mas facil, por que al momento de que mis policías se pongan de servicio, eh estado intentando pero no te da el team, si me podrias ayudar almenos a que cuando pongas /servicio te agregué al team por favor, o si no borrar el team que cualquiera lo pueda usar, Gracias y espero que leas este mensaje Wapo

  • Confused 1
Link to comment
On 15/07/2021 at 23:21, SantxHdz said:

Hola amigo, tengo un problema con este maravilloso script, pasa que no quiero que sea por *teams*, Solo quiero que una Faccion de mta roleplay la tenga osea la de policia, asi me queda mas facil, por que al momento de que mis policías se pongan de servicio, eh estado intentando pero no te da el team, si me podrias ayudar almenos a que cuando pongas /servicio te agregué al team por favor, o si no borrar el team que cualquiera lo pueda usar, Gracias y espero que leas este mensaje Wapo

Tendrías que modificar la condicional que verifica que es por equipos hacer que sea por facción. Desconozco cual es la función de tu roleplay para obtener la facción de tu jugador, pero suponiendo sería algo más o menos así:

if exports.roleplay_resource:isPlayerInFaction(player,"Policia") then

 

Edited by _SAXI_
Link to comment
  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...