Jump to content

Turf zone leaving


DRW

Recommended Posts

I'm using a turfing script that creates specific turfs and lets gang members conquer the turf zones, but when players enter they start conquering, and when they leave the zone the turf is still being conquered even if there are no players from the gang inside the turf colshape. What can I do?

Server-Side:

------------------------------------------------------ 
--            Scripting By Sasuke* 
--      Por Favor, no remuevas los creditos. 
--      Copyright © 2013 - Todos los derechos reservados. 
------------------------------------------------------ 
  
  
local turfPos = { 
{ 2133.1950683594, 633.66455078125, 0, 197.5, 92, 90 }, 
{ 2486.5935058594, 678.20172119141, 0,  245, 133, 30 }, 
{ 1856.2864990234, 627.07629394531, 0,  138.25, 152.75, 90 }, 
{ 1576.8956298828, 662.84362792969, 0, 181, 120.5, 90 }, 
{ 1577.6783447266, 943.66607666016, 0,  190, 190, 90 }, 
{ 1383.4364013672, 909.61499023438, 0,  142, 230, 90 }, 
{ 956.94744873047, 1011.635925293, 0,  220, 140, 90 }, 
{ 1017.7476196289, 1203.4068603516, 0,  180, 165, 90 }, 
{ 1017.623046875, 1383.4741210938, 0,  190, 290, 90 }, 
{ 917.99707031253, 1623.6003417969, 0,  80, 220, 90 }, 
{ 1017.7178955078, 1862.6740722656, 0,  140, 180, 90 }, 
{ 912.50573730469, 1958.6761474609, 0,  90, 230, 90 }, 
{ 1017.3455200195, 2063.38671875, 0,  150, 300, 90 }, 
{ 1300.7644042969, 2095.5100097656, 0,  200, 140, 90 }, 
{ 1398.1997070313, 2323.5505371094, 0,  160, 65, 90 }, 
{ 1578.1955566406, 2284.0825195313, 0,  180, 110, 90 }, 
{ 1237.6285400391, 2581.4663085938, 0,  450, 130, 90 }, 
{ 1780.478515625, 2567.2121582031, 0,  130, 130, 90 }, 
{ 1698.2750244141, 2724.494140625, 0,  200, 150, 90 }, 
{ 2237.9494628906, 2723.7814941406, 0,  180, 110, 90 }, 
{ 2498.6853027344, 2704.6188964844, 0,  300, 140, 90 }, 
{ 2798.1267089844, 2303.9643554688, 0,  120, 300, 90 }, 
{ 2557.5688476563, 2243.4963378906, 0,  100, 230, 90 }, 
{ 2532.5830078125, 2063.4118652344, 0,  100, 150, 90 }, 
{ 2558.1779785156, 1624.0816650391, 0,  100, 300, 90 }, 
{ 2437.685546875, 1483.7209472656, 0,  160, 120, 90 }, 
{ 2077.7106933594, 1203.5559082031, 0,  340, 170, 90 }, 
{ 2082.3193359375, 979.23583984375, 0,  270, 210, 90 } 
} 
  
local areaPos = { 
{ 2130, 630, 200, 100 }, 
{ 2488.8793945313, 680.78289794922, 250, 130 }, 
{ 1858, 623, 140, 165 }, 
{ 1577, 663, 180, 130 }, 
{ 1577, 943, 185, 190 }, 
{ 1383, 909, 120, 230 }, 
{ 956, 1011, 220, 140 }, 
{ 1017, 1203, 180, 165 }, 
{ 1017, 1383, 190, 290 }, 
{ 917, 1623, 80, 220 }, 
{ 1017, 1862, 140, 180 }, 
{ 912, 1958, 90, 240 }, 
{ 1017, 2063, 150, 300 }, 
{ 1300, 2092, 200, 140 }, 
{ 1398, 2323, 160, 65 }, 
{ 1578, 2284, 180, 110 }, 
{ 1237, 2581, 450, 130 }, 
{ 1780, 2567, 130, 130 }, 
{ 1698, 2724, 200, 150 }, 
{ 2237, 2723, 180, 110 }, 
{ 2498, 2704, 300, 140 }, 
{ 2798, 2303, 120, 300 }, 
{ 2557, 2243, 100, 230 }, 
{ 2532, 2063, 100, 150 }, 
{ 2558, 1624, 100, 300 }, 
{ 2437, 1483, 160, 120 }, 
{ 2077, 1203, 340, 170}, 
{ 2082, 979, 270, 210 } 
} 
  
local turfElement = {} 
local turfTimer = {} 
checkComplete = false 
language = "Spanish" 
-- Pon "Spanish" para español 
-- Put "English" for english text 
  
addEventHandler("onResourceStart", resourceRoot, 
function() 
    executeSQLQuery("CREATE TABLE IF NOT EXISTS Turf_System ( Turfs TEXT, GangOwner TEXT, r INT, g INT, b INT)") 
    local check = executeSQLQuery("SELECT * FROM Turf_System" ) 
    if #check == 0 then 
        for i=1,#turfPos do 
            executeSQLQuery("INSERT INTO Turf_System(Turfs,GangOwner,r,g,b) VALUES(?,?,?,?,?)", "Turf["..tostring(i).."]", "Nadie", 0, 255, 0) 
        end 
    end 
    for i,v in ipairs(turfPos) do 
        local sqlData = executeSQLQuery("SELECT * FROM Turf_System WHERE Turfs=?", "Turf["..tostring(i).."]") 
        local turfCol = createColCuboid(unpack(v)) 
        setElementData(turfCol, "getTurfGang", sqlData[1].GangOwner) 
        local arg1,arg2,arg3,arg4 = unpack(areaPos[i]) 
        local turfArea = createRadarArea(arg1, arg2, arg3, arg4, sqlData[1].r, sqlData[1].g, sqlData[1].b, 175) 
        turfElement[turfCol] = {turfCol, turfArea, i} 
    end 
    if language == "Spanish" then 
        outputDebugString("Sistema de turf by Sasuke* ha iniciado correctamente!") 
    else 
        outputDebugString("Turf System by Sasuke* was started correctly!") 
    end 
end ) 
  
function radar ( player, md ) 
    if getElementType ( player ) ~= "player" or not md then 
        return 
    end 
    if not getElementData(source, "getTurfGang") then 
        return 
    end 
    local t = turfElement[source] 
    if type(t) ~= "table" then 
        return 
    end 
    local turf,area,id = unpack(t) 
    if turf and area and source == turf then 
        local playerGang = getElementData ( player, "gang" ) 
        local turfGang = executeSQLQuery("SELECT GangOwner FROM Turf_System WHERE Turfs=?", "Turf["..tostring(id).."]" ) 
        if ( turfGang[1].GangOwner == playerGang ) then 
            if language == "Spanish" then 
                outputChatBox("Este territorio ya pertenece a "..turfGang[1].GangOwner or "Nadie", player, 0, 255, 0, false) 
            else 
                outputChatBox("This territory already belongs to "..turfGang[1].GangOwner or "None", player, 0, 255, 0, false) 
            end 
        else 
            if not getPlayerTeam(player) then return end 
            local team = getPlayerTeam ( player ) 
            local team = getPlayerTeam ( player ) 
            if ( getTeamName( team ) == "Jugadores" ) then 
                local playerGang = getElementData ( player, "gang" ) 
                if ( isTimer ( turfTimer[source] ) ) then return end 
                if ( playerGang ) then 
  
                    local r, g, b = unpack ( exports [ "gang_system" ]:getGangColor ( playerGang ) ) 
                    setRadarAreaFlashing ( area, true ) 
                    if turfGang[1].GangOwner ~= "Nadie" then 
                        if language == "Spanish" then 
                            outputChatBox("Estás en la zona de "..turfGang[1].GangOwner..". ¡Espera 2 minutos para conquistar el territorio!", player, 0, 255, 0, false) 
                        else 
                            outputChatBox("You enter into de "..turfGang[1].GangOwner.."'s turf zone. Wait 2 minutes to capture the turf and win 4k", player, 0, 255, 0, false) 
                        end 
                    else 
                        if language == "Spanish" then 
                            outputChatBox("¡Éste turf no pertenece a nadie, sobrevive 2 minutos y lo conseguirás! ", player, 0, 255, 0, false) 
                        else 
                            outputChatBox("This turf do not belong to anyone. Wait 2 minutes to capture the turf and win 4k", player, 0, 255, 0, false) 
                        end 
                    end 
  
                    turfTimer[source] = setTimer ( 
                        function ( ) 
                            local beachTurfCplayers = getElementColShape ( turf ) 
                            local players = getElementsWithinColShape ( turf, "player" ) 
                            setRadarAreaColor ( area, tonumber(r), tonumber(g), tonumber(b), 175 ) 
                            for _, player in ipairs ( players ) do 
                                if getElementData(player, "gang") == playerGang then 
                                    if language == "Spanish" then 
                                        outputChatBox("¡Tu clan ha conquistado el territorio!", player, 0, 255, 0, false) 
                                    else 
                                        outputChatBox("Congratulations. You capture the turf. +4K!", player, 0, 255, 0, false) 
                                    end 
                                    triggerClientEvent("onTakeTurf", player) 
                                    givePlayerMoney ( player, 7000 ) 
                                    executeSQLQuery("UPDATE Turf_System SET GangOwner=?,r=?,g=?,b=? WHERE Turfs=?", playerGang, tonumber(r), tonumber(g), tonumber(b), "Turf["..tostring(id).."]" ) 
                                    -- setElementData ( turf, "getTurfGang", playerGang ) 
                                end 
                            end 
                            setRadarAreaFlashing ( area, false ) 
                        end 
                        ,120000, 1) -- 120000 
                end 
            end 
        end 
    end 
end 
addEventHandler ( "onColShapeHit", root, radar ) 
  

Client-Side:

addEventHandler("onClientResourceStart", resourceRoot, 
function() 
    setDevelopmentMode(true) 
end) 
  
function music() 
    local sound = playSound("missionDone.mp3") 
end 
addEvent("onTakeTurf", true) 
addEventHandler("onTakeTurf", getLocalPlayer(), music) 
  

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...