Page 1 of 1

Косяк автолута

Posted: 2006-03-11 17:08:51
by Role
Ну в общем я написал простенький автолут, чтобы ручками не таскать шмотьё, а он стабильно раз в пару часов берёт и глючит. Глюк - он начинает лутить свой бэкпэк (не знаю почему так происходить, но заканчивается это обычно плачевно). Это всё предыстория - собственно вопрос - как узнать serial бэкпэка, и меняется ли он при смерти/рессуре?

PS - И ещё вопросик - serial bankbox'а тоже мне бы не помешал, уже для других целей =)

Re: Косяк автолута

Posted: 2006-03-11 17:24:23
by Edred
Role wrote:Ну в общем я написал простенький автолут, чтобы ручками не таскать шмотьё, а он стабильно раз в пару часов берёт и глючит. Глюк - он начинает лутить свой бэкпэк (не знаю почему так происходить, но заканчивается это обычно плачевно). Это всё предыстория - собственно вопрос - как узнать serial бэкпэка, и меняется ли он при смерти/рессуре?


1. Происходит это из-за лагов - надо использовать чеклаг и проверку последнего открытого контейнера.

1. В чем проблема узнать сериал бекпака? ,info и прицелом на него. Да и не нужно это, инжект и так знает что такое бекпак чара. Для этого есть системная переменная backpack.

3. Не меняется. Может быть изменяется (наверняка) при сбросе пака, но это и не важно.

Posted: 2006-03-11 17:28:50
by Role
Чеклаг? Поподробней, пожалуйста. А для проверки контейнера я и спрашивал сериал. Спасибо. Ещё бы про банкбокс услышать (может для него тоже системная переменная есть?) =)

Upd. "variable undifened - backpack", говорит он мне.

Posted: 2006-03-11 17:49:53
by Edred
1. CheckLag() - ищи на форуме, функция, которую используют практически все.

2. UO.GetSerial( 'backpack' ) - системную переменную (предопределенный объект) надо всегда использовать в кавычках. Почитай урок 2 или 3, точно счас не помню. Уроки прилеплены в этом же разделе.

3. У банковского бокса тоже есть сериал, если ты еще об этом не догадался :wink: Чтобы его получить, придется использовать указатель на последний открытый контейнер (ну и тот же гетсериал, естественно).

4. Вообще-то тебе в Уроки и сюда: http://yoko.netroof.net/help/index.php?lang=rus

Posted: 2006-03-11 17:55:03
by Role
1) поищу =)
2) Спасибо, это работает =)
3) Про банк тоже понял. Сойдёт =)
4) Уроки читал, за ссылку на фак тоже спасибо =)

Posted: 2006-03-11 20:03:23
by Grin
если ты уже открывал банк то его можно выдернуть из лееров

Posted: 2006-03-11 23:34:42
by Role
Собсно, проверки серийников не помогли, а на какой стадии может происходить лаг, ведущий к таким последствиям я даже не подозреваю (так что куда ентот чеклаг приткнуть - 0 догадок), вот собственно скрипт. Помогите люди добрые, подскажите, что не так =)

Code: Select all

sub autoloot_all()
var wheregood = '0x60B438AD' # прописать серийник сумки для хороших вещей, пока туда лутится только золото,
#потом уже наберу целый список того, что лутать в первую очередь.
var where = '0x60B13A10' # прописать серийник сумки для остального
var lastlootedcorpse = uo.getserial('lastcorpse')
var corpse = uo.getserial('lastcorpse')
var backpack = uo.getserial('backpack')
while uo.life>0
   corpse = uo.getserial('lastcorpse')
   if corpse==backpack then
      corpse=lastlootedcorpse
   endif
   if corpse<>lastlootedcorpse then
   wait(500)
      uo.moveitem(corpse+'.0x0eed',0,wheregood)
      wait(500)
      while uo.getserial(corpse+'.-1')<>'0x00000000'
         uo.moveitem(corpse+'.-1',0,where)
         wait(500)
      wend
      uo.print("Looted!")
      repeat
      cut(corpse) #этот кусок режет труп, с помощью моей ф-ии cut. Вряд ли дело в ней, роэтому класть не буду
      until uo.injournal("Success")
      lastlootedcorpse=corpse
   endif
   wait(200)
wend
end sub

Posted: 2006-03-26 16:37:31
by Kolsz
Good topic! Very useful :):)

Posted: 2006-03-27 13:13:51
by Destruction
Гмм, с банком Edred придумал какое-то извращение.

,info на любую вещь непосредственно в банке, там будет c=0xYYYYYYY, где Y - произвольные цифры, вот это и есть серийник банка.

Posted: 2006-03-27 18:42:35
by Sfagnum
Destruction wrote:Гмм, с банком Edred придумал какое-то извращение.

,info на любую вещь непосредственно в банке, там будет c=0xYYYYYYY, где Y - произвольные цифры, вот это и есть серийник банка.
влом проверять... поэтому вопрос...

и что он не меняется? :roll:

Posted: 2006-03-30 00:12:08
by Destruction
Sfagnum wrote:
Destruction wrote:Гмм, с банком Edred придумал какое-то извращение.

,info на любую вещь непосредственно в банке, там будет c=0xYYYYYYY, где Y - произвольные цифры, вот это и есть серийник банка.
влом проверять... поэтому вопрос...

и что он не меняется? :roll:

Всегда гамал на сфере, там за игроком закрепляется контейнерчик, под названием банк :-)

Posted: 2006-03-30 00:52:47
by Edred
Destruction wrote:Всегда гамал на сфере, там за игроком закрепляется контейнерчик, под названием банк :-)


И никаких гарантий, что админ сервака в какой-нибудь момент не запустит какую-нибудь утилиту чистки сериалов, после чего у твоего банка будет новый сериал. Гораздо надежнее в скрипт вставить команду bank и из указателя последнего открытого контейнера программно считать сериал. Так что это не извращение, а удобство. К тому же один скрипт может использоваться десятком чаров, что, каждый раз править сериал банка? Вот это как раз уже извращение.

Posted: 2006-03-30 23:35:37
by Destruction
Edred wrote:
Destruction wrote:Всегда гамал на сфере, там за игроком закрепляется контейнерчик, под названием банк :-)


И никаких гарантий, что админ сервака в какой-нибудь момент не запустит какую-нибудь утилиту чистки сериалов, после чего у твоего банка будет новый сериал. Гораздо надежнее в скрипт вставить команду bank и из указателя последнего открытого контейнера программно считать сериал. Так что это не извращение, а удобство. К тому же один скрипт может использоваться десятком чаров, что, каждый раз править сериал банка? Вот это как раз уже извращение.

Ну для нечитерных скриптов - твоё решение вполне нормуль :wink: