Ir para conteúdo
  • 0

NPC Bank - Facilitando Saque


gonorreiaswat

Pergunta

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

 

>Player: Hi

>NPC: Boa tarde Sr. Hanchucrutes, em que posso lhe ajudar?

>Player: Sacar

>NPC: O que deseja sacar?

>Player: platinum coins

>NPC: Quantas platinum coins deseja sacar?

>Player: 97

>NPC: Tem certeza que deseja sacar 97 platinum coins?

>Player: yes

>NPC: Ok, Aí está suas 97 platinum coins.

 

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 por Gonorreia
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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 por XxPaaulinhoOxX
Link para o comentário
Compartilhar em outros sites

  • 0

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. :D

 

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'

:D

Link para o comentário
Compartilhar em outros sites

  • 0

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+

 

XxPaaulinhoOxX

 

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 por Gonorreia
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...