Jump to content

[Help] Event


BulgariaRoam

Recommended Posts

Hello im new i started BulgariaRoam few days ago, i have found this script but i could not make it start its all working good, until players need to join in event. it start saying this only:

"hdfinfo"

"hdfinfo2"

ps. dont mind me im beginner in lua, so any help is welcomed.

code:

dfPlayer = {}
local dfEliminatedPlayers = {}
local dfPlayers = {}
local dfStarted = false
local hydradftimer
local startingTimer
local hydraDimension = 800
local minPlayers = 2
local maxPlayers = 30
local timeOut = 900000 -- 15 minutes until time out

local hydraPos = {
    [1] =  {1730.1080322266, -2481.8930664063, 13.5546875},
    [2] =  {1634.0745849609, -2483.7229003906, 13.5546875},
    [3] =  {1438.7257080078, -2484.6750488281, 13.5546875},
    [4] =  {1441.2454833984, -2592.9738769531, 13.546875},
    [5] =  {1532.2341308594, -2596.7080078125, 13.546875},
    [6] =  {1639.5656738281, -2598.0341796875, 13.546875},
    [7] =  {1790.9020996094, -2598.1767578125, 13.546875},
    [8] =  {1985.4617919922, -2599.8525390625, 13.546875},
    [9] =  {2107.1220703125, -2532.3002929688, 13.546875},
    [10] =  {2046.0454101563, -2492.328125, 13.546875},
    [11] =  {1954.8067626953, -2486.30859375, 13.53911781311},
    [12] =  {1839.9560546875, -2441.4934082031, 13.5546875},
    [13] =  {1875.158203125, -2382.9482421875, 13.5546875},
    [14] =  {1917.3041992188, -2330.8693847656, 13.546875},
    [15] =  {1964.9204101563, -2260.3515625, 13.546875},
}


function cancelSignupCommand(player)
    if (not dfPlayer[player]) then 
        outputChatBox("You didn't signup for the Hydra Dog Fight event", player, 255, 0, 0) 
        return 
    end
    if (dfStarted) then 
        outputChatBox("The Hydra Dog Fight event had already started", player, 255, 0, 0) 
        return 
    end
    dfPlayer[player] = nil
    for index, player2 in pairs(dfPlayers) do
        if (player == player2) then
            table.remove(dfPlayers, index)
            break
        end
    end
    if (#dfPlayers < minPlayers and isTimer(startingTimer)) then
        killTimer(startingTimer)
    end
    removeEventHandler("onPlayerQuit", player, onDFQuit)
end
addCommandHandler("canceldf", cancelSignupCommand)

function signupForDF(client)
    if (exports.playerEvents:isEventStarted("Hydra Dog Fight") ~= true) then
        return
        outputChatBox("This event is not yet started", client, 255, 0, 0)
    end
    if (getPlayerMoney(client) < 5000) then 
        outputChatBox("You can't afford the entry fee (5,000)", client, 255, 0, 0) 
        return
    end    
    if (dfPlayer[client]) then 
        outputChatBox("You have already signed up for the Hydra Dog Fight event", client, 255, 0, 0) 
        return 
    end
    if (#dfPlayers == maxPlayers) then 
        outputChatBox("The event is already full and about to start", client, 255, 0, 0) 
        return 
    end
    if (dfStarted) then 
        outputChatBox("The Hydra Dog Fight event had already started. Please wait till it ends", client, 255, 0, 0) 
        return 
    end
    if (getElementDimension(client) > 0) then 
        outputChatBox("Your dimension doesn't allow you to join the Hydra Dog Fight", client, 255, 0, 0) 
        return
    end
    dfPlayer[client] = true
    sendToDFPlayers(getPlayerName(client).." has signed up. "..(#dfPlayers + 1).."/"..maxPlayers.." players signed up", 255, 255, 0)
    table.insert(dfPlayers, client)
    takePlayerMoney(client, 5000, "Signed up for Hydra Dog Fight")
    addEventHandler("onPlayerQuit", client, onDFQuit)
    outputChatBox("You have successfully signed up for the Hydra Dog Fight event. "..(#dfPlayers).."/"..maxPlayers.." players signed up", client, 255, 255, 0)
    outputChatBox("You can use /canceldf to cancel signing up for the Hydra Dog Fight event. You can't use this command after the event has started", client, 255, 255, 0)
    if (#dfPlayers == minPlayers) then
        startingTimer = setTimer(beforeStartDF, 6000, 1)
    end
    if (#dfPlayers == maxPlayers) then
        if (isTimer(startingTimer)) then
            killTimer(startingTimer)
        end
        beforeStartDF()
    end
end
--addEvent("events.HDFsignUp", true)
addCommandHandler("events.HDFsignUp", signupForDF)
--addCommandHandler("joinhdf", signupForDF)

function beforeStartDF()
    dfStarted = true
    sendToDFPlayers(#dfPlayers.." players have signed up for the Hydra Dog Fight event. The event will start in 10 seconds.", 255, 255, 0)
    addWastedHandler()
    setTimer(startDF, 10000, 1)
end

function startDF()
            local vehicle = createVehicle(520, hydraPos[index][1], hydraPos[index][2], hydraPos[index][3] + 1)
            triggerClientEvent(player, "Countdown", player)
            setVehicleDamageProof(vehicle, true)
            setTimer(setVehicleDamageProof, 8000, 1, vehicle, false)
            setElementFrozen(player, true)
            setElementDimension(vehicle, hydraDimension)
            setElementDimension(player, hydraDimension)
            toggleAllControls(player, false)
            warpPedIntoVehicle(player, vehicle)
            setTimer(setElementFrozenDelayed, 12000, 1, player, false)
    addEventHandler("onVehicleStartExit", resourceRoot, cancelVehicleDamage)
    hydradfTimer = setTimer(endDF, timeOut, 1)
end

function setElementFrozenDelayed(plr, bool)
    if (isElement(plr)) then
        toggleAllControls(plr, true)
        setElementFrozen(plr, bool)
        toggleControl(plr, "vehicle_secondary_fire", false)
        setTimer(toggleControl, 10000, 1, plr, "vehicle_secondary_fire", true)
    end
end

function onDFWasted()
    if (not dfPlayer[source]) then 
        return 
    end
    dfPlayer[source] = nil
    table.insert(dfEliminatedPlayers, source)
    removeEventHandler("onPlayerWasted", source, onDFWasted)
    removeEventHandler("onPlayerQuit", source, onDFQuit)
    sendToDFPlayers(getPlayerName(source).." is out!", 255, 255, 0)
    for index, player in pairs(dfPlayers) do
        if (source == player) then
            table.remove(dfPlayers, index)
            break
        end
    end
end


function onDFQuit()
    if (not dfPlayer[source]) then 
        return 
    end
    for index, player in pairs(dfPlayers) do
        if (source == player) then
            table.remove(dfPlayers, index)
            break
        end
    end
    if (dfStarted) then
        sendToDFPlayers(getPlayerName(source).." is out!", 255, 255, 0)
        if (#dfPlayers == 1) then
            endDF(dfPlayers[1])
        end
    else
        if (#dfPlayers < minPlayers and isTimer(startingTimer)) then
            killTimer(startingTimer)
        end
    end
end

function onLogin()
    if (getElementDimension(source) == hydraDimension) then
        setElementDimension(source, 0)
    end
end
addEventHandler("onPlayerLogin", root, onLogin)

function endDF(player)
    if (isElement(player)) then
        dfPlayer[player] = nil
        outputChatBox("You won the Hydra Dog Fight event! You got $50000. You'll be warped shortly", player, 0, 255, 0)
        removeEventHandler("onPlayerWasted", player, onDFWasted)
        removeEventHandler("onPlayerQuit", player, onDFQuit)
        givePlayerMoney(player, 50000, "Won Hydra Dog Fight", false)
        for index, player2 in pairs(dfEliminatedPlayers) do
            outputChatBox(getPlayerName(player).." has won the Hydra Dog Fight event!", player2, 255, 255, 0)
        end
        local function warp()
            if (not isElement(player)) then 
                return 
            end
            fadeCamera(player, false)
            local function warp()
                if (not isElement(player)) then 
                    return 
                end
                removePedFromVehicle(player)
                setElementDimension(player, 0)
                fadeCamera(player, true)
                setElementPosition(player, 2731.0529785156, -1832.8316650391, 11.050182342529)
            end
            setTimer(warp, 1000, 1)
        end
        setTimer(warp, 5000, 1)
    else
        for index, player in pairs(dfPlayers) do
            dfPlayer[player] = nil
            outputChatBox("Timeout! No one won", player, 255, 0, 0) 
            removeEventHandler("onPlayerWasted", player, onDFWasted)
            removeEventHandler("onPlayerQuit", player, onDFQuit)
            killPed(player)
        end
        for index, player in pairs(dfEliminatedPlayers) do
            outputChatBox("Timeout! No one won", player, 255, 0, 0) 
        end
    end
    dfPlayers = {}
    dfEliminatedPlayers = {}
    dfPlayer = {}
    dfStarted = false
    if (isTimer(hydradfTimer)) then 
        killTimer(hydradfTimer) 
    end
    hydradfTimer = nil
    exports.playerEvents:stopEvent("Hydra Dog Fight")
    exports.playerEvents:startEvent("Duels Tournament")
    removeEventHandler("onVehicleStartExit", resourceRoot, cancelVehicleDamage)
    for index, vehicle in pairs(getElementsByType("vehicle", resourceRoot)) do 
        destroyElement(vehicle) 
    end
end

function sendToDFPlayers(message, r, g, b)
    for index, player in pairs(dfPlayers) do
        outputChatBox(message, player, r, g, b)
    end
end

function cancelVehicleDamage(player)
    if (dfStarted and dfPlayer[player]) then 
        cancelEvent() 
    end
end

function updatePlayerCount()
    if (not dfStarted) then
        return
    end
    for k, v in pairs(dfPlayers) do
        if (getElementDimension(v) == 800) then
            outputChatBox(v, "hdfinfo", "Do not fly outside Los Santos!", 255, 0, 0)
            outputChatBox(v, "hdfinfo2", "Status: "..#dfPlayers.." player/s remaining", 0, 255, 0)
        elseif (getElementDimension(v) ~= 800) then
            outputChatBox(v, "hdfinfo", "", 255, 255, 0)
            outputChatBox(v, "hdfinfo2", "", 255, 255, 0)
        end
    end
end
setTimer(updatePlayerCount, 1000, 0)

 

Link to comment

the problem is in dimension and joining event look out the code  

function signupForDF(client)
    if (exports.playerEvents:isEventStarted("Hydra Dog Fight") ~= true) then
        return
        outputChatBox("This event is not yet started", client, 255, 0, 0)
    end

player cant join event (fix this by your own)and if you fixed it then leave dont paste the code here there is a chance to steal your ideas! isuggest you 1

dimension keep it some thing which is suitable for all players,i checked your code so i don't want to fix these here so look out and fix them by your own its works fine for me in my local test !

   if (getElementDimension(client) > 0) then 
        outputChatBox("Your dimension doesn't allow you to join the Hydra Dog Fight", client, 255, 0, 0) 
        return
    end

 

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...