Jump to content

AJUDA NO SCRIPT DE VENDER DROGAS


Recommended Posts

Posted
------------------------------------------------
------		Sistema de Policia convertido para vender drogas			
------			By:#ROBSON			  	  ------
------------------------------------------------	
------		  Colaboração:				  ------
------		  #DR.VOODKA				  ------	
------		  [B]lack					  ------
------		  #[S]wag					  ------
------ 		  New Age			  		  ------
------		  DNL291					  ------
------------------------------------------------

-- SERVER SIDE

function getPlayerFromPartialName(name)
    local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil
    if name then
        for _, player in ipairs(getElementsByType("player")) do
            local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower()
            if name_:find(name, 1, true) then
                return player
            end
        end
    end
end	

function revistar_jogador ( thePlayer, comando, name )
    if name then
        if getPlayerFromPartialName ( name ) then
            local accName = getAccountName ( getPlayerAccount ( thePlayer ) )
            if isObjectInACLGroup ("user."..accName, aclGetGroup ( "POLICIA") ) then -- PERMISSÃO PARA USAR
				 local player_a_ser_revistado    =   getPlayerFromPartialName ( name )
                 local name_do_jogador           =   getPlayerName ( player_a_ser_revistado )
				 local name_do_policial          =   getPlayerName ( thePlayer )
                 local estrelas_de_procurado     =   getPlayerWantedLevel ( player_a_ser_revistado )
				 local policiax, policiay, policiaz = getElementPosition ( thePlayer ) -- ENCONTRAR POSIÇÃO DO VENDEDOR
				 local revistadox, revistadoy, revistadoz = getElementPosition ( player_a_ser_revistado ) -- ENCONTRAR POSIÇÃO DO COMPRADOR
				 local dist = getDistanceBetweenPoints3D ( policiax, policiay, policiaz, revistadox, revistadoy, revistadoz ) -- DISTANCIA ENTRE OS 2 
					if ( dist > 4 )  then -- se a distancia for 335 executara a função a seguir
					outputChatBox("#000000[#ff0000TRÁFICO#000000] #c1c1c1Chegue mais perto para executar o comando!", thePlayer, 255, 255, 255, true) -- Chat Box 
					elseif ( dist < 3 )then -- Caso ao contrario a distancia for 334 executara a função a seguir
					outputChatBox("#000000[#ff0000TRÁFICO#000000] #c1c1c1Você ofereceu para o #ffffff"..name_do_policial.." #c1c1c1drogas.", thePlayer, 255, 255, 255, true) -- Chat Box 
					triggerClientEvent(player_a_ser_revistado, "aparecer", player_a_ser_revistado) -- Chamar evento do client, aparecera uma gui para o comprador
					
				end
			else			
				outputChatBox("#000000[#ff0000TRÁFICO#000000] #c1c1c1Você não tem permissão para utilizar deste comando!", thePlayer, 255, 255, 255, true) -- Se voce nao for da acl voce nao tera permissao a este comando
        end
    end
end
end
addCommandHandler ( "traficar", revistar_jogador )

function comprardroga (thePlayer, comando, name, player_a_ser_revistado)
local comprador = getPlayerMoney(player_a_ser_revistado)
	if comprador > 5000 then
		takePlayerMoney ( player_a_ser_revistado, 5 ) -- comprador
		givePlayerMoney ( thePlayer, 5 ) -- vendedor
		end
		end
addEventHandler ( "aceitou", getRootElement(), comprardroga )
addEvent ("aceitou", true )

Eu preciso de ajuda na parte de tirar dinheiro de um jogador e dar para o outro, não funciona e não aparece nada no debugscript 3 

  • Moderators
Posted

Tirando a indentação que está bem ruim e o fato de AddEvent estar depois do AddEventHandler, onde está a parte client-side para chamar a função do dinheiro? Além disso você colocou parâmetros de comando na função, mas não existe nenhum AddCommandHandler para executar essa função.

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted (edited)
4 hours ago, Lord Henry said:

Tirando a indentação que está bem ruim e o fato de AddEvent estar depois do AddEventHandler, onde está a parte client-side para chamar a função do dinheiro? Além disso você colocou parâmetros de comando na função, mas não existe nenhum AddCommandHandler para executar essa função.

-- CLIENT SIDE

function showblowjobMessage(hooker)
	myhooker = hooker
	showCursor ( true )
	local x, y = guiGetScreenSize()
	if not blowjobBox then
		blowjobBox = guiCreateWindow( x*.5-150, y*.5-65, 300, 120, "Quer drogas?", false )
			guiWindowSetSizable( blowjobBox, false )
		blowjobMessage = guiCreateLabel( 100, 40, 180, 60, "", false, blowjobBox )
		blowjobOk = guiCreateButton( 90, 90, 70, 20, "Sim", false, blowjobBox )
		blowjobNo = guiCreateButton( 170, 90, 70, 20, "Não", false, blowjobBox )
		addEventHandler( "onClientGUIClick", blowjobNo, nothanks )
		addEventHandler( "onClientGUIClick", blowjobOk, startsucking )
	else
		guiSetPosition( blowjobBox, x*.5-150, y*.5-65, false )
		guiSetVisible( blowjobBox, true )
	end
	guiSetText( blowjobMessage, "Custa 5 reais o crack." )
	guiBringToFront( blowjobBox )
end
addEvent( "aparecer", true )
addEventHandler( "aparecer", getLocalPlayer(), showblowjobMessage )



function nothanks()
	john = getLocalPlayer()
	guiSetVisible( blowjobBox, false )
	showCursor ( false )
end


function startsucking()
	john = getLocalPlayer()
	triggerServerEvent ( "aceitou", getLocalPlayer(), myhooker, john )
	showCursor ( false )
	guiSetVisible( blowjobBox, false )
end

Tem o addcommandhandler, é o /traficar +o nome do jogador, ai vai aparecer uma gui pro jogador aceitar ou não, se ele aceitar é para ele perder dinheiro e o traficante ganhar, depois de arrumar a parte do dinheiro eu vou colocar uns efeito na droga.

Edited by Axgxl
  • Moderators
Posted

Em vez de:

Quote

server:


triggerClientEvent(player_a_ser_revistado, "aparecer", player_a_ser_revistado)

addEventHandler ( "aceitou", getRootElement(), comprardroga )
addEvent ("aceitou", true )

client:


addEventHandler( "aparecer", getLocalPlayer(), showblowjobMessage )

triggerServerEvent ( "aceitou", getLocalPlayer(), myhooker, john )

 

Tente usar no server:

triggerClientEvent (player_a_ser_revistado, "aparecer", getRootElement())
addEvent("aceitou", true)
addEventHandler("aceitou", root, comprardroga)

e no client:

addEventHandler ("aparecer", getRootElement(), showblowjobMessage)
triggerServerEvent("aceitou", localPlayer, myhooker, localPlayer)

Outra dica é você colocar vários outputChatBox pelo código para saber onde ele está parando de executar.

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

Você está usando essa função no client:

function startsucking()
	john = getLocalPlayer()
	triggerServerEvent ( "aceitou", getLocalPlayer(), myhooker, john ) -- Nome do Evento, executar em quem, parâmetro1, parâmetro2
	showCursor ( false )
	guiSetVisible( blowjobBox, false )
end

Para chamar essa função no server:

function comprardroga (thePlayer, comando, name, player_a_ser_revistado) -- Executar em quem (localPlayer), myhooker (player_a_ser_revistado), john (localPlayer), false
	local comprador = getPlayerMoney(player_a_ser_revistado) -- comprador = false
	if comprador > 5000 then -- ERRO (Tentou comparar valor booleano com inteiro.) [Provavelmente parou de executar aqui.]
		takePlayerMoney ( player_a_ser_revistado, 5 ) -- ERRO, não conseguiu tirar dinheiro pois não existe elemento "false".
		givePlayerMoney ( thePlayer, 5 ) -- Deu $5 de grana ao thePlayer (localPlayer).
	end
end
addEventHandler ( "aceitou", getRootElement(), comprardroga ) -- Evento
addEvent ("aceitou", true )

 

  • Like 1

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted
21 hours ago, Lord Henry said:

Em vez de:

Tente usar no server:


triggerClientEvent (player_a_ser_revistado, "aparecer", getRootElement())

addEvent("aceitou", true)
addEventHandler("aceitou", root, comprardroga)

e no client:


addEventHandler ("aparecer", getRootElement(), showblowjobMessage)

triggerServerEvent("aceitou", localPlayer, myhooker, localPlayer)

Outra dica é você colocar vários outputChatBox pelo código para saber onde ele está parando de executar.

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

Você está usando essa função no client:


function startsucking()
	john = getLocalPlayer()
	triggerServerEvent ( "aceitou", getLocalPlayer(), myhooker, john ) -- Nome do Evento, executar em quem, parâmetro1, parâmetro2
	showCursor ( false )
	guiSetVisible( blowjobBox, false )
end

Para chamar essa função no server:


function comprardroga (thePlayer, comando, name, player_a_ser_revistado) -- Executar em quem (localPlayer), myhooker (player_a_ser_revistado), john (localPlayer), false
	local comprador = getPlayerMoney(player_a_ser_revistado) -- comprador = false
	if comprador > 5000 then -- ERRO (Tentou comparar valor booleano com inteiro.) [Provavelmente parou de executar aqui.]
		takePlayerMoney ( player_a_ser_revistado, 5 ) -- ERRO, não conseguiu tirar dinheiro pois não existe elemento "false".
		givePlayerMoney ( thePlayer, 5 ) -- Deu $5 de grana ao thePlayer (localPlayer).
	end
end
addEventHandler ( "aceitou", getRootElement(), comprardroga ) -- Evento
addEvent ("aceitou", true )

 

Obrigado pela dica do output chat box, vou dar meu melhor pra entender tudo.

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