Is there a way to detect from which GameObject OnMouseOver come from?

I have a monster, and i want to attach an OnMouseOver so its something like this : (QUICK MOCH UP)

function OnMouseOver(){
if(Input.GetKeyDown(KeyCode.Mouse0)){
//somehow figureout what clicked and send a message to that person saying attack monster
}
}

that way theperson will strt attacking him, so is there anyway to detect this?

You can query the mouse position from Input which is a screen position Check the Camera class for stuff like ScreenPointToRay() and try doing a raycast with the ray returned.

Maybe I misunderstood you, but per definition a MouseClick will always be performed by the user. A GameObject can't "click" on some other object... Also there is the OnMouseDown() method which will work for you in this case.