TGIANN
YoutubeDiscordTebexFivem
  • Main
    • Welcome
    • How to Find My Transaction ID
    • How can i download my script
    • How can i transfer my script
    • Whats escrow system?
    • Switching from MySQL Async to oxmysql
    • Basic Aces & Principals overview/guide
    • Using QB scripts in QBOX
    • How can i use Fivemanage
  • Common errors
    • SCRIPT ERROR: ?:-1: attempt to call a nil value
    • TGIANN-Core script is not in my keymaster account
    • You lack the required entitlement to use tgiann-*
    • Error parsing script / Failed to load script
    • Error: syntax error near '<\1>'
    • When I buy something, the money goes negative
    • Failed to verify protected resource
  • Map
    • lumi-delperropier
      • Setup
      • Conflicts
      • Disable NPC
      • Rcore Funfair Cords
      • CS-Hall Config
  • Scripts
    • tgiann-animpos-photo-cam
      • Editable Files
      • Config File
      • Exports
    • tgiann-self-storage-v2
      • Editable Files
        • Language File
        • Client Editable
        • Server Editable
      • Config File
    • tgiann-radio
      • Guides
        • Recommended settings for PMA Voice
        • How to change the animation
      • Installation
      • Config file
      • Editable Files
        • Language File
        • Client Editable
        • Server Editable
      • Exports
    • tgiann-core
      • Config file
      • Exports
      • Integration
        • QB
          • DrawText
    • tgiann-lumihud
      • Events / Exports
      • Editable Files
        • Language File
        • Client
          • playerStatus.lua
          • qbclient.lua
          • editable.lua
          • moneyEditable.lua
          • harnessBeltEditable.lua
        • Server
          • qbserver.lua
          • editable.lua
      • Config Files
        • config.lua
        • configHudSettings
        • configWeaponList.lua
        • qbStressConfig
      • Integration
        • Notify
        • Progressbar
    • tgiann-realparking
      • Events / Exports
      • Editable Files
        • Language File
        • Client
          • editable.lua
        • Server
          • editable.lua
      • Config Files
        • blipsConfig.lua
        • config.lua
        • impoundConfig.lua
        • insuranceConfig.lua
    • tgiann-vehicleshop
      • Exports
      • Editable Files
        • Language File
        • Client
          • editable.lua
        • Server
          • editable.lua
          • commands.lua
      • Config Files
    • tgiann-gps
      • Client Exports
      • Editable Files
        • config.lua
        • client/editable.lua
        • Language File
    • tgiann-clothing
      • Guides
        • Installation
          • ESX
          • QB
          • QBX
          • tgiann-inventory clothe items
        • Migration
        • How to take clothes images
      • Comman Proplems
      • Events / Exports
      • Admin Commands
      • Editable Files
        • client/editable.lua
        • server/editable.lua
      • Configs
        • blacklist
          • famale.lua
          • male.lua
        • clotheList
          • global
            • female.lua
            • male.lua
        • clothingPrice
          • female.lua
          • male.lua
        • tattoo
          • customTattoo.lua
          • tattoo.lua
        • clothingRoomsOutfits.lua
        • config.lua
        • hairOverlays.lua
        • pedList.lua
    • tgiann-inventory
      • Guides
        • Installation
          • ESX
          • QB
          • QBOX
        • How to adapt your script
        • How do money as item
          • QB
          • QBOX
          • ESX
            • ESX V11
            • ESX V12
        • Creating Items
        • Item İmages
        • Item Metadata
        • Migration
      • Common Problems
      • Exports
        • Server
        • Client
      • Hooks
      • Events
        • Server
        • Client
      • Admin Commands
      • Editable Files
        • client/editable.lua
        • client/topheader.lua
        • server/editable.lua
        • server/commands.lua
        • server/convert.lua
      • Configs
        • config.lua
        • configAmmo.lua
        • configAntiSwimingItems
        • configAttachment.lua
        • configAttachmentName.lua
        • configBlockItems.lua
        • configCarryItems.lua
        • configClotheBackpack.lua
        • configCommands.lua
        • configCraft.lua
        • configDecayableItems.lua
        • configDrop.lua
        • configEditableItems.lua
        • configFilter.lua
        • configItemStash.lua
        • configMaxStack.lua
        • configMaxUseAmount.lua
        • configMetadata.lua
        • configMetadataAdvance.js
        • configRealisticArmor.lua
        • configShop.lua
        • configStashes.lua
        • configThrowableItems.lua
        • configVendingMachine.lua
        • configWeapon.lua
    • lumi-delperropier-texonstone
      • Setup
    • tgiann-antirpf
      • Editable files
    • tgiann-secondhand
      • Editable files
      • config.lua
    • tgiann-multicharacter + spawn selector
      • Guides
        • Installation
        • Discord Permmission integration
        • Tebex integration
      • Common Problems
      • Configs
        • config.lua
        • multicharConfig.lua
        • photocamConfig.lua
        • spawnSelectorConfig.lua
      • Editable Files
        • Language File
        • client/editable.lua
        • server/editable.lua
        • server/commands.lua
    • tgiann-attachment
      • Config file
      • Event List
    • tgiann-bank
      • Migration
      • Exports
      • Config files
        • config.lua
        • configGangAccounts.lua
        • configHacking.lua
        • configJob.lua
        • configJobAccounts.lua
      • Editable Files
    • tgiann-bettercombat
      • Config file
      • Event List
    • tgiann-bobcat
      • Config file
    • tgiann-boombox
      • Config file
    • tgiann-vehiclecontrol
      • Exports
      • Config file
      • Editable Files
    • tgiann-card
      • Config file
      • QB Core Item
      • Ox Inventory Item
      • Sql File
    • tgiann-carhud
      • Config file
    • tgiann-carmod
      • Config file
      • Sql File
    • tgiann-chair
      • Config file
      • QB Core Item
    • tgiann-chopshop
      • Config file
      • QB Core Item
    • tgiann-damage-indicator
      • Config file
      • Editable files
    • tgiann-dna
      • Sql File
    • tgiann-document
      • Config file
      • QB Core Item
      • Ox Inventory Item
      • Sql File
    • tgiann-doorlock-v2
      • How can i find door model and other details
      • Config file
    • tgiann-dropweaponwhendie
      • Config file
    • tgiann-drugsell
      • Config file
    • tgiann-erpv2
      • Config file
    • tgiann-fallouthacker
      • Usage
    • tgiann-garage
      • Config file
      • Event List
      • Exports List
      • QB Sql File
      • ESX Sql File
    • tgiann-hotwire
      • Item List
      • Editable Files
        • Language File
        • Client/editable.lua
        • Client/migrate.lua
        • Server/commands.lua
      • Config file
      • Exports
    • tgiann-house
      • Stash Function
      • Common errors
      • Config file
      • Event List
      • Sql File
      • Editable Files
    • tgiann-hud
      • Config file
    • tgiann-hudv2
      • Config file
      • Event List
    • tgiann-job
      • Config file
      • Sql File
    • tgiann-market
      • Editable Files
      • Config file
      • Sql File
    • tgiann-mdt
      • Config file
      • ESX Sql File
      • QB Sql File
    • tgiann-megaphone
      • Setup
        • QB Core Item
        • Ox Inventory Item
      • Language File
      • Config file
      • Event List
      • Exports List
      • Recommended PMA Voice Settings
      • Common Problems
    • tgiann-moder-hud
      • Config file
      • Editable files
      • Event list
    • tgiann-naked
      • Config file
      • Editable Files
      • Sql File
      • Wrong Clothes
    • tgiann-platechanger
      • Config file
    • tgiann-policealert
      • Config file
      • Event List
    • tgiann-postcard
      • Editable Files
      • Config file
      • QB Core Item
      • Ox Inventory Item
    • tgiann-radio (Old)
      • Common errors
      • Config file
      • Event List
      • Exports List
      • Recommended settings for PMA Voice
    • tgiann-rentscooter
      • Config file
    • tgiann-sblauncher
      • Config file
      • QB Core Item
    • tgiann-self-storage
      • Config file
      • Editable files
      • Sql File
    • tgiann-exit-log
      • Config file
      • Editable files
    • tgiann-weapons-on-back
      • Config file
      • Editable files
    • tgiann-sellnpc
      • Config file
    • tgiann-smokegrenade
      • Config file
    • tgiann-sounds
      • Example Usage
    • tgiann-stashhouse
      • Config file
      • Sql File
    • tgiann-statushud
    • tgiann-vehicleoutfit
      • Config file
      • Sql File
    • tgiann-vehicleradio
      • Config file
      • Event list
    • tgiann-vehicleshop
      • Config file
      • Sql File
    • tgiann-trade
      • Config file
      • Server editable.lua
      • Client editable.lua
    • tgiann-zombie
      • Config file
      • Client editable.lua
      • Server editable.lua
      • Common errors
    • tgiann-planting
      • Config file
      • Editable Files
    • tgiann-realistic-car-crash
      • Config file
      • Editable Files
    • tgiann-graphic-menu
      • Config file
      • Editable Files
    • tgiann-firefighterjob
      • Installation
      • Config file
      • Editable Files
    • tgiann-coinshop
      • Config file
      • Editable Files
    • tgiann-vehiclepaint
      • Config file
      • Setup
    • tgiann-drone
      • Config file
      • Editable Files
    • tgiann-musical-chairs
      • Config file
      • Editable Files
    • tgiann-pursuitmode
      • Config file
      • Editable Files
    • tgiann-food-jobs
      • Config file
      • Editable Files
      • Example Location Config
Powered by GitBook
On this page
  • server/commands.lua
  • server/editable.lua
  • server/genereteplate.lua
  • client/eitable.lua
  • language files
  1. Scripts
  2. tgiann-coinshop

Editable Files

server/commands.lua

local function createRandomCode()
    local newCode = nil
    while true do
        math.randomseed(GetGameTimer())
        local generatedCode = "TGI-"..os.time().."-"..GetRandomLetter(4).."-"..math.random(1000, 9999)
        local result = singleSync('SELECT code FROM tgiann_coinshop_code WHERE code = ? LIMIT 1', {generatedCode})
        if not result then 
            newCode = generatedCode 
            break
        else
            Wait(100)
        end
        Wait(0)
    end
    return newCode
end

local function createCode(codeType, amount, code)
    if not code then code = createRandomCode() end
    if GetCode(code) then
        return false, code
    else
        insertSync('INSERT INTO `tgiann_coinshop_code` (code, codeType, amount) VALUES (?, ?, ?)', {
            code, codeType, amount
        })
        return true, code
    end
end

local function createCodeCommand(src, codeType, amount, code)
    if not codeType or not amount then return end
    if codeType == "money" or codeType == "coin" then
        local created, createdCode = createCode(codeType, amount, code)
        if created then
            tgiCore.notif(src, string.format(lang.codeCreated, createdCode), "success", 60000)
        else
            tgiCore.notif(src, string.format(lang.alreadyCode, createdCode), "error", 60000)
        end
    else
        tgiCore.notif(src, lang.wrongCodeType, "error")
    end
end

local function deleteCodeCommand(src, code)
    if DeleteCode(code) then
        tgiCore.notif(src, lang.codeDeleted, "success")
    else
        tgiCore.notif(src, lang.codeNotFound, "error")
    end
end

if config.framework == "qb" then
    --Give Coin
    tgiCore.core.Commands.Add("givecoin", "Give coins to player", {
        {name="id", help="Player Server ID"}, 
        {name="amount", help="Coin Amount"}
    }, true, function(source, args)
        local id, amount = args[1], args[2]
        if id and amount and not GiveCoin(tonumber(id), tonumber(amount)) then
            tgiCore.notif(source, lang.playerIsOffline, "error")
        end
    end, {"console", "tgi"})

    --Create new code
    tgiCore.core.Commands.Add("createcode", "Create a new code", {
        {name="type", help="money/coin"}, 
        {name="amount", help="Money/Coin Amount"}, 
        {name="code", help="Usable code (not required)"}
    }, false, function(source, args)
        createCodeCommand(source, args[1], args[2], args[3])
    end, {"console", "tgi"})

    --Delete Code
    tgiCore.core.Commands.Add("deletecode", "Delete generated code", {
        {name="code", help="Generated code"}
    }, true, function(source, args)
        deleteCodeCommand(source, args[1])
    end, {"console", "tgi"})
elseif config.framework == "esx" then
    --Give Coin
    tgiCore.core.RegisterCommand({'givecoin'}, 'admin', function(xPlayer, args, showError)
        if args.playerid and args.amount and not GiveCoin(tonumber(args.playerid), tonumber(args.amount)) then
            tgiCore.notif(source, lang.playerIsOffline, "error")
        end
    end, false, {
        help = "Give coins to player",
        arguments = {
            {name = 'playerid', help = 'Player Server ID', type = 'any'},
            {name = 'amount', help = 'Coin Amount', type = 'any'},
        },
    })

    --Create new code
    tgiCore.core.RegisterCommand({'createcode'}, 'admin', function(xPlayer, args, showError)
        createCodeCommand(xPlayer.source, args.type, args.amount, args.code)
    end, false, {
        help = "Give coins to player",
        arguments = {
            {name = 'type', help = 'money/coin', type = 'any'},
            {name = 'amount', help = 'Money/Coin Amount', type = 'any'},
            {name = 'code', help = 'Usable code (not required)', type = 'any'},
        },
    })

    --Delete Code
    tgiCore.core.RegisterCommand({'deletecode'}, 'admin', function(xPlayer, args, showError)
        createCodeCommand(xPlayer.source, args.type, args.amount, args.code)
    end, false, {
        help = "Delete generated code",
        arguments = {
            {name = 'code', help = 'Generated code', type = 'any'},
        },
    })
end

server/editable.lua

function addVehicleToDatabase(xPlayer, citizenId, data, vehicleProps, plate)
    if config.framework == "esx" then
		queryData = {
			query = 'INSERT INTO '..config.vehicleTableName..' (owner, plate, vehicle) VALUES (?, ?, ?)',
			value = {
				citizenId,
				plate,
				json.encode(vehicleProps),
			}
		}
	elseif config.framework == "qb" then
		queryData = {
			query = 'INSERT INTO '..config.vehicleTableName..' (license, citizenid, vehicle, hash, mods, plate, garage, state) VALUES (?, ?, ?, ?, ?, ?, ?, ?)',
			value = {
				tgiCore.getPlayerData(xPlayer).license,
				citizenId,
				data.model,
				GetHashKey(data.model),
				json.encode(vehicleProps),
				plate,
				"pillboxgarage",
				0,
			}
		}
	end
    insert(queryData.query, queryData.value)
end

server/genereteplate.lua

local NumberCharset, Charset = {}, {}

for i = 48, 57 do NumberCharset[#NumberCharset+1] = string.char(i) end
for i = 65, 90 do Charset[#Charset+1] = string.char(i) end

function GetRandomNumber(length)
    Wait(0)
    math.randomseed(GetGameTimer())
    if length > 0 then
        return GetRandomNumber(length - 1) .. NumberCharset[math.random(1, #NumberCharset)]
    else
        return ''
    end
end

function GetRandomLetter(length)
    Wait(0)
    math.randomseed(GetGameTimer())
    if length > 0 then
        return GetRandomLetter(length - 1) .. Charset[math.random(1, #Charset)]
    else
        return ''
    end
end

function GeneratePlate()
    local newPlate = nil
    while true do
        math.randomseed(GetGameTimer())
        local generatedPlate = string.upper(GetRandomNumber(3) .. GetRandomLetter(3) .. GetRandomNumber(2))
        local result = singleSync('SELECT plate FROM '..config.vehicleTableName..' WHERE plate = ? LIMIT 1', {generatedPlate})
        if not result then 
            newPlate = generatedPlate 
            break 
        else
            Wait(100)
        end
        Wait(0)
    end
    return newPlate
end

client/eitable.lua

local function getCarLabel(data)
    local hash = GetHashKey(data.model)
    local name = GetLabelText(GetDisplayNameFromVehicleModel(hash))
    local carName = name == "NULL" and GetDisplayNameFromVehicleModel(hash) or name
    return carName
end

function updateConfig(items)
    for _, data in pairs(config.shopItems) do
        for i=1, #data do
            if not data[i].label then
                if data[i].type == "car" then
                    data[i].label = getCarLabel(data[i])
                elseif data[i].type == "item" then
                    if not data[i].amount then data[i].amount = 1 end
                    if not data[i].label then data[i].label = data[i].amount.."x "..items[data[i].itemName].label end
                    if not data[i].img then data[i].imgUrl = "nui://"..config.itemIMGLocation.."/"..data[i].itemName..config.itemImgExtension end
                end
            end
        end
    end
end

function notify(text, time)
    postUi("app-main", "notify", {
        text = text,
        time = time or 3000
    })
end
RegisterNetEvent('tgiann-coinshop:notify')
AddEventHandler('tgiann-coinshop:notify', notify)

function testDriveVehicleSpawned(vehicle, plate)
    TriggerEvent("x-hotwire:give-keys", vehicle)
    TriggerEvent("tgiann-hotwire:give-keys-with-carid", vehicle)
    TriggerEvent("vehiclekeys:client:SetOwner", plate)
end

function buyVehicleSpawned(vehicle, plate)
    TriggerEvent("x-hotwire:give-keys", vehicle)
    TriggerEvent("tgiann-hotwire:give-keys-with-carid", vehicle)
    TriggerEvent("vehiclekeys:client:SetOwner", plate)
end

function openUi()
    SetNuiFocus(true, true)
    tgiCore.cbFunction("tgiann-coinshop:getShopAndUserData", function(data, stocks)
        postUi("app-main", "open", {
            stocks = stocks,
            userData = data,
            config = config,
        }) 
    end)
end
exports("openUi", openUi)

function closeUi(fullUi, cb)
    SetNuiFocus(false, false)
    if fullUi then
        postUi("app-main", "close") 
    end
    if cb then cb("") end
end
RegisterNUICallback("closeUi", closeUi)

if config.openCommand.enable then RegisterCommand(config.openCommand.command, openUi) end

language files

config.langs.en = {
  playerIsOffline = "Player Offline",
  no = "No",
  yes = "Yes",
  popUpHeaderText = "Do you want to buy {0}?",
  testDrive = "Test Drive",
  testDriveTimer = "%s Seconds test drive started!",
  testDriveHeader = "Do you want to test the vehicle for ${0} ?",
  noTestDriveZone = "You're too far away from the test drive location! Location got marked on the map",
  dollar = "$",
  coin = "C",
  daily = "{0} Daily",
  stock = "Stock",
  infStock = "Timeless",
  noStockNotif = "There is no stock for the thing you want to buy",
  noStockText = "Out of Stock",
  noStockBuy = "Out of Stock!",
  shortByHigh = "From Low to High Price",
  shortByLow = "From High to Low Price",
  headerMain = "Home page",
  headerBuyBoin = "Buy Coin",
  budget = "Price",
  shortBy = "Sort by",
  tags = "Tags",
  clear = "Clear",
  filter = "Filter",
  buy = "Buy",
  noTags = "No Tag",
  useCode = "Use Code",
  buyCoinDesc =
    "You can buy codes from this webpage www.mysite.com/buy-roleplay-coin You can use your code on this page and add balance to your account.!",
  buyCoinPlaceholder = "TGI-123XYZ3219955",
  noMoneyBank = "You don't have enough money on your bank!",
  noMoneyCoin = "You don't have enough Coins!",
  codeCreated = "Code created! Your code: %s",
  wrongCodeType = "Code type must be 'money' or 'coin' ",
  alreadyCode = "This code was already created before; %s",
  codeDeleted = "Code deleted!",
  codeNotFound = "Code not found!",
  codeIsInvalid = "Code invalid!",
  codeUsed = "Code used! You got %s%s on your account",
  reBuy = "Buy again",
  day = "Day",
  days = "Days",
  hour = "Hour",
  hours = "Hours",
  minute = "Minute",
  minutes = "Minutes",
  second = "Seconds",
}
PreviousConfig fileNexttgiann-vehiclepaint

Last updated 1 year ago