Change your DoRepair to this if you want to use teleport instead of running. This will be in the update with the better cellar check.
Code:
Func DoRepair()
Call("TownPortal")
sleep(2000)
$repairCount += 1
If CheckDead() Then
Return
EndIf
If CheckFor("NewTristram", "Area") Then
RandMove(Round(1530 * $x_ratio), Round(0 * $y_ratio), 1, 1) ;begin movement towards merchant
Send("{3 down}")
Sleep(1200)
Send("{3 up}")
RandClick("left", Round(796 * $x_ratio), Round(474 * $y_ratio), 1, 1) ;NPC Merchant to the right of cain's home
Sleep(1200)
RandClick("left", Round(521 * $x_ratio), Round(506 * $y_ratio), 1, 1) ;button to open up repair menu
Sleep(400)
RandClick("left", Round(260 * $x_ratio), Round(595 * $y_ratio), 1, 1) ;button to pay for repairs
Sleep(200)
Send("{Escape}")
If Not CheckDead() Then
Call("LeaveGame")
EndIf
EndIf
EndFunc ;==>DoRepair