Yoko

All sides of Injection
It is currently 2024-03-29 00:55:34

All times are UTC+02:00




Post new topic  Reply to topic  [ 55 posts ]  Go to page Previous 1 2 3
Author Message
PostPosted: 2014-03-30 13:56:08 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
CxC wrote:
Juicy Fruit wrote:
Шо за Ад?)

это не ад, это кривописание :))))
насколько велика разница и есть ли смысл переписывать, вот что интересно :) если там разница в 30 мс на весь скрипт, то и смысла не вижу. На лут 50+- итемов

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


Top
   
PostPosted: 2014-03-30 14:18:33 
Offline
User avatar

Joined: 2012-12-15 12:03:25
Posts: 119
Location: C-Петербург
Incorrect User wrote:
kobol wrote:
Нет. Если у него 45 шлака + 5 нужных, то искать по типу будет только 5 раз.

Ты внимателнее читай, у тебя массив на 50 нужных тебе предметов, в трупе из этих 50 будет всего 5 но искать тебе нужно всё те же 50. Если массив на 5 то и искать будет 5 это понятно но говорили мы не об этом если что :wink: а о том почему плохо использовать поиск по массиву.

Обьясню подробнее, если предметов великое множество, типы от оружия до ресурсов то представь какой массив на всё это нужно расписать и как долго он все это будет искать. В новом инжекте есть такая функция FindList, создаешь список типов которые нужно искать и он ищет все одновременно за один раз а не по очереди как массив, но и тут для большого количества расписывать каждый тип слишком напряжно, проще заигнорить то что не нужно брать и смело лутать все остальное. FindList удобно использовать когда тебе нужно найти исключительно определенные итемы и их не особо много, за одну проверку ты ищешь все типы сразу. В общем для лута массив в любом случае не актуален.


Ну и я о том же ). Если массив нужных предметов 50, а в трупе всего 5, то конечно он будет искать 50 раз, если искать по массиву, и 5 раз если искать все.
Плохо искать по массиву, когда он большой. А когда он маленький, то искать хорошо )
А вообще, кто-нибудь сравнивал скорость поиска с работой например функции instr?
Или скорость сравнения типов перебором массива со скоростью той же instr?
Хотя задержка 600 после каждого moveitem делает все это неактуальным.


Last edited by kobol on 2014-03-30 14:23:45, edited 1 time in total.

Top
   
PostPosted: 2014-03-30 14:22:55 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Написали же, FindList есть, это все что тебе нужно, какие массивы, какой instr, забудь про это :wink:

_________________
CodeSweeper


Top
   
PostPosted: 2014-03-30 14:26:36 
Offline
User avatar

Joined: 2012-12-15 12:03:25
Posts: 119
Location: C-Петербург
Incorrect User wrote:
Написали же, FindList есть, это все что тебе нужно, какие массивы, какой instr, забудь про это :wink:


У меня теоретический интерес :lol:


Top
   
PostPosted: 2014-03-30 15:42:15 
Offline
User avatar

Joined: 2012-12-15 12:03:25
Posts: 119
Location: C-Петербург
Incorrect User wrote:
Ну смотри, 50 итемов нужно найти, в случае неудачи задержку на файндтайп ставим 100, просто задержка в пустом цикле. 100х50 = 5сек крутится твой скрипт даже если инчего в трупе нет. Если же использовать FindList например в том же пустом контейнере то результат ты получишь сразу а не через 5 сек. А так же например в списке есть итем например он десятый, то скрипт сразу же на него среагирует а не будет крутить 9 проверок типов которые идут до него. В этом же и суть лута, полутать все максимально быстро пока не полутали до тебя)


Кстати задержку в пустых циклах можно ставит 1, wait (1). Виндузе этого достаточно, чтобы впихивать свои сообщения.
А как вообще в инже (внутри инжи) организован поиск предметов? Ведь все равно используются существующие команды UO, которые передаются на сервер, а затем обрабатываются ответы сервера?


Top
   
PostPosted: 2014-03-30 15:50:28 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Дело не в том достаточно виндоусу 1 или нет, дело в том что инжект при задержке меньше 100 в пустов цикле имеет вероятность упасть :roll: И чем значение ниже тем выше шанс краша.

_________________
CodeSweeper


Top
   
PostPosted: 2014-03-30 17:37:54 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
kobol wrote:
А как вообще в инже (внутри инжи) организован поиск предметов? Ведь все равно используются существующие команды UO, которые передаются на сервер, а затем обрабатываются ответы сервера?
Все что приходит от сервера - фиксируется инжектом и сохраняется у него в памяти (в данном случае объекты).
При вызове uo.FindType и подобных - поиск ведется по сохраненным в памяти инжекта объектам, при поиске на сервер ничего не отсылается.


Top
   
PostPosted: 2014-03-30 17:54:52 
Offline
User avatar

Joined: 2012-12-15 12:03:25
Posts: 119
Location: C-Петербург
Juicy Fruit wrote:
kobol wrote:
А как вообще в инже (внутри инжи) организован поиск предметов? Ведь все равно используются существующие команды UO, которые передаются на сервер, а затем обрабатываются ответы сервера?
Все что приходит от сервера - фиксируется инжектом и сохраняется у него в памяти (в данном случае объекты).
При вызове uo.FindType и подобных - поиск ведется по сохраненным в памяти инжекта объектам, при поиске на сервер ничего не отсылается.


Так это очень быстро должно быть! :D
Только эта.. Ведь коники-то скочут все время туда-сюда. Как часто происходит обновление данных об объектах ? При любом изменении количества объектов в пределах видимости сервер отсылает информацию клиенту автоматом?
Не, это и так понятно, что информация на клиенте всегда актуальная, иначе бы играть было невозможно.

А кнопка TWI тут как-то задействована?

Скорость исполнения цикла в скрипте и цикла внутри инжи сильно отличаются? Вроде говорили что не сильно. Хотя..)


Last edited by kobol on 2014-03-30 18:05:43, edited 1 time in total.

Top
   
PostPosted: 2014-03-30 18:05:35 
Offline

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

В инжекте быстрее, но это в больших циклах и визуально врятли будет заметна разница. счет там скорее на мс идет.
Просто инжектом проводить поиск надежнее, вся инфа для поиска собрана, если что-то пошло не так - поисковая функция сообщит в самом начале. Малоли что юзер там напишет в скрипте, допустим на тот же поиск ближнего объекта к игроку на земле, все проверки зашиты в функции инжекта.


Top
   
PostPosted: 2014-03-30 18:28:56 
Offline
User avatar

Joined: 2012-12-15 12:03:25
Posts: 119
Location: C-Петербург
Понятно. По скорости получается сопоставимо, тем более задержка после moveitem всю разницу съедает.
В общем чтобы надуть конкурента по луту, надо дропнуть в труп 10-20 кучек по 6 гп. Пусть их подбирает )))


Top
   
PostPosted: 2014-03-30 18:34:33 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
kobol wrote:
более задержка после moveitem всю разницу съедает.

Ну, задержка после мув итем есть только тогда когда что-то нашел иначе задержка только 100

_________________
CodeSweeper


Top
   
PostPosted: 2014-03-30 18:41:41 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
kobol wrote:
Понятно. По скорости получается сопоставимо, тем более задержка после moveitem всю разницу съедает.
В общем чтобы надуть конкурента по луту, надо дропнуть в труп 10-20 кучек по 6 гп. Пусть их подбирает )))
Каким образом?) Если задержки на лут нет - лути с 50 задержкой :D Если есть теряешь время на дроп гп вместо лута нужного)


Top
   
PostPosted: 2014-03-30 19:06:51 
Offline
User avatar

Joined: 2012-12-15 12:03:25
Posts: 119
Location: C-Петербург
Incorrect User wrote:
kobol wrote:
более задержка после moveitem всю разницу съедает.

Ну, задержка после мув итем есть только тогда когда что-то нашел иначе задержка только 100


Тогда получится все по- честному. Первый нашел -тянет, пока он тянет - второй нашел. Даниель-Леман, Даниель - Леман. )))


Top
   
PostPosted: 2014-03-30 19:33:32 
Offline
User avatar

Joined: 2012-12-15 12:03:25
Posts: 119
Location: C-Петербург
Juicy Fruit wrote:
kobol wrote:
Понятно. По скорости получается сопоставимо, тем более задержка после moveitem всю разницу съедает.
В общем чтобы надуть конкурента по луту, надо дропнуть в труп 10-20 кучек по 6 гп. Пусть их подбирает )))
Каким образом?) Если задержки на лут нет - лути с 50 задержкой :D Если есть теряешь время на дроп гп вместо лута нужного)


На DRW задержка есть. И на drop тоже 600, поэтому не получится так обмануть)


Top
   
PostPosted: 2014-03-31 15:46:49 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Juicy Fruit wrote:
Ага, в последней версии список упорядочен и обрабатывается быстрее, чем скриптом (там разница в мс, но всеже :D)
Code:
UO.FindCount('finditem')
Шо за Ад?) У нее нет параметров)
И uo.FindType()/uo.FindList() теперь возвращают серийник, можешь сделать while uo.FindType(...)

ЭЭэ :twisted:
:mrgreen:
Когда писали так надо было :) Просто если я щаз свой лут полностью обновлю на актуальную версию инжекта он не будет у многих работать ИМХО :) Хотя из вредности надо попробовать :)
Сам поиск типа занимает доли секунды. Другое дело что работает именно серверная пауза на перемещение. ТАк что найти можно сразу все а вот двигать только что нужно в первую очередь.
У меня в старом луте несколько сотен предметов. Он каждый раз начиная с 0001 0002 двигается до скажем 0004 лутит его потом опять с 0001 0002... Лут 10 предметов из сумки с 255 предметами занимает 10*300+ - 10 мсек
Скан вокруг чара зверьков с растоянием 20 тайлов работает на полсекунды дольше :)

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 55 posts ]  Go to page Previous 1 2 3

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 11 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