Jump to content

Recommended Posts

Queria a ajuda de voces, é um script muito simples! Acho que não é nem 10 linhas para faze-lo, se puderem me ajudar...

Script que quando o player digita /punheta, apareça uma imagem no meio da tela dele, se possivel aplicar um setTimer de mais ou menos uns 15 segundos!!! Assim, eu queria que voces fizessem e me esclarecessem cada funçao sabem ? para que eu possa me conscientizar e ja ficar ciente!

( Script meio tosco ksksksk )

Link to comment
  • Other Languages Moderators

Realmente um script bem tosco e desnecessário. Mas vamos lá.

local x, y = guiGetScreenSize () -- x e y recebem a resolução da tela do jogador.
rendering = false -- variável que indica se a imagem está sendo renderizada ou não, para evitar que bugue ao usar o comando enquanto já está renderizando a imagem.

function pornRender () -- Essa função é chamada a cada frame.
	dxDrawImage (0, 0, x, y, "nude.png", 0, 0, 0, tocolor(255,255,255,255), true) -- Desenha a imagem 'nude.png' na tela inteira do jogador.
end

function startRender (cmd) -- Função que inicia o render da imagem.
	if not rendering then -- Se a imagem já não está sendo renderizada, então:
		rendering = true -- Ela é considerada renderizada agora.
		addEventHandler ("onClientRender", getRootElement(), pornRender) -- Inicia o render da imagem a cada frame.
		setTimer (stopRender, 15000, 1) -- Daqui a 15 segundos, executa a função stopRender uma única vez.
	end
end
addCommandHandler ("punheta", startRender) -- Comando que executa a função startRender: /punheta

function stopRender () -- Função que cancela o render da imagem.
	if rendering then -- Se a imagem está sendo renderizada, então:
		rendering = false -- Ela não é mais considerada renderizada.
		removeEventHandler ("onClientRender", getRootElement(), pornRender) -- Cancela o render da imagem e ela some da tela. A função pornRender para de ser executada a cada frame.
	end
end

 

  • Like 1
Link to comment
2 hours ago, Lord Henry said:

Realmente um script bem tosco e desnecessário. Mas vamos lá.


local x, y = guiGetScreenSize () -- x e y recebem a resolução da tela do jogador.
rendering = false -- variável que indica se a imagem está sendo renderizada ou não, para evitar que bugue ao usar o comando enquanto já está renderizando a imagem.

function pornRender () -- Essa função é chamada a cada frame.
	dxDrawImage (0, 0, x, y, "nude.png", 0, 0, 0, tocolor(255,255,255,255), true) -- Desenha a imagem 'nude.png' na tela inteira do jogador.
end

function startRender (cmd) -- Função que inicia o render da imagem.
	if not rendering then -- Se a imagem já não está sendo renderizada, então:
		rendering = true -- Ela é considerada renderizada agora.
		addEventHandler ("onClientRender", getRootElement(), pornRender) -- Inicia o render da imagem a cada frame.
		setTimer (stopRender, 15000, 1) -- Daqui a 15 segundos, executa a função stopRender uma única vez.
	end
end
addCommandHandler ("punheta", startRender) -- Comando que executa a função startRender: /punheta

function stopRender () -- Função que cancela o render da imagem.
	if rendering then -- Se a imagem está sendo renderizada, então:
		rendering = false -- Ela não é mais considerada renderizada.
		removeEventHandler ("onClientRender", getRootElement(), pornRender) -- Cancela o render da imagem e ela some da tela. A função pornRender para de ser executada a cada frame.
	end
end

 

Você e o cara Henry!!! Realmente e bem desnecessário ksksk, foi a pedido dos players sabe ? Mais e bom que quando eu for fazer um script parecido, já fico ciente do que preciso fazer! Por exemplo um anúncio.

Você poderia me explicar só mais uma coisa ?  Por exemplo, assim que ele digitar /******* ele ser adicionado na ACL "Punha" por uns 3 minutos +-, sabe ? Aí mais ou menos em qual parte eu teria de usar os comandos do add e do removeobject +- junto do setTime ( 3 Minutos )

 

Link to comment
  • Other Languages Moderators
38 minutes ago, #Horus said:

Mais e bom que quando eu for fazer um script parecido, já fico ciente do que preciso fazer! Por exemplo um anúncio.

No caso pra fazer um anúncio, dai seria mais interessante.

Mas tenha em mente que a imagem irá distorcer de acordo com a resolução do jogador. Eu não fiz escala proporcional na imagem. Por exemplo: Se a imagem tem dimensões de 800x600 pixels (4:3) mas a tela do jogador tem resolução 1366x768 pixels (proporção 16:9), a imagem ficará esticada horizontalmente.

47 minutes ago, #Horus said:

Por exemplo, assim que ele digitar /******* ele ser adicionado na ACL "Punha" por uns 3 minutos +-, sabe ? Aí mais ou menos em qual parte eu teria de usar os comandos do add e do removeobject +- junto do setTime ( 3 Minutos )

Coloca o aclGroupAddObject após o rendering = true e coloca o aclGroupRemoveObject após o rendering = false na função stopRender.

Link to comment
26 minutes ago, Lord Henry said:

No caso pra fazer um anúncio, dai seria mais interessante.

Mas tenha em mente que a imagem irá distorcer de acordo com a resolução do jogador. Eu não fiz escala proporcional na imagem. Por exemplo: Se a imagem tem dimensões de 800x600 pixels (4:3) mas a tela do jogador tem resolução 1366x768 pixels (proporção 16:9), a imagem ficará esticada horizontalmente.

Coloca o aclGroupAddObject após o rendering = true e coloca o aclGroupRemoveObject após o rendering = false na função stopRender.

local x, y = guiGetScreenSize () -- x e y recebem a resolução da tela do jogador.
rendering = false -- variável que indica se a imagem está sendo renderizada ou não, para evitar que bugue ao usar o comando enquanto já está renderizando a imagem.

function pornRender () -- Essa função é chamada a cada frame.
	dxDrawImage (0, 0, x, y, "nude.png", 0, 0, 0, tocolor(255,255,255,255), true) -- Desenha a imagem 'nude.png' na tela inteira do jogador.
end

function startRender (cmd) -- Função que inicia o render da imagem.
	if not rendering then -- Se a imagem já não está sendo renderizada, então:
		rendering = true -- Ela é considerada renderizada agora.
        aclGroupAddObject (aclGetGroup("Punha"), "user."..getAccountName (getPlayerAccount (thePlayer)))
		addEventHandler ("onClientRender", getRootElement(), pornRender) -- Inicia o render da imagem a cada frame.
		setTimer (stopRender, 15000, 1) -- Daqui a 15 segundos, executa a função stopRender uma única vez.
	end
end
addCommandHandler ("punheta", startRender) -- Comando que executa a função startRender: /punheta

function stopRender () -- Função que cancela o render da imagem.
	if rendering then -- Se a imagem está sendo renderizada, então:
		rendering = false -- Ela não é mais considerada renderizada.
        aclGroupRemoveObject (aclGetGroup("Punha"), "user."..getAccountName (getPlayerAccount (thePlayer)))
		removeEventHandler ("onClientRender", getRootElement(), pornRender) -- Cancela o render da imagem e ela some da tela. A função pornRender para de ser executada a cada frame.
	end
end

Fiz Correto ksks ? mas caso eu queira que ele fique na acl "Punha" por uns 5 miutos, oque preciso fazer ? 

Link to comment
  • Other Languages Moderators

Pra fazer com grandes períodos de tempo, recomendo que use uma variável chamada minutos e multiplique ela por 60 mil no timer.

E vc fez errado, pois vc está colocando funções server-side em um script client-side. Assim não irá funcionar.

Ali no código, tudo que está laranja, só funciona server-side. E tudo que está em vermelho, só funciona client-side. Os que estão em azul funcionam em ambos.

Link to comment
7 minutes ago, Lord Henry said:

Pra fazer com grandes períodos de tempo, recomendo que use uma variável chamada minutos e multiplique ela por 60 mil no timer.

E vc fez errado, pois vc está colocando funções server-side em um script client-side. Assim não irá funcionar.

Ali no código, tudo que está laranja, só funciona server-side. E tudo que está em vermelho, só funciona client-side. Os que estão em azul funcionam em ambos.

Eu teria de usar basicamente qual comando para aclGroupAddObject e aclGroupRemoveObject no client-side 

Link to comment

Pra colocar permissão, você tem que fazer um trigger no lado client e  puxar ele no server para usar o comando ' punheta ' lá.

Ou você pode usar data ( que não aconselho )

Não entendi por que você esta tentando usar aclGroupRemoveObject e aclGroupAddObject -- Não tinha lido ali em cima sua pergunta desculpe rsrs ignore isso.

OBS: Não acho viável fazer isso, aconselho você deixar esse comando livre para todos usar, ou até mesmo privar numa acl ex: Punheta é mais fácil.

Vamos por partes, faça primeiro as modificações no client e coloque aqui para nos ajudarmos você.

 

1 - Adicione um evento no client e permita que ele possa ser chamado por outros recursos.

2- Dentro desse escopo do evento, você deve adicionar a parte que começa renderizar e o timer pra ele detectar e parar, você deve retirar a função startRender  você vai usar essa parte dentro do escopo do evento que vai ser puxado pelo server pra iniciar a renderização.

3- Quando terminar esses 2 passos poste aqui para nós verificar, se tiver alguma dúvida pergunte.

 

Não adianta a gente te dar o código todo pronto, Lordin já deu mais que 90% agora você tem que aprender fazer o resto com a nossa ajuda claro.

 

 

Edited by OverKILL
Link to comment
9 minutes ago, OverKILL said:

Pra colocar permissão, você tem que fazer um trigger no lado client e  puxar ele no server para usar o comando ' punheta ' lá.

Ou você pode usar data ( que não aconselho )

Não entendi por que você esta tentando usar aclGroupRemoveObject e aclGroupAddObject -- Não tinha lido ali em cima sua pergunta desculpe rsrs ignore isso.

OBS: Não acho viável fazer isso, aconselho você deixar esse comando livre para todos usar, ou até mesmo privar numa acl ex: Punheta é mais fácil.

Vamos por partes, faça primeiro as modificações no client e coloque aqui para nos ajudarmos você.

 

1 - Adicione um evento no client e permita que ele possa ser chamado por outros recursos.

2- Dentro desse escopo do evento, você deve adicionar a parte que começa renderizar e o timer pra ele detectar e parar, você deve retirar a função startRender  você vai usar essa parte dentro do escopo do evento que vai ser puxado pelo server pra iniciar a renderização.

3- Quando terminar esses 2 passos poste aqui para nós verificar, se tiver alguma dúvida pergunte.

 

Não adianta a gente te dar o código todo pronto, Lordin já deu mais que 90% agora você tem que aprender fazer o resto com a nossa ajuda claro.

 

 

Opa ss, e pra todos usarem! Assim vou te explicar o motivo:

Quero que quando digitem /punheta além de aparecer a imagem, queria que ele recebesse a TAG "Punheteiro" mas pra fazer TAG e necessário ACL, por isso quero isso sabe ksksks ? Foi a pedido dos próprios players, e um script meio bobo ksksks

Link to comment
4 minutes ago, #Horus said:

Opa ss, e pra todos usarem! Assim vou te explicar o motivo:

Quero que quando digitem /punheta além de aparecer a imagem, queria que ele recebesse a TAG "Punheteiro" mas pra fazer TAG e necessário ACL, por isso quero isso sabe ksksks ? Foi a pedido dos próprios players, e um script meio bobo ksksks

Então, você pode definir um grupo Punheta por exemplo, e adicionar os jogadores ' punheteiros ' lá, assim iriam ter a tag pra sempre e todos iriam ver, as vezes o jogador digita o comando /punheta e nem fala no chat, dai você só vai processar uma coisa que nem iria precisar.

Edited by OverKILL
Link to comment
3 minutes ago, OverKILL said:

Então, você pode definir um grupo Punheta por exemplo, e adicionar os jogadores ' punheteiros ' lá, assim iriam ter a tag pra sempre e todos iriam ver, as vezes o jogador digita o comando /punheta e nem fala no chat, dai você só vai processar uma coisa que nem iria precisar.

Pois e kskkss mais achei que ia ficar meio tosco sabe mano ? Aí assim, quando ele executar o /punheta ele iria ser adicionado no grupo para ter a tag, e após passar 1 minuto mais ou menos ele ser removido tlg ? 

Link to comment
3 minutes ago, #Horus said:

Pois e kskkss mais achei que ia ficar meio tosco sabe mano ? Aí assim, quando ele executar o /punheta ele iria ser adicionado no grupo para ter a tag, e após passar 1 minuto mais ou menos ele ser removido tlg ? 

Ok, vamos lá, faça por partes, faça os passos que citei acima e poste aqui.

Link to comment
11 minutes ago, Lord Henry said:

A verificação deverá ser feita no client.

function Punha(sourcePlayer)
    if not punhetaStarted then
	 triggerClientEvent ( playerSource, "E Aqui pessoal", playerSource, "E Aqui pessoal" )
     aclGroupAddObject (aclGetGroup("Punheteiro"), "user."..getAccountName (getPlayerAccount (thePlayer)))
   end
end	  
addCommandHandler("punheta", Punha)

 

Link to comment
  • Other Languages Moderators

Ta ae:

client.lua

local x, y = guiGetScreenSize () -- x e y recebem a resolução da tela do jogador.
local rendering = false -- variável que indica se a imagem está sendo renderizada ou não, para evitar que bugue ao usar o comando enquanto já está renderizando a imagem.
local minutos = 15 -- Quantos minutos o jogador deve esperar para perder a TAG de Punheteiro

function pornRender () -- Essa função é chamada a cada frame.
	dxDrawImage (0, 0, x, y, "nude.png", 0, 0, 0, tocolor(255,255,255,255), true) -- Desenha a imagem 'nude.png' na tela inteira do jogador.
end

addEvent ("verPunheta", true)
addEventHandler ("verPunheta", getRootElement(), function () -- Função que inicia o render da imagem.
	if not rendering then -- Se a imagem já não está sendo renderizada, então:
		rendering = true -- Ela é considerada renderizada agora.
		addEventHandler ("onClientRender", getRootElement(), pornRender) -- Inicia o render da imagem a cada frame.
		setTimer (stopRender, 15000, 1) -- Daqui a 15 segundos, executa a função stopRender uma única vez.
		if isTimer (pornTimer) then -- Se já existe o timer para tirar a TAG do jogador, então:
			resetTimer (pornTimer) -- Reinicia esse timer.
		else -- Se não existe o timer, então:
			pornTimer = setTimer (function () -- Cria o timer.
				triggerServerEvent ("cancelaTag", localPlayer)
			end, minutos * 60000, 1) -- Daqui a 15 minutos, executa o evento "cancelaTag" no server, que irá remover a TAG.
		end
	end
end)

function stopRender () -- Função que cancela o render da imagem.
	if rendering then -- Se a imagem está sendo renderizada, então:
		rendering = false -- Ela não é mais considerada renderizada.
		removeEventHandler ("onClientRender", getRootElement(), pornRender) -- Cancela o render da imagem e ela some da tela. A função pornRender para de ser executada a cada frame.
	end
end

server.lua

function Punha (sourcePlayer)
	if isGuestAccount (getPlayerAccount(sourcePlayer)) then return end -- Impede que o comando funcione para jogadores deslogados.
	triggerClientEvent (sourcePlayer, "verPunheta", sourcePlayer) -- Executa o evento "verPunheta" do client.lua
	if not isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(sourcePlayer)), aclGetGroup ("Punha")) then -- Se o jogador não tem a TAG, então:
		aclGroupAddObject (aclGetGroup("Punha"), "user."..getAccountName (getPlayerAccount (sourcePlayer))) -- Coloca TAG de punheteiro nele.
	end
end
addCommandHandler ("punheta", Punha) -- Comando que executa a função Punha

addEvent ("cancelaTag", true)
addEventHandler ("cancelaTag", getRootElement(), function ()
	if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(client)), aclGetGroup ("Punha")) then -- Se o jogador tem a TAG, então:
		aclGroupRemoveObject (aclGetGroup("Punha"), "user."..getAccountName (getPlayerAccount (client))) -- Remove a TAG de punheteiro dele.
	end
end)

 

Link to comment
7 minutes ago, Lord Henry said:

Ta ae:

client.lua


local x, y = guiGetScreenSize () -- x e y recebem a resolução da tela do jogador.
local rendering = false -- variável que indica se a imagem está sendo renderizada ou não, para evitar que bugue ao usar o comando enquanto já está renderizando a imagem.
local minutos = 15 -- Quantos minutos o jogador deve esperar para perder a TAG de Punheteiro

function pornRender () -- Essa função é chamada a cada frame.
	dxDrawImage (0, 0, x, y, "nude.png", 0, 0, 0, tocolor(255,255,255,255), true) -- Desenha a imagem 'nude.png' na tela inteira do jogador.
end

addEvent ("verPunheta", true)
addEventHandler ("verPunheta", getRootElement(), function () -- Função que inicia o render da imagem.
	if not rendering then -- Se a imagem já não está sendo renderizada, então:
		rendering = true -- Ela é considerada renderizada agora.
		addEventHandler ("onClientRender", getRootElement(), pornRender) -- Inicia o render da imagem a cada frame.
		setTimer (stopRender, 15000, 1) -- Daqui a 15 segundos, executa a função stopRender uma única vez.
		if isTimer (pornTimer) then -- Se já existe o timer para tirar a TAG do jogador, então:
			resetTimer (pornTimer) -- Reinicia esse timer.
		else -- Se não existe o timer, então:
			pornTimer = setTimer (function () -- Cria o timer.
				triggerServerEvent ("cancelaTag", localPlayer)
			end, minutos * 60000, 1) -- Daqui a 15 minutos, executa o evento "cancelaTag" no server, que irá remover a TAG.
		end
	end
end)

function stopRender () -- Função que cancela o render da imagem.
	if rendering then -- Se a imagem está sendo renderizada, então:
		rendering = false -- Ela não é mais considerada renderizada.
		removeEventHandler ("onClientRender", getRootElement(), pornRender) -- Cancela o render da imagem e ela some da tela. A função pornRender para de ser executada a cada frame.
	end
end

server.lua


function Punha (sourcePlayer)
	if isGuestAccount (getPlayerAccount(sourcePlayer)) then return end -- Impede que o comando funcione para jogadores deslogados.
	triggerClientEvent (sourcePlayer, "verPunheta", sourcePlayer) -- Executa o evento "verPunheta" do client.lua
	if not isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(sourcePlayer)), aclGetGroup ("Punha")) then -- Se o jogador não tem a TAG, então:
		aclGroupAddObject (aclGetGroup("Punha"), "user."..getAccountName (getPlayerAccount (sourcePlayer))) -- Coloca TAG de punheteiro nele.
	end
end
addCommandHandler ("punheta", Punha) -- Comando que executa a função Punha

addEvent ("cancelaTag", true)
addEventHandler ("cancelaTag", getRootElement(), function ()
	if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(client)), aclGetGroup ("Punha")) then -- Se o jogador tem a TAG, então:
		aclGroupRemoveObject (aclGetGroup("Punha"), "user."..getAccountName (getPlayerAccount (client))) -- Remove a TAG de punheteiro dele.
	end
end)

 

Agora eu entendi manooooooo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! eu tinha que ter criado um evento no client-side para o trigger  do server-side detectar ele

9 minutes ago, Lord Henry said:

Ta ae:

client.lua


local x, y = guiGetScreenSize () -- x e y recebem a resolução da tela do jogador.
local rendering = false -- variável que indica se a imagem está sendo renderizada ou não, para evitar que bugue ao usar o comando enquanto já está renderizando a imagem.
local minutos = 15 -- Quantos minutos o jogador deve esperar para perder a TAG de Punheteiro

function pornRender () -- Essa função é chamada a cada frame.
	dxDrawImage (0, 0, x, y, "nude.png", 0, 0, 0, tocolor(255,255,255,255), true) -- Desenha a imagem 'nude.png' na tela inteira do jogador.
end

addEvent ("verPunheta", true)
addEventHandler ("verPunheta", getRootElement(), function () -- Função que inicia o render da imagem.
	if not rendering then -- Se a imagem já não está sendo renderizada, então:
		rendering = true -- Ela é considerada renderizada agora.
		addEventHandler ("onClientRender", getRootElement(), pornRender) -- Inicia o render da imagem a cada frame.
		setTimer (stopRender, 15000, 1) -- Daqui a 15 segundos, executa a função stopRender uma única vez.
		if isTimer (pornTimer) then -- Se já existe o timer para tirar a TAG do jogador, então:
			resetTimer (pornTimer) -- Reinicia esse timer.
		else -- Se não existe o timer, então:
			pornTimer = setTimer (function () -- Cria o timer.
				triggerServerEvent ("cancelaTag", localPlayer)
			end, minutos * 60000, 1) -- Daqui a 15 minutos, executa o evento "cancelaTag" no server, que irá remover a TAG.
		end
	end
end)

function stopRender () -- Função que cancela o render da imagem.
	if rendering then -- Se a imagem está sendo renderizada, então:
		rendering = false -- Ela não é mais considerada renderizada.
		removeEventHandler ("onClientRender", getRootElement(), pornRender) -- Cancela o render da imagem e ela some da tela. A função pornRender para de ser executada a cada frame.
	end
end

server.lua


function Punha (sourcePlayer)
	if isGuestAccount (getPlayerAccount(sourcePlayer)) then return end -- Impede que o comando funcione para jogadores deslogados.
	triggerClientEvent (sourcePlayer, "verPunheta", sourcePlayer) -- Executa o evento "verPunheta" do client.lua
	if not isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(sourcePlayer)), aclGetGroup ("Punha")) then -- Se o jogador não tem a TAG, então:
		aclGroupAddObject (aclGetGroup("Punha"), "user."..getAccountName (getPlayerAccount (sourcePlayer))) -- Coloca TAG de punheteiro nele.
	end
end
addCommandHandler ("punheta", Punha) -- Comando que executa a função Punha

addEvent ("cancelaTag", true)
addEventHandler ("cancelaTag", getRootElement(), function ()
	if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(client)), aclGetGroup ("Punha")) then -- Se o jogador tem a TAG, então:
		aclGroupRemoveObject (aclGetGroup("Punha"), "user."..getAccountName (getPlayerAccount (client))) -- Remove a TAG de punheteiro dele.
	end
end)

 

sempre que for um script desse tipo, deve-se criar os eventos no client-side, para fazer ligação no server-side ?

Link to comment
28 minutes ago, #Horus said:

Agora eu entendi manooooooo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! eu tinha que ter criado um evento no client-side para o trigger  do server-side detectar ele

sempre que for um script desse tipo, deve-se criar os eventos no client-side, para fazer ligação no server-side ?

Sim, clique no icone de coração no comentario do Lord como uma forma de agradecimento por te dar 100% do código pronto.

Edited by OverKILL
  • Thanks 1
Link to comment
  • Other Languages Moderators
Just now, OverKILL said:

por te dar 100% do código pronto.

Pois é, ahuahauhaua
Normalmente eu nunca passo código pronto, pois isso desestimula o usuário a ir buscar informações na Wiki. Mas como eu deixei o código comentado, ele pode estudar o código também.

  • Thanks 1
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...