diff --git a/README.md b/README.md index cbcf9c0..17fd455 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,9 @@ # starterpack -Simple /starterpack script for ESX Framework [FIVEM] +Simple starterpack script for ESX Framework [FIVEM] -It’s simple script for /starterpack. -If you write on chat /starterpack you can get start items or organization items for start. +It’s a simple starterpack script. +When creating a new character you will automatically get some starter items which is set in the config. You can use this one times per character. Items you can change in server.lua. -Script based on es_extended 1.2.0. -Sorry for my English!! +Script based on es_extended Legacy, but is working for ESX 1.1 and 1.2 diff --git a/config.lua b/config.lua new file mode 100644 index 0000000..53c1aa6 --- /dev/null +++ b/config.lua @@ -0,0 +1,10 @@ +Config = { + StarterItems = { + {databasename = 'bread', count = 1}, + {databasename = 'water', count = 2}, + }, + + OldESX = false, + Config.NotificationSystem = 'ESX', -- or mythic_notify + Config.Webhook = 'WEBHOOK HERE' +} diff --git a/fxmanifest.lua b/fxmanifest.lua new file mode 100644 index 0000000..67cc70b --- /dev/null +++ b/fxmanifest.lua @@ -0,0 +1,9 @@ +fx_version 'cerulean' +game 'gta5' + +shared_script '@es_extended/imports.lua' -- Remove if using older ESX + +server_scripts { + 'config.lua', + 'server/server.lua' +} \ No newline at end of file diff --git a/server/server.lua b/server/server.lua new file mode 100644 index 0000000..f1559c6 --- /dev/null +++ b/server/server.lua @@ -0,0 +1,38 @@ +if Config.OldESX then + ESX = nil + TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) +end + +RegisterNetEvent('esx:playerLoaded') -- When a player loads in, we can store some basic information about them locally +AddEventHandler('esx:playerLoaded', function(playerId, xPlayer, isNew) + ESX.Players[playerId] = xPlayer.job.name + local zPlayer = ESX.GetPlayerFromId(playerId) + if isNew then + for k, v in pairs(Config.StarterItems) do + zPlayer.addInventoryItem(v.databasename, v.count) + sendToDiscord('Starteritems','Player ' ..GetPlayerName(playerId).. ', '..zPlayer.identifier..' picked up' ,3999999) + if Config.NotificationSystem == 'ESX' then + xPlayer.showNotification('You received some starter items') + elseif Config.NotificationSystem == 'mythic_notify' then + TriggerClientEvent('mythic_notify:client:SendAlert', playerId, { type = 'inform', text = 'You received some starter items!', length = 2500, style = { ['background-color'] = '##', ['color'] = '#FFFFFF' } }) + end + end + end +end) + +function sendToDiscord (name,message,color) + local DiscordWebHook = Config.Webhook + local embeds = { + { + ["title"]=message, + ["type"]="rich", + ["color"] =color, + ["footer"]= { + ["text"]= "starterpack by polacy", + }, + } + } + + if message == nil or message == '' then return FALSE end + PerformHttpRequest(DiscordWebHook, function(err, text, headers) end, 'POST', json.encode({ username = name,embeds = embeds}), { ['Content-Type'] = 'application/json' }) +end \ No newline at end of file diff --git a/starterpack/client.lua b/starterpack/client.lua deleted file mode 100644 index ab07d24..0000000 --- a/starterpack/client.lua +++ /dev/null @@ -1,24 +0,0 @@ - - -ESX = nil -odebrane = false -Citizen.CreateThread(function() - while ESX == nil do - TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) - Citizen.Wait(0) - end -end) - -RegisterCommand("starterpack", function() - ESX.TriggerServerCallback('odbierz:check', function(odebrane) - if odebrane then - ESX.ShowNotification("Nie można odebrać itemów dwa razy!") - else - ESX.ShowNotification("Odebrano itemy!") - odebrane = true - TriggerServerEvent("odbierz:odebrane", true) - TriggerServerEvent("odbierz:giveitem") - - end - end) -end, false) \ No newline at end of file diff --git a/starterpack/fxmanifest.lua b/starterpack/fxmanifest.lua deleted file mode 100644 index 10aced6..0000000 --- a/starterpack/fxmanifest.lua +++ /dev/null @@ -1,18 +0,0 @@ - - -fx_version 'adamant' - -game 'gta5' - -author 'polacy2017#4079' - -server_script { - '@mysql-async/lib/MySQL.lua', - 'server.lua', - 'config.lua' -} - -client_script { - 'client.lua', - 'config.lua' -} \ No newline at end of file diff --git a/starterpack/server.lua b/starterpack/server.lua deleted file mode 100644 index 80d25e2..0000000 --- a/starterpack/server.lua +++ /dev/null @@ -1,73 +0,0 @@ - -ESX = nil - -TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) - - - -ESX.RegisterServerCallback('odbierz:check', function (source, cb) - local xPlayer = ESX.GetPlayerFromId(source) - local identifier = GetLicenseID(source) - - MySQL.Async.fetchScalar('SELECT odebrane FROM users WHERE identifier = @identifier', { - ['@identifier'] = identifier - }, function(odebrane) - - cb(odebrane) - print(odebrane) - end) - -end) - -RegisterServerEvent('odbierz:odebrane') -AddEventHandler('odbierz:odebrane', function(odebrane) - local identifier = GetLicenseID(source) - - MySQL.Sync.execute('UPDATE users SET odebrane = @odebrane WHERE identifier = @identifier', { - ['@identifier'] = identifier, - ['@odebrane'] = odebrane - }) -end) - -RegisterServerEvent('odbierz:giveitem') -AddEventHandler('odbierz:giveitem', function() - local xPlayer = ESX.GetPlayerFromId(source) - xPlayer.addInventoryItem("pistol", 1) - xPlayer.addInventoryItem("pistol_ammo_box", 20) - xPlayer.addInventoryItem("bread", 15) - xPlayer.addInventoryItem("water", 15) - sendToDiscord('Odbierz','Gracz ' ..GetPlayerName(source).. ', '..GetLicenseID(source)..' odebrał /odbierz' ,3999999) -end) - - -function sendToDiscord (name,message,color) - local DiscordWebHook = 'WEBHOOK' - local embeds = { - { - ["title"]=message, - ["type"]="rich", - ["color"] =color, - ["footer"]= { - ["text"]= "starterpack by polacy", - }, - } - } - - if message == nil or message == '' then return FALSE end - PerformHttpRequest(DiscordWebHook, function(err, text, headers) end, 'POST', json.encode({ username = name,embeds = embeds}), { ['Content-Type'] = 'application/json' }) -end - - - -GetLicenseID = function(src) - local sid = GetPlayerIdentifiers(src) - local license = 'Brak' - for k,v in ipairs(sid)do - if string.sub(v, 1, string.len("license:")) == "license:" then - license = v - break - end - end - - return license -end diff --git a/starterpack/sql.sql b/starterpack/sql.sql deleted file mode 100644 index 55b14dd..0000000 --- a/starterpack/sql.sql +++ /dev/null @@ -1,3 +0,0 @@ -ALTER TABLE `users` - ADD `odebrane` TINYINT(1) NULL DEFAULT '0' -;