diff --git a/README.md b/README.md index e309fe9..b5daabc 100644 --- a/README.md +++ b/README.md @@ -174,12 +174,4 @@ FineJobList = true, -- "true" to use nearby player list feature in the cash regi - `BankBlips` Enable this if you disabled qb-banking and need bank locations - `ATMBlips` Enable this if you are a pyscho and need every ATM to be on the map too - `Gabz` Enable to change to Gabz Bank locations, this corrects the ATM/Bank Cashier + Ticket Cash in ---- -## Support for other scripts -### Renewed-Banking - - Support for renewed banking added - - Toggle `RenewedBanking` in the config.lua to enable this - -### AP-Goverment -- Support for AP-Goverment Tax on payments -- Toggle `ApGov` in the config.lua to enable this \ No newline at end of file +--- \ No newline at end of file diff --git a/client/atms.lua b/client/atms.lua index 4ee2ca8..d07f644 100644 --- a/client/atms.lua +++ b/client/atms.lua @@ -104,6 +104,17 @@ CreateThread(function() end end) +local function PlayATMAnimation(animation) + if animation == 'enter' then + + end + if animation == 'exit' then + loadAnimDict('amb@prop_human_atm@male@exit') + TaskPlayAnim(PlayerPedId(), 'amb@prop_human_atm@male@exit', "exit", 1.0,-1.0, 3000, 1, 1, true, true, true) + unloadAnimDict('amb@prop_human_atm@male@enter') + end +end + RegisterNetEvent('jim-payments:Client:ATM:use', function(data) --this grabs all the info from names to savings account numbers in the databases local p = promise.new() diff --git a/config.lua b/config.lua index 89a42d8..4b70f97 100644 --- a/config.lua +++ b/config.lua @@ -1,4 +1,4 @@ -print("^2Jim^7-^2Payments ^7v^42^7.^48^7.^41 ^7- ^2Payments Script by ^1Jimathy^7") +print("^2Jim^7-^2Payments v^42^7.^48 ^7- ^2Payments Script by ^1Jimathy^7") -- If you need support I now have a discord available, it helps me keep track of issues and give better support. @@ -8,12 +8,11 @@ Config = { Lan = "en", Debug = false, Notify = "qb", - --------------------------------- -- Default Job Payment Systems -- --------------------------------- - Manage = true, -- "true" if using qb-management - -- "false" if using qb-bossmenu + Manage = true, -- "true" if using qb-management + -- "false" if using qb-bossmenu List = true, -- "true" to use nearby player list feature in the cash registers, "false" for manual id entry PaymentRadius = 15, -- This is how far the playerlist will check for nearby players (based on the person charging) @@ -89,7 +88,6 @@ Config = { FineJobConfirmation = false, --"true" makes it so fines need confirmation, "false" skips this ands just removes the money FineJobList = true, -- "true" to use nearby player list feature in the cash registers, "false" for manual id entry - RenewedBanking = false, -- Enable if using renewed banking ApGov = false, -- Add support for AP-Goverment Tax --------------------- -- Banking Systems -- diff --git a/fxmanifest.lua b/fxmanifest.lua index 85665ae..6f9fa0b 100644 --- a/fxmanifest.lua +++ b/fxmanifest.lua @@ -1,10 +1,9 @@ name "Jim-Payments" author "Jimathy" -version "v2.8.1" +version "v2.8" description "Payment Script By Jimathy" fx_version "cerulean" game "gta5" -lua54 'yes' dependencies { 'qb-input', 'qb-target', } client_scripts { 'client/*.lua', 'locales/*.lua' } diff --git a/server/atmserver.lua b/server/atmserver.lua index 728cd7d..c3ea5ef 100644 --- a/server/atmserver.lua +++ b/server/atmserver.lua @@ -43,7 +43,7 @@ RegisterServerEvent('jim-payments:server:ATM:use', function(amount, billtype, ba if billtype == "withdraw" then if savbal >= amount then - savbal -= amount + savbal = savbal - amount Player.Functions.AddMoney('bank', amount) triggerNotify(nil, "$"..cv(amount)..Loc[Config.Lan].success["draw_save"], "success", src) MySQL.Async.execute('UPDATE bank_accounts SET amount = ? WHERE citizenid = ? AND record_id = ?', { savbal, Player.PlayerData.citizenid, getSavingsAccount[1].record_id }, function(success) @@ -54,7 +54,7 @@ RegisterServerEvent('jim-payments:server:ATM:use', function(amount, billtype, ba end elseif billtype == "deposit" then if amount < bankB then - savbal += amount + savbal = savbal + amount Player.Functions.RemoveMoney('bank', amount) triggerNotify(nil, "$"..cv(amount)..Loc[Config.Lan].success["depos_save"], "success", src) MySQL.Async.execute('UPDATE bank_accounts SET amount = ? WHERE citizenid = ? AND record_id = ?', { savbal, Player.PlayerData.citizenid, getSavingsAccount[1].record_id }, function(success) @@ -108,7 +108,7 @@ RegisterServerEvent('jim-payments:server:ATM:use', function(amount, billtype, ba triggerNotify(nil, Loc[Config.Lan].success["recieved"]..cv(amount)..Loc[Config.Lan].success["from"]..tostring(Player.PlayerData.job.label)..Loc[Config.Lan].success["account"], "success", Reciever.PlayerData.source) else local RecieverMoney = json.decode(result[1].money) - RecieverMoney.bank += amount + RecieverMoney.bank = (RecieverMoney.bank + amount) MySQL.Async.execute('UPDATE players SET money = ? WHERE citizenid = ?', {json.encode(RecieverMoney), result[1].citizenid}) end elseif not result[1] then triggerNotify(nil, Loc[Config.Lan].error["error_start"]..baccount..Loc[Config.Lan].error["error_end"], "error", src) @@ -160,7 +160,7 @@ RegisterServerEvent('jim-payments:server:ATM:use', function(amount, billtype, ba triggerNotify(nil, Reciever.PlayerData.source, Loc[Config.Lan].success["recieved"]..cv(amount)..Loc[Config.Lan].success["from"]..tostring(Player.PlayerData.gang.label)..Loc[Config.Lan].success["account"], "success", Reciever.PlayerData.source) else local RecieverMoney = json.decode(result[1].money) - RecieverMoney.bank += amount + RecieverMoney.bank = (RecieverMoney.bank + amount) MySQL.Async.execute('UPDATE players SET money = ? WHERE citizenid = ?', {json.encode(RecieverMoney), result[1].citizenid}) end elseif not result[1] then triggerNotify(nil, Loc[Config.Lan].error["error_start"]..baccount..Loc[Config.Lan].error["error_end"], "error", src) @@ -192,7 +192,7 @@ RegisterServerEvent('jim-payments:server:ATM:use', function(amount, billtype, ba triggerNotify(nil, Loc[Config.Lan].success["recieved"]..cv(amount)..Loc[Config.Lan].success["from"]..Player.PlayerData.charinfo.firstname.." "..Player.PlayerData.charinfo.lastname, "success", Reciever.PlayerData.source) else local RecieverMoney = json.decode(result[1].money) - RecieverMoney.bank += amount + RecieverMoney.bank = (RecieverMoney.bank + amount) MySQL.Async.execute('UPDATE players SET money = ? WHERE citizenid = ?', {json.encode(RecieverMoney), result[1].citizenid}) end elseif not result[1] then triggerNotify(nil, Loc[Config.Lan].error["error_start"]..baccount..Loc[Config.Lan].error["error_end"], "error", src) diff --git a/server/server.lua b/server/server.lua index 7354670..a27bf00 100644 --- a/server/server.lua +++ b/server/server.lua @@ -23,24 +23,14 @@ RegisterServerEvent('jim-payments:Tickets:Give', function(data, biller, gang) local takecomm = math.floor(tonumber(data.amount) * Config.Jobs[data.society].Commission) if biller then -- If this is found, it ISN'T a phone payment, so add money to society here if gang then - if Config.Manage then - if RenewedBanking then exports['Renewed-Banking']:addAccountMoney(tostring(biller.PlayerData.gang.name), data.amount - takecomm) - if Config.Debug then print("^5Debug^7: ^3QB^7-^3Management^7(^3Gang^7): ^2Adding ^7$^6"..data.amount - takecomm.." ^2to account ^7'^6"..tostring(biller.PlayerData.gang.name).."^7' ($^6"..exports['Renewed-Banking']:getAccountMoney(biller.PlayerData.gang.name).."^7)") end - else - exports["qb-management"]:AddGangMoney(tostring(biller.PlayerData.gang.name), data.amount - takecomm) - if Config.Debug then print("^5Debug^7: ^3Renewed-Banking^7(^3Gang^7): ^2Adding ^7$^6"..data.amount - takecomm.." ^2to account ^7'^6"..tostring(biller.PlayerData.gang.name).."^7' ($^6"..exports["qb-management"]:GetGangAccount(biller.PlayerData.gang.name).."^7)") end - end + if Config.Manage then exports["qb-management"]:AddGangMoney(tostring(biller.PlayerData.gang.name), data.amount - takecomm) + if Config.Debug then print("^5Debug^7: ^3QB^7-^3Management^7(^3Gang^7): ^2Adding ^7$^6"..data.amount - takecomm.." ^2to account ^7'^6"..tostring(biller.PlayerData.gang.name).."^7' ($^6"..exports["qb-management"]:GetGangAccount(biller.PlayerData.gang.name).."^7)") end else TriggerEvent("qb-gangmenu:server:addAccountMoney", tostring(biller.PlayerData.gang.name), data.amount - takecomm) if Config.Debug then print("^5Debug^7: ^3QB^7-^3GangMenu^7: ^2Adding ^7$^6"..data.amount - takecomm.." ^2to account ^7'^6"..tostring(biller.PlayerData.gang.name).."^7'") end end elseif not gang then - if Config.Manage then - if RenewedBanking then exports['Renewed-Banking']:addAccountMoney(tostring(biller.PlayerData.job.name), data.amount - takecomm) - if Config.Debug then print("^5Debug^7: ^3Renewed-Banking^7(^3Job^7): ^2Adding ^7$^6"..data.amount - takecomm.." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name).."^7' ($^6"..exports['Renewed-Banking']:getAccountMoney(biller.PlayerData.job.name).."^7)") end - else - exports["qb-management"]:AddMoney(tostring(biller.PlayerData.job.name), data.amount - takecomm) - if Config.Debug then print("^5Debug^7: ^3QB-Management^7(^3Job^7): ^2Adding ^7$^6"..data.amount - takecomm.." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name).."^7' ($^6"..exports["qb-management"]:GetAccount(biller.PlayerData.job.name).."^7)") end - end + if Config.Manage then exports["qb-management"]:AddMoney(tostring(biller.PlayerData.job.name), data.amount - takecomm) + if Config.Debug then print("^5Debug^7: ^3QB-Management^7(^3Job^7): ^2Adding ^7$^6"..data.amount - takecomm.." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name).."^7' ($^6"..exports["qb-management"]:GetAccount(biller.PlayerData.job.name).."^7)") end else TriggerEvent("qb-bossmenu:server:addAccountMoney", tostring(biller.PlayerData.job.name), data.amount - takecomm) if Config.Debug then print("^5Debug^7: ^3QB-BossMenu^7: ^2Adding ^7$^6"..data.amount - takecomm.." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name - takecomm).."^7'") end end @@ -95,7 +85,7 @@ RegisterServerEvent('jim-payments:Tickets:Give', function(data, biller, gang) if Config.CommissionAll then for _, v in pairs(QBCore.Functions.GetPlayers()) do local Player = QBCore.Functions.GetPlayer(v) - if Player and Player ~= biller then + if Player ~= nil and Player ~= biller then if Player.PlayerData.job.name == data.society and Player.PlayerData.job.onduty then Player.Functions.AddMoney("bank", math.floor(tonumber(data.amount) * comm)) triggerNotify(nil, Loc[Config.Lan].success["recieved"]..math.floor(tonumber(data.amount) * comm)..Loc[Config.Lan].success["commission"], "success", Player.PlayerData.source) @@ -192,14 +182,11 @@ RegisterServerEvent("jim-payments:server:PolCharge", function(citizen, price) if Config.ApGov then exports['ap-government']:chargeCityTax(billed.PlayerData.source, "Item", price) end if biller.Functions.AddMoney("bank", commission) then if Config.Debug then print("^5Debug^7: ^3PolCharge^7 - ^2Commission of ^7$^6"..commission.." ^2sent to Player^7(^6"..biller.PlayerData.source.."^7)") end end if Config.Manage then - if RenewedBanking then exports['Renewed-Banking']:addAccountMoney(tostring(biller.PlayerData.job.name), (price - commission)) - if Config.Debug then print("^5Debug^7: ^3Renewed-Banking^7(^3Job^7): ^2Adding ^7$^6"..(price - commission).." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name).."^7' ($^6"..exports['Renewed-Banking']:getAccountMoney((biller.PlayerData.job.name).."^7)")) end - else - exports["qb-management"]:AddMoney(tostring(biller.PlayerData.job.name), (price - commission)) - if Config.Debug then print("^5Debug^7: ^3QB-Management^7(^3Job^7): ^2Adding ^7$^6"..(price - takecomm).." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name).."^7' ($^6"..exports["qb-management"]:GetAccount(biller.PlayerData.job.name).."^7)") end - end - else TriggerEvent("qb-bossmenu:server:addAccountMoney", tostring(biller.PlayerData.job.name), price - takecomm) - if Config.Debug then print("^5Debug^7: ^3QB^7-^3Bossmenu^7(^3Job^7): ^2Adding ^7$^6"..(price - commission).." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name).."^7'") end + exports["qb-management"]:AddMoney(tostring(biller.PlayerData.job.name), (price - commission)) + if Config.Debug then print("^5Debug^7: ^3QB^7-^3Management^7(^3Job^7): ^2Adding ^7$^6"..(price - commission).." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name).."^7' ($^6"..exports["qb-management"]:GetAccount(biller.PlayerData.job.name).."^7)") end + else + TriggerEvent("qb-bossmenu:server:addAccountMoney", tostring(biller.PlayerData.job.name), (price - commission)) + if Config.Debug then print("^5Debug^7: ^3QB^7-^3BossMenu^7: ^2Adding ^7$^6"..(price - commission).." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name).."^7'") end end triggerNotify(nil, billed.PlayerData.charinfo.firstname..Loc[Config.Lan].success["charged"]..(price - commission), "success", src) triggerNotify(nil, Loc[Config.Lan].success["you_charged"]..(price - commission), nil, billed.PlayerData.source) @@ -221,14 +208,11 @@ RegisterServerEvent("jim-payments:server:PolPopup", function(data) triggerNotify(nil, billed.PlayerData.charinfo.firstname..Loc[Config.Lan].success["accepted_pay"]..data.amount..Loc[Config.Lan].success["charge_end"], "success", data.biller) if biller.Functions.AddMoney("bank", commission) then if Config.Debug then print("^5Debug^7: ^3PolCharge^7 - ^2Commission^2 of ^7$^6"..commission.." ^2sent to Player^7(^6"..biller.PlayerData.source.."^7)") end end if Config.Manage then - if RenewedBanking then exports['Renewed-Banking']:addAccountMoney(tostring(biller.PlayerData.job.name), data.amount - commission) - if Config.Debug then print("^5Debug^7: ^3Renewed-Banking^7(^3Job^7): ^2Adding ^7$^6"..(data.amount - commission).." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name).."^7' ($^6"..exports['Renewed-Banking']:getAccountMoney((biller.PlayerData.job.name).."^7)")) end - else - exports["qb-management"]:AddMoney(tostring(biller.PlayerData.job.name), data.amount - commission) - if Config.Debug then print("^5Debug^7: ^3QB-Management^7(^3Job^7): ^2Adding ^7$^6"..data.amount - takecomm.." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name).."^7' ($^6"..exports["qb-management"]:GetAccount(biller.PlayerData.job.name).."^7)") end - end - else TriggerEvent("qb-bossmenu:server:addAccountMoney", tostring(biller.PlayerData.job.name), data.amount - takecomm) - if Config.Debug then print("^5Debug^7: ^3QB^7-^3Bossmenu^7(^3Job^7): ^2Adding ^7$^6"..(data.amount - commission).." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name).."^7'") end + exports["qb-management"]:AddMoney(tostring(biller.PlayerData.job.name), data.amount - commission) + if Config.Debug then print("^5Debug^7: ^3QB^7-^3Management^7(^3Job^7): ^2Adding ^7$^6"..data.amount - commission.." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name).."^7' ($^6"..exports["qb-management"]:GetAccount(biller.PlayerData.job.name).."^7)") end + else + TriggerEvent("qb-bossmenu:server:addAccountMoney", tostring(biller.PlayerData.job.name), data.amount - commission) + if Config.Debug then print("^5Debug^7: ^3QB^7-^3BossMenu^7: ^2Adding ^6$^7"..data.amount - commission.." ^2to account ^7'^6"..tostring(biller.PlayerData.job.name).."^7'") end end else triggerNotify(nil, Loc[Config.Lan].error["declined_payment"], nil, src) diff --git a/shared/shared.lua b/shared/shared.lua index 764347f..68f9679 100644 --- a/shared/shared.lua +++ b/shared/shared.lua @@ -5,7 +5,7 @@ local time = 1000 function loadModel(model) if not HasModelLoaded(model) then if Config.Debug then print("^5Debug^7: ^2Loading Model^7: '^6"..model.."^7'") end while not HasModelLoaded(model) do - if time > 0 then time -= 1 RequestModel(model) + if time > 0 then time = time - 1 RequestModel(model) else time = 1000 print("^5Debug^7: ^3LoadModel^7: ^2Timed out loading model ^7'^6"..model.."^7'") break end Wait(10) @@ -83,11 +83,11 @@ end function triggerNotify(title, message, type, src) if Config.Notify == "okok" then - if not src then exports['okokNotify']:Alert(title, message, 6000, type or 'info') - else TriggerClientEvent('okokNotify:Alert', src, title, message, 6000, type or 'info') end + if not src then exports['okokNotify']:Alert(title, message, 6000, type) + else TriggerClientEvent('okokNotify:Alert', src, title, message, 6000, type) end elseif Config.Notify == "qb" then - if not src then TriggerEvent("QBCore:Notify", message, "primary") - else TriggerClientEvent("QBCore:Notify", src, message, "primary") end + if not src then TriggerEvent("QBCore:Notify", message, type) + else TriggerClientEvent("QBCore:Notify", src, message, type) end elseif Config.Notify == "t" then if not src then exports['t-notify']:Custom({title = title, style = type, message = message, sound = true}) else TriggerClientEvent('t-notify:client:Custom', src, { style = type, duration = 6000, title = title, message = message, sound = true, custom = true}) end @@ -105,11 +105,11 @@ function pairsByKeys(t) for n in pairs(t) do a[#a+1] = n end table.sort(a) local i = 0 - local iter = function() i += 1 if a[i] == nil then return nil else return a[i], t[a[i]] end end + local iter = function() i = i + 1 if a[i] == nil then return nil else return a[i], t[a[i]] end end return iter end -function countTable(table) local i = 0 for keys in pairs(table) do i += 1 end return i end +function countTable(table) local i = 0 for keys in pairs(table) do i = i + 1 end return i end function cv(amount) local formatted = amount