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. У банковского бокса тоже есть сериал, если ты еще об этом не догадался

Чтобы его получить, придется использовать указатель на последний открытый контейнер (ну и тот же гетсериал, естественно).
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 - произвольные цифры, вот это и есть серийник банка.
влом проверять... поэтому вопрос...
и что он не меняется?

Posted: 2006-03-30 00:12:08
by Destruction
Sfagnum wrote:Destruction wrote:Гмм, с банком Edred придумал какое-то извращение.
,info на любую вещь непосредственно в банке, там будет c=0xYYYYYYY, где Y - произвольные цифры, вот это и есть серийник банка.
влом проверять... поэтому вопрос...
и что он не меняется?

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

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 и из указателя последнего открытого контейнера программно считать сериал. Так что это не извращение, а удобство. К тому же один скрипт может использоваться десятком чаров, что, каждый раз править сериал банка? Вот это как раз уже извращение.
Ну для нечитерных скриптов - твоё решение вполне нормуль
