
Injection 2012
Moderators: Murderator+, Murderator
Мне нужно будет для тестирования пару шардов со свежими или относительно свежие клиенты. Кроме того, там где я смогу уделять время для инжекта отсутствует интернет. Мне с собой взять RunUO или что?
I would need for testing some shards with up-to-date or relatively modern clients. Also place where I could develope code has no internet connection. So should I take RunUO with me or what?
I would need for testing some shards with up-to-date or relatively modern clients. Also place where I could develope code has no internet connection. So should I take RunUO with me or what?
nexuser wrote:I posted few days ago a message regarding the new gump protocol, this would be a nice feature to implement (http://forum.yoko.com.ua/viewtopic.php?t=14232)
Could be done with packets description generousely passed by Grin.
nexuser wrote:As a computer engineer, i'm an expert c++ programmer so I'd love to help you and develop new features using the source code.
I'd love to use Python to script and develop new powerful macros, i'd love to extend the features with some sort of plugin system. Python would be an advanced parser, with plenty of built in functions (math, string, I/o, database access, ecc...)
You are gladly welcome. Get standard sources from sf.net, there are also all files related to script.dll interface. It is quite easy to implement plugin for any language I think. Some time ago it was done for LUA language as I remember, you could do best for Python.
nexuser wrote:Would be also nice to have some sort of dump of the client-server communications to be able to post it to the developers.
I always was next to your hand - checkbox "Verbose log". Look for text file in Injection folder afterwards.
nexuser wrote:Another inj-like program, Razor, has some interesting features i'd like to see inj.. Finally, Easy uo can obtain the further properties of an object, it would be nice to be able to obtain them...
The problem is I definetely have no time to research new features of similar to Injection projects. If you can do some scoop for me, it would be quite handy.[/quote]
Toren wrote:Очень хотелось, чтобы была раскрыта информация, необходимая для написания стороннего скриптового модуля. Т.е. что он должен экспортировать, порядок взаимодействия с основным модулем инжекта и.т.д. В свое время разбирал исходники старого инжекта, лежавшие на сайте, но потом подумал что стык со скриптовым модулем мог быть сильно изменен с тех пор... Больше в открытом доступе информации не нашел.
а большего никогда и не было. у меня лично руки в своё время недошли (только добавил убивание скрипта).
Grin wrote:Кстати лаунчер надо привязать не к длине и чексумме, а к дате создания клиента (та что в File Header)
Можно, но тогда собирайте информацию по всем тем десяткам клиентов что уже были добавлены в Ignition.cfg.
Кроме того подход игнишина был идеологически корректным - проверялось однозначное соотвествие клиента прежде чем лезть ему в мозк. Хотя понимаю что с большим количеством самопальных патчей это стало неудобным.
Grin wrote:Кстати лаунчер надо привязать не к длине и чексумме, а к дате создания клиента (та что в File Header)
Можно, но тогда собирайте информацию по всем тем десяткам клиентов что уже были добавлены в Ignition.cfg.
Кроме того подход игнишина был идеологически корректным - проверялось однозначное соотвествие клиента прежде чем лезть ему в мозк. Хотя понимаю что с большим количеством самопальных патчей это стало неудобным.
Millerbeer wrote:Ещё реализацию задержек в инжекте хотелось бы поправить. Я в этих делах особо не разбираюсь, поэтому расскажу по ламерски, на пальцах.
Все рассуждения абсолютно корректны.
Обьяснить поведение могу только тем что инжект видимо изначально писался как однопоточная программа. Поэтому любая задержка средствами инжекта (не скриптового модуля) приводит к останавливанию всего - и клиента и инжекта.
Когда поверх инжекта накрутили многопоточный скриптовый модуль это не добавило ему здоровья, но как минимум позволило задержкам работать нормально. К покупкам это возможно тяжело прикрутить, но попробуйте чтото переписать в виде скрипта.
Kynep wrote:Йоко, подскажи плиз, как скомпилить исходники с sf.net? Что то у меня не получаетсяVC++ 2008.
Да..., и можно что то сделать с ресендом... убрать совсем, либо сделать пореже...
MSVS6 - сначала собрать оригинальные, потом перезаписать сверху модифицированными файлами и снова собрать.
проблема с ресендом одна из тех что предстоит решить. что-то не срослось когда были добавлены команды для ходьбы.
Yoko wrote:Мне нужно будет для тестирования пару шардов со свежими или относительно свежие клиенты. Кроме того, там где я смогу уделять время для инжекта отсутствует интернет. Мне с собой взять RunUO или что?
I would need for testing some shards with up-to-date or relatively modern clients. Also place where I could develope code has no internet connection. So should I take RunUO with me or what?
Качай RunUO 2.0 с сайта полным пакетом, там в плодь до КР поддерживается.
Yoko wrote:MSVS6 - сначала собрать оригинальные, потом перезаписать сверху модифицированными файлами и снова собрать.
Долго думал(сколько? можно посмотреть по дате поста) что все это значит




Есть findtype(), findcount() и 'finditem'. И есть куча "хочется получше".
Я конечно понимаю, что эти функции можно и в скрипте сделать, но так хочется, чтобы это сделал кто-нибудь другой.
- FindType ищет, либо по определённому типу, либо всё - возможно ли использовать, ну-у... незнаю как сказать.. диапазон, или что-то подобное. Например:Если нет, то и не надо.
Code: Select all
dim type[2]
type[0]='0x0190'
type[1]='0x0191'
uo.findtype(type[0]-type[1], -1,'ground') - FindCount() - это количество найденных вещей. Можно ли немного её усовершенствовать? FindCount(type) Например:
Code: Select all
dim type[2]
type[0]='0x0190'
type[1]='0x0191'
uo.findtype(type[0]-type[1], -1,'ground')
uo.print(str(uo.findcount(type[1]))) - 'FindItem' - последний найденный объект. А можно ли сделать возможность выбора - первый, второй или предпоследний? Может добавить функцию типа uo.numfindtype(type[0],num)Например:
Code: Select all
type[0]='0x0190'
type[1]='0x0191'
uo.findtype(type[0]-type[1], -1,'ground')
uo.print(str(uo.findcount(type[1])))
if uo.findcount(type[0])>=5 then
for var a=0 to uo.findcount(type[0])
ID[a]=uo.getserial(uo.numfindtype(type[0],a+1))
next
Я конечно понимаю, что эти функции можно и в скрипте сделать, но так хочется, чтобы это сделал кто-нибудь другой.

Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Kynep wrote:Yoko wrote:MSVS6 - сначала собрать оригинальные, потом перезаписать сверху модифицированными файлами и снова собрать.
Долго думал(сколько? можно посмотреть по дате поста) что все это значит![]()
![]()
но вчера скомпилил наконец
Спасибо! Подскажи, как скомпилить script.dll, С++Builder ставить? Да..., я надеюсь в новой версии Инжекта останется поддержка старых клиентов... спасибо!
адназначна. Borland C++ Builder v. 5x насколько я помню (или 4х?)
ADEPT_ABP wrote:Есть findtype(), findcount() и 'finditem'. И есть куча "хочется получше".
я когдато пробовал "на скорую руку" сделать такое нововведение, однако куча крешей меня убедили что тут нужен систематический подход на который времени небыло. посему пока что сделай себе функции которые делают то же самое через стандартную связку find+ignore