Ir para conteúdo
  • Cadastre-se

(Resolvido)Quest, escolha de item


Ir para solução Resolvido por Sekk,

Posts Recomendados

É o seguinte, vou tentar explicar de uma forma mais simples, talvez assim alguém entende e consiga esclarecer a duvida.

 

 

 

Segue a imagem em anexo, e a dúvida e o seguinte:

 

Como eu faço para o player escolher apenas 1 item desses, e impossibilitá-lo de escolher os demais?

Inicialmente eu coloquei uma mesma actionid para ambos, e com uniquei  diferente. Só que dessa maneira, o player consegue pegar os 5 itens.

Então eu tentei deixar a mesma actionid, e, o mesmo uniqueid, funcionou, pode pegar apenas 1, porém aparece diversos "duplicate id" no distro.

Tem outra maneira de fazer quest assim?

qq.png

Link para o post
Compartilhar em outros sites
  • Solução

precisa fazer um script de action assim:

em actions.xml vc coloca

<action actionid="9995" script="nomedoarquivo.lua" />
<action actionid="9996" script="nomedoarquivo.lua" />
<action actionid="9997" script="nomedoarquivo.lua" />
<action actionid="9998" script="nomedoarquivo.lua" />
<action actionid="9999" script="nomedoarquivo.lua" />

obs.: as 5 tags usam o mesmo arquivo.

 

agora no arquivo .lua vc coloca isso:

Spoiler

local stor = getPlayerStorageValue(cid, 100)

function onUse(cid, item, frompos, item2, topos)
	if item.aid == 9995 then
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,7415,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
	if item.aid == 9996 then -- esse é pra paladin pq ta dando arco e flecha
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,7364,1) -- item que vai dar ao player
			doPlayerAddItem(cid,8851,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
	if item.aid == 9997 then
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,7405,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
	if item.aid == 9998 then
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,8924,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
	if item.aid == 9999 then
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,2433,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
return true
end

 

 

Nesse script ta configurado para 5 baús, para remover um é só vc remover isso:

if item.aid == XXXX then
	if stor <= 0 then
		doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
		doPlayerAddItem(cid,XXXX,1) -- item que vai dar ao player
		setPlayerStorageValue(cid,100,1)
	else
		doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
	end
end

e para adicionar é o mesmo esquema.

 

No RME vc adiciona as actionids referentes ao script nos baús ^^

Link para o post
Compartilhar em outros sites
  • 4 weeks later...
Em 10/06/2017 ás 16:23, Sekk disse:

precisa fazer um script de action assim:

em actions.xml vc coloca


<action actionid="9995" script="nomedoarquivo.lua" />
<action actionid="9996" script="nomedoarquivo.lua" />
<action actionid="9997" script="nomedoarquivo.lua" />
<action actionid="9998" script="nomedoarquivo.lua" />
<action actionid="9999" script="nomedoarquivo.lua" />

obs.: as 5 tags usam o mesmo arquivo.

 

agora no arquivo .lua vc coloca isso:

  Ocultar conteúdo


local stor = getPlayerStorageValue(cid, 100)

function onUse(cid, item, frompos, item2, topos)
	if item.aid == 9995 then
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,7415,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
	if item.aid == 9996 then -- esse é pra paladin pq ta dando arco e flecha
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,7364,1) -- item que vai dar ao player
			doPlayerAddItem(cid,8851,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
	if item.aid == 9997 then
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,7405,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
	if item.aid == 9998 then
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,8924,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
	if item.aid == 9999 then
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,2433,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
return true
end

 

 

Nesse script ta configurado para 5 baús, para remover um é só vc remover isso:


if item.aid == XXXX then
	if stor <= 0 then
		doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
		doPlayerAddItem(cid,XXXX,1) -- item que vai dar ao player
		setPlayerStorageValue(cid,100,1)
	else
		doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
	end
end

e para adicionar é o mesmo esquema.

 

No RME vc adiciona as actionids referentes ao script nos baús ^^

Como eu sei se o Script funfa no meu ot, o meu é tfs 1.2

 

Link para o post
Compartilhar em outros sites
5 horas atrás, kuasenada disse:

Como eu sei se o Script funfa no meu ot, o meu é tfs 1.2

 

 

Pro tfs 1.2 precisa fazer umas adaptações, não sou familiarizado com tal versão então vou ter que dar uma olhada na net antes pra editar, a não ser que alguém faça isso ja, ok?

 

Me desculpe.

Link para o post
Compartilhar em outros sites
Em 10/06/2017 ás 15:57, JcA disse:

É o seguinte, vou tentar explicar de uma forma mais simples, talvez assim alguém entende e consiga esclarecer a duvida.

 

 

 

Segue a imagem em anexo, e a dúvida e o seguinte:

 

Como eu faço para o player escolher apenas 1 item desses, e impossibilitá-lo de escolher os demais?

Inicialmente eu coloquei uma mesma actionid para ambos, e com uniquei  diferente. Só que dessa maneira, o player consegue pegar os 5 itens.

Então eu tentei deixar a mesma actionid, e, o mesmo uniqueid, funcionou, pode pegar apenas 1, porém aparece diversos "duplicate id" no distro.

Tem outra maneira de fazer quest assim?

qq.png

Vc só precisa colocar a quest pra setar e usar o mesmo storage pra verificar se fez ou n a quest... Simples assim

Link para o post
Compartilhar em outros sites
Em 10/06/2017 ás 16:23, Sekk disse:

precisa fazer um script de action assim:

em actions.xml vc coloca


<action actionid="9995" script="nomedoarquivo.lua" />
<action actionid="9996" script="nomedoarquivo.lua" />
<action actionid="9997" script="nomedoarquivo.lua" />
<action actionid="9998" script="nomedoarquivo.lua" />
<action actionid="9999" script="nomedoarquivo.lua" />

obs.: as 5 tags usam o mesmo arquivo.

 

agora no arquivo .lua vc coloca isso:

  Ocultar conteúdo


local stor = getPlayerStorageValue(cid, 100)

function onUse(cid, item, frompos, item2, topos)
	if item.aid == 9995 then
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,7415,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
	if item.aid == 9996 then -- esse é pra paladin pq ta dando arco e flecha
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,7364,1) -- item que vai dar ao player
			doPlayerAddItem(cid,8851,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
	if item.aid == 9997 then
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,7405,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
	if item.aid == 9998 then
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,8924,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
	if item.aid == 9999 then
		if stor <= 0 then
			doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
			doPlayerAddItem(cid,2433,1) -- item que vai dar ao player
			setPlayerStorageValue(cid,100,1)
		else
			doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
		end
	end
return true
end

 

 

Nesse script ta configurado para 5 baús, para remover um é só vc remover isso:


if item.aid == XXXX then
	if stor <= 0 then
		doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")
		doPlayerAddItem(cid,XXXX,1) -- item que vai dar ao player
		setPlayerStorageValue(cid,100,1)
	else
		doPlayerSendTextMessage(cid,22,"Voce ja recebeu seu premio.")
	end
end

e para adicionar é o mesmo esquema.

 

No RME vc adiciona as actionids referentes ao script nos baús ^^

 

Cara eu sou iniciante em script, pode me esclarecer esse parte da sua script:

 

local stor = getPlayerStorageValue(cid, 100)

function onUse(cid, item, frompos, item2, topos)

 

if item.aid == 9995 then

if stor <= 0 then

doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")

doPlayerAddItem(cid,7415,1) -- item que vai dar ao player

setPlayerStorageValue(cid,100,1)

 

Minha observaçao é a seguinte:

 

Você deu o valor inicial na Storage de 100, porem na hora de verificar a Storage está  if stor <= 0 then  100 é maior que 0 então vai dar false e vai pular e consequentemente não vai dar premio ao player

 

Essa foi a logica que eu aprendi, poderia me explicar oque você fez?

 

Obs: Quero adquirir conhecimento por isso estou te perguntando, obrigado desde já.

 

 

Editado por UsToOliNN (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
13 minutos atrás, UsToOliNN disse:

 

Cara eu sou iniciante em script, pode me esclarecer esse parte da sua script:

 

local stor = getPlayerStorageValue(cid, 100)

function onUse(cid, item, frompos, item2, topos)

 

if item.aid == 9995 then

if stor <= 0 then

doPlayerSendTextMessage(cid,22,"Parabens, voce recebeu seu premio!")

doPlayerAddItem(cid,7415,1) -- item que vai dar ao player

setPlayerStorageValue(cid,100,1)

 

Minha observaçao é a seguinte:

 

Você deu o valor inicial na Storage de 100, porem na hora de verificar a Storage está  if stor <= 0 then  100 é maior que 0 então vai dar false e vai pular e consequentemente não vai dar premio ao player

 

Essa foi a logica que eu aprendi, poderia me explicar oque você fez?

 

Obs: Quero adquirir conhecimento por isso estou te perguntando, obrigado desde já.

 

 

 

Aprender sempre é bom kkk, eu faço bastante isso ainda :v

 

mas vamos la:

 

a linha

local stor = getPlayerStorageValue(cid, 100)

O 100 não é o valor da storage, ele é apenas a identificação de qual storage é entendeu?

 

if stor <= 0

Aqui eu to checando se a storage 100 tem o valor menor que 0, se tiver(sempre começa com -1 ou 0 as storages), seta a storage pro valor 1(agora o player ja possui a storage) e acontece os efeitos.

 

Eu fiz a mesma checagem em todos os itens pq tipo, eu sou um kina, a storage ta menor que 0, eu pego uma sword, storage vai pra 1, se eu tentar pegar o axe, não vai da, pq a storage ja ta em 1, e ele só entrega o item se for menor ou igual a 0, sacou?

Link para o post
Compartilhar em outros sites
6 minutos atrás, Sekk disse:

 

Aprender sempre é bom kkk, eu faço bastante isso ainda :v

 

mas vamos la:

 

a linha


local stor = getPlayerStorageValue(cid, 100)

O 100 não é o valor da storage, ele é apenas a identificação de qual storage é entendeu?

 


if stor <= 0

Aqui eu to checando se a storage 100 tem o valor menor que 0, se tiver(sempre começa com -1 ou 0 as storages), seta a storage pro valor 1(agora o player ja possui a storage) e acontece os efeitos.

 

Eu fiz a mesma checagem em todos os itens pq tipo, eu sou um kina, a storage ta menor que 0, eu pego uma sword, storage vai pra 1, se eu tentar pegar o axe, não vai da, pq a storage ja ta em 1, e ele só entrega o item se for menor ou igual a 0, sacou?

Caramba agora saquei, o 100 é apenas uma identificação se a storage for -1 quer dizer que ele não fez porém após você fazer a quest acrecenta 1 a storage então na proxima vez que ele tentar fazer a quest não passa na verificação e manda a mensagem que ele já fez.

 

CARAMBA EU ESTAVA PENSANDO DE UMA MANEIRA NADA HAVER KKKKKKKKKKKKKKKKKKKKKKKK'

OBRIGADO POR CONTRIBUIR :D

Link para o post
Compartilhar em outros sites
Em 07/07/2017 ás 01:12, UsToOliNN disse:

Caramba agora saquei, o 100 é apenas uma identificação se a storage for -1 quer dizer que ele não fez porém após você fazer a quest acrecenta 1 a storage então na proxima vez que ele tentar fazer a quest não passa na verificação e manda a mensagem que ele já fez.

 

CARAMBA EU ESTAVA PENSANDO DE UMA MANEIRA NADA HAVER KKKKKKKKKKKKKKKKKKKKKKKK'

OBRIGADO POR CONTRIBUIR :D

magina cara kkkk

 

qualquer coisa, tamo ae xD

Link para o post
Compartilhar em outros sites
  • 7 months later...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo