ID Айтемов(трабла)

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Goggy
Posts: 291
Joined: 2004-11-07 01:22:35
Location: Черкассы
Contact:

ID Айтемов(трабла)

Post by Goggy »

Инжа чёто нехочет использовать ID номера итемов пишет что он неверный, то есть когда в скрипте прописываешь например:

Code: Select all

var Runa = 0x40083b3c

А если идёт как добавление предмета

Code: Select all

exec("addobject Runa")

и указуешь прицелом то всё норм, почему так ?

P.S. И скажите плиз как можно обойти
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

всё зависит от того, как написан скрипт.
большинство скриптов ожидают сериал обьекта как текстовую строку.
более того, скрипт может ожидать обьект добавленый в список обьектов.
конкретно для этого скрипта, видимо ожидается последний вариант: exec("addobject Runa 0x40083b3c")
Goggy
Posts: 291
Joined: 2004-11-07 01:22:35
Location: Черкассы
Contact:

Post by Goggy »

Yoko wrote:всё зависит от того, как написан скрипт.
большинство скриптов ожидают сериал обьекта как текстовую строку.
более того, скрипт может ожидать обьект добавленый в список обьектов.
конкретно для этого скрипта, видимо ожидается последний вариант: exec("addobject Runa 0x40083b3c")


Я думаю что это завит всё таки от сферы, т.к. выводит инвалид сериал индекс для любого скрипта который ябы не написал(использование предмета по ID и тд.), для верности вот именно скрипт в котором надо разобратся...

Code: Select all

###########################*Скупка регов*###############
#########################***By Goggy V1.1***############
sub BuyReagents()
VAR Meshok = 0x4007B72B      # ID мешка для сброса регов
var i,k
var BlackPerls = 0x0f7a       #Тип Блэк пёрлов (реги)
var NightShade = 0x0f88        #Тип Нитшейда (реги)
var HomeRun = 0x4002B8CD        # ID руны домой
dim Runka[11]         # Массив ID Рун к вендорам
 Runka[0] = '0x4002578B'
 Runka[1] = '0x40035B49'
 Runka[2] = '0x40024626'
 Runka[3] = '0x400427EB'
 Runka[4] = '0x400619CC'
 Runka[5] = '0x40053B61'
 Runka[6] = '0x4000B252'
 Runka[7] = '0x40035A77'
 Runka[8] = '0x40061A4C'
 Runka[9] = '0x4002852E'
 Runka[10] = '0x40061A88'

repeat
while UO.bp > 20 or UO.mr > 20 or UO.bm > 20
for i = 0 to 10
Recall(Runka[i])
buy('rr')
next

Recall(HomeRun)

BagRelease('Meshok','NightShade')
wait(500)
BagRelease('Meshok','BlackPerls')
wait(500)
wend

GetReagents(Meshok)
until UO.Dead()
end sub

########################################################
sub Recall(Rune)
repeat
Mana()
UO.deletejournal()
UO.Print("!!Прыгаем ДоМОЙ!!")
uo.cast('Recall', 'Rune')
wait(10000)
until uo.InJournal("fizzles")
UO.deletejournal()
end sub

########################################################

sub Mana()
while UO.Mana < UO.Int
UO.Useskill('Meditation')
wait(100)
wend
end sub

#########################################################
sub BagRelease(Meshok,Regi)
wait(600)
UO.SetReceivingContainer(Meshok)
uo.findtype('Regi',-1,'my')
wait(500)
UO.Grab('all','finditem') 
wait(500)
UO.UnSetReceivingContainer()
end sub

########################################################
sub GetReagents(Meshok)
var k
Dim regs[3]      # Массив тайпов регов(BP,BM,MR)
 regs[0] = 0x0f7a
 regs[1] = 0x0f7b
 regs[2] = 0x0f86

for k = 0 to 2
wait(500)
UO.SetReceivingContainer('my')
uo.findtype('regs[k]',-1,'Meshok')
wait(500)
UO.Grab(100,'finditem') 
wait(500)
UO.UnSetReceivingContainer()
end sub


этот скриптик я так своял на скорую руку(просто делать было нечего :) ), но так на утовне тэста и застрял так как нехочу брать ID аддобжектами (у меня это производит к некоторім глюкам клиента).

И ещё... инжа всё таки воспринимает єти IDшники, но тока после того как был произведён аддобжект, тоесть сначала запускаем скрипт с аддобжект->останавливает->коментируем(аддобжект)->вставляем сам ID, и тогда всё работает, но меня это неустраивает(к сожалению :) )

P.S. скрипт ещё недокончен, так как немогу произвести тест и этого участочка :(
AlexeyVorotnikov
Junior Expert
Posts: 138
Joined: 2004-09-18 15:12:06

Post by AlexeyVorotnikov »

По-моему, надо вот так (я оставил только изменённые строчки и названия процедур):

Code: Select all

VAR Meshok = '0x4007B72B'      # ID мешка для сброса регов 
...
var BlackPerls = '0x0f7a'       #Тип Блэк пёрлов (реги)
var NightShade = '0x0f88'        #Тип Нитшейда (реги)
var HomeRun = '0x4002B8CD'        # ID руны домой
...
BagRelease(Meshok,NightShade)
...
BagRelease(Meshok,BlackPerls)
...
sub Recall(Rune)
...
uo.cast('Recall', Rune)
...
end sub
...
sub BagRelease(Meshok,Regi)
...
uo.findtype(Regi,-1,'my')
...
end sub
...
sub GetReagents(Meshok)
...
Dim regs[3]      # Массив тайпов регов(BP,BM,MR)
 regs[0] = '0x0f7a'
 regs[1] = '0x0f7b'
 regs[2] = '0x0f86'

...
uo.findtype(regs[k],-1,Meshok)
...
end sub


Обрати внимание на использование кавычек в этих строчках.
Post Reply