'playerSource' será sempre a referência para a qual foi definida, a menos que seja explicitamente alterada código, por exemplo:
function elementType(playerSource)
if getPedOccupiedVehicle(playerSource) then
playerSource = getPedOccupiedVehicle(playerSource) -- playerSource aqui passa a ser o veículo do jogador
local gET = getElementType(playerSource)
outputChatBox("O seu tipo é:"..gET..".", playerSource, 255,255,255, true)
end
end
addCommandHandler("tipo", elementType)
Uma dica é sempre fazer outputs com os valores para entender a lógica e jamais faça o script tentando na sorte, você pode colocar um:
iprint("playerSource", playerSource, "vehicle", getPedOccupiedVehicle(playerSource), "element type", getElementType(playerSource))