Косяк автолута
Moderators: Murderator+, Murderator
Косяк автолута
Ну в общем я написал простенький автолут, чтобы ручками не таскать шмотьё, а он стабильно раз в пару часов берёт и глючит. Глюк - он начинает лутить свой бэкпэк (не знаю почему так происходить, но заканчивается это обычно плачевно). Это всё предыстория - собственно вопрос - как узнать serial бэкпэка, и меняется ли он при смерти/рессуре?
PS - И ещё вопросик - serial bankbox'а тоже мне бы не помешал, уже для других целей =)
PS - И ещё вопросик - serial bankbox'а тоже мне бы не помешал, уже для других целей =)
Re: Косяк автолута
Role wrote:Ну в общем я написал простенький автолут, чтобы ручками не таскать шмотьё, а он стабильно раз в пару часов берёт и глючит. Глюк - он начинает лутить свой бэкпэк (не знаю почему так происходить, но заканчивается это обычно плачевно). Это всё предыстория - собственно вопрос - как узнать serial бэкпэка, и меняется ли он при смерти/рессуре?
1. Происходит это из-за лагов - надо использовать чеклаг и проверку последнего открытого контейнера.
1. В чем проблема узнать сериал бекпака? ,info и прицелом на него. Да и не нужно это, инжект и так знает что такое бекпак чара. Для этого есть системная переменная backpack.
3. Не меняется. Может быть изменяется (наверняка) при сбросе пака, но это и не важно.
1. CheckLag() - ищи на форуме, функция, которую используют практически все.
2. UO.GetSerial( 'backpack' ) - системную переменную (предопределенный объект) надо всегда использовать в кавычках. Почитай урок 2 или 3, точно счас не помню. Уроки прилеплены в этом же разделе.
3. У банковского бокса тоже есть сериал, если ты еще об этом не догадался
Чтобы его получить, придется использовать указатель на последний открытый контейнер (ну и тот же гетсериал, естественно).
4. Вообще-то тебе в Уроки и сюда: http://yoko.netroof.net/help/index.php?lang=rus
2. UO.GetSerial( 'backpack' ) - системную переменную (предопределенный объект) надо всегда использовать в кавычках. Почитай урок 2 или 3, точно счас не помню. Уроки прилеплены в этом же разделе.
3. У банковского бокса тоже есть сериал, если ты еще об этом не догадался

4. Вообще-то тебе в Уроки и сюда: http://yoko.netroof.net/help/index.php?lang=rus
Собсно, проверки серийников не помогли, а на какой стадии может происходить лаг, ведущий к таким последствиям я даже не подозреваю (так что куда ентот чеклаг приткнуть - 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
-
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56
-
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56
Sfagnum wrote:влом проверять... поэтому вопрос...Destruction wrote:Гмм, с банком Edred придумал какое-то извращение.
,info на любую вещь непосредственно в банке, там будет c=0xYYYYYYY, где Y - произвольные цифры, вот это и есть серийник банка.
и что он не меняется?
Всегда гамал на сфере, там за игроком закрепляется контейнерчик, под названием банк

Destruction wrote:Всегда гамал на сфере, там за игроком закрепляется контейнерчик, под названием банк
И никаких гарантий, что админ сервака в какой-нибудь момент не запустит какую-нибудь утилиту чистки сериалов, после чего у твоего банка будет новый сериал. Гораздо надежнее в скрипт вставить команду bank и из указателя последнего открытого контейнера программно считать сериал. Так что это не извращение, а удобство. К тому же один скрипт может использоваться десятком чаров, что, каждый раз править сериал банка? Вот это как раз уже извращение.
-
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56
Edred wrote:Destruction wrote:Всегда гамал на сфере, там за игроком закрепляется контейнерчик, под названием банк
И никаких гарантий, что админ сервака в какой-нибудь момент не запустит какую-нибудь утилиту чистки сериалов, после чего у твоего банка будет новый сериал. Гораздо надежнее в скрипт вставить команду bank и из указателя последнего открытого контейнера программно считать сериал. Так что это не извращение, а удобство. К тому же один скрипт может использоваться десятком чаров, что, каждый раз править сериал банка? Вот это как раз уже извращение.
Ну для нечитерных скриптов - твоё решение вполне нормуль
