Jump to content

Anular dinheiro caso morte não seja por player


Recommended Posts

Posted

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

 

Posted

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

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

 

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

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