Even though the second part of the money script finds that the event is false, it is still re-running the first event each time the player speaks.
I think you are looking for something like this:
NPC Code:
if (playerchats&&strequals(#c,Hello))
if (HelloRupee)
{message No more >:[;}
else
{players[index].rupees+=10;
set HelloRupee;
}
*note: There is most likely a more efficient way to do this*
I hope this helps.