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

Anything and all.

Moderators: Murderator+, Murderator

GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

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

Post by GimFlex »

Дорогие скриптеры у меня к вам вопрос можно ли написать скрипт чтобы считал деньги в окошке когда происходит обмен между двумя чарами. Просто не раз сталкивался с проблеммой вендора нету, а если продавать дорогие вещи стоимостью больше 500к то возникает проблемма с подсчетеом денег в окошке они все накладываются друг на друга буду признателен если поможете в написании скрипта или хотя бы подкините идейку с чего начать.
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

ребят ну хоть подскажите чтобы подсчитывал число гп в мешочке
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post 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
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post 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
Last edited by 666Man666 on 2005-02-02 22:17:33, edited 2 times in total.
SAMURAI
Posts: 203
Joined: 2004-07-10 00:38:43
Location: From DrW
Contact:

Post by SAMURAI »

Вообщето он вроде как просил чтоб чар в отдельном окошке считал Гп, брошенные на него во время обмена... :wink:
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

поищи на форуме uo.TradeContainer

потом применишь методы подсчёта золота в контейнере
Morgan
Posts: 20
Joined: 2005-02-02 19:47:57

Post 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:
Last edited by Morgan on 2005-02-22 18:12:03, edited 2 times in total.
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

огромное спасибо ты супер
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

и еще вопрос он считает число кучек так? а точное число голда не считает
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post 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 запущено.
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

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


чето не пашет (
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

uo.[yhlp_GetQuantity]
Morgan
Posts: 20
Joined: 2005-02-02 19:47:57

Post 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:
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post by 666Man666 »

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


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

Мдя.... а остальной кусок почему выризал?... там же кроме этого ешё был кусок кода, он типа левый, да? мдя ))
Morgan
Posts: 20
Joined: 2005-02-02 19:47:57

Post by Morgan »

Да лано те необижайся на человека ;)
Коль вырезал значит для него эт отстой и ненужный хлам:lol:
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post 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 разных скрипта сори
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post by 666Man666 »

Ну вот, другое дело
Просто эти оба куска связаны между собой и работать один без другова не будут....
Last edited by 666Man666 on 2005-02-02 23:01:41, edited 1 time in total.
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post 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
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

tradecontainer было далеко не во всех версиях инжекта
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

Yoko wrote:tradecontainer было далеко не во всех версиях инжекта


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