Yoko

All sides of Injection
It is currently 2024-03-29 00:09:21

All times are UTC+02:00




Post new topic  This topic is locked, you cannot edit posts or make further replies.  [ 187 posts ]  Go to page Previous 1 2 3 4 5 610 Next
Author Message
 Post subject: Re: Script.dll + include
PostPosted: 2012-07-20 16:00:36 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Если сам чар ещё не вышел из УО - возможно такое, надо дождаться логаута чара, или зайти тем, что открылось в зону, с моментальным логаутом (если такая имеется).
После того как чар оффнется из мира - заходит под нормальным конфигом)
Это баг клиента, он, видимо, грузит конфиг при выборе чара, если выбора нет - использует последний открытый конфиг.
Ибо даже в окошке трэйда при этом глюке ник не чара, которым ты зашёл, а чара, конфиг которого подгрузился)


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-07-21 10:25:07 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
кстати,
при первом запуске инжекта, если сразу открыть окно "с 2я ячейками" и нажать на скрипт, то будет выдавать ошибку, а если эту же процедуру провернуть в самом окне инжекта в макросах "с 3я ячейками", то запускается хорошо и после этого запускаются скрипты из окна "с 2я ячейками" без ошибки


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-07-23 08:51:30 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Gromiz wrote:
кстати,
при первом запуске инжекта, если сразу открыть окно "с 2я ячейками" и нажать на скрипт, то будет выдавать ошибку, а если эту же процедуру провернуть в самом окне инжекта в макросах "с 3я ячейками", то запускается хорошо и после этого запускаются скрипты из окна "с 2я ячейками" без ошибки

Хмм, какую именно ошибку?
Не найден скрипт? Или чото про Access violation at address ..?
У меня скрипт, загружаемый из другого файла, без замены текущего скрипта - запускался нормально.
Из текущего скрипта - тоже без проблемм.


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-07-23 16:29:04 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
захожу в игру, в нжекте активирую всплывающее окошко, в окошке запускаю любой скрипт из другого файла, выдает:
Image
хотя из основного окна инжекта с 3мя ячейками все запускает сразу и после можно запускать из всплывающего окна.

хотя 825 строка не связана с этими скриптами в целом.

825 строка : Sub Meditation()


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-07-23 18:24:44 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
825 строка, которая видна при включённой галочке Show.
Все строки, ошибки в которых выдаёт модуль - пока что из окна редактора с включённой Show.

Щас проверю что там не так на счёт запуска)

//add
http://rghost.ru/39376321
Исправил этот глюк.
Теперь всё нормально обрабатывает.
Заодно исправил сохранение файла с макросами, теперь он всегда сохраняется в корневую папку инжи, от куда был запущен модуль, а не куда-то ещё))


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-07-28 06:03:45 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
Image


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-07-28 11:44:53 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Опять при клике во всплывающем окошке?


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-07-28 15:37:07 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
нет, теперь сам инжект, правда и скорее всего по вине корявого скрипта, ибо его поправил и все нормально.


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-08-26 18:23:00 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Поправил классики Buffer и FindPath.
В Buffer - только незначительные фиксы.
Конструктор в FindPath теперь объявляется с 3 переменными
PathFind(UOPath,MapIndex,Z)
UOPath - путь к *.mul файлам
MapIndex - индекс карты, для которой вычислять путь (map0/map1/etc...)
Z - координата Z чара, в коде ищет путь по Z +/-20
Думает дольше, но без глобальных глюков)
Пока что не реагирует на игровые предметы УО (заборы, дома, фонари и т.п.), это как нибудь впилю.

Добавил функцию Remain(Val1,Val2).
Возвращает true если есть остаток деления Val1/Val2, false - если делится без остатка.
Code:
sub RemainTest()
   if remain(9,3) then
      uo.print('Деление с остатком.')
   else
      uo.print('Деление без остатка.')
   endif
end sub


Добавил аналог PrivateGetTile():
GetTileXYM(X,Y,M,Tile1,Tile2,UOPath)
X - координата X тайла
Y - координата Y тайла
M - карта, на которой происходит действие
Tile1,Tile2 - диапазон от Tile1 до Tile2
UOPath - путь к папке с *.mul файлами

Теперь, при ошибке в скрипте, парсер выдаёт информацию с названием файла, в котором содержится строка с ошибкой, и, соответственно, строку с ошибкой.
Может глючить и указывать на пустые строки, если это произошло - ошибка на последней не пустой строке, перед этими пустыми строками %)

Пофиксил "зависание" Ctrl при макросах Ctrl+S/O/F/G/H. Теперь всё работает как нужно.

*Для дллки с доп. окошком:
Координаты и размеры окна теперь сохраняются и загружаются при старте.
Размеры ячеек изменяются только программно, размер ячейки с номером заметно уменьшился.

Ссылки обновил в 1 посте.


Last edited by Juicy Fruit on 2012-08-27 06:51:49, edited 1 time in total.

Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-08-26 18:42:43 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
cool, thnx ^^,


Image


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-08-26 18:47:26 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Если баг вылезет - пиши сюда или в аську (в модуле указана), может вылезти из-за добавления названий файлов и более корректных строк с ошибками) 2 недели теста - пока что без багов)


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-09-11 22:41:43 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Реализовал поддержку else if в конструкции if else endif.

else if должно записываться только так, записи elseif/elif и т.п. не допустимы.
Регистр не важен.

Теперь громоздкие конструкции типо:
Code:
if ... then
else
   if ... then
   else
      ...
   endif
endif

можно записывать как:
Code:
if ... then
else if ... then
else if ... then
endif


Работает это с учётом вложенности циклов, как видно на фрагменте ниже.

Не заморачивался с условиями настоящего синтаксиса, это просто для наглядности учета всех циклов и строк:
Code:
sub ghd()
   if fgh
      ...
      for hg
         ...
         while gg
            ...
            if gf
               ...
            else if h
               ...
            else if h
               ...
            endif
         wend
      next
   else if hg
      ...
   else if gh
      for hg
         ...
         while gg
            ...
            if gf
               ...
               repeat
                  ...
                  if ...
                     ...
                  else if ???
                     ...
                  endif
               until fff
            else if h
            else if h
            endif
         wend
      next
   else if gh
      ...
   else if gh
      ...
   endif
end sub


Данный фрагмент будет рассматриваться парсером как:
Code:
sub ghd()
   if fgh
      ...
      for hg
         ...
         while gg
            ...
            if gf
               ...
            else
               if h
                  ...
               else
                  if h
                     ...
                  endif
               endif
            endif
         wend
      next
   else
      if hg
         ...
      else
         if gh
            for hg
               ...
               while gg
                  ...
                  if gf
                     ...
                     repeat
                        ...
                        if ...
                           ...
                        else
                           if ???
                              ...
                           endif
                        endif
                     until fff
                  else
                     if h
                     else
                        if h
                        endif
                     endif
                  endif
               wend
            next
         else
            if gh
               ...
            else
               if gh
                  ...
               endif
            endif
         endif
      endif
   endif
end sub


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-09-28 00:43:23 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Добавил возможность вызова скрипта с параметрами из хоткеев (или создание нового трида из уже запущенного скрипта)

,exec FunctionName#Params1#...#ParamN

FunctionName - соответственно имя функции;
Params - передаваемые в неё параметры.

Params перечисляются используя разделитель не запятую, а #.
Ограничение по кол-ву параметров - 20.
Параметры строчного типа должны и быть вковычках.
Числовые параметры или имена переменных нужно записывать без ковычек.
Если в строчке необходим пробел - он должен быть заменён на $, ибо в обработку дллкой приходит функция уже без пробелов.

Пример:
Требуется вызвать функцию asd с параметрами: Переменная,Число,Строка

Где-то на просторах скрипта находится:
Code:
var Param1='Param1_data'

sub asd(a1,a2,a3)
   uo.print(a1)
   uo.print(str(a2))
   uo.print(a3)
   wait(10000)
end sub


В окне УО (или забиваем в хоткей) пишем
Code:
,exec asd#Param1#123#'Param3$with$spaces'


script.dll обработает этот запрос на вызов функции, создаст временную функцию с названием <FunName>_WithParams(), запустит её и из неё вызовет необходимую функцию

Code:
sub asd_WithParams()
   asd(Param1,123,'Param3 with spaces')
end sub


В итоге в систем чате УО имеем:
Code:
Param1_data
123
Param3 with spaces


В списке запущенных скриптов, 10 секунд, будет висеть созданная функция asd_WithParams

///////////////// Добавлено позже.
Теперь диалоги открытия/сохранения скрипта не блокируют доступ к инжекту и окну УО.

///////////////// 29.09.2012
Исправлена ошибка, возникающая при использовании в скриптах else if.
Теперь всё работает так, как и должно)
Обновил ссылки.


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-10-26 02:32:27 
Offline

Joined: 2012-10-26 02:10:01
Posts: 3
вы могли бы реализовать такие вещи, как:
http://agrs.info/asm/filesru.html
Это уже существует?

Благодарю вас за ваше время и усилия!


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-10-26 08:07:00 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Можно, но толку от этого? Эта дллка нормально работает с АСМ, глюков не возникало) когда время будет и если будет еще актуально – поковыряю)


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-10-30 18:15:16 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
эта модификация никак же не может повлиять на стабильность работы инжекта на высоких клиентах +6...?

может в курсе, можно как-то скрипт проверить на работоспособность?


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-10-30 19:39:00 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Gromiz wrote:
эта модификация никак же не может повлиять на стабильность работы инжекта на высоких клиентах +6...?

Вообще на 6+ клиентах не играл, но на Olmer'e (там 6+ какой-то клиент) не жаловались на дллку.

Gromiz wrote:
может в курсе, можно как-то скрипт проверить на работоспособность?

Всмысле? Запустить и посмотреть как работает, нэ?)


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-11-05 18:38:01 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Добавил функции (по-сути аналог SetGlobal/GetGlobal, только чуть более функциональные) по работе с глобальными переменными:
Code:
UO.GListSet(String Name, String Value) #Добавить/заменить глобальную переменную
UO.GListGet(String Name) #Получить значение глобальной переменной
UO.GListClear() #Очистить список глобальных переменных
UO.GListSize() #Узнать размер списка (кол-во позиций) глобальных переменных
UO.GListPosName(Number Position) #Получить имя глобальной переменной, которая находится в позиции Position
UO.GListPosValue(Number Position) #Получить значение глобальной переменной, которая находится в позиции Position

Индексы позиций от 0 до Size-1

Теперь при возникновении ошибки "Unhandled exception in parser." функция, в которой возникла данная ошибка незамедлительно стирается из списка запущенных функций.

Добавлена проверка на то, запущенна ли функция в данный момент или нет.
Code:
UO.FunRunning(String Name)


Смысл от неё - держать запущенным, помимо основной функции, трид, который проверяет основную функцию на работоспособность, если её нет - перезапускать основной трид (при появлении "Unhandled exception in parser." не особо актуально), закрывать окно УО (лесоруба/минёра/т.п. чтоб не убили во время срыва добычи при "обстоятельствах") или ещё какие-то действия.

P.S. Новое оформление без "окна макро" не выпускаю из-за не актуальности)


Last edited by Juicy Fruit on 2012-11-10 09:30:38, edited 2 times in total.

Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-11-06 07:16:02 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Как всегда молодец. Но насчет игнорирования ошибки спорно. Ошибка сигнализирует что игра либо запущена не правильно (многоядерный проц) либо ошибка в скрипте. А когда она будет молча закрываться пользователь будет сидеть и тыкать в кнопку.

PS попробуй поискать функцию Pathfind для передвижения. Хотя хз - если за столько лет создатели не раскололись...

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2012-11-06 07:30:00 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Ошибка осталась, выскакивает когда случсется, только функция, которая вызвала этот еррор удаляется из списка)

На счет функции для перемещения поподробнее, зачем поискать? Путь мое деяние не правильно расчитывает?) Или к чему это?)


Top
   
 
Display posts from previous:  Sort by  
Post new topic  This topic is locked, you cannot edit posts or make further replies.  [ 187 posts ]  Go to page Previous 1 2 3 4 5 610 Next

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 14 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited