Ir para conteúdo
  • 0

Talkaction para retirar premium points do Site


Pergunta

Alguem poderia me ajudar em 3 talkaction in game para website que consistem em !

 

- !sacar quantia - Retira tal quantia premium_points em determinado item atraves do jogo !

 

2° - !saldo - mostra quantos points tem no saldo do site in game

 

3° - !depositar quantia - Deposita quantia no saldo in game!

 

TFS 0.3.6

8.60 !

 

Alguem poderia me ajudar nessas talkactions !

 

Obrigado desde-ja :biggrin: :XTibia_smile:

 

REPP ++ :great:

Editado por Dennyz Dias
Link para o comentário
https://xtibia.com/forum/topic/239159-talkaction-para-retirar-premium-points-do-site/
Compartilhar em outros sites

Posts Recomendados

  • 0

Só precisa informar qual a table e qual a clomun responsáveis pelo armazenamento dos premium points. ^^

 

Dani manja nisso, me ajudou... ver lá o meu tópico dennyz se for igual aquele funciona. :)

  • 0

Então, nesse caso. Aqui vai, @@Dennyz Dias:

Vá em data\talkactions e adicione essa tag ao arquivo talkactions.xml:

<talkaction words="!sacar;!saldo;!depositar" event="script" value="situationpoints.lua"/>

Agora vá em data\talkactions\scripts e crie um arquivo chamado situationpoints.lua e coloque isso dentro:

local pointObj = 2160 --id do item "points"

function getAccountPoints(cid)
local res = db.getResult('SELECT `premium_points` FROM `accounts` WHERE id='..getPlayerAccountId(cid)..'')
  if(res:getID() == -1) then
     return false
  end
local ret = res:getDataInt("premium_points")
res:free()
return tonumber(ret)
end

function onSay(cid, words, param)
if (words == '!sacar') then
	if param ~= "" then
		if tonumber(param) <= getAccountPoints(cid) then
		doPlayerAddItem(cid, pointObj, tonumber(param))
		db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) - tonumber(param)..' WHERE id='.. getPlayerAccountId(cid)..'')
		newPoints = getAccountPoints(cid)
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você ainda possui '..newPoints..' premium points em sua conta.')
		else
		doPlayerSendCancel(cid, "Você não tem tantos premium points assim.")
		end
	else
	doPlayerSendCancel(cid, "Você precisa especificar um valor.")
	end
elseif (words == '!saldo') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Seu saldo no shopping atual é de '..getAccountPoints(cid)..' Premium points.')
elseif (words == '!depositar') then
	if param ~= "" then
		if tonumber(param) <= getPlayerItemCount(cid, pointObj) then
		doPlayerRemoveItem(cid, pointObj, tonumber(param))
		db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) + tonumber(param)..' WHERE id='.. getPlayerAccountId(cid)..'')
		newPoints = getAccountPoints(cid)
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você acabou de depositar '..param..' premium points no shopping. Seu saldo agora é de '..newPoints..' premium points.')
		else
		doPlayerSendCancel(cid, "Você não tem tantos premium points assim.")
		end
	else
	doPlayerSendCancel(cid, "Você precisa especificar um valor.")
	end
end
return true
end

*minha unica duvida é quanto às querys... Vamo ver se desse jeito aí funciona sussa.

  • 0

Então, nesse caso. Aqui vai, @@Dennyz Dias:

Vá em data\talkactions e adicione essa tag ao arquivo talkactions.xml:

<talkaction words="!sacar;!saldo;!depositar" event="script" value="situationpoints.lua"/>

Agora vá em data\talkactions\scripts e crie um arquivo chamado situationpoints.lua e coloque isso dentro:

local pointObj = 2160 --id do item "points"

function getAccountPoints(cid)
local res = db.getResult('SELECT `premium_points` FROM `accounts` WHERE id='..getPlayerAccountId(cid)..'')
  if(res:getID() == -1) then
     return false
  end
local ret = res:getDataInt("premium_points")
res:free()
return tonumber(ret)
end

function onSay(cid, words, param)
if (words == '!sacar') then
	if param ~= "" then
		if tonumber(param) <= getAccountPoints(cid) then
		doPlayerAddItem(cid, pointObj, tonumber(param))
		db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) - tonumber(param)..' WHERE id='.. getPlayerAccountId(cid)..'')
		newPoints = getAccountPoints(cid)
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você ainda possui '..newPoints..' premium points em sua conta.')
		else
		doPlayerSendCancel(cid, "Você não tem tantos premium points assim.")
		end
	else
	doPlayerSendCancel(cid, "Você precisa especificar um valor.")
	end
elseif (words == '!saldo') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Seu saldo no shopping atual é de '..getAccountPoints(cid)..' Premium points.')
elseif (words == '!depositar') then
	if param ~= "" then
		if tonumber(param) <= getPlayerItemCount(cid, pointObj) then
		doPlayerRemoveItem(cid, pointObj, tonumber(param))
		db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) + tonumber(param)..' WHERE id='.. getPlayerAccountId(cid)..'')
		newPoints = getAccountPoints(cid)
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você acabou de depositar '..param..' premium points no shopping. Seu saldo agora é de '..newPoints..' premium points.')
		else
		doPlayerSendCancel(cid, "Você não tem tantos premium points assim.")
		end
	else
	doPlayerSendCancel(cid, "Você precisa especificar um valor.")
	end
end
return true
end

*minha unica duvida é quanto às querys... Vamo ver se desse jeito aí funciona sussa.

certinhooooo Dan

100% cara shoooow so 1 coisa tera como add !depositar tambem!

  • 0

 

 

so 1 coisa tera como add !depositar tambem!

Não entendi direito o q vc quis dizer... sahusahu
Mas eu já botei pra que o player possa usar:
!sacar QUANTIA
!saldo
!depositar QUANTIA

  • 0

Já está com a tag, já testou?

Sim mano ja testei mais o depositar naum pegou nao da erro so nao pega ele fala default

Não entendi direito o q vc quis dizer... sahusahu

Mas eu já botei pra que o player possa usar:

!sacar QUANTIA

!saldo

!depositar QUANTIA

 

 

so depositar naum pego mano

  • 0

@@Dennyz Dias, aparece alguma mensagem in-game?

Se sim, qual mensagem?

não nanhum erro, nem nada in game fala como se fosse msg

  • 0

@@Dennyz Dias, putz cara, eu acabei de testar. E tá tudo certo...
Como é q vc ta usando o comando in-game?

Eu usei: !depositar 100 (por exemplo) e deu tudo tranquilo...

×
×
  • Criar Novo...