Ir para conteúdo

Featured Replies

Postado

Boa tarde...

Gostaria de saber se alguém sabe e se faria pra mim um Script de NPC que:

Limitasse o Saque Máximo do NPC Bank, como Caixa Eletrônicos comuns, exemplo...

Pedidos:

1- O valor máximo para se sacar é de 10000 gps, que após sacado o valor máximo o player não poder sacar novamente qualquer quantia durante 15 minutos...

2- Fazer com que também, se ir sacando picado, não tenha como burlar o "exhaust" de tempo de próximo saque'..

3- Ao colocar para sacar tudo, (withdraw > all), sacar ou 10000 gps (caso não tenha efetuado nenhum saque)...

ou então sacar o valor restante (caso já tenha efetuado algum saque no período de exhaust).

Ex: Sacou 5000gps, faz 5 minutos, ou seja, está dentro do Exhaust...Aí ele vai lá no NPC e digita para sacar tudo, automaticamente o NPC faz a conta de quanto ele sacou e diz que pode sacar somente 5000gps.

No caso, seria como Storage, o exhaust' (eu_acho)

:x

Caso precisem do Script do NPC, segue o mesmo abaixo:

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

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, '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 a sua conta.', cid)

selfSay('Digite {withdraw} ou {sacar} para sacar dinheiro de sua conta (Limite de 100 reais a cada 15 minutos).', cid)

selfSay('Para {transferir}, {trocar notas},{trocar moedas} ou {sacar} sem limite de valor, precisara de um Cartao de Debito.', 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

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

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

Caso reste alguma dúvida, pergunte-me..

Desde já fico muito grato.

Editado por Adriano SwaTT (veja o histórico de edições)

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

  • Respostas 6
  • Visualizações 919
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Toma preguiçosinho uhauh, local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} funct

Postado
  • Autor

Esse npc ai ta estranho.

O isso significa?

if getPlayerBalance(cid) &--#62;= n then

eu que buguei o tópico qdo editei, vou consertar.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Postado

UHAUH,

Percebi.



local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

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, '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 a sua conta.', cid)

selfSay('Digite {withdraw} ou {sacar} para sacar dinheiro de sua conta (Limite de 100 reais a cada 15 minutos).', cid)

selfSay('Para {transferir}, {trocar notas},{trocar moedas} ou {sacar} sem limite de valor, precisara de um Cartao de Debito.', 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



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


if getPlayerMoney(cid) >= n then

elseif talkState[talkUser] == 2 then

if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) 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

if (n < 10000) 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('Voce só pode retirar 10000 por vez',cid)

end

else

selfSay('Saldo insuficiente.', cid)

end

else

selfSay('Volte sempre.', cid)

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

toma ;D

 http://baiakuza.com/
IP: baiakuza.com
TIBIA: 10.96
Baiak Custom [ High Exp Rate ]

 

 

 

 

Postado
  • Autor

UHAUH,

Percebi.

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

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, '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 a sua conta.', cid)

selfSay('Digite {withdraw} ou {sacar} para sacar dinheiro de sua conta (Limite de 100 reais a cada 15 minutos).', cid)

selfSay('Para {transferir}, {trocar notas},{trocar moedas} ou {sacar} sem limite de valor, precisara de um Cartao de Debito.', 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



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


if getPlayerMoney(cid) &--#62;= n then

elseif talkState[talkUser] == 2 then

if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) 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) &--#62;= n then

if (n &--#60; 10000) 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('Voce só pode retirar 10000 por vez',cid)

end

else

selfSay('Saldo insuficiente.', cid)

end

else

selfSay('Volte sempre.', cid)

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 &--#62; 0, else return 0

x = string.gsub(txt,"%a","")

x = tonumber(x)

if x ~= nill and x &--#62; 0 then

return x

else

return 0

end

end

toma ;D

Não testei ainda... porém, olhando por cima, você fez só o de Saque Máximo né?

Ja testo e edito.

Abraços e muito obrigado, na volta te dou REP+'

@@EDIT'

Então, ficou certo só o primeiro, de sacar só valores menores que 10000gps, no entanto pode efetuar o saque deste valores várias vezes seguidas...

O que eu queria é tipo um Storage que sumisse após o tempo, e esta bloqueá-se o player de sacar dinheiro enquanto estivesse ativa no mesmo'

Abraços & valeu mesmo ae a intenção'

Editado por Adriano SwaTT (veja o histórico de edições)

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520k

Informação Importante

Confirmação de Termo