Gromiz wrote:а "мультитть" клиент инжектом научите автоматом?
Если только кнопочку сделать в лаунчере, что–то типо «сделать мульти») это рассматривалось, но пока что не делали)
Moderators: Murderator+, Murderator
Gromiz wrote:а "мультитть" клиент инжектом научите автоматом?
Андрюха из Одессы wrote:Есть ли возможность запилить передачу информации из клиента в журнал инжекта, без костылей, как хотелось реализовать здесь?
Еще бы радовала возможность сворачивать условия, циклы, массивы или целые скрипты, если много скриптов в одном файле. Либо сделать интеграцию в notepad++ или sublime text.
Code: Select all
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 если нет.
Code: Select all
sub Test()
uo.setmulpath('E:\Ultima Online') #Путь к мулам
UO.SetShowZ(true)
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 хватит думаю
dim tinfo[2] #Буффер для tile_id, tile_z
var l=Str2Tiles(tiles,tileid)
var i
if l>0 then
for i=0 to l-1
if (tiles[i]==tree_tile) then
Str2IDZ(tinfo,tiles[i])
#Это тайл дерева, пишем его в файл или куда-то там в формате (tinfo[0] X Y tinfo[1])
#tinfo[0] - это TileID, tinfo[1] - это TileZ
endif
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
Sub Str2IDZ(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]<>'(' and s[i]<>')' then
b=b+s[i]
else
a[ptr]=b
b=''
ptr=ptr+1
endif
next
return ptr
end sub
Mirage wrote:эммм парни, а куда вы дели запятую перед командами?
Juicy Fruit wrote:Ага, он теперь _
В конфиге поменяй на старый, это для новых клиентов, там с , пишет в чат))
CxC wrote:Mirage wrote:эммм парни, а куда вы дели запятую перед командами?Juicy Fruit wrote:Ага, он теперь _
В конфиге поменяй на старый, это для новых клиентов, там с , пишет в чат))
это где что поменять?
CxC wrote:реализуема как "On\Off Hokeys"? Половина клавиатуры биндов, писать в игре крайне неудобно. А так бы снял галочку и пиши, поставил - бегай ) Если б еще это и через команду вкл\выкл - вообще шикарно
VeL wrote:В версии 1308.08 появился досадный баг, после перемещения предмета из одного места в другое, через некоторое время перемещенный предмет отрисовывается на старом месте, например кидаю через massmove предметы из пака в контейнер, после переброски некоторые предметы как бы лежат в паке, но на самом деле их там нет, при повторном открытии пака они исчезают.
Code: Select all
sub DeedCond()
var name, ob = '0x4036E779', X=300 ; минимальное количество
UO.TextOpen()
UO.TextClear()
uo.DeleteJournal( )
UO.Click( ob )
wait(1000)
name = UO.GetName( ob )
name = explode (name, ' Gold', 0)
name = explode (name, 'on ', 1)
if val(name) < X then
UO.Print( name )
else
UO.TextPrint( 'Чеее?!?!?!? Нет денег!!!!!' )
endif
endsub
sub ItemCond()
var name, ob = '0x40E34CC4', X=50
UO.TextOpen()
UO.TextClear()
uo.DeleteJournal( )
UO.Click( ob )
wait(1000)
name = UO.GetName( ob )
name = explode (name, '[', 1)
name = explode (name, ']', 0)
if val(name) == X then
UO.TextPrint( name )
else
UO.TextPrint( 'чё то не так' )
endif
endsub
Sub explode( string, pattern, num )
var i, counter = 0, entry = 0
for i=0 to strlen( string ) -strlen( pattern )
if mid( string, i, strlen( pattern ) ) == pattern then
counter = counter + 1
if num == counter-1 then
return mid( string, entry, i-entry )
endif
entry = i + strlen( pattern )
endif
next
if entry == 0 then
return false
endif
return mid( string, entry, strlen(string)-entry )
endsub
Dear yoko, thankyou for you great efforts on uo and injection,
i just wanna ask you if it is possible todo or not adding fallowing function on injection.
adding a send packet command with usage scripting function thus, some servers have connector software and this software send special packets to confirmation and stay connected just after choosing character and logging into world, if adding send packet command we can write and small script and can fake this msj to use injection and its benefits.
Regards.
here is the example data sending from connector to server via client.
18:30:40.326 Client -> Server: 0x12 (Macro/Cast), frequ: 4, len: 0x6F
0000: 12 6F 00 FB 39 38 33 32 63 39 63 33 61 30 31 37 ->.o..9832c9c3a017
0010: 66 39 34 30 30 36 39 63 62 32 65 61 34 33 63 64 ->f940069cb2ea43cd
0020: 62 64 38 30 36 62 33 61 64 64 36 30 2C 32 38 37 ->bd806b3add60,287
0030: 66 37 39 38 30 62 32 39 31 64 64 37 39 39 31 35 ->f7980b291dd79915
0040: 30 62 62 62 65 64 62 33 39 62 64 30 61 31 35 66 ->0bbbedb39bd0a15f
0050: 34 34 32 61 65 2C 30 30 30 36 37 32 36 36 30 30 ->442ae,0006726600
0060: 30 30 30 30 30 30 30 30 30 30 30 30 30 30 00 ->00000000000000.