Page 1 of 2

Подсчет денег в окошке.

Posted: 2005-02-02 13:56:46
by GimFlex
Дорогие скриптеры у меня к вам вопрос можно ли написать скрипт чтобы считал деньги в окошке когда происходит обмен между двумя чарами. Просто не раз сталкивался с проблеммой вендора нету, а если продавать дорогие вещи стоимостью больше 500к то возникает проблемма с подсчетеом денег в окошке они все накладываются друг на друга буду признателен если поможете в написании скрипта или хотя бы подкините идейку с чего начать.

Posted: 2005-02-02 17:36:36
by GimFlex
ребят ну хоть подскажите чтобы подсчитывал число гп в мешочке

Posted: 2005-02-02 18:59:59
by Savage
Это на отсчитывание необходимой суммы и перекладывания ее в поунч.

С твоей задачей надо подумать...

Code: Select all

sub limon()
   VAR ManyBag='0x400208B9'
   VAR GPCount=0, GPLimit=1000000, GPStock=0, Exit=0
   
   UO.FindType('0x09B0','0x0000','backpack')
   
   UO.SetReceivingContainer('finditem')

   While Exit <>1
      UO.FindType('0x0EED','0x0000',ManyBag)
   
      GPStock=UO.GetQuantity('finditem')   
      If GPLimit-GPCount>GPStock Then
         UO.Grab('all','finditem')
         GPCount=GPCount+GPStock
      Else
         UO.Grab(STR(GPLimit-GPCount),'finditem')
         UO.Print("Done!")
         Exit=1
      Endif
      wait(1000)
   Wend
end sub

Posted: 2005-02-02 19:11:59
by 666Man666
Подумали :)
ПОЯСНЕНИЕ ДЛЯ НУБОВ: БЕРЁТЕ ВЕСЬ КОД, И ЗАПУСКАИТЕ exec checkgold когда будет окно трейда с золотом.....

Code: Select all

sub CheckGold()
var FindItem='0x0EED' ; Какой итем искать (type)
UO.Print("Gold: "+STR(GetAmount(FindItem,'-1',UO.TradeContainer('right','1')))+"gp")
end sub

Sub GetAmount(Type,Color,Cont)
var item_amount = 0
UO.IgnoreReset()
REPEAT
UO.FindType(Type,Color,Cont)
   If UO.FindCount() Then
      If UO.GetQuantity('finditem')==0 Then
         item_amount = item_amount + 1
      Else
         item_amount = item_amount + UO.GetQuantity('finditem')
      EndIf
      UO.Ignore('finditem')
      UO.FindType(Type, Color, Cont)
   EndIf
Until UO.FindCount()==0 or UO.Dead()
UO.IgnoreReset()
Return item_amount
end sub

Posted: 2005-02-02 19:16:52
by SAMURAI
Вообщето он вроде как просил чтоб чар в отдельном окошке считал Гп, брошенные на него во время обмена... :wink:

Posted: 2005-02-02 20:02:20
by Yoko
поищи на форуме uo.TradeContainer

потом применишь методы подсчёта золота в контейнере

Posted: 2005-02-02 20:17:53
by Morgan
Тадам ;)
Правдо бета но будет новая :lol:

Code: Select all

############################################################### 
#        #          Security Trade v0.8 Beta            #     #
#       # #     "Whith The Help Of Ancient Gods."      # #    #
#        #         Crafted by I'm [ICQ:138088]          #     #
###############################################################
sub SecurityTrade()
##############
# Описание. ##############################################
##############
# Все мы нераз сталкивались с такой проблемой, вендора нет, а продать надо,
# ну а если это дорогая вещь то у покупателя возникает соблазн "недоложить"
# в окошко обмена пару GP (или пару десятков тысяч).
# Однажды я так влетел на очень крупную сумму.
# В следствии этого и родился этот скрипт ;)
#
##########################################################
Var TradeContainer
Var Object
Var Quantity1
Var Quantity2=0
Var Q=0
Var ObjectType="0x0EED"                             ; Тип обьектов кучек
Var NeedQuantity=400                                ; Необходимое количество

  UO.IgnoreReset()                                  ; Обнуляем игнор

   If Not UO.TradeCheck('','right',1) then          ; Если галка покупателя не стоит
    UO.MSG('Милый человек')                         ; Произносим
    Wait(550)                                       ; Ждем
    UO.MSG('Я по натуре очень подозрительный')      ; Произносим
    Wait(550)                                       ; Ждем
    UO.MSG('Нажалб галочку инач сделки небудет')    ; Произносим
   EndIf                                            ; #########
   Repeat                                           ; Повторять
    Wait(50)                                        ; Ждать
   Until UO.TradeCheck('','right',1)                ; До тех пор пока оппонент непоставит галку
   
  TradeContainer=UO.TradeContainer("right")         ; Правое окно обмена
  UO.FindType(ObjectType,"-1",TradeContainer)       ; Поиск золота
  Quantity1=UO.FindCount()                          ; Количество кучек

    While Q<Quantity1                               ; До тех пор пока Q < Количествa кучек
     UO.FindType(ObjectType,"-1",TradeContainer)    ; Поиск золота
     Object=UO.GetSerial("finditem")                ; Берем серийник обьекта
     Quantity2=Quantity2+(UO.GetQuantity(Object))   ; К имеющемуся количеству прибавляем найденное
     UO.Ignore(Object)                              ; Игнорируем обьект
     Q=Q+1                                          ; Прибавлем 1 к Q
     CheckLagTrade()                                ; Проверка на лаг
    Wend                                            ; Заход на новый круг
   
# От сюда можно удалить если ненадо чтоб сам ставил галку.   
    If Quantity2>=NeedQuantity then                 ; Если общее количество больше заданного
     UO.Print("Ok.")             ; Сообщение что все в порядке
     UO.TradeCheck('','',1)                         ; Ставим галку
    EndIf

    If Quantity2<NeedQuantity then                  ; Если общее количество меньще заданного
     UO.Print("Warning!")         ; Сообщение что кидала обнаружен
     UO.Exec('snap')                                ; Делаем скриншот
    EndIf
# До сюда
   
UO.Print("Total In Trade Window = "+str(Quantity2)) ; Выводим на экран общее количество

endsub

##############
#=-CheckLag-=#
##############
sub CheckLagTrade()
UO.DeleteJournal()
UO.Click('backpack')
 Repeat
  Wait(125)
 Until UO.InJournal('backpack')
end sub

Если что-то работает нетак как надо очень прошу сообщить.
P.S. Если неточности в описании тоже прош сообщить :lol:

Posted: 2005-02-02 20:33:42
by GimFlex
огромное спасибо ты супер

Posted: 2005-02-02 20:38:02
by GimFlex
и еще вопрос он считает число кучек так? а точное число голда не считает

Posted: 2005-02-02 20:40:07
by Savage
Morgan wrote:Тадам ;)
Правдо бета но будет новая :lol:

Code: Select all

sub CheckLagTrade() 
UO.DeleteJournal()
UO.Click('backpack')
 Repeat
  Wait(10)
 Until UO.InJournal('backpack')
end sub

Если что-то работает нетак как надо очень прошу сообщить.
P.S. Если неточности в описании тоже прош сообщить :lol:

Пауза меньше 100 сильно нагружает проц особенно заметно если клиентов эдак 8 запущено.

Posted: 2005-02-02 20:59:18
by GimFlex
sub CheckGold()
var FindItem='0x0EED' ; Какой итем искать (type)
UO.Print("Gold: "+STR(GetAmount(FindItem,'-1',UO.TradeContainer('right')))+"gp")
end sub


чето не пашет (

Posted: 2005-02-02 21:40:07
by Yoko
uo.[yhlp_GetQuantity]

Posted: 2005-02-02 21:43:18
by Morgan
Question wrote:огромное спасибо ты супер

Мелочь а приятно :oops:

Question wrote:и еще вопрос он считает число кучек так? а точное число голда не считает

Считается общие количество голды со всех кучек, о как ;)

Savage wrote:
Morgan wrote:Тадам ;)
Правдо бета но будет новая :lol:

Code: Select all

sub CheckLagTrade() 
UO.DeleteJournal()
UO.Click('backpack')
 Repeat
 Wait(10)
 Until UO.InJournal('backpack')
end sub

Если что-то работает нетак как надо очень прошу сообщить.
P.S. Если неточности в описании тоже прош сообщить :lol:

Пауза меньше 100 сильно нагружает проц особенно заметно если клиентов эдак 8 запущено.

Сеньк Savage незнал :oops:
Но мне простительно :roll: , я только начинаю :lol:

Posted: 2005-02-02 22:12:03
by 666Man666
Question wrote:sub CheckGold()
var FindItem='0x0EED' ; Какой итем искать (type)
UO.Print("Gold: "+STR(GetAmount(FindItem,'-1',UO.TradeContainer('right')))+"gp")
end sub


чето не пашет (

Мдя.... а остальной кусок почему выризал?... там же кроме этого ешё был кусок кода, он типа левый, да? мдя ))

Posted: 2005-02-02 22:47:20
by Morgan
Да лано те необижайся на человека ;)
Коль вырезал значит для него эт отстой и ненужный хлам:lol:

Posted: 2005-02-02 22:51:34
by GimFlex
666Man666 wrote:
Question wrote:sub CheckGold()
var FindItem='0x0EED' ; Какой итем искать (type)
UO.Print("Gold: "+STR(GetAmount(FindItem,'-1',UO.TradeContainer('right')))+"gp")
end sub


чето не пашет (

Мдя.... а остальной кусок почему выризал?... там же кроме этого ешё был кусок кода, он типа левый, да? мдя ))


я посмотрел в другом куске нету где используется CheckGold() думал 2 разных скрипта сори

Posted: 2005-02-02 23:00:01
by 666Man666
Ну вот, другое дело
Просто эти оба куска связаны между собой и работать один без другова не будут....

Posted: 2005-02-04 16:57:37
by GimFlex
666Man666 wrote:Подумали :)
ПОЯСНЕНИЕ ДЛЯ НУБОВ: БЕРЁТЕ ВЕСЬ КОД, И ЗАПУСКАИТЕ exec checkgold когда будет окно трейда с золотом.....

Code: Select all

sub CheckGold()
var FindItem='0x0EED' ; Какой итем искать (type)
UO.Print("Gold: "+STR(GetAmount(FindItem,'-1',UO.TradeContainer('right','1')))+"gp")
end sub

Sub GetAmount(Type,Color,Cont)
var item_amount = 0
UO.IgnoreReset()
REPEAT
UO.FindType(Type,Color,Cont)
   If UO.FindCount() Then
      If UO.GetQuantity('finditem')==0 Then
         item_amount = item_amount + 1
      Else
         item_amount = item_amount + UO.GetQuantity('finditem')
      EndIf
      UO.Ignore('finditem')
      UO.FindType(Type, Color, Cont)
   EndIf
Until UO.FindCount()==0 or UO.Dead()
UO.IgnoreReset()
Return item_amount
end sub



выдает ошибку line 3 function not found uo.tradecontainer
если взять в скобки 'uo.tradecontainer' то пишет line 3 parse error
проверяю я этот скрипт так перетаскиваю на когорить золото и запускаю в инжекте checkgold

Posted: 2005-02-05 10:03:25
by Yoko
tradecontainer было далеко не во всех версиях инжекта

Posted: 2005-02-05 10:36:46
by GimFlex
Yoko wrote:tradecontainer было далеко не во всех версиях инжекта


а если у меня инжа версии 312.19