forked from Simnation/Main
ed
This commit is contained in:
parent
9e0a584816
commit
02dd8bf93c
26 changed files with 0 additions and 6730 deletions
Binary file not shown.
|
@ -1,7 +0,0 @@
|
|||
Hi, thank you for buying okokBanking! :)
|
||||
|
||||
If you need help contact me on discord: okok#3488
|
||||
Discord server: https://discord.gg/okok
|
||||
Docs: https://docs.okokscripts.io/
|
||||
|
||||
-> Installation Guide: https://docs.okokscripts.io/scripts/okokbanking
|
|
@ -1,977 +0,0 @@
|
|||
local QBCore = exports["qb-core"]:GetCoreObject()
|
||||
local PlayerData = {}
|
||||
local trans = {}
|
||||
local societyTrans = {}
|
||||
local societyIdent, societyDays
|
||||
local didAction = false
|
||||
local isBankOpened = false
|
||||
local canAccessSociety = false
|
||||
local society = ''
|
||||
local societyInfo
|
||||
local closestATM, atmPos
|
||||
local playerName, playerBankMoney, playerIBAN, trsIdentifier, allDaysValues, walletMoney
|
||||
local targetOptionsNames = { atm = 'okokBanking:ATM', bank = 'okokBanking:Bank'}
|
||||
local BankZonesId, AtmModels = {}, {}
|
||||
|
||||
function GenerateIBAN()
|
||||
math.randomseed(GetGameTimer())
|
||||
local stringFormat = "%0"..Config.IBANNumbers.."d"
|
||||
local number = math.random(0, 10^Config.IBANNumbers-1)
|
||||
number = string.format(stringFormat, number)
|
||||
local iban = Config.IBANPrefix..number:upper()
|
||||
local isIBanUsed = true
|
||||
local hasChecked = false
|
||||
|
||||
while true do
|
||||
Wait(10)
|
||||
if isIBanUsed and not hasChecked then
|
||||
isIBanUsed = false
|
||||
QBCore.Functions.TriggerCallback("okokBanking:IsIBanUsed", function(isUsed)
|
||||
if isUsed ~= nil then
|
||||
isIBanUsed = true
|
||||
number = math.random(0, 10^Config.IBANNumbers-1)
|
||||
number = string.format("%03d", number)
|
||||
iban = Config.IBANPrefix..number:upper()
|
||||
elseif isUsed == nil then
|
||||
hasChecked = true
|
||||
isIBanUsed = false
|
||||
end
|
||||
canLoop = true
|
||||
end, iban)
|
||||
elseif not isIBanUsed and hasChecked then
|
||||
break
|
||||
end
|
||||
end
|
||||
TriggerServerEvent('okokBanking:SetIBAN', iban)
|
||||
end
|
||||
|
||||
function string.starts(string, start)
|
||||
return string.sub(string, 1, string.len(start)) == start
|
||||
end
|
||||
|
||||
function openBank()
|
||||
local isCreatingSociety = false
|
||||
local hasJob = false
|
||||
local playeJob = QBCore.Functions.GetPlayerData().job
|
||||
local playerGang = QBCore.Functions.GetPlayerData().gang
|
||||
local playerJobName = ''
|
||||
local playerGangName = ''
|
||||
local jobLabel = ''
|
||||
isBankOpened = true
|
||||
TriggerServerEvent('okokBanking:setMenuOpened', isBankOpened)
|
||||
|
||||
canAccessSociety = false
|
||||
|
||||
if playeJob ~= nil or playerGang ~= nil then
|
||||
hasJob = true
|
||||
playerJobName = playeJob.name
|
||||
jobLabel = playeJob.name
|
||||
society = playerJobName
|
||||
playerGangName = playerGang.name
|
||||
end
|
||||
|
||||
QBCore.Functions.TriggerCallback("okokBanking:GetPlayerInfo", function(data)
|
||||
QBCore.Functions.TriggerCallback("okokBanking:GetOverviewTransactions", function(cb, identifier, allDays)
|
||||
for k,v in pairs(Config.Societies) do
|
||||
if playerJobName == v then
|
||||
-- Check if job has configuration in JobBossRanks
|
||||
if Config.JobBossRanks and Config.JobBossRanks[playerJobName] then
|
||||
-- Check for specific ranks first
|
||||
if Config.JobBossRanks[playerJobName].specificRanks and #Config.JobBossRanks[playerJobName].specificRanks > 0 then
|
||||
for _, rank in ipairs(Config.JobBossRanks[playerJobName].specificRanks) do
|
||||
if playeJob.grade.level == rank then
|
||||
canAccessSociety = true
|
||||
print("Boss access granted for " .. playerJobName .. " with specific rank " .. rank)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- If not already granted access and maxRank is enabled, check for highest rank
|
||||
if not canAccessSociety and Config.JobBossRanks[playerJobName].maxRank then
|
||||
-- Get all job grades for this job
|
||||
if QBCore.Shared.Jobs[playerJobName] and QBCore.Shared.Jobs[playerJobName].grades then
|
||||
local jobGrades = QBCore.Shared.Jobs[playerJobName].grades
|
||||
local highestRank = -1
|
||||
|
||||
-- Find the highest rank number
|
||||
for grade, _ in pairs(jobGrades) do
|
||||
local gradeNum = tonumber(grade)
|
||||
if gradeNum and gradeNum > highestRank then
|
||||
highestRank = gradeNum
|
||||
end
|
||||
end
|
||||
|
||||
-- Check if player has the highest rank
|
||||
if playeJob.grade.level == highestRank then
|
||||
canAccessSociety = true
|
||||
print("Boss access granted for " .. playerJobName .. " with highest rank " .. highestRank)
|
||||
else
|
||||
print("Not highest rank for " .. playerJobName .. ", current rank: " .. playeJob.grade.level .. ", highest: " .. highestRank)
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
-- Fallback to original highest rank check if no configuration exists
|
||||
if QBCore.Shared.Jobs[playerJobName] and QBCore.Shared.Jobs[playerJobName].grades then
|
||||
local jobGrades = QBCore.Shared.Jobs[playerJobName].grades
|
||||
local highestRank = -1
|
||||
|
||||
-- Find the highest rank number
|
||||
for grade, _ in pairs(jobGrades) do
|
||||
local gradeNum = tonumber(grade)
|
||||
if gradeNum and gradeNum > highestRank then
|
||||
highestRank = gradeNum
|
||||
end
|
||||
end
|
||||
|
||||
-- Check if player has the highest rank
|
||||
if playeJob.grade.level == highestRank then
|
||||
canAccessSociety = true
|
||||
print("Boss access granted for " .. playerJobName .. " with highest rank " .. highestRank)
|
||||
else
|
||||
print("Not highest rank for " .. playerJobName .. ", current rank: " .. playeJob.grade.level .. ", highest: " .. highestRank)
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif playerGangName == v then
|
||||
if data.isBossGang == true then
|
||||
jobLabel = playerGangName
|
||||
society = playerGangName
|
||||
canAccessSociety = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if canAccessSociety then
|
||||
isCreatingSociety = true
|
||||
local societyIban = Config.IBANPrefix..jobLabel
|
||||
QBCore.Functions.TriggerCallback("okokBanking:SocietyInfo", function(cb)
|
||||
if cb ~= nil then
|
||||
societyInfo = cb
|
||||
isCreatingSociety = false
|
||||
else
|
||||
TriggerServerEvent("okokBanking:CreateSocietyAccount", society, jobLabel, 0, societyIban)
|
||||
Wait(200)
|
||||
while isCreatingSociety do
|
||||
QBCore.Functions.TriggerCallback("okokBanking:SocietyInfo", function(cb)
|
||||
if cb ~= nil then
|
||||
societyInfo = cb
|
||||
isCreatingSociety = false
|
||||
end
|
||||
end, society)
|
||||
Wait(200)
|
||||
end
|
||||
end
|
||||
end, society, societyIban)
|
||||
end
|
||||
|
||||
while isCreatingSociety do
|
||||
Wait(100)
|
||||
end
|
||||
|
||||
isBankOpened = true
|
||||
TriggerServerEvent('okokBanking:setMenuOpened', isBankOpened)
|
||||
trans = cb
|
||||
playerName, playerBankMoney, playerIBAN, trsIdentifier, allDaysValues, walletMoney = data.playerName, data.playerBankMoney, data.playerIBAN, identifier, allDays, data.walletMoney
|
||||
QBCore.Functions.TriggerCallback("okokBanking:GetSocietyTransactions", function(societyTranscb, societyID, societyAllDays)
|
||||
societyIdent = societyID
|
||||
societyDays = societyAllDays
|
||||
societyTrans = societyTranscb
|
||||
if data.playerIBAN ~= nil then
|
||||
if string.starts(data.playerIBAN, Config.IBANPrefix) then
|
||||
if isBankOpened then
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
SendNUIMessage({
|
||||
action = 'bankmenu',
|
||||
playerName = data.playerName,
|
||||
playerSex = data.sex,
|
||||
playerBankMoney = data.playerBankMoney,
|
||||
walletMoney = walletMoney,
|
||||
playerIBAN = data.playerIBAN,
|
||||
db = trans,
|
||||
identifier = trsIdentifier,
|
||||
graphDays = allDaysValues,
|
||||
isInSociety = canAccessSociety,
|
||||
RequireCC = Config.RequireCreditCardForATM,
|
||||
UseSound = Config.UseOkOkBankingSounds,
|
||||
})
|
||||
else
|
||||
GenerateIBAN()
|
||||
Wait(1000)
|
||||
QBCore.Functions.TriggerCallback("okokBanking:GetPlayerInfo", function(data)
|
||||
if isBankOpened then
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
SendNUIMessage({
|
||||
action = 'bankmenu',
|
||||
playerName = data.playerName,
|
||||
playerSex = data.sex,
|
||||
playerBankMoney = data.playerBankMoney,
|
||||
walletMoney = walletMoney,
|
||||
playerIBAN = data.playerIBAN,
|
||||
db = trans,
|
||||
identifier = trsIdentifier,
|
||||
graphDays = allDaysValues,
|
||||
isInSociety = canAccessSociety,
|
||||
RequireCC = Config.RequireCreditCardForATM,
|
||||
})
|
||||
end)
|
||||
end
|
||||
end
|
||||
end, society)
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
CreateThread(function()
|
||||
while QBCore.Functions.GetPlayerData().job == nil do
|
||||
Wait(10)
|
||||
end
|
||||
PlayerData = QBCore.Functions.GetPlayerData()
|
||||
end)
|
||||
|
||||
CreateThread(function()
|
||||
if Config.ShowBankBlips then
|
||||
Wait(2000)
|
||||
for k,v in ipairs(Config.BankLocations)do
|
||||
local blip = AddBlipForCoord(v.x, v.y, v.z)
|
||||
SetBlipSprite(blip, v.blip)
|
||||
SetBlipDisplay(blip, 4)
|
||||
SetBlipScale(blip, v.blipScale)
|
||||
SetBlipColour(blip, v.blipColor)
|
||||
SetBlipAsShortRange(blip, true)
|
||||
BeginTextCommandSetBlipName("STRING")
|
||||
AddTextComponentString(v.blipText)
|
||||
EndTextCommandSetBlipName(blip)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
if Config.UseTargetOnBank then
|
||||
RegisterNetEvent("okokBanking:OpenBank")
|
||||
AddEventHandler("okokBanking:OpenBank", function()
|
||||
if isBankOpened then
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
SendNUIMessage({
|
||||
action = 'loading_data'
|
||||
})
|
||||
Wait(500)
|
||||
openBank()
|
||||
end)
|
||||
|
||||
for k, v in ipairs(Config.BankLocations) do
|
||||
local boxName = targetOptionsNames.bank .. k
|
||||
if v.boxZone then
|
||||
if Config.TargetSystem == 'qb-target' then
|
||||
local zoneId = exports['qb-target']:AddBoxZone(boxName, v.boxZone.pos, v.boxZone.size.x, v.boxZone.size.y, {
|
||||
name = boxName,
|
||||
heading = v.boxZone.rotation,
|
||||
debugPoly = Config.DebugTargetZones,
|
||||
minZ = v.boxZone.pos.z ,
|
||||
maxZ = v.boxZone.maxZ,
|
||||
useZ = false,
|
||||
}, {
|
||||
options = {{
|
||||
icon = 'fas fa-piggy-bank',
|
||||
label = _L('open_banking_target').text,
|
||||
canInteract = function(entity) return not isDead and not IsPedInAnyVehicle(PlayerPedId()) end,
|
||||
action = function(entity) TriggerEvent('okokBanking:OpenBank') end
|
||||
}},
|
||||
distance = Config.TargetBankDistance,
|
||||
})
|
||||
elseif Config.TargetSystem == 'ox-target' then
|
||||
local zoneId = exports.ox_target:addBoxZone({
|
||||
coords = v.boxZone.pos,
|
||||
size = vec3(v.boxZone.size.x, v.boxZone.size.y, v.boxZone.maxZ - v.boxZone.pos.z),
|
||||
rotation = v.boxZone.rotation,
|
||||
debug = Config.DebugTargetZones,
|
||||
options = {
|
||||
{
|
||||
icon = 'fas fa-piggy-bank',
|
||||
label = _L('open_banking_target').text,
|
||||
canInteract = function(entity, distance, coords, name) return not isDead and not IsPedInAnyVehicle(PlayerPedId()) end,
|
||||
onSelect = function(data) TriggerEvent('okokBanking:OpenBank') end
|
||||
}
|
||||
},
|
||||
distance = Config.TargetBankDistance
|
||||
})
|
||||
end
|
||||
table.insert(BankZonesId, zoneId)
|
||||
end
|
||||
end
|
||||
else
|
||||
|
||||
local function NearBank()
|
||||
local pos = GetEntityCoords(PlayerPedId())
|
||||
for k, v in pairs(Config.BankLocations) do
|
||||
local dist = #(vector3(v.x, v.y, v.z) - pos)
|
||||
if dist <= v.BankDistance then
|
||||
return true
|
||||
elseif dist <= v.BankDistance + 5 then
|
||||
return "update"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
CreateThread(function()
|
||||
local inRange = false
|
||||
local shown = false
|
||||
local notified = false
|
||||
|
||||
while true do
|
||||
local playerped = PlayerPedId()
|
||||
inRange = false
|
||||
Wait(0)
|
||||
if NearBank() and not isBankOpened and NearBank() ~= "update" then
|
||||
|
||||
inRange = true
|
||||
|
||||
if IsControlJustReleased(0, 38) then
|
||||
|
||||
if not isDead and not IsPedInAnyVehicle(playerped) then
|
||||
if isBankOpened then
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
SendNUIMessage({
|
||||
action = 'loading_data'
|
||||
})
|
||||
Wait(500)
|
||||
openBank()
|
||||
else
|
||||
if not notified then
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('not_use_bank').title, _L('not_use_bank').text, _L('not_use_bank').time, _L('not_use_bank').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('not_use_bank').text, _L('not_use_bank').type, _L('not_use_bank').time)
|
||||
end
|
||||
notified = true
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif NearBank() == "update" then
|
||||
Wait(300)
|
||||
else
|
||||
Wait(1000)
|
||||
end
|
||||
|
||||
if inRange and not shown then
|
||||
shown = true
|
||||
if Config.okokTextUI then
|
||||
exports['okokTextUI']:Open(_L('open_banking').text, _L('open_banking').color, _L('open_banking').side)
|
||||
else
|
||||
exports['qb-core']:DrawText(_L('open_banking').text, _L('open_banking').side)
|
||||
end
|
||||
elseif not inRange and shown then
|
||||
shown = false
|
||||
if Config.okokTextUI then
|
||||
exports['okokTextUI']:Close()
|
||||
else
|
||||
exports['qb-core']:HideText()
|
||||
end
|
||||
end
|
||||
notified = false
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
if Config.UseTargetOnAtm then
|
||||
|
||||
for k, v in ipairs(Config.ATM) do AtmModels[#AtmModels + 1] = v.model end
|
||||
|
||||
RegisterNetEvent('okokBanking:TargetATM')
|
||||
AddEventHandler('okokBanking:TargetATM', function()
|
||||
local ped = PlayerPedId()
|
||||
local dict = 'anim@amb@prop_human_atm@interior@male@enter'
|
||||
local anim = 'enter'
|
||||
|
||||
if Config.RequireCreditCardForATM then
|
||||
QBCore.Functions.TriggerCallback("okokBanking:HasCreditCard", function(hasItem)
|
||||
if not hasItem then
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('no_creditcard').title, _L('no_creditcard').text, _L('no_creditcard').time, _L('no_creditcard').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('no_creditcard').text, _L('no_creditcard').type, _L('no_creditcard').time)
|
||||
end
|
||||
return
|
||||
else
|
||||
QBCore.Functions.TriggerCallback("okokBanking:GetPIN", function(pin)
|
||||
if pin then
|
||||
if not isBankOpened then
|
||||
isBankOpened = true
|
||||
TriggerServerEvent('okokBanking:setMenuOpened', isBankOpened)
|
||||
RequestAnimDict(dict)
|
||||
|
||||
while not HasAnimDictLoaded(dict) do
|
||||
Wait(7)
|
||||
end
|
||||
|
||||
TaskPlayAnim(ped, dict, anim, 8.0, 8.0, -1, 0, 0, 0, 0, 0)
|
||||
Wait(Config.AnimTime * 1000)
|
||||
ClearPedTasks(ped)
|
||||
|
||||
TriggerEvent("okokBanking:OpenATM", pin)
|
||||
Wait(3000)
|
||||
RemoveAnimDict(dict)
|
||||
end
|
||||
else
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('no_pin').title, _L('no_pin').text, _L('no_pin').time, _L('no_pin').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('no_pin').text, _L('no_pin').type, _L('no_pin').time)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
else
|
||||
QBCore.Functions.TriggerCallback("okokBanking:GetPIN", function(pin)
|
||||
if pin then
|
||||
if not isBankOpened then
|
||||
isBankOpened = true
|
||||
TriggerServerEvent('okokBanking:setMenuOpened', isBankOpened)
|
||||
RequestAnimDict(dict)
|
||||
|
||||
while not HasAnimDictLoaded(dict) do
|
||||
Wait(7)
|
||||
end
|
||||
|
||||
TaskPlayAnim(ped, dict, anim, 8.0, 8.0, -1, 0, 0, 0, 0, 0)
|
||||
Wait(Config.AnimTime * 1000)
|
||||
ClearPedTasks(ped)
|
||||
|
||||
TriggerEvent("okokBanking:OpenATM", pin)
|
||||
Wait(3000)
|
||||
RemoveAnimDict(dict)
|
||||
end
|
||||
else
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('no_pin').title, _L('no_pin').text, _L('no_pin').time, _L('no_pin').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('no_pin').text, _L('no_pin').type, _L('no_pin').time)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
local options= {{
|
||||
name = targetOptionsNames.atm,
|
||||
event = 'okokBanking:TargetATM',
|
||||
icon = 'fas fa-piggy-bank',
|
||||
label = _L('open_atm_target').text,
|
||||
canInteract = function(entity)
|
||||
return not isDead and not IsPedInAnyVehicle(PlayerPedId())
|
||||
end
|
||||
}}
|
||||
|
||||
if Config.TargetSystem == 'qb-target' then
|
||||
exports['qb-target']:AddTargetModel(AtmModels, {
|
||||
options = options,
|
||||
distance = Config.ATMDistance
|
||||
})
|
||||
elseif Config.TargetSystem == 'ox-target' then
|
||||
exports.ox_target:addModel(AtmModels, {
|
||||
name = targetOptionsNames.atm,
|
||||
event = 'okokBanking:TargetATM',
|
||||
icon = 'fas fa-piggy-bank',
|
||||
label = _L('open_atm_target').text,
|
||||
distance = Config.ATMDistance,
|
||||
canInteract = function(entity) return not isDead and not IsPedInAnyVehicle(PlayerPedId()) end
|
||||
})
|
||||
end
|
||||
else
|
||||
|
||||
function NearATM()
|
||||
local ped = PlayerPedId()
|
||||
local pos = GetEntityCoords(ped)
|
||||
|
||||
for i = 1, #Config.ATM do
|
||||
local atm = GetClosestObjectOfType(pos.x, pos.y, pos.z, Config.ATMDistance + 5, Config.ATM[i].model, false, false, false)
|
||||
if DoesEntityExist(atm) then
|
||||
if atm ~= closestATM then
|
||||
closestATM = atm
|
||||
atmPos = GetEntityCoords(atm)
|
||||
end
|
||||
local dist = #(pos - atmPos)
|
||||
|
||||
if dist <= Config.ATMDistance then
|
||||
return true
|
||||
elseif dist <= Config.ATMDistance + 5 then
|
||||
return "update"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
CreateThread(function()
|
||||
local inRange = false
|
||||
local shown = false
|
||||
local notified = false
|
||||
|
||||
local dict = 'anim@amb@prop_human_atm@interior@male@enter'
|
||||
local anim = 'enter'
|
||||
|
||||
while true do
|
||||
local ped = PlayerPedId()
|
||||
inRange = false
|
||||
Wait(0)
|
||||
if NearATM() and not isBankOpened and NearATM() ~= "update" then
|
||||
|
||||
inRange = true
|
||||
|
||||
if IsControlJustReleased(0, 38) then
|
||||
if not isDead and not IsPedInAnyVehicle(ped) then
|
||||
if Config.RequireCreditCardForATM then
|
||||
QBCore.Functions.TriggerCallback("okokBanking:HasCreditCard", function(hasItem)
|
||||
if not hasItem then
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('no_creditcard').title, _L('no_creditcard').text, _L('no_creditcard').time, _L('no_creditcard').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('no_creditcard').text, _L('no_creditcard').type, _L('no_creditcard').time)
|
||||
end
|
||||
return
|
||||
else
|
||||
QBCore.Functions.TriggerCallback("okokBanking:GetPIN", function(pin)
|
||||
if pin then
|
||||
if not isBankOpened then
|
||||
isBankOpened = true
|
||||
TriggerServerEvent('okokBanking:setMenuOpened', isBankOpened)
|
||||
RequestAnimDict(dict)
|
||||
|
||||
while not HasAnimDictLoaded(dict) do
|
||||
Wait(7)
|
||||
end
|
||||
|
||||
TaskPlayAnim(ped, dict, anim, 8.0, 8.0, -1, 0, 0, 0, 0, 0)
|
||||
Wait(Config.AnimTime * 1000)
|
||||
ClearPedTasks(ped)
|
||||
|
||||
TriggerEvent("okokBanking:OpenATM", pin)
|
||||
Wait(3000)
|
||||
RemoveAnimDict(dict)
|
||||
end
|
||||
else
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('no_pin').title, _L('no_pin').text, _L('no_pin').time, _L('no_pin').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('no_pin').text, _L('no_pin').type, _L('no_pin').time)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
else
|
||||
QBCore.Functions.TriggerCallback("okokBanking:GetPIN", function(pin)
|
||||
if pin then
|
||||
if not isBankOpened then
|
||||
isBankOpened = true
|
||||
TriggerServerEvent('okokBanking:setMenuOpened', isBankOpened)
|
||||
RequestAnimDict(dict)
|
||||
|
||||
while not HasAnimDictLoaded(dict) do
|
||||
Wait(7)
|
||||
end
|
||||
|
||||
TaskPlayAnim(ped, dict, anim, 8.0, 8.0, -1, 0, 0, 0, 0, 0)
|
||||
Wait(Config.AnimTime * 1000)
|
||||
ClearPedTasks(ped)
|
||||
|
||||
TriggerEvent("okokBanking:OpenATM", pin)
|
||||
Wait(3000)
|
||||
RemoveAnimDict(dict)
|
||||
end
|
||||
else
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('no_pin').title, _L('no_pin').text, _L('no_pin').time, _L('no_pin').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('no_pin').text, _L('no_pin').type, _L('no_pin').time)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
else
|
||||
if not notified then
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('not_use_bank').title, _L('not_use_bank').text, _L('not_use_bank').time, _L('not_use_bank').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('not_use_bank').text, _L('not_use_bank').type, _L('not_use_bank').time)
|
||||
end
|
||||
notified = true
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif NearATM() == "update" then
|
||||
Wait(100)
|
||||
else
|
||||
Wait(1000)
|
||||
end
|
||||
|
||||
if inRange and not shown then
|
||||
shown = true
|
||||
if Config.okokTextUI then
|
||||
exports['okokTextUI']:Open(_L('open_atm').text, _L('open_atm').color, _L('open_atm').side)
|
||||
else
|
||||
exports['qb-core']:DrawText(_L('open_atm').text, _L('open_atm').side)
|
||||
end
|
||||
elseif not inRange and shown then
|
||||
shown = false
|
||||
if Config.okokTextUI then
|
||||
exports['okokTextUI']:Close()
|
||||
else
|
||||
exports['qb-core']:HideText()
|
||||
end
|
||||
end
|
||||
notified = false
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
RegisterNetEvent("okokBanking:OpenATM")
|
||||
AddEventHandler("okokBanking:OpenATM", function(pin)
|
||||
if isBankOpened then
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
SendNUIMessage({
|
||||
action = 'atm',
|
||||
pin = pin,
|
||||
UseSound = Config.UseOkOkBankingSounds,
|
||||
})
|
||||
end)
|
||||
|
||||
RegisterNUICallback("action", function(data, cb)
|
||||
if data.action == "close" then
|
||||
isBankOpened = false
|
||||
TriggerServerEvent('okokBanking:setMenuOpened', isBankOpened)
|
||||
SetNuiFocus(false, false)
|
||||
elseif data.action == "deposit" then
|
||||
if tonumber(data.value) ~= nil then
|
||||
if tonumber(data.value) > 0 then
|
||||
if data.window == 'bankmenu' then
|
||||
TriggerServerEvent('okokBanking:DepositMoney', tonumber(data.value))
|
||||
elseif data.window == 'societies' then
|
||||
TriggerServerEvent('okokBanking:DepositMoneyToSociety', tonumber(data.value), societyInfo.society, societyInfo.society_name)
|
||||
end
|
||||
else
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('invalid_amount').title, _L('invalid_amount').text, _L('invalid_amount').time, _L('invalid_amount').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('invalid_amount').text, _L('invalid_amount').type, _L('invalid_amount').time)
|
||||
end
|
||||
end
|
||||
else
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('invalid_amount').title, _L('invalid_amount').text, _L('invalid_amount').time, _L('invalid_amount').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('invalid_amount').text, _L('invalid_amount').type, _L('invalid_amount').time)
|
||||
end
|
||||
end
|
||||
elseif data.action == "withdraw" then
|
||||
if tonumber(data.value) ~= nil then
|
||||
if tonumber(data.value) > 0 then
|
||||
if data.window == 'bankmenu' then
|
||||
TriggerServerEvent('okokBanking:WithdrawMoney', tonumber(data.value))
|
||||
elseif data.window == 'societies' then
|
||||
TriggerServerEvent('okokBanking:WithdrawMoneyToSociety', tonumber(data.value), societyInfo.society, societyInfo.society_name, societyInfo.value)
|
||||
end
|
||||
else
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('invalid_amount').title, _L('invalid_amount').text, _L('invalid_amount').time, _L('invalid_amount').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('invalid_amount').text, _L('invalid_amount').type, _L('invalid_amount').time)
|
||||
end
|
||||
end
|
||||
else
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('invalid_input').title, _L('invalid_input').text, _L('invalid_input').time, _L('invalid_input').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('invalid_input').text, _L('invalid_input').type, _L('invalid_input').time)
|
||||
end
|
||||
end
|
||||
elseif data.action == "transfer" then
|
||||
if tonumber(data.value) ~= nil then
|
||||
if tonumber(data.value) > 0 then
|
||||
QBCore.Functions.TriggerCallback("okokBanking:IsIBanUsed", function(isUsed, isPlayer)
|
||||
if isUsed ~= nil then
|
||||
if isUsed.charinfo ~= nil then
|
||||
if type(isUsed.charinfo) ~= "table" then
|
||||
isUsed.charinfo = json.decode(isUsed.charinfo)
|
||||
end
|
||||
end
|
||||
if data.window == 'bankmenu' then
|
||||
if isPlayer then
|
||||
TriggerServerEvent('okokBanking:TransferMoney', tonumber(data.value), data.iban:upper(), isUsed.citizenid, isUsed.money, isUsed.charinfo.firstname..' '..isUsed.charinfo.lastname)
|
||||
elseif not isPlayer then
|
||||
TriggerServerEvent('okokBanking:TransferMoneyToSociety', tonumber(data.value), isUsed.iban:upper(), isUsed.society_name, isUsed.society)
|
||||
end
|
||||
elseif data.window == 'societies' then
|
||||
local toMyself = false
|
||||
if data.iban:upper() == playerIBAN then
|
||||
toMyself = true
|
||||
end
|
||||
|
||||
if isPlayer then
|
||||
TriggerServerEvent('okokBanking:TransferMoneyToPlayerFromSociety', tonumber(data.value), data.iban:upper(), isUsed.citizenid, isUsed.money, isUsed.charinfo.firstname..' '..isUsed.charinfo.lastname, societyInfo.society, societyInfo.society_name, societyInfo.value, toMyself)
|
||||
elseif not isPlayer then
|
||||
TriggerServerEvent('okokBanking:TransferMoneyToSocietyFromSociety', tonumber(data.value), isUsed.iban:upper(), isUsed.society_name, isUsed.society, societyInfo.society, societyInfo.society_name, societyInfo.value)
|
||||
end
|
||||
end
|
||||
elseif isUsed == nil then
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('iban_not_exist').title, _L('iban_not_exist').text, _L('iban_not_exist').time, _L('iban_not_exist').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('iban_not_exist').text, _L('iban_not_exist').type, _L('iban_not_exist').time)
|
||||
end
|
||||
end
|
||||
end, data.iban:upper())
|
||||
else
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('invalid_amount').title, _L('invalid_amount').text, _L('invalid_amount').time, _L('invalid_amount').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('invalid_amount').text, _L('invalid_amount').type, _L('invalid_amount').time)
|
||||
end
|
||||
end
|
||||
else
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('invalid_input').title, _L('invalid_input').text, _L('invalid_input').time, _L('invalid_input').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('invalid_input').text, _L('invalid_input').type, _L('invalid_input').time)
|
||||
end
|
||||
end
|
||||
elseif data.action == "overview_page" then
|
||||
if isBankOpened then
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
SendNUIMessage({
|
||||
action = 'overview_page',
|
||||
playerBankMoney = playerBankMoney,
|
||||
walletMoney = walletMoney,
|
||||
playerIBAN = playerIBAN,
|
||||
db = trans,
|
||||
identifier = trsIdentifier,
|
||||
graphDays = allDaysValues,
|
||||
isInSociety = canAccessSociety,
|
||||
RequireCC = Config.RequireCreditCardForATM,
|
||||
})
|
||||
elseif data.action == "transactions_page" then
|
||||
if isBankOpened then
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
SendNUIMessage({
|
||||
action = 'transactions_page',
|
||||
db = trans,
|
||||
identifier = trsIdentifier,
|
||||
graph_values = allDaysValues,
|
||||
isInSociety = canAccessSociety,
|
||||
})
|
||||
elseif data.action == "society_transactions" then
|
||||
if isBankOpened then
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
SendNUIMessage({
|
||||
action = 'society_transactions',
|
||||
db = societyTrans,
|
||||
identifier = societyIdent,
|
||||
graph_values = societyDays,
|
||||
isInSociety = canAccessSociety,
|
||||
societyInfo = societyInfo,
|
||||
})
|
||||
elseif data.action == "society_page" then
|
||||
if isBankOpened then
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
SendNUIMessage({
|
||||
action = 'society_page',
|
||||
playerBankMoney = playerBankMoney,
|
||||
walletMoney = walletMoney,
|
||||
playerIBAN = playerIBAN,
|
||||
db = societyTrans,
|
||||
identifier = societyIdent,
|
||||
graphDays = societyDays,
|
||||
isInSociety = canAccessSociety,
|
||||
societyInfo = societyInfo,
|
||||
})
|
||||
elseif data.action == "settings_page" then
|
||||
if isBankOpened then
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
SendNUIMessage({
|
||||
action = 'settings_page',
|
||||
isInSociety = canAccessSociety,
|
||||
ibanCost = Config.IBANChangeCost,
|
||||
ibanPrefix = Config.IBANPrefix,
|
||||
ibanCharNum = Config.CustomIBANMaxChars,
|
||||
pinCost = Config.PINChangeCost,
|
||||
pinCharNum = 4,
|
||||
})
|
||||
elseif data.action == "atm" then
|
||||
if isBankOpened then
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
SendNUIMessage({
|
||||
action = 'loading_data',
|
||||
})
|
||||
Wait(500)
|
||||
openBank()
|
||||
elseif data.action == "change_iban" then
|
||||
if Config.CustomIBANAllowLetters then
|
||||
local iban = Config.IBANPrefix..data.iban:upper()
|
||||
|
||||
QBCore.Functions.TriggerCallback("okokBanking:IsIBanUsed", function(isUsed, isPlayer)
|
||||
|
||||
if isUsed == nil then
|
||||
TriggerServerEvent('okokBanking:UpdateIbanDB', iban, Config.IBANChangeCost)
|
||||
elseif isUsed ~= nil then
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('iban_in_use').title, _L('iban_in_use').text, _L('iban_in_use').time, _L('iban_in_use').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('iban_in_use').text, _L('iban_in_use').type, _L('iban_in_use').time)
|
||||
end
|
||||
end
|
||||
end, iban)
|
||||
elseif not Config.CustomIBANAllowLetters then
|
||||
if tonumber(data.iban) ~= nil then
|
||||
local iban = Config.IBANPrefix..data.iban:upper()
|
||||
|
||||
QBCore.Functions.TriggerCallback("okokBanking:IsIBanUsed", function(isUsed, isPlayer)
|
||||
|
||||
if isUsed == nil then
|
||||
TriggerServerEvent('okokBanking:UpdateIbanDB', iban, Config.IBANChangeCost)
|
||||
elseif isUsed ~= nil then
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('iban_in_use').title, _L('iban_in_use').text, _L('iban_in_use').time, _L('iban_in_use').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('iban_in_use').text, _L('iban_in_use').type, _L('iban_in_use').time)
|
||||
end
|
||||
end
|
||||
end, iban)
|
||||
else
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('iban_only_numbers').title, _L('iban_only_numbers').text, _L('iban_only_numbers').time, _L('iban_only_numbers').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('iban_only_numbers').text, _L('iban_only_numbers').type, _L('iban_only_numbers').time)
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif data.action == "change_pin" then
|
||||
if tonumber(data.pin) ~= nil then
|
||||
if string.len(data.pin) == 4 then
|
||||
QBCore.Functions.TriggerCallback("okokBanking:GetPIN", function(pin)
|
||||
if pin then
|
||||
TriggerServerEvent('okokBanking:UpdatePINDB', data.pin, Config.PINChangeCost)
|
||||
else
|
||||
TriggerServerEvent('okokBanking:UpdatePINDB', data.pin, 0)
|
||||
end
|
||||
end)
|
||||
else
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('pin_digits').title, _L('pin_digits').text, _L('pin_digits').time, _L('pin_digits').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('pin_digits').text, _L('pin_digits').type, _L('pin_digits').time)
|
||||
end
|
||||
end
|
||||
else
|
||||
if Config.okokNotify then
|
||||
exports['okokNotify']:Alert(_L('pin_only_numbers').title, _L('pin_only_numbers').text, _L('pin_only_numbers').time, _L('pin_only_numbers').type)
|
||||
else
|
||||
QBCore.Functions.Notify(_L('pin_only_numbers').text, _L('pin_only_numbers').type, _L('pin_only_numbers').time)
|
||||
end
|
||||
end
|
||||
elseif data.action == "buy_new_cc" then
|
||||
TriggerServerEvent('okokBanking:GiveCC')
|
||||
end
|
||||
cb('ok')
|
||||
end)
|
||||
|
||||
|
||||
RegisterNetEvent("okokBanking:updateTransactions")
|
||||
AddEventHandler("okokBanking:updateTransactions", function(money, wallet)
|
||||
Wait(100)
|
||||
if isBankOpened then
|
||||
QBCore.Functions.TriggerCallback("okokBanking:GetOverviewTransactions", function(cb, id, allDays)
|
||||
trans = cb
|
||||
allDaysValues = allDays
|
||||
if isBankOpened then
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
SendNUIMessage({
|
||||
action = 'overview_page',
|
||||
playerBankMoney = playerBankMoney,
|
||||
walletMoney = walletMoney,
|
||||
playerIBAN = playerIBAN,
|
||||
db = trans,
|
||||
identifier = trsIdentifier,
|
||||
graphDays = allDaysValues,
|
||||
isInSociety = canAccessSociety,
|
||||
isUpdate = true,
|
||||
RequireCC = Config.RequireCreditCardForATM,
|
||||
})
|
||||
TriggerEvent('okokBanking:updateMoney', money, wallet)
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterNetEvent("okokBanking:updateMoney")
|
||||
AddEventHandler("okokBanking:updateMoney", function(money, wallet)
|
||||
if isBankOpened then
|
||||
playerBankMoney = money
|
||||
walletMoney = wallet
|
||||
SendNUIMessage({
|
||||
action = 'updatevalue',
|
||||
playerBankMoney = money,
|
||||
walletMoney = wallet,
|
||||
})
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterNetEvent("okokBanking:updateIban")
|
||||
AddEventHandler("okokBanking:updateIban", function(iban)
|
||||
playerIBAN = iban
|
||||
SendNUIMessage({
|
||||
action = 'updateiban',
|
||||
iban = playerIBAN,
|
||||
})
|
||||
end)
|
||||
|
||||
RegisterNetEvent("okokBanking:updateIbanPinChange")
|
||||
AddEventHandler("okokBanking:updateIbanPinChange", function()
|
||||
Wait(100)
|
||||
QBCore.Functions.TriggerCallback("okokBanking:GetOverviewTransactions", function(cbs, ids, allDays)
|
||||
trans = cbs
|
||||
end)
|
||||
end)
|
||||
|
||||
RegisterNetEvent("okokBanking:updateTransactionsSociety")
|
||||
AddEventHandler("okokBanking:updateTransactionsSociety", function(wallet)
|
||||
Wait(100)
|
||||
QBCore.Functions.TriggerCallback("okokBanking:SocietyInfo", function(cb)
|
||||
QBCore.Functions.TriggerCallback("okokBanking:GetSocietyTransactions", function(societyTranscb, societyID, societyAllDays)
|
||||
QBCore.Functions.TriggerCallback("okokBanking:GetOverviewTransactions", function(cbs, ids, allDays)
|
||||
trans = cbs
|
||||
walletMoney = wallet
|
||||
societyDays = societyAllDays
|
||||
societyIdent = societyID
|
||||
societyTrans = societyTranscb
|
||||
societyInfo = cb
|
||||
if cb ~= nil then
|
||||
if isBankOpened then
|
||||
SetNuiFocus(true, true)
|
||||
end
|
||||
SendNUIMessage({
|
||||
action = 'society_page',
|
||||
walletMoney = wallet,
|
||||
db = societyTrans,
|
||||
graphDays = societyDays,
|
||||
isInSociety = canAccessSociety,
|
||||
societyInfo = societyInfo,
|
||||
identifier = societyIdent,
|
||||
isUpdate = true
|
||||
})
|
||||
end
|
||||
end)
|
||||
end, society)
|
||||
end, society)
|
||||
end)
|
||||
|
|
@ -1,163 +0,0 @@
|
|||
Config, Locales = {}, {}
|
||||
|
||||
Config.Locale = 'de' -- en / pt / gr / fr / de
|
||||
|
||||
Config.okokNotify = true -- true = okokNotify | false = QBCore Notify
|
||||
|
||||
Config.okokTextUI = true -- true = okokTextUI | false = QBCore DrawText
|
||||
|
||||
Config.UseOkOkBankingSounds = false -- true = Uses Sounds | false = No sounds
|
||||
|
||||
Config.UseTargetOnAtm = false -- Using qb-target and not TextUI to access to the atms
|
||||
|
||||
Config.UseTargetOnBank = false -- Using qb-target and not TextUI to access to the bank
|
||||
|
||||
Config.TargetSystem = 'qb-target' -- qb-target | ox-target
|
||||
|
||||
Config.TargetBankDistance = 1.5 -- Distance to target a bank from qb-target ( To change the distance to ATM check line 61)
|
||||
|
||||
Config.DebugTargetZones = false -- Set to true only if you need to check the position of a zone
|
||||
|
||||
Config.UseCashAsItem = false -- Set to true if you have cash as item on qb-core
|
||||
|
||||
Config.IBANPrefix = "OK" -- IBAN prefix
|
||||
|
||||
Config.IBANNumbers = 6 -- How many characters the IBAN has by default
|
||||
|
||||
Config.CustomIBANMaxChars = 10 -- How many characters the IBAN can have when changing it to a custom one (on Settings tab)
|
||||
|
||||
Config.CustomIBANAllowLetters = true -- If the custom IBAN can have letters or only numbers (on Settings tab)
|
||||
|
||||
Config.IBANChangeCost = 5000 -- How much it costs to change the IBAN to a custom one (on Settings tab)
|
||||
|
||||
Config.PINChangeCost = 1000 -- How much it costs to change the PIN (on Settings tab)
|
||||
|
||||
Config.AnimTime = 2 -- Seconds (ATM animation)
|
||||
|
||||
Config.UseQBManagement = false -- If true it will use the management_funds table | If false the okokbanking_societies table
|
||||
|
||||
Config.UseQBBanking = true -- Useful for latest QBCore versions
|
||||
|
||||
Config.RequireCreditCardForATM = true -- Set to true if you would like players to access the ATM with a card item | If false there is no item requirement
|
||||
|
||||
Config.CreditCardItem = "creditcard" -- Required item to access the ATM
|
||||
|
||||
Config.CreditCardPrice = 100 -- How much it costs to purchase a credit card
|
||||
|
||||
Config.CharInfoUpdate = true -- If you have an error on server console saying 'bad argument #1 to decode ( string expected, got nil )' set this to true
|
||||
|
||||
Config.Societies = { -- Which societies have bank accounts
|
||||
"police",
|
||||
"ambulance",
|
||||
"cinema",
|
||||
"fussion",
|
||||
"kayas",
|
||||
"sud",
|
||||
"taxi",
|
||||
"ammu",
|
||||
"marshal";
|
||||
"cute"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
-- Add this new section below the Societies section
|
||||
Config.JobBossRanks = {
|
||||
["police"] = {
|
||||
maxRank = true, -- Automatically use the highest rank
|
||||
specificRanks = {7, 8, 9} -- Or specify exact ranks that have boss access
|
||||
},
|
||||
["ambulance"] = {
|
||||
maxRank = true,
|
||||
specificRanks = {}
|
||||
},
|
||||
["cinema"] = {
|
||||
maxRank = false, -- Will automatically detect the highest rank
|
||||
specificRanks = {1} -- Or you can specify ranks like {3, 4} if needed
|
||||
},
|
||||
["kayas"] = {
|
||||
maxRank = false,
|
||||
specificRanks = {0}
|
||||
},
|
||||
["fussion"] = {
|
||||
maxRank = false, -- Will automatically detect the highest rank
|
||||
specificRanks = {4} -- Or you can specify ranks like {3, 4} if needed
|
||||
},
|
||||
["sud"] = {
|
||||
maxRank = false, -- Will automatically detect the highest rank
|
||||
specificRanks = {0} -- Or you can specify ranks like {3, 4} if needed
|
||||
},
|
||||
["taxi"] = {
|
||||
maxRank = true, -- Will automatically detect the highest rank
|
||||
specificRanks = {} -- Or you can specify ranks like {3, 4} if needed
|
||||
},
|
||||
["ammu"] = {
|
||||
maxRank = false, -- Will automatically detect the highest rank
|
||||
specificRanks = {0} -- Or you can specify ranks like {3, 4} if needed
|
||||
},
|
||||
["marshal"] = {
|
||||
maxRank = true, -- Will automatically detect the highest rank
|
||||
specificRanks = {0} -- Or you can specify ranks like {3, 4} if needed
|
||||
},
|
||||
["cute"] = {
|
||||
maxRank = true, -- Will automatically detect the highest rank
|
||||
specificRanks = {0} -- Or you can specify ranks like {3, 4} if needed
|
||||
},
|
||||
-- Add other jobs as needed
|
||||
}
|
||||
|
||||
|
||||
Config.ShowBankBlips = true -- True = show bank blips on the map | false = don't show blips
|
||||
|
||||
Config.BankLocations = { -- To get blips and colors check this: https://wiki.gtanet.work/index.php?title=Blips
|
||||
{blip = 108, blipColor = 2, blipScale = 0.9, x = 150.266, y = -1040.203, z = 29.374, blipText = "Bank", BankDistance = 3, boxZone = {pos = vec3(149.07, -1041.02, 29.55), size = vec3(2.85, 0.30, 1.30), rotation = 70, maxZ = 30.9}},
|
||||
{blip = 108, blipColor = 2, blipScale = 0.9, x = -1212.980, y = -330.841, z = 37.787, blipText = "Bank", BankDistance = 3, boxZone = {pos = vec3(-1212.98, -331.53, 38.0), size = vec3(2.85, 0.40, 1.30), rotation = 117, maxZ = 39.25}},
|
||||
{blip = 108, blipColor = 2, blipScale = 0.9, x = -2962.582, y = 482.627, z = 15.703, blipText = "Bank", BankDistance = 3, boxZone = {pos = vec3(-2962.00, 482.20, 15.92), size = vec3(2.85, 0.40, 1.30), rotation = 178, maxZ = 17.1}},
|
||||
{blip = 108, blipColor = 2, blipScale = 0.9, x = -112.202, y = 6469.295, z = 31.626, blipText = "Bank", BankDistance = 3, boxZone = {pos = vec3(-111.69, 6469.5, 31.83), size = vec3(4.2, 0.40, 1.25), rotation = 45, maxZ = 33.15}},
|
||||
{blip = 108, blipColor = 2, blipScale = 0.9, x = 314.187, y = -278.621, z = 54.170, blipText = "Bank", BankDistance = 3, boxZone = {pos = vec3(313.26, -279.38, 54.35), size = vec3(2.85, 0.40, 1.30), rotation = 250, maxZ = 55.7}},
|
||||
{blip = 108, blipColor = 2, blipScale = 0.9, x = -351.534, y = -49.529, z = 49.042, blipText = "Bank", BankDistance = 3, boxZone = {pos = vec3(-351.81, -50.2, 49.24), size = vec3(2.85, 0.30, 1.30), rotation = 250, maxZ = 50.5}},
|
||||
{blip = 108, blipColor = 3, blipScale = 1.2, x = 253.38, y = 220.79, z = 106.29, blipText = "Bank", BankDistance = 3, boxZone = {pos = vec3(252.8, 221.9, 106.20), size = vec3(3.6, 0.20, 1.70), rotation = 250, maxZ = 107.6}},
|
||||
{blip = 108, blipColor = 2, blipScale = 0.9, x = 1175.064, y = 2706.643, z = 38.094, blipText = "Bank", BankDistance = 3, boxZone = {pos = vec3(1175.72, 2707.36, 38.30), size = vec3(2.85, 0.40, 1.30), rotation = 270, maxZ = 39.5}},
|
||||
}
|
||||
|
||||
Config.ATMDistance = 1.5 -- How close you need to be in order to access the ATM
|
||||
|
||||
Config.ATM = { -- ATM models, do not remove any
|
||||
{model = -870868698},
|
||||
{model = -1126237515},
|
||||
{model = -1364697528},
|
||||
{model = 506770882}
|
||||
}
|
||||
|
||||
-------------------------- DISCORD LOGS
|
||||
|
||||
-- To set your Discord Webhook URL go to server.lua, line 2
|
||||
|
||||
Config.BotName = 'ServerName' -- Write the desired bot name
|
||||
|
||||
Config.ServerName = 'ServerName' -- Write your server's name
|
||||
|
||||
Config.IconURL = '' -- Insert your desired image link
|
||||
|
||||
Config.DateFormat = '%d/%m/%Y [%X]' -- To change the date format check this website - https://www.lua.org/pil/22.1.html
|
||||
|
||||
-- To change a webhook color you need to set the decimal value of a color, you can use this website to do that - https://www.mathsisfun.com/hexadecimal-decimal-colors.html
|
||||
|
||||
Config.TransferWebhookColor = '16127'
|
||||
|
||||
Config.WithdrawWebhookColor = '16127'
|
||||
|
||||
Config.DepositWebhookColor = '16127'
|
||||
|
||||
-------------------------- LOCALES (DON'T TOUCH)
|
||||
|
||||
function _L(id)
|
||||
if Locales[Config.Locale][id] then
|
||||
return Locales[Config.Locale][id]
|
||||
else
|
||||
print("Locale '"..id.."' doesn't exist")
|
||||
end
|
||||
end
|
|
@ -1,44 +0,0 @@
|
|||
fx_version 'cerulean'
|
||||
|
||||
game 'gta5'
|
||||
|
||||
author 'okok#3488'
|
||||
description 'okokBanking'
|
||||
version '1.1.2'
|
||||
|
||||
ui_page 'web/ui.html'
|
||||
|
||||
files {
|
||||
'web/*.*',
|
||||
'web/img/*.*'
|
||||
}
|
||||
|
||||
shared_scripts {
|
||||
'config.lua',
|
||||
'locales/*.lua'
|
||||
}
|
||||
|
||||
client_scripts {
|
||||
'client.lua'
|
||||
}
|
||||
|
||||
server_scripts {
|
||||
'@oxmysql/lib/MySQL.lua',
|
||||
'server.lua'
|
||||
}
|
||||
|
||||
lua54 'yes'
|
||||
|
||||
escrow_ignore {
|
||||
'config.lua',
|
||||
'server.lua',
|
||||
'client.lua',
|
||||
'locales/*.lua'
|
||||
}
|
||||
|
||||
server_exports {
|
||||
'AddMoney',
|
||||
'RemoveMoney',
|
||||
'GetAccount',
|
||||
}
|
||||
dependency '/assetpacks'
|
|
@ -1,221 +0,0 @@
|
|||
Locales['de'] = {
|
||||
|
||||
-- PIN BEZOGEN LOCALES
|
||||
|
||||
['no_pin'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Gehen Sie zuerst zu einer Bank, um einen PIN-Code festzulegen',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_changed'] = {
|
||||
title = 'BANKING',
|
||||
text = 'PIN erfolgreich geändert in ${s1}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['pin_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sie benötigen ${s1}$, um Ihre PIN zu ändern',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_digits'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Ihre PIN muss 4 Ziffern lang sein',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_only_numbers'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sie können nur Zahlen verwenden',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
|
||||
-- IBAN BEZOGEN LOCALES
|
||||
|
||||
['iban_not_exist'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Diese IBAN existiert nicht',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_in_use'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Diese IBAN wird bereits verwendet',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_only_numbers'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sie können in Ihrer IBAN nur Zahlen verwenden',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_changed'] = {
|
||||
title = 'BANKING',
|
||||
text = 'IBAN erfolgreich in ${s1} geändert',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['iban_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sie benötigen ${s1}$, um Ihre IBAN zu ändern',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
|
||||
-- ZURÜCKGEZOGEN / EINGEZAHLT / ÜBERTRAGEN / ERHALTEN
|
||||
|
||||
['deposited'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sie haben eingezahlt ${s1}$',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['withdrawn'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sie haben sich zurückgezogen ${s1}$',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['received_from'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sie erhielten ${s1}$ aus ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['transferred_to'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sie haben überwiesen ${s1}$ an ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['deposited_to'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sie haben eingezahlt ${s1}$ an ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['someone_withdrawing'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Jemand zieht sich bereits zurück',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['you_have_withdrawn'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sie haben sich zurückgezogen ${s1}$ aus ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
|
||||
-- ALLGEMEINES LOCALES
|
||||
|
||||
['no_creditcard'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Ohne Kreditkarte ist der Zugang zum Geldautomaten nicht möglich',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['invalid_amount'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Ungültige Menge',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['invalid_input'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Ungültige Eingang',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['no_money_pocket'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Du hast nicht so viel Geld bei dir',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['no_money_bank'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Du hast nicht so viel Geld auf der Bank',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['not_send_yourself'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sie können kein Geld an sich selbst senden',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['society_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Ihre Gesellschaft hat nicht so viel Geld auf der Bank',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['not_use_bank'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sie können die Bank derzeit nicht verwenden',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['bought_cc'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sie haben eine Kreditkarte für ${s1}$ gekauft',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
|
||||
-- TEXTUI LOCALES
|
||||
|
||||
['open_banking'] = {
|
||||
text = '[E] Bank betreten',
|
||||
color = 'darkblue',
|
||||
side = 'left'
|
||||
},
|
||||
|
||||
['open_atm'] = {
|
||||
text = '[E] Geldautomaten nutzen',
|
||||
color = 'darkblue',
|
||||
side = 'left'
|
||||
},
|
||||
|
||||
-- QB-TARGET LOCALES
|
||||
|
||||
['open_banking_target'] = {
|
||||
text = 'Bank betreten',
|
||||
},
|
||||
|
||||
['open_atm_target'] = {
|
||||
text = 'Geldautomaten nutzen',
|
||||
},
|
||||
|
||||
}
|
|
@ -1,221 +0,0 @@
|
|||
Locales['en'] = {
|
||||
|
||||
-- PIN RELATED LOCALES
|
||||
|
||||
['no_pin'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Head up to a bank first to set a PIN code',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_changed'] = {
|
||||
title = 'BANKING',
|
||||
text = 'PIN successfully changed to ${s1}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['pin_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You need to have ${s1}€ in order to change your PIN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_digits'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Your PIN needs to be 4 digits long',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_only_numbers'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You can only use numbers',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
|
||||
-- IBAN RELATED LOCALES
|
||||
|
||||
['iban_not_exist'] = {
|
||||
title = 'BANKING',
|
||||
text = 'This IBAN does not exist',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_in_use'] = {
|
||||
title = 'BANKING',
|
||||
text = 'This IBAN is already in use',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_only_numbers'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You can only use numbers in your IBAN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_changed'] = {
|
||||
title = 'BANKING',
|
||||
text = 'IBAN successfully changed to ${s1}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['iban_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You need to have ${s1}€ in order to change your IBAN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
|
||||
-- WITHDRAWN / DEPOSITED / TRANSFERRED / RECEIVED
|
||||
|
||||
['deposited'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You have deposited ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['withdrawn'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You have withdrawn ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['received_from'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You have received ${s1}€ from ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['transferred_to'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You have transferred ${s1}€ to ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['deposited_to'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You have deposited ${s1}€ to ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['someone_withdrawing'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Someone is already withdrawing',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['you_have_withdrawn'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You have withdrawn ${s1}€ from ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
|
||||
-- GENERAL LOCALES
|
||||
|
||||
['no_creditcard'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You can not access the ATM without a credit card',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['invalid_amount'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Invalid amount',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['invalid_input'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Invalid input',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['no_money_pocket'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You don\'t have that much money on you',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['no_money_bank'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You don\'t have that much money in the bank',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['not_send_yourself'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You can\'t send money to yourself',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['society_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Your society doesn\'t have that much money in the bank',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['not_use_bank'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You can\'t use the bank at this moment',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['bought_cc'] = {
|
||||
title = 'BANKING',
|
||||
text = 'You bought a credit card for ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
|
||||
-- TEXTUI LOCALES
|
||||
|
||||
['open_banking'] = {
|
||||
text = '[E] Access Bank',
|
||||
color = 'darkblue',
|
||||
side = 'left'
|
||||
},
|
||||
|
||||
['open_atm'] = {
|
||||
text = '[E] Access ATM',
|
||||
color = 'darkblue',
|
||||
side = 'left'
|
||||
},
|
||||
|
||||
|
||||
-- QB-TARGET LOCALES
|
||||
|
||||
['open_banking_target'] = {
|
||||
text = 'Access Bank',
|
||||
},
|
||||
|
||||
['open_atm_target'] = {
|
||||
text = 'Access ATM',
|
||||
},
|
||||
}
|
|
@ -1,221 +0,0 @@
|
|||
Locales['es'] = {
|
||||
|
||||
-- PIN RELATED LOCALES
|
||||
|
||||
['no_pin'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Diríjase primero a un banco para establecer un código PIN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_changed'] = {
|
||||
title = 'BANKING',
|
||||
text = 'El PIN se ha cambiado con éxito a ${s1}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['pin_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Es necesario tener ${s1}€ para cambiar su PIN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_digits'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Su PIN debe tener 4 dígitos',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_only_numbers'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sólo se pueden utilizar números',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
|
||||
-- IBAN RELATED LOCALES
|
||||
|
||||
['iban_not_exist'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Este IBAN no existe',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_in_use'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Este IBAN ya está en uso',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_only_numbers'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Sólo puede utilizar números en su IBAN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_changed'] = {
|
||||
title = 'BANKING',
|
||||
text = 'El IBAN ha sido cambiado con éxito a ${s1}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['iban_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Es necesario tener ${s1}€ para cambiar su IBAN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
|
||||
-- WITHDRAWN / DEPOSITED / TRANSFERRED / RECEIVED
|
||||
|
||||
['deposited'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Has depositado ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['withdrawn'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Has retirado ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['received_from'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Has recibido ${s1}€ de ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['transferred_to'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Has transferido ${s1}€ a ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['deposited_to'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Has depositado ${s1}€ a ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['someone_withdrawing'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Alguien ya se está retirando dinero',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['you_have_withdrawn'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Has retirado ${s1}€ de ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
|
||||
-- GENERAL LOCALES
|
||||
|
||||
['no_creditcard'] = {
|
||||
title = 'BANKING',
|
||||
text = 'No puedes acceder al cajero automático sin una tarjeta de crédito',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['invalid_amount'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Cantidad no válida',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['invalid_input'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Entrada no válida',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['no_money_pocket'] = {
|
||||
title = 'BANKING',
|
||||
text = 'No tienes tanto dinero encima',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['no_money_bank'] = {
|
||||
title = 'BANKING',
|
||||
text = 'No tienes tanto dinero en el banco',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['not_send_yourself'] = {
|
||||
title = 'BANKING',
|
||||
text = 'No puedes enviarte dinero a ti mismo',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['society_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Su sociedad no tiene tanto dinero en el banco',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['not_use_bank'] = {
|
||||
title = 'BANKING',
|
||||
text = 'No puedes acceder al banco en este momento',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['bought_cc'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Has comprado una tarjeta de crédito por ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
|
||||
-- TEXTUI LOCALES
|
||||
|
||||
['open_banking'] = {
|
||||
text = '[E] Acceder al banco',
|
||||
color = 'darkblue',
|
||||
side = 'left'
|
||||
},
|
||||
|
||||
['open_atm'] = {
|
||||
text = '[E] Acceder al ATM',
|
||||
color = 'darkblue',
|
||||
side = 'left'
|
||||
},
|
||||
|
||||
-- QB-TARGET LOCALES
|
||||
|
||||
['open_banking_target'] = {
|
||||
text = 'Acceder al banco',
|
||||
},
|
||||
|
||||
['open_atm_target'] = {
|
||||
text = 'Acceder al ATM',
|
||||
},
|
||||
|
||||
}
|
|
@ -1,221 +0,0 @@
|
|||
Locales['fr'] = {
|
||||
|
||||
-- LOCALES LIÉS AU PIN
|
||||
|
||||
['no_pin'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Rendez-vous d\'abord dans une banque pour définir un code PIN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_changed'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Le code PIN a été remplacé par ${s1}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['pin_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous devez disposer de ${s1}€ pour modifier votre code PIN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_digits'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Votre code PIN doit comporter 4 chiffres',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_only_numbers'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous ne pouvez utiliser que des chiffres',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
|
||||
-- LOCALES LIÉES À L'IBAN
|
||||
|
||||
['iban_not_exist'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Cet IBAN n\'existe pas',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_in_use'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Cet IBAN est déjà utilisé',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_only_numbers'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous ne pouvez utiliser que des chiffres dans votre IBAN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_changed'] = {
|
||||
title = 'BANKING',
|
||||
text = 'IBAN changé avec succès en ${s1}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['iban_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous devez avoir ${s1}€ pour changer votre IBAN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
|
||||
-- RETIRÉ / DÉPOSÉ / TRANSFÉRÉ / REÇU
|
||||
|
||||
['deposited'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous avez déposé ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['withdrawn'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous avez retiré ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['received_from'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous avez reçu ${s1}€ de ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['transferred_to'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous avez transféré ${s1}€ de ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['deposited_to'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous avez déposé ${s1}€ de ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['someone_withdrawing'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Quelqu\'un se retire déjà',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['you_have_withdrawn'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous avez retiré ${s1}€ depuis ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
|
||||
-- LOCALES GÉNÉRAUX
|
||||
|
||||
['no_creditcard'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous ne pouvez pas accéder au guichet automatique sans carte de crédit',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['invalid_amount'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Montant invalide',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['invalid_input'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Entrée invalide',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['no_money_pocket'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous n\'avez pas beaucoup d\'argent sur vous',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['no_money_bank'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous n\'avez pas beaucoup d\'argent à la banque',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['not_send_yourself'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous ne pouvez pas vous envoyer d\'argent',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['society_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Votre société n\'a pas autant d\'argent à la banque',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['not_use_bank'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous ne pouvez pas utiliser la banque pour le moment',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['bought_cc'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Vous avez acheté une carte de crédit pour ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
|
||||
-- TEXTUI LOCALES
|
||||
|
||||
['open_banking'] = {
|
||||
text = '[E] Accéder à la banque',
|
||||
color = 'darkblue',
|
||||
side = 'left'
|
||||
},
|
||||
|
||||
['open_atm'] = {
|
||||
text = '[E] Accéder au ATM',
|
||||
color = 'darkblue',
|
||||
side = 'left'
|
||||
},
|
||||
|
||||
-- QB-TARGET LOCALES
|
||||
|
||||
['open_banking_target'] = {
|
||||
text = 'Accéder à la banque',
|
||||
},
|
||||
|
||||
['open_atm_target'] = {
|
||||
text = 'Accéder au ATM',
|
||||
},
|
||||
|
||||
}
|
|
@ -1,221 +0,0 @@
|
|||
Locales['gr'] = {
|
||||
|
||||
-- ΣΧΕΤΙΚΟ ΤΟ PIN ΜΕΤΑΦΡΑΣΕΙΣ
|
||||
|
||||
['no_pin'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Απευθυνθείτε πρώτα σε μια τράπεζα για να ορίσετε έναν κωδικό PIN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_changed'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Το PIN άλλαξε με επιτυχία σε ${s1}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['pin_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Πρέπει να έχετε ${s1}€ για να αλλάξετε το PIN σας',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_digits'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Το PIN σας πρέπει να αποτελείται από 4 ψηφία',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_only_numbers'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Μπορείτε να χρησιμοποιήσετε μόνο αριθμούς',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
|
||||
-- ΣΧΕΤΙΚΟ IBAN ΜΕΤΑΦΡΑΣΕΙΣ
|
||||
|
||||
['iban_not_exist'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Αυτό το IBAN δεν υπάρχει',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_in_use'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Αυτό το IBAN χρησιμοποιείται ήδη',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_only_numbers'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Μπορείτε να χρησιμοποιήσετε μόνο αριθμούς στον IBAN σας',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_changed'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Το IBAN άλλαξε με επιτυχία σε ${s1}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['iban_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Πρέπει να έχετε ${s1}€ για να αλλάξετε τον IBAN σας',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
|
||||
-- ΑΝΑΛΗΨΗ / ΚΑΤΑΘΕΣΗ / ΜΕΤΑΒΙΒΑΣΗ / ΛΗΨΗ
|
||||
|
||||
['deposited'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Έχετε καταθέσει ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['withdrawn'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Έχετε αποσυρθεί ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['received_from'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Έχετε λάβει ${s1}€ από ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['transferred_to'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Έχετε μεταφέρει ${s1}€ στο ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['deposited_to'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Έχετε καταθέσει ${s1}€ στο ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['someone_withdrawing'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Κάποιος ήδη αποσύρεται',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['you_have_withdrawn'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Έχετε κάνει ανάληψη ${s1}€ από ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
|
||||
-- ΓΕΝΙΚΕΣ ΜΕΤΑΦΡΑΣΕΙΣ
|
||||
|
||||
['no_creditcard'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Δεν μπορείτε να έχετε πρόσβαση στο ΑΤΜ χωρίς πιστωτική κάρτα.',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['invalid_amount'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Μη έγκυρο ποσό',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['invalid_input'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Μη έγκυρη εισαγωγή',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['no_money_pocket'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Δεν έχεις τόσα χρήματα πάνω σου',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['no_money_bank'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Δεν έχεις τόσα χρήματα στην τράπεζα',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['not_send_yourself'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Δεν μπορείτε να στείλετε χρήματα στον εαυτό σας',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['society_no_money'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Η κοινωνία σας δεν έχει τόσα χρήματα στην τράπεζα',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['not_use_bank'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Δεν μπορείτε να χρησιμοποιήσετε την τράπεζα αυτή τη στιγμή',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['bought_cc'] = {
|
||||
title = 'BANKING',
|
||||
text = 'Αγοράσατε μια πιστωτική κάρτα για ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
|
||||
-- TEXTUI ΜΕΤΑΦΡΑΣΕΙΣ
|
||||
|
||||
['open_banking'] = {
|
||||
text = '[E] Να ανοίξω την τράπεζα',
|
||||
color = 'darkblue',
|
||||
side = 'left'
|
||||
},
|
||||
|
||||
['open_atm'] = {
|
||||
text = '[E] Aνοίξτε το ΑΤΜ',
|
||||
color = 'darkblue',
|
||||
side = 'left'
|
||||
},
|
||||
|
||||
-- QB-TARGET ΜΕΤΑΦΡΑΣΕΙΣ
|
||||
|
||||
['open_banking_target'] = {
|
||||
text = 'Να ανοίξω την τράπεζα',
|
||||
},
|
||||
|
||||
['open_atm_target'] = {
|
||||
text = 'Aνοίξτε το ΑΤΜ',
|
||||
},
|
||||
|
||||
}
|
|
@ -1,221 +0,0 @@
|
|||
Locales['pt'] = {
|
||||
|
||||
-- PIN
|
||||
|
||||
['no_pin'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Desloca-te a um banco para definires um código PIN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_changed'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Código PIN alterado com sucesso para ${s1}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['pin_no_money'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Necessitas de ${s1}€ para alterar o teu código PIN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_digits'] = {
|
||||
title = 'BANCO',
|
||||
text = 'O código PIN deve ter 4 dígitos',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['pin_only_numbers'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Apenas podes usar números',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
|
||||
-- IBAN
|
||||
|
||||
['iban_not_exist'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Este IBAN não existe',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_in_use'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Este IBAN já se encontra em uso',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_only_numbers'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Apenas podes usar números no IBAN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['iban_changed'] = {
|
||||
title = 'BANCO',
|
||||
text = 'IBAN alterado com sucesso para ${s1}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['iban_no_money'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Necessitas de ${s1}€ para alterar o teu IBAN',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
|
||||
-- LEVANTAMENTO / DEPÓSITO / TRANSFERÊNCIA / RECEBIDO
|
||||
|
||||
['deposited'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Depositaste ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['withdrawn'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Levantaste ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['received_from'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Recebeste ${s1}€ de ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['transferred_to'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Transferiste ${s1}€ para ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['deposited_to'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Depositaste ${s1}€ para ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
['someone_withdrawing'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Alguém já está a levantar dinheiro',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['you_have_withdrawn'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Levantaste ${s1}€ de ${s2}',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
|
||||
-- GERAL
|
||||
|
||||
['no_creditcard'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Não podes aceder ao multibanco sem um cartão de crédito',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['invalid_amount'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Valor inválido',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['invalid_input'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Input inválido',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['no_money_pocket'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Não tens dinheiro suficiente na mão',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['no_money_bank'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Não tens dinheiro suficiente no banco',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['not_send_yourself'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Não podes transferir dinheiro para ti próprio',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['society_no_money'] = {
|
||||
title = 'BANCO',
|
||||
text = 'A tua organização não tem dinheiro suficiente no banco',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['not_use_bank'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Não podes usar o banco neste momento',
|
||||
time = 5000,
|
||||
type = 'error'
|
||||
},
|
||||
|
||||
['bought_cc'] = {
|
||||
title = 'BANCO',
|
||||
text = 'Compraste um cartão de crédito por ${s1}€',
|
||||
time = 5000,
|
||||
type = 'success'
|
||||
},
|
||||
|
||||
|
||||
-- TEXTUI
|
||||
|
||||
['open_banking'] = {
|
||||
text = '[E] Aceder ao Banco',
|
||||
color = 'darkblue',
|
||||
side = 'left'
|
||||
},
|
||||
|
||||
['open_atm'] = {
|
||||
text = '[E] Aceder à ATM',
|
||||
color = 'darkblue',
|
||||
side = 'left'
|
||||
},
|
||||
|
||||
-- QB-TARGET LOCALES
|
||||
|
||||
['open_banking_target'] = {
|
||||
text = 'Aceder ao Banco',
|
||||
},
|
||||
|
||||
['open_atm_target'] = {
|
||||
text = 'Aceder à ATM',
|
||||
},
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
CREATE TABLE `okokbanking_transactions` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`receiver_identifier` varchar(255) NOT NULL,
|
||||
`receiver_name` varchar(255) NOT NULL,
|
||||
`sender_identifier` varchar(255) NOT NULL,
|
||||
`sender_name` varchar(255) NOT NULL,
|
||||
`date` varchar(255) NOT NULL,
|
||||
`value` int(50) NOT NULL,
|
||||
`type` varchar(255) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
|
||||
CREATE TABLE `okokbanking_societies` (
|
||||
`society` varchar(255) NULL DEFAULT NULL,
|
||||
`society_name` varchar(255) NULL DEFAULT NULL,
|
||||
`value` int(50) NULL DEFAULT NULL,
|
||||
`iban` varchar(255) NOT NULL,
|
||||
`is_withdrawing` int(1) NULL DEFAULT NULL
|
||||
);
|
||||
|
||||
ALTER TABLE `players` ADD COLUMN `pincode` int(50) NULL DEFAULT NULL;
|
||||
ALTER TABLE `management_funds` ADD COLUMN `iban` varchar(255) DEFAULT NULL;
|
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 6.7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.4 KiB |
Binary file not shown.
Before Width: | Height: | Size: 12 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.7 KiB |
|
@ -1,14 +0,0 @@
|
|||
<svg width="1001" height="324" viewBox="0 0 1001 324" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0)">
|
||||
<path d="M433.352 318.984H352.342L403.011 5.67909H484.018L433.352 318.984Z" fill="white"/>
|
||||
<path d="M727.023 13.3385C711.045 6.99923 685.701 -0.00012207 654.363 -0.00012207C574.362 -0.00012207 518.027 42.6604 517.681 103.652C517.017 148.652 558.016 173.646 588.68 188.65C620.022 203.982 630.676 213.989 630.676 227.656C630.357 248.645 605.35 258.32 582.026 258.32C549.683 258.32 532.353 253.332 506.017 241.654L495.35 236.649L484.013 306.979C503.013 315.635 538.019 323.316 574.362 323.653C659.365 323.653 714.704 281.653 715.359 216.656C715.683 180.99 694.033 153.662 647.359 131.331C619.025 116.995 601.673 107.329 601.673 92.6614C602.005 79.3272 616.35 65.6696 648.334 65.6696C674.67 65.0007 694.02 71.3311 708.679 77.666L716.006 80.9929L727.023 13.3385V13.3385Z" fill="white"/>
|
||||
<path d="M834.694 207.991C841.365 189.992 867.037 120.331 867.037 120.331C866.7 121 873.695 102 877.695 90.3357L883.357 117.332C883.357 117.332 898.698 192.327 902.029 207.991C889.368 207.991 850.695 207.991 834.694 207.991ZM934.691 5.67909H872.029C852.706 5.67909 838.025 11.3406 829.688 31.6741L709.357 318.979H794.359C794.359 318.979 808.353 280.31 811.361 271.982C820.686 271.982 903.376 271.982 915.372 271.982C917.698 282.981 925.038 318.979 925.038 318.979H1000.05L934.691 5.67909V5.67909Z" fill="white"/>
|
||||
<path d="M284.678 5.67909L205.342 219.323L196.673 175.993C182.005 125.997 136.004 71.6767 84.6699 44.6672L157.339 318.652H243.006L370.34 5.67909H284.678V5.67909Z" fill="white"/>
|
||||
<path d="M131.672 5.67909H1.33341L0 12.0095C101.672 38.009 169.008 100.68 196.673 176.007L168.339 32.0152C163.674 12.0051 149.338 6.33916 131.672 5.67909Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0">
|
||||
<rect width="1000.05" height="323.653" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.9 KiB |
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
@ -1,882 +0,0 @@
|
|||
@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css");
|
||||
@import url('https://fonts.googleapis.com/css2?family=Tajawal:wght@200;300;400;500;700;800;900&display=swap');
|
||||
|
||||
*,*:focus,*:hover{
|
||||
outline:none;
|
||||
}
|
||||
|
||||
html {
|
||||
font-size: calc(16 / 19.2 * 1vw);
|
||||
}
|
||||
|
||||
@media (min-aspect-ratio: 16 / 9) {
|
||||
html {
|
||||
font-size: calc(16 / 10.8 * 1vh);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Tajawal', sans-serif;
|
||||
background: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.card {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.card-body {
|
||||
flex: none;
|
||||
}
|
||||
|
||||
.main_card {
|
||||
width: 62.5rem;
|
||||
border-radius: 1.25rem;
|
||||
background-color: #202128;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
border: none;
|
||||
display: none;
|
||||
box-shadow: 0rem 0rem 0.313rem 0rem rgba(10, 10, 10, 0.3);
|
||||
}
|
||||
|
||||
.main_card-body {
|
||||
background-color: transparent;
|
||||
color: #d5d6da;
|
||||
font-size: 0.9375rem;
|
||||
font-weight: 500;
|
||||
vertical-align: middle;
|
||||
font-weight: 600;
|
||||
height: 45rem;
|
||||
}
|
||||
|
||||
.creditcard-classic_card {
|
||||
border-radius: 0.9375rem;
|
||||
width: 15.5rem;
|
||||
height: 10.5625rem;
|
||||
background: url('img/classic.png');
|
||||
border: none;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 1rem;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.creditcard-classic_card-body {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.logo {
|
||||
max-width: 9.5rem;
|
||||
max-height: 2.64rem;
|
||||
}
|
||||
|
||||
hr {
|
||||
color: #3e3f4b;
|
||||
opacity: 1;
|
||||
height: 0.00625rem;
|
||||
}
|
||||
|
||||
hr:not([size]) {
|
||||
height: 0.00625rem;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.dataTable-table > thead > tr > th {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.dataTable-wrapper.no-footer .dataTable-container {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.dataTable-top, .dataTable-bottom {
|
||||
padding: 0 0;
|
||||
}
|
||||
|
||||
thead {
|
||||
display: none;
|
||||
}
|
||||
|
||||
tr {
|
||||
background-color: #2e2f36;
|
||||
margin-bottom: 0.625rem;
|
||||
font-size: 1.25rem;
|
||||
transition: .25s;
|
||||
}
|
||||
|
||||
tr:hover {
|
||||
background-color: #292a31;
|
||||
transition: .25s;
|
||||
}
|
||||
|
||||
|
||||
td:first-child {
|
||||
border-top-left-radius: 0.625rem;
|
||||
border-bottom-left-radius: 0.625rem;
|
||||
}
|
||||
|
||||
td:last-child {
|
||||
border-top-right-radius: 0.625rem;
|
||||
border-bottom-right-radius: 0.625rem;
|
||||
}
|
||||
|
||||
.dataTable-table {
|
||||
border-collapse:separate;
|
||||
border-spacing: 0rem 0.4375rem;
|
||||
}
|
||||
|
||||
.sidebar-item {
|
||||
color: #8f9094;
|
||||
font-size: 1rem;
|
||||
padding: 0.625rem;
|
||||
border-radius: 0.625rem;
|
||||
font-weight: 500;
|
||||
transition: 0.4s;
|
||||
width: 9.5rem;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
.sidebar-item:hover {
|
||||
background-color: #1f5eff;
|
||||
cursor: pointer;
|
||||
transition: 0.25s;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.sidebar-title {
|
||||
color: #8d8d8d;
|
||||
font-size: 0.875rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.selected {
|
||||
color: #fff;
|
||||
background-color: #1f5eff;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.bi-credit-card:hover {
|
||||
fill: red;
|
||||
}
|
||||
|
||||
.selected-page {
|
||||
color: #fff;
|
||||
font-size: 1.75rem;
|
||||
margin-left: 0.9375rem;
|
||||
}
|
||||
|
||||
.username {
|
||||
color: #fff;
|
||||
font-weight: 500;
|
||||
font-size: 1.125rem;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
border-radius: 50%;
|
||||
width: 2.5rem;
|
||||
margin-left: 0.625rem;
|
||||
}
|
||||
|
||||
.fa-wifi {
|
||||
transform: rotate(90deg);
|
||||
color: #fff;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.btn {
|
||||
font-weight: 500;
|
||||
font-size: 1.125rem;
|
||||
padding: 0.8125rem 1.0625rem;
|
||||
border: none;
|
||||
border-radius: 0.125rem;
|
||||
transition: 0.25s;
|
||||
letter-spacing: 0.0125rem;
|
||||
}
|
||||
|
||||
.btn:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.btn-blue {
|
||||
background-color: #1f5eff;
|
||||
color: #e6e6e6;
|
||||
}
|
||||
|
||||
.btn.btn-blue:hover {
|
||||
background-color: #0a4df9;
|
||||
color: #e6e6e6;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
background-color: #292a31;
|
||||
border-radius: 0.625rem;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
border: none;
|
||||
background-color: #1d1e24;
|
||||
height: 5rem;
|
||||
font-size: 1.875rem;
|
||||
border-radius: 0.625rem;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.form-control:focus {
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
background-color: #1d1e24;
|
||||
box-shadow: 0rem 0rem 0.3125rem 0.0625rem #1f5eff !important;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
input::-webkit-outer-spin-button,
|
||||
input::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.viewall-badge {
|
||||
background-color: #1f5eff !important;
|
||||
transition: 0.25s;
|
||||
}
|
||||
|
||||
.viewall-badge:hover {
|
||||
background-color: #0a4df9 !important;
|
||||
transition: 0.25s;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
color: #c7c7c9;
|
||||
position: absolute;
|
||||
right: 1.25rem;
|
||||
top: 0.9rem;
|
||||
transition: .25s;
|
||||
font-size: 1.6rem;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.close-button:hover {
|
||||
color: #fff;
|
||||
transition: .25s;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.dataTable-input {
|
||||
background-color: #2e2f36;
|
||||
border: none;
|
||||
border-radius: 0.625rem;
|
||||
color: #fff;
|
||||
padding: 0.375rem 0.75rem;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
.dataTable-pagination .active a, .dataTable-pagination .active a:focus, .dataTable-pagination .active a:hover {
|
||||
background-color: #1f5eff;
|
||||
cursor: pointer;
|
||||
transition: .25s;
|
||||
}
|
||||
|
||||
.dataTable-pagination a {
|
||||
border-radius: 0.313rem;
|
||||
color: #fff;
|
||||
background-color: #2e2f36;
|
||||
transition: .25s;
|
||||
padding: 0.375rem 0.75rem;
|
||||
margin-left: 0.125rem;
|
||||
}
|
||||
|
||||
.dataTable-pagination a:hover {
|
||||
background-color: #292a31;
|
||||
transition: .25s;
|
||||
}
|
||||
|
||||
.dataTable-pagination {
|
||||
position: fixed;
|
||||
right: 1rem;
|
||||
bottom: 1rem;
|
||||
}
|
||||
|
||||
.dataTable-bottom {
|
||||
padding: 0rem 0rem;
|
||||
font-size: 1.125rem;
|
||||
}
|
||||
|
||||
.dataTable-top > nav:last-child, .dataTable-top > div:last-child, .dataTable-bottom > nav:last-child, .dataTable-bottom > div:last-child {
|
||||
float: none;
|
||||
}
|
||||
|
||||
.dataTable-top {
|
||||
float: right;
|
||||
}
|
||||
|
||||
#new_iban {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
.atm_card {
|
||||
width: 20rem;
|
||||
border-radius: 1.25rem;
|
||||
background-color: #202128;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
border: none;
|
||||
display: none;
|
||||
box-shadow: 0rem 0rem 0.313rem 0rem rgba(10, 10, 10, 0.3);
|
||||
}
|
||||
|
||||
.atm_card-body {
|
||||
background-color: transparent;
|
||||
color: #8f9094;
|
||||
font-size: 0.9375rem;
|
||||
font-weight: 500;
|
||||
vertical-align: middle;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.dots {
|
||||
width: 50%;
|
||||
justify-content: space-around;
|
||||
padding: 1em;
|
||||
padding-top: 2em;
|
||||
}
|
||||
|
||||
.dot {
|
||||
position: relative;
|
||||
background: rgba(143, 144, 148, 0.5);
|
||||
border-radius: 50%;
|
||||
width: 1.6em;
|
||||
height: 1.6em;
|
||||
transform: scale3d(0.6, 0.6, 0.6);
|
||||
}
|
||||
|
||||
.dot.active {
|
||||
-webkit-animation: growDot 0.5s ease;
|
||||
animation: growDot 0.5s ease;
|
||||
-webkit-animation-fill-mode: forwards;
|
||||
animation-fill-mode: forwards;
|
||||
}
|
||||
|
||||
.dot.wrong {
|
||||
-webkit-animation: wrong 0.9s ease;
|
||||
animation: wrong 0.9s ease;
|
||||
}
|
||||
|
||||
.dot.correct {
|
||||
-webkit-animation: correct 0.9s ease;
|
||||
animation: correct 0.9s ease;
|
||||
}
|
||||
|
||||
.dot.clear {
|
||||
-webkit-animation: clear 0.9s ease;
|
||||
animation: clear 0.9s ease;
|
||||
}
|
||||
|
||||
.numbers {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
align-content: flex-end;
|
||||
margin: 0em 0;
|
||||
}
|
||||
|
||||
.number {
|
||||
position: relative;
|
||||
width: 2.5em;
|
||||
height: 2.5em;
|
||||
margin: 0.5em;
|
||||
text-align: center;
|
||||
line-height: 2.5em;
|
||||
font-weight: 400;
|
||||
font-size: 1.8em;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
transition: all 0.5s ease;
|
||||
border-radius: 0.625rem;
|
||||
border: 0.125rem solid #1f5eff;
|
||||
}
|
||||
.number:hover {
|
||||
background-color: #1f5eff;
|
||||
color: #fff;
|
||||
border-radius: 0.625rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.number:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: -0.125rem;
|
||||
width: 2.5em;
|
||||
height: 2.5em;
|
||||
transition: all 0.5s ease;
|
||||
}
|
||||
.number.grow {
|
||||
-webkit-animation: grow 0.6s ease;
|
||||
animation: grow 0.6s ease;
|
||||
}
|
||||
|
||||
@keyframes growDot {
|
||||
100% {
|
||||
background: white;
|
||||
transform: scale3d(0.85, 0.85, 0.85);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes grow {
|
||||
50% {
|
||||
transform: scale3d(1.1, 1.1, 1.1);
|
||||
}
|
||||
100% {
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes wrong {
|
||||
20% {
|
||||
background: #ff0000;
|
||||
transform: scale3d(0.85, 0.85, 0.85);
|
||||
left: 0;
|
||||
}
|
||||
40% {
|
||||
left: -0.3125rem;
|
||||
}
|
||||
60% {
|
||||
left: 0.625rem;
|
||||
}
|
||||
80% {
|
||||
left: -0.3125rem;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes correct {
|
||||
20% {
|
||||
background: #1ebc62;
|
||||
transform: scale3d(0.85, 0.85, 0.85);
|
||||
top: 0;
|
||||
}
|
||||
40% {
|
||||
top: -0.3125rem;
|
||||
}
|
||||
60% {
|
||||
top: 0.625rem;
|
||||
}
|
||||
80% {
|
||||
top: -0.3125rem;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes clear {
|
||||
20% {
|
||||
background: #1f5eff;
|
||||
transform: scale3d(0.85, 0.85, 0.85);
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.load {
|
||||
position: relative;
|
||||
width: 9.375rem;
|
||||
height: 9.375rem;
|
||||
border-radius: 50%;
|
||||
border: 0.625rem solid transparent;
|
||||
border-top: 0.625rem solid #1f5eff;
|
||||
border-bottom: 0.625rem solid #1f5eff;
|
||||
animation: rotateAntiCW 1.8s linear infinite;
|
||||
}
|
||||
|
||||
.load::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 8.125rem;
|
||||
height: 8.125rem;
|
||||
border-radius: 50%;
|
||||
border: 0.625rem solid transparent;
|
||||
border-left: 0.625rem solid #fff;
|
||||
border-right: 0.625rem solid #fff;
|
||||
animation: rotate 1s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes rotate {
|
||||
0%{transform: rotate(0deg);}
|
||||
100%{transform: rotate(-360deg);}
|
||||
}
|
||||
|
||||
@keyframes rotateAntiCW {
|
||||
0%{transform: rotate(0deg);}
|
||||
100%{transform: rotate(360deg);}
|
||||
}
|
||||
|
||||
input[type=password]:not(:placeholder-shown) {
|
||||
font-family: Verdana, sans-serif;
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
.dataTable-table > tbody > tr > td, .dataTable-table > tbody > tr > th, .dataTable-table > tfoot > tr > td, .dataTable-table > tfoot > tr > th, .dataTable-table > thead > tr > td, .dataTable-table > thead > tr > th {
|
||||
vertical-align: top;
|
||||
padding: 0.5rem 0.625rem;
|
||||
}
|
||||
|
||||
.card-header:first-child {
|
||||
border-radius: calc(0.25rem - 0.0625rem) calc(0.25rem - 0.0625rem) 0 0;
|
||||
}
|
||||
|
||||
.card-header {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
#myChart {
|
||||
margin-top: 0!important;
|
||||
margin-top: 0.3125rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.dataTable-info {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#last-t-body .dataTable-bottom .dataTable-pagination {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.sidebar-s {
|
||||
border-right: 0.0625rem solid rgba(62, 63, 75);
|
||||
width: 11.0625rem;
|
||||
}
|
||||
|
||||
.tab-s {
|
||||
width: 82%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding-right: calc(var(--bs-gutter-x) * .45);
|
||||
}
|
||||
|
||||
.wallet-div {
|
||||
font-size: 0.875rem;
|
||||
margin-top: -0.75rem;
|
||||
font-weight: 500;
|
||||
position: absolute;
|
||||
right: 7.1%;
|
||||
}
|
||||
|
||||
.chart-main {
|
||||
border-right: 0.0625rem solid rgba(62, 63, 75);
|
||||
}
|
||||
|
||||
.chart-card, .settings-card {
|
||||
background-color: transparent;
|
||||
border-radius: 0.625rem;
|
||||
box-shadow: 0rem 0rem 0.313rem 0rem rgba(10, 10, 10, 0.50);
|
||||
}
|
||||
|
||||
.card-o-header {
|
||||
background-color: #292a31;
|
||||
border-top-right-radius: 0.625rem !important;
|
||||
border-top-left-radius: 0.625rem !important;
|
||||
}
|
||||
|
||||
.card-o-title {
|
||||
color: #fff;
|
||||
font-size: 1.125rem;
|
||||
}
|
||||
|
||||
.chart-card-body {
|
||||
background-color: #1d1e24;
|
||||
border-bottom-left-radius: 0.625rem;
|
||||
border-bottom-right-radius: 0.625rem;
|
||||
padding: 0.6rem 1rem 0.5rem 1rem;
|
||||
}
|
||||
|
||||
.chart-div {
|
||||
height: 13.107rem;
|
||||
min-height: 13.107rem;
|
||||
}
|
||||
|
||||
.last-t-card, .actions-card, .settings2-card {
|
||||
background-color: transparent;
|
||||
border-radius: 0.625rem;
|
||||
box-shadow: 0rem 0rem 0.313rem 0rem rgba(10, 10, 10, 0.50);
|
||||
margin-top: 0.75rem;
|
||||
}
|
||||
|
||||
#view_all_transactions, #view_all_transactions_society, .buy_new_card {
|
||||
position: absolute;
|
||||
font-size: 0.875rem;
|
||||
right: 0.5625rem;
|
||||
top: 0.625rem;
|
||||
}
|
||||
|
||||
#last-t-body {
|
||||
background-color: #1d1e24;
|
||||
border-bottom-left-radius: 0.625rem;
|
||||
border-bottom-right-radius: 0.625rem;
|
||||
padding: 0.6rem 1rem;
|
||||
padding: 0.51rem 1rem 0.6rem 1rem;
|
||||
height: 18.05rem;
|
||||
}
|
||||
|
||||
#text_atm {
|
||||
font-size: 1.125rem;
|
||||
}
|
||||
|
||||
#depositMoney, #withdrawMoney, #transferMoney, .buyccbtn {
|
||||
border-radius: 0.625rem;
|
||||
flex-basis: 100%;
|
||||
margin-top: 1.125rem;
|
||||
}
|
||||
|
||||
#transfer_iban {
|
||||
margin-top: 1.125rem;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.w25 {
|
||||
width: 25rem;
|
||||
}
|
||||
|
||||
.w20p {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
.modal-t {
|
||||
font-weight: 600;
|
||||
font-size: 1.875rem;
|
||||
}
|
||||
|
||||
.ccard-card {
|
||||
background-color: transparent;
|
||||
border-radius: 0.625rem;
|
||||
box-shadow: 0rem 0rem 0.313rem 0rem rgba(10, 10, 10, 0.50);
|
||||
}
|
||||
|
||||
.ccard-body {
|
||||
background-color: #1d1e24;
|
||||
border-bottom-left-radius: 0.625rem;
|
||||
border-bottom-right-radius: 0.625rem;
|
||||
font-size: 1rem;
|
||||
height: 19.4375rem;
|
||||
}
|
||||
|
||||
.ccard-name {
|
||||
color: #fff;
|
||||
font-size: 0.75rem;
|
||||
margin-left: 0.3125rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.mt38p {
|
||||
margin-top: 38%;
|
||||
}
|
||||
|
||||
.ccard-status {
|
||||
font-weight: 500;
|
||||
color: #fff;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.ccard-active {
|
||||
color: #fff;
|
||||
font-size: 1.5rem;
|
||||
color: #fff;
|
||||
line-height: 1;
|
||||
text-shadow: 0rem 0rem 0.125rem rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.ccard-valid {
|
||||
width: 1.5625rem;
|
||||
line-height: 1;
|
||||
margin-right: 2.125rem;
|
||||
}
|
||||
|
||||
.ccard-thru {
|
||||
color: #fff;
|
||||
font-size: 0.5rem;
|
||||
font-weight: 500;
|
||||
margin-right: 0.1875rem;
|
||||
}
|
||||
|
||||
.ccard-exp {
|
||||
color: #fff;
|
||||
font-weight: 500;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.ccard-fs {
|
||||
font-size: 1.28rem;
|
||||
}
|
||||
|
||||
.fff {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.actions-card_body, .settings-card_body {
|
||||
background-color: #1d1e24;
|
||||
border-bottom-left-radius: 0.625rem;
|
||||
border-bottom-right-radius: 0.625rem;
|
||||
}
|
||||
|
||||
#depositMoneyModal, #withdrawMoneyModal, #transferMoneyModal {
|
||||
border-radius: 0.625rem;
|
||||
flex-basis: 100%;
|
||||
}
|
||||
|
||||
.mt4375 {
|
||||
margin-top: 0.4375rem;
|
||||
}
|
||||
|
||||
.lastT-action, .transactions-action {
|
||||
background-color: #1d1e24;
|
||||
padding: 0.3125rem 0.625rem 0.3125rem 0.625rem;
|
||||
border-radius: 0.625rem;
|
||||
}
|
||||
|
||||
.lastT-name-div {
|
||||
font-weight: 500;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.lastT-name, .transactions-name {
|
||||
color: #1f5eff;
|
||||
text-transform: capitalize;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.mtm3125 {
|
||||
margin-top: -0.3125rem;
|
||||
}
|
||||
|
||||
.fw500 {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.lastT-received, .transactions-received {
|
||||
color: #2ecc71;
|
||||
}
|
||||
|
||||
.fs1125 {
|
||||
font-size: 1.125rem;
|
||||
}
|
||||
|
||||
.fs1875 {
|
||||
font-size: 1.875rem;
|
||||
}
|
||||
|
||||
.settings-col {
|
||||
flex: 1 1 50%;
|
||||
}
|
||||
|
||||
.changeiban-card, .changepin-card {
|
||||
background-color: #292a31;
|
||||
border-radius: 0.625rem;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.fs15 {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
#new_iban {
|
||||
margin-top: 0.75rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#change_iban {
|
||||
border-radius: 0.625rem;
|
||||
flex-basis: 100%;
|
||||
margin-top: 0.75rem;
|
||||
width: 100%;
|
||||
font-size: 1.17rem;
|
||||
}
|
||||
|
||||
.settings_info-card {
|
||||
background-color: #1f5eff;
|
||||
border-radius: 0.625rem;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#new_pin {
|
||||
margin-top: 0.75rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#change_pin {
|
||||
border-radius: 0.625rem;
|
||||
flex-basis: 100%;
|
||||
margin-top: 0.75rem;
|
||||
width: 100%;
|
||||
font-size: 1.17rem;
|
||||
}
|
||||
|
||||
.pr05 {
|
||||
padding-right: 0.5rem;
|
||||
}
|
||||
|
||||
.pl05 {
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
|
||||
.stats-title {
|
||||
background-color: #1f5eff;
|
||||
border-radius: 0.625rem;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.card-title {
|
||||
font-weight: 600;
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
.fw125 {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
.transactions-name-div {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.ldata-txt {
|
||||
font-size: 2.5rem;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.floatr {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.btn-dark {
|
||||
background-color: #1d1e24;
|
||||
}
|
||||
|
||||
.btn-dark:hover {
|
||||
background-color: #1b1c22;
|
||||
}
|
||||
|
||||
.modal-buycc {
|
||||
width: 35rem;
|
||||
}
|
||||
|
||||
#transactionsTable {
|
||||
max-width: 100.1%;
|
||||
width: 100.1%;
|
||||
border-spacing: 0rem 0.5rem;
|
||||
}
|
||||
|
||||
#transactionsData tr {
|
||||
height: 4.55rem;
|
||||
}
|
|
@ -1,129 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="UTF-8">
|
||||
<head>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
||||
<link href="https://cdn.jsdelivr.net/npm/simple-datatables@5.0/dist/style.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
|
||||
<link href="styles.css" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="card main_card">
|
||||
<div class="card-body main_card-body">
|
||||
<div class="row h-100" id="menu"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card atm_card">
|
||||
<div class="card-body atm_card-body d-flex justify-content-center align-items-center flex-column">
|
||||
<span class="close-button close-atm"><i class="fas fa-times"></i></span>
|
||||
<div class="text-center">
|
||||
<img src="img/logo.png" class="logo">
|
||||
</div>
|
||||
<div class="dots d-flex">
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
<div class="dot"></div>
|
||||
</div>
|
||||
<span id="text_atm">Enter your account's PIN code</span>
|
||||
<div class="numbers">
|
||||
<div class="row">
|
||||
<div class="number">1</div>
|
||||
<div class="number">2</div>
|
||||
<div class="number">3</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="number">4</div>
|
||||
<div class="number">5</div>
|
||||
<div class="number">6</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="number">7</div>
|
||||
<div class="number">8</div>
|
||||
<div class="number">9</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="number">C</div>
|
||||
<div class="number">0</div>
|
||||
<div class="number">OK</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Deposit Modal -->
|
||||
<div class="modal fade" id="depositModal" tabindex="-1">
|
||||
<div class="modal-dialog modal-dialog-centered w25">
|
||||
<div class="modal-content myinvoices_modal-content">
|
||||
<div class="modal-body p-4 text-center">
|
||||
<span class="modal-t">Deposit Money</span>
|
||||
<span class="close-button" data-bs-dismiss="modal"><i class="fas fa-times"></i></span>
|
||||
<div class="d-flex justify-content-center flex-column mt-3">
|
||||
<input type="number" id="deposit_value" class="form-control flex-grow-1 text-center" placeholder="Amount" onkeyup="checkIfEmpty()">
|
||||
<button type="button" id="depositMoney" class="btn btn-blue flex-grow-1 fs1875" data-bs-toggle="modal" data-bs-target="#depositModal" disabled><i class="bi bi-upload"></i> DEPOSIT</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Withdraw Modal -->
|
||||
<div class="modal fade" id="withdrawModal" tabindex="-1">
|
||||
<div class="modal-dialog modal-dialog-centered w25">
|
||||
<div class="modal-content myinvoices_modal-content">
|
||||
<div class="modal-body p-4 text-center">
|
||||
<span class="modal-t">Withdraw Money</span>
|
||||
<span class="close-button" data-bs-dismiss="modal"><i class="fas fa-times"></i></span>
|
||||
<div class="d-flex justify-content-center flex-column mt-3">
|
||||
<input type="number" id="withdraw_value" class="form-control flex-grow-1 text-center" placeholder="Amount" onkeyup="checkIfEmpty()">
|
||||
<button type="button" id="withdrawMoney" class="btn btn-blue flex-grow-1 fs1875" data-bs-toggle="modal" data-bs-target="#withdrawModal" disabled><i class="bi bi-download"></i> WITHDRAW</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Transfer Modal -->
|
||||
<div class="modal fade" id="transferModal" tabindex="-1">
|
||||
<div class="modal-dialog modal-dialog-centered w25">
|
||||
<div class="modal-content myinvoices_modal-content">
|
||||
<div class="modal-body p-4 text-center">
|
||||
<span class="modal-t">Transfer Money</span>
|
||||
<span class="close-button" data-bs-dismiss="modal"><i class="fas fa-times"></i></span>
|
||||
<div class="d-flex justify-content-center flex-column mt-3">
|
||||
<input type="number" id="transfer_value" class="form-control flex-grow-1 text-center" placeholder="Amount" onkeyup="checkIfEmpty()">
|
||||
<input type="text" id="transfer_iban" class="form-control flex-grow-1 text-center" placeholder="IBAN" onkeyup="checkIfEmpty()">
|
||||
<button type="button" id="transferMoney" class="btn btn-blue flex-grow-1 fs1875" data-bs-toggle="modal" data-bs-target="#transferModal" disabled><i class="fas fa-exchange-alt"></i> TRANSFER</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Buy CC -->
|
||||
<div class="modal fade" id="buycc_modal" tabindex="-1">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered modal-buycc">
|
||||
<div class="modal-content myinvoices_modal-content">
|
||||
<div class="modal-body p-4 text-center">
|
||||
<span class="modal-t">Are you sure?</span>
|
||||
<hr>
|
||||
<span class="close-button" data-bs-dismiss="modal"><i class="fas fa-times"></i></span>
|
||||
<div class="text-center modal-t fw500">Do you want to buy a new Credit Card?</div>
|
||||
<div class="d-flex justify-content-center align-items-center mt-2">
|
||||
<button type="button" class="btn btn-dark w-50 me-2 buyccbtn fs1875" data-bs-dismiss="modal"><i class="fas fa-times"></i> CANCEL</button>
|
||||
<button type="button" id="buy_new_cc" class="btn btn-blue w-50 ms-2 buyccbtn fs1875" data-bs-dismiss="modal"><i class="fas fa-shopping-cart"></i> BUY</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/simple-datatables@5.0" crossorigin="anonymous"></script>
|
||||
<script src="scripts.js" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue