Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.01 KB | None | 0 0
  1. interior_loader = {}
  2. interior_loader.__index = interior_loader
  3.  
  4.  
  5. function interior_loader:new(...)
  6. local object = setmetatable({}, {__index = self})
  7. if object.constructor then
  8. object:constructor()
  9. end
  10. return object
  11. end
  12.  
  13. function interior_loader:render()
  14. dxDrawRectangle(668, 827, 551, 195, tocolor(17, 17, 17, 255), false)
  15. dxDrawText(self.text, 673, 835, 1209, 1012, tocolor(255, 255, 255, 255), 1.50, "default", "center", "center", false, false, false, false, false)
  16. end
  17. function interior_loader:set(interior)
  18. self.interior = interior
  19. addEventHandler("onClientRender", root, self.rendering)
  20. self.visible_window = true
  21. addEventHandler("onClientKey", root, self.clicking)
  22.  
  23. if self.interior.owner == 0 and self.interior.type ~= 4 then
  24. self.text = "Budynek na sprzedaż\nCena: "..self.interior.price.."$"
  25. else
  26. self.text = self.interior.name.."\n"..self.interior.desp.."\n".."locked: "..self.interior.locked
  27. end
  28. end
  29.  
  30. function interior_loader:click(button, press)
  31. if self.visible_window then
  32. if button == "e" and press and not isChatBoxInputActive() and not guiGetVisible(self.gui.window) then
  33.  
  34. removeEventHandler("onClientKey", root, self.clicking)
  35.  
  36. if tonumber(self.interior.type) == 1 or tonumber(self.interior.type) == 2 then
  37. if tonumber(self.interior.owner) == 0 then
  38. showCursor(true)
  39. return guiSetVisible(self.gui.buyWindow, not guiGetVisible(self.gui.buyWindow))
  40. elseif tonumber(self.interior.locked) == 1 then
  41. return Notification:add("Zamknięte na amen.")
  42. end
  43. end
  44.  
  45. local interior = self.interior
  46. triggerServerEvent("roleplay_gamemode:enterToInterior", localPlayer, interior)
  47. addCommandHandler("drzwi", self.command)
  48. removeEventHandler("onClientRender", root, self.rendering)
  49.  
  50. elseif press and button == "l" and self.interior.type ~= 4 then
  51. if self.interior.owner_bool then
  52. if self.interior.locked == 1 then self.interior.locked = 0 else self.interior.locked = 1 end
  53. self.text = self.interior.name.."\n"..self.interior.desp.."\n".."locked: "..self.interior.locked
  54.  
  55. local interior = self.interior
  56. triggerServerEvent("roleplay_gamemode:lockInterior", localPlayer, interior)
  57. end
  58. end
  59. end
  60. end
  61.  
  62. function interior_loader:guiClick()
  63. if source == self.gui.showInterior then
  64. Notification:add("Możesz zwiedzać wnętrze przez minute.")
  65. local old_interior = getElementInterior(localPlayer)
  66. local old_dimension = getElementDimension(localPlayer)
  67. local old_position = {getElementPosition(localPlayer)}
  68. local pos = split(self.interior.interior_position, ",")
  69.  
  70. setElementDimension(localPlayer, self.interior.id)
  71. setElementInterior(localPlayer, 1)
  72. setElementPosition(localPlayer, pos[1], pos[2], pos[3])
  73.  
  74. guiSetVisible(self.gui.buyWindow, false)
  75. showCursor(false)
  76.  
  77. setTimer(function()
  78. setElementDimension(localPlayer, old_dimension)
  79. setElementInterior(localPlayer, old_interior)
  80. setElementPosition(localPlayer, old_position[1], old_position[2], old_position[3])
  81. end, 60000, 1)
  82. elseif source == self.gui.buyButton then
  83. showCursor(false)
  84. guiSetVisible(self.gui.buyWindow, false)
  85.  
  86. local interior = self.interior
  87. triggerServerEvent("roleplay_gamemode:buyInterior", localPlayer, interior)
  88. removeEventHandler("onClientRender", root, self.rendering)
  89. removeEventHandler("onClientKey", root, self.clicking)
  90. elseif source == self.gui.exit then
  91. showCursor(false)
  92. guiSetVisible(self.gui.buyWindow, false)
  93. removeEventHandler("onClientKey", root, self.clicking)
  94. elseif source == self.gui.exitEdit then
  95. guiSetVisible(self.gui.window, false)
  96. showCursor(false)
  97. elseif source == self.gui.saveButt then
  98. self.interior.name = guiGetText(self.gui.name)
  99. self.interior.desp = guiGetText(self.gui.desp)
  100. self.text = self.interior.name.."\n"..self.interior.desp.."\n".."locked: "..self.interior.locked
  101. local interior = self.interior
  102.  
  103. guiSetVisible(self.gui.window, false)
  104. showCursor(false)
  105.  
  106. triggerServerEvent("roleplay_gamemode:editInterior", localPlayer, interior)
  107. elseif source == self.gui.delete_interior then
  108. local id = self.interior.identity
  109.  
  110. triggerServerEvent("roleplay_gamemode:delete_interior", localPlayer, id)
  111. end
  112. end
  113.  
  114. function interior_loader:doors_cmd(interior)
  115. guiSetVisible(self.gui.window, not guiGetVisible(self.gui.window))
  116. guiSetText(self.gui.name, interior.name)
  117. guiSetText(self.gui.desp, interior.desp)
  118. showCursor(true)
  119.  
  120. for i,v in pairs(self.gui.tab) do if v then guiDeleteTab(v, self.gui.tab_panel) end end
  121.  
  122. self.gui.tab[1] = guiCreateTab("Drzwi", self.gui.tab_panel)
  123. self.gui.name = guiCreateEdit(0.02, 0.04, 0.94, 0.20, self.interior.name, true, self.gui.tab[1])
  124. self.gui.desp = guiCreateMemo(0.02, 0.28, 0.94, 0.68, self.interior.desp, true, self.gui.tab[1])
  125.  
  126. if interior.type == 1 then
  127. self.gui.tab[4] = guiCreateTab("Lokatorzy", self.gui.tab_panel)
  128. self.gui.add = guiCreateButton(0.55, 0.06, 0.42, 0.29, "Dodaj", true, self.gui.tab[4])
  129. self.gui.delete = guiCreateButton(0.55, 0.41, 0.42, 0.29, "Usuń", true, self.gui.tab[4])
  130. self.gui.locators_list = guiCreateGridList(0.02, 0.05, 0.51, 0.91, true, self.gui.tab[4])
  131. guiGridListAddColumn(self.gui.locators_list, "Imie i nazwisko", 0.9)
  132. end
  133. if true then
  134. self.gui.tab[3] = guiCreateTab("Admin", self.gui.tab_panel)
  135. self.gui.delete_interior = guiCreateButton(0.34, 0.33, 0.35, 0.28, "Usuń", true, self.gui.tab[3])
  136. end
  137. if interior.type == 3 then
  138. self.gui.tab[2] = guiCreateTab("Interior", self.gui.tab_panel)
  139. self.gui.interior_code = guiCreateMemo(0.02, 0.04, 0.70, 0.90, "Kod interiora", true, self.gui.tab[2])
  140. self.gui.interior_load = guiCreateButton(0.72, 0.35, 0.25, 0.24, "Załaduj", true, self.gui.tab[2])
  141. end
  142. end
  143.  
  144. function interior_loader:cmd(cmd, type)
  145. if type == "e" or type == "edytuj" then
  146. if self.interior.owner_bool then
  147. self:doors_cmd(self.interior)
  148. end
  149. elseif type == "m" or type == "meble" then
  150. if self.interior.owner_bool then
  151. Furniture:visible()
  152. end
  153. end
  154. end
  155.  
  156. function interior_loader:visible()
  157. removeEventHandler("onClientRender", root, self.rendering)
  158. removeEventHandler("onClientKey", root, self.clicking)
  159. removeCommandHandler("drzwi", self.command)
  160. self.visible_window = false
  161. end
  162. function interior_loader:constructor()
  163. self.gui = {}
  164. self.gui.tab = {}
  165. self.rendering = function() self:render() end
  166. self.sets = function(interior) self:set(interior) end
  167. self.visibles = function() self:visible() end
  168. self.clicking = function(button, press) self:click(button, press) end
  169. self.guiClicking = function() self:guiClick() end
  170. self.doorscmd = function(interior) self:doors_cmd(interior) end
  171. self.command = function(cmd, type) self:cmd(cmd, type) end
  172.  
  173. self.gui.buyWindow = guiCreateWindow(0.39, 0.33, 0.15, 0.13, "Kup", true)
  174. self.gui.showInterior = guiCreateButton(0.52, 0.20, 0.45, 0.34, "Zobacz wnętrze", true, self.gui.buyWindow)
  175. self.gui.buyButton = guiCreateButton(0.03, 0.20, 0.45, 0.34, "Kup", true, self.gui.buyWindow)
  176. self.gui.exit = guiCreateButton(0.28, 0.59, 0.45, 0.34, "Wyjdź", true, self.gui.buyWindow )
  177.  
  178. self.gui.window = guiCreateWindow(0.38, 0.37, 0.18, 0.26, "Edytuj drzwi - blablabla", true)
  179. self.gui.saveButt = guiCreateButton(0.03, 0.79, 0.41, 0.18, "Zapisz", true, self.gui.window)
  180. self.gui.tab_panel = guiCreateTabPanel(0.03, 0.09, 0.95, 0.67, true, self.gui.window)
  181. self.gui.exitEdit = guiCreateButton(0.56, 0.79, 0.41, 0.18, "Wyjdź", true, self.gui.window)
  182. self.gui.tab[1] = guiCreateTab("Drzwi", self.gui.tab_panel)
  183. --tab1
  184. self.gui.name = guiCreateEdit(0.02, 0.04, 0.94, 0.20, "Nazwa", true, self.gui.tab[1])
  185. self.gui.desp = guiCreateMemo(0.02, 0.28, 0.94, 0.68, "Opis", true, self.gui.tab[1])
  186.  
  187. self.visible_window = false
  188. guiSetVisible(self.gui.buyWindow, false)
  189. guiSetVisible(self.gui.window, false)
  190.  
  191. addEvent("roleplay_gamemode:interiorPickupEnter", true)
  192. addEvent("roleplay_gamemode:interiorPickupLeave", true)
  193.  
  194. addEventHandler("roleplay_gamemode:interiorPickupEnter", resourceRoot, self.sets)
  195. addEventHandler("roleplay_gamemode:interiorPickupLeave", resourceRoot, self.visibles)
  196. addEventHandler("onClientGUIClick", resourceRoot, self.guiClicking)
  197. end
  198.  
  199. interiorLoader = interior_loader:new()
  200.  
  201. addEventHandler("onClientResourceStart", root, function()
  202. guiSetInputMode("no_binds_when_editing")
  203. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement