Значит начнём по-порядку.
1. goto использовать можно, но не желательно- я бы даже сказал не нужно, т.к. 99% скриптов можно написать с использованием таких прекрасных конструкций как циклы- благо в инжекте их есть аж 3 типа(repeat/until с поздним условием, while/wend с ранним условием, for/next с заданным кол-вом повторений).
2. Вызов второстепенных функций несколько усложняет и написание и чтения скрипта, поэтому там где можно без них обойтись- желательно обходиться без них.
3. oSeif, oEat,ock- что это за переменные? Всё таки здесь и в самом деле не телепаты собрались, и раз уж выкладываешь скрипт- переменные желательно чтобы так же были видны. Да и объявлять их лучше внутри главной функции.
4. UseObject/FindType. А где задержка? Всё таки требуется некоторое время чтобы сундук открылся и с ним можно было бы работать.
5. MoveItem/horse1(). А после MoveItem и подавно без задержки не обойтись. Либо краш словишь либо блокировку от сервера за слишком быстрое перемещение вещей.
6.
Code:
uo.waittargetobject('laststatus')
это что? Какой ластстатус?