Jump to content

Anular dinheiro caso morte não seja por player


Recommended Posts

Estou usando um script para dar dinheiro ao jogador que matar outro player que tenha dinheiro em mãos, a parte do dinheiro está certa, porém quando um jogador morre de fome ou possui uma morte não causada por outros players, ele ainda assim perde dinheiro, tentei usar um getElementType pro killer mas não está dando certo.

function setMoneyOnWasted ( killer )
local money = getPlayerMoney(source)  
local perde = money/10
	if getElementType( killer ) ~= "player" then
		cancelEvent()
		else
		if (money <=0) then
			cancelEvent()
		else
			takePlayerMoney ( source, perde )
		end
end
end

 

Link to comment

use onPlayerWasted (serverside) ja que ta alterando o dinheiro, pro evento onplayerwasted o killer é o segundo parametro:
 

--server
function setMoneyOnWasted (_, killer )
local money = getPlayerMoney(source)  
local perde = money/10
    if getElementType( killer ) ~= "player" then
    
        cancelEvent()
        else
        if (money <=0) then
            cancelEvent()
        else
            takePlayerMoney ( source, perde )
        end
end
end
addEventHandler ( "onPlayerWasted", getRootElement(), setMoneyOnWasted )

testado e funcionando

Link to comment
1 hour ago, _Ace said:

use onPlayerWasted (serverside) ja que ta alterando o dinheiro, pro evento onplayerwasted o killer é o segundo parametro:
 


--server
function setMoneyOnWasted (_, killer )
local money = getPlayerMoney(source)  
local perde = money/10
    if getElementType( killer ) ~= "player" then
    
        cancelEvent()
        else
        if (money <=0) then
            cancelEvent()
        else
            takePlayerMoney ( source, perde )
        end
end
end
addEventHandler ( "onPlayerWasted", getRootElement(), setMoneyOnWasted )

testado e funcionando

Realmente funcionou, coloquei um "or" pra não perder quando o player comete suicídio também e funcionou, porém agora estou com outro problema, o jogador que mata não está recebendo dinheiro, vou mandar o código completo:

function setMoneyOnWasted (_, killer )
local money = getPlayerMoney(source)  
local perde = money/10
    if getElementType( killer ) ~= "player" or ( killer == source ) then
    
        cancelEvent()
        else
        if (money <=0) then
            cancelEvent()
        else
            takePlayerMoney ( source, perde )
        end
end
end
addEventHandler ( "onPlayerWasted", getRootElement(), setMoneyOnWasted )

function rewardOnWasted ( ammo, killer, killerweapon, bodypart )
	if ( killer ) and ( killer ~= source ) then
		givePlayerMoney ( killer, perde )
    end
end
addEventHandler ( "onPlayerWasted", getRootElement(), rewardOnWasted )

 

Link to comment
20 minutes ago, Nadion said:

Realmente funcionou, coloquei um "or" pra não perder quando o player comete suicídio também e funcionou, porém agora estou com outro problema, o jogador que mata não está recebendo dinheiro, vou mandar o código completo

no mesmo momento que tira o dinheiro, ja pode fazer o pagamento:
 

function setMoneyOnWasted (_, killer )
local money = getPlayerMoney(source)  
local perde = money/10
    if getElementType( killer ) ~= "player" or ( killer == source ) then
    
        cancelEvent()
        else
        if (money <=0) then
            cancelEvent()
        else
            takePlayerMoney ( source, perde )
      		if killer~=source then
				givePlayerMoney ( killer, perde )
			end
        end
end
end
addEventHandler ( "onPlayerWasted", getRootElement(), setMoneyOnWasted )

 

Edited by _Ace
  • Thanks 1
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...