Page 1 of 2
Если рядом
Posted: 2015-03-25 16:45:52
by dubd
Подскажите пожалуйста, как лучше организовать следующее. В общем надо перед реколом, если рядом элементал, то пьет инвиз и улетает. Если его рядом нету, то тогда не пьет!
Если у кого то есть такой кусочек, поделитесь пожалуйста! Для копки.
Re: Если рядом
Posted: 2015-03-25 18:26:38
by Juicy Fruit
Code: Select all
if uo.findtype(elem_type, -1, 'ground', distance) then
uo.usetpye(invis_type, invis_color)
wait(200)
endif
Вставь тип элемента, дистанцию поиска, тип и цвет инвизки.
И ответь на
это плиз)
Re: Если рядом
Posted: 2015-03-25 19:33:43
by dubd
отлиично!! то что надо даа. а вот вопрос: просто не все элементалы атакуют, только высоких руд. Как можно решить данную проблему?
узнал, по цвету.
Code: Select all
sub checkcolor(obj)
var n, c
Dim color[14]
color[1]='0x09DA'
color[2]='0x0060'
color[3]='0x0BA7'
color[4]='0x09E6'
color[5]='0x09B9'
color[6]='0x09D3'
color[7]='0x008F'
color[8]='0x09EC'
color[9]='0x09F0'
color[10]='0x010F'
color[11]='0x09A4'
color[12]='0x0085'
color[13]='0x08AF'
color[14]='0x0028'
c=uo.getcolor(obj)
for n=1 to 14
if c == color[n] then
return 1
endif
next
endsub
только как вот привязать эти цвета к кусочку?
Re: Если рядом
Posted: 2015-03-25 20:30:04
by Kynep
Re: Если рядом
Posted: 2015-03-25 22:24:22
by dubd
я написал вчера этот скрипт с одного захода, добро пожаловать в наш клуб. Можете помочь пожалуйста.
Re: Если рядом
Posted: 2015-03-26 08:16:52
by Kynep
dubd, могу помочь. Содержимое массива нумеруется с нуля, первый пункт будет:
Последний соответственно под 13 номером.
Далее, цикл
for должен выглядеть примерно так:
Code: Select all
for n = 0 to 13
If c == color[n] then
return 1
n = 13
end if
next
return 0
Далее, как соединить:
Пишешь проверку, если checkcolor = 1 то улетаем, ежели нет, то игнорим.
Как то так.
З.Ы. Я в этом клубе уже 9 лет, если что.

Re: Если рядом
Posted: 2015-03-26 08:34:15
by Juicy Fruit
Else убери вообще
Return 0 перенеси за next и будет счастье)
Re: Если рядом
Posted: 2015-03-26 09:13:09
by Kynep
Juicy Fruit wrote:Else убери вообще
Return 0 перенеси за next и будет счастье)
Это я из старого скрипта скопировал. На работе свежих нет, но я стойко помню что там ретурн за некстом... а тут чета не стал редактировать.

Re: Если рядом
Posted: 2015-03-26 10:04:24
by Mirage
На 15 инжекте все проще можно организовать. В папке инжекта создаешь файл autoload.cfg в него прописываешь следующий текст:
Code: Select all
[Elem]
0x000E 0x09DA
0x000E 0x0060
0x000E 0x0BA7
0x000E 0x09E6
0x000E 0x09B9
0x000E 0x09D3
и тд. Тип и цвет без кавычек.
а в скрипте используется вот такой кусок без for
Code: Select all
if UO.FindList('Elem', 'ground', 18, -1, 1) then
uo.usetpye(invis_type, invis_color)
wait(200)
# ну и что там еще требуется совершить
end if
в тип элементалей так же можно вписать тип человеков чтобы от них тоже сваливало.
Re: Если рядом
Posted: 2015-03-26 10:37:42
by Juicy Fruit
Подгрузку файлика где потерял?))
У него при запуске автостарта это читается вроде бы. Хотя были предложения добавить нечто подобное автоматом, но пока что не реализовывал.
Re: Если рядом
Posted: 2015-03-26 19:59:04
by dubd
Спасибо за ответы!!
Можете пожалуйста подсказать проверку на checkcolor = 1 ? Мне именно надо - что если цвет совпадает - то пьет инвиз, если не совпадает то не пьет и просто улетает.if
Re: Если рядом
Posted: 2015-03-26 20:03:25
by Kynep
dubd, checkcolor = 1 это же твоя функция. ты же сам ее написал... Если смог написать такое, то простую проверку if then напишешь еще быстрей.
Тебе же уже все разъяснили...
Ищем элема
Если нашел, то берем его ИД.
Далее по ИД проверяем цвет(color = checkcolor(elem))
Если color = 1 то реколимся, если нет, то ignore(elem).
Re: Если рядом
Posted: 2015-03-26 20:23:04
by dubd
я был в плохом состоянии, ничего не помню.
ну вот кусочек:
Code: Select all
if uo.findtype(elem_type, -1, 'ground', distance) then
uo.usetpye(invis_type, invis_color)
wait(200)
endif
как правелно будет прикрепить?
я имею ввиду для старого инжекта. а не для нового с внесением в autoload elem'a.
Re: Если рядом
Posted: 2015-03-26 21:38:00
by dubd
спасибо есть контакт. только там двумя строчками не обойтись было.
Re: Если рядом
Posted: 2015-03-27 09:28:46
by Mirage
вообщето именно двумя

+ 2 дополнительные для игнора.
вар 1:
в выносной функции надо дописать одну строку
Code: Select all
for n=1 to 14
if c == color[n] then
return 1
endif
next
return 0
а в поиске сделать вот так
Code: Select all
if uo.findtype(elem_type, -1, 'ground', distance) then
if checkcolor('finditem') then
uo.usetpye(invis_type, invis_color)
wait(200)
else
UO.Ignore('finditem')
endif
endif
вар2 даже короче. Не нужно выносных функций и игнорами баловаться не нужно. В шапке объявляешь массив цветов а в скрипте делаешь так:
Code: Select all
for n=1 to 14
if uo.findtype(elem_type, color[n], 'ground', distance) then
uo.usetpye(invis_type, invis_color)
wait(200)
return ; выбьет из цикла
endif
next
Re: Если рядом
Posted: 2015-03-27 13:02:05
by dubd
спасибо большое, очень пригодитца.
Re: Если рядом
Posted: 2015-03-27 18:28:14
by dubd
пле! с вариантом номер2 немного ошибку выдает - Variable undefined - N
Code: Select all
for n=1 to 14
if uo.findtype('elem_type', 'color[n]', 'ground', 'distance') then
uo.usetype('invis_type', 'invis_color')
wait(200)
return ; выбьет из цикла
endif
next
ошибка при улете на выгрузку возникает.
Re: Если рядом
Posted: 2015-03-27 22:00:49
by Mirage
Variable значит у тебя var переменная не объявдена.
Code: Select all
var n, c
Dim color[14]
color[1]='0x09DA'
color[2]='0x0060'
color[3]='0x0BA7'
color[4]='0x09E6'
color[5]='0x09B9'
color[6]='0x09D3'
color[7]='0x008F'
color[8]='0x09EC'
color[9]='0x09F0'
color[10]='0x010F'
color[11]='0x09A4'
color[12]='0x0085'
color[13]='0x08AF'
color[14]='0x0028'
c=uo.getcolor(obj)
for n=1 to 14
вот это надо в скрипт прописывать в шапку
Re: Если рядом
Posted: 2015-03-27 22:52:27
by Juicy Fruit
И вписать необходимые типы, цвета и дистанцию.
Re: Если рядом
Posted: 2015-03-27 23:28:51
by dubd
шапка, шапка это наверху где то
только как я
Code: Select all
sub checkcolor(obj)
var n, c
Dim color[14]
color[1]='0x09DA'
color[2]='0x0060'
color[3]='0x0BA7'
наверх запихну, там же sub main.