Advertisement
Guest User

server.lua

a guest
Feb 19th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.07 KB | None | 0 0
  1. local balances = {}
  2.  
  3. AddEventHandler('es:playerLoaded', function(source, user)
  4.     balances[source] = user.getBank()
  5.  
  6.     TriggerClientEvent('banking:updateBalance', source, user.getBank())
  7. end)
  8.  
  9. RegisterServerEvent('playerSpawned')
  10. AddEventHandler('playerSpawned', function()
  11.   TriggerEvent('es:getPlayerFromId', source, function(user)
  12.     balances[source] = user.getBank()
  13.  
  14.     TriggerClientEvent('banking:updateBalance', source, user.getBank())
  15.   end)
  16. end)
  17.  
  18. AddEventHandler('playerDropped', function()
  19.   balances[source] = nil
  20. end)
  21.  
  22. -- HELPER FUNCTIONS
  23. function bankBalance(player)
  24.   return exports.essentialmode:getPlayerFromId(player).getBank()
  25. end
  26.  
  27. function deposit(player, amount)
  28.   local bankbalance = bankBalance(player)
  29.   local new_balance = bankbalance + math.abs(amount)
  30.   balances[player] = new_balance
  31.  
  32.   local user = exports.essentialmode:getPlayerFromId(player)
  33.   TriggerClientEvent("banking:updateBalance", source, new_balance)
  34.   user.addBank(math.abs(amount))
  35.   user.removeMoney(math.abs(amount))
  36. end
  37.  
  38. function withdraw(player, amount)
  39.   local bankbalance = bankBalance(player)
  40.   local new_balance = bankbalance - math.abs(amount)
  41.   balances[player] = new_balance
  42.  
  43.   local user = exports.essentialmode:getPlayerFromId(player)
  44.   TriggerClientEvent("banking:updateBalance", source, new_balance)
  45.   user.removeBank(math.abs(amount))
  46.   user.addMoney(math.abs(amount))
  47. end
  48.  
  49. function round(num, numDecimalPlaces)
  50.   local mult = 10^(numDecimalPlaces or 0)
  51.   return math.abs(math.floor(num * mult + 0.5) / mult)
  52. end
  53.  
  54. local notAllowedToDeposit = {}
  55.  
  56. AddEventHandler('bank:addNotAllowed', function(pl)
  57.   notAllowedToDeposit[pl] = true
  58.  
  59.   local savedSource = pl
  60.   SetTimeout(300000, function()
  61.     notAllowedToDeposit[savedSource] = nil
  62.   end)
  63. end)
  64.  
  65. -- Bank Deposit
  66.  
  67. RegisterServerEvent('bank:deposit')
  68. AddEventHandler('bank:deposit', function(amount)
  69.   if not amount then return end
  70.  
  71.   TriggerEvent('es:getPlayerFromId', source, function(user)
  72.     if notAllowedToDeposit[source] == nil then
  73.       local rounded = math.ceil(tonumber(amount))
  74.       if(string.len(rounded) >= 9) then
  75.         TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Valor muito alto^0")
  76.       else
  77.         if(rounded <= user.getMoney()) then
  78.           TriggerClientEvent("banking:updateBalance", source, (user.getBank() + rounded))
  79.           TriggerClientEvent("banking:addBalance", source, rounded)
  80.          
  81.           deposit(source, rounded)
  82.           local new_balance = user.getBank()
  83.         else
  84.           TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Não há dinheiro suficiente!^0")
  85.         end
  86.       end
  87.     else
  88.         TriggerClientEvent('es_rp:notify', source, "~r~Você não pode depositar dinheiro que foi roubado recentemente, aguarde 5 minutos.")
  89.     end
  90.   end)
  91. end)
  92.  
  93.  
  94. RegisterServerEvent('bank:withdraw')
  95. AddEventHandler('bank:withdraw', function(amount)
  96.   if not amount then return end
  97.  
  98.   TriggerEvent('es:getPlayerFromId', source, function(user)
  99.       local rounded = round(tonumber(amount), 0)
  100.       if(string.len(rounded) >= 9) then
  101.         TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Valor muito alto^0")
  102.       else
  103.         local bankbalance = user.getBank()
  104.         if(tonumber(rounded) <= tonumber(bankbalance)) then
  105.           TriggerClientEvent("banking:updateBalance", source, (user.getBank() - rounded))
  106.           TriggerClientEvent("banking:removeBalance", source, rounded)
  107.  
  108.           withdraw(source, rounded)
  109.         else
  110.           TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Não há dinheiro suficiente na conta!^0")
  111.         end
  112.       end
  113.   end)
  114. end)
  115.  
  116. RegisterServerEvent('bank:transfer')
  117. AddEventHandler('bank:transfer', function(fromPlayer, toPlayer, amount)
  118.   if tonumber(fromPlayer) == tonumber(toPlayer) then
  119.     TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Não pode transferir para si mesmo^0")
  120.   else
  121.     TriggerEvent('es:getPlayerFromId', fromPlayer, function(user)
  122.         local rounded = round(tonumber(amount), 0)
  123.         if(string.len(rounded) >= 9) then
  124.           TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Valor muito alto^0")
  125.         else
  126.           local bankbalance = user.getBank()
  127.           if(tonumber(rounded) <= tonumber(bankbalance)) then
  128.             TriggerClientEvent("banking:updateBalance", source, (user.getBank() - rounded))
  129.             TriggerClientEvent("banking:removeBalance", source, rounded)
  130.             withdraw(source, rounded)
  131.             TriggerClientEvent("es_freeroam:notify", source, "CHAR_BANK_MAZE", 1, "Maze Bank", false, "Transferido: ~r~-R$".. rounded .." ~n~~s~Novo saldo: ~g~R$" .. new_balance)
  132.             TriggerEvent('es:getPlayerFromId', toPlayer, function(user2)
  133.               TriggerClientEvent("banking:updateBalance", toPlayer, (user2.getBank() + rounded))
  134.               TriggerClientEvent("banking:addBalance", toPlayer, rounded)
  135.                 local recipient = user2.get('identifier')
  136.                 deposit(toPlayer, rounded)
  137.                 new_balance2 = user2.getBank()
  138.             end)
  139.           else
  140.             TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Não há dinheiro suficiente em conta!^0")
  141.           end
  142.         end
  143.     end)
  144.   end
  145. end)
  146.  
  147. RegisterServerEvent('bank:givecash')
  148. AddEventHandler('bank:givecash', function(toPlayer, amount)
  149.     TriggerEvent('es:getPlayerFromId', source, function(user)
  150.         if (tonumber(user.getMoney()) >= tonumber(amount)) then
  151.             TriggerEvent('es:getPlayerFromId', toPlayer, function(recipient)
  152.                 recipient.addMoney(amount)
  153.             end)
  154.         else
  155.             if (tonumber(user.getMoney()) < tonumber(amount)) then
  156.         TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Não há dinheiro suficiente na carteira!^0")
  157.             end
  158.         end
  159.     end)
  160. end)
  161.  
  162. AddEventHandler('es:playerLoaded', function(source)
  163.   TriggerEvent('es:getPlayerFromId', source, function(user)
  164.       local bankbalance = user.getBank()
  165.       TriggerClientEvent("banking:updateBalance", source, bankbalance)
  166.       user.displayBank(bankbalance)
  167.     end)
  168. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement