shops FIN

This commit is contained in:
MrNewb committed 2025-03-09 06:14:38 -04:00
1 parent e54213398e
commit 3de3bf2883
3 files changed
+30 -37

No files matched your search

+1 -1
View File
@@ -6,7 +6,7 @@
"place_object_scroll_down": "[SCROLL DOWN] Turn left",
"enter_text": "Enter Text",
"no_prop_defined": "You didnt define any object to place",
"Shops": {"NotEnoughMoney": "You dont have enough money to buy this item", "PurchasedItem": "You Have Purchased ", "CurrencySymbol": "$", "Confirm":"Confirm Purchase","AreYouSure":"Are you sure you want to purchase a ", "PayByCash": "Pay by cash", "PayByCard": "Pay by card" },
"Shops": {"NotEnoughMoney": "You dont have enough money to buy this item", "Input":"Amount Input", "PurchaseAmount":"Purchase Quanity","PurchasedItem": "You Have Purchased ", "CurrencySymbol": "$", "Confirm":"Confirm Purchase","AreYouSure":"Are you sure you want to purchase a ", "PayByCash": "Pay by cash", "PayByCard": "Pay by card" },
"UNITTEST": {
"UNITTESTA": "Im a %s %s",
"UNITTEST": {
+19 -28
View File
@@ -31,55 +31,45 @@ Shops.FinalizeCheckOut = function(shopName, item, itemLabel, price)
Bridge.Menu.Open({ id = generatedID, title = locale("Shops.Confirm"), options = buildMenu }, false)
end
Shops.FinalizeCheckOut = function(shopName, item, itemLabel, price)
Shops.FinalizeCheckOut = function(shopName, item, itemLabel, price, amount)
if not shopName and not item and not itemLabel and not price then return end
local mathStuff = tonumber(price) * tonumber(amount)
local generatedID = Ids.CreateUniqueId()
local buildMenu = {
{
title = locale('Shops.PayByCash')..tostring(price),
title = locale('Shops.PayByCash').." "..tostring(mathStuff),
description = locale('Shops.AreYouSure') .. itemLabel,
icon = "fa-solid fa-money-bill-wave",
onSelect = function(_, __, ___)
TriggerServerEvent('community_bridge:completeCheckout', shopName, item, "cash")
TriggerServerEvent('community_bridge:completeCheckout', shopName, item, amount, "money")
end
},
{
title = locale('Shops.PayByCard')..tostring(price),
title = locale('Shops.PayByCard').." "..tostring(mathStuff),
description = locale('Shops.AreYouSure') .. itemLabel,
icon = "fa-solid fa-building-column",
onSelect = function(_, __, ___)
TriggerServerEvent('community_bridge:completeCheckout', shopName, item, "bank")
TriggerServerEvent('community_bridge:completeCheckout', shopName, item, amount, "bank")
end
}
}
Menu.Open({ id = generatedID, title = locale("Shops.Input"), options = buildMenu }, false)
end
--[[
Shops.AmountSelect = function(shopName, item, itemLabel, price)
if not shopName and not item and not itemLabel and not price then return end
local generatedID = Ids.CreateUniqueId()
local buildMenu = {
{
title = locale('Shops.PayByCash')..tostring(price),
description = locale('Shops.AreYouSure') .. itemLabel,
icon = "fa-solid fa-money-bill-wave",
onSelect = function(_, __, ___)
TriggerServerEvent('community_bridge:completeCheckout', shopName, item, "cash")
end
},
{
title = locale('Shops.PayByCard')..tostring(price),
description = locale('Shops.AreYouSure') .. itemLabel,
icon = "fa-solid fa-building-column",
onSelect = function(_, __, ___)
TriggerServerEvent('community_bridge:completeCheckout', shopName, item, "bank")
end
}
}
Menu.Open({ id = generatedID, title = locale("Shops.Input"), options = buildMenu }, false)
local numberOptions = {}
for i = 1, 100 do
table.insert(numberOptions, {label = tostring(i), value = i})
end
local _input = Input.Open(shopName, {
{type = 'select', label = locale("Shops.PurchaseAmount"), options = numberOptions},
})
if _input and _input[1] then
Shops.FinalizeCheckOut(shopName, item, itemLabel, price, tostring(_input[1]))
end
end
--]]
Shops.OpenShop = function(title, shopData)
if not title and not shopData and not title then return print("No Title Passed") end
@@ -92,7 +82,8 @@ Shops.OpenShop = function(title, shopData)
description = locale('Shops.CurrencySymbol')..tostring(v.price),
icon = "fa-solid fa-basket-shopping",
onSelect = function(selected, secondary, args)
Shops.FinalizeCheckOut(title, v.name, getItemName, v.price)
Shops.AmountSelect(title, v.name, getItemName, v.price)
--Shops.FinalizeCheckOut(title, v.name, getItemName, v.price)
end
})
end
+10 -8
View File
@@ -14,8 +14,9 @@ Shops.CreateShop = function(shopTitle, shopInventory, shopCoords, shopGroups)
return true
end
Shops.CompleteCheckout = function(src, shopName, item, paymentType)
if not src and not shopName and not item and not paymentType then return end
Shops.CompleteCheckout = function(src, shopName, item, amount, paymentType)
if not src and not shopName and not item and not amount and not paymentType then return end
local ilocale = Language.Locale
local shopData = registeredShops[shopName]
if not shopData then return end
@@ -29,16 +30,17 @@ Shops.CompleteCheckout = function(src, shopName, item, paymentType)
if not itemData then return print("Player ID "..src.." Is Possibly A Cheater And Has Attempted To Purchase A "..item) end
if not itemData.price then return end
local balance = Framework.GetAccountBalance(src, paymentType)
if balance < itemData.price then return Notify.SendNotify(src, ilocale('Shops.NotEnoughMoney'), "error", 5000) end
if not Framework.RemoveAccountBalance(src, paymentType, itemData.price) then return end
Inventory.AddItem(src, itemData.name, 1)
local mathStuff = tonumber(itemData.price) * tonumber(amount)
if balance < mathStuff then return Notify.SendNotify(src, ilocale('Shops.NotEnoughMoney'), "error", 5000) end
if not Framework.RemoveAccountBalance(src, paymentType, mathStuff) then return end
Inventory.AddItem(src, itemData.name, amount)
local itemLabel = Inventory.GetItemInfo(itemData.name).label
Notify.SendNotify(src, ilocale('Shops.PurchasedItem')..itemLabel, "success", 5000)
end
RegisterNetEvent("community_bridge:completeCheckout", function(shopName, item, paymentType)
RegisterNetEvent("community_bridge:completeCheckout", function(shopName, item, amount, paymentType)
local src = source
if not shopName and not item and not paymentType then return end
if not paymentType == "cash" or not paymentType == "bank" then return end
Shops.CompleteCheckout(src, shopName, item, paymentType)
if not paymentType == "money" or not paymentType == "bank" then return end
Shops.CompleteCheckout(src, shopName, item, amount, paymentType)
end)