Yoko

All sides of Injection
It is currently 2024-03-19 07:57:48

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 14 5 6 7 810 Next
Author Message
 Post subject: Re: Script.dll + include
PostPosted: 2013-01-19 07:40:27 
Offline

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

как получилось добавить пустую строку, но никак удалить не могу)
баг не баг, я не знаю.


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-01-19 08:59:59 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Не, так и должно быть)


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-01-20 09:00:15 
Offline

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


Attachments:
File comment: ошибки инжекта
injection_log.txt [8.63 KiB]
Downloaded 263 times
Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-05-16 22:18:10 
Offline

Joined: 2005-04-16 23:33:13
Posts: 104
Функция скрипта uo.exec("exec __PauseAll") поставит на паузу все запущенные скрипты.
В игре: ,exec __PauseAll
А можно это сделать на хоткей? Если да, то как?


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-05-17 00:50:39 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
exec __PauseAll
Без запятой только.


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 20:00:43 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Обновил модули.
Добавил функции по работе с тайлами:
Code:
UO.SetMulPath(Path) - Установить путь к папке с *.mul файлами (map*.mul, statics*.mul, staidx*.mul, tiledata.mul). Path - строка.
UO.SetShowZ(Mode) - Установить режим отображения Z координаты в информации. 0 - отключить, 1 - включить. Mode - число.
UO.GetLandscapeTile(X, Y, Map) - Получить ИД тайла земли в координатах X,Y на карте номер Map. X, Y, Map - числа. Возвращает строку.
UO.GetStaticTiles(X, Y, Map) - Получить ИД всех тайлов статики в координатах X,Y на карте номер Map. X, Y, Map - числа. Возсращает строку.
UO.GetTileFlags(TileGroup, TileID) - Получить флаги тайла соответствующей группы (TileGroup=0 - Landscape Tile, TileGroup=1 - Static Tile). TileGroup - число, TileID - строка. Возвращает строку.
Contains(Source, Flag) - Узнать, входит ли Flag в набор Source. Source, Flag - числа. Возвращает 1 если Source содержит Flag и 0 если нет.

GetLandscapeTile возвращает информацию в формате TileID, при включенной ShowZ в формате TileID(Z)
GetStaticTiles так же, как и GetLandscapeTile, но перечисляет все тайлы статики, находящиеся в заданных координатах через запятую. Если тайлов статики не обнаружено - вернет пустую строку.
При ошибке возвращают строку -1.

Пример:
Code:
sub test_gettile()
   uo.setmulpath('E:\Ultima Online')
   uo.setshowz(1)
   uo.print('Landscape Tile ID(Z) = '+uo.getlandscapetile(4376,1119,0))
   uo.print('Array of Static Tile ID(Z) = '+uo.getstatictiles(4376,1119,0))
   uo.setshowz(0)
   uo.print('Decimal Landscape Tile ID = '+str(uo.hex2int(uo.getlandscapetile(4372,1119,0))))
   if (contains(0x12,0x10)) then
      uo.print('0x12 Have! 0x10')
   else
      uo.print('0x12 NOT have 0x10!')
   endif
   if (contains(0x9,0x10)) then
      uo.print('0x9 Have! 0x10')
   else
      uo.print('0x9 NOT have 0x10!')
   endif
end sub

Выведет в чат:
Code:
Landscape Tile ID(Z) = 0x00C4(0)
Array of Static Tile ID(Z) = 0x177C(0)
Decimal Landscape Tile ID = 218
0x12 Have! 0x10
0x9 NOT have 0x10!


Чтоб узнать, проходимый это тайл или нет:
Узнайте TileID, укажите TileGroup (земля (0) или статика (1))
Флаг проходимости тайлов 0x40
Проверьте тайл на проходимость:
Code:
if Contains(uo.hex2int(UO.GetTileFlags(TileGroup,TileID)),0x40) then
   //Непроходимый тайл
endif


Флаги УО (источник http://uo.stratics.com/heptazane/fileformats.shtml):
Code:
 0x00000001 Background
 0x00000002 Weapon
 0x00000004 Transparent
 0x00000008 Translucent
 0x00000010 Wall
 0x00000020 Damaging
 0x00000040 Impassable
 0x00000080 Wet
 0x00000100 Unknown
 0x00000200 Surface
 0x00000400 Bridge
 0x00000800 Generic/Stackable
 0x00001000 Window
 0x00002000 No Shoot
 0x00004000 Prefix A
 0x00008000 Prefix An
 0x00010000 Internal (things like hair, beards, etc)
 0x00020000 Foliage
 0x00040000 Partial Hue
 0x00080000 Unknown 1
 0x00100000 Map
 0x00200000 Container
 0x00400000 Wearable
 0x00800000 LightSource
 0x01000000 Animated
 0x02000000 No Diagonal
 0x04000000 Unknown 2
 0x08000000 Armor
 0x10000000 Roof
 0x20000000 Door
 0x40000000 StairBack
 0x80000000 StairRight


Last edited by Juicy Fruit on 2013-06-17 22:12:08, edited 3 times in total.

Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 20:33:39 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Например в заданных координатах мы проверяем тайл на статику, если есть статика и она проходимая то идем, а если статики там нет? То нужно делать еще одну проверку но уже проходимости земли а не статики?

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 20:39:38 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Думаю да. Нужно учесть еще Z координату, проверить мост ли это (думаю 0x00000400 Bridge подойдет флаг, не проверял его).
Или можно сразу проверить землю, если проходимый - проверять статику, если вода - проверять на наличие моста и т.д.


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 20:51:11 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
А Z координата чара не прокатит? Хотя помоему инжект не очень с ней дружит. Надо определиться с формулой проверки. Думаю так и будет, проверяем на статичные обьекты, обычно если есть проходимая статика на земле или воде то проход свободен, на это и будем расчитывать. И уже если объектов статики нет то будем проверять проходимость земли.

Скачал модуль, надеюсь крашить не будет, так как когда-то качал его раньше и вылетала инжа не помню даже нашли проблему или нет. И дизайн редактора тоже не изменился, едреная голубая полоска :P. Хотелось бы что нибудь не утомляющее глаз :oops: типа
Image

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 21:06:02 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
"на карте номер Map" - что за карта и что за номер? :?

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 21:15:35 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Map - это map0.mul, map1.mul, map2.mul и т.д. Индекс карты. Для клиентов, использующих дополнительные карты)
Есть сорцы твоего редактора? Могу прикрутить с дллку. Щас могу изменить только цвет, в исходники хайлайтера больше не полезу скорее всего)


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 21:25:29 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Редактор - Notepad++ :)
Вообщем мне можно писать на месте мап - 0? UO.GetStaticTiles(X, Y, 0)

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 21:29:25 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Оу)
Да, ставь 0, если не правильно будет определять - поиграйся с номером карты.
.where пишет, если карта не 0


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 21:33:29 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Та же байда осталась, жмешь лог аут, и когда вышел жмешь крестик чтобы закрыть клиент и вылетает :cry:
Image

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 21:36:00 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Теперь по скрипту, я правильно все сделал? Подхожу к дереву, пишет проходимый тайл, значит не понимает что оно непроходимый обьект?
Code:
sub Test()
  var x = uo.getx(), y = uo.gety() + 1, tileid
  tileid = uo.getstatictiles(x, y, 0)
  if contains(val(UO.GetTileFlags(1, tileid)),0x40) then
  uo.print("Непроходимый тайл!")
  else
  uo.print("Проходимый тайл!")
  end if
end sub

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 22:11:04 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Ошибка из-за того, что инжект почему-то не отлавливает одно сообщение и скриптовая дллка выгружается с ошибками, но это если на Quit жать, чтоб на крестик - не было ещё такого.
Перекачай модуль плиз, там баг был с определением флагов, теперь всё работает правильно.
И статику надо сначала разделить.
Code:
sub Test()
   uo.setmulpath('E:\Ultima Online')
   var tileid = uo.getstatictiles(uo.getx(), uo.gety() + 1, 0)
   uo.print('tileid='+tileid)
   if tileid=='' then
      uo.print('Тут нет статики.')
      return
   endif
   dim tiles[20] #20 хватит думаю
   var l=Str2Tiles(tiles,tileid)
   var i,f
   if l>0 then
      for i=0 to l-1
         f=UO.GetTileFlags(1,tiles[i])
         uo.print('tile='+tiles[i])
         uo.print('flags='+f)
         if contains(uo.hex2int(f),0x40) then
            uo.print("Непроходимый тайл!")
         else
            uo.print("Проходимый тайл!")
         end if
      next
   endif
end sub

Sub Str2Tiles(a,s)
   var i,l=len(s),b='',ptr=0
   if not l then
      return 0
   endif
   for i=0 to l-1
      if s[i]<>',' then
         b=b+s[i]
      else
         a[ptr]=b
         b=''
         ptr=ptr+1
      endif
   next
   a[ptr]=b
   ptr=ptr+1
   return ptr
end sub


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 22:12:57 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
У нас в клиенте крестик вместо Quit.

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 22:16:09 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Скачал модуль, уо не заходит, просто исчезает окно с экрана когда последний раз нажимаешь на стрелочку.

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 22:17:53 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Зашло, вылетало раз 5.

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-17 22:18:59 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Похоже вылетает если чар еще не исчез, когда исчез - заходит.

_________________
CodeSweeper


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 14 5 6 7 810 Next

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 1 guest


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