Если рядом
Moderators: Murderator+, Murderator
Если рядом
Подскажите пожалуйста, как лучше организовать следующее. В общем надо перед реколом, если рядом элементал, то пьет инвиз и улетает. Если его рядом нету, то тогда не пьет!
Если у кого то есть такой кусочек, поделитесь пожалуйста! Для копки.
Если у кого то есть такой кусочек, поделитесь пожалуйста! Для копки.
-
- Posts: 820
- Joined: 2011-06-11 19:54:23
Re: Если рядом
Code: Select all
if uo.findtype(elem_type, -1, 'ground', distance) then
uo.usetpye(invis_type, invis_color)
wait(200)
endif
И ответь на это плиз)
Re: Если рядом
отлиично!! то что надо даа. а вот вопрос: просто не все элементалы атакуют, только высоких руд. Как можно решить данную проблему?
узнал, по цвету.
только как вот привязать эти цвета к кусочку?
узнал, по цвету.
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: Если рядом
dubd wrote:узнал, по цвету.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: Если рядом
я написал вчера этот скрипт с одного захода, добро пожаловать в наш клуб. Можете помочь пожалуйста.
Re: Если рядом
dubd, могу помочь. Содержимое массива нумеруется с нуля, первый пункт будет:
Последний соответственно под 13 номером.
Далее, цикл for должен выглядеть примерно так:
Далее, как соединить:
Пишешь проверку, если checkcolor = 1 то улетаем, ежели нет, то игнорим.
Как то так.
З.Ы. Я в этом клубе уже 9 лет, если что.

Code: Select all
Dim color[14]
color[0]='0x09DA'
Последний соответственно под 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 лет, если что.


Last edited by Kynep on 2015-03-26 09:13:51, edited 1 time in total.
-
- Posts: 820
- Joined: 2011-06-11 19:54:23
Re: Если рядом
Else убери вообще
Return 0 перенеси за next и будет счастье)
Return 0 перенеси за next и будет счастье)
Re: Если рядом
Juicy Fruit wrote:Else убери вообще
Return 0 перенеси за next и будет счастье)
Это я из старого скрипта скопировал. На работе свежих нет, но я стойко помню что там ретурн за некстом... а тут чета не стал редактировать.

Re: Если рядом
На 15 инжекте все проще можно организовать. В папке инжекта создаешь файл autoload.cfg в него прописываешь следующий текст:
и тд. Тип и цвет без кавычек.
а в скрипте используется вот такой кусок без for
в тип элементалей так же можно вписать тип человеков чтобы от них тоже сваливало.
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
в тип элементалей так же можно вписать тип человеков чтобы от них тоже сваливало.
-
- Posts: 820
- Joined: 2011-06-11 19:54:23
Re: Если рядом
Подгрузку файлика где потерял?))
У него при запуске автостарта это читается вроде бы. Хотя были предложения добавить нечто подобное автоматом, но пока что не реализовывал.
У него при запуске автостарта это читается вроде бы. Хотя были предложения добавить нечто подобное автоматом, но пока что не реализовывал.
Re: Если рядом
Спасибо за ответы!!
Можете пожалуйста подсказать проверку на checkcolor = 1 ? Мне именно надо - что если цвет совпадает - то пьет инвиз, если не совпадает то не пьет и просто улетает.if
Можете пожалуйста подсказать проверку на checkcolor = 1 ? Мне именно надо - что если цвет совпадает - то пьет инвиз, если не совпадает то не пьет и просто улетает.if
Re: Если рядом
dubd, checkcolor = 1 это же твоя функция. ты же сам ее написал... Если смог написать такое, то простую проверку if then напишешь еще быстрей.
Тебе же уже все разъяснили...
Ищем элема
Если нашел, то берем его ИД.
Далее по ИД проверяем цвет(color = checkcolor(elem))
Если color = 1 то реколимся, если нет, то ignore(elem).
Тебе же уже все разъяснили...
Ищем элема
Если нашел, то берем его ИД.
Далее по ИД проверяем цвет(color = checkcolor(elem))
Если color = 1 то реколимся, если нет, то ignore(elem).
Re: Если рядом
я был в плохом состоянии, ничего не помню.
ну вот кусочек:
как правелно будет прикрепить?
я имею ввиду для старого инжекта. а не для нового с внесением в autoload elem'a.
ну вот кусочек:
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: Если рядом
спасибо есть контакт. только там двумя строчками не обойтись было.
Re: Если рядом
вообщето именно двумя
+ 2 дополнительные для игнора.
вар 1:
в выносной функции надо дописать одну строку
а в поиске сделать вот так
вар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: Если рядом
пле! с вариантом номер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: Если рядом
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
-
- Posts: 820
- Joined: 2011-06-11 19:54:23
Re: Если рядом
И вписать необходимые типы, цвета и дистанцию.
Re: Если рядом
шапка, шапка это наверху где то
только как я
наверх запихну, там же sub main.

только как я
Code: Select all
sub checkcolor(obj)
var n, c
Dim color[14]
color[1]='0x09DA'
color[2]='0x0060'
color[3]='0x0BA7'
наверх запихну, там же sub main.