по поводу памяти которую жрёт инжа со временем

General Injection issues

Moderators: Murderator+, Murderator

Post Reply
meidan
Posts: 16
Joined: 2005-02-13 03:03:52

по поводу памяти которую жрёт инжа со временем

Post by meidan »

поиск результатов не дал.
скрипт кидать не буду - т.к. он всеравно взят с форума урезан и немного переделан под шард с добавлением использования EasyUO (изя ходит - командует инже копать и кидать) инжект только выполнет копание вокруг себя и выкидывание в сундук.
мининг или ламбер не важно.
через час работы уже берёт 100 метров кеша винды
к утру все 300-500 метров. (клиент 3.0.0с с LowCPU - кстати очень помогло)
НЕюзает поиски тайлов - просто обкапывает вокруг себя.
ходит домой пешком изей - кидает в сундук инжой и все.
но памяти жрёт ДОФИГА.
люди есть какое-то решение проблемы? или как хоть это объяснется?
а то совсем грустно.
или может есть какая-то комманда - при которой он освобождает кэш?

вот модули инжы:

Code: Select all

sub mine()
UO.DeleteJournal()
var x, y, i, tmp, inside, goto_x, st, first
st=0
first=UO.GetX()
start:
inside=0
y=-3
for y=-1 to 1
x=-3
for x=-1 to 1
try:
if UO.Hidden()==0 then
UO.Exec ("useskill Hiding")
i=0
while UO.Hidden()<> 1 and i<10
i=i+1
wait (500)
wend
endif
UO.Exec ("waittargettile "+" 1340 "+STR(UO.GEtX()+x)+" "+STR(UO.GetY()+y)+" 0")
UO.exec ("usetype 0x0F39")
#UO.Print (""+STR(x))
#UO.Print (""+STR(y))
i=0
while i< 100
if UO.InJournal("Вы не смогли") or UO.InJournal("You loosen") then
 wait (1000)
 i=200
 UO.DeleteJournal()
 goto try
endif
if UO.InJournal("You put") then
 i=200
 UO.DeleteJournal()
 goto try
endif
if UO.InJournal("You must wait to perform another action") then
 wait (1000)
 i=200
 UO.DeleteJournal()
 goto try
endif
if UO.InJournal("There is nothing here to mine") or UO.InJournal("Try mining") then
wait (1000)
 i=200
 UO.DeleteJournal()
endif
if UO.InJournal("You have no line of sight to that location") then
 wait (1000)
 i=200
 UO.DeleteJournal()
endif
wait (1000)
i=i+1
wend
next
next

uo.SetEasyUO(3,"1")

goto start
end sub

и второй на выкидывание.

sub drop() ####### DROP ######################

UO.Exec ("setreceivingcontainer 0x400053D3")

while UO.Count ("0x1BE9") > 0
uo.exec("findtype 0x1BE9")
UO.Exec ("grab 500 finditem")
wait (700)
wend

while UO.Count ("0x1BF5") > 0
uo.exec("findtype 0x1BF5")
UO.Exec ("grab 500 finditem")
wait (700)
wend

while UO.Count ("0x0EED") > 0
uo.exec("findtype 0x0EED")
UO.Exec ("grab 500 finditem")
wait (700)
wend

while UO.Count ("0x1BEF") > 0
uo.exec("findtype 0x1BEF")
UO.Exec ("grab 500 finditem")
wait (700)
wend

while UO.Count ("0x0f8c") > 0
uo.exec("findtype 0x0f8c")
UO.Exec ("grab 500 finditem")
wait (700)
wend

while UO.Count ("0x0F29") > 0
uo.exec("findtype 0x0F29")
UO.Exec ("grab 500 finditem")
wait (700)
wend

UO.Exec ("unsetreceivingcontainer")
uo.SetEasyUO(3,"1")

end sub ######## DROP ######################

мож его урезать надо? или "причесать"?
вас нагружать не хочу. поэтому прошу лишь подсказки/совета

ОГРОМНОЕ СПАСИБО ЗАРАНЕЕ
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Скорее всего у тя такая шняго, что есть саб, который постоянно используется как вызываемая процедура, а в этой процедуре есть строчка var тырыпыры... Тоесть получается что инжект постоянно создаёт всё новые и новые переменные, а старые не чистит...
DerMeister сейчас на нейрале!
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Я думаю, что дело в переходах goto внутри и наружу циклов for и while. Скрипт просмотрел наискосок, хочешь чтобы его изучали нормально - запости как следует, используя теги для кода и отступы для уровней.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
meidan
Posts: 16
Joined: 2005-02-13 03:03:52

Post by meidan »

DerMeister =) wrote:Скорее всего у тя такая шняго, что есть саб, который постоянно используется как вызываемая процедура, а в этой процедуре есть строчка var тырыпыры... Тоесть получается что инжект постоянно создаёт всё новые и новые переменные, а старые не чистит...

прошу прощения зе делитантский вопрос. а как их можно уничтожать?

Edred wrote:Я думаю, что дело в переходах goto внутри и наружу циклов for и while. Скрипт просмотрел наискосок, хочешь чтобы его изучали нормально - запости как следует, используя теги для кода и отступы для уровней.

прошу прощения. обязательно учту. спасибо за совет.
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

meidan wrote:
DerMeister =) wrote:Скорее всего у тя такая шняго, что есть саб, который постоянно используется как вызываемая процедура, а в этой процедуре есть строчка var тырыпыры... Тоесть получается что инжект постоянно создаёт всё новые и новые переменные, а старые не чистит...

прошу прощения зе делитантский вопрос. а как их можно уничтожать?

Выведи все var тырыпыры за сабы + учти чо, что тебе Едред подсказал...
ЗЫ: Перезоди на пинжект, там с этим проблем нет...
DerMeister сейчас на нейрале!
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

DerMeister =) wrote:Выведи все var тырыпыры


Ты бы хоть на его скрипты взглянул. Там вообще практически переменных нет. И не жрут они так память. Память от переменных не высвобождается только если скрипт прерывать по terminate, при нормальном завершении - все освобождается.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
meidan
Posts: 16
Joined: 2005-02-13 03:03:52

Post by meidan »

люди. продолжим тему?
я тут решил детально разобраться. оказывается скрипт тут нипричём.
я запускаю УО. начинаю бегать - просто бегать на 3 экрана туда-сюда
и слежу за КЭШ памятью(виндозный файл подкачки) в "Диспетчере задач" и заметил что на 1 экран уходит от 0,5 до 2 метров загрузки и выгрузка всего процентов 10%
пробовал галочки инжекта ставить-снимать - эффекта 0.
менял версии инжы. то же самое.
думаете пинжект изменит что-то?
ведь в пинжекте только языковый модуль меняется.
сама инжа та-же вроде.

есть мысли?
заранее спасибо.
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Пинжект был тее предложен из -за догадки что проблема в скрипте...
Поможет только соскриптами и ничем больше.
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

При появлении объекта на экране инжект сохраняет его у себя в памяти, любой поиск происходит именно в ней, а не на экране как считают многие. Иногда сервер дает команду удалить объект, но это происходит не всегда(1/100). Например, израсходовал ресурс.

В результате память растет как на дрожжах, особенно на серверах где любят делать красиво динамическими объектами.
meidan
Posts: 16
Joined: 2005-02-13 03:03:52

Post by meidan »

omi4 wrote:При появлении объекта на экране инжект сохраняет его у себя в памяти, любой поиск происходит именно в ней, а не на экране как считают многие. Иногда сервер дает команду удалить объект, но это происходит не всегда(1/100). Например, израсходовал ресурс.

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

и никак это не победить? :(
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

почему никак;)
Страно только одно что трек ворлдитем тебе не помог...
а так было несколько команд для чистки "левых" объектов
,forget far и тд
и чтото еще с флешем;)
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Ворлдитем и не должен помогать. Он следит за дистанцией до объекта, а удалять он не может.
Есть такая мысль что он вычисляет расстояние до всех объектов хранимых инжой…

Удаление объектов командой возможна только теоретически, объектов тысячи…
Отлов, сортировка и удаление с помощью скрипта практически не реализуема.
meidan
Posts: 16
Joined: 2005-02-13 03:03:52

Post by meidan »

то есть лекарства нет в принципе?
или может возможно сделать скрипт, который удалит ВСЕ обьекты. а я потом в нём же пропишу нужные. и в цикл его. по необходимости.
как думаете реально? в смысле - реализуемо?
если да. то какими командыми?

и ещё раз спасибо за Ваше время.
meidan
Posts: 16
Joined: 2005-02-13 03:03:52

Post by meidan »

P.S. ,Forget far
проверил... первый раз слетел клиент. потом просто не работает.
инжа 312.
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

;) Не изучал механизм трека, н опо логике как раз он и должен был бы отвечать за за пись объектов в свою память;) Инче без ТВИ как мы знаем макросить почти не возможно так как индект не знает даже то что у нас в паке лежит;) и проблема не в дистанции;) Помнится чтото было со збросом памяти итемов на в кладке мейн даже кнопка была...
Post Reply