Ir para conteúdo

Sistema de Banco (Caixa Eletronico) Para OtServ


XxBrUnNXx

Posts Recomendados

Fala ae Galera bem vindo e hoje como meu primeiro tutorial, vo ta ensinado como criar um sistema de Caixa Eletrônico, para Otserv.

 

Bom so testei na Versão 8.6, e funciono qualquer coisa so falar que corrijo, se der problema. Ok

 

Na Pasta MOD do seu servidor crie um arquivo com o nome de Caixa Eletronico.xml

em seguida coloque esse Script

?xml encoding="UTF-8"?>
-----------------------------------------------------------------------
stor = 41319
caixa_id = 1354
bank_pos = {x = 78, y = 39, z = 7}
msgs = {
[1] = "'saldo' para ver seu saldo em conta.",
[2] = "'depositar' para depositar dinheiro em sua conta.",
[3] = "'sacar' para sacar dinheiro de sua conta.",
[4] = "'transferir' para transferir dinheiro para uma outra conta. Comando: transfer,quantia,nome",
[5] = "'sair' ou 'exit' para sair.",
}
]]>

-----------------------------------------------------------------------
domodlib('caixa')
if getPlayerStorageValue(cid, stor) ~= -1 then return true
elseif itemEx.itemid ~= caixa_id then
doPlayerSendCancel(cid, "Você só pode usar esse item em um caixa eletrônico.") return true
end

setPlayerStorageValue(cid, stor, 1)
doPlayerSetNoMove(cid, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Caixa Eletrônico: Olá! Digite !caixa + um dos parâmetros abaixo:")
for a, b in ipairs(msgs) do
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Caixa Eletrônico: "..b.."")
end
return true
]]>

-----------------------------------------------------------------------
domodlib('caixa')
t = string.explode(param, ",")

if getPlayerStorageValue(cid, stor) ~= 1 then return true end
if t[1] == "balance" or t[1] == "saldo" then
if t[2] then return true end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Caixa Eletrônico: Você possui "..getPlayerBalance(cid).." gold coins em sua conta bancária.")
elseif t[1] == "deposit" or t[1] == "depositar" then
if not t[2] or not tonumber(t[2]) or t[3] then
doPlayerSendCancel(cid, "Incorrect params.") return true
elseif not doPlayerDepositMoney(cid, tonumber(t[2])) then
doPlayerSendCancel(cid, "Você não possui essa quantia em dinheiro.") return true
end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Caixa Eletrônico: Você depositou "..t[2].." gold coins em sua conta. Seu saldo agora é de "..getPlayerBalance(cid).." gold coins.")
elseif t[1] == "withdraw" or t[1] == "sacar" then
if not t[2] or not tonumber(t[2]) or t[3] then
doPlayerSendCancel(cid, "Incorrect params.") return true
elseif getPlayerBalance(cid) < tonumber(t[2]) then
doPlayerSendCancel(cid, "Você não possui essa quantia de dinheiro em sua conta.") return true
end

doPlayerWithdrawMoney(cid, tonumber(t[2]))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Caixa Eletrônico: Você sacou "..t[2].." gold coins de sua conta. Seu saldo agora é de "..getPlayerBalance(cid).." gold coins.")
elseif t[1] == "transfer" or t[1] == "transferir" then
if not t[2] or not tonumber(t[2]) or not t[3] or not tostring(t[3]) or t[4] then
doPlayerSendCancel(cid, "Incorrect params.") return true
elseif getPlayerBalance(cid) < tonumber(t[2]) then
doPlayerSendCancel(cid, "Você não possui essa quantia de dinheiro em sua conta.") return true
elseif not playerExists(t[3]) then
doPlayerSendCancel(cid, "O player "..t[3].." não existe.") return true
end

doPlayerTransferMoneyTo(cid, t[3], tonumber(t[2]))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Caixa Eletrônico: Você transferiu "..t[2].." gold coins de sua conta para "..t[3]..". Seu saldo agora é de "..getPlayerBalance(cid).." gold coins.")
elseif t[1] == "trocar gold" then
if not t[2] or not tonumber(t[2]) or t[3] then
doPlayerSendCancel(cid, "Incorrect params. Specify the number of platinum coins you want to get.") return true
elseif not doPlayerRemoveItem(cid, 2148, (t[2]*100)) then
doPlayerSendCancel(cid, "Você não possui "..(t[2]*100).." gold coins.") return true
end

doPlayerAddItem(cid, 2152, t[2])
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Caixa Eletrônico: Você trocou "..(t[2]*100).." gold coins por "..t[2].." platinum coins.")
elseif t[1] == "trocar platinum" then
if t[2] == "gold" then
if not t[3] or not tonumber(t[3]) or t[4] then
doPlayerSendCancel(cid, "Incorrect params. Specify the number of platinum coins you want to change to gold coins.") return true
elseif not doPlayerRemoveItem(cid, 2152, tonumber(t[3])) then
doPlayerSendCancel(cid, "Você não possui "..t[3].." platinum coins.") return true
end

doPlayerAddItem(cid, 2148, tonumber(t[3]*100))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Caixa Eletrônico: Você trocou "..t[3].." platinum coins por "..(t[3]*100).." gold coins.")
elseif t[2] == "crystal" then
if not t[3] or not tonumber(t[3]) or t[4] then
doPlayerSendCancel(cid, "Incorrect params. Specify the number of crystal coins you want to get.") return true
elseif not doPlayerRemoveItem(cid, 2152, tonumber(t[3]*100)) then
doPlayerSendCancel(cid, "Você não possui "..(t[3]*100).." platinum coins.") return true
end

doPlayerAddItem(cid, 2160, tonumber(t[3]))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Caixa Eletrônico: Você trocou "..(t[3]*100).." platinum coins por "..t[3].." crystal coins.")
else
return doPlayerSendCancel(cid, "Incorrect params. Utilize o comando assim: trocar platinum,gold ou crystal,quantia")
end
elseif t[1] == "trocar crystal" then
if not t[2] or not tonumber(t[2]) or t[3] then
doPlayerSendCancel(cid, "Incorrect params. Specify the number of crystal coins you want to change to platinum coins.") return true
elseif not doPlayerRemoveItem(cid, 2160, tonumber(t[2])) then
doPlayerSendCancel(cid, "Você não possui "..t[2].." crystal coins.") return true
end

doPlayerAddItem(cid, 2152, tonumber(t[2]*100))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Caixa Eletrônico: Você trocou "..t[2].." crystal coins por "..(t[2]*100).." platinum coins.")
elseif t[1] == "sair" or t[1] == "exit" then
doTeleportThing(cid, bank_pos)
setPlayerStorageValue(cid, stor, -1)
doPlayerSetNoMove(cid, false)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Caixa Eletrônico: Obrigado pela visita!")
else return doPlayerSendCancel(cid, "Incorrect Params.") end
return true
]]>

Configurando o seu Script!

caixa_id = 1354 -- Id do Caixa Eletrônico
bank_pos = {x = 78, y = 39, z = 7} -- Position da entrada do banco

E aqui você configura o ID do cartão de crédito:

<action itemid="2556" event="script"><![CDATA[

No lugar de 2556, você coloca o ID do cartão.

Observação

- Para usar o caixa eletrônico, você tem que dar Use With nele com o cartão.

Editado por XxBrUnNXx
Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

cara meu serv e 9.6 e n funciono teria como mandar o script em lua e a tag xml?

 

e se possível sem o negocio do cartão bastando dar use na pedra

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
×
×
  • Criar Novo...