Помогите новичку.

Ask for help

Moderators: Murderator+, Murderator

Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Помогите новичку.

Post by Incorrect User »

Что за непонятные глюки? Сначала инжа просто перестала юзать топор в скрипте пока его раз не возьмеш руками. Теперь начала выдавать парсер на нормальных строках и причина его - ее не устраивают одинарные кавычки ' она хочет двойные " . И пишет парсер в строке 878 а строк всего 877 :)
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Помогите новичку.

Post by ZeroDX »

Где-то незакрытые кавычки или закрывашка пропущена
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите новичку.

Post by Mirage »

+ если ошибка уходит за последнюю строку - это не закрытый цикл или условие.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Помогите новичку.

Post by Incorrect User »

Вот сделал скрипт на установку автобая:
Как можно сделать чтобы он проверял появившийся пенек на координаты, то есть если пень стоит +2 от чара по Y координате то юзать дид бая и ставить на пенек, а если пень в любом другом месте то дальше продолжать искать пень в указанной точке. И нужно автоматом закрывать окно трейда если появиться.
Last edited by Incorrect User on 2011-06-16 14:17:32, edited 1 time in total.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите новичку.

Post by Mirage »

Code: Select all

Repeat
   uo.FindType(type, -1, 'ground')
   if uo.FindCount() and uo.GetX('finditem')==1234 and uo.GetY('finditem')==4321 then
      бла бла бла
   else
      uo.Ignore('finditem') 
   end if
until uo.dead()

если появляется в одном и том же месте то лучше вот так, вместо условных координат "+2 тайла на северо-запад"
закрывать бай окно можно только визуально через UO.RClick(X,Y) xy - координаты окна на экране.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Помогите новичку.

Post by Incorrect User »

Там идут ряды баек и иногда кто-то снимает поэтому всегда разные координаты.Может можно расписать это каким то образом? Типо:

Code: Select all

if uo.FindCount() and uo.GetX('finditem') = uo.GetX() and uo.GetY('finditem') = uo.GetY() + 2 then

Как правильно?
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Помогите новичку.

Post by Incorrect User »

Не могу понять как определить что появилось трейд окно? И можно ли както определить это если его невидно? То есть к тебе тип в хайде подходит кидает на тебя что-то трейд окно открывается но ты его не видиш, видит только тип.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите новичку.

Post by Mirage »

Скрипт на вендора посмотри. Там пример работы с трейд окнами.

PS может быть почистить тему от флуда? А то уже 6 лист пошел :mrgreen:
GoodSmoke
Posts: 1
Joined: 2011-06-16 17:08:32

Re: Помогите новичку.

Post by GoodSmoke »

загружаю скрипт на мининг: капает, разгружаеться, идет нормально, все работает, но инжа периодически выдает ошибку (Unhadled exception in parser)
клиент тоже выдает ошибку *( UO client performed an unrecoverable invalid operation. Terminated. yes?no?)
выручайте, не знаю что делать, инжа и клиент скачивал с сайта шарда на котором играю http://uoa.pp.ua/
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Помогите новичку.

Post by Incorrect User »

Почему в:

Code: Select all

sub Drag()
uo.findtype(Logs,LogsC,Box)
if uo.count()>0 then
  uo.moveitem('finditem',2500,'backpack')
  wait(500)
   else
  uo.print('Кончились логи!')
  uo.playwav('C:\Program Files\UltimaOnline\Injection\Alarm.wav')
  uo.exec('terminate all')
 endif
endsub

если будет строка

Code: Select all

if uo.count()>0 then

то ненаходит логи в сундуке, а если просто:

Code: Select all

if uo.findcount() then

так нормально работает.

зачем тут

Code: Select all

if uo.findcount()>0 then 
ставить >0? Ведь просто uo.findcount() определяет есть итем или нет, а больше 0 его это уже по барабану, раз определил значит больше полюбе.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите новичку.

Post by Mirage »

uo.count() ни каким образом не относится к поиску uo.find*. Это самодостаточный оператор количества предмета именно в паке игрока.
Оно используется вместо
uo.findtype(Logs,LogsC,'backpack')
if uo.findcount()>0 then
просто чтобы не писать много строк (наподобие bandageself)

PS ты ведь все еще ниразу не заглядывал в help :twisted:
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите новичку.

Post by Mirage »

А зачем тут if uo.findcount()>0 then

Просто так, не загоняйся.
По русски она расшифровывается:

Code: Select all

Если количество найденных предметов больше нуля, тогда.

Помоему звучит чуть более понятно чем:
if uo.findcount() then
По русски она конечно перефразируется - если найдены предметы, но правильнее будет перевод

Code: Select all

Если количество найденных предметов, тогда.

И следующий человек пришедший на форум спросит что именно означает надпись в этой строке.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Помогите новичку.

Post by Incorrect User »

Посмотрел скрипт на копку скал, там оказываеться разметка, а у меня нет возможности тыкнуть на тайл. И вот необходимо сделать макрос который будет набрасывать таргет на тайл в напрвлении +-1тайл от меня ни Х или У в зависимости от расположниея скалы. Но вот с этой функцией я что-то не разобрался. Если я правильно понял то нужно юзать uo.waittargettile(lasttile/tilenum,[x],[y],[z])
Как сделать чтобы не вводить Z координату? -1?
То есть я предполагаю что-то типо:

Code: Select all

#####################################
var X = uo.getx()
var Y = uo.gety() + 1
var Pickaxe = '0x0000'
sub Target()
 uo.waittargettile(0,X,Y,-1)
 uo.usetype(Pickaxe)
endsub
#####################################
 

И при этом отключить юз кирки в процедуре разметки, чтобы просто писало Укажите тайл! и я жал на макрос. И сделать таких 4 макра чтобы на 4 стороны было.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Помогите новичку.

Post by ZeroDX »

Вроде как в asm была штука, возвращающая z, но с ней тоже не всё гладко было. Ты глянь...
Можно брать свою координату, а -1 это координата тоже, котороя ниже уровня моря на одну местную единицу. (Не уверен, но это логично, хотя и ни разу не встречал в уо отрицательных координат)

А макросов нужно делать 8 штук и ходить марчить ещё) Быстрее будет автопоиск накатать ;), хотя выдергивать картинки тайлов тож долго
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Помогите новичку.

Post by Incorrect User »

М а скрипт же в файл координат записывает просто координаты Х и У? типо 1111 222 3333 444 там же не нужна Z координата?. Так может как то можно замутить скриптик который просто будет создавать файл координат? Например запускаеш скрипт в нем 4 макроса которые изменяют значение заданного параметра, и запускаем скрипт стаем под скалой и скрипт просит Выберите с какой стороны скала, и ждет до тех пор пока не измениться значение параметра, например по умолчанию оно 0, и если изменяем на 1 то это сторона +Y, 2 +X, 3 -Y, 4 -X. Мы нажимаем нужную кнопку, и скрипт записывает в файл координаты чара +- тайл в нужном направлении. Такое вообще реально сделать а то я еще не особо понимаю как это можно сделать, точнее как происходит процесс сохранения координат и последующая их запись в файл. А пока можно начать:

Code: Select all

################################
var Posy = 0

sub Posy1()
Posy = 1
endsub

sub Posy2()
Posy = 2
endsub

sub Posy3()
Posy = 3
endsub

sub Posy4()
Posy = 4
endsub
################################
sub Razmetka()
while not uo.dead()
 uo.print('Выберите положение скалы!')
 repeat
 wait(100)
 until Posy > 0
 if Posy == 1 then
 endif
 if Posy == 2 then
 endif
 if Posy == 3 then
 endif
 if Posy == 4 then
 endif
 Posy = 0
wend
endsub
################################
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Помогите новичку.

Post by ZeroDX »

1) Направлений не 4, а 8. (-1,-1)(-1,0)(-1,1) (0,-1)(0,1) (1,-1)(1,0)(1,1)
2) Нужно узнать номер тайла, для последующей передачи в waittargettile
а)asm
б)privategettile с диапазоном
3) Ну а про файлы и прочее я спрашивал тут ещё в далёком 2007-ом =). Изходя из того, что мне тогда ни кто не ответил, можно сделать вывод, что я не пойму что будет значить f=file(c:\trees.dat).

PS сей пост флуд с маскировкой под попытку помощи т.к. ничего дельного не содержит :P
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите новичку.

Post by Mirage »

2 Incorrect User ты так уперто не хочешь ИГРАТЬ в игру и чтото там делать так что ответы на твои вопросы становятся иногда очень едкими. ИМХО старички давно бы закрыли эту тему но так как нас тут "много" (относительно всего форума) мне просто интересно смотреть за развитием событий.
Почему не потратить 1-2 часа твоей (всего скорее) молодой жизни на марк деревьев или пещер? Тем более что если ты материально попросишь то 100 пудово найдется ктото кто сделает это за тебя (скорее всего на твоем шарде даже). АВТОСКРИПТЫ инжекта практически все очень не стабильны и ведут к крашу клиента и "непонятным" ошибкам. Хотя большинство ошибок как раз и результат запуска этих скриптов.

ПО теме. Автосбор координат на инжекте не был реализован по причине отсутствия вменяемой ходилки которую тут реализовать практически не возможно (Почему? Покачану.). Если собирать координаты в размере одного экрана то смысл автосбора пропадает - проще протыкать руками путь по которому будет ходить чар чтобы не упиратсья в непроходимые тайлы.
На стелсклиенте есть скрипт с огромным описанием как собирать деревья автоматически. И собсно рубить их потом. Это не совсем реклама стелса, просто об холодильник (инжект) пиво открывать не удобно. Для этого есть открывашка (стелс). Инжект больше плюсов дает в охоте и боях ПВП так как быстрее всех программ реагирует. За что собственно его и банят.
Тебе предложили уже:
1) модуль копания - когда ты сам рулишь чаром, приходишь в пещеру и тыкаешь скрипт - чар обкапывает себя. Ты сам относишь в банк.
2) скрипт с АВТОпоиском/ходом который актуален в координатах одной пещеры/небольшого участка леса.
3) тут есть тонны скриптов с файлами. Просто нужно найти и взять. А не просить чтобы тыкнули тебя носом.
4) тут есть уже тема про обкоп стен. Там нет тайлов (0 тайл). Зато там можно копать "в направлении" или просто вокруг себя.
Вот если по скрипту будут ОШИБКИ решения которых ты не сможешь найти - вот тогда всем миром с радостью и без стебя тебе помогут.

Подозреваю от тебя в скором будущем тем наподобие - "не работает автохилл во время боя - постоянно крашит". Автохилла тут тоже нет. Забивает 2 команды на кнопку и хилищься спокойно при нажатии клавиши.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Помогите новичку.

Post by Incorrect User »

Почему не потратить 1-2 часа твоей (всего скорее) молодой жизни на марк деревьев или пещер?

Я же написал - нет возможности набросить таргет на землю, там капаю только на ассисте по релеатив таргету.
Направлений не 4, а 8

Нужных 4, ведь скалы находяться в направлении карты S W N E что равно +Y -Y -X +X
Да и разве с таким скриптом я буду делать маркировку не самостоятельно? :) Снова глупости. Ну если на то пошло и нельзя сделать запись в файл то пусть просто выводиться уопринт с координатами и в журнал инжекта пишуться только они потом в конце открываем журнал копируем цифры и создаем файл разметки руками.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите новичку.

Post by Mirage »

По скалам (склонам) копать по координатам нельзя.
нужно использовать X = -2 to +2 Y = -2 to +2
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Помогите новичку.

Post by Incorrect User »

Ну этот скрипт, я так понял, копает не скалы а кочки в лесу? viewtopic.php?t=6999&highlight=%CA%EE%EF%E0%ED%E8%E5+%F1%EA%E0%EB%EB++++full
Post Reply