#Whit3^ Posted April 29, 2013 Share Posted April 29, 2013 Can Someone help me with this? Client: local scaleCurve = { {0, 0.8}, {0.8, 1.2}, {99, 99} } local firstCar local secondCar local thirdCar local firstName local secondName local thirdName local camStart = nil local camX = 0 local camY = 0 local camZ = 0 local tocamX = 0 local tocamY = 0 local tocamZ = 0 function createPodium(podiumThird, podiumSecond, podiumFirst) local carFirst = podiumFirst[1][2] local carSecond = podiumSecond[1][2] local carThird = podiumThird[1][2] firstName = podiumFirst[1][1] secondName = podiumSecond[1][1] thirdName = podiumThird[1][1] camX = 1271 camY = -845 camZ = 91 tocamX = 1291 tocamY = -841 tocamZ = 91 fadeCamera(true,2) setCameraMatrix(camX, camY, camZ, 1281.5999755859, -830, 82.900001525879) setTime(0, 0) firstCar = createVehicle ( carFirst, 1281.5999755859, -830, 82.900001525879, 0, 0, 180 ) secondCar = createVehicle ( carSecond, 1275.1999511719, -828.59997558594, 82.900001525879, 0, 0, 180 ) thirdCar = createVehicle ( carThird, 1288.1999511719, -828.59997558594, 82.900001525879, 0, 0, 180 ) setVehicleColor( firstCar, 255, 255, 0 ) setVehicleColor( secondCar, 0, 255, 0 ) setVehicleColor( thirdCar, 255, 0, 0 ) camStart = getTickCount() addEventHandler ( "onClientRender", root, dxCreatePodium ) addEventHandler ( "onClientRender", root, cameraMovement ) setTimer ( function ( ) destroyPodium() end ,4000,1) setTimer ( function ( ) destroyDraws() end ,4500,1) end addEvent( "onWins", true ) addEventHandler( "onWins", getRootElement(), createPodium ) function cameraMovement() local now = getTickCount() local endTime = camStart + 5000 local elapsedTime = now - camStart local duration = endTime - camStart local progress = elapsedTime / duration local x, y, z = interpolateBetween ( camX, camY, camZ, tocamX, tocamY, tocamZ, progress, "OutBack") setCameraMatrix(x, y, z, 1281.5999755859, -830, 82.900001525879) end function dxCreatePodium () ----------------WINNER local x,y,z = getElementPosition(firstCar) z = z + 2 local distance = getDistanceBetweenPoints3D( x, y, z, 1271, -845, 91) local sx, sy = getScreenFromWorldPosition(x,y,z) if sx then local scale = 1/(0.3 * (distance / 120)) local w = dxGetTextWidth(firstName, 0.5 * 2 * 0.3, "default-bold") dxDrawText( firstName, sx - w, sy - scale, sx - w, sy, tocolor(255,255,255,255), 2, "default-bold", "left", "bottom", false, false, false, true ) end ----------------SECOND local x,y,z = getElementPosition(secondCar) z = z + 2 local distance = getDistanceBetweenPoints3D( x, y, z, 1271, -845, 91) local sx, sy = getScreenFromWorldPosition(x,y,z) if sx then local scale = 1/(0.3 * (distance / 120)) local w = dxGetTextWidth(secondName, 0.5 * 2 * 0.3, "default-bold") dxDrawText( secondName, sx - w, sy - scale, sx - w, sy, tocolor(255,255,255,255), 2, "default-bold", "left", "bottom", false, false, false, true ) end ----------------THIRD local x,y,z = getElementPosition(thirdCar) z = z + 2 local distance = getDistanceBetweenPoints3D( x, y, z, 1271, -845, 91) local sx, sy = getScreenFromWorldPosition(x,y,z) if sx then local scale = 1/(0.3 * (distance / 120)) local w = dxGetTextWidth(thirdName, 0.5 * 2 * 0.3, "default-bold") dxDrawText( thirdName, sx - w, sy - scale, sx - w, sy, tocolor(255,255,255,255), 2, "default-bold", "left", "bottom", false, false, false, true ) end end function destroyDraws() removeEventHandler ( "onClientRender", root, dxCreatePodium ) removeEventHandler ( "onClientRender", root, cameraMovement ) end function destroyPodium() destroyElement(firstCar) destroyElement(secondCar) destroyElement(thirdCar) end Destruction Derby: 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, 3000, 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) triggerClientEvent ( "onWins", getRootElement(), activePlayers[1] ) 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 Error: race/modes/Client.lua :25: Attempt To Index Local 'podiumFirst' (a nil value) How To FIx iT? Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now