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 |
File diff suppressed because one or more lines are too long
|
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