Jump to content

EVENTO


Recommended Posts

Preciso de um evento tipo

a acl Admin da um comando ai vai aparecer um blip em cima dele e quando algum jogador matar ele ganha uma recompensa 

e some o blip e aparece no chat avisando quem foi o ganhador do premio        porfavor ajuda ai meus mano

tipo esse do link https://imgur.com/a/FNrRoO2

Link to comment
On 10/04/2021 at 22:08, Perigoso said:

Preciso de um evento tipo

a acl Admin da um comando ai vai aparecer um blip em cima dele e quando algum jogador matar ele ganha uma recompensa 

e some o blip e aparece no chat avisando quem foi o ganhador do premio        porfavor ajuda ai meus mano

tipo esse do link https://imgur.com/a/FNrRoO2

Isso não seria um evento, mas sim um script.

Abaixo está um código que simularia o quê você precisa:
 

Spoiler

local alvos = {}

addCommandHandler('memate', 
	function (player, cmd)
		if (isObjectInACLGroup('user.'..getAccountName(getPlayerAccount(player)), aclGetGroup('Admin'))) then
			if (not alvos[player]) then
				alvos[player] = createBlipAttachedTo(player, 0, 4, 255, 0, 0, -1, 65535)
				print('Mate o ADMIN e ganhe recompensas!')
			else
				print('Você já está marcado!')
			end
		end
	end
)

addEventHandler('onPlayerWasted', root, 
	function (_, killer)
		if (alvos[source] and killer) then
			destroyElement(alvos[source])
			alvos[source] = nil
			print('O ADMIN foi morto por *killer')
			--DÊ A RECOMPENSA AQUI!
		end
	end
)

 

 

  • Thanks 1
Link to comment
7 hours ago, KronoS Lettify said:

Isso não seria um evento, mas sim um script.

Abaixo está um código que simularia o quê você precisa:
 

  Hide contents


local alvos = {}

addCommandHandler('memate', 
	function (player, cmd)
		if (isObjectInACLGroup('user.'..getAccountName(getPlayerAccount(player)), aclGetGroup('Admin'))) then
			if (not alvos[player]) then
				alvos[player] = createBlipAttachedTo(player, 0, 4, 255, 0, 0, -1, 65535)
				print('Mate o ADMIN e ganhe recompensas!')
			else
				print('Você já está marcado!')
			end
		end
	end
)

addEventHandler('onPlayerWasted', root, 
	function (_, killer)
		if (alvos[source] and killer) then
			destroyElement(alvos[source])
			alvos[source] = nil
			print('O ADMIN foi morto por *killer')
			--DÊ A RECOMPENSA AQUI!
		end
	end
)

 

 

Como eu poderia adicionar tambem o nome do player no mapa
EX: o cifrao e o nome do jogador que deu o comando aparece no 'f11' mapa.

Link to comment
12 hours ago, Perigoso said:

Como eu poderia adicionar tambem o nome do player no mapa
EX: o cifrao e o nome do jogador que deu o comando aparece no 'f11' mapa.

Isso vai depender do sistema de mapa que você usa no seu servidor. Alguns são criados para aparecer nicks de jogadores no mapa, outros não.

Link to comment
On 12/04/2021 at 14:55, KronoS Lettify said:

Isso não seria um evento, mas sim um script.

Abaixo está um código que simularia o quê você precisa:
 

  Hide contents


local alvos = {}

addCommandHandler('memate', 
	function (player, cmd)
		if (isObjectInACLGroup('user.'..getAccountName(getPlayerAccount(player)), aclGetGroup('Admin'))) then
			if (not alvos[player]) then
				alvos[player] = createBlipAttachedTo(player, 0, 4, 255, 0, 0, -1, 65535)
				print('Mate o ADMIN e ganhe recompensas!')
			else
				print('Você já está marcado!')
			end
		end
	end
)

addEventHandler('onPlayerWasted', root, 
	function (_, killer)
		if (alvos[source] and killer) then
			destroyElement(alvos[source])
			alvos[source] = nil
			print('O ADMIN foi morto por *killer')
			--DÊ A RECOMPENSA AQUI!
		end
	end
)

 

 

Não esqueça que você esta lidando com o lado servidor, por tanto muita atenção, prevejo problemas nesse seu código.

@Perigoso

Não se acostume:

server-side

local eventoAtivado = false -- Variável que vai informar se o evento esta ou não ativo (atualmente desativado).
local saveAdmin -- Variável que vai guardar o admin que ativar o evento.

function eventoStart (thePlayer, cmd)
	if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount (thePlayer)), aclGetGroup ("Admin")) then -- Se o player que usar o comando for admin, então:
		if (eventoAtivado == false) then -- Se o evento não estiver ativado, então:
			blipEvento = createBlipAttachedTo (thePlayer, 0, 2, 0, 0, 255) -- Seta o blip no admin visível para todos (pois estamos no server então não precisa declarar visibleTo)
			saveAdmin = thePlayer -- Salva o playerSource na variável saveAdmin para poder cancelar o evento.
			eventoAtivado = true -- Seta a variável como true (evento ativado).
			setElementData (saveAdmin, "adminEventoStarted", true) -- Seta a data informando se o admin esta com evento ativo.
			clearChatBox () -- Limpa o chat pra ser bem visível para todos.
			outputChatBox ("[INFO] #FFFFFFO(A) admin '#00FF00"..string.gsub(getPlayerName (thePlayer), "#%x%x%x%x%x%x", "").."#FFFFFF' começou o evento mate o admin.", root, 0, 255, 0, true)
			outputChatBox ("[INFO] #FFFFFFPara ver a localização do admin aperte a tecla #00FF00'F11' #FFFFFFo ponto azul representa a localização exata do admin.", root, 0, 255, 0, true)
			outputChatBox ("[OBS] #FFFFFFLembrando que o admin tem a opção de revidar a agressão.", root, 255, 50, 50, true)
		else -- senão:
			outputChatBox ("[INFO] #FFFFFFO evento já esta ativo para cancelar use #FF3232/estop", thePlayer, 255, 50, 50, true)
		end	
	end	
end
addCommandHandler ("estart", eventoStart)

function eventoStop (thePlayer, cmd)
	if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount (thePlayer)), aclGetGroup ("Admin")) then -- Se o player que usar o comando for admin, então:
		if (eventoAtivado == true) then -- Se o evento já estiver ativado, então:
			removeElementData (saveAdmin, "adminEventoStarted") -- Remove a data informando se o admin esta com evento ativo.
			if isElement (blipEvento) then -- Se existir o elemento blipEvento, então: 
				destroyElement (blipEvento) -- Retira o blip do admin.
			end 
			saveAdmin = nil -- Seta a variável como nil ficando inexistente.
			eventoAtivado = false -- Seta a variável como false (evento desativado).
			clearChatBox () -- Limpa o chat pra ser bem visível para todos.
			outputChatBox ("[INFO] #FFFFFFO(A) admin '#FF3232"..string.gsub(getPlayerName (thePlayer), "#%x%x%x%x%x%x", "").."#FFFFFF' cancelou o evento.", root, 255, 50, 50, true)  
		else
			outputChatBox ("[INFO] #FFFFFFO evento já esta desativado para ativar use #FF3232/estart", thePlayer, 255, 50, 50, true)
		end    
	end    
end
addCommandHandler ("estop", eventoStop)

addEventHandler ("onPlayerWasted", root, function (ammo, attacker, damageType)
	if (attacker and attacker ~= source) and getElementData (source, "adminEventoStarted") then
		local killer = getKiller (attacker) -- Variável que chama a função que verifica se elemento é um veículo/player.
		if killer then -- Se o jogador matou o admin, então:
			clearChatBox () -- Limpa o chat pra ser bem visível para todos.
			outputChatBox ("[EVENTO] #FFFFFFO(A) jogador '#FF3232"..string.gsub(getPlayerName (killer), "#%x%x%x%x%x%x", "").."#FFFFFF' matou o admin '#FF3232"..string.gsub(getPlayerName (source), "#%x%x%x%x%x%x", "").."#FFFFFF' e ganhou o evento.", root, 255, 50, 50, true)
			clearChatBox (killer) -- Limpa o chat somente pra quem matou o admin.
			outputChatBox ("[EVENTO] #FFFFFFVocê matou o admin '#00FF00"..string.gsub(getPlayerName (source), "#%x%x%x%x%x%x", "").."#FFFFFF' e ganhou o evento.", killer, 0, 255, 0, true)
			removeElementData (source, "adminEventoStarted") -- Remove a data informando se o admin esta com evento ativo.
			if isElement (blipEvento) then -- Se o elemento blipEvento existir, então:
				destroyElement (blipEvento) -- Retira o blip do jogador.				
			end 
			eventoAtivado = false -- Seta a variável como false (evento desativado).
		end
	end
end)

addEventHandler ("onPlayerQuit", root, function ()
	if getElementData (source, "adminEventoStarted") then -- Se o admin estiver com o evento ativo, então:
		clearChatBox () -- Limpa o chat pra ser bem visível para todos.
		outputChatBox ("[INFO] #FFFFFFO(A) admin '#FF3232"..string.gsub(getPlayerName (source), "#%x%x%x%x%x%x", "").."#FFFFFF' saiu do servidor e o evento foi cancelado.", root, 255, 50, 50, true)
		removeElementData (source, "adminEventoStarted") -- Remove a data informando se o admin esta com evento ativo.
		if isElement (blipEvento) then -- Se o elemento blipEvento existir, então:
			destroyElement (blipEvento) -- Retira o blip do jogador. 
		end 
		eventoAtivado = false -- Seta a variável como false (evento desativado).
	end
end)

addEventHandler ("onResouceStop", root, function ()
	if getElementData (source, "adminEventoStarted") then -- Se o admin estiver com o evento ativo, então:
		removeElementData (source, "adminEventoStarted") -- Remove a data informando se o admin esta com evento ativo.
	end
end)

function getKiller (v)
	local player
	if getElementType (v) == "vehicle" then -- Se o elemento for um veículo, então:
		player = getVehicleController (v) -- Verifica o motorista do veículo.
	elseif getElementType(v) == "player" then -- Se o elemento for um jogador, então:
		player = v
	end
	return getElementType(player) == "player" and player or false -- Validar se é um jogador e retorna-lo.
end

 

  • Thanks 1
Link to comment
50 minutes ago, Jonas^ said:

Não esqueça que você esta lidando com o lado servidor, por tanto muita atenção, prevejo problemas nesse seu código.

Eu só indiquei o quê ele precisava entender para que fizesse a versão dele, por isso não me submeti a preencher com todos os detalhes. Mas já foi suficiente você ter feito isso ?

Link to comment

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...