PDA

Просмотр полной версии : Условие в боте возможно ли?


dyh9l
27.07.2010, 09:58
Хочу написать скрипт для прохождение нублеса на пвп фришках.
В общем перейду сразу к делу, все мы знаем про квест на нублес и как он проходится наверно наизусть. Если под напрячь нашу память в первом квест у нас есть задание: 7. Идите в Dragon Valley. Охотьтесь на Malruk Succubus и Malruk Succubus Tauren, пока не получите 10 Malruk succubus claws. Запаситесь терпением, дроп этих вещей очень низкий. . Написать скрипт до убийства сукубов не составило труда, а вот теперь вопрос, как заставить бота атаковать их (на скрипте) и убивать до тех пор пока он не наберет 10 Malruk succubus claws..
Обсуждаем :o

Anzorik
27.07.2010, 10:43
Да тут вроде нечего обсуждать=)
label(Qitem)
ITEMCOUNT([Айди твоей квест вещи],<,10)
{
delay(500)
jmp(Qitem)
}
Ну и далее действия, которые выполнять после получения 10 квест итемов.

viteksamb
27.07.2010, 10:51
Просто. Ставишь в скрипте командой сначала не атаковать всех мобов, а потом так же командой атаковать мобов только с нужным ID (в твоем случае ставишь ID сукубов - его глянуть можно в любой БД по Л2. И проверяй скриптом кол-во предметов - если набрал нужное, скрипт заканчивается и все.

dyh9l
27.07.2010, 10:56
Да тут вроде нечего обсуждать=)
label(Qitem)
ITEMCOUNT([Айди твоей квест вещи],<,10)
{
delay(500)
jmp(Qitem)
}
Ну и далее действия, которые выполнять после получения 10 квест итемов.

Что такое Qitem, в этом условии как он разберет какого моба ему бить если ему тут надо лиш указать чтоб он выбил 10 итемов

Добавлено через 2 минуты
Просто. Ставишь в скрипте командой сначала не атаковать всех мобов, а потом так же командой атаковать мобов только с нужным ID (в твоем случае ставишь ID сукубов - его глянуть можно в любой БД по Л2. И проверяй скриптом кол-во предметов - если набрал нужное, скрипт заканчивается и все.

Пожалуйсто обозначения как поставить командой не атаковать всех мобов, так же атаковать только с нужным ИД и команду если набрал нужное кол-во юзал след действие

Anzorik
27.07.2010, 10:56
SET(MON,NOATTACK,*)
SET(MON,ATTACK,name[ID=айди сукуба твоего])
label(Qitem)
ITEMCOUNT([Айди твоей квест вещи],<,10)
{
delay(500)
jmp(Qitem)
}

Вот так более точно. Qitem просто метка.

viteksamb
27.07.2010, 10:58
Что такое Qitem, в этом условии как он разберет какого моба ему бить если ему тут надо лиш указать чтоб он выбил 10 итемов



LABEL(START)
SET(MON,NOATTACK,*)
DELAY(1000)
SET(MON,ATTACK,"имя моба (необязательно писать) [ID="ИД моба писать обязательно])
DELAY(1000)
LABEL(QITEM)
ITEMCOUNT([Айди твоей квест вещи],<,10)
{
DELAY(1000)
JMP(QITEM)
}
// Продолжаем квест дальше

dyh9l
27.07.2010, 11:00
SET(MON,NOATTACK,*)
SET(MON,ATTACK,name)
label(Qitem)
ITEMCOUNT([Айди твоей квест вещи],<,10)
{
delay(500)
jmp(Qitem)
}

Вот так более точно.

А радиус фарма сукубов тут как будет ставится? всех которых вблизь видит?
* - это обозначает что типа всех мобов не бить как я понял?

[I]Добавлено через 1 минуту
Еще вопрос, если сукубов 2 вида, как добавить 2 ид ?

Anzorik
27.07.2010, 11:01
ну радиус можно скриптом"SET(RANGETYPE,STARTPOS,800)", хотя я вообще предпочитаю в данных ситуациях конфиги грузить.

Добавить включая логику=)

dyh9l
27.07.2010, 11:02
ну радиус можно скриптом"SET(RANGETYPE,STARTPOS,800)", хотя я вообще предпочитаю в данных ситуациях конфиги грузить.
Если поставлю без радиуса, то будет бить всех кого можно взять по /target ?

Anzorik
27.07.2010, 11:04
нет, по дефаулту не помню какой там радиус.

SET(RANGETYPE,STARTPOS,800)
SET(MON,NOATTACK,*)
SET(MON,ATTACK,name[ID=айди сукуба твоего])
label(Qitem)
ITEMCOUNT([Айди твоей квест вещи],<,10)
{
delay(500)
jmp(Qitem)
}

вот так сделай и будет работать.

viteksamb
27.07.2010, 11:06
Если поставлю без радиуса, то будет бить всех кого можно взять по /target ?

SET(RANGETYPE,RAND) тебе тогда эта команда, но не рекомендую ее - так как бот убежит ХЗ куда

dyh9l
27.07.2010, 11:07
А как насчет 2 видов моба ?
Предпологаю что так:
SET(MON,ATTACK,name[ID=айди сукуба твоего1],[id=айди сукуба 2]) прав?)

viteksamb
27.07.2010, 11:12
Проще всего будет, как Анзорик написал

Добавлено через 49 секунд
А как насчет 2 видов моба ?
Предпологаю что так:
SET(MON,ATTACK,name,[id=айди сукуба 2]) прав?)
Прав

[I]Добавлено через 3 минуты
Хотя чтоб наверняка можно так
SET(MON,ATTACK,name)
DELAY(500)
SET(MON,ATTACK,name[ID=айди сукуба твоего2])

[I]Добавлено через 45 секунд
Анзорик, мы тут родили с тобой скрипт можно сказать))

Anzorik
27.07.2010, 11:12
viteksamb,
Ага, групповое скриптописание :D

dyh9l
27.07.2010, 11:15
Проще всего будет, как Анзорик написал

Добавлено через 49 секунд

Прав

Добавлено через 3 минуты
Хотя чтоб наверняка можно так
SET(MON,ATTACK,name)
DELAY(500)
SET(MON,ATTACK,name[ID=айди сукуба твоего2])

[I]Добавлено через 45 секунд
Анзорик, мы тут родили с тобой скрипт можно сказать))
тоесть это он если 1 сукуба не найдет то через пол секунды будет искать сукуба 2 ? :)

Anzorik
27.07.2010, 11:17
нед, он просто пометит обоих для аттаки. А убивать будет рандомно.

viteksamb
27.07.2010, 11:21
Будет убивать, который ближе или который приоритетнее (по умолчанию приоритет у обоих одинаковый, так что не заморачивайся)

Anzorik
27.07.2010, 11:22
Приоритет не работает=)

viteksamb
27.07.2010, 11:31
Хм... Да вроде работал :) Ну не суть важно... Фиг с ним с приоритетом - главное будет работать скрипт.

Добавлено через 6 минут
Анзорик, и вот где наша с тобой куча спасибок в каждом посту? =)

dyh9l
27.07.2010, 18:40
Ну я их не тыкаю просто так :) Вот вечером приду домой проверю и растыкаю по каждому посту :)

Добавлено через 6 часов 55 минут
LABEL(START)
SET(MON,NOATTACK,*)
DELAY(1000)
SET(MON,ATTACK,"имя моба (необязательно писать) [ID="ИД моба писать обязательно])
DELAY(1000)
LABEL(QITEM)
ITEMCOUNT([Айди твоей квест вещи],<,10)
{
DELAY(1000)
JMP(QITEM)
}
// Продолжаем квест дальше

Я кстате не понял, звездочку из SET(MON,NOATTACK,*) или её заменить на ид тех мобов которых бить ненадо?

Anzorik
27.07.2010, 18:44
Звездочка обозначает выбор всех предметов в списке, в твоем случае всех мобов.

viteksamb
27.07.2010, 18:49
ид тех мобов которых бить ненадо?
улыбнулся-посмелся :) Оставь как есть

dyh9l
27.07.2010, 19:26
А если во время прохождения квеста сольют в ПК,можно сделать так чтоб он продолжал делать то на чем остановился?
И как будут дела обстоять если на меня с агрится дракон?
п.с: дракон это агр моб в локации с сукубами

Anzorik
27.07.2010, 23:42
dyh9l, Блин скачай готовых скриптов, смотри код и разбирайся, все так начинали. Не ленись.

viteksamb
28.07.2010, 10:37
Сольют в ПК - делай через равные промежутки времени проверку на смерть. Если помер - по условию ТП в город, изучи точки респа в городе, пропиши их. И из каждой точки респа пропиши путь до нубобафа. Нубобафнись и иди опять на спот с сукубами.
Если сагрится дракон - бот его грохнет. Расписывать покомандно не буду. А принцип я объяснил.

dyh9l
30.07.2010, 05:19
В чем разница между Delay() и Pause() ?

Anafema
30.07.2010, 10:06
В чем разница между Delay() и Pause() ?
задержка это таймер, а пауза это пауза, пока не нажмешь продолжить будет скрипт стоять