@@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
By Dennyz Dias, 30 de jan. de 2016 in Scripts
info
Group: Visconde
Joined: 28/06/11
Posts: 356
Reputation: +26
Tibia Character: Akor Rysea

@@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
info
Group: Conde
Joined: 07/04/15
Posts: 926
Reputation: +335
Gender: Masculino

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)
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.
Edited Janeiro 30 by Danihcv
info
Group: Visconde
Joined: 28/06/11
Posts: 356
Reputation: +26
Tibia Character: Akor Rysea

O do tópico que eu criei e igual a esse né? ? ou precisa editar algo lá?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 endA tag em talkactions.xml permanece a mesma.
Edited Janeiro 30 by julhinhokullitz
info
Group: Conde
Joined: 07/04/15
Posts: 926
Reputation: +335
Gender: Masculino

info
Group: Visconde
Joined: 28/06/11
Posts: 356
Reputation: +26
Tibia Character: Akor Rysea

info
Group: Conde
Joined: 07/04/15
Posts: 926
Reputation: +335
Gender: Masculino

info
Group: Cavaleiro
Joined: 17/06/15
Posts: 177
Reputation: +9
Tibia Character: GOD Server

Sim dan funfou certinho 100% mano vlw mesmo
n tava funfando o depositar pq esqueci de adicionar na tag tava !saldo;!sacar
mais eu vi agora ta 100%
Obrigado mesmo
info
Group: Conde
Joined: 07/04/15
Posts: 926
Reputation: +335
Gender: Masculino
@@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...