Jump to content

DestrucionDerby DM


CeKiT

Recommended Posts

Posted

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 

Posted

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

Posted
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

  • Recently Browsing   0 members

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