Axgxl Posted November 15, 2017 Share Posted November 15, 2017 ------------------------------------------------ ------ 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 Link to comment
Other Languages Moderators Lord Henry Posted November 15, 2017 Other Languages Moderators Share Posted November 15, 2017 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. Link to comment
Axgxl Posted November 15, 2017 Author Share Posted November 15, 2017 (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 November 15, 2017 by Axgxl Link to comment
Other Languages Moderators Lord Henry Posted November 15, 2017 Other Languages Moderators Share Posted November 15, 2017 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 ) 1 Link to comment
Axgxl Posted November 16, 2017 Author Share Posted November 16, 2017 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. Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now