Ситуация такая... я начинаю, потихоньку, осваивать пилот. Хотя... честно... никак не могу понять что такое set =))
Но... как оказалось, не знание этого не отнимает возможности что-то написать...
Скрипт должен делать следующее. Находить овцу, звать ее к себе,
как только овца будет на досягаемом уровне от чара - постричь ее и начать таймить.
Проверить (затаймилась ли?) - если нет - то попробовать затаймить ее еще раз, причем...
если овца отошла на недосягаемое расстояние, опять ее подозвать к себе...
чар статично стоит в загоне для овец в еве.
Я написал макрос... он, так как я хочу не работает...
:start
send {Enter} / чтобы освободить строку ввода от цифр, которые макрос в процессе работы вводит
wait 100
send f7 / next target
wait 100
send {num_2} / звать овцу хеардингов (макрос забит в абисте на посох, живка, я и ласт таргет)
wait 5000
if (lastmsg they look somewhat annoyed) / если это сообщение - то это не овца.
goto start / И опять в начало на некст таргет. Искать овцу дальше.
else goto zvat / если это овца - звать дальше
end_if
:zvat / звать
send {num_2} / звать
wait 5000
send {num_1} / стрич (забито в абисте на нож, живку и поменено на ласт таргет)
wait 150
send {num_3} /кнопка тайминг. Забито в абисте на посох. живка. живка изменена на ласт таргет.
это моя проверка на достигаемость тайминга. поэтому маленькая задержка. мол если овца рядом.
он начнет ее таймить и последнее сообщение будет не такое... как написано ниже.
wait 2500
if (lastmsg what do you want to use this on?) / если последнее сообщение будет такое - значит овца не рядом.
goto zvat / возвращаемся к команде звать.
else goto taming / иначе. Т.е. если последнее сообщение другое.. типо "here lamb" переходить в тайминг
end_if
:taming / тайминг
send {num_3} / тайминг забит в абисте на посох, живка. Живка поменена на ласт таргет
wait 25000
if (lastmsg Animal Taming) / на абусе. в момент тайминга.
мало появляется команд на английском. Вот... в русском сообщении от сервера
"животное было удалено. вы получите опыт в Animal taiming" есть
английское слово тайминг... т.к. уо пилот не реагирует на русские слова
от сервера. я подумал, может он увидит это словосочитание Animal taming
и по нему мол догадается, что живка приручилась. Мол если приручилась -
идти в начало. Иначе. Т.е. если такого сообщения не появилось - вернуться к метке таймить.
goto start
else goto taming
end_if
set - это оператор присвоения.
set #a 123 // переменная #a будет равна 123
if lastmsg qwe
set #a 123
msg сообщение
while #b = 3
send 1
send 2
wait 100
end_while
end_if
сравните:
if lastmsg qwe
set #a 123
msg сообщение
while #b = 3
send 1
send 2
wait 100
end_while
end_if
окей... заинтересовался идеей насчет координат живки и моих...
Не могли бы вы мне продемонстрировать простенький пример?
Т.к. мне тут многое не понятно.
А именно... хорошо... я так понял что я должен присвоить set -у координаты живки и другому set-у координаты игрока. Но... как пилоту сообщить, что такая относительная координата подходит для тайминга? И вообще... что вычисляет point_distance ? синус, косинус? или что? и как мне понять что это подходит?
я так понял... что тут еще придется использовать while ?
set #a point_distance ( LastTargetX, LastTargety, LastTargetZ)
set #b point_distance (CharPosX, CharPosY, CharPosZ)
while #a - #b > 1
send f1(звать)
Я примерно правильно понял? =)
Так правильнее будет? Кстати игра 2д... думаю координаты z не нужны.
set #x1 CharPosX
set #y1 CharPosY
set #x2 LastTargetX
set #y2 LastTargetY
set $a point_distance(#x1 #y1 #x2 #y2)
set #dist round( $a )
if #dist >2
send f1 (звать)
Вроде как правильно.. Но я столкнулся с проблемой.
Я в одном окне игры указал последний таргет на перса из другого окна. В макросе, что выше, указал писать лог и запустил. Переключился в то окно где мой второй перс, на которого ласт таргет поставил. И стал отходить по 1 клетке. вот лог
23:35:25 0 (нароботка.txt, 8): 2
23:35:27 0 (нароботка.txt, 8): 2
23:35:29 0 (нароботка.txt, 8): 2
23:35:31 0 (нароботка.txt, 8): 2
23:35:33 0 (нароботка.txt, 8): 2
23:35:35 0 (нароботка.txt, 8): 2
23:35:37 0 (нароботка.txt, 8): 2
23:35:39 0 (нароботка.txt, 8): 2
23:35:41 0 (нароботка.txt, 8): 2
Координата не менялась... Но...
Если я отходил от своего ласт таргета, то координата менялась
3:42:24 0 (нароботка.txt, 8): 2
23:43:01 0 (нароботка.txt, 8): 1
23:43:09 0 (нароботка.txt, 8): 1
23:43:15 0 (нароботка.txt, 8): 3
Надо наоборот...
Или у меня опять ошибка?
Кароче... вот какой код у меня получился... Все работает,
кроме одного - координаты меняются, только если я хожу
и то не всегда... Может есть те, кто знают особенность УО
и подскажут че не так?
:start
send {Enter} //Чтобы очистить строку ввода//
wait 100
send f7 //некст таргет//
wait 100
send {num_2} //Звать живку - хеардинг посохом//
wait 5000
if (lastmsg they look somewhat annoyed) //Если такое сообщение - это не живка//
goto start //Идем в начало//
else goto zvat //Идем дальше//
end_if
:zvat
send {num_2} //Звать живку - хеардинг посохом//
wait 2000
if (lastmsg you can't see the target) //если живка исчезла идем в начало//
goto start
else //иначе определяем дистанцию от чара до живки//
set #x1 LastTargetX
set #y1 LastTargetY
set #x2 CharposX
set #y2 CharposY
set $a point_distance(#x1 #y1 #x2 #y2)
set #dist round($a)
log #dist
if (#dist > 8) //Я так и не определил чему должна
быть равна дистанция для достигаемости
ее чаром. Ну допустим если дистанция
больше 8 - то повторим звать//
goto zvat
else goto taming //Иначе - стрижем и таймим//
end_if
end_if
:taming
send {num_1} //стрич//
wait 100
send {num_3} //таймить//
wait 25000
if (lastmsg you can't see the target) //если живка исчезла - идем в начало//
goto start
else //иначе, повторяем звать, чтобы определить ее достигаемость//
goto zvat
end_if
Вы, абсолютно, оказались правы!
Координаты ласт таргета по х и у не меняются вообще... я дважды кликаю на цель и через таргет инструментов и предметов... и скилами... один фиг- координата, полностью статично в независимости от того в какой части игрового мира я нахожусь... все остальное меняется... и айди ласт таргета и тип объекта.
Есть какие идеи?
Уже сложнее. Я таргеты только тайлов для копки тыкал ну и кирку выбирал...
Была мысль именно кастануть по цели - таргет по идее должен смениться был бы, но вы, как я понял, это уже делали. А внутриигровые макросы с lasttarget вообще работают, если цель должна быть персонажем, которого отслеживаем? Вообще ласттаргет возможно задать пилотом, но надо знать ID который задавать. В случае с персонажами/мобами - это должны быть уникальные id и они вполне возможно будут меняться при респе/входе в игру объекта.
да, макросы с ласт таргетом работают...
А если сделать какой-то фейк-заглушку с ласттаргетом? Если нажать макрос с ласттаргетом, то координата обновится?
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)