Jump to content

[REQ] "Auto B" resource


Recommended Posts

What are you talking about? What map? When they die where? What modes are involved?

Anyway, this might not exist, meaning that you'll either have to script it yourself or pay someone.

Ehm.. sorry the mode is "Race" DM/DD maps, and this script exists D:

Sounds like a modified version of the Race gamemode, rather than a script.

Link to comment
What are you talking about? What map? When they die where? What modes are involved?

Anyway, this might not exist, meaning that you'll either have to script it yourself or pay someone.

Ehm.. sorry the mode is "Race" DM/DD maps, and this script exists D:

Sounds like a modified version of the Race gamemode, rather than a script.

Ok.. but, where i can find this? :S

Link to comment
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 getActivePlayerCount() <= 0 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() <= 0 then 
            RaceMode.endMap() 
        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], timePassed) 
        showMessage(getPlayerName(activePlayers[1]) .. ' is the final survivor!', 0, 255, 0) 
    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 
  

change destructionderby.lua with this.

Link to comment
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 getActivePlayerCount() <= 0 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() <= 0 then 
            RaceMode.endMap() 
        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], timePassed) 
        showMessage(getPlayerName(activePlayers[1]) .. ' is the final survivor!', 0, 255, 0) 
    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 
  

change destructionderby.lua with this.

Not work :S

Link to comment

there are 2 sames functions with that arguments "if getActivePlayerCount() <= 1 then" change both to 0

And work, the problem is, all player dies, less one, and last player still playing alone. the object must be, when he get hunter, go to nextmap. how can be possible this?

i try something with getAlivePlayers and race events to check 425 pick up model but dont work

Link to comment
  • 5 months later...

Man Please HELP ME on this problem.

I create an destructionderby.lua

...I put in destructionderby.lua :

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 getActivePlayerCount() <= 0 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() <= 0 then

RaceMode.endMap()

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], timePassed)

showMessage(getPlayerName(activePlayers[1]) .. ' is the final survivor!', 0, 255, 0)

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

next .. i arhive this destructionderby.lua ... and put in my server ...

Not function / not recognize ...

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