Jump to content

DestrucionDerby DM


CeKiT

Recommended Posts

Hola a todos.

Quiero hacer que si la cantidad de usuarios vivos es 1 y ese jugador toma el hunter llame a la funcion RaceMode.endMap(). Eso se me hizo sencillo ya que hice que al agarrar el pickup del hunter termine el mapa.

¿Pero los otros jugadores?

Quiero que si llegan mas de 1 jugador al hunter, y se matan quedara 1 solo en hunter y 0 jugadores corriendo el mapa. De por terminado el mapa. Pero no lo eh logrado.

Alguna ayudita, alguien que lo haya echo y pueda guiarme

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 getActivePlayerCount() < 1 then 
            RaceMode.endMap() 
            return 
        end 
        if getActivePlayerCount() == 1 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() < 1 then 
            RaceMode.endMap() 
            return 
        end 
        if getActivePlayerCount() <= 1 and getElementModel(player) == 425 then 
            RaceMode.endMap() 
        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 
    finishActivePlayer(player) 
    -- Update ranking board if one player left 
    local activePlayers = getActivePlayers() 
    if #activePlayers == 1 then 
        showMessage(getPlayerName(activePlayers[1]) .. ' es el ganador!', 153, 255, 0) 
    end 
    if #activePlayers == 0 then 
        self.rankingBoard:add(activePlayers[1], timePassed) 
    end 
end 

Link to comment

Es que en el getElementModel estas poniendo el player que murio no el que queda.... Tenes que conseguirel player con getActivePlayers() creo que es, y de esa tabla el unico valor, el primero conseguir el getElementModel(getPedOccupiedVehicle(playerese))... se ve que borraste lo que puse yo y estas haciendo algo medio raro

Link to comment
Es que en el getElementModel estas poniendo el player que murio no el que queda.... Tenes que conseguirel player con getActivePlayers() creo que es, y de esa tabla el unico valor, el primero conseguir el getElementModel(getPedOccupiedVehicle(playerese))... se ve que borraste lo que puse yo y estas haciendo algo medio raro

Este me lo hizo un amigo. Después hablamos

Link to comment
  • Recently Browsing   0 members

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