Advertisement
Guest User

1421

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