Você ja tem um NPC de BANK ? Se sim passa o SCRIPT dele ..
NPC Bank - Facilitando Saque
Por gonorreiaswat, 26 de dez. de 2012 em Scripts
info
Grupo: Campones
Registrado: 19/12/12
Posts: 47
Reputação: +3

info
Grupo: Conde
Registrado: 16/09/07
Posts: 600
Reputação: +151
Gênero: Masculino
Char no Tibia: NãoJogoMais

Você ja tem um NPC de BANK ? Se sim passa o SCRIPT dele ..
Tenho sim.
Segue abaixo:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
npcHandler:setRadius(1)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
--------------------MESSAGES------------------------------------------------------------------------------
if (msgcontains(msg, 'deposit') or msgcontains(msg, 'depositar')) then
selfSay('Digite quanto deseja depositar.', cid)
talkState[talkUser] = 1
elseif (msgcontains(msg, 'withdraw') or msgcontains(msg, 'sacar')) then
selfSay(' Digite quanto deseja sacar.', cid)
talkState[talkUser] = 3
elseif (msgcontains(msg, 'transfer') or msgcontains(msg, 'transferir')) then
selfSay(' Digite quanto deseja transferir.', cid)
talkState[talkUser] = 5
elseif msgcontains(msg, 'trocar moedas') then
selfSay(' Quantos reais em notas voce deseja?', cid)
talkState[talkUser] = 8
elseif msgcontains(msg, 'trocar notas') then
selfSay(' Deseja trocar suas notas em reais por {moedas} ou notas de {mil} reais?', cid)
talkState[talkUser] = 10
elseif msgcontains(msg, 'trocar mil') then
selfSay(' Quantos notas de mil deseja trocar por notas de reais?', cid)
talkState[talkUser] = 15
elseif (msgcontains(msg, 'sair') or msgcontains(msg, 'exit')) then
doTeleportThing(cid, {x=900,y=976,z=7})
talkState[talkUser] = 20
elseif (msgcontains(msg, 'limite') or msgcontains(msg, 'limit')) then
selfSay(' Deseja {100 reais} emprestados?', cid)
talkState[talkUser] = 25
elseif (msgcontains(msg, 'pagar') or msgcontains(msg, 'pay')) then
selfSay(' Deseja pagar os {100 reais} emprestados?', cid)
talkState[talkUser] = 30
elseif (msgcontains(msg, 'help') or msgcontains(msg, 'ajuda')) then
selfSay(' Digite {balance} ou {extrato} para ver seu saldo em conta.', cid)
selfSay(' Digite {deposit} ou {depositar} para depositar dinheiro em sua conta.', cid)
selfSay(' Digite {withdraw} ou {sacar} para sacar dinheiro de sua conta.', cid)
selfSay(' Digite {transfer} ou {transferir} para transferir dinheiro para uma outra conta.', cid)
selfSay(' Digite {limit} ou {limite} para pegar dinheiro emprestado do banco.', cid)
selfSay(' Digite {pay} ou {pagar} para pagar uma divida em aberto conosco.', cid)
selfSay(' Digite {trocar moedas} para trocar suas moedas por notas.', cid)
selfSay(' Digite {trocar notas} para trocar suas notas por moedas ou notas de mil reais.', cid)
selfSay(' Digite {trocar mil} para trocar suas notas de mil por notas em reais.', cid)
selfSay(' Digite {sair} ou {exit} para voltar ao Centro do Banco.', cid)
talkState[talkUser] = 15
elseif (msgcontains(msg, 'balance') or msgcontains(msg, 'extrato')) then
n = getPlayerBalance(cid)
selfSay('Voce possui '..n..' centavos em sua conta.', cid)
talkState[talkUser] = 0
---------------------- PAGAR -------------------------------------------------------------------------------------
elseif talkState[talkUser] == 30 then
if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then
selfSay(' Deseja prosseguir e quitar sua divida de {100 reais} conosco?', cid)
talkState[talkUser] = 31
end
elseif talkState[talkUser] == 31 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if (getPlayerStorageValue(cid, 26001) > 9999) then
if doPlayerRemoveMoney(cid, getPlayerStorageValue(cid, 26001)) then
setPlayerStorageValue(cid, 26001, -1)
selfSay('Pagamento efetuado com sucesso!.',cid)
talkState[talkUser] = 0
else
selfSay('Voce nao tem '..getPlayerStorageValue(cid, 26001)..' gps para pagar seu emprestimo!.',cid)
end
else
selfSay('Voce nao tem emprestimo aqui conosco!.',cid)
end
else
selfSay('Volte sempre.', cid)
end
---------------------- LIMITE -------------------------------------------------------------------------------------
elseif talkState[talkUser] == 25 then
if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then
selfSay(' Lembre-se: Voce ficara devendo {100 reais} ao banco. Deseja prosseguir?', cid)
talkState[talkUser] = 26
end
elseif talkState[talkUser] == 26 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if (getPlayerStorageValue(cid, 26001) <= 0) then
doPlayerAddItem(cid,2152,100)
setPlayerStorageValue(cid, 26001, 10000)
selfSay('Ai esta seu dinheiro.',cid)
talkState[talkUser] = 0
else
selfSay('Voce precisa pagar o emprestimo anterior para efetuar um novo.',cid)
end
else
selfSay('Volte sempre.', cid)
end
----------------------DEPOSIT-------------------------------------------------------
elseif talkState[talkUser] == 1 then
if (msgcontains(msg, 'all') or msgcontains(msg, 'tudo')) then
n = getPlayerMoney(cid)
selfSay('Tem certeza que deseja depositar '..n..' centavos?', cid)
talkState[talkUser] = 2
else
n = getNumber(msg)
selfSay('Tem certeza que deseja depositar '..n..' centavos?', cid)
talkState[talkUser] = 2
end
elseif talkState[talkUser] == 2 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if getPlayerMoney(cid) >= n then
doPlayerDepositMoney(cid,n)
selfSay('Deposito efetuado com sucesso.', cid)
selfSay('{EXTRATO BANCARIO:} Sua conta possui ' ..getPlayerBalance(cid)..' centavos disponiveis.', cid)
talkState[talkUser] = 0
else
selfSay('Voce nao tem esta quantidade de dinheiro.', cid)
end
else
selfSay('Volte sempre.', cid)
end
----------------------WITHDRAW-------------------------------------------------------------------------------------
elseif talkState[talkUser] == 3 then
if (msgcontains(msg, 'all') or msgcontains(msg, 'tudo')) then
n = getPlayerBalance(cid)
selfSay('Tem certeza que deseja sacar '..n..' centavos?', cid)
talkState[talkUser] = 4
else
n = getNumber(msg)
selfSay('Tem certeza que deseja sacar '..n..' centavos?', cid)
talkState[talkUser] = 4
end
elseif talkState[talkUser] == 4 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if getPlayerBalance(cid) >= n then
doPlayerWithdrawMoney(cid, n)
selfSay(''..n..' centavos sacados com sucesso.', cid)
selfSay('{EXTRATO BANCARIO:} Sua conta possui ' ..getPlayerBalance(cid)..' centavos disponiveis.', cid)
talkState[talkUser] = 0
else
selfSay('Saldo insuficiente.', cid)
end
else
selfSay('Volte sempre.', cid)
end
----------------------TRANSFER----------------------------------------------------------------------------------------
elseif talkState[talkUser] == 5 then
if (msgcontains(msg, 'all') or msgcontains(msg, 'tudo')) then
n = getPlayerBalance(cid)
selfSay('Digite o nome do beneficiario que recebera seus '..n..' centavos.', cid)
talkState[talkUser] = 6
else
n = getNumber(msg)
selfSay('Digite o nome do beneficiario que recebera seus '..n..' centavos.', cid)
talkState[talkUser] = 6
end
elseif talkState[talkUser] == 6 then
p = msg
selfSay('Estas a transferir '..n..' centavos para o beneficiario "'..p..'", esta correto?', cid)
talkState[talkUser] = 7
elseif talkState[talkUser] == 7 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if getPlayerBalance(cid) >= n then
if doPlayerTransferMoneyTo(cid, p, n) == TRUE then
selfSay('Voce transferiu '..n..' centavos para "'..p..'" com sucesso.', cid)
selfSay('{EXTRATO BANCARIO:} Sua conta possui '..getPlayerBalance(cid)..' centavos disponiveis.', cid)
talkState[talkUser] = 0
else
selfSay('Nome de beneficiario inexistente. Por favor digite o nome do beneficiario corretamente!', cid)
talkState[talkUser] = 0
end
else
selfSay('Saldo insuficiente', cid)
talkState[talkUser] = 0
end
else
selfSay('Volte sempre.', cid)
talkState[talkUser] = 0
end
----------------------CHANGE GOLD---------------------------------------------------------------------------------
elseif talkState[talkUser] == 8 then
n = getNumber(msg)
b = n * 100
selfSay('Gostaria de trocar '..b..' em moedas por '..n..' real(is) em nota(s)?', cid)
talkState[talkUser] = 9
elseif talkState[talkUser] == 9 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if doPlayerRemoveItem(cid, 2148, b) == TRUE then
doPlayerAddItem(cid, 2152, n)
talkState[talkUser] = 0
else
selfSay('Dinheiro insuficiente.', cid)
talkState[talkUser] = 0
end
else
selfSay('Ok, cancelado.', cid)
talkState[talkUser] = 0
end
---------------------CHANGE PLATINUM-------------------------------------------------------------------------
elseif talkState[talkUser] == 10 then
if msgcontains(msg, 'moedas') then
selfSay('Quantos reais em notas deseja trocar por centavos em moedas?', cid)
talkState[talkUser] = 11
elseif msgcontains(msg, 'mil') then
selfSay('Quantos mil reais deseja?', cid)
talkState[talkUser] = 13
end
elseif talkState[talkUser] == 11 then
n = getNumber(msg)
b = n * 100
selfSay('Gostaria de trocar '..n..' real(is) em notas por '..b..' centavos em moedas?', cid)
talkState[talkUser] = 12
elseif talkState[talkUser] == 12 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if doPlayerRemoveItem(cid, 2152, n) == TRUE then
doPlayerAddItem(cid, 2148, b)
talkState[talkUser] = 0
else
selfSay('Dinheiro insuficiente.', cid)
talkState[talkUser] = 0
end
else
selfSay('Ok, cancelado.', cid)
talkState[talkUser] = 0
end
elseif talkState[talkUser] == 13 then
n = getNumber(msg)
b = n * 1000
selfSay('Gostaria de trocar '..b..' reais em notas por '..n..' nota(s) de mil reais?', cid)
talkState[talkUser] = 14
elseif talkState[talkUser] == 14 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if doPlayerRemoveItem(cid, 2152, b) == TRUE then
doPlayerAddItem(cid, 2160, n)
talkState[talkUser] = 0
else
selfSay('Dinheiro insuficiente.', cid)
talkState[talkUser] = 0
end
else
selfSay('Ok, cancelado.', cid)
talkState[talkUser] = 0
end
---------------------CHANGE CRYSTAL-------------------------------------------------------------------------------
elseif talkState[talkUser] == 15 then
n = getNumber(msg)
b = n * 1000
selfSay('Gostaria de trocar '..n..' nota(s) de mil por '..b..' em notas de reais?', cid)
talkState[talkUser] = 16
elseif talkState[talkUser] == 16 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if doPlayerRemoveItem(cid, 2160, n) == TRUE then
doPlayerAddItem(cid, 2152, b)
talkState[talkUser] = 0
else
selfSay('Dinheiro insuficiente.', cid)
talkState[talkUser] = 0
end
else
selfSay('Ok, cancelado.', cid)
talkState[talkUser] = 0
end
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
-- function maded by Gesior--
function getNumber(txt) --return number if its number and is > 0, else return 0
x = string.gsub(txt,"%a","")
x = tonumber(x)
if x ~= nill and x > 0 then
return x
else
return 0
end
end
Desde já, muito grato.
info
Grupo: Campones
Registrado: 19/12/12
Posts: 47
Reputação: +3

tenta esse ..
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
npcHandler:setRadius(1)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
--------------------MESSAGES------------------------------------------------------------------------------
if (msgcontains(msg, 'deposit') or msgcontains(msg, 'depositar')) then
selfSay('Digite quanto deseja depositar.', cid)
talkState[talkUser] = 1
elseif (msgcontains(msg, 'withdraw') or msgcontains(msg, 'sacar')) then
selfSay(' Oque Deseja Sacar?.', cid)
talkState[talkUser] = 3
elseif (msgcontains(msg, 'transfer') or msgcontains(msg, 'transferir')) then
selfSay(' Digite quanto deseja transferir.', cid)
talkState[talkUser] = 5
elseif msgcontains(msg, 'trocar moedas') then
selfSay(' Quantos reais em notas voce deseja?', cid)
talkState[talkUser] = 8
elseif msgcontains(msg, 'trocar notas') then
selfSay(' Deseja trocar suas notas em reais por {moedas} ou notas de {mil} reais?', cid)
talkState[talkUser] = 10
elseif msgcontains(msg, 'trocar mil') then
selfSay(' Quantos notas de mil deseja trocar por notas de reais?', cid)
talkState[talkUser] = 15
elseif (msgcontains(msg, 'sair') or msgcontains(msg, 'exit')) then
doTeleportThing(cid, {x=900,y=976,z=7})
talkState[talkUser] = 20
elseif (msgcontains(msg, 'limite') or msgcontains(msg, 'limit')) then
selfSay(' Deseja {100 reais} emprestados?', cid)
talkState[talkUser] = 25
elseif (msgcontains(msg, 'pagar') or msgcontains(msg, 'pay')) then
selfSay(' Deseja pagar os {100 reais} emprestados?', cid)
talkState[talkUser] = 30
elseif (msgcontains(msg, 'help') or msgcontains(msg, 'ajuda')) then
selfSay(' Digite {balance} ou {extrato} para ver seu saldo em conta.', cid)
selfSay(' Digite {deposit} ou {depositar} para depositar dinheiro em sua conta.', cid)
selfSay(' Digite {withdraw} ou {sacar} para sacar dinheiro de sua conta.', cid)
selfSay(' Digite {transfer} ou {transferir} para transferir dinheiro para uma outra conta.', cid)
selfSay(' Digite {limit} ou {limite} para pegar dinheiro emprestado do banco.', cid)
selfSay(' Digite {pay} ou {pagar} para pagar uma divida em aberto conosco.', cid)
selfSay(' Digite {trocar moedas} para trocar suas moedas por notas.', cid)
selfSay(' Digite {trocar notas} para trocar suas notas por moedas ou notas de mil reais.', cid)
selfSay(' Digite {trocar mil} para trocar suas notas de mil por notas em reais.', cid)
selfSay(' Digite {sair} ou {exit} para voltar ao Centro do Banco.', cid)
talkState[talkUser] = 15
elseif (msgcontains(msg, 'balance') or msgcontains(msg, 'extrato')) then
n = getPlayerBalance(cid)
selfSay('Voce possui '..n..' centavos em sua conta.', cid)
talkState[talkUser] = 0
---------------------- PAGAR -------------------------------------------------------------------------------------
elseif talkState[talkUser] == 30 then
if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then
selfSay(' Deseja prosseguir e quitar sua divida de {100 reais} conosco?', cid)
talkState[talkUser] = 31
end
elseif talkState[talkUser] == 31 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if (getPlayerStorageValue(cid, 26001) > 9999) then
if doPlayerRemoveMoney(cid, getPlayerStorageValue(cid, 26001)) then
setPlayerStorageValue(cid, 26001, -1)
selfSay('Pagamento efetuado com sucesso!.',cid)
talkState[talkUser] = 0
else
selfSay('Voce nao tem '..getPlayerStorageValue(cid, 26001)..' gps para pagar seu emprestimo!.',cid)
end
else
selfSay('Voce nao tem emprestimo aqui conosco!.',cid)
end
else
selfSay('Volte sempre.', cid)
end
---------------------- LIMITE -------------------------------------------------------------------------------------
elseif talkState[talkUser] == 25 then
if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then
selfSay(' Lembre-se: Voce ficara devendo {100 reais} ao banco. Deseja prosseguir?', cid)
talkState[talkUser] = 26
end
elseif talkState[talkUser] == 26 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if (getPlayerStorageValue(cid, 26001) <= 0) then
doPlayerAddItem(cid,2152,100)
setPlayerStorageValue(cid, 26001, 10000)
selfSay('Ai esta seu dinheiro.',cid)
talkState[talkUser] = 0
else
selfSay('Voce precisa pagar o emprestimo anterior para efetuar um novo.',cid)
end
else
selfSay('Volte sempre.', cid)
end
----------------------DEPOSIT-------------------------------------------------------
elseif talkState[talkUser] == 1 then
if (msgcontains(msg, 'all') or msgcontains(msg, 'tudo')) then
n = getPlayerMoney(cid)
selfSay('Tem certeza que deseja depositar '..n..' centavos?', cid)
talkState[talkUser] = 2
else
n = getNumber(msg)
selfSay('Tem certeza que deseja depositar '..n..' centavos?', cid)
talkState[talkUser] = 2
end
elseif talkState[talkUser] == 2 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if getPlayerMoney(cid) >= n then
doPlayerDepositMoney(cid,n)
selfSay('Deposito efetuado com sucesso.', cid)
selfSay('{EXTRATO BANCARIO:} Sua conta possui ' ..getPlayerBalance(cid)..' centavos disponiveis.', cid)
talkState[talkUser] = 0
else
selfSay('Voce nao tem esta quantidade de dinheiro.', cid)
end
else
selfSay('Volte sempre.', cid)
end
----------------------WITHDRAW-------------------------------------------------------------------------------------
elseif talkState[talkUser] == 3 then
if (msgcontains(msg, 'all') or msgcontains(msg, 'tudo')) then
n = getPlayerBalance(cid)
selfSay('Tem certeza que deseja sacar todo o dinheiro?', cid)
talkState[talkUser] = 4
elseif (msgcontains(msg, 'cold coin') or msg contains(msg, 'gps')) then
selfSay('Quantas Gold Coins deseja sacar ?, cid)
n = getNumber(msg)
selfSay('Tem certeza que deseja sacar '..n..' Gold Coins?', cid)
talkState[talkUser] = 17
elseif (msgcontains(msg, 'platinum coins') then
selfSay('Quantas Cristal deseja sacar?, cid)
n = getNumber(msg)
selfSay('Tem certeza que deseja sacar '..n..' Platinum coins?', cid)
talkState[talkUser] = 18
elseif (msgcontains(msg, 'crystal coin') then
selfSay('Quantas Crystal Coin deseja sacar ?, cid)
n = getNumber(msg)
selfSay('Tem certeza que deseja sacar '..n..' Crystal coins?', cid)
talkState[talkUser] = 19
end
elseif talkState[talkUser] == 4 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if getPlayerBalance(cid) >= n then
doPlayerWithdrawMoney(cid, n)
selfSay(''..n..' centavos sacados com sucesso.', cid)
selfSay('{EXTRATO BANCARIO:} Sua conta possui ' ..getPlayerBalance(cid)..' centavos disponiveis.', cid)
talkState[talkUser] = 0
else
selfSay('Saldo insuficiente.', cid)
end
else
selfSay('Volte Sempre.', cid)
end
elseif talkState[talkUser] == 17 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if getPlayerBalance(cid) >= n then
doPlayerWithDrawMoney(cid, n)
selfSay(''..n..' gold coins sacados com sucesso.', cid)
selfSay('{EXTRATO BANCARIO:} Sua conta possui ' ..getPlayerBalance(cid)..' disponivel.', cid)
talkState[talkUser] = 0
else
selfSay('Saldo insuficiente.', cid)
end
else
selfSay('Volte sempre.', cid)
end
elseif talkState[talkUser] == 18 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if getPlayerBalance(cid) >= n * 100 then
doPlayerWithdrawMoney(cid, n * 100)
selfSay(''..n..' platinum coins sacados com sucesso.', cid)
selfSay('{EXTRATO BANCARIO:} Sua conta possui ' ..getPlayerBalance(cid)..' disponivel.', cid)
talkState[talkUser] = 0
else
selfSay('Saldo insuficiente.', cid)
end
else
selfSay('Volte sempre.', cid)
end
elseif talkState[talkUser] == 19 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if getPlayerBalance(cid) >= n * 10000 then
doPlayerWithdrawMoney(cid, n * 10000)
selfSay(''..n..' crystal coins sacados com sucesso.', cid)
selfSay('{EXTRATO BANCARIO:} Sua conta possui ' ..getPlayerBalance(cid)..' disponivel.', cid)
talkState[talkUser] = 0
else
selfSay('Saldo insuficiente.', cid)
end
else
selfSay('Volte sempre.', cid)
end
----------------------TRANSFER----------------------------------------------------------------------------------------
elseif talkState[talkUser] == 5 then
if (msgcontains(msg, 'all') or msgcontains(msg, 'tudo')) then
n = getPlayerBalance(cid)
selfSay('Digite o nome do beneficiario que recebera seus '..n..' centavos.', cid)
talkState[talkUser] = 6
else
n = getNumber(msg)
selfSay('Digite o nome do beneficiario que recebera seus '..n..' centavos.', cid)
talkState[talkUser] = 6
end
elseif talkState[talkUser] == 6 then
p = msg
selfSay('Estas a transferir '..n..' centavos para o beneficiario "'..p..'", esta correto?', cid)
talkState[talkUser] = 7
elseif talkState[talkUser] == 7 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if getPlayerBalance(cid) >= n then
if doPlayerTransferMoneyTo(cid, p, n) == TRUE then
selfSay('Voce transferiu '..n..' centavos para "'..p..'" com sucesso.', cid)
selfSay('{EXTRATO BANCARIO:} Sua conta possui '..getPlayerBalance(cid)..' centavos disponiveis.', cid)
talkState[talkUser] = 0
else
selfSay('Nome de beneficiario inexistente. Por favor digite o nome do beneficiario corretamente!', cid)
talkState[talkUser] = 0
end
else
selfSay('Saldo insuficiente', cid)
talkState[talkUser] = 0
end
else
selfSay('Volte sempre.', cid)
talkState[talkUser] = 0
end
----------------------CHANGE GOLD---------------------------------------------------------------------------------
elseif talkState[talkUser] == 8 then
n = getNumber(msg)
b = n * 100
selfSay('Gostaria de trocar '..b..' em moedas por '..n..' real(is) em nota(s)?', cid)
talkState[talkUser] = 9
elseif talkState[talkUser] == 9 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if doPlayerRemoveItem(cid, 2148, b) == TRUE then
doPlayerAddItem(cid, 2152, n)
talkState[talkUser] = 0
else
selfSay('Dinheiro insuficiente.', cid)
talkState[talkUser] = 0
end
else
selfSay('Ok, cancelado.', cid)
talkState[talkUser] = 0
end
---------------------CHANGE PLATINUM-------------------------------------------------------------------------
elseif talkState[talkUser] == 10 then
if msgcontains(msg, 'moedas') then
selfSay('Quantos reais em notas deseja trocar por centavos em moedas?', cid)
talkState[talkUser] = 11
elseif msgcontains(msg, 'mil') then
selfSay('Quantos mil reais deseja?', cid)
talkState[talkUser] = 13
end
elseif talkState[talkUser] == 11 then
n = getNumber(msg)
b = n * 100
selfSay('Gostaria de trocar '..n..' real(is) em notas por '..b..' centavos em moedas?', cid)
talkState[talkUser] = 12
elseif talkState[talkUser] == 12 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if doPlayerRemoveItem(cid, 2152, n) == TRUE then
doPlayerAddItem(cid, 2148, b)
talkState[talkUser] = 0
else
selfSay('Dinheiro insuficiente.', cid)
talkState[talkUser] = 0
end
else
selfSay('Ok, cancelado.', cid)
talkState[talkUser] = 0
end
elseif talkState[talkUser] == 13 then
n = getNumber(msg)
b = n * 1000
selfSay('Gostaria de trocar '..b..' reais em notas por '..n..' nota(s) de mil reais?', cid)
talkState[talkUser] = 14
elseif talkState[talkUser] == 14 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if doPlayerRemoveItem(cid, 2152, b) == TRUE then
doPlayerAddItem(cid, 2160, n)
talkState[talkUser] = 0
else
selfSay('Dinheiro insuficiente.', cid)
talkState[talkUser] = 0
end
else
selfSay('Ok, cancelado.', cid)
talkState[talkUser] = 0
end
---------------------CHANGE CRYSTAL-------------------------------------------------------------------------------
elseif talkState[talkUser] == 15 then
n = getNumber(msg)
b = n * 1000
selfSay('Gostaria de trocar '..n..' nota(s) de mil por '..b..' em notas de reais?', cid)
talkState[talkUser] = 16
elseif talkState[talkUser] == 16 then
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then
if doPlayerRemoveItem(cid, 2160, n) == TRUE then
doPlayerAddItem(cid, 2152, b)
talkState[talkUser] = 0
else
selfSay('Dinheiro insuficiente.', cid)
talkState[talkUser] = 0
end
else
selfSay('Ok, cancelado.', cid)
talkState[talkUser] = 0
end
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
-- function maded by Gesior--
function getNumber(txt) --return number if its number and is > 0, else return 0
x = string.gsub(txt,"%a","")
x = tonumber(x)
if x ~= nill and x > 0 then
return x
else
return 0
end
end
Editado Dezembro 27 por XxPaaulinhoOxX
info
Grupo: Conde
Registrado: 16/09/07
Posts: 600
Reputação: +151
Gênero: Masculino
Char no Tibia: NãoJogoMais

O sistema está quase funfando 100%...
Veio com alguns bug's, tipo, tags escritas com espaços, caracteres inválidos, pontos faltando...
Mas estes já arrumei. ![]()
O do Gold Coins não está funcionando e o do Platinum que está funfando, mas só que o dinheiro não sai do banco do cara.
É como se o NPC estivesse doando dinheiro ao player.
E de vez enquando da este no Launcher
[26/12/2012 23:52:31] [Error - Npc interface][26/12/2012 23:52:31] data/npc/scripts/caixa_eletronico.lua:onCreatureSay
[26/12/2012 23:52:31] Description:
[26/12/2012 23:52:31] data/npc/scripts/caixa_eletronico.lua:192: attempt to call global 'doPlayeraddItem' (a nil value)
[26/12/2012 23:52:31] stack traceback:
[26/12/2012 23:52:31] data/npc/scripts/caixa_eletronico.lua:192: in function 'callback'
[26/12/2012 23:52:31] data/npc/lib/npcsystem/npchandler.lua:383: in function 'onCreatureSay'
[26/12/2012 23:52:31] data/npc/scripts/caixa_eletronico.lua:9: in function <data/npc/scripts/
Mas muito obrigado até aqui, já ajudou pakas'
![]()
info
Grupo: Campones
Registrado: 19/12/12
Posts: 47
Reputação: +3

eu sou muito burro ahushASUHuAHS'
coloquei pra ele adicionar o item invés de retirar do banco .-.
tenta lá agora tá arrumado ..
Editado Dezembro 27 por XxPaaulinhoOxX
info
Grupo: Conde
Registrado: 16/09/07
Posts: 600
Reputação: +151
Gênero: Masculino
Char no Tibia: NãoJogoMais

Nossa mano, funfou jóia.
Dei umas mexidas pra ficar 100%, mas vc ajudou em 99,9%. \o/
@@EDIT
Mano, eu queria por este mesmo sistema para DEPOSITAR também.
Eu tentei pegar como base, mas deu alguns erros, se puder fazer por mim, ficaria muito grato.
Desde já, muito obrigado mesmo brother.
Abraços & REP+
Mano, eu queria por este mesmo sistema para DEPOSITAR também.
Eu tentei pegar como base, mas deu alguns erros, se puder fazer por mim, ficaria muito grato.
É claro, qualquer ajuda, será bem-vinda.
@@EDIT
>> PODEM FECHAR, PROBLEMA RESOLVIDO.
Desde já, grato.
Editado Dezembro 29 por Gonorreia


info
Grupo: Conde
Registrado: 16/09/07
Posts: 600
Reputação: +151
Gênero: Masculino
Char no Tibia: NãoJogoMais
Boa noite galera.
Eu estou com uma dúvida, e é claro, também é um pedido para os que têm facilidade em scriptear.
A função do Script é para facilitar a vida dos players quando vão ao Bank do Tibia.
Exemplo: O player quer sacar 97 platinum coins. Queria um modo de facilitar a vida do mesmo no NPC, tipo o exemplo abaixo...
E o NPC confere o dinheiro em caixa e também faz a conversão das moedas automaticamente.
Para assim não precisar ficar pondo imensos números em Gold Coins na hora de sacar grana.
Fico no aguardo de alguma resposta ou dica.
Desde já muito grato.
Editado Dezembro 26 por Gonorreia