Modelling cooperation in ad-hoc networks: selfishness vs trade-offs