Advertisement
Guest User

532

a guest
Nov 13th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.17 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. addCommandHandler("otworz",openGate)
  73.  
  74. ----------------------------------------------------------------------------------------------------------------------------------------------------------
  75.  
  76. function enterVehicle ( player, seat, jacked )
  77. if isElementWithinColShape(source, cuboid) then
  78. if ( is_group(player) or is_admin(player) ) and seat == 0 then
  79. setElementFrozen(source, false)
  80. sendMsg(player, "[BASE] Freeze in the vehicle has been disabled!")
  81. end
  82. end
  83. end
  84. addEventHandler ( "onVehicleEnter", getRootElement(), enterVehicle )
  85.  
  86. function exitVehicle ( player, seat, jacked )
  87. if isElementWithinColShape(source, cuboid) then
  88. if ( is_group(player) or is_admin(player) ) and seat == 0 then
  89. setElementFrozen(source, true)
  90. sendMsg(player, "[BASE] Freeze in the vehicle has been enabled!")
  91. end
  92. end
  93. end
  94. addEventHandler ( "onVehicleExit", getRootElement(), exitVehicle)
  95.  
  96. ----------------------------------------------------------------------------------------------------------------------------------------------------------
  97.  
  98. ZL_TIMER = {}
  99.  
  100. function target_hit(element, dim)
  101. if dim == true and getElementType(element) == "player" then
  102. if is_group(element) then
  103. setTimer(function()
  104. sendMsg(element, "[BASE] Your base has "..CountVehicles().."/"..maxvehicles.." vehicles and "..CountAir().."/"..maxair.." airs! Expiration date:#FF0000 "..DateExpired) end,
  105. 100, 1)
  106. elseif is_admin(element) then
  107. sendMsg(element, "[BASE] Baza nalezy do gangu#FF0000 "..GroupName.."#E7D9B0 i wygasa#FF0000 "..DateExpired.."")
  108. setTimer(function()
  109. sendMsg(element, "[BASE] Stan limitu: "..CountVehicles().."/"..maxvehicles.." poj. ladowych i "..CountAir().."/"..maxair.." poj. powietrznych") end,
  110. 100, 1)
  111. else
  112. sendMsg(element, "[BASE]#FF0000 Warning!#E7D9B0 This is private base. You have 3 seconds to leave this area!")
  113. setTimer(target2, 3000, 1, element, dim)
  114. sendMsgOwners(element)
  115. end
  116. end
  117. if getElementType(element) == "vehicle" then
  118. if getElementData(element , "isExploded") then
  119. return
  120. end
  121. if CountVehicles() > maxvehicles then
  122. destroyVehicle(element, 0)
  123. elseif CountAir() > maxair then
  124. destroyVehicle(element, 1)
  125. else
  126. SetVehicleGodMode(element,true)
  127. fixVehicle(element)
  128. end
  129. end
  130. end
  131. addEventHandler("onColShapeHit", cuboid, target_hit)
  132.  
  133. function target2(element, dim)
  134. if getElementType(element) == "player" then
  135. if isElementWithinColShape(element, cuboid) then
  136. ZL_TIMER[element] = setTimer(ZL_killIntruder, 150, 1, element)
  137. end
  138. end
  139. end
  140.  
  141. function ZL_killIntruder(p)
  142. setElementData(p, "blood", -20)
  143. setTimer(target2, 100, 1, p, true)
  144. end
  145.  
  146. function target_leave(element, dim)
  147. if getElementType ( element ) == "vehicle" then
  148. SetVehicleGodMode(element,false)
  149. end
  150.  
  151. if getElementType(element) == "player" then
  152. if isTimer(ZL_TIMER[element]) then
  153. killTimer(ZL_TIMER[element])
  154. end
  155. end
  156. end
  157. addEventHandler("onColShapeLeave", cuboid, target_leave)
  158.  
  159. ----------------------------------------------------------------------------------------------------------------------------------------------------------
  160.  
  161. function CountAir()
  162. local countair=0
  163. local vehicles = getElementsWithinColShape (cuboid, "vehicle" ) or {}
  164.  
  165. for _,v in ipairs(vehicles) do
  166. if isVehicleBlown(v) == false then
  167. if getElementModel(v) == 593 or getElementModel(v) == 497 or getElementModel(v) == 487 then
  168. countair = countair + 1
  169. end
  170. end
  171. end
  172. return countair
  173. end
  174.  
  175. function CountVehicles()
  176. local countvehicles=0
  177. local vehicles = getElementsWithinColShape (cuboid, "vehicle" ) or {}
  178.  
  179. for _,v in ipairs(vehicles) do
  180. if isVehicleBlown(v) == false then
  181. 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
  182. countvehicles = countvehicles + 1
  183. end
  184. end
  185. end
  186. return countvehicles
  187. end
  188.  
  189. function destroyVehicle(hitElement, isAir)
  190. if getElementType(hitElement) == 'vehicle' then
  191. local occupants = getVehicleOccupants(hitElement) or {}
  192.  
  193. for seat, occupant in pairs(occupants) do
  194. if (getElementType(occupant) == "player") then
  195. if is_group(occupant) then
  196. removePedFromVehicle(occupant)
  197.  
  198. if isAir >= 1 then
  199. sendMsg(occupant, "[BASE]#FF0000 Warning!#E7D9B0 Your gang crossed the airs limit ( max is "..maxair.." )!")
  200. else
  201. sendMsg(occupant, "[BASE]#FF0000 Warning!#E7D9B0 Your gang crossed the vehicles limit ( max is "..maxvehicles.." )!")
  202. end
  203. end
  204. SetVehicleGodMode(hitElement,false)
  205. end
  206. end
  207.  
  208. setTimer( function()
  209. if isElementWithinColShape(hitElement, cuboid) then
  210. setElementPosition(hitElement,619.0, -3126.6, -2.1)
  211. end
  212. end, 3000, 1)
  213.  
  214. end
  215. end
  216.  
  217. ----------------------------------------------------------------------------------------------------------------------------------------------------------
  218.  
  219. function SetVehicleGodMode( VehicleID, godEoD )
  220. if EnableVehicleGodMode == true then
  221. setVehicleDamageProof (VehicleID, godEoD )
  222. end
  223. end
  224.  
  225. function is_admin(index)
  226. local accName = getAccountName(getPlayerAccount(index))
  227. if ( isObjectInACLGroup ("user."..accName, aclGetGroup ( "Admin" ) ) or isObjectInACLGroup ("user."..accName, aclGetGroup ( "SuperModeratorFG" ) ) ) then
  228. return true
  229. else
  230. return false
  231. end
  232. end
  233.  
  234. function is_group( PlayerID )
  235. if ( getElementData ( PlayerID , "gang" ) == GroupName ) then
  236. return true
  237. else
  238. return false
  239. end
  240. end
  241.  
  242. function sendMsgOwners( PlayerID )
  243. local connectedPlayers = getElementsByType ( "player" )
  244. for i, aPlayer in ipairs(connectedPlayers) do
  245. if( is_group (aPlayer) == true ) then
  246. sendMsg(aPlayer,"[BASE]#FF0000 Warning!#E7D9B0 Player#FFCB00 "..skipColorCode ( PlayerID ) .."#E7D9B0 is trying to attack the base!")
  247. end
  248. end
  249. end
  250.  
  251. function sendMsg(iplayer,msg)
  252. outputChatBox ( msg, iplayer, 231, 217, 176, true )
  253. end
  254.  
  255. function skipColorCode ( s )
  256. if type ( s ) == "string" then
  257. return string.gsub ( s, "(#%x%x%x%x%x%x)", "" )
  258. elseif type ( s ) == "userdata" and getElementType ( s ) == "player" then
  259. return string.gsub ( getPlayerName ( s ), "(#%x%x%x%x%x%x)", "" )
  260. end
  261. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement