Advertisement
Guest User

142

a guest
Nov 13th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.19 KB | None | 0 0
  1. --------------------------------------- CONFIGS --------------------------------------------
  2.  
  3. cuboid = createColCuboid ( 118.59999847412,406.10000610352, 0 , 179, 161, 30.10000038147 )
  4.  
  5. GroupName = "FG_Admins"
  6.  
  7. maxvehicles = 20
  8. maxair = 10
  9. EnableVehicleGodMode = true
  10.  
  11. DateExpired = "Never"
  12.  
  13. ----------------------------------------------------------------------------------------------------------------------------------------------------------
  14.  
  15. function ResourceStart( )
  16. local vehs = getElementsByType("vehicle")
  17. for key, val in ipairs(vehs) do
  18. if isElementWithinColShape(val, cuboid) and not ( getElementData ( val , "isExploded" ) ) then
  19. SetVehicleGodMode(val,true)
  20. fixVehicle(val)
  21. end
  22. end
  23. end
  24. addEventHandler( "onResourceStart", getResourceRootElement( getThisResource() ),ResourceStart)
  25.  
  26. function ResourceStop( )
  27. local vehs = getElementsByType("vehicle")
  28. for key, val in ipairs(vehs) do
  29. if isElementWithinColShape(val, cuboid) then
  30. SetVehicleGodMode(val,false)
  31. end
  32. end
  33. end
  34. addEventHandler( "onResourceStop", getResourceRootElement( getThisResource() ),ResourceStop)
  35.  
  36. ----------------------------------------------------------------------------------------------------------------------------------------------------------
  37.  
  38. function createGate ()
  39. Gate1 = createObject ( 16775, 243.099609375, 464.2998046875, 5.5999999046326, 0, 0, 0 )
  40. Gate2 = createObject ( 5333,115.7,199.1,10.2, 0, 0, 270 )
  41. end
  42. addEventHandler ( "onResourceStart", getResourceRootElement ( getThisResource () ), createGate )
  43.  
  44. function closeGate (PlayerID)
  45. if ( getElementData ( PlayerID , "gang" ) == GroupName ) or is_admin(PlayerID) then
  46. if getElementData(source,"gang") == "None" then return end
  47. if not doesGangExists(getElementData(source,"gang")) then return end
  48. for i, PlayerID in ipairs(getPlayersByGang(getElementData(source,"gang"))) do
  49. if getElementData(PlayerID,"gang") == "None" then break end
  50. if getElementData(PlayerID,"gang") == getElementData(source,"gang") then
  51. moveObject ( Gate1, 1000, 243.099609375, 464.2998046875, 5.5999999046326 )
  52. triggerClientEvent( source, "dxPickupsText", PlayerID, "BRAMA ZAMKNIETA", 255,0,0 )
  53. end
  54. end
  55. end
  56. end
  57. addCommandHandler("zamknij",closeGate)
  58.  
  59.  
  60. function openGate (PlayerID)
  61. if ( getElementData ( PlayerID , "gang" ) == GroupName ) or is_admin(PlayerID) then
  62. if getElementData(source,"gang") == "None" then return end
  63. if not doesGangExists(getElementData(source,"gang")) then return end
  64. for i, PlayerID in ipairs(getPlayersByGang(getElementData(source,"gang"))) do
  65. if getElementData(PlayerID,"gang") == "None" then break end
  66. if getElementData(PlayerID,"gang") == getElementData(source,"gang") then
  67. moveObject ( Gate1, 1000, 243.099609375, 464.2998046875, -1 )
  68. triggerClientEvent( source, "dxPickupsText", PlayerID, "BRAMA OTWARTA", 173,255,47 )
  69. end
  70. end
  71. end
  72. end
  73. addCommandHandler("otworz",openGate)
  74.  
  75. ----------------------------------------------------------------------------------------------------------------------------------------------------------
  76.  
  77. function enterVehicle ( player, seat, jacked )
  78. if isElementWithinColShape(source, cuboid) then
  79. if ( is_group(player) or is_admin(player) ) and seat == 0 then
  80. setElementFrozen(source, false)
  81. sendMsg(player, "[BASE] Freeze in the vehicle has been disabled!")
  82. end
  83. end
  84. end
  85. addEventHandler ( "onVehicleEnter", getRootElement(), enterVehicle )
  86.  
  87. function exitVehicle ( player, seat, jacked )
  88. if isElementWithinColShape(source, cuboid) then
  89. if ( is_group(player) or is_admin(player) ) and seat == 0 then
  90. setElementFrozen(source, true)
  91. sendMsg(player, "[BASE] Freeze in the vehicle has been enabled!")
  92. end
  93. end
  94. end
  95. addEventHandler ( "onVehicleExit", getRootElement(), exitVehicle)
  96.  
  97. ----------------------------------------------------------------------------------------------------------------------------------------------------------
  98.  
  99. ZL_TIMER = {}
  100.  
  101. function target_hit(element, dim)
  102. if dim == true and getElementType(element) == "player" then
  103. if is_group(element) then
  104. setTimer(function()
  105. sendMsg(element, "[BASE] Your base has "..CountVehicles().."/"..maxvehicles.." vehicles and "..CountAir().."/"..maxair.." airs! Expiration date:#FF0000 "..DateExpired) end,
  106. 100, 1)
  107. elseif is_admin(element) then
  108. sendMsg(element, "[BASE] Baza nalezy do gangu#FF0000 "..GroupName.."#E7D9B0 i wygasa#FF0000 "..DateExpired.."")
  109. setTimer(function()
  110. sendMsg(element, "[BASE] Stan limitu: "..CountVehicles().."/"..maxvehicles.." poj. ladowych i "..CountAir().."/"..maxair.." poj. powietrznych") end,
  111. 100, 1)
  112. else
  113. sendMsg(element, "[BASE]#FF0000 Warning!#E7D9B0 This is private base. You have 3 seconds to leave this area!")
  114. setTimer(target2, 3000, 1, element, dim)
  115. sendMsgOwners(element)
  116. end
  117. end
  118. if getElementType(element) == "vehicle" then
  119. if getElementData(element , "isExploded") then
  120. return
  121. end
  122. if CountVehicles() > maxvehicles then
  123. destroyVehicle(element, 0)
  124. elseif CountAir() > maxair then
  125. destroyVehicle(element, 1)
  126. else
  127. SetVehicleGodMode(element,true)
  128. fixVehicle(element)
  129. end
  130. end
  131. end
  132. addEventHandler("onColShapeHit", cuboid, target_hit)
  133.  
  134. function target2(element, dim)
  135. if getElementType(element) == "player" then
  136. if isElementWithinColShape(element, cuboid) then
  137. ZL_TIMER[element] = setTimer(ZL_killIntruder, 150, 1, element)
  138. end
  139. end
  140. end
  141.  
  142. function ZL_killIntruder(p)
  143. setElementData(p, "blood", -20)
  144. setTimer(target2, 100, 1, p, true)
  145. end
  146.  
  147. function target_leave(element, dim)
  148. if getElementType ( element ) == "vehicle" then
  149. SetVehicleGodMode(element,false)
  150. end
  151.  
  152. if getElementType(element) == "player" then
  153. if isTimer(ZL_TIMER[element]) then
  154. killTimer(ZL_TIMER[element])
  155. end
  156. end
  157. end
  158. addEventHandler("onColShapeLeave", cuboid, target_leave)
  159.  
  160. ----------------------------------------------------------------------------------------------------------------------------------------------------------
  161.  
  162. function CountAir()
  163. local countair=0
  164. local vehicles = getElementsWithinColShape (cuboid, "vehicle" ) or {}
  165.  
  166. for _,v in ipairs(vehicles) do
  167. if isVehicleBlown(v) == false then
  168. if getElementModel(v) == 593 or getElementModel(v) == 497 or getElementModel(v) == 487 then
  169. countair = countair + 1
  170. end
  171. end
  172. end
  173. return countair
  174. end
  175.  
  176. function CountVehicles()
  177. local countvehicles=0
  178. local vehicles = getElementsWithinColShape (cuboid, "vehicle" ) or {}
  179.  
  180. for _,v in ipairs(vehicles) do
  181. if isVehicleBlown(v) == false then
  182. if not ( getElementModel(v) == 593 or getElementModel(v) == 497 or getElementModel(v) == 487 or getElementModel(v) == 422 or getElementModel(v) == 471 or getElementModel(v) == 550 or getElementModel(v) == 509 ) then
  183. countvehicles = countvehicles + 1
  184. end
  185. end
  186. end
  187. return countvehicles
  188. end
  189.  
  190. function destroyVehicle(hitElement, isAir)
  191. if getElementType(hitElement) == 'vehicle' then
  192. local occupants = getVehicleOccupants(hitElement) or {}
  193.  
  194. for seat, occupant in pairs(occupants) do
  195. if (getElementType(occupant) == "player") then
  196. if is_group(occupant) then
  197. removePedFromVehicle(occupant)
  198.  
  199. if isAir >= 1 then
  200. sendMsg(occupant, "[BASE]#FF0000 Warning!#E7D9B0 Your gang crossed the airs limit ( max is "..maxair.." )!")
  201. else
  202. sendMsg(occupant, "[BASE]#FF0000 Warning!#E7D9B0 Your gang crossed the vehicles limit ( max is "..maxvehicles.." )!")
  203. end
  204. end
  205. SetVehicleGodMode(hitElement,false)
  206. end
  207. end
  208.  
  209. setTimer( function()
  210. if isElementWithinColShape(hitElement, cuboid) then
  211. setElementPosition(hitElement,619.0, -3126.6, -2.1)
  212. end
  213. end, 3000, 1)
  214.  
  215. end
  216. end
  217.  
  218. ----------------------------------------------------------------------------------------------------------------------------------------------------------
  219.  
  220. function SetVehicleGodMode( VehicleID, godEoD )
  221. if EnableVehicleGodMode == true then
  222. setVehicleDamageProof (VehicleID, godEoD )
  223. end
  224. end
  225.  
  226. function is_admin(index)
  227. local accName = getAccountName(getPlayerAccount(index))
  228. if ( isObjectInACLGroup ("user."..accName, aclGetGroup ( "Admin" ) ) or isObjectInACLGroup ("user."..accName, aclGetGroup ( "SuperModeratorFG" ) ) ) then
  229. return true
  230. else
  231. return false
  232. end
  233. end
  234.  
  235. function is_group( PlayerID )
  236. if ( getElementData ( PlayerID , "gang" ) == GroupName ) then
  237. return true
  238. else
  239. return false
  240. end
  241. end
  242.  
  243. function sendMsgOwners( PlayerID )
  244. local connectedPlayers = getElementsByType ( "player" )
  245. for i, aPlayer in ipairs(connectedPlayers) do
  246. if( is_group (aPlayer) == true ) then
  247. sendMsg(aPlayer,"[BASE]#FF0000 Warning!#E7D9B0 Player#FFCB00 "..skipColorCode ( PlayerID ) .."#E7D9B0 is trying to attack the base!")
  248. end
  249. end
  250. end
  251.  
  252. function sendMsg(iplayer,msg)
  253. outputChatBox ( msg, iplayer, 231, 217, 176, true )
  254. end
  255.  
  256. function skipColorCode ( s )
  257. if type ( s ) == "string" then
  258. return string.gsub ( s, "(#%x%x%x%x%x%x)", "" )
  259. elseif type ( s ) == "userdata" and getElementType ( s ) == "player" then
  260. return string.gsub ( getPlayerName ( s ), "(#%x%x%x%x%x%x)", "" )
  261. end
  262. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement