Advertisement
Guest User

Untitled

a guest
Feb 7th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.95 KB | None | 0 0
  1. util.AddNetworkString("bns_derma")
  2. util.AddNetworkString("bns_additem")
  3. util.AddNetworkString("bns_buyitem")
  4. util.AddNetworkString("bns_buyitembtc")
  5. util.AddNetworkString("bns_updateitems")
  6. util.AddNetworkString("bns_additemsuccess")
  7. util.AddNetworkString("bns_soldanitem")
  8. util.AddNetworkString("bns_cantafford")
  9. util.AddNetworkString("bns_myitems")
  10. util.AddNetworkString("bns_removeitem")
  11. util.AddNetworkString("bns_removeitemall")
  12. util.AddNetworkString("bns_removeitemallpub")
  13. util.AddNetworkString("bns_updatemyitems")
  14. util.AddNetworkString("bns_removeallitems")
  15.  
  16. local function SendItemToAdd(ply, itemTable)
  17. local items = file.Read("bns_vm/items.txt")
  18. local itemsToTable = util.JSONToTable(items)
  19. local itemTable = itemTable
  20. local uid = "bns_item"..tostring(math.random(999999999))
  21. table.insert(itemTable, ply:Nick())
  22. table.insert(itemTable, uid)
  23. table.insert(itemTable, ply:SteamID())
  24. RegisterItem({itemTable[1], itemTable[2], itemTable[3], itemTable[4], itemTable[5]})
  25. if ply:SteamID() == itemTable[5] then
  26. net.Start("bns_updatemyitems")
  27. net.WriteTable({itemTable[1], itemTable[2], itemTable[3], itemTable[4], itemTable[5], #itemsToTable-1})
  28. net.Send(ply)
  29. end
  30. end
  31.  
  32. net.Receive("bns_additem", function(len, ply) -- will add functionality for physical entities later.
  33.  
  34. local itemAddData = net.ReadTable() -- [1] == entity, [2] == price
  35.  
  36. if ply:HasWeapon(itemAddData[1]) == false then ply:ChatPrint("You don't even have that weapon!") return end
  37.  
  38. if itemAddData[2] < BNS_CFG.MinItemPrice then ply:ChatPrint("Price is too low to submit!") return end
  39. if itemAddData[2] > BNS_CFG.MaxItemPrice then ply:ChatPrint("Price is too high to submit!") return end
  40.  
  41. ply:StripWeapon(itemAddData[1])
  42.  
  43. net.Start("bns_additemsuccess")
  44. net.WriteTable(itemAddData)
  45. net.Send(ply)
  46.  
  47. SendItemToAdd(ply, itemAddData)
  48.  
  49. end)
  50.  
  51.  
  52. net.Receive("bns_buyitem", function(len, ply)
  53. local uid = net.ReadString()
  54. local items = file.Read("bns_vm/items.txt")
  55. local itemsToTable = util.JSONToTable(items)
  56. local item
  57.  
  58. for k, v in pairs(itemsToTable) do
  59. if v[4] == uid then
  60. item = v
  61. end
  62. end
  63.  
  64. if item[2] > ply:getDarkRPVar("money") then
  65.  
  66. net.Start("bns_cantafford")
  67. net.Send(ply)
  68.  
  69. return
  70.  
  71. end
  72.  
  73. net.Start("bns_buyitem")
  74. net.WriteTable(item)
  75. net.Send(ply)
  76.  
  77. ply:addMoney(-item[2])
  78. ply:Give(item[1])
  79.  
  80. -- tell the seller he's rich
  81.  
  82. for k, v in pairs(player.GetAll()) do
  83. if v:SteamID() == item[5] then
  84. net.Start("bns_soldanitem")
  85. net.WriteTable({item})
  86. net.WriteEntity(ply)
  87. net.Send(v)
  88. end
  89. end
  90. end)
  91.  
  92. net.Receive("bns_buyitembtc", function(len, ply)
  93. if !BTC_CFG then return end
  94.  
  95. local uid = net.ReadString()
  96. local items = file.Read("bns_vm/items.txt")
  97. local itemsToTable = util.JSONToTable(items)
  98. local item
  99.  
  100. for k, v in pairs(itemsToTable) do
  101. if v[4] == uid then
  102. item = v
  103. end
  104. end
  105.  
  106. local btc_subtract = item[2] / BTC_CFG.BTCMultiplier
  107. item[2] = math.Round(btc_subtract, 4)
  108.  
  109. if math.Round(btc_subtract, 4) > ply:GetBTCBal() then
  110.  
  111. net.Start("bns_cantafford")
  112. net.Send(ply)
  113.  
  114. return
  115.  
  116. end
  117.  
  118. net.Start("bns_buyitembtc")
  119. net.WriteTable(item)
  120. net.Send(ply)
  121.  
  122.  
  123. ply:TakeBTC(btc_subtract)
  124. ply:Give(item[1])
  125. end)
  126.  
  127. net.Receive("bns_removeallitems", function(len, ply)
  128.  
  129. local items = file.Read("bns_vm/items.txt")
  130. local itemsToTable = util.JSONToTable(items)
  131. local itemsRemove = {}
  132.  
  133. for k, v in pairs(itemsToTable) do
  134. if v[5] == ply:SteamID() then
  135. DeleteItem(v[4])
  136. end
  137. end
  138.  
  139. for k, v in pairs(itemsToTable) do
  140. if v[5] == ply:SteamID() then
  141. table.insert(itemsRemove, v[4])
  142. end
  143. end
  144.  
  145. if #itemsRemove > 0 then
  146. net.Start("bns_removeallitems")
  147. net.WriteTable(itemsRemove)
  148. net.Send(ply)
  149. end
  150.  
  151. if #itemsRemove > 0 then
  152. for k, v in pairs(player.GetAll()) do
  153. if v == ply then continue end
  154. net.Start("bns_removeitemallpub")
  155. net.WriteTable(itemsRemove)
  156. net.Send(v)
  157. end
  158. end
  159.  
  160. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement