Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- util.AddNetworkString("bns_derma")
- util.AddNetworkString("bns_additem")
- util.AddNetworkString("bns_buyitem")
- util.AddNetworkString("bns_buyitembtc")
- util.AddNetworkString("bns_updateitems")
- util.AddNetworkString("bns_additemsuccess")
- util.AddNetworkString("bns_soldanitem")
- util.AddNetworkString("bns_cantafford")
- util.AddNetworkString("bns_myitems")
- util.AddNetworkString("bns_removeitem")
- util.AddNetworkString("bns_removeitemall")
- util.AddNetworkString("bns_removeitemallpub")
- util.AddNetworkString("bns_updatemyitems")
- util.AddNetworkString("bns_removeallitems")
- local function SendItemToAdd(ply, itemTable)
- local items = file.Read("bns_vm/items.txt")
- local itemsToTable = util.JSONToTable(items)
- local itemTable = itemTable
- local uid = "bns_item"..tostring(math.random(999999999))
- table.insert(itemTable, ply:Nick())
- table.insert(itemTable, uid)
- table.insert(itemTable, ply:SteamID())
- RegisterItem({itemTable[1], itemTable[2], itemTable[3], itemTable[4], itemTable[5]})
- if ply:SteamID() == itemTable[5] then
- net.Start("bns_updatemyitems")
- net.WriteTable({itemTable[1], itemTable[2], itemTable[3], itemTable[4], itemTable[5], #itemsToTable-1})
- net.Send(ply)
- end
- end
- net.Receive("bns_additem", function(len, ply) -- will add functionality for physical entities later.
- local itemAddData = net.ReadTable() -- [1] == entity, [2] == price
- if ply:HasWeapon(itemAddData[1]) == false then ply:ChatPrint("You don't even have that weapon!") return end
- if itemAddData[2] < BNS_CFG.MinItemPrice then ply:ChatPrint("Price is too low to submit!") return end
- if itemAddData[2] > BNS_CFG.MaxItemPrice then ply:ChatPrint("Price is too high to submit!") return end
- ply:StripWeapon(itemAddData[1])
- net.Start("bns_additemsuccess")
- net.WriteTable(itemAddData)
- net.Send(ply)
- SendItemToAdd(ply, itemAddData)
- end)
- net.Receive("bns_buyitem", function(len, ply)
- local uid = net.ReadString()
- local items = file.Read("bns_vm/items.txt")
- local itemsToTable = util.JSONToTable(items)
- local item
- for k, v in pairs(itemsToTable) do
- if v[4] == uid then
- item = v
- end
- end
- if item[2] > ply:getDarkRPVar("money") then
- net.Start("bns_cantafford")
- net.Send(ply)
- return
- end
- net.Start("bns_buyitem")
- net.WriteTable(item)
- net.Send(ply)
- ply:addMoney(-item[2])
- ply:Give(item[1])
- -- tell the seller he's rich
- for k, v in pairs(player.GetAll()) do
- if v:SteamID() == item[5] then
- net.Start("bns_soldanitem")
- net.WriteTable({item})
- net.WriteEntity(ply)
- net.Send(v)
- end
- end
- end)
- net.Receive("bns_buyitembtc", function(len, ply)
- if !BTC_CFG then return end
- local uid = net.ReadString()
- local items = file.Read("bns_vm/items.txt")
- local itemsToTable = util.JSONToTable(items)
- local item
- for k, v in pairs(itemsToTable) do
- if v[4] == uid then
- item = v
- end
- end
- local btc_subtract = item[2] / BTC_CFG.BTCMultiplier
- item[2] = math.Round(btc_subtract, 4)
- if math.Round(btc_subtract, 4) > ply:GetBTCBal() then
- net.Start("bns_cantafford")
- net.Send(ply)
- return
- end
- net.Start("bns_buyitembtc")
- net.WriteTable(item)
- net.Send(ply)
- ply:TakeBTC(btc_subtract)
- ply:Give(item[1])
- end)
- net.Receive("bns_removeallitems", function(len, ply)
- local items = file.Read("bns_vm/items.txt")
- local itemsToTable = util.JSONToTable(items)
- local itemsRemove = {}
- for k, v in pairs(itemsToTable) do
- if v[5] == ply:SteamID() then
- DeleteItem(v[4])
- end
- end
- for k, v in pairs(itemsToTable) do
- if v[5] == ply:SteamID() then
- table.insert(itemsRemove, v[4])
- end
- end
- if #itemsRemove > 0 then
- net.Start("bns_removeallitems")
- net.WriteTable(itemsRemove)
- net.Send(ply)
- end
- if #itemsRemove > 0 then
- for k, v in pairs(player.GetAll()) do
- if v == ply then continue end
- net.Start("bns_removeitemallpub")
- net.WriteTable(itemsRemove)
- net.Send(v)
- end
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement