Jump to content

Why this dont work ?


gytisan

Recommended Posts

call(getResourceFromName("scoreboard"), "addScoreboardColumn", "Race Wins") 
function DestructionWin( ) 
    local alivePlayers = getAlivePlayers( ) 
    if #alivePlayers == 1 then 
        local account = getPlayerAccount( alivePlayers[1] ) 
        local wins = getAccountData( account,"Race Wins" ) or 0 
        if account then 
            if isGuestAccount( account ) then return end 
            setAccountData( account,"Race Wins", wins + 1 ) 
        end 
        local playername = getPlayerName( alivePlayers[1] ) 
        outputChatBox ( "#FFA824The player " .. playername .. " won!", root, 255, 255, 255, true ) 
    end 
end 
addEventHandler( "onPlayerWasted", root,DestructionWin) 
  
addEventHandler( "onPlayerWasted", root, 
    function( ) 
        local account = getPlayerAccount( source ) 
        local loses  = getAccountData( account,"Race Loses" ) or 0 
        if account then 
            if isGuestAccount( account ) then return end 
            setAccountData( account,"Race Loses", loses + 1 ) 
        end 
    end 
) 
  
function updateRatio (thePlayer) 
     local account = getPlayerAccount( theplayer ) 
     if account then 
     if isGuestAccount( account ) then return end 
     local wins = getAccountData( account, "Race Wins" ) or 0     
     local loses = getAccountData( account, "Race Loses" ) or 0 
    if loses == 0 then 
        setAccountData(account, "ratio", "-") 
    else 
        local kdr = round( wins / loses, 2) 
        setAccountData(account, "ratio", kdr) 
    end 
end 
end 
  
  
function publicstatsinfo( ) 
    if isElement( source ) then 
        local account = getPlayerAccount( source ) 
        if account then 
            if isGuestAccount( account ) then return end 
            local askdname = getPlayerName( source ) 
            local wins = getAccountData( account, "Race Wins" ) or 0 
            local loses = getAccountData( account, "Race Loses" ) or 0 
            local ratio = getAccountData( account, "Ratio" ) or N/A 
            if loses and wins then 
                outputChatBox("#FFA824*" .. askdname .. " won " .. tostring( wins ) .. " times and he lost " ..tostring( loses ).. " times, his ratio is " .. tostring( ratio ) .. "%", root, 255, 12, 15, true) 
            else 
                 outputChatBox("#FFA824*" .. askdname .. " doesen't losed or won " , root, 255, 12, 15, true) 
            end 
        end 
    else 
        outputChatBox( "Error source is not player" ) 
    end 
end 
addEvent( "stats", true ) 
addEventHandler( "stats", root, publicstatsinfo ) 
  
function checkCommand( message, messageType ) 
    if messageType == 0 then 
        if message == "!stats" then 
            triggerEvent( "stats", source ) 
        elseif message == "!st" then 
            triggerEvent( "stats", source ) 
            cancelEvent( ) 
        end 
    end 
end 
addEventHandler( "onPlayerChat", root, checkCommand ) 
  
function getPlayerFromNamePart(Name) 
local thePlayer = getPlayerFromName(thePlayerName) 
    if thePlayer then 
        return thePlayer 
    end 
    for _,thePlayer in ipairs(getElementsByType("player")) do 
        if string.find(string.gsub(getPlayerName(thePlayer):lower(),"#%x%x%x%x%x%x", ""), thePlayerName:lower(), 1, true) then 
            return thePlayer 
        end 
    end 
return false 
end 
  
restriction = {} 
  
addCommandHandler("stats", 
function (thePlayer, cmd, whoToCheck) 
    local playerName = getPlayerName(thePlayer) 
    if restriction[playerName] then 
    outputChatBox("#FFA824You have to wait 30 seconds", thePlayer, 255, 0, 0, true) 
    else 
    restriction[playerName] = true 
    setTimer(restrictionEnd, 30000, 1, playerName) 
    local player = getPlayerFromNamePart( whoToCheck ) 
    if (player) then 
        local account = getPlayerAccount( player ) 
        if account then 
            if isGuestAccount( account ) then return end 
            local wins = getAccountData( account, "Race Wins" ) or 0 
            local loses = getAccountData( account, "Race Loses" ) or 0 
            ratio = (tonumber(wins)/tonumber(loses))*10 or N/A 
            outputChatBox("#FFA824*[sTATS] Player's "..tostring(player).." stats : " , root, 255, 12, 15, true) 
            if wins then 
                outputChatBox("#FFA824*Wins: "..tostring(wins).."!", root, 255, 12, 15, true) 
            else 
                 outputChatBox("#FFA824*Wins: 0  !" , root, 255, 12, 15, true) 
            end 
            if loses then 
                outputChatBox("#FFA824*Loses: "..tostring(loses).."!", root, 255, 12, 15, true) 
            else 
                outputChatBox("#FFA824*Loses: 0 !", root, 255, 12, 15, true) 
            end 
            if ratio then 
                outputChatBox("#FFA824*Ratio: "..tostring(ratio).."% !", root, 255, 12, 15, true) 
            else 
                outputChatBox("#FFA824*Ratio: - %", root, 255, 12, 15, true) 
            end 
        end 
    else 
        outputChatBox( "Player not found!" ) 
    end 
end 
end) 
  
function restrictionEnd(playerName) 
  restriction[playerName] = nil 
end 

Why This Wins SCript Dont Count Wins. It shows Race Wins in scoreBoard But when player Wins dont count. Like playver wins should add 1. But Dont.. Help :/

Link to comment

Full code

Server side:

addEvent( 'onPlayerRaceWasted',true ) 
addEvent( "stats", true ) 
  
exports[ 'scoreboard' ]:addScoreboardColumn( 'Race Wins' ) 
exports[ 'scoreboard' ]:addScoreboardColumn( 'Race Loses' ) 
exports[ 'scoreboard' ]:addScoreboardColumn( 'ratio' ) 
  
local restriction = { }  
  
function restrictionEnd( playerName ) 
    restriction[ playerName ] = nil 
end 
  
function updateRatio ( thePlayer ) 
    if isElement( thePlayer ) then 
        local account = getPlayerAccount( theplayer ) 
        if account then 
            if isGuestAccount( account ) then return end 
            local wins = getAccountData( account, "Race Wins" ) or 0     
            local loses = getAccountData( account, "Race Loses" ) or 0 
            if loses == 0 then 
                setAccountData( account, "ratio", "-" ) 
                setElementData( thePlayer,'ratio', '-' ) 
            else 
                local kdr = round( wins / loses, 2 ) 
                setAccountData( account, "ratio", kdr ) 
                setElementData( thePlayer,'ratio', kdr ) 
            end 
        end 
    end 
end 
  
  
function publicstatsinfo( ) 
    if isElement( source ) then 
        local account = getPlayerAccount( source ) 
        if account then 
            if isGuestAccount( account ) then return end 
            local askdname = getPlayerName( source ) 
            local wins = getAccountData( account, "Race Wins" ) or 0 
            local loses = getAccountData( account, "Race Loses" ) or 0 
            local ratio = getAccountData( account, "Ratio" ) or 0 
            if loses and wins then 
                outputChatBox("#FFA824*" .. askdname .. " won " .. tostring( wins ) .. " times and he lost " ..tostring( loses ).. " times, his ratio is " .. tostring( ratio ) .. "%", root, 255, 12, 15, true) 
            else 
                 outputChatBox("#FFA824*" .. askdname .. " doesen't losed or won " , root, 255, 12, 15, true) 
            end 
        end 
    else 
        outputChatBox( "Error source is not player" ) 
    end 
end 
  
function checkCommand( message, messageType ) 
    if messageType == 0 then 
        if message == "!stats" then 
            triggerEvent( "stats", source ) 
        elseif message == "!st" then 
            triggerEvent( "stats", source ) 
            cancelEvent( ) 
        end 
    end 
end 
  
function getPlayerFromNamePart( thePlayerName ) 
    local thePlayer = getPlayerFromName( thePlayerName ) 
    if thePlayer then 
        return thePlayer 
    end 
    for _,thePlayer in ipairs( getElementsByType 'player' ) do 
        if string.find( string.gsub( getPlayerName( thePlayer ):lower( ),"#%x%x%x%x%x%x", "" ), thePlayerName:lower( ), 1, true ) then 
            return thePlayer 
        end 
    end 
    return false 
end 
  
function DestructionWin( vehicle ) 
    local alivePlayers = getAlivePlayers( ) 
    if #alivePlayers == 1 then 
        if isElement( alivePlayers[1] ) then 
            local account = getPlayerAccount( alivePlayers[1] ) 
            if isGuestAccount( account ) then return end 
            local count = tonumber( getAccountData( account,"Race Wins" ) or 0 ) + 1 
            setAccountData( account,"Race Wins",count ) 
            setElementData( alivePlayers[1],'Race Wins', count ) 
            outputChatBox ( "#FFA824The player " .. getPlayerName( alivePlayers[1] ) .. " won!", root, 255, 255, 255, true ) 
        end 
    else 
        local account = getPlayerAccount( source ) 
        if isGuestAccount( account ) then return end 
        local loses = tonumber( getAccountData( account,"Race Loses" ) or 0 ) + 1 
        setAccountData( account,"Race Loses", loses ) 
        setElementData( source,'Race Loses', loses ) 
    end 
end 
  
addCommandHandler("stats", 
    function ( thePlayer, cmd, whoToCheck ) 
        local playerName = getPlayerName( thePlayer ) 
        if restriction[ playerName ] then 
            outputChatBox( "#FFA824You have to wait 30 seconds", thePlayer, 255, 0, 0, true ) 
        else 
            restriction[ playerName ] = true 
            setTimer( restrictionEnd, 30000, 1, playerName ) 
            local player = getPlayerFromNamePart( whoToCheck ) 
            if player then 
                local account = getPlayerAccount( player ) 
                if account then 
                    if isGuestAccount( account ) then return end 
                    local wins = getAccountData( account, "Race Wins" ) or 0 
                    local loses = getAccountData( account, "Race Loses" ) or 0 
                    local ratio = math.max( 0, math.min( 100, math.floor( wins / ( loses + wins ) * 100 ) ) ) 
                    outputChatBox( "#FFA824*[sTATS] Player's "..tostring( getPlayerName( player ) ).." stats : " , root, 255, 12, 15, true ) 
                    outputChatBox( "#FFA824*Wins: "..tostring( wins ).."!", root, 255, 12, 15, true ) 
                    outputChatBox( "#FFA824*Loses: "..tostring( loses ).."!", root, 255, 12, 15, true ) 
                    outputChatBox( "#FFA824*Ratio: "..tostring( ratio ).."% !", root, 255, 12, 15, true ) 
                end 
            else 
                outputChatBox( "Player not found!" ) 
            end 
        end 
    end 
) 
  
addEventHandler( 'onPlayerJoin',root, 
    function( ) 
        setElementData( source,'Race Wins', 0 ) 
        setElementData( source,'Race Loses', 0 ) 
        setElementData( source,'ratio', 0 ) 
    end 
) 
  
addEventHandler( "stats", root, publicstatsinfo ) 
addEventHandler( "onPlayerChat", root, checkCommand ) 
addEventHandler( "onPlayerRaceWasted", root,DestructionWin ) 

Updated.

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