Iae galera, venho postar o npc banco em português, por quê eu sei que muitos tem dificuldade para ler em Inglês, ai ficam traduzindo no google, mais agora está totalmente facil, basta apenas saber ler!
E também vou ensinar a colocar o npc no map editor e colocar no seu mapa...
Então vamos lá...
Primeiro abra a pasta Data/npc e copie qualquer arquivo.xml e cole no mesmo local, mais renomeie o arquivo que copiou para bankeiro vai ficar assim =
depois, abra o arquivo que você criou e cole o seguinte script =
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Banqueiro" script="data/npc/scripts/bank.lua" walkinterval="2000" floorchange="0" access="5" level="1" maglevel="1" speed="1000">
<health now="150" max="150"/>
<look type="128" head="79" body="114" legs="114" feet="0" addons="3" corpse="2212"/>
<parameters>
<parameter key="message_greet" value="Bem-Vindo |PLAYERNAME|! Aqui, voce pode {depositar}, {sacar} ou {transferir} seu dinheiro de sua conta bancaria. Eu posso mudar suas moedas tambem."/>
<parameter key="message_alreadyfocused" value="Voce esta bebado? Eu falo com voce."/>
<parameter key="message_farewell" value="Tchau. Eu quero ver o seu dinheiro... oh voce novamente."/>
</parameters>
</npc>
Pronto, salva e fecha!!
Depois abra a pasta Data/npc/scripts e crie ou copie um arquivo.lua e renomeie para bank.lua =
e abra o arquivo que você copiou ou criou, se você copiou apague tudo que esta escrito dentro do arquivo, e cole o seguinte script dentro do arquivo =
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local moneyTo = {}
local playerTo = {}
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
local function isValidMoney(money)
if isNumber(money) == TRUE and money > 0 and money < 999999999 then
return TRUE
end
return FALSE
end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
if msgcontains(msg, 'ajuda') or msgcontains(msg, 'oferta') then
selfSay("Você pode verificar o {saldo} da sua conta bancária, {depositar} dinheiro ou {sacar} dinheiro depositado. Você pode também fazer {transferencia} de dinheiro para outros players, desde que o player tenha vocaçao.", cid)
talkState[cid] = 0
-----------------------------------------------------------------
---------------------------- Saldo ----------------------------
-----------------------------------------------------------------
elseif msgcontains(msg, 'saldo') or msgcontains(msg, 'Saldo') then
selfSay('O saldo da sua conta é '..getPlayerBalance(cid)..' gold.', cid)
talkState[cid] = 0
-----------------------------------------------------------------
---------------------------- Ajuda -------------------------------
-----------------------------------------------------------------
elseif msgcontains(msg, 'basic functions') then
selfSay('Você pode checar seu {saldo{ da sua conta bancaria, Pdepositar{ dinheiro ou Psacar{ dinheiro depositado. Você pode também fazer {transferencia} de dinheiro para outros players, desde que o player tenha vocaçao.', cid)
talkState[cid] = 0
elseif msgcontains(msg, 'advanced functions') then
selfSay('Alugar uma casa nunca foi tão fácil. Basta fazer uma oferta para um leilão. Iremos verificar imediatamente se você tem dinheiro suficiente.', cid)
talkState[cid] = 0
-----------------------------------------------------------------
---------------------------- Depositar ----------------------------
-----------------------------------------------------------------
elseif msgcontains(msg, 'depositar tudo') then
moneyTo[cid] = getPlayerMoney(cid)
if moneyTo[cid] < 1 then
selfSay('Você não tem dinheiro para depositar em seu inventário..', cid)
talkState[cid] = 0
else
selfSay('Você quer realmente depositar '..moneyTo[cid]..' gold?', cid)
talkState[cid] = 2
end
elseif msgcontains(msg, 'depositar') then
selfSay("Por favor me diga quantos gold gostaria de depositar?", cid)
talkState[cid] = 1
elseif talkState[cid] == 1 then
moneyTo[cid] = tonumber(msg)
if isValidMoney(moneyTo[cid]) == TRUE then
selfSay('Você realmente quer depositar '..moneyTo[cid]..' gold?', cid)
talkState[cid] = 2
else
selfSay('Não é valido essa forma de deposito.', cid)
talkState[cid] = 0
end
elseif talkState[cid] == 2 then
if msgcontains(msg, 'sim') then
if doPlayerDepositMoney(cid, moneyTo[cid], 1) ~= TRUE then
selfSay('Você não tem dinheiro suficiente para depositar.', cid)
else
selfSay('Tudo bem, nós adicionamos a quantidade de '..moneyTo[cid]..' gold para seu saldo. Você pode retirar seu dinheiro quando você quiser. O saldo da conta é ' .. getPlayerBalance(cid) .. '.', cid)
end
elseif msgcontains(msg, 'nao') then
selfSay('Como quiser. Há outra coisa que eu posso fazer por você?', cid)
end
talkState[cid] = 0
-----------------------------------------------------------------
---------------------------- sacar ---------------------------
-----------------------------------------------------------------
elseif msgcontains(msg, 'sacar') then
selfSay("Por favor me diga quanto ouro você gostaria de retirar?", cid)
talkState[cid] = 6
elseif talkState[cid] == 6 then
moneyTo[cid] = tonumber(msg)
if isValidMoney(moneyTo[cid]) == TRUE then
selfSay('Tem certeza que deseja retirar '..moneyTo[cid]..' gold da sua conta bancária?', cid)
talkState[cid] = 7
else
selfSay('Forma inválida de sacar.', cid)
talkState[cid] = 0
end
elseif talkState[cid] == 7 then
if msgcontains(msg, 'sim') then
if doPlayerWithdrawMoney(cid, moneyTo[cid]) ~= TRUE then
selfSay('Não há gold suficiente em sua conta. O saldo da conta é '..getPlayerBalance(cid)..'. Por favor me diga a quantidade de golds que você gostaria de retirar.', cid)
else
selfSay('Aqui está, ' .. moneyTo[cid] .. ' gold. Por favor, deixe-me saber se há algo mais que eu possa fazer por você.', cid)
talkState[cid] = 0
end
elseif msgcontains(msg, 'nao') then
selfSay('Como quiser. Há outra coisa que eu posso fazer por você?', cid)
talkState[cid] = 0
end
-----------------------------------------------------------------
---------------------------- Transferencia ---------------------------
-----------------------------------------------------------------
elseif msgcontains(msg, 'transferir') then
selfSay("Por favor me diga a quantidade de golds que você gostaria de transferir.", cid)
talkState[cid] = 11
elseif talkState[cid] == 11 then
moneyTo[cid] = tonumber(msg)
if isValidMoney(moneyTo[cid]) == TRUE then
selfSay('Para quem você gostaria de fazer a transferência '..moneyTo[cid]..' gold para?', cid)
talkState[cid] = 12
else
selfSay('Forma inválida de fazer transferência.', cid)
talkState[cid] = 0
end
elseif talkState[cid] == 12 then
playerTo[cid] = msg
if getCreatureName(cid) == playerTo[cid] then
selfSay('Hum, você quer transferir dinheiro para si mesmo? Não pode transferir dinheiro pra si mesmo, seu noob infeliz!', cid)
talkState[cid] = 0
return TRUE
end
if playerExists(playerTo[cid]) then
selfSay('Você gostaria de transferir ' .. moneyTo[cid] .. ' gold para "' .. playerTo[cid] .. '" ?', cid)
talkState[cid] = 13
else
selfSay('Esse player chamado "' .. playerTo[cid] .. '" Não existe.', cid)
talkState[cid] = 0
end
elseif talkState[cid] == 13 then
if msgcontains(msg, 'sim') then
if getPlayerBalance(cid) < moneyTo[cid] then
selfSay('Você não tem dinheiro suficiente em sua conta bancária.', cid)
return TRUE
end
if doPlayerTransferMoneyTo(cid, playerTo[cid], moneyTo[cid]) ~= TRUE then
selfSay('Esse jogador não existe neste mundo ou não têm vocação.', cid)
else
selfSay('Transferência com sucesso ' .. moneyTo[cid] .. ' gold para "' .. playerTo[cid] ..' ".', cid)
playerTo[cid] = nil
end
elseif msgcontains(msg, 'nao') then
selfSay('Como quiser. Há outra coisa que eu posso fazer por você?', cid)
end
talkState[cid] = 0
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Pronto, Salva e Fecha!
Agora vou ensinar vocês a colocar o npc no mapa editor, é bem simples.
Primeiro baixem o map editor 2.1 =
http://remeresmapeditor.com/marklar.php
Depois de baixado, installe claro!!
e para abir o map editor com o seu mapa vai na pasta Data/world =
e clique no arquivo do map editor, geralmente o arquivo vem com o nome do Server =
Agora depois de estar aberto o mapa editor com seu mapa, você vai na opção File que está, Superior a esquerda
e vai na opção Import e depois siga o > e vai na opção import monsters/NPCs =
Depois procure o npc na pasta Data/Npc/bankeiro.xml e clique em abrir =
e depois coloque em Palette -> Creature palette, em baixo em Creatures coloque a opção NPCs e clique no local que deseja colocar o npc =
Pronto, Salva e feche se quiser!
É isso ae galera, Descupa se ouver alguns erros de português...
Creditos da traduçao para português By:eu mesmo
Não encontrei o dono do script, mais se ouver o dono, prove que és o dono do script, que eu Coloco os créditos!
Valeu galera, comentem ae!!
e lembrem se ajudei por que não dar Rep+.