Jump to content

AJUDA COM, EMPREGO NA ACL


Recommended Posts

Então galera to com uma agencia de emprego, e queria adicionar mais empregos, especificamente o de mecânico, é bem simples adicionar um emprego mas no caso do de mecânico é necessário estar no grupo "Mecanico" na acl, eu queria ajuda para quando pegar o emprego de mecânico ser automaticamente adicionado no grupo mecânico da acl.

CODIGO DA AGENCIA

SERVE


--Pegar Trabalho       


function Pegar_Emprego (source, Trab, Level, Hab)
	local Trabalho = getElementData ( source, "Emprego" ) or "Desempregado"
	local Habilicao = getElementData ( source, "DNL:Categoria("..Hab..")")
	local Level_Player = tonumber(getElementData(source, "Level")) or 0   
	if Level_Player >= tonumber(Level) then 
		if Trabalho == Trab then triggerClientEvent(source, "addNotification", root, "#ffffffINFO: #ffffffVocê Já Trabalha Como #106FE7"..Trab.."", "info") return end
		if Habilicao == false then triggerClientEvent(source, "addNotification", root, "#ffffffErro: #ffffffVocê Não Tem Habilitação ("..Hab..") e Não Pode Trabalhar Como ("..Trab..")", "erro") return end
		setElementData ( source, "Emprego", Trab )
		triggerClientEvent(source, "addNotification", root, "#ffffffINFO: #ffffffVocê Agora Trabalha de #106FE7"..Trab.."", "info")
	else
		triggerClientEvent(source, "addNotification", root, "#ffffffErro: #ffffffSeu Level é Muito Baixo e Você Não Pode Trabalhar Como #106FE7"..Trab.."", "erro")
	end
end
addEvent("DNL:Pegar_Emprego", true)
addEventHandler("DNL:Pegar_Emprego", root, Pegar_Emprego)


--Demissao Trabalho        

function Pedir_Demissao (source)
	local Trabalho = getElementData ( source, "Emprego" ) or "Desempregado"
	if Trabalho == "Desempregado" then triggerClientEvent(source, "addNotification", root, "#ffffffErro: #ffffffVocê não está empregado para se demitir.", "erro") return end
	setElementData ( source, "Emprego", "Desempregado" )
	triggerClientEvent(source, "addNotification", root, "#ffffffSucesso: #ffffffVocê Se Demitiu Do Emprego de #106FE7"..Trabalho.."", "sucesso")
end
addEvent("DNL:Pedir_Demissao", true)
addEventHandler("DNL:Pedir_Demissao", root, Pedir_Demissao)

 

CODIGO CLIENTE DA AGENCIA

 

local screenW,screenH = guiGetScreenSize()
local resW,resH = 1366,768
local x,y =  (screenW/resW), (screenH/resH)

local Font_1 = dxCreateFont("font/font.ttf", y*11)
local Font_2 = dxCreateFont("font/font1.ttf", y*11)
local Font_3 = dxCreateFont("font/fontNick.ttf", y*10)
local Font_4 = dxCreateFont("font/OpenSans-Bold.ttf", y*11)

------------- ############################################ -------------
------------- #     Edite aqui (Level, Habilitação)      # -------------
------------- ############################################ -------------
Trabalhos = {
    {"Lixeiro", 0, "Nenhuma"}, -- Emprego, Level, Habilitação
    {"Carregador", 3, "Nenhuma"}, -- Emprego, Level, Habilitação
    {"Pescaria", 0, "Nenhuma"}, -- Emprego, Level, Habilitação
    {"Mineirador", 0, "Nenhuma"}, -- Emprego, Level, Habilitação
    {"Pizzaboy", 5, "A"}, -- Emprego, Level, Habilitação
    {"Sedex", 10, "C"}, -- Emprego, Level, Habilitação
    {"Caminhoneiro", 15, "D"}, -- Emprego, Level, Habilitação
}
	                               --===================================--
                                   ------------- Abrir/Fechar ------------
                                   --===================================--
function Abrir_agencia ()
	if isEventHandlerAdded("onClientRender", getRootElement(), Dx_Agencia) then return end
	showCursor(true)
	ListaTrabalhos:SetVisible(true)
	addEventHandler("onClientRender", root, Dx_Agencia)
end
addEvent("AG:Abrir", true)
addEventHandler("AG:Abrir", root, Abrir_agencia)

function CloseAgencia ()
	if isEventHandlerAdded("onClientRender", getRootElement(), Dx_Agencia) then  
		showCursor(false)
		ListaTrabalhos:SetVisible(false)
		removeEventHandler("onClientRender", root, Dx_Agencia)
	end
end
	                               --=======================================--
                                   ------------- Interface Painel ------------
                                   --=======================================--
function Dx_Agencia ()
		exports["Blur"]:dxDrawBluredRectangle(x*488, y*138, x*391, y*491, tocolor(255, 255, 255, 255))
        dxDrawRectangle(x*488, y*138, x*391, y*491, tocolor(0, 0, 0, 170), false)
        dxDrawRectangle(x*489, y*138, x*391, y*38, tocolor(0, 0, 0, 212), false)
        dxDrawLine(x*488, y*176, x*880, y*176, tocolor(16, 111, 231, 255), x*2, false)
        dxDrawText("Agencia de Empregos", x*621, y*146, x*746, y*161, tocolor(255, 255, 255, 255), 1.00, Font_1, "left", "top", false, false, false, false, false)
		
        dxDrawImage(x*500, y*494, x*366, y*37, "Img/botao.png", 0, 0, 0, CorEmprego, false)
        dxDrawText("Pegar Emprego", x*639, y*502, x*729, y*519, tocolor(0, 0, 0, 255), 1.00, Font_1, "left", "top", false, false, false, false, false)
		CorEmprego = tocolor(16, 111, 231, 170)
	if isCursorOnElement(x*500, y*494, x*366, y*37) then
		CorEmprego = tocolor(16, 111, 231, 200)
	end
		
        dxDrawImage(x*500, y*538, x*366, y*37, "Img/botao.png", 0, 0, 0, CorDemissao, false)
        dxDrawText("Pedir Demissão", x*640, y*546, x*726, y*563, tocolor(0, 0, 0, 255), 1.00, Font_1, "left", "top", false, false, false, false, false)
		CorDemissao = tocolor(16, 111, 231, 170)
	if isCursorOnElement(x*500, y*538, x*366, y*37) then
		CorDemissao = tocolor(16, 111, 231, 200)
	end
		
        dxDrawImage(x*500, y*582, x*366, y*37, "Img/botao.png", 0, 0, 0, CorSair, false)
        dxDrawText("Sair Agencia", x*650, y*590, x*719, y*609, tocolor(0, 0, 0, 255), 1.00, Font_1, "left", "top", false, false, false, false, false)
		CorSair = tocolor(16, 111, 231, 170)
	if isCursorOnElement(x*500, y*582, x*366, y*37) then
		CorSair = tocolor(16, 111, 231, 200)
	end
end
	                               --================================--
                                   ------------- GridTable ------------
                                   --================================--

addEventHandler("onClientResourceStart", resourceRoot,
  function ()
    ListaTrabalhos = dxGridW:Create(494, 183, 379, 302)
    ListaTrabalhos:AddColumn("Emprego", 140)
    ListaTrabalhos:AddColumn("Level", 105)
    ListaTrabalhos:AddColumn("Habilitação", 120)
    ListaTrabalhos:SetVisible(false)
	
	for i,v in ipairs (Trabalhos) do
		ListaTrabalhos:AddItem(1, tostring(v[1]))
		ListaTrabalhos:AddItem(2, tostring(v[2]))
		ListaTrabalhos:AddItem(3, tostring(v[3]))
	end
end)

	                               --=============================--
                                   ------------- Clicks ------------
                                   --=============================--
function Pegar_Trabalho ( _,state )
	if isEventHandlerAdded("onClientRender", getRootElement(), Dx_Agencia) then  
		if state == "down" then
			if isCursorOnElement(x*500, y*582, x*366, y*37) then -- Fechar Agencia
				CloseAgencia () 
			end
			if isCursorOnElement(x*500, y*494, x*366, y*37) then -- Pegar Emprego	
				if ListaTrabalhos:GetSelectedItem() > -1 then  
					local Trab = ListaTrabalhos:GetItemDetails(1, ListaTrabalhos:GetSelectedItem())
					local Level = ListaTrabalhos:GetItemDetails(2, ListaTrabalhos:GetSelectedItem())
					local Hab = ListaTrabalhos:GetItemDetails(3, ListaTrabalhos:GetSelectedItem())
					playSoundFrontEnd(12)
					triggerServerEvent("DNL:Pegar_Emprego", root, localPlayer, Trab, Level, Hab)
				else				   
					triggerEvent("addNotification", root, "#ffffffINFO: #ffffffSelecione o Emprego que Você Deseja Trabalhar", "info")
				end 
			elseif isCursorOnElement(x*500, y*538, x*366, y*37) then -- Demissão
					playSoundFrontEnd(12)
					triggerServerEvent("DNL:Pedir_Demissao", root, localPlayer)
			end
		end
	end
end
addEventHandler ( "onClientClick", root, Pegar_Trabalho )

	                               --=============================--
                                   ------------- IGNORA ------------
                                   --=============================--
--==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-

addEventHandler("onClientKey", root, 
	function (button, press)
    if isEventHandlerAdded("onClientRender", getRootElement(), Dx_Agencia) then  
			if button == "F1" or button == "F2" or button == "F3" or button == "F5" or button == "F6" or button == "F7" or button == "F9" or button == "F10" or button == "F11" or button == "F12" or button == "t" or button == "p" or button == "m" then
				cancelEvent()
			end
		end
	end
)

--==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-
						  
function isEventHandlerAdded( sEventName, pElementAttachedTo, func )
	if type( sEventName ) == 'string' and isElement( pElementAttachedTo ) and type( func ) == 'function' then
		local aAttachedFunctions = getEventHandlers( sEventName, pElementAttachedTo )
		if type( aAttachedFunctions ) == 'table' and #aAttachedFunctions > 0 then
			for i, v in ipairs( aAttachedFunctions ) do
				if v == func then
					return true
				end
			end
		end
	end
	return false
end

--==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-

local x,y = guiGetScreenSize()
function isCursorOnElement(x, y, w, h)
	if (not isCursorShowing()) then
		return false
	end
	local mx, my = getCursorPosition()
	local fullx, fully = guiGetScreenSize()
	cursorx, cursory = mx*fullx, my*fully
	if cursorx > x and cursorx < x + w and cursory > y and cursory < y + h then
		return true
	else
		return false
	end
end

--==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-

 

CODIGO SERVE DO EMPREGO DE MECANICO

 

Grupo = "Mecanico" -- Mude o Grupo da Acl Aqui!
Preco_Kit = 500 -- Mude Preço do kit aqui!
LimiteReparoMec = 20 -- Mude Limite de Kit Aqui!


--[[
         ><><><><><><><><><><><><><><><><><><><><
         ><           Infos Trabalho           ><
         ><><><><><><><><><><><><><><><><><><><><
--]]


function Info (source)
accountname = getAccountName(getPlayerAccount(source))
 if isObjectInACLGroup("user." .. accountname, aclGetGroup(Grupo)) then
	outputChatBox("#00ff00=====================================================", source, 255, 255, 255, true)  
	outputChatBox("#00FF00", source, 255, 255, 255, true)  
	outputChatBox("#00ff00/qg - #ffffffPara Marcar seu Local de Trabalho no Mapa.", source, 255, 255, 255, true)  
	outputChatBox("#00FF00", source, 255, 255, 255, true)  
	outputChatBox("#00ff00Trabalhar - #ffffffClique no veiculo Para Repara-lo.", source, 255, 255, 255, true)  
	outputChatBox("#00FF00", source, 255, 255, 255, true)  
	outputChatBox("#00ff00=====================================================", source, 255, 255, 255, true) 
  end
end
addCommandHandler ( "infos", Info )

function Quartel_Emprego ( source )
accountname = getAccountName(getPlayerAccount(source))
 if isObjectInACLGroup("user." .. accountname, aclGetGroup(Grupo)) then
	if isElementVisibleTo ( Blip_Emprego, source ) then
	   setElementVisibleTo ( Blip_Emprego, source, false )
	   exports.Scripts_Dxmessages:outputDx(source, "Seu Local de Trabalho foi Desmarcado do Mapa!", "info")
	else
	   setElementVisibleTo ( Blip_Emprego, source, true )
	   exports.Scripts_Dxmessages:outputDx(source, "Seu Local de Trabalho foi Marcado no Mapa!", "info")
	end
  end	
end    
addCommandHandler ( "qg", Quartel_Emprego )


--[[
         ><><><><><><><><><><><><><><><><><><><><
         ><              Trabalho              ><
         ><><><><><><><><><><><><><><><><><><><><
--]]

AbrirPainelMecanico = createMarker(1481.7296142578,-1767.330078125,18.795755386353 -1, "cylinder", 1.2, 0, 255, 0, 50)
setElementVisibleTo ( AbrirPainelMecanico, root, true )

Blip_Emprego = createBlipAttachedTo( AbrirPainelMecanico, 42 )
setElementVisibleTo ( Blip_Emprego, root, false )

function OpenPainelMed(source)
accountname = getAccountName(getPlayerAccount(source))
 if isObjectInACLGroup("user." .. accountname, aclGetGroup(Grupo)) then
   if isElementWithinMarker(source, AbrirPainelMecanico) then
	  triggerClientEvent(source,"MEC:Painel",source)	 
	  setElementVisibleTo ( Blip_Emprego, source, false )
   end
  else
	exports.Scripts_Dxmessages:outputDx(source, "Apenas Mecânicos podem entrar aqui!", "warning")
  end
end
addEventHandler( "onMarkerHit", AbrirPainelMecanico, OpenPainelMed )

 

Link to comment
7 hours ago, Sparta said:

Como sou leigo no assunto tem como fazer pra min?

 

Como você tentou? poste :) se comprovar que você realmente tentou e não apenas fez de qualquer jeito pra ganhar pronto, quem sabe a gente possa fazer o código, já que eu fiz da última vez e nem assim você tentou se esforçar...

Edited by Jonas^
Link to comment
53 minutes ago, Jonas^ said:

Como você tentou? poste  :)se comprovar que você realmente tentou e não apenas fez de qualquer jeito pra ganhar pronto, quem sabe a gente possa fazer o código, já que eu fiz da última vez e nem assim você tentou se esforçar...

KKKKKKKK, Blz é porque eu não tenho tanto tempo.

Como quero adicionar a um painel já pronto fico meio complicado pra min, já que para pegar qualquer emprego usa-se a condição "DNL:Pedir_Demissao"

e sinceramente não sei o que fazer, pois só quando pegasse o trabalho de mecânico fosse adicionado a acl  :)

 

function darmecanico (type, join, leave)
    if (type == "DNL:Pegar_Emprego") then 
        if (isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (client)), aclGetGroup("Mecanico"))) then 
            outputChatBox ("Você já está no trabalho de mecanico!", client, 255, 30, 30)
        else
            aclGroupAddObject (aclGetGroup("Mecanico"), "user."..getAccountName (getPlayerAccount (client))) 
            outputChatBox ("Parabéns! Agora você está trabalhando de mecânio!", client, 0, 255, 0)
        end
    elseif (type == "DNL:Pegar_Emprego") then 
        if (isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (client)), aclGetGroup("Mecanico"))) then 
            aclGroupRemoveObject (aclGetGroup("Mecanico"), "user."..getAccountName (getPlayerAccount (client))) 
            outputChatBox ("Você saiu do trabalho de mecânico!", client, 0, 255, 0)
        else
            outputChatBox ("Você não está no trabalho de mecânico!", client, 255, 30, 30)
        end
    end
end
addEvent ("onRequestPegarEmprego", true)
addEventHandler ("onRequestPegarEmprego", root, darmecanico)

 

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