Вар пак.

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Вар пак.

Post by Incorrect User »

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

Re: Вар пак.

Post by Incorrect User »

Наверное плохая идея? Я не могу понять как будет определяться количество вещей в контейнере на земле(точнее стоит ящик и в нем мешок), и как определять количество вещей только в сумке которая в паке а не в бекпаке включительно. Если с этим ничего не выйдет можно тогда сделать просто предварительно накидав на пол ресов чтобы соберал сколько нужно в мешок, например 10 паков собрать и когда нужно будет пополнить вар пак просто брать новый а из старого все выгружать в общую кучу.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Вар пак.

Post by Mirage »

Ищем тип реагента кровавый мох
если нашли смотрим контейнер в котором он лежит. Если контейнер не равен указанной сумке игнорим.
в противном случае считаем количество.
Двигаем реагент и получаем краш :lol:


Технически сделать возможно. Практически - геморойно.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Вар пак.

Post by Incorrect User »

А краш от чего?
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Вар пак.

Post by ZeroDX »

А зачем искать в паке? Если мешок указывается прицелом, то в можно только в нём и ковыряться.
Кстати насчёт бага. если сделать игнор резет, а потом двигать - краш?
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Re: Вар пак.

Post by Nmy »

Можно переделать это
Обычно в пвп делал так - добирал ресы, делал релог. если не креш от мовеитем то долго его ждать не придётся
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Вар пак.

Post by Mirage »

хм...
Хороший вопрос.
Смотри 2 скрипта:
В паке сундук который мышкой перемещается.

Code: Select all

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: Select all

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: Select all

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
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Вар пак.

Post by ZeroDX »

то есть можно смело забить на баг, если сразу резетить? игнорить надо... как ещё посчитать 2 стака однотипных предметов в контейнере на земле?
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Вар пак.

Post by Juicy Fruit »

Через uo.forget(obj) и чтоб восстановить предметы в памяти на земле – uo.resend(), в контейнере – юзануть контейнер.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Вар пак.

Post by ZeroDX »

Проблемм никаких не было я их придумал. скрипт рабочий

Code: Select all

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.
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Re: Вар пак.

Post by Nmy »

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


что то, где то не успевает.
между строк надо прописать wait(200) и проверить
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Вар пак.

Post by Mirage »

с секундой тестил - борода.

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