Jump to content

[Ajude-Me] Adicionar Player a ACL Group


Recommended Posts

Olá pessoal da comunidade PT/BR do MTA, estou com uma duvida. Tenho um script de entregador de jornais, queria saber se consigo fazer que o player entre em um grupo da ACL "Entregador de Jornal" quando ele acabar de ingressar na profissão e ele for removido ao pedir demissão?

 

Client

--[[



 ################################################
 #                                              #
 #              Script Criado Por               #
 #           FACEBOOK.COM/AIRNEWSCR             #
 #                                              #
 #                                              #
 ################################################



--]]

--------------------------------------------------------------------

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

--------------------------------------------------------------------

function Window(rnames)
  if isElement(myWindow) then return end
  local screenW, screenH = guiGetScreenSize()
	
  myWindow = guiCreateWindow((screenW - x*485) / 2, (screenH - y*404) / 2, x*485, y*404, "Rotas", false)
  rotas = guiCreateGridList(x*40, y*40, x*405, y*275, false, myWindow)
  guiWindowSetSizable(myWindow, false)
  guiSetAlpha(rotas, x*0.70)
  guiGridListAddColumn( rotas, "Rotas", x*0.85 )
	
  for k,v in pairs(rnames) do
   row =  guiGridListAddRow ( rotas )
   guiGridListSetItemText ( rotas, row, 1,  tostring(k), false, false )
  end
	
  showCursor(true)
	
  fechar = guiCreateButton(x*275, y*334, x*168, y*35, "Fechar", false, myWindow)
  escolher = guiCreateButton(x*42, y*334, x*168, y*35, "Carregar", false, myWindow)
end
addEvent("AirNew>JOBEntregadorDeJornal>AbrirPainel<Client", true)
addEventHandler("AirNew>JOBEntregadorDeJornal>AbrirPainel<Client", localPlayer, Window)

function botoes(bt,state)
	if state == "up" and bt == "left" then
		if source == fechar then
			if isElement(myWindow) then
				destroyElement(myWindow)
				showCursor(false)
			end
		end
		if source == escolher then
			local selectedItemx = guiGridListGetSelectedItem(rotas)
			local nome = guiGridListGetItemText(rotas, selectedItemx, 1)
			if nome == nil then outputChatBox("#00FF73[HR] #ffffffSelecione Uma Rota",255,255,255,true) return end
			triggerServerEvent("AirNew>request>Startrota>Server>EntregadorDeJornal",localPlayer,localPlayer,nome)	
			if isElement(myWindow) then
				destroyElement(myWindow)
				showCursor(false)
			end			
		end
	end
end
addEventHandler("onClientGUIClick", root,botoes)


function blips(state,x,y,z)
	if state == true then
		if not isElement(blips) then
			blips = createBlip ( x, y, z, 0)
		end
	else
		if isElement(blips) then
			destroyElement(blips)
		end	
	end
end
addEvent("AirNew>JOBEntregadorDeJornal>blips<Client", true)
addEventHandler("AirNew>JOBEntregadorDeJornal>blips<Client", localPlayer, blips)

function DesligarAntiQuedaBike ()  
 setPedCanBeKnockedOffBike ( localPlayer, true )
end
addEvent( "Desligar:AntiQueda", true )
addEventHandler( "Desligar:AntiQueda", localPlayer, DesligarAntiQuedaBike )

function LigarAntiQuedaBike ()  
 setPedCanBeKnockedOffBike ( localPlayer, false )
end
addEvent( "Ligar:AntiQueda", true )
addEventHandler( "Ligar:AntiQueda", localPlayer, LigarAntiQuedaBike )

Server

MarkerSafeEntregadorDeJornal = createMarker( 765.68848, -1355.44495, 13.52570, "cylinder", 35, 0, 255, 0, 0)

EntregadorDeJornalPickup = createPickup ( 783.27710, -1327.66260, 13.54688, 3, 1210)
MarkerEntregadorDeJornal = createMarker ( 783.27710, -1327.66260, 13.54688, "cylinder", 1.2, 255, 255, 255, 0 )
attachElements ( MarkerEntregadorDeJornal, EntregadorDeJornalPickup, 0, 0, -1 )

function CancelarSumirPickup ( player )
   cancelEvent()
end
addEventHandler ( "onPickupHit", EntregadorDeJornalPickup, CancelarSumirPickup )

LetraParaMarkers = "k"
cmd1 = "hq"
cmd2 = "profissao"

local HQEntregadorDeJornalBlip = createBlip ( 783.27710, -1327.66260, 13.54688 )
setElementVisibleTo ( HQEntregadorDeJornalBlip, root, false )

--------------------------------------------------------------------

function VerificarBlipEmprego(player)
  if player then
  acc = getPlayerAccount ( player )
  if isGuestAccount ( acc ) then return end
  setElementVisibleTo ( HQEntregadorDeJornalBlip, player, false )
  end
end

setTimer(
function()
	for i, pl in pairs(getElementsByType("player")) do
		if pl ~= (false or nil) then
		    if getElementData ( pl, "Emprego" ) == "Entregador de Jornal" then return end
			   VerificarBlipEmprego(pl)
		end
	end
end,
3000,0)

--------------------------------------------------------------------

function ComandoHQ ( source )
    if getElementData ( source, "Emprego" ) == "Entregador de Jornal" then
	if isElementVisibleTo ( HQEntregadorDeJornalBlip, source ) then
	setElementVisibleTo ( HQEntregadorDeJornalBlip, source, false )
	exports.Scripts_Dxmessages:outputDx(source, "Seu Local de Trabalho foi Desmarcado do Mapa!", "info")
	else
	setElementVisibleTo ( HQEntregadorDeJornalBlip, source, true )
	exports.Scripts_Dxmessages:outputDx(source, "Seu Local de Trabalho foi Marcado no Mapa!", "info")
end
end	
end    
addCommandHandler ( cmd1, ComandoHQ )

--------------------------------------------------------------------

function AceitarEmprego02 (source)
exports.Scripts_OnMarkerMsgs_:delete(source)
unbindKey ( source, LetraParaMarkers, "down", AceitarEmprego02 )
if getElementData ( source, "AirNew>Encaminhamento" ) == "Entregador de Jornal" then
setElementData ( source, "AirNew>Encaminhamento", false )
setElementData ( source, "Emprego", "Entregador de Jornal" )
exports.Scripts_Dxmessages:outputDx(source, "Você Agora Trabalha de Entregador de Jornal, Para Mais Informações Digite ( /Profissao )", "success")
else
exports.Scripts_Dxmessages:outputDx(source, "Você Precisa Estar Encaminhado da Agencia de Empregos para Trabalhar neste Local!", "error")
end
end

function RecusarEmprego02 (source)
exports.Scripts_OnMarkerMsgs_:delete(source)
unbindKey ( source, LetraParaMarkers, "down", RecusarEmprego02 )
if isElementVisibleTo ( HQEntregadorDeJornalBlip, source ) then
setElementVisibleTo ( HQEntregadorDeJornalBlip, source, false )
end
removeElementData ( source, "Emprego", "Entregador de Jornal" )
exports.Scripts_Dxmessages:outputDx(source, "Você se Demitiu do Emprego de Entregador de Jornal com Sucesso!", "warning")
end

--------------------------------------------------------------------

function ComandosProf ( ThePlayer )
if getElementData ( ThePlayer, "Emprego" ) == "Entregador de Jornal" then
playSoundFrontEnd ( ThePlayer, 43 )
outputChatBox ( "#F9A631~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #F96031Profissão #F9A631~~~~~~~~~~~~~~~~~~~~~~~~~~~~", ThePlayer, 255, 255, 255, true )
outputChatBox ( "#F96031» #BEE09AComandos da Profissão de Entregador de Jornal", ThePlayer, 255, 255, 255, true )
outputChatBox ( "#F96031» #55D444/HQ #ffffff- #9ABDE0Para Marcar / Desmarcar o seu Local de Trabalho", ThePlayer, 255, 255, 255, true )
outputChatBox ( "#F96031» #55D444/Rotas #ffffff- #9ABDE0Abre a Lista de Rotas Disponiveis Para Trabalhar", ThePlayer, 255, 255, 255, true )
outputChatBox ( "#F96031» #FFD700Entre na Lambreta e Digite /Rotas Selecione uma Rota e Siga os Checkpoints!", ThePlayer, 255, 255, 255, true )
outputChatBox ( "#F9A631~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #F96031Profissão #F9A631~~~~~~~~~~~~~~~~~~~~~~~~~~~~", ThePlayer, 255, 255, 255, true )
end
end
addCommandHandler(cmd2, ComandosProf )

--------------------------------------------------------------------


function emarker(marker,md) 
	if (md) then
	  if isPedInVehicle ( source ) then return end
		if marker == MarkerEntregadorDeJornal then
		    if getElementData ( source, "Emprego" ) == "Entregador de Jornal" then
			exports.Scripts_OnMarkerMsgs_:create(source,"Aperte 'K' Para se Demitir do Emprego de Entregador de Jornal")
			bindKey ( source, LetraParaMarkers, "down", RecusarEmprego02 )
		else
			exports.Scripts_OnMarkerMsgs_:create(source,"Aperte 'K' Para Aceitar o Emprego de Entregador de Jornal")
			bindKey ( source, LetraParaMarkers, "down", AceitarEmprego02 )
		end
	 end
  end	
end
addEventHandler("onPlayerMarkerHit",getRootElement(),emarker)

function lmarker(marker,md)
	if (md) then
		if marker == MarkerEntregadorDeJornal then
			exports.Scripts_OnMarkerMsgs_:delete(source)			
			unbindKey ( source, LetraParaMarkers, "down", AceitarEmprego02 )
			unbindKey ( source, LetraParaMarkers, "down", RecusarEmprego02 )
		end
	end
end
addEventHandler("onPlayerMarkerLeave",getRootElement(),lmarker)

function CriarVeiculosComData ()
VeiculosComDataEntregadorDeJornal = {
createVehicle(462, 785.55151, -1332.39575 -0, 13.54213, 0, 0, 90 ),
createVehicle(462, 785.55151, -1332.39575 -2, 13.54213, 0, 0, 90 ),
createVehicle(462, 785.55151, -1332.39575 -4, 13.54213, 0, 0, 90 ),
createVehicle(462, 785.55151, -1332.39575 -6, 13.54213, 0, 0, 90 ),
createVehicle(462, 785.55151, -1332.39575 -8, 13.54213, 0, 0, 90 ),
createVehicle(462, 785.55151, -1332.39575 -10, 13.54213, 0, 0, 90 ),
createVehicle(462, 785.55151, -1332.39575 -12, 13.54213, 0, 0, 90 ),
createVehicle(462, 785.55151, -1332.39575 -14, 13.54213, 0, 0, 90 ),
createVehicle(462, 785.55151, -1332.39575 -16, 13.54213, 0, 0, 90 ),
createVehicle(462, 785.55151, -1332.39575 -18, 13.54213, 0, 0, 90 ),
}

for i, veh in ipairs(VeiculosComDataEntregadorDeJornal) do
setElementData ( veh, "Emprego", "Entregador de Jornal" )
setVehicleDamageProof(veh,true)
setVehicleColor( veh, 0, 0, 0 )
setVehiclePlateText ( veh, "RPGAMING" )
addEventHandler("onVehicleStartEnter", veh, VerificarEmprego )
--addEventHandler("onVehicleExit", veh, SairDoVeiculosComData )
local tx, ty, tz = getElementPosition(veh)
local rx, ry, rz = getElementRotation(veh)
setVehicleRespawnPosition(veh, tx, ty, tz, rx, ry, rz)
end
end
addEventHandler("onResourceStart", resourceRoot, CriarVeiculosComData )

function VerificarEmprego (thePlayer, seat)
local Jogador = getElementData(thePlayer, "Emprego" )
if seat == 0 then
    if Jogador == "Entregador de Jornal" then	
	else
    cancelEvent()
    exports.Scripts_Dxmessages:outputDx(thePlayer, "Esse Veiculo é Exclusivo dos Entregadores de Jornal!", "error")
    end
  end
end

--[[function SairDoVeiculosComData ()
local veh = source
setTimer(function()
  if getVehicleOccupant(veh) == false then
respawnVehicle(veh)
end
end, 30000, 1)
end
addEventHandler ( "onPlayerQuit", getRootElement(), SairDoVeiculosComData ) --]]

--------------------------------------------------------------------

local rElement = getRootElement() 
  
function respawnVehicles(player, seconds)
    for i, veh in ipairs(VeiculosComDataEntregadorDeJornal) do
        if isEmpty( veh ) then 
                respawnVehicle ( veh ) 
            end 
        end 
    end
setTimer(respawnVehicles, 10000,0)

function isEmpty( vehicle ) 
    local passengers = getVehicleMaxPassengers( vehicle ) 
    if type( passengers ) == 'number' then 
        for seat = 0, passengers do 
            if getVehicleOccupant( vehicle, seat ) then 
                return false 
            end 
        end 
    end 
    return true 
end

--------------------------------------------------------------------

atualrotnumberJORNAL = {}
ppcikJORNAL = {}
blips = {}

rotasJORNAL = {
	["Entregas de Jornais - Los Santos (1) - 20 Entregas - $670"] = {
		{993.64386, -1050.08850, 30.72189},
		{1051.22083, -1049.50073, 31.70257},
		{1117.78308, -1030.55933, 31.88287},
		{1190.73914, -1027.36011, 32.35918},
		{1466.25684, -1172.65686, 23.88302},
		{1673.56787, -1169.50952, 23.92861},
		{1791.41406, -1164.77539, 23.82813},
		{2095.31763, -1292.43701, 23.97214},
		{2150.26270, -1291.66003, 23.97753},
		{2352.69019, -1513.26306, 24.00000},
		{2561.87158, -1467.34753, 24.01236},
		{2756.12573, -1180.33130, 69.39844},
		{2863.57446, -1440.18982, 10.95315},
		{2507.24414, -1725.65881, 13.54688},
		{2390.33276, -1721.86511, 13.58705},
		{2228.38867, -1722.77356, 13.55438},
		{2175, -1742, 13.55438},
		{2072.61230, -1793.96008, 13.54688},
		{1871.15784, -1923.91858, 13.54688},
		{1352.39136, -1758.33508, 13.50781},
	},
	["Entregas de Jornais - Los Santos (2) - 20 Entregas - $750"] = {
		{823.93018, -1413.86011, 13.46503},
		{909.32098, -1504.01135, 13.54223},
		{797.72333, -1580.37390, 13.54688},
		{645.75140, -1694.06555, 14.89330},
		{422.36475, -1758.63403, 8.18526},
		{305.55188, -1771.70020, 4.54249},
		{168.62589, -1770.10681, 4.43438},
		{138.38370, -1460.07129, 25.62103},
		{169.82892, -1348.34363, 69.36220},
		{280.87973, -1320.37817, 53.81308},
		{543.01135, -1202.30334, 44.50127},
		{562.19452, -1060.57458, 74.59800},
		{782.98035, -808.70764, 65.19865},
		{908.08984, -684.05566, 116.23006},
		{1091.30396, -627.89929, 111.38203},
		{1280.77197, -614.80652, 102.93521},
		{1437.30725, -935.30865, 36.26117},
		{1335.64368, -1066.11133, 27.87136},
		{1144.98792, -1131.54431, 23.82813},
		{1022.52026, -1122.13037, 23.87152},
	},
}

pay = {
	["Entregas de Jornais - Los Santos (1) - 20 Entregas - $670"] = 670,
	["Entregas de Jornais - Los Santos (2) - 20 Entregas - $750"] = 750,
}

function ifPlayerEnterOnMarker(markerHit,matchingDimension)
	if isPedInVehicle(source) then
		if markerHit == ppcikJORNAL[source] then
			if (matchingDimension) then
				if isElement(ppcikJORNAL[source]) then
					local rname = getElementData(source,"rtnameJornal") or nil
					if rname == nil then return end
					destroyElement(ppcikJORNAL[source])
					triggerClientEvent(source,"AirNew>JOBEntregadorDeJornal>blips<Client",source,false)
					local vh = getPedOccupiedVehicle(source)
					
					toggleAllControls ( source, false )
					setControlState ( source, "handbrake", true )
					
					if atualrotnumberJORNAL[source] <= #rotasJORNAL[rname] then
					    exports.Scripts_Dxmessages:outputDx(source, "Entregando Jornais... Aguarde 2 Segundos!", "info")
						setTimer(gerarrota,2500,1,source)
						setTimer(function(source) exports.Scripts_Dxmessages:outputDx(source, "Jornais Entregues, Siga Para o Proximo Checkpoint!", "success") end,2500,1,source)
					elseif atualrotnumberJORNAL[source] == #rotasJORNAL[rname]+1 then
						setElementData(source,"rtnameJornal",rname)
						atualrotnumberJORNAL[source] = 1
						local rec = pay[rname]
						givePlayerMoney(source,tonumber(rec))	
						local vh = getPedOccupiedVehicle(source)
						setTimer(function(source) exports.Scripts_Dxmessages:outputDx(source, "Você Recebeu um Valor de $"..rec.." Por Finalizar as Entregas de Jornais!", "success") end,2500,1,source)
						setTimer(function(source) toggleAllControls ( source, true ) end, 2500,1, source )
						setTimer(function(source) setControlState ( source, "handbrake", false ) end, 2500,1, source )
						setElementData(source,"rtnameJornal",nil)	
					end

					
				end

			end	
		end
	end
end
addEventHandler("onPlayerMarkerHit",getRootElement(),ifPlayerEnterOnMarker)

--------------------------------------------------------------------

function VerificarCairBike(player)
  if player then
  acc = getPlayerAccount ( player )
  if isGuestAccount ( acc ) then return end
  local rname = getElementData(player,"rtnameJornal") or nil
  if rname == nil then
  triggerClientEvent ( "Desligar:AntiQueda", player )
  else
  triggerClientEvent ( "Ligar:AntiQueda", player )
  end
 end		
end

setTimer(
function()
	for i, pl in pairs(getElementsByType("player")) do
		if pl ~= (false or nil) then
		    if getElementData ( pl, "Emprego" ) == "Entregador de Jornal" then
			   VerificarCairBike(pl)
			end
		end
	end
end,
3000,0)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function pickjobJornal(source)
	if not isElement(source) then return end
	local im = isPedInVehicle(source)
	if im == false then return end	
	local job = getElementData(source,"Emprego") or false
	if job == "Entregador de Jornal" then
	local vh = getPedOccupiedVehicle(source)
	if isElement(vh) then
		local x,y = getElementPosition(vh)
		local x1,y1 = getElementPosition(source)
		local dist = getDistanceBetweenPoints2D(x,y,x1,y1)
		local isMarkerSafe = isElementWithinMarker(vh,MarkerSafeEntregadorDeJornal)
		local id = getElementModel(vh)
		local seat = getPedOccupiedVehicleSeat(source)
		if dist > 0 then return end
		if id == 462 then		
			if seat == 0 then
				if isMarkerSafe == false then return end
				triggerClientEvent(source,"AirNew>JOBEntregadorDeJornal>AbrirPainel<Client",source,rotasJORNAL)
			end
		end
	end
end
end
addCommandHandler("rotas",pickjobJornal)

function receivert(source,rotaname)
	if isElement(ppcikJORNAL[source]) then
		destroyElement(ppcikJORNAL[source])
	end	
	triggerClientEvent(source,"AirNew>JOBEntregadorDeJornal>blips<Client",source,false)
	setElementData(source,"rtnameJornal",rotaname)
	atualrotnumberJORNAL[source] = 1
	gerarrota(source)
end
addEvent("AirNew>request>Startrota>Server>EntregadorDeJornal", true)
addEventHandler("AirNew>request>Startrota>Server>EntregadorDeJornal",getRootElement(), receivert)

function gerarrota(source)
	local rname = getElementData(source,"rtnameJornal") or nil
	if rname == nil then return end
	if not isElement(ppcikJORNAL[source]) and isPedInVehicle(source) then
		local vh = getPedOccupiedVehicle(source)
		toggleAllControls ( source, true )
		setControlState ( source, "handbrake", false )
		local id = tonumber(atualrotnumberJORNAL[source])
		local x,y,z = rotasJORNAL[rname][id][1],rotasJORNAL[rname][id][2],rotasJORNAL[rname][id][3]
		ppcikJORNAL[source] = createMarker (x, y,z, "checkpoint", 4, 255, 0, 0, 50,source)
		triggerClientEvent(source,"AirNew>JOBEntregadorDeJornal>blips<Client",source,true,x,y,z)
		atualrotnumberJORNAL[source] = id+1
	end
end

function sair ( quitType )
	if isElement(ppcikJORNAL[source]) then
		destroyElement(ppcikJORNAL[source])
	end
end
addEventHandler ( "onPlayerQuit", getRootElement(), sair )

function SairDaBike ( thePlayer, seat, jacked )
   local rname = getElementData(thePlayer,"rtnameJornal") or nil
   if rname == nil then return end
   canceljobtimer (thePlayer)
   exports.Scripts_Dxmessages:outputDx(thePlayer, "Você saiu da Lambreta, e suas entregas foram canceladas!", "warning")
end
addEventHandler ( "onVehicleExit", getRootElement(), SairDaBike )

function canceljobtimer(source)
	if isElement(ppcikJORNAL[source]) then
		destroyElement(ppcikJORNAL[source])
	end	
	triggerClientEvent(source,"AirNew>JOBEntregadorDeJornal>blips<Client",source,false)	
	atualrotnumberJORNAL[source] = 1
	setElementData(source,"rtnameJornal",nil)	
end

function canceljobdeath()
	local job = getElementData(source,"Emprego") or false
	if job ~= "Entregador de Jornal" then return end
	local rname = getElementData(source,"rtnameJornal") or nil
	if rname == nil then return end
	canceljobtimer(source)
	exports.Scripts_Dxmessages:outputDx(source, "Você Morreu e Suas Entregas Foram Canceladas!", "warning")
end	
addEventHandler( "onPlayerWasted", getRootElement( ),canceljobdeath)

 

Edited by dener189
Link to comment
On 25/08/2019 at 19:09, Jonas^ said:

Código bem mal feito....

Respondendo sua dúvida, este tópico ira te ajudar: Clique Aqui

Oque fiz de errado? KKKKKKKK

Server:

function AceitarEmprego02 (source)
exports.Scripts_OnMarkerMsgs_:delete(source)
unbindKey ( source, LetraParaMarkers, "down", AceitarEmprego02 )
if getElementData ( source, "AirNew>Encaminhamento" ) == "Entregador de Jornal" then
setElementData ( source, "AirNew>Encaminhamento", false )
setElementData ( source, "Emprego", "Entregador de Jornal" )
exports.Scripts_Dxmessages:outputDx(source, "Você Agora Trabalha de Entregador de Jornal, Para Mais Informações Digite ( /Profissao )", "success")
triggerServerEvent ("onRequestPegarEmprego", localPlayer, "pegarEmprego")
else
exports.Scripts_Dxmessages:outputDx(source, "Você Precisa Estar Encaminhado da Agencia de Empregos para Trabalhar neste Local!", "error")
end
end

function confirmTrampo (type, join, leave)
    if (type == "pegarEmprego") then -- Se a string enviada pelo client for "pegarEmprego", então:
        if (isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (client)), aclGetGroup("Entregador"))) then -- Se o jogador já estiver na acl "Mecanico", então:
        else -- Senão:
            aclGroupAddObject (aclGetGroup("Entregador"), "user."..getAccountName (getPlayerAccount (client))) -- Coloca o jogador na acl "Mecanico".
        end
    end
end
addEvent ("onRequestPegarEmprego", true)
addEventHandler ("onRequestPegarEmprego", root, confirmTrampo)

function RecusarEmprego02 (source)
exports.Scripts_OnMarkerMsgs_:delete(source)
unbindKey ( source, LetraParaMarkers, "down", RecusarEmprego02 )
if isElementVisibleTo ( HQEntregadorDeJornalBlip, source ) then
setElementVisibleTo ( HQEntregadorDeJornalBlip, source, false )
end
removeElementData ( source, "Emprego", "Entregador de Jornal" )
triggerServerEvent ("onRequestSairEmprego", localPlayer, "sairEmprego")
exports.Scripts_Dxmessages:outputDx(source, "Você se Demitiu do Emprego de Entregador de Jornal com Sucesso!", "warning")
end

function sairTrampo (type, join, leave)
    if (type == "sairEmprego") then -- Se a string enviada pelo client for "sairEmprego", então:
        if (isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (client)), aclGetGroup("Entregador"))) then -- Se o jogador estiver na acl "Mecanico", então:
            aclGroupRemoveObject (aclGetGroup("Entregador"), "user."..getAccountName (getPlayerAccount (client))) -- Remove o jogador da acl "Mecanico".
        else
        end
    end
end
addEvent ("onRequestSairEmprego", true)
addEventHandler ("onRequestSairEmprego", root, sairTrampo)

 

Link to comment

Qual dificuldade de pelo menos tentar fazer? não só dar ctrl c + v.

 

function AceitarEmprego02 (source)
	exports.Scripts_OnMarkerMsgs_:delete (source)
	unbindKey (source, LetraParaMarkers, "down", AceitarEmprego02)
	if not isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (source)), aclGetGroup("Entregador")) then -- Se o jogador não estiver na acl "Entregador", então:
		aclGroupAddObject (aclGetGroup("Entregador"), "user."..getAccountName (getPlayerAccount (source))) -- Adiciona ele na acl "Entregador".
		if getElementData (source, "AirNew>Encaminhamento") == "Entregador de Jornal" then
			setElementData (source, "AirNew>Encaminhamento", false)
			setElementData (source, "Emprego", "Entregador de Jornal")
			exports.Scripts_Dxmessages:outputDx (source, "Você Agora Trabalha de Entregador de Jornal, Para Mais Informações Digite ( /Profissao )", "success")
		else
			exports.Scripts_Dxmessages:outputDx (source, "Você Precisa Estar Encaminhado da Agencia de Empregos para Trabalhar neste Local!", "error")
		end
	end
end	

function RecusarEmprego02 (source)
	exports.Scripts_OnMarkerMsgs_:delete (source)
	unbindKey (source, LetraParaMarkers, "down", RecusarEmprego02)
	if isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (source)), aclGetGroup("Entregador")) then -- Se o jogador já estiver na acl "Entregador", então:
		aclGroupRemoveObject (aclGetGroup("Entregador"), "user."..getAccountName (getPlayerAccount (source))) -- Remove ele da acl "Entregador".
		if isElementVisibleTo (HQEntregadorDeJornalBlip, source) then
			setElementVisibleTo (HQEntregadorDeJornalBlip, source, false)
		end
		removeElementData (source, "Emprego", "Entregador de Jornal")
		exports.Scripts_Dxmessages:outputDx(source, "Você se Demitiu do Emprego de Entregador de Jornal com Sucesso!", "warning")
	end
end

Troque as duas funções do seu código por essas, digite /debugscript 3 quando for testar, poste resultados.

  • Thanks 1
Link to comment
4 hours ago, Jonas^ said:

Qual dificuldade de pelo menos tentar fazer? não só dar ctrl c + v.

 


function AceitarEmprego02 (source)	exports.Scripts_OnMarkerMsgs_:delete (source)	unbindKey (source, LetraParaMarkers, "down", AceitarEmprego02)	if not isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (source)), aclGetGroup("Entregador")) then -- Se o jogador não estiver na acl "Entregador", então:		aclGroupAddObject (aclGetGroup("Entregador"), "user."..getAccountName (getPlayerAccount (source))) -- Adiciona ele na acl "Entregador".		if getElementData (source, "AirNew>Encaminhamento") == "Entregador de Jornal" then			setElementData (source, "AirNew>Encaminhamento", false)			setElementData (source, "Emprego", "Entregador de Jornal")			exports.Scripts_Dxmessages:outputDx (source, "Você Agora Trabalha de Entregador de Jornal, Para Mais Informações Digite ( /Profissao )", "success")		else			exports.Scripts_Dxmessages:outputDx (source, "Você Precisa Estar Encaminhado da Agencia de Empregos para Trabalhar neste Local!", "error")		end	endend	function RecusarEmprego02 (source)	exports.Scripts_OnMarkerMsgs_:delete (source)	unbindKey (source, LetraParaMarkers, "down", RecusarEmprego02)	if isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (source)), aclGetGroup("Entregador")) then -- Se o jogador já estiver na acl "Entregador", então:		aclGroupRemoveObject (aclGetGroup("Entregador"), "user."..getAccountName (getPlayerAccount (source))) -- Remove ele da acl "Entregador".		if isElementVisibleTo (HQEntregadorDeJornalBlip, source) then			setElementVisibleTo (HQEntregadorDeJornalBlip, source, false)		end		removeElementData (source, "Emprego", "Entregador de Jornal")		exports.Scripts_Dxmessages:outputDx(source, "Você se Demitiu do Emprego de Entregador de Jornal com Sucesso!", "warning")	endend

Troque as duas funções do seu código por essas, digite /debugscript 3 quando for testar, poste resultados.

Desculpe por apenas copiar e colar, estava com pressa e apenas queria ver se assim seria eficaz. Essas linhas estão perfeitas, funcionou certinho ❤️ 

Link to comment
4 minutes ago, dener189 said:

Desculpe por apenas copiar e colar, estava com pressa e apenas queria ver se assim seria eficaz. Essas linhas estão perfeitas, funcionou certinho ❤️ 

Só não esqueça de corrigir a primeira função, primeiro deve ser a verificação da data, desta forma:

function AceitarEmprego02 (source)
	exports.Scripts_OnMarkerMsgs_:delete (source)
	unbindKey (source, LetraParaMarkers, "down", AceitarEmprego02)
	if getElementData (source, "AirNew>Encaminhamento") == "Entregador de Jornal" then
		setElementData (source, "AirNew>Encaminhamento", false)
		setElementData (source, "Emprego", "Entregador de Jornal")
		exports.Scripts_Dxmessages:outputDx (source, "Você Agora Trabalha de Entregador de Jornal, Para Mais Informações Digite ( /Profissao )", "success")
	else
		exports.Scripts_Dxmessages:outputDx (source, "Você Precisa Estar Encaminhado da Agencia de Empregos para Trabalhar neste Local!", "error")
	end
	if not isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (source)), aclGetGroup("Entregador")) then -- Se o jogador não estiver na acl "Entregador", então:
		aclGroupAddObject (aclGetGroup("Entregador"), "user."..getAccountName (getPlayerAccount (source))) -- Adiciona ele na acl "Entregador".
	end
end

 

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