Ir para conteúdo
  • Cadastre-se

(Resolvido)Seria possível criar um sistema de "redeem code" via talkaction ?


Ir para solução Resolvido por DukeeH,

Posts Recomendados

function onSay(cid, words, param, channel)
	local paramm = string.upper(param)
	if (param == '') then
		doPlayerSendCancel(cid, "Você deve adicionar um code.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	else
		local resultado = db.getResult("SELECT * FROM redeemcodes WHERE `code` = '" .. paramm .. "';")
		if(resultado:getID() ~= -1) then
			doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING, "Você resgatou com sucesso o código: " .. paramm ..".")
			doPlayerAddItem(cid, ID, QUANTIDADE)
			db.query("DELETE FROM `redeemcodes` WHERE `code` = '" .. paramm .. "';")
		else
			doPlayerSendCancel(cid, "Código invalido.")
			doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		end
	end
end

Mesma coisa do outro... Agora vai. :)

asdukeeh.jpg

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

Mesma coisa do outro... Agora vai. :)

 

Perfeito, Bro. <3

 

IEa1MWu.jpg

 

 

Eu tentei colocar para a quantidade de item ser random, tá certo ?

            doPlayerAddItem(cid, 2148, math.random(1, 5))

 

 

https://www.youtube.com/SaymonKopolsky

 

589f09a9e1af9_SemTtulo-1.png.ddf1b437984d72bd5d4124b7e90762fa.png

https://www.youtube.com/SaymonKopolsky

 

 

 

Easy Mapper Map Editor 8.60: Clique aqui

[8.60] BeastXHunter: Clique aqui

 

5494899_orig.gif

Link para o post
Compartilhar em outros sites
4 minutos atrás, Saymon Kopolsky disse:

 

Perfeito, Bro. <3

 

IEa1MWu.jpg

 

 

Eu tentei colocar para a quantidade de item ser random, tá certo ?


            doPlayerAddItem(cid, 2148, math.random(1, 5))

 

 

 

usa:

 

 

math.random("TEU CU", "NO MEU PAU")

 

 

 

 

é isso mesmo, está certo.

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
9 minutos atrás, Saymon Kopolsky disse:

 

Perfeito, Bro. <3

 

IEa1MWu.jpg

 

 

Eu tentei colocar para a quantidade de item ser random, tá certo ?


            doPlayerAddItem(cid, 2148, math.random(1, 5))

 

 

Perfeito, só uma dica é adicionar a linha:

math.randomseed(os.time())

Em cima dessa linha que está usando  o math.random, porque o "random" de um computador, não é aleatório, sempre que reiniciar o server ele vai gerar a mesma ordem, assim vai ficar aleatório porque ele vai usar a hora atual como base no random.

Testa o redeem e me fala se deu tudo certo.

asdukeeh.jpg

Link para o post
Compartilhar em outros sites
53 minutos atrás, DukeeH disse:

Perfeito, só uma dica é adicionar a linha:


math.randomseed(os.time())

Em cima dessa linha que está usando  o math.random, porque o "random" de um computador, não é aleatório, sempre que reiniciar o server ele vai gerar a mesma ordem, assim vai ficar aleatório porque ele vai usar a hora atual como base no random.

Testa o redeem e me fala se deu tudo certo.

 

Eu coloquei, porém agora só está adicionando de 2 em 2, estranho.

https://www.youtube.com/SaymonKopolsky

 

589f09a9e1af9_SemTtulo-1.png.ddf1b437984d72bd5d4124b7e90762fa.png

https://www.youtube.com/SaymonKopolsky

 

 

 

Easy Mapper Map Editor 8.60: Clique aqui

[8.60] BeastXHunter: Clique aqui

 

5494899_orig.gif

Link para o post
Compartilhar em outros sites
function onSay(cid, words, param, channel)
	local paramm = string.upper(param)
	if (param == '') then
		doPlayerSendCancel(cid, "Você deve adicionar um code.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	else
		local resultado = db.getResult("SELECT * FROM redeemcodes WHERE `code` = '" .. paramm .. "';")
		if(resultado:getID() ~= -1) then
			doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING, "Você resgatou com sucesso o código: " .. paramm ..".")
			local amount = math.random(1,5)
			doPlayerAddItem(cid, 2184, amount)
			db.query("DELETE FROM `redeemcodes` WHERE `code` = '" .. paramm .. "';")
		else
			doPlayerSendCancel(cid, "Código invalido.")
			doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		end
	end
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
1 hora atrás, Sekk disse:

Não tem como escolher o item q cada code vai dar? uahua e bloquear tipo, o god cria o codigo FH1GAE, se ele tentar adicionar o mesmo codigo enquanto esse mesmo existir, bloquear, so deixar criar quando ele for usado tendeu?

 

Minha ideia é o código dá chaves, e com essas chaves você pode abrir um baú que vai ficar no templo, esse baú irá dar vários itens.

 

 

4 horas atrás, Vodkart disse:

function onSay(cid, words, param, channel)
	local paramm = string.upper(param)
	if (param == '') then
		doPlayerSendCancel(cid, "Você deve adicionar um code.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	else
		local resultado = db.getResult("SELECT * FROM redeemcodes WHERE `code` = '" .. paramm .. "';")
		if(resultado:getID() ~= -1) then
			doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING, "Você resgatou com sucesso o código: " .. paramm ..".")
			local amount = math.random(1,5)
			doPlayerAddItem(cid, 2184, amount)
			db.query("DELETE FROM `redeemcodes` WHERE `code` = '" .. paramm .. "';")
		else
			doPlayerSendCancel(cid, "Código invalido.")
			doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		end
	end
end

 

 

Não funciona, só cria um item, aquele primeiro que eu fiz deu certo. ;D

Editado por Saymon Kopolsky (veja o histórico de edições)

https://www.youtube.com/SaymonKopolsky

 

589f09a9e1af9_SemTtulo-1.png.ddf1b437984d72bd5d4124b7e90762fa.png

https://www.youtube.com/SaymonKopolsky

 

 

 

Easy Mapper Map Editor 8.60: Clique aqui

[8.60] BeastXHunter: Clique aqui

 

5494899_orig.gif

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

@Vodkart Como funcionaria esse sistema que você criou usando o data/logs? 
Porque tentei esse sistema do @DukeeH no tfs 1.x e não funcionou :s 

 

Programador/Scripter/Mapper nível NOOB ?

 

Untitltasadasded-1.png.e24703844a8ee56fadbf0cdcf82cd9c7.png

Link para o post
Compartilhar em outros sites
Em 08/03/2017 em 16:46, Vodkart disse:

function onSay(cid, words, param, channel)
	local paramm = string.upper(param)
	if (param == '') then
		doPlayerSendCancel(cid, "Você deve adicionar um code.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	else
		local resultado = db.getResult("SELECT * FROM redeemcodes WHERE `code` = '" .. paramm .. "';")
		if(resultado:getID() ~= -1) then
			doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING, "Você resgatou com sucesso o código: " .. paramm ..".")
			local amount = math.random(1,5)
			doPlayerAddItem(cid, 2184, amount)
			db.query("DELETE FROM `redeemcodes` WHERE `code` = '" .. paramm .. "';")
		else
			doPlayerSendCancel(cid, "Código invalido.")
			doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		end
	end
end

 

faltou adicionar um storage para o player poder pegar somente 1x.
com esse script o player usa quantas vezes quiser ^^
 

Obs. Adicionei um if na linha 12 para deletar só quando o ADMIN usar o comando, logo todos os players podem usar o comando sem que esse codigo seja deletado do banco de dados..


Para quem quiser o código com storage deixarei aqui para uso de quem precisar:
Obs. Testado em tfs 0.4.

local t = {access = 5}

function onSay(cid, words, param, channel)
	local paramm = string.upper(param)
	if (param == '') then
		doPlayerSendCancel(cid, "Voce deve adicionar um code.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	elseif (getPlayerStorageValue(cid, 60020) == -1) then
		local resultado = db.getResult("SELECT * FROM redeemcodes WHERE `code` = '" .. paramm .. "';")
		if(resultado:getID() ~= -1) then
			doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING, "Voce resgatou com sucesso o codigo: " .. paramm ..".")
			local amount = math.random(10,50)
			doPlayerAddItem(cid, 13539, amount)
			setPlayerStorageValue(cid, 60020, 1)
			if getPlayerAccess(cid) >= t.access then
				db.query("DELETE FROM `redeemcodes` WHERE `code` = '" .. paramm .. "';")
			end
		else
			doPlayerSendCancel(cid, "Codigo invalido.")
			doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		end
	else
		doPlayerSendCancel(cid, "Voce ja resgatou este codigo.")
	return true
	end
end

 

Editado por DiigooMix (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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