Jump to content

[Help] Problem with Race Script


BieHDC

Recommended Posts

Posted

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

Posted
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 ) 

Posted

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

Posted

Which error i think it's the export you don't have this function exported yet open the race gamemode meta and check if there's a function exported called 'getPlayerRank' Or no ?

Posted

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 
) 
Posted

ok the errors are gone, but i also dont get money.

Will this need admin rigts?

edit:

It needed admin rigts now working perfect :)

Thank you very much for helping me

Posted

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.

Posted
ok the errors are gone, but i also dont get money.

Will this need admin rigts?

edit:

It needed admin rigts now working perfect :)

Thank you very much for helping me

You're welcome .. :mrgreen: .

Posted

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 
) 

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