Files
wnsrc/gamemodes/darkrp/plugins/goi_cityfunds/sh_plugin.lua
lifestorm 73479cff9e Upload
2024-08-04 22:55:00 +03:00

118 lines
3.6 KiB
Lua

--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
local PLUGIN = PLUGIN
PLUGIN.name = "City Funds"
PLUGIN.author = "Naast"
PLUGIN.description = "Adds city funds. Yeah."
CAMI.RegisterPrivilege({
Name = "Helix - Manage City Fund",
MinAccess = "superadmin"
})
ix.util.IncludeDir(PLUGIN.folder .. "/meta", true)
ix.util.IncludeDir(PLUGIN.folder .. "/nets", true)
ix.util.Include("sv_plugin.lua")
ix.util.Include("sv_hooks.lua")
ix.util.Include("sv_stock_disallowments.lua")
ix.util.Include("sv_stock_restrictions.lua")
ix.config.Add("loanPercent", 2, "The amount of credits in percents that should be taken from city fund every day if it has a loan.", nil, {
data = {min = 0, max = 100},
category = "City Fund"
})
ix.config.Add("transactionVatPercent", 2, "The amount of credits in percents that should from player's transactions.", nil, {
data = {min = 0, max = 100},
category = "City Fund"
})
ix.config.Add("minusCityCap", 1000, "The maximum cap of negative balance of our city.", nil, {
data = {min = 0, max = 10000},
category = "City Fund"
})
ix.config.Add("mainCityNumber", 24, "Number of main (current playable) city.", nil, {
data = {min = 1, max = 99},
category = "City Fund"
})
ix.config.Add("averageItemProductionMaxRange", 15, "Max amount of average production items after rate time passes.", nil, {
data = {min = 10, max = 100},
category = "City Fund"
})
ix.config.Add("averageItemProductionMinRange", 5, "Min amount of average production items after rate time passes.", nil, {
data = {min = 1, max = 9},
category = "City Fund"
})
ix.config.Add("lowItemProductionMinRange", 5, "Min amount of low production items after rate time passes.", nil, {
data = {min = 1, max = 9},
category = "City Fund"
})
ix.config.Add("lowItemProductionMaxRange", 15, "Max amount of low production items after rate time passes.", nil, {
data = {min = 10, max = 100},
category = "City Fund"
})
ix.config.Add("highItemProductionMinRange", 5, "Min amount of high production items after rate time passes.", nil, {
data = {min = 1, max = 9},
category = "City Fund"
})
ix.config.Add("highItemProductionMaxRange", 15, "Max amount of high production items after rate time passes.", nil, {
data = {min = 10, max = 100},
category = "City Fund"
})
ix.config.Add("randItemDeletions", 3, "How much random item types (this can be one item multiple times) should be taken from every non-main city every hour.", nil, {
data = {min = 1, max = 100},
category = "City Fund"
})
ix.config.Add("randItemDeletionAmountRangeMin", 1, "Min range for taking one single item type from every non-main city every hour.", nil, {
data = {min = 1, max = 9},
category = "City Fund"
})
ix.config.Add("randItemDeletionAmountRangeMax", 15, "Min range for taking one single item type from every non-main city every hour.", nil, {
data = {min = 10, max = 100},
category = "City Fund"
})
ix.command.Add("CityFundEditor", {
description = "Manage and create cities.",
privilege = "Manage City Fund",
OnRun = function(self, client)
net.Start("ix.city.CreateCFEditor")
net.Send(client)
end
})
ix.command.Add("SimulateGOItime", {
description = "Updates city funds by forcing cities to handle their production functions.",
privilege = "Manage City Fund",
arguments = ix.type.number,
OnRun = function(self, client, time)
if time > 20 then return client:NotifyLocalized("Time is too high!") end
for i = 1, time do
ix.city:UpdateCityFunds()
end
end
})
if CLIENT then
ix.factionBudget:InitializeFactionBudgets()
end