If you receive a ping with a Hop=0, one of your direct connected peer has send it to you.
About your question "ping was sent by me?"... you shouldn't receive a message from your own. Avoid loops to your own, don't connect to yourself! If you receive any message with TTL=0, you should drop the connection (as Tama said), because it's from a bad, broken servent. If you receive a message with TTL=1, you can say nothing about it, it just means "forward this message not anymore".
Well, there is more background and a little bit of pseudo code in this thread (you started it):
"Why do we need TTL?" -
http://www.gnutellaforums.com/showth...&threadid=6363
/Moak