Jump to content

Problem with winner


papam77

Recommended Posts

DestructionDerby = setmetatable({}, RaceMode) 
DestructionDerby.__index = DestructionDerby 
  
DestructionDerby:register('Destruction derby') 
  
function DestructionDerby:isApplicable() 
    return not RaceMode.checkpointsExist() and RaceMode.getMapOption('respawn') == 'none' 
end 
  
function DestructionDerby:getPlayerRank(player) 
    return #getActivePlayers() 
end 
  
-- Copy of old updateRank 
function DestructionDerby:updateRanks() 
    for i,player in ipairs(g_Players) do 
        if not isPlayerFinished(player) then 
            local rank = self:getPlayerRank(player) 
            if not rank or rank > 0 then 
                setElementData(player, 'race rank', rank) 
            end 
        end 
    end 
    -- Make text look good at the start 
    if not self.running then 
        for i,player in ipairs(g_Players) do 
            setElementData(player, 'race rank', '' ) 
            setElementData(player, 'checkpoint', '' ) 
        end 
    end 
end 
  
function DestructionDerby:onPlayerWasted(player) 
    if isActivePlayer(player) then 
        self:handleFinishActivePlayer(player) 
        if getMapDM() then 
            if getActivePlayerCount() <= 0 then 
                triggerClientEvent ( "showWinMessage", getRootElement()) 
                RaceMode.endMap() 
                -- triggerEvent ( "activatePodium", getRootElement()) 
        
                 
            else 
                TimerManager.createTimerFor("map",player):setTimer(clientCall, 2000, 1, player, 'Spectate.start', 'auto') 
            end 
            local activePlayers = getActivePlayers() 
            if getActivePlayerCount() == 1 then 
                if getElementModel(getPedOccupiedVehicle(activePlayers[1])) == 425 then 
                    setElementHealth(activePlayers[1],0) 
                end 
            end 
        else 
            if getActivePlayerCount() <= 1 then 
            --                triggerClientEvent ( "showWinMessage", getRootElement()) 
                RaceMode.endMap() 
            else 
                TimerManager.createTimerFor("map",player):setTimer(clientCall, 2000, 1, player, 'Spectate.start', 'auto') 
            end 
        end 
    end 
    RaceMode.setPlayerIsFinished(player) 
    showBlipsAttachedTo(player, false) 
end 
  
function DestructionDerby:onPlayerQuit(player) 
    if isActivePlayer(player) then 
        self:handleFinishActivePlayer(player) 
        if getMapDM() then 
            if getActivePlayerCount() <= 0 then 
                RaceMode.endMap() 
            end 
        else 
            if getActivePlayerCount() <= 1 then 
                RaceMode.endMap() 
            end 
        end 
    end 
end 
  
function DestructionDerby:handleFinishActivePlayer(player) 
    -- Update ranking board for player being removed 
    if not self.rankingBoard then 
        self.rankingBoard = RankingBoard:create() 
        self.rankingBoard:setDirection( 'up', getActivePlayerCount() ) 
    end 
    local timePassed = self:getTimePassed() 
    self.rankingBoard:add(player, timePassed) 
    -- Do remove 
    finishActivePlayer(player) 
    -- Update ranking board if one player left 
    local activePlayers = getActivePlayers() 
    if #activePlayers == 1 then 
        self.rankingBoard:add(activePlayers[1], "Winner") 
        callClientFunction(getRootElement(),"setPlayerNameOnWinMessege", activePlayers[1]) 
        triggerEvent("onPlayerDestructionDerbyWin", getRootElement(), activePlayers[1]) 
    end 
end 
  
  
  
------------------------------------------------------------ 
-- activePlayerList stuff 
-- 
  
function isActivePlayer( player ) 
    return table.find( g_CurrentRaceMode.activePlayerList, player ) 
end 
  
function addActivePlayer( player ) 
    table.insertUnique( g_CurrentRaceMode.activePlayerList, player ) 
end 
  
function removeActivePlayer( player ) 
    table.removevalue( g_CurrentRaceMode.activePlayerList, player ) 
end 
  
function finishActivePlayer( player ) 
    table.removevalue( g_CurrentRaceMode.activePlayerList, player ) 
    table.insertUnique( g_CurrentRaceMode.finishedPlayerList, _getPlayerName(player) ) 
end 
  
function getFinishedPlayerCount() 
    return #g_CurrentRaceMode.finishedPlayerList 
end 
  
function getActivePlayerCount() 
    return #g_CurrentRaceMode.activePlayerList 
end 
  
function getActivePlayers() 
    return g_CurrentRaceMode.activePlayerList 
end 
  
function getMapDM() 
    local getMapName = g_MapInfo.name 
    if string.find(getMapName, "[DM]", 1, true) then 
        return true 
    else  
        return false 
    end 
end 

http://eag-gaming.eu/uploads/failwin.png

It is writing Crany's name and he was here before 30 minutes. Why it doesn't write my name? I won this map...

Don't talk about Hunter reached in the background i must move it down.

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