Jump to content

Race Problem


gokalpfirat

Recommended Posts

modes/destructionderby.lua

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 
    if getPlayerTeam(activePlayers[1]) then 
    local playersTeam = getPlayerTeam(activePlayers[1]) 
        self.rankingBoard:add(activePlayers[1], timePassed) 
        showMessage2(getTeamName(playersTeam).. ' win!', 0, 255, 0) 
        showMessage(getPlayerName(activePlayers[1]) .. ' is the final survivor!', 0, 255, 0) 
        else 
        self.rankingBoard:add(activePlayers[1], timePassed) 
        showMessage(getPlayerName(activePlayers[1]) .. ' is the final survivor!', 0, 255, 0) 
    end 
end 

util_server.lua

g_Messages = {}     -- { player =  { display = display, textitem = textitem, timer = timer } } 
function showMessage(text, r, g, b, player) 
    local ypos = 0.25 
    if not player then 
        player = g_Root 
        ypos = 0.35 
    end 
     
    if g_Messages[player] then 
        TimerManager.destroyTimersFor("message",player) 
    else 
        g_Messages[player] = { 
            display = textCreateDisplay(), 
            textitem = textCreateTextItem('', 0.5, ypos, 'medium', 255, 0, 0, 255, 3.0, 'center', 'center', 128) 
        } 
    end 
     
    local display = g_Messages[player].display 
    local textitem = g_Messages[player].textitem 
    textDisplayAddText(display, textitem) 
    textItemSetText(textitem, text) 
    textItemSetColor(textitem, r or 255, g or 0, b or 0, 255) 
    if player == g_Root then 
        for i,player in ipairs(getElementsByType('player')) do 
            textDisplayAddObserver(display, player) 
        end 
    else 
        textDisplayAddObserver(display, player) 
    end 
    TimerManager.createTimerFor("raceresource","message",player):setTimer(destroyMessage, 8000, 1, player) 
end 
  
function showMessage2(text, r, g, b, player) 
    local ypos = 0.25 
    if not player then 
        player = g_Root 
        ypos = 0.35 
    end 
     
    if g_Messages[player] then 
        TimerManager.destroyTimersFor("message",player) 
    else 
        g_Messages[player] = { 
            display = textCreateDisplay(), 
            textitem = textCreateTextItem('', 0.5, ypos+1, 'medium', 255, 0, 0, 255, 3.0, 'center', 'center', 128) 
        } 
    end 
     
    local display = g_Messages[player].display 
    local textitem = g_Messages[player].textitem 
    textDisplayAddText(display, textitem) 
    textItemSetText(textitem, text) 
    textItemSetColor(textitem, r or 255, g or 0, b or 0, 255) 
    if player == g_Root then 
        for i,player in ipairs(getElementsByType('player')) do 
            textDisplayAddObserver(display, player) 
        end 
    else 
        textDisplayAddObserver(display, player) 
    end 
    TimerManager.createTimerFor("raceresource","message",player):setTimer(destroyMessage, 8000, 1, player) 
end 

Where is the problem and please fix :cry:

Link to comment
            textitem = textCreateTextItem('', 0.5, ypos+1, 'medium', 255, 0, 0, 255, 3.0, 'center', 'center', 128) 

If you checked the textCreateTextItem wiki you should notice that x and y need to be between 0 and 1. ypos + 1 is bigger then 1.

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