Ir para conteúdo
  • 0

Talkaction para retirar premium points do Site


Dennyz Dias

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
Compartilhar em outros sites

Posts Recomendados

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

O meu funciona perfeitamente também até mais do que eu esperava. Rsrs

Link para o comentário
Compartilhar em outros sites

  • 0

Update:

O script continha um bug que permitia crashar o servidor (caso o player botasse um numero negativo) e tambem caso o parametro não fosse um numero, o player falava uma mensagem normal. Esse erros foram corrigidos:

 

situationpoints.lua:

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)
print(tonumber(param)) -- =nil
	if (words == '!sacar') then
		if param ~= "" then
			if tonumber(param) ~= nil then
				if 0 >= tonumber(param) then
				doPlayerSendCancel(cid, "O valor precisa ser acima de zero.")
				elseif 0 < tonumber(param) and 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, "O valor precisa ser um numero.")
			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) ~= nil then
				if 0 >= tonumber(param) then
				doPlayerSendCancel(cid, "O valor precisa ser acima de zero.")
				elseif 0 < tonumber(param) and 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, "O valor precisa ser um numero.")
			end
		else
		doPlayerSendCancel(cid, "Você precisa especificar um valor.")
		end
	end
return true
end
A tag em talkactions.xml permanece a mesma.
O do tópico que eu criei e igual a esse né? ? ou precisa editar algo lá? Editado por julhinhokullitz
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...