so i have banking installed but my credit card say underfind
Does anyone get big es:GetPlayerFromID errors ? It is anoying as fuck
Import 'db.sql' into EssentialMode database
CouchDB
How to operate it?
You want this version for couchDB and essentialmode 3.+
CouchDB, Not Mysql.
How do I import this SQL
Just read the @Manny post
(You canât import sql file to couchdb, this process is automatic with couchdb version)
Automatic from MySql to couchdb? What about the previous ones that relied on MySQL?
MySQL isnât the same thing than CouchDB.
Just follow @Mannyâs link
If you already have some data, follow this guide : [How-to] Migrate data from MySQL to CouchDB
I want to install some plugins, but what about some plug-ins that rely on Mysql?
Is it possible to make it work, without EssentialMod?
Has anyone converted this to work with Async that would be willing to share their files?
Thank you in advanced if you do!
Jerry
Yes, I have. But for some reason before and after i did this there is a massive exploit⌠Anyone have a fix for it, im sure you know what im talking about, Rather not say it thou incase its a common issue
aSync conversion.
replace all of server.lua with
require "resources/mysql-async/lib/MySQL"
-- HELPER FUNCTIONS
function bankBalance(player)
local result = MySQL.Sync.fetchAll("SELECT * FROM users WHERE identifier = @name", {['@name'] = player})
return tonumber(result[1].bankbalance)
end
---------
--FineScript
---------
function walletBalance(player)
local result = MySQL.Sync.fetchAll("SELECT * FROM users WHERE identifier = @name", {['@name'] = player})
return tonumber(result[1].money)
end
---------
--FineScript2
---------
function withdrawWallet(player, amount)
local walletbalance = walletBalance(player)
local new_balance = walletbalance - amount
MySQL.Async.execute("UPDATE users SET `money`=@value WHERE identifier = @identifier", {['@value'] = new_balance, ['@identifier'] = player})
end
function deposit(player, amount)
local bankbalance = bankBalance(player)
local new_balance = bankbalance + amount
MySQL.Async.execute("UPDATE users SET `bankbalance`=@value WHERE identifier = @identifier", {['@value'] = new_balance, ['@identifier'] = player})
end
function withdraw(player, amount)
local bankbalance = bankBalance(player)
local new_balance = bankbalance - amount
MySQL.Async.execute("UPDATE users SET `bankbalance`=@value WHERE identifier = @identifier", {['@value'] = new_balance, ['@identifier'] = player})
end
-- Check Bank Balance
TriggerEvent('es:addCommand', 'checkbalance', function(source, args, user)
TriggerEvent('es:getPlayerFromId', source, function(user)
local player = user.identifier
local bankbalance = bankBalance(player)
TriggerClientEvent("es_freeroam:notify", source, "CHAR_BANK_MAZE", 1, "Maze Bank", false, "Your current account balance: ~g~$".. bankbalance)
TriggerClientEvent("banking:updateBalance", source, bankbalance)
CancelEvent()
end)
end)
-- Bank Deposit
TriggerEvent('es:addCommand', 'deposit', function(source, args, user)
local amount = ""
local player = user.identifier
for i=1,#args do
amount = args[i]
end
TriggerClientEvent('bank:deposit', source, amount)
end)
RegisterServerEvent('bank:deposit')
AddEventHandler('bank:deposit', function(amount)
TriggerEvent('es:getPlayerFromId', source, function(user)
if(tonumber(amount) <= tonumber(user:money)) then
user:removeMoney((amount))
local player = user.identifier
deposit(player, amount)
local new_balance = bankBalance(player)
TriggerClientEvent("es_freeroam:notify", source, "CHAR_BANK_MAZE", 1, "Maze Bank", false, "Deposited: ~g~$".. amount .." ~n~~s~New Balance: ~g~$" .. new_balance)
TriggerClientEvent("banking:updateBalance", source, new_balance)
TriggerClientEvent("banking:addBalance", source, amount)
CancelEvent()
else
TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Not enough cash!^0")
CancelEvent()
end
end)
end)
-- Bank Withdraw
TriggerEvent('es:addCommand', 'withdraw', function(source, args, user)
local amount = ""
local player = user.identifier
for i=1,#args do
amount = args[i]
end
TriggerClientEvent('bank:withdraw', source, amount)
end)
RegisterServerEvent('bank:withdraw')
AddEventHandler('bank:withdraw', function(amount)
TriggerEvent('es:getPlayerFromId', source, function(user)
local player = user.identifier
local bankbalance = bankBalance(player)
if(tonumber(amount) <= tonumber(bankbalance)) then
withdraw(player, amount)
user:addMoney((amount))
local new_balance = bankBalance(player)
TriggerClientEvent("es_freeroam:notify", source, "CHAR_BANK_MAZE", 1, "Maze Bank", false, "Withdrew: ~g~$".. amount .." ~n~~s~New Balance: ~g~$" .. new_balance)
TriggerClientEvent("banking:updateBalance", source, new_balance)
TriggerClientEvent("banking:removeBalance", source, amount)
CancelEvent()
else
TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Not enough money in account!^0")
CancelEvent()
end
end)
end)
RegisterServerEvent('bank:withdrawAmende')
AddEventHandler('bank:withdrawAmende', function(amount)
TriggerEvent('es:getPlayerFromId', source, function(user)
local player = user.identifier
local bankbalance = bankBalance(player)
withdraw(player, amount)
local new_balance = bankBalance(player)
TriggerClientEvent("es_freeroam:notify", source, "CHAR_BANK_MAZE", 1, "Maze Bank", false, "New Balance: ~g~$" .. new_balance)
TriggerClientEvent("banking:updateBalance", source, new_balance)
TriggerClientEvent("banking:removeBalance", source, amount)
CancelEvent()
end)
end)
-- Bank Transfer
-- TriggerEvent('es:addCommand', 'transfer', function(source, args, user)
-- local fromPlayer
-- local toPlayer
-- local amount
-- if (args[2] ~= nil and tonumber(args[3]) > 0) then
-- fromPlayer = tonumber(source)
-- toPlayer = tonumber(args[2])
-- amount = tonumber(args[3])
-- TriggerClientEvent('bank:transfer', source, fromPlayer, toPlayer, amount)
-- else
-- TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Use format /transfer [id] [amount]^0")
-- return false
-- end
-- end)
-- RegisterServerEvent('bank:transfer')
-- AddEventHandler('bank:transfer', function(fromPlayer, toPlayer, amount)
-- TriggerEvent('es:getPlayerFromId', fromPlayer, function(user)
-- local player = user.identifier
-- local bankbalance = bankBalance(player)
-- if(tonumber(amount) <= tonumber(bankbalance)) then
-- withdraw(player, amount)
-- local new_balance = bankBalance(player)
-- TriggerClientEvent("es_freeroam:notify", source, "CHAR_BANK_MAZE", 1, "Maze Bank", false, "Transferred: ~r~-$".. amount .." ~n~~s~New Balance: ~g~$" .. new_balance)
-- TriggerClientEvent("banking:updateBalance", source, new_balance)
-- TriggerClientEvent("banking:removeBalance", source, amount)
-- TriggerEvent('es:getPlayerFromId', toPlayer, function(user2)
-- local recipient = user2.identifier
-- deposit(recipient, amount)
-- new_balance2 = bankBalance(recipient)
-- TriggerClientEvent("es_freeroam:notify", toPlayer, "CHAR_BANK_MAZE", 1, "Maze Bank", false, "Received: ~g~$".. amount .." ~n~~s~New Balance: ~g~$" .. new_balance2)
-- TriggerClientEvent("banking:updateBalance", toPlayer, new_balance2)
-- TriggerClientEvent("banking:addBalance", source, amount)
-- CancelEvent()
-- end)
-- CancelEvent()
-- else
-- TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Not enough money in account!^0")
-- CancelEvent()
-- end
-- end)
-- end)
-- Give Cash
TriggerEvent('es:addCommand', 'givecash', function(source, args, user)
local fromPlayer
local toPlayer
local amount
if (args[2] ~= nil and tonumber(args[3]) > 0) then
fromPlayer = tonumber(source)
toPlayer = tonumber(args[2])
amount = tonumber(args[3])
TriggerClientEvent('bank:givecash', source, toPlayer, amount)
else
TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Use format /givecash [id] [amount]^0")
return false
end
end)
RegisterServerEvent('bank:givecash')
AddEventHandler('bank:givecash', function(toPlayer, amount)
TriggerEvent('es:getPlayerFromId', source, function(user)
if (tonumber(user.money) >= tonumber(amount)) then
local player = user.identifier
user:removeMoney(amount)
TriggerEvent('es:getPlayerFromId', toPlayer, function(recipient)
recipient:addMoney(amount)
TriggerClientEvent("es_freeroam:notify", source, "CHAR_BANK_MAZE", 1, "Maze Bank", false, "Gave cash: ~r~-$".. amount .." ~n~~s~Wallet: ~g~$" .. user.money)
TriggerClientEvent("es_freeroam:notify", toPlayer, "CHAR_BANK_MAZE", 1, "Maze Bank", false, "Received cash: ~g~$".. amount .." ~n~~s~Wallet: ~g~$" .. recipient.money)
end)
else
if (tonumber(user.money) < tonumber(amount)) then
TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Not enough money in wallet!^0")
CancelEvent()
end
end
end)
end)
AddEventHandler('es:playerLoaded', function(source)
TriggerEvent('es:getPlayerFromId', source, function(user)
local player = user.identifier
local bankbalance = bankBalance(player)
TriggerClientEvent("banking:updateBalance", source, bankbalance)
end)
end)
---
--fines
---
RegisterServerEvent("bank:loseCash")
AddEventHandler("bank:loseCash", function(amount)
TriggerEvent('es:getPlayerFromId', source, function(user)
local rounded = round(tonumber(amount), 0)
local player = user.identifier
local bankbalance = bankBalance(player)
local walletbalance = walletBalance(player)
if(tonumber(rounded) <= tonumber(bankbalance)) then
withdraw(player, rounded)
local new_balance = bankBalance(player)
TriggerClientEvent("es_freeroam:notify", source, "CHAR_BANK_MAZE", 1, "Maze Bank", false, "Fined: ~g~$".. rounded .." ~n~~s~New Bank Balance: ~g~$" .. new_balance)
TriggerClientEvent("banking:updateBalance", source, new_balance)
TriggerClientEvent("banking:removeBalance", source, rounded)
CancelEvent()
elseif (tonumber(rounded) <= tonumber(walletbalance)) then
withdrawWallet(player, rounded)
user:removeMoney((amount))
local new_balance = walletBalance(player)
TriggerClientEvent("es_freeroam:notify", source, "CHAR_BANK_MAZE", 1, "Maze Bank", false, "Fined: ~g~$".. rounded .." ~n~~s~New Wallet Balance: ~g~$" .. new_balance)
--TriggerClientEvent("banking:updateBalance", source, new_balance)
CancelEvent()
elseif (tonumber(rounded) <= (tonumber(walletbalance) + tonumber(bankbalance))) then
local remaining_fine = tonumber(rounded) - bankbalance
withdraw(player, bankbalance)
withdrawWallet(player, remaining_fine)
TriggerClientEvent("banking:updateBalance", source, new_balance)
TriggerClientEvent("banking:removeBalance", source, rounded)
CancelEvent()
else
TriggerClientEvent('chatMessage', source, "", {0, 0, 200}, "^1Not enough money in account!^0")
CancelEvent()
end
end)
end)
Wow it look really good.
How to work with current EM Version ?
Hey Manny, but that is sql version that supports? i have EM with CouchDB Version.
No, read it, it is for essentialmode 3.0+
But in what file to connect for CouchDB? i canât see it
Just download the one i linked to you, then add it to resources like you would with anything else, then load into the server.