@Bc#. Me Tira Un Error, No me Carga el map ni nada. 
Error: 
[2013-05-28 12:30:37] SCRIPT ERROR: race\modes\destructionderby.lua:156: 'end' expected (to close 'function' at line 35) near '' 
  
[2013-05-28 12:30:37] WARNING: Loading script failed: race\modes\destructionderby.lua:156: 'end' expected (to close 'function' at line 35) near '' 
 
Linea: 
 (to close 'function' at line 35) near '' (?) 
function DestructionDerby:onPlayerWasted(player) 
    if isActivePlayer(player) then 
        self:handleFinishActivePlayer(player) 
        if getActivePlayerCount() < autoB then 
            RaceMode.endMap() 
        else 
        if getActivePlayerCount() <= autoB and getElementModel(player) == 425 then 
            RaceMode.endMap() 
        else 
            TimerManager.createTimerFor("map",player):setTimer(clientCall, 2000, 1, player, 'Spectate.start', 'auto') 
        end 
    end 
    RaceMode.setPlayerIsFinished(player) 
    showBlipsAttachedTo(player, false) 
end 
 
==> Ultima Linea <== 
'end' expected 
156: end 
 
Code completo: 
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 
  
autoB = 1 
  
function DestructionDerby:onPlayerWasted(player) 
    if isActivePlayer(player) then 
        self:handleFinishActivePlayer(player) 
        if getActivePlayerCount() < autoB then 
            RaceMode.endMap() 
        else 
        if getActivePlayerCount() <= autoB and getElementModel(player) == 425 then 
            RaceMode.endMap() 
        else 
            TimerManager.createTimerFor("map",player):setTimer(clientCall, 2000, 1, player, 'Spectate.start', 'auto') 
        end 
    end 
    RaceMode.setPlayerIsFinished(player) 
    showBlipsAttachedTo(player, false) 
end 
  
function DestructionDerby:onPlayerQuit(player) 
    if isActivePlayer(player) then 
        self:handleFinishActivePlayer(player) 
        if getActivePlayerCount() < autoB then 
            RaceMode.endMap() 
        end 
        if getActivePlayerCount() <= autoB and getElementModel(player) == 425 then 
            RaceMode.endMap() 
        end 
    end 
end 
  
function someoneReachedHunter(number, sort, model) 
    if sort == "vehiclechange" and model == 425 then 
        if getActivePlayerCount() <= autoB then 
            RaceMode.endMap() 
            triggerEvent ( "activatePodium", getRootElement()) 
            executeCommandHandler("onMapEndResetDeathList",source) 
            triggerClientEvent ( "onEnd", getRootElement()) 
        end 
    end 
end 
addEvent("onPlayerPickUpRacePickup",true) 
addEventHandler("onPlayerPickUpRacePickup",getRootElement(),someoneReachedHunter) 
  
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 
    local rank = self:getPlayerRank(player) 
    finishActivePlayer(player) 
    if rank and rank > 1 then 
        triggerEvent( "onPlayerFinishDD",player,tonumber( rank ) ) 
    end 
    -- Update ranking board if one player left 
    local activePlayers = getActivePlayers() 
    if #activePlayers == 1 then 
        self.rankingBoard:add(activePlayers[1], timePassed) 
        showMessage(getPlayerName(activePlayers[1]) .. ' Ha Ganado!', 255, 153, 100) 
        triggerEvent( "onPlayerWinDD",activePlayers[1] ) 
    end 
end 
  
---------------------- 
-- Automated auto-B 
---------------------- 
  
addEvent("onMapStarting") 
addEventHandler("onMapStarting", getRootElement(), 
function(mapInfo, mapOptions, gameOptions) 
    if (ismapDM(mapInfo.name) == 1) then 
        autoB = 1 
    elseif (ismapDM(mapInfo.name) == 2) then 
        autoB = 2 
    elseif (ismapDM(mapInfo.name) == 3) then 
        autoB = 2 
    end 
end) 
  
function ismapDM(isim) 
if string.find(isim, "[DM]", 1, true) then 
    return 1 
elseif string.find(isim, "[DD]", 1,true) then 
    return 2 
elseif string.find(isim, "[FUN]", 1,true) then 
    return 3 
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