Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Bom, aqui nem tem muito oque explicar...

É um NPC de BANK como todos conhecem'

Vamos lá...

1º Passo

Vá na pasta "Data / NPC", crie um arquivo com o nome de "Banker.xml", abra o arquivo criado e cole o código abaixo dentro.

Obs: O nome do arquivo pode ser o que desejar, só o que está em azul, ou seja, a extensão, que não pode ser alterada'

<?xml version="1.0" encoding="UTF-8"?>

<npc name="Banker" script="bank.lua" walkinterval="2000" floorchange="0">

<health now="150" max="150"/>

<look type="128" head="20" body="100" legs="50" feet="99" corpse="2212"/>

<parameters>

<parameter key="message_greet" value="Hello |PLAYERNAME|. Eu sou seu banqueiro por aqui!"/>

</parameters>

</npc>

2º Passo

Dentro da pasta "Scripts", crie um arquivo chamado "bank.lua" e dentro do mesmo cole o código 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

if(msgcontains(msg, 'bank') or msgcontains(msg, 'help')) then

selfSay('Ola amigo oque deseja fazer? {deposit} ou {depositar} para depositar, {withdraw} ou {sacar} para sacar dinheiro ou {balance} para ver seu saldo!', cid)

talkState[talkUser] = 1

elseif msgcontains(msg, 'balance') or msgcontains(msg, 'BALANCE') and talkState[talkUser] == 1 then

local balance = getPlayerBalance(cid)

selfSay('Voce possui ' .. balance .. ' gps no banco', cid)

elseif msgcontains(msg, 'deposit') or msgcontains(msg, 'depositar') and talkState[talkUser] == 1 then

selfSay('Digite o valor que voce deseja depositar.', cid)

talkState[talkUser] = 2

elseif talkState[talkUser] == 2 then

n = getNumber(msg)

if(msg == 'all' and doPlayerDepositAllMoney(cid)) then

selfSay('Depositado com sucesso!', cid)

talkState[talkUser] = 1

end

if n <= 0 then

selfSay('escolha um valor acima de 0!', cid)

talkState[talkUser] = 1

end

if n and doPlayerDepositMoney(cid, n) then

selfSay('Depositado com sucesso!', cid)

talkState[talkUser] = 1

else

selfSay('Voce nao tem o valor informado', cid)

talkState[talkUser] = 1

end

elseif msgcontains(msg, 'withdraw') or msgcontains(msg, 'sacar') and talkState[talkUser] == 1 then

selfSay('Digite o valor que voce deseja retirar.', cid)

talkState[talkUser] = 3

elseif talkState[talkUser] == 3 then

n = getNumber(msg)

local balance = getPlayerBalance(cid)

if(msg == 'all' and doPlayerWithdrawAllMoney(cid)) then

selfSay('Retirado ' .. balance .. ' gps da sua conta!', cid)

talkState[talkUser] = 1

end

if (n ~= 0 and doPlayerWithdrawMoney(cid, n)) then

selfSay('Retirado ' .. n .. ' gps da sua conta!', cid)

talkState[talkUser] = 1

else

selfSay('Voce nao pode retirar esse valor!', cid)

talkState[talkUser] = 1

end

elseif msg == "no" and talkState[talkUser] >= 1 then

selfSay("Then not", cid)

talkState[talkUser] = 0

npcHandler:releaseFocus(cid)

end

return TRUE

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

function getNumber(txt)

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

x = tonumber(x)

if x ~= nill and x > 0 then

return x

else

return 0

end

end

Salve e feche o arquivo.

Agora seu NPC está pronto, basta adicioná-lo ao seu mapa usando o Map Editor.

Espero que seja de utilidade de alguém...

Abraços e bom uso ae'

Script feito por: Vodkart

Alterado por: Adriano Swatt

Pequeno Tutorial feito por: Adriano Swatt

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

Link para o post
Compartilhar em outros sites
  • 2 years later...
  • 3 weeks later...

Que bom que funcionou'

 

Faça bom aproveito.

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

Link para o post
Compartilhar em outros sites
  • 9 months later...
Em 23/02/2015 em 02:39, manomagrinho disse:

Obg Fuciono Direitinho Obg Mesmo Ajudo :wow:  Rep+

Que bom que funcionou.

Caso haja algum inconveniente, dê uma olhada neste, pois é mais completo.

 

Faça bom aproveito.

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

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo