mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-09-01 11:01:43 +00:00
Removed keys table, minor improvements, final commit v1.0.0
This commit is contained in:
+1
-1
@@ -2,7 +2,7 @@ resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937'
|
||||
|
||||
description 'ESX Boat'
|
||||
|
||||
version '0.5.0'
|
||||
version '1.0.0'
|
||||
|
||||
server_scripts {
|
||||
'@mysql-async/lib/MySQL.lua',
|
||||
|
||||
+13
-44
@@ -1,15 +1,3 @@
|
||||
Keys = {
|
||||
["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F5"] = 166, ["F6"] = 167, ["F7"] = 168, ["F8"] = 169, ["F9"] = 56, ["F10"] = 57,
|
||||
["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 160, ["4"] = 164, ["5"] = 165, ["6"] = 159, ["7"] = 161, ["8"] = 162, ["9"] = 163, ["-"] = 84, ["="] = 83, ["BACKSPACE"] = 177,
|
||||
["TAB"] = 37, ["Q"] = 44, ["W"] = 32, ["E"] = 38, ["R"] = 45, ["T"] = 245, ["Y"] = 246, ["U"] = 303, ["P"] = 199, ["["] = 39, ["]"] = 40, ["ENTER"] = 18,
|
||||
["CAPS"] = 137, ["A"] = 34, ["S"] = 8, ["D"] = 9, ["F"] = 23, ["G"] = 47, ["H"] = 74, ["K"] = 311, ["L"] = 182,
|
||||
["LEFTSHIFT"] = 21, ["Z"] = 20, ["X"] = 73, ["C"] = 26, ["V"] = 0, ["B"] = 29, ["N"] = 249, ["M"] = 244, [","] = 82, ["."] = 81,
|
||||
["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70,
|
||||
["HOME"] = 213, ["PAGEUP"] = 10, ["PAGEDOWN"] = 11, ["DELETE"] = 178,
|
||||
["LEFT"] = 174, ["RIGHT"] = 175, ["TOP"] = 27, ["DOWN"] = 173,
|
||||
["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118
|
||||
}
|
||||
|
||||
ESX = nil
|
||||
isInShopMenu = false
|
||||
local spawnedVehicles = {}
|
||||
@@ -20,7 +8,7 @@ Citizen.CreateThread(function()
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
|
||||
while ESX.GetPlayerData().job == nil do
|
||||
while not ESX.GetPlayerData().job do
|
||||
Citizen.Wait(10)
|
||||
end
|
||||
|
||||
@@ -28,7 +16,6 @@ Citizen.CreateThread(function()
|
||||
end)
|
||||
|
||||
function OpenBoatShop(shop)
|
||||
|
||||
isInShopMenu = true
|
||||
|
||||
local playerPed = PlayerPedId()
|
||||
@@ -49,26 +36,20 @@ function OpenBoatShop(shop)
|
||||
align = 'top-left',
|
||||
elements = elements
|
||||
}, function (data, menu)
|
||||
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'boat_shop_confirm',
|
||||
{
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'boat_shop_confirm', {
|
||||
title = _U('boat_shop_confirm', data.current.name, ESX.Math.GroupDigits(data.current.price)),
|
||||
align = 'top-left',
|
||||
elements = {
|
||||
{ label = _U('confirm_no'), value = 'no' },
|
||||
{ label = _U('confirm_yes'), value = 'yes' }
|
||||
}
|
||||
}, function (data2, menu2)
|
||||
|
||||
{label = _U('confirm_no'), value = 'no'},
|
||||
{label = _U('confirm_yes'), value = 'yes'}
|
||||
}}, function (data2, menu2)
|
||||
if data2.current.value == 'yes' then
|
||||
local plate = exports['esx_vehicleshop']:GeneratePlate()
|
||||
local vehicle = GetVehiclePedIsIn(playerPed, false)
|
||||
local props = ESX.Game.GetVehicleProperties(vehicle)
|
||||
props.plate = plate
|
||||
|
||||
local plate = exports['esx_vehicleshop']:GeneratePlate()
|
||||
local vehicle = GetVehiclePedIsIn(playerPed, false)
|
||||
local props = ESX.Game.GetVehicleProperties(vehicle)
|
||||
props.plate = plate
|
||||
|
||||
ESX.TriggerServerCallback('esx_boat:buyBoat', function (bought)
|
||||
|
||||
ESX.TriggerServerCallback('esx_boat:buyBoat', function(bought)
|
||||
if bought then
|
||||
ESX.ShowNotification(_U('boat_shop_bought', data.current.name, ESX.Math.GroupDigits(data.current.price)))
|
||||
|
||||
@@ -86,17 +67,13 @@ function OpenBoatShop(shop)
|
||||
ESX.ShowNotification(_U('boat_shop_nomoney'))
|
||||
menu2.close()
|
||||
end
|
||||
|
||||
end, props)
|
||||
|
||||
else
|
||||
menu2.close()
|
||||
end
|
||||
|
||||
end, function (data2, menu2)
|
||||
menu2.close()
|
||||
end)
|
||||
|
||||
end, function (data, menu)
|
||||
menu.close()
|
||||
isInShopMenu = false
|
||||
@@ -108,7 +85,6 @@ function OpenBoatShop(shop)
|
||||
FreezeEntityPosition(playerPed, false)
|
||||
SetEntityVisible(playerPed, true)
|
||||
SetEntityCoords(playerPed, shop.Outside.x, shop.Outside.y, shop.Outside.z)
|
||||
|
||||
end, function (data, menu)
|
||||
DeleteSpawnedVehicles()
|
||||
|
||||
@@ -138,13 +114,10 @@ function OpenBoatShop(shop)
|
||||
end
|
||||
|
||||
function OpenBoatGarage(garage)
|
||||
|
||||
ESX.TriggerServerCallback('esx_boat:getGarage', function (ownedBoats)
|
||||
|
||||
if #ownedBoats == 0 then
|
||||
ESX.ShowNotification(_U('garage_noboats'))
|
||||
else
|
||||
|
||||
-- get all available boats
|
||||
local elements = {}
|
||||
for i=1, #ownedBoats, 1 do
|
||||
@@ -161,7 +134,6 @@ function OpenBoatGarage(garage)
|
||||
align = 'top-left',
|
||||
elements = elements
|
||||
}, function (data, menu)
|
||||
|
||||
-- make sure the spawn point isn't blocked
|
||||
local playerPed = PlayerPedId()
|
||||
local vehicleProps = data.current.vehicleProps
|
||||
@@ -179,7 +151,6 @@ function OpenBoatGarage(garage)
|
||||
else
|
||||
ESX.ShowNotification(_U('garage_blocked'))
|
||||
end
|
||||
|
||||
end, function (data, menu)
|
||||
menu.close()
|
||||
|
||||
@@ -187,7 +158,6 @@ function OpenBoatGarage(garage)
|
||||
CurrentActionMsg = _U('garage_open')
|
||||
end)
|
||||
end
|
||||
|
||||
end)
|
||||
end
|
||||
|
||||
@@ -196,10 +166,9 @@ function OpenLicenceMenu(shop)
|
||||
title = _U('license_menu'),
|
||||
align = 'top-left',
|
||||
elements = {
|
||||
{ label = _U('license_buy_no'), value = 'no' },
|
||||
{ label = _U('license_buy_yes', ESX.Math.GroupDigits(Config.LicensePrice)), value = 'yes' }
|
||||
}
|
||||
}, function (data, menu)
|
||||
{label = _U('license_buy_no'), value = 'no'},
|
||||
{label = _U('license_buy_yes', ESX.Math.GroupDigits(Config.LicensePrice)), value = 'yes'}
|
||||
}}, function (data, menu)
|
||||
if data.current.value == 'yes' then
|
||||
ESX.TriggerServerCallback('esx_boat:buyBoatLicense', function (boughtLicense)
|
||||
if boughtLicense then
|
||||
|
||||
+3
-11
@@ -10,14 +10,11 @@ Citizen.CreateThread(function()
|
||||
while true do
|
||||
Citizen.Wait(0)
|
||||
|
||||
if CurrentAction ~= nil then
|
||||
|
||||
if CurrentAction then
|
||||
ESX.ShowHelpNotification(CurrentActionMsg)
|
||||
|
||||
if IsControlJustReleased(0, Keys['E']) then
|
||||
|
||||
if IsControlJustReleased(0, 38) then
|
||||
if CurrentAction == 'boat_shop' then
|
||||
|
||||
if not Config.LicenseEnable then
|
||||
OpenBoatShop(Config.Zones.BoatShops[CurrentActionData.zoneNum])
|
||||
else -- check for license
|
||||
@@ -29,9 +26,7 @@ Citizen.CreateThread(function()
|
||||
OpenLicenceMenu(Config.Zones.BoatShops[CurrentActionData.zoneNum])
|
||||
end
|
||||
end, GetPlayerServerId(PlayerId()), 'boat')
|
||||
|
||||
end
|
||||
|
||||
elseif CurrentAction == 'garage_out' then
|
||||
OpenBoatGarage(Config.Zones.Garages[CurrentActionData.zoneNum])
|
||||
elseif CurrentAction == 'garage_in' then
|
||||
@@ -156,13 +151,11 @@ Citizen.CreateThread(function()
|
||||
if letSleep then
|
||||
Citizen.Wait(500)
|
||||
end
|
||||
|
||||
end
|
||||
end)
|
||||
|
||||
-- Blips
|
||||
Citizen.CreateThread(function()
|
||||
|
||||
local blipList = {}
|
||||
|
||||
for i=1, #Config.Zones.Garages, 1 do
|
||||
@@ -188,7 +181,6 @@ Citizen.CreateThread(function()
|
||||
for i=1, #blipList, 1 do
|
||||
CreateBlip(blipList[i].coords, blipList[i].text, blipList[i].sprite, blipList[i].color, blipList[i].scale)
|
||||
end
|
||||
|
||||
end)
|
||||
|
||||
function CreateBlip(coords, text, sprite, color, scale)
|
||||
@@ -203,4 +195,4 @@ function CreateBlip(coords, text, sprite, color, scale)
|
||||
BeginTextCommandSetBlipName('STRING')
|
||||
AddTextComponentSubstringPlayerName(text)
|
||||
EndTextCommandSetBlipName(blip)
|
||||
end
|
||||
end
|
||||
|
||||
+1
-5
@@ -21,7 +21,6 @@ Config.StoreMarker = {
|
||||
Config.Zones = {
|
||||
|
||||
Garages = {
|
||||
|
||||
{ -- Shank St, nearby campaign boat garage
|
||||
GaragePos = vector3(-772.4, -1430.9, 0.5),
|
||||
SpawnPoint = vector4(-785.39, -1426.3, 0.0, 146.0),
|
||||
@@ -62,17 +61,14 @@ Config.Zones = {
|
||||
SpawnPoint = vector4(-3448.9, 953.8, 0.0, 75.0),
|
||||
StorePos = vector3(-3436.5, 946.6, 0.3),
|
||||
StoreTP = vector4(-3427.0, 952.6, 8.3, 0.0)
|
||||
},
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
BoatShops = {
|
||||
|
||||
{ -- Shank St, nearby campaign boat garage
|
||||
Outside = vector3(-773.7, -1495.2, 1.6),
|
||||
Inside = vector4(-798.5, -1503.1, -0.4, 120.0)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -28,4 +28,4 @@ Locales['en'] = {
|
||||
-- blips
|
||||
['blip_garage'] = 'boat Garage',
|
||||
['blip_shop'] = 'boat Shop',
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -28,4 +28,4 @@ Locales['sv'] = {
|
||||
-- blips
|
||||
['blip_garage'] = 'båtgarage',
|
||||
['blip_shop'] = 'båtaffär',
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -70,7 +70,7 @@ ESX.RegisterServerCallback('esx_boat:storeVehicle', function (source, cb, plate)
|
||||
end)
|
||||
|
||||
ESX.RegisterServerCallback('esx_boat:getGarage', function(source, cb)
|
||||
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND type = @type AND `stored` = @stored', {
|
||||
MySQL.Async.fetchAll('SELECT vehicle FROM owned_vehicles WHERE owner = @owner AND type = @type AND `stored` = @stored', {
|
||||
['@owner'] = GetPlayerIdentifiers(source)[1],
|
||||
['@type'] = 'boat',
|
||||
['@stored'] = true
|
||||
@@ -100,11 +100,11 @@ ESX.RegisterServerCallback('esx_boat:buyBoatLicense', function(source, cb)
|
||||
end)
|
||||
|
||||
function getPriceFromModel(model)
|
||||
for i=1, #Config.Vehicles, 1 do
|
||||
if GetHashKey(Config.Vehicles[i].model) == model then
|
||||
return Config.Vehicles[i].price
|
||||
for k,v in ipairs(Config.Vehicles) do
|
||||
if GetHashKey(v.model) == model then
|
||||
return v.price
|
||||
end
|
||||
end
|
||||
|
||||
return 0
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user