Yoko

All sides of Injection
It is currently 2024-03-29 10:12:07

All times are UTC+02:00




Post new topic  Reply to topic  [ 12 posts ] 
Author Message
 Post subject: Вар пак.
PostPosted: 2012-12-18 05:46:59 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Не нашел подобного, нужно чтобы скрипт:
1. Просил указать сумку в бекпаке которая будет являться варпаком.
2. Проверял наличие/количество в указанной сумке нужных ресурсов по порядку, и при необходимости если количество превышает нужное убирал лишнее в ящик с ресурсами а того что нехватает или отсутсвует добирал из ящика.
3. По возможности чтобы он раскладывал все по нужным местам мешка.

_________________
CodeSweeper


Top
   
 Post subject: Re: Вар пак.
PostPosted: 2012-12-18 06:29:27 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Наверное плохая идея? Я не могу понять как будет определяться количество вещей в контейнере на земле(точнее стоит ящик и в нем мешок), и как определять количество вещей только в сумке которая в паке а не в бекпаке включительно. Если с этим ничего не выйдет можно тогда сделать просто предварительно накидав на пол ресов чтобы соберал сколько нужно в мешок, например 10 паков собрать и когда нужно будет пополнить вар пак просто брать новый а из старого все выгружать в общую кучу.

_________________
CodeSweeper


Top
   
 Post subject: Re: Вар пак.
PostPosted: 2012-12-18 07:06:33 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Ищем тип реагента кровавый мох
если нашли смотрим контейнер в котором он лежит. Если контейнер не равен указанной сумке игнорим.
в противном случае считаем количество.
Двигаем реагент и получаем краш :lol:


Технически сделать возможно. Практически - геморойно.

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


Top
   
 Post subject: Re: Вар пак.
PostPosted: 2012-12-18 07:12:27 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
А краш от чего?

_________________
CodeSweeper


Top
   
 Post subject: Re: Вар пак.
PostPosted: 2012-12-18 11:07:46 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
А зачем искать в паке? Если мешок указывается прицелом, то в можно только в нём и ковыряться.
Кстати насчёт бага. если сделать игнор резет, а потом двигать - краш?


Top
   
 Post subject: Re: Вар пак.
PostPosted: 2012-12-18 12:10:50 
Offline
Expert!
User avatar

Joined: 2005-09-14 15:31:58
Posts: 2152
Location: Latvia
Можно переделать это
Обычно в пвп делал так - добирал ресы, делал релог. если не креш от мовеитем то долго его ждать не придётся

_________________
Уроки языка Injection
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net


Top
   
 Post subject: Re: Вар пак.
PostPosted: 2012-12-18 13:01:36 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
хм...
Хороший вопрос.
Смотри 2 скрипта:
В паке сундук который мышкой перемещается.

Code:
sub main()
VAR object = '0x40C9E2D2'
    uo.ignore(object)  ; тут игнорируем объект по ID
   uo.findtype('0x09AA','-1','backpack')
   if uo.findcount() then
      uo.moveitem('finditem','0','backpack')
   else
      uo.print('Нет предмета')
   endif
end sub
sub reset()
    UO.IgnoreReset()
end sub

При запуске main - пишет что предмета нет и не двигает. НО мышкой перемещается сундучек и клиент не падает. Запускаем reset() и коментируем строку с игнором - main() двигает сундук по паку.

НО!!!
Code:
sub main()
VAR object = '0x40C9E2D2'
   uo.ignore(object)
   UO.IgnoreReset()
   uo.findtype('0x09AA','-1','backpack')
   if uo.findcount() then
      uo.moveitem('finditem','0','backpack')
   else
      uo.print('Нет предмета')
   endif
end sub

Вот такая конструкция 100% смертельна для клиента. Сундучок не двигается. При перемещении мышкой 100% падение.
Ушел учить матчасть...


PS у меня добор был вот так организован (я не пвп игрок я добирал только реги)




Code:
sub dobor_regs()
var n, x, y = 50, z, timemove
var BEKBag = '0x40FAAB3F'
var REGBag = '0x40FA9EA6'
Dim r[8]
r[1] = '0x0F88'
r[2] = '0x0F86'
r[3] = '0x0F8D'
r[4] = '0x0F8C'
r[5] = '0x0F84'
r[6] = '0x0F85'
r[7] = '0x0F7B'
r[8] = '0x0F7A'

uo.useobject(BEKBag)
   wait(300)
uo.useobject(REGBag)
   wait(300)
For n = 1 To 8
   UO.FindType( r[n] , -1 ,'my')
x = UO.GetQuantity('finditem')

if x>y then
z = x - y
   UO.FindType( r[n] , -1 ,'my')
      timemove=UO.Timer()
      while UO.ContainerOf( UO.GetSerial('finditem') )==BEKBag && timemove+20>UO.Timer()
         UO.MoveItem( 'finditem', str(z) , REGBag)
         wait(300)
      wend
endif
if x<y then
z = y - x
   UO.FindType( r[n] , -1 ,REGBag)
      timemove=UO.Timer()
      while UO.ContainerOf( UO.GetSerial('finditem') )==REGBag && timemove+20>UO.Timer()
         UO.MoveItem( 'finditem', str(z) , BEKBag)
         wait(300)
      wend
endif
next
end sub

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


Top
   
 Post subject: Re: Вар пак.
PostPosted: 2012-12-18 14:24:21 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
то есть можно смело забить на баг, если сразу резетить? игнорить надо... как ещё посчитать 2 стака однотипных предметов в контейнере на земле?


Top
   
 Post subject: Re: Вар пак.
PostPosted: 2012-12-18 14:36:44 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Через uo.forget(obj) и чтоб восстановить предметы в памяти на земле – uo.resend(), в контейнере – юзануть контейнер.


Top
   
 Post subject: Re: Вар пак.
PostPosted: 2012-12-18 15:25:41 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Проблемм никаких не было я их придумал. скрипт рабочий
Code:
sub warpack()
    var i, type, need_count, move_count, from, where, string
    dim array[20]
        array[1] = "0x0F7A 025" ;bp
        array[2] = "0x0F7B 025" ;bm
        array[3] = "0x0F84 055" ;ga
        array[4] = "0x0F85 025" ;gs
        array[5] = "0x0F86 055" ;mr
        array[6] = "0x0F88 045" ;ns
        array[7] = "0x0F8C 055" ;ss
        array[8] = "0x0F8D 025" ;sa
        array[9] = "0x1F49 010" ;scroll greater heal
        array[10] = "0x1F44 010" ;scroll wall of stone
        array[11] = "0x1F42 010" ;scroll teleport
        array[12] = "0x1F50 010" ;scroll reflection
        array[13] = "0x1F4A 010" ;scroll lighting
        array[14] = "0x1F52 010" ;scroll paralyze
        array[15] = "0x1F5F 010" ;scroll flame strike
        array[16] = "0x1F68 010" ;scroll summon air elemental
        array[17] = "0x0F09 005" ;total mana refresh
        array[18] = "0x0F08 005" ;invisibility
        array[19] = "0x0F0C 005" ;greater heal
        array[20] = "0x0E21 150" ;bandages
    if uo.targeting() then
        uo.canceltarget()
    end if
    uo.addobject("war_pack")
    uo.print("war pack")
    while uo.targeting()
        wait(100)
    wend
    uo.addobject("res_cont")
    uo.print("resource container")
    while uo.targeting()
        wait(100)
    wend
    for i = 1 to 20
        uo.textprint("iteration " + str(i))
        string = array[i]
        type = left(string, 6)
        need_count = val(right(string, 3))
        repeat
            move_count = need_count - getcount(type, -1, "war_pack")   
            if move_count <> 0 then
                if move_count > 0 then
                    from = uo.getserial("res_cont")
                    where = uo.getserial("war_pack")
                end if
                if move_count < 0 then
                    from = uo.getserial("war_pack")
                    where = uo.getserial("res_cont")
                end if
                uo.findtype(type, -1, from)
                if move_count > 0 and not uo.findcount() then
                    uo.print("zhopa31400! " + str(i))
                    move_count = 0
                else
                    uo.moveitem("finditem", abs(move_count), where)
                    wait(1000)
                end if
            end if
        until move_count == 0
    next
    uo.print("Done!")
end sub

sub abs(val)
    if val < 0 then
        return -val
    else
        return val
    end if
end sub

sub getcount(type, color, container)
    var count = 0
    repeat
        uo.findtype(type, color, container)
        if uo.findcount() then
            count = count + uo.getquantity("finditem")
            uo.ignore("finditem")
        end if
    until not uo.findcount()
    uo.ignorereset()
    return count
end sub


Last edited by ZeroDX on 2012-12-19 14:19:23, edited 1 time in total.

Top
   
 Post subject: Re: Вар пак.
PostPosted: 2012-12-18 15:55:19 
Offline
Expert!
User avatar

Joined: 2005-09-14 15:31:58
Posts: 2152
Location: Latvia
Quote:
Вот такая конструкция 100% смертельна для клиента. Сундучок не двигается. При перемещении мышкой 100% падение.
Ушел учить матчасть...


что то, где то не успевает.
между строк надо прописать wait(200) и проверить

_________________
Уроки языка Injection
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net


Top
   
 Post subject: Re: Вар пак.
PostPosted: 2012-12-18 17:20:58 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
с секундой тестил - борода.

Обновление.
На рабочем Core E6600 с 8 гегами памяти инжект с дефолтным клиентом 2.0.3 вылетает стабильно.
Дома core i7 с 8 гегами памяти и клиентом с пониженной нагрузкой работает без крашей вышеприведенный скрипт без пауз. Мистика и провокация. В общем чтобы не падало прикручивайте ядра и пилите клиент...

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 12 posts ] 

All times are UTC+02:00


Who is online

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