Jump to content

[Help] Problem with Race Script


BieHDC

Recommended Posts

I have a problem with my self made Script, which should give Players with Ranks money.

This script schould run on my DD Server.

But the debug log says, that it couldnt get Player Rank

It says: ERROR: call: failed to call "race:getPlayerRank"[string "?"]

Please help me

  
function win(Player) 
local pRank = exports["race"]:getPlayerRank(player) 
if pRank ==  1 then 
givePlayerMoney(source, 1000) 
elseif pRank == 2 then 
givePlayerMoney(source, 900) 
elseif pRank == 3 then 
givePlayerMoney(source, 800) 
elseif pRank == 4 then 
givePlayerMoney(source, 700) 
elseif pRank == 5 then 
givePlayerMoney(source, 600) 
elseif pRank == 6 then 
givePlayerMoney(source, 500) 
elseif pRank == 7 then 
givePlayerMoney(source, 400) 
elseif pRank == 8 then 
givePlayerMoney(source, 300) 
elseif pRank == 9 then 
givePlayerMoney(source, 200) 
elseif pRank == 10 then 
givePlayerMoney(source, 100) 
else 
return 
end 
end 
addEventHandler("onClientPlayerWasted", getRootElement(), win(Player) ) 
  

Link to comment
function win( ) 
    local pRank = exports["race"]:getPlayerRank( source) 
    if pRank ==  1 then 
        givePlayerMoney(source, 1000) 
    elseif pRank == 2 then 
        givePlayerMoney(source, 900) 
    elseif pRank == 3 then 
        givePlayerMoney(source, 800) 
    elseif pRank == 4 then 
        givePlayerMoney(source, 700) 
    elseif pRank == 5 then 
        givePlayerMoney(source, 600) 
    elseif pRank == 6 then 
        givePlayerMoney(source, 500) 
    elseif pRank == 7 then 
        givePlayerMoney(source, 400) 
    elseif pRank == 8 then 
        givePlayerMoney(source, 300) 
    elseif pRank == 9 then 
        givePlayerMoney(source, 200) 
    elseif pRank == 10 then 
        givePlayerMoney(source, 100) 
    end 
end 
addEventHandler("onClientPlayerWasted", getRootElement(), win ) 

Link to comment

-- # Client Side ! 
local Ranks = { 
 -- argument = 
-- { rank,amount } 
    {1,1000}, 
    {2,900}, 
    {3,800}, 
    {4,700}, 
    {5,600}, 
    {6,500}, 
    {7,400}, 
    {8,300}, 
    {9,200}, 
    {10,100} 
} 
  
addEventHandler("onClientPlayerWasted",localPlayer, 
    function (  ) 
        for _,v in ipairs ( Ranks ) do 
            if ( exports["race"]:getPlayerRank( source ) == v[1] ) then 
                givePlayerMoney ( v[2] ) 
            end 
        end 
    end 
) 

Make sure you have a exported function called 'getPlayerRank' On the race gamemode .

Link to comment

Oh Sorry i get it now the get rank it's already exported but it's a server side use this :

-- # Server Side ! 
local Ranks = { 
    {1,1000}, 
    {2,900}, 
    {3,800}, 
    {4,700}, 
    {5,600}, 
    {6,500}, 
    {7,400}, 
    {8,300}, 
    {9,200}, 
    {10,100} 
} 
  
addEventHandler("onPlayerWasted",root, 
    function (  ) 
        for _,v in ipairs ( Ranks ) do 
            if ( exports["race"]:getPlayerRank( source ) == v[1] ) then 
                givePlayerMoney ( source,v[2] ) 
            end 
        end 
    end 
) 
Link to comment

Try to debug script, i mean check if u get rank:

addEventHandler("onPlayerWasted",root, 
    function (  ) 
        outputChatBox(exports["race"]:getPlayerRank( source )) 
        for _,v in ipairs ( Ranks ) do 
            if ( exports["race"]:getPlayerRank( source ) == v[1] ) then 
                givePlayerMoney ( source,v[2] ) 
            end 
        end 
    end 
) 

After pasting this code into your script check what is showing on chat after wasted.

Link to comment

There's no point on looping the table, it can be done like this:

local ranks =  
    { 
        1000, 
        900, 
        800, 
        700, 
        600, 
        500, 
        400, 
        300, 
        200, 
        100 
    } 
  
addEventHandler ( "onPlayerWasted", root, 
    function ( ) 
        local reward = ranks [ exports [ "race" ]:getPlayerRank ( source ) ] 
        if ( reward ) then 
            givePlayerMoney ( source, reward ) 
        end 
    end 
) 

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