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

Para quem não sabe é aquele esquema de resgatar códigos.

 

Screenshot_2015-08-17_14.40.42.png

 

 

Tava pensando aqui dessa forma, o GOD registrava in game o código (ex: !criar codigo" H2EWVAU7) e depois só poderia ser usado uma vez (óbvio).

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
11 minutos atrás, Saymon Kopolsky disse:

Para quem não sabe é aquele esquema de resgatar códigos.

 

Screenshot_2015-08-17_14.40.42.png

 

 

Tava pensando aqui dessa forma, o GOD registrava in game o código (ex: !criar codigo" H2EWVAU7) e depois só poderia ser usado uma vez (óbvio).

É sim, acho que por mysql é a melhor forma. Qual otserv você usa e cliente?

asdukeeh.jpg

Link para o post
Compartilhar em outros sites
1 minuto atrás, DukeeH disse:

É sim, acho que por mysql é a melhor forma. Qual otserv você usa e cliente?

tfs 0.4 (8.6)

https://github.com/Fir3element/3777

 

Resgatar pelo site ?

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

é possível sim, só fazer por querys, ai registrava no servidor e depois de usado ela sumisse.

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
2 minutos atrás, Saymon Kopolsky disse:

tfs 0.4 (8.6)

https://github.com/Fir3element/3777

 

Resgatar pelo site ?

Não, só salvar os códigos na database. Vou tentar fazer algo aqui.

asdukeeh.jpg

Link para o post
Compartilhar em outros sites

Tem um jeito mais simples, o god criaria um arquivo .txt no diretorio em logs e por exemplo:

 

 

reedem_codes.txt

 

e abriria e coloava o code que você iria querer tipo:

 

FJ844XHF7

 

e salvaria

 

ai quando o jogador fosse usar o comando !code FJ844XHF7

 

checaria nesse logs e apagaria a linha(pq ele ja usou)

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 minuto atrás, Vodkart disse:

Tem um jeito mais simples, o god criaria um arquivo .txt no diretorio em logs e por exemplo:

 

 

reedem_codes.txt

 

e abriria e coloava o code que você iria querer tipo:

 

FJ844XHF7

 

e salvaria

 

ai quando o jogador fosse usar o comando !code FJ844XHF7

 

checaria nesse logs e apagaria a linha(pq ele ja usou)

No próprio log pode determinar o item e a quantidade que o player vai ganhar usando o código ?

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
5 minutos atrás, Saymon Kopolsky disse:

No próprio log pode determinar o item e a quantidade que o player vai ganhar usando o código ?

 

SIm! 

 

No caso eu achei que seria um único item ou points, mas dá para colocar os items que você quiser tipo

 

FG444TG7HD:{{2173,1},{2160,10}} -- CODE:ITEMS

 

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
  • Solução
5 horas atrás, Saymon Kopolsky disse:

No próprio log pode determinar o item e a quantidade que o player vai ganhar usando o código ?

Cara, como o @Vodkart falou fica mais bonito e talvez fácil e avançado, mas fiz aqui mais ou menos o que pediu.

Se você ou ele estiverem dispostos a fazer de outro jeito fiquem a vontade.

Fiz duas talkactions, mas da pra fazer algo como "!code redeem, código" e no mesmo comando "!code add, código".

Mas acho mais simples (para os jogadores) botar direto.

 

(Não tenho 0.4 para testar)


mysql:

CREATE TABLE IF NOT EXISTS `redeemcodes` (
	`id` int(11) NOT NULL AUTO_INCREMENT,
	`code` varchar(255) NOT NULL,
	PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 

resgatarcode.lua

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

 

registrarcode.lua

function onSay(cid, words, param, channel)
	local paramm = string.upper(param)
	if (param == '') then
		doPlayerSendCancel(cid, "Você deve preencher o code para ser adicionado.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	else
		db.executeQuery("INSERT INTO `redeemcodes` (`id`, `code`) VALUES (NULL, '" .. paramm .. "');")
		doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING, "Você adicionou o código: " .. paramm .." para ser validado.")
	end
end

 

Editado por DukeeH
08.03.17 - Fix bugs. (veja o histórico de edições)

asdukeeh.jpg

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

Cara, como o @Vodkart falou fica mais bonito e talvez fácil e avançado, mas fiz aqui mais ou menos o que pediu.

Se você ou ele estiverem dispostos a fazer de outro jeito fiquem a vontade.

Fiz duas talkactions, mas da pra fazer algo como "!code redeem, código" e no mesmo comando "!code add, código".

Mas acho mais simples (para os jogadores) botar direto.

 

(Não tenho 0.4 para testar)


mysql:


 

resgatarcode.lua

registrarcode.lua

 

 

Deu esse erro aqui, esse código mysql é só pra executar na database e criar a coluna do redeemcodes né ?

[10:54:18.541] [Error - LuaInterface::loadFile] data/talkactions/scripts/redeemcode.lua:10: unexpected symbol near '...'
[10:54:18.544] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/redeemcode.lua)
[10:54:18.547] data/talkactions/scripts/redeemcode.lua:10: unexpected symbol near '...'

 

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
2 minutos atrás, Saymon Kopolsky disse:

 

Deu esse erro aqui, esse código mysql é só pra executar na database e criar a coluna do redeemcodes né ?


[10:54:18.541] [Error - LuaInterface::loadFile] data/talkactions/scripts/redeemcode.lua:10: unexpected symbol near '...'
[10:54:18.544] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/redeemcode.lua)
[10:54:18.547] data/talkactions/scripts/redeemcode.lua:10: unexpected symbol near '...'

 

Isso, aquele código do mysql vai criar a aba reedemcode com as colunas id e code.

O erro foi porque você não editou o script, eu coloquei o seguinte:

"            .... O que você quiser adicionar ao jogador."

Ali tem que colocar o que você quer que o cara ganhe, se quiser me falar eu edito pra você.

Pode ser premium points, item, dinheiro, level...

 

asdukeeh.jpg

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

Isso, aquele código do mysql vai criar a aba reedemcode com as colunas id e code.

O erro foi porque você não editou o script, eu coloquei o seguinte:

"            .... O que você quiser adicionar ao jogador."

Ali tem que colocar o que você quer que o cara ganhe, se quiser me falar eu edito pra você.

Pode ser premium points, item, dinheiro, level...

 

 

 

 

Item, como eu devo colocar ?

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
5 minutos atrás, Saymon Kopolsky disse:

 

 

 

Item, como eu devo colocar ?

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(result_plr: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

Só editar ali em ID e QUANTIDADE.

Se quiser mais itens, copia a linha e cola embaixo e coloque mais coisas.

asdukeeh.jpg

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

Só editar ali em ID e QUANTIDADE.

Se quiser mais itens, copia a linha e cola embaixo e coloque mais coisas.

 

 

Deu erro na hora de resgatar o código.

[12:9:22.243] [Error - TalkAction Interface]
[12:9:22.243] data/talkactions/scripts/redeemcode.lua:onSay
[12:9:22.243] Description:
[12:9:22.243] data/talkactions/scripts/redeemcode.lua:8: attempt to index global 'result_plr' (a nil value)
[12:9:22.243] stack traceback:
[12:9:22.243]   data/talkactions/scripts/redeemcode.lua:8: in function <data/talkactions/scripts/redeemcode.lua:1>

 

Está dando erro tbm na hora de registrar o código.

 

[12:16:26.541] mysql_real_query(): INSERT INTO `redeemcodes` (`id` ,`code`) VALUES (NULL , "HULA12; - MYSQL ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '"HULA12' at line 1 (1064)

 

 

 

---

 

Tem que colocar o id do item aqui tbm ?

 

if(result_plr:getID() ~= -1) then

 

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

resgatarcode.lua

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, 7424, 1)
			db.query("DELETE FROM `redeemcodes` WHERE `code` = " .. paramm .. ";")
		else
			doPlayerSendCancel(cid, "Código invalido.")
			doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		end
	end
end

 

registrarcode.lua

 

function onSay(cid, words, param, channel)
	local paramm = string.upper(param)
	if (param == '') then
		doPlayerSendCancel(cid, "Você deve preencher o code para ser adicionado.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	else
		db.query('INSERT INTO `redeemcodes` (`id` ,`code`) VALUES (NULL , '.. paramm ..';')
		doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING, "Você adicionou o código: " .. paramm .." para ser validado.")
	end
end

 

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

resgatarcode.lua

 

registrarcode.lua

 

 

Mesma coisa.

 

[12:55:36.182] mysql_real_query(): INSERT INTO `redeemcodes` (`id` ,`code`) VALUES (NULL , ELFKJ2; - MYSQL ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 (1064)

 

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
48 minutos atrás, Saymon Kopolsky disse:

Mesma coisa.

 


[12:55:36.182] mysql_real_query(): INSERT INTO `redeemcodes` (`id` ,`code`) VALUES (NULL , ELFKJ2; - MYSQL ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 (1064)

 

sorry. (:

 

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

 

function onSay(cid, words, param, channel)
	local paramm = string.upper(param)
	if (param == '') then
		doPlayerSendCancel(cid, "Você deve preencher o code para ser adicionado.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	else
		db.executeQuery("INSERT INTO `redeemcodes` (`id`, `code`) VALUES (NULL, " .. paramm .. ");")
		doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING, "Você adicionou o código: " .. paramm .." para ser validado.")
	end
end

 

asdukeeh.jpg

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

sorry. (:

 

 

 

 

tá dando esse erro agora na hora de registrar.

 

[14:49:49.106] mysql_real_query(): INSERT INTO `redeemcodes` (`id`, `code`) VALUES (NULL, PIKLT22); - MYSQL ERROR: Unknown column 'PIKLT22' in 'field list' (1054)

 

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
11 minutos atrás, Saymon Kopolsky disse:

 

tá dando esse erro agora na hora de registrar.

 


[14:49:49.106] mysql_real_query(): INSERT INTO `redeemcodes` (`id`, `code`) VALUES (NULL, PIKLT22); - MYSQL ERROR: Unknown column 'PIKLT22' in 'field list' (1054)

 

 

Arrumado acho, me perco nas aspas. :(

function onSay(cid, words, param, channel)
	local paramm = string.upper(param)
	if (param == '') then
		doPlayerSendCancel(cid, "Você deve preencher o code para ser adicionado.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	else
		db.executeQuery("INSERT INTO `redeemcodes` (`id`, `code`) VALUES (NULL, '" .. paramm .. "');")
		doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING, "Você adicionou o código: " .. paramm .." para ser validado.")
	end
end

 

asdukeeh.jpg

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

 

Arrumado acho, me perco nas aspas. :(

 

 

Registro deu certo, mas na hora de resgatar da esse problema

 

[15:9:35.964] mysql_real_query(): SELECT * FROM redeemcodes WHERE `code` = ABCDX12; - MYSQL ERROR: Unknown column 'ABCDX12' in 'where clause' (1054)

 

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

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