Jump to content

[ RESOLVIDO ] Argumentos Em Comando


Recommended Posts

Galera, eu quero que o seguinte, quando o jogador que estiver com um Elemento Data ele possa executar o comando /suborno nome_do_jogador dinheiro

que seria um suborno para poder ser removido o Elemento Data no caso, quem tem ele não pode executar comando nenhum, enfim isso não é o pedido de ajuda

Eu queria saber o que está errado, pois deu erro de bad argument "getPlayerMoney"quantidade de dinheiro" got number"

function subornarpolicial (thePlayer, _, nick, amount)   
    if nick then 
        if getPlayerFromPartialName ( nick ) then 
            if amount then 
                if getPlayerMoney(tonumber(amount)) then 
         
    local nick_do_policial = getPlayerName(thePlayer) 
    local policial_a_ser_subornado = getPlayerFromPartialName ( nick ) 
    local nick_do_jogador = getPlayerName(policial_a_ser_subornado) 
    local money_suborno = getPlayerMoney(tonumber(amount)) 
    if getElementData(thePlayer, "algemado") or getElementData(thePlayer, "navtr") then 
        outputChatBox('#000000[#ff0000POLICIA#000000] #c1c1c1O Jogador algemado lhe ofereceu "..money_suborno.." para você liberar ele, digite /aceitarsuborno para aceitar ou /recusarsuborno para recusar.', policial_a_ser_subornado, 255, 255, 255,true) 
    else 
        outputChatBox('#000000[#ff0000POLICIA#000000] #c1c1c1Você precisa estar preso ou algemado para executar este comando!', thePlayer, 255, 255, 255, true) 
    end  
    end 
    end 
    else 
        outputChatBox('#000000[#ff0000POLICIA#000000] #c1c1c1Comando correto: /suborno nick_do_policial total_de_dinheiro!', thePlayer, 255, 255, 255, true) 
end 
else 
        outputChatBox('#000000[#ff0000POLICIA#000000] #c1c1c1Comando correto: /suborno nick_do_policial total_de_dinheiro!', thePlayer, 255, 255, 255, true) 
end 
end 
addCommandHandler ('suborno', subornarpolicial) 

tambem tentei isso

  
function subornarpolicial (thePlayer, _, nick, money, amount)    
    if nick then 
        if money then 
         if getPlayerFromPartialName ( nick ) then 
            if getPlayerMoney(tonumber(amount)) then 
         
    local nick_do_policial = getPlayerName(thePlayer) 
    local policial_a_ser_subornado = getPlayerFromPartialName ( nick ) 
    local nick_do_jogador = getPlayerName(policial_a_ser_subornado) 
    local money_suborno = getPlayerMoney(tonumber(amount)) 
    if getElementData(thePlayer, "algemado") or getElementData(thePlayer, "navtr") then 
        outputChatBox('#000000[#ff0000POLICIA#000000] #c1c1c1O Jogador algemado lhe ofereceu "..money_suborno.." para você liberar ele, digite /aceitarsuborno para aceitar ou /recusarsuborno para recusar.', policial_a_ser_subornado, 255, 255, 255,true) 
    else 
        outputChatBox('#000000[#ff0000POLICIA#000000] #c1c1c1Você precisa estar preso ou algemado para executar este comando!', thePlayer, 255, 255, 255, true) 
    end  
    end 
    end 
    else 
        outputChatBox('#000000[#ff0000POLICIA#000000] #c1c1c1Comando correto: /suborno nick_do_policial total_de_dinheiro!', thePlayer, 255, 255, 255, true) 
end 
else 
        outputChatBox('#000000[#ff0000POLICIA#000000] #c1c1c1Comando correto: /suborno nick_do_policial total_de_dinheiro!', thePlayer, 255, 255, 255, true) 
end 
end 
addCommandHandler ('suborno', subornarpolicial) 

Edited by Guest
Link to comment
if getPlayerMoney(tonumber(amount)) then 

você não definiu o elemento "jogador"; acho que definiu a quantidade de dinheiro e não o jogador.

Sim, eu fiz para definir a quantidade do dinheiro que o jogador vai oferecer, porem nao sei se está certo

Link to comment
Sim, eu fiz para definir a quantidade do dinheiro que o jogador vai oferecer, porem nao sei se está certo

olhe os topicos acima --'

Blz, eu fiz um teste aki com o total de dinheiro 5000

da esse erro Bad Argument @ "getPlayerMoney" [Expected Player at argument 1, got number"5000"

Codigo

function subornarpolicial (thePlayer, _, nick, amount)  
    if nick then 
        if getPlayerFromPartialName ( nick ) then 
            if amount then 
            local money = getPlayerMoney(thePlayer) 
                if (money > 0) then 
    local nick_do_policial = getPlayerName(thePlayer) 
    local policial_a_ser_subornado = getPlayerFromPartialName ( nick ) 
    local nick_do_jogador = getPlayerName(policial_a_ser_subornado) 
    local money_suborno = getPlayerMoney(tonumber(amount)) 
    if getElementData(thePlayer, "algemado") or getElementData(thePlayer, "navtr") then 
        outputChatBox('#000000[#ff0000POLICIA#000000] #c1c1c1O Jogador algemado lhe ofereceu "..money_suborno.." para você liberar ele, digite /aceitarsuborno para aceitar ou /recusarsuborno para recusar.', policial_a_ser_subornado, 255, 255, 255,true) 
    else 
        outputChatBox('#000000[#ff0000POLICIA#000000] #c1c1c1Você precisa estar preso ou algemado para executar este comando!', thePlayer, 255, 255, 255, true) 
    end 
    end 
    end 
    else 
        outputChatBox('#000000[#ff0000POLICIA#000000] #c1c1c1Comando correto: /suborno nick_do_policial total_de_dinheiro!', thePlayer, 255, 255, 255, true) 
end 
else 
        outputChatBox('#000000[#ff0000POLICIA#000000] #c1c1c1Comando correto: /suborno nick_do_policial total_de_dinheiro!', thePlayer, 255, 255, 255, true) 
end 
end 
addCommandHandler ('suborno', subornarpolicial) 

Link to comment

Agora vem outro problema, quando o player digitar /suborno policia total_de_dinheiro no chat aparece que ofereceu o dinheiro todo dele '- agora complicou tudo, e a ideia é oferecer uma tal grana, não o dinheiro todo, e o policia pode aceitar ou não

Link to comment
você pode usar
takePlayerMoney ( thePlayer, tonumber(amount) ) 

ou

definir um valor para ser retirado!

takePlayerMoney ( thePlayer, 5000 )  

o takePlayerMoney eu vou usar no aceitar suborno, pois se eu usar ele, o dinheiro vai ser retirado ao usar o comando sem o policial ter aceitado.

E agora?? :oops::oops:

Link to comment

usa

setElementData(thePlayer, "suborno", true ) 

no /aceitar_suborno. mais ou menos assim

if getElementData(thePlayer, "suborno" ) 
      takePlayerMoney ( thePlayer, 5000 ) 
      outputChatBox ( "o suborno foi aceito" ) 
else 
      outputChatBox ( "o suborno não foi aceito" ) 
end 

estude um pouco

setElementData 
getElementData 

que você consegue fazer qualquer mode com essa função

Link to comment
usa
setElementData(thePlayer, "suborno", true ) 

no /aceitar_suborno. mais ou menos assim

if getElementData(thePlayer, "suborno" ) 
      takePlayerMoney ( thePlayer, 5000 ) 
      outputChatBox ( "o suborno foi aceito" ) 
else 
      outputChatBox ( "o suborno não foi aceito" ) 
end 

estude um pouco

setElementData 
getElementData 

que você consegue fazer qualquer mode com essa função

Isso eu sei, eu ja sei sobre isso, o aceitar suborno não vem ao caso.

o que eu quero saber é como eu vou usar para oferecer tal quantia no /suborno..

Link to comment

Voce nao tem que fazer getPlayerMoney na variavel money_suborno, use somente

local money_suborno = tonumber(amount) 

Ou entao nem use uma variavel para guardar a quantia que ele digitar, use sempre o amount.

Mostre como está seu codigo agora, pois no ultimo que voce mandou nao tem nada retirando dinheiro do player.

Link to comment
Voce nao tem que fazer getPlayerMoney na variavel money_suborno, use somente
local money_suborno = tonumber(amount) 

Ou entao nem use uma variavel para guardar a quantia que ele digitar, use sempre o amount.

Mostre como está seu codigo agora, pois no ultimo que voce mandou nao tem nada retirando dinheiro do player.

Entendi. mas então, o ultimo codigo vai ser outra função, que ainda não mexi mas acredito que seria mais ou menos assim, criei um Elemento Data para o policial, agora uso ela na outra funçao

function aceitar_suborno(thePlayer, _, nick, amount) 
if getElementData(thePlayer, "subornado") then 
        takePlayerMoney(nick, tonumber(amount)) 
        removeElementData(thePlayer, "subornado") 
    end 
end 
addCommandHandler("aceitarsuborno", aceitar_suborno) 

não sei se está certo, foi só um teste

Link to comment

Não tem necessidade nenhuma em usar element data, Você pode fazer da seguinte maneira (Obviamente você vai precisar trocar as variáveis, checar se o jogador que ofereceu o suborno ainda esta online etc):

No topo do script:

subornos = {}; 

No comando de oferecer suborno:

subornos[ jogador que vai ser subornado ] = { jogador que esta oferecendo o suborno, quantia }; 

No comando de aceitar o suborno:

if subornos[ jogador que vai aceitar o suborno ] then 
    local subornoInfo = subornos[ jogador que vai aceitar o suborno ]; 
     
    takePlayerMoney ( subornoInfo[1], subornoInfo[2] ); 
    outputChatBox ( "O policial aceitou seu suborno ! Você perdeu $" .. subornoInfo[2], subornoInfo[1], 0, 255, 0 ); 
  
    subornos[ jogador que vai aceitar o suborno ] = nil; 
else 
    -- ninguem esta subornando o jogador. 
end 

Link to comment
Não tem necessidade nenhuma em usar element data, Você pode fazer da seguinte maneira (Obviamente você vai precisar trocar as variáveis, checar se o jogador que ofereceu o suborno ainda esta online etc):

No topo do script:

subornos = {}; 

No comando de oferecer suborno:

subornos[ jogador que vai ser subornado ] = { jogador que esta oferecendo o suborno, quantia }; 

No comando de aceitar o suborno:

if subornos[ jogador que vai aceitar o suborno ] then 
    local subornoInfo = subornos[ jogador que vai aceitar o suborno ]; 
     
    takePlayerMoney ( subornoInfo[1], subornoInfo[2] ); 
    outputChatBox ( "O policial aceitou seu suborno ! Você perdeu $" .. subornoInfo[2], subornoInfo[1], 0, 255, 0 ); 
  
    subornos[ jogador que vai aceitar o suborno ] = nil; 
else 
    -- ninguem esta subornando o jogador. 
end 

Me desculpa mais, a função de oferecer eu não entendi nada :lol:

Eu tentei isso:

subornos = {}  
function subornarpolicial (thePlayer, _, nick, amount)  
    if nick then 
        if getPlayerFromPartialName ( nick ) then 
            if amount then 
            local money_player = getPlayerMoney(thePlayer) 
                if (money_player > 0) then 
    local nick_do_policial = getPlayerName(thePlayer) 
    subornos[ nick ] = { thePlayer, amount } 
    local policial_a_ser_subornado = getPlayerFromPartialName ( nick ) 
    local nick_do_jogador = getPlayerName(policial_a_ser_subornado) 
    if getElementData(thePlayer, "algemado") or getElementData(thePlayer, "navtr") then 
        outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1O Jogador algemado lhe ofereceu "..money_suborno.." para você liberar ele, digite /aceitarsuborno para aceitar ou /recusarsuborno para recusar.", policial_a_ser_subornado, 255, 255, 255,true) 
        setElementData(policial_a_ser_subornado, "subornado", true) 
    else 
        outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Você precisa estar preso ou algemado para executar este comando!", thePlayer, 255, 255, 255, true) 
    end 
    else 
        outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Você não tem dinheiro suficiente!", thePlayer, 255, 255, 255, true) 
    end 
    end 
    else 
        outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Comando correto: /suborno nick_do_policial total_de_dinheiro!", thePlayer, 255, 255, 255, true) 
end 
else 
        outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Comando correto: /suborno nick_do_policial total_de_dinheiro!", thePlayer, 255, 255, 255, true) 
end 
end 
addCommandHandler ('suborno', subornarpolicial) 
  
function aceitar_suborno(thePlayer) 
if subornos[thePlayer] then 
    local subornoInfo = subornos[thePlayer] 
    takePlayerMoney ( subornoInfo[1], subornoInfo[2] ); 
    outputChatBox ( "O policial aceitou seu suborno ! Você perdeu $" .. subornoInfo[2], subornoInfo[1], 0, 255, 0 ); 
  
    subornos[thePlayer] = nil; 
else 
    -- ninguem esta subornando o jogador. 
end 
addCommandHandler("aceitarsuborno", aceitar_suborno) 

Link to comment

Tente:

local subornos = {}; 
  
function subornarpolicial ( thePlayer, _, nick, amount ) 
    if ( nick and amount ) then 
        if ( getPlayerMoney ( thePlayer ) >= ( tonumber ( amount ) or math.huge ) ) then 
            local target = getPlayerFromPartialName ( nick ); 
             
            if ( target ) then 
                if ( getElementData( thePlayer, "algemado" ) or getElementData( thePlayer, "navtr" ) ) then 
                    subornos[ target ] = { thePlayer, tonumber( amount ) }; 
                     
                    outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1O Jogador algemado lhe ofereceu $" .. amount .. " para você liberar ele, digite /aceitarsuborno para aceitar ou /recusarsuborno para recusar.", target, 255, 255, 255, true ); 
                else 
                    outputChatBox( "#000000[#ff0000POLICIA#000000] #c1c1c1Você precisa estar preso ou algemado para executar este comando!", thePlayer, 255, 255, 255, true ); 
                end 
            else 
                outputChatBox( "#000000[#ff0000POLICIA#000000] #c1c1c1Nenhum jogador encontrado com este nome!", thePlayer, 255, 255, 255, true ); 
            end 
        else 
            outputChatBox( "#000000[#ff0000POLICIA#000000] #c1c1c1Você não tem dinheiro suficiente!", thePlayer, 255, 255, 255, true ); 
        end 
    else 
        outputChatBox( "#000000[#ff0000POLICIA#000000] #c1c1c1Comando correto: /suborno nick_do_policial total_de_dinheiro!", thePlayer, 255, 255, 255, true ); 
    end 
end 
addCommandHandler ( "suborno", subornarpolicial ); 
  
function aceitar_suborno( thePlayer ) 
    if ( subornos[thePlayer] ) then 
        local subornoInfo = subornos[thePlayer]; 
         
        takePlayerMoney ( subornoInfo[1], subornoInfo[2] ); 
        outputChatBox ( "O policial aceitou seu suborno ! Você perdeu $" .. subornoInfo[2], subornoInfo[1], 0, 255, 0 ); 
      
        subornos[ thePlayer ] = nil; 
    else 
        -- ninguem esta subornando o jogador. 
    end 
end 
addCommandHandler( "aceitarsuborno", aceitar_suborno ); 

Link to comment
Tente:
local subornos = {}; 
  
function subornarpolicial ( thePlayer, _, nick, amount ) 
    if ( nick and amount ) then 
        if ( getPlayerMoney ( thePlayer ) >= ( tonumber ( amount ) or math.huge ) ) then 
            local target = getPlayerFromPartialName ( nick ); 
             
            if ( target ) then 
                if ( getElementData( thePlayer, "algemado" ) or getElementData( thePlayer, "navtr" ) ) then 
                    subornos[ target ] = { thePlayer, tonumber( amount ) }; 
                     
                    outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1O Jogador algemado lhe ofereceu $" .. amount .. " para você liberar ele, digite /aceitarsuborno para aceitar ou /recusarsuborno para recusar.", target, 255, 255, 255, true ); 
                else 
                    outputChatBox( "#000000[#ff0000POLICIA#000000] #c1c1c1Você precisa estar preso ou algemado para executar este comando!", thePlayer, 255, 255, 255, true ); 
                end 
            else 
                outputChatBox( "#000000[#ff0000POLICIA#000000] #c1c1c1Nenhum jogador encontrado com este nome!", thePlayer, 255, 255, 255, true ); 
            end 
        else 
            outputChatBox( "#000000[#ff0000POLICIA#000000] #c1c1c1Você não tem dinheiro suficiente!", thePlayer, 255, 255, 255, true ); 
        end 
    else 
        outputChatBox( "#000000[#ff0000POLICIA#000000] #c1c1c1Comando correto: /suborno nick_do_policial total_de_dinheiro!", thePlayer, 255, 255, 255, true ); 
    end 
end 
addCommandHandler ( "suborno", subornarpolicial ); 
  
function aceitar_suborno( thePlayer ) 
    if ( subornos[thePlayer] ) then 
        local subornoInfo = subornos[thePlayer]; 
         
        takePlayerMoney ( subornoInfo[1], subornoInfo[2] ); 
        outputChatBox ( "O policial aceitou seu suborno ! Você perdeu $" .. subornoInfo[2], subornoInfo[1], 0, 255, 0 ); 
      
        subornos[ thePlayer ] = nil; 
    else 
        -- ninguem esta subornando o jogador. 
    end 
end 
addCommandHandler( "aceitarsuborno", aceitar_suborno ); 

Vou testar... mas poderia me explicar o que essa função faz? Só por curiosidade

if ( getPlayerMoney ( thePlayer ) >= ( tonumber ( amount ) or math.huge ) )  

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