Подсчет денег в окошке.
Moderators: Murderator+, Murderator
Подсчет денег в окошке.
Дорогие скриптеры у меня к вам вопрос можно ли написать скрипт чтобы считал деньги в окошке когда происходит обмен между двумя чарами. Просто не раз сталкивался с проблеммой вендора нету, а если продавать дорогие вещи стоимостью больше 500к то возникает проблемма с подсчетеом денег в окошке они все накладываются друг на друга буду признателен если поможете в написании скрипта или хотя бы подкините идейку с чего начать.
-
- Expert!
- Posts: 1205
- Joined: 2004-04-04 11:13:54
- Location: Балаково, Саратовская обл.
- Contact:
Это на отсчитывание необходимой суммы и перекладывания ее в поунч.
С твоей задачей надо подумать...
С твоей задачей надо подумать...
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
Подумали
ПОЯСНЕНИЕ ДЛЯ НУБОВ: БЕРЁТЕ ВЕСЬ КОД, И ЗАПУСКАИТЕ exec checkgold когда будет окно трейда с золотом.....

ПОЯСНЕНИЕ ДЛЯ НУБОВ: БЕРЁТЕ ВЕСЬ КОД, И ЗАПУСКАИТЕ 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.
Тадам
Правдо бета но будет новая
Если что-то работает нетак как надо очень прошу сообщить.
P.S. Если неточности в описании тоже прош сообщить

Правдо бета но будет новая

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. Если неточности в описании тоже прош сообщить

Last edited by Morgan on 2005-02-22 18:12:03, edited 2 times in total.
-
- Expert!
- Posts: 1205
- Joined: 2004-04-04 11:13:54
- Location: Балаково, Саратовская обл.
- Contact:
Morgan wrote:Тадам
Правдо бета но будет новаяCode: Select all
sub CheckLagTrade()
UO.DeleteJournal()
UO.Click('backpack')
Repeat
Wait(10)
Until UO.InJournal('backpack')
end sub
Если что-то работает нетак как надо очень прошу сообщить.
P.S. Если неточности в описании тоже прош сообщить
Пауза меньше 100 сильно нагружает проц особенно заметно если клиентов эдак 8 запущено.
Question wrote:огромное спасибо ты супер
Мелочь а приятно

Question wrote:и еще вопрос он считает число кучек так? а точное число голда не считает
Считается общие количество голды со всех кучек, о как

Savage wrote:Morgan wrote:Тадам
Правдо бета но будет новаяCode: Select all
sub CheckLagTrade()
UO.DeleteJournal()
UO.Click('backpack')
Repeat
Wait(10)
Until UO.InJournal('backpack')
end sub
Если что-то работает нетак как надо очень прошу сообщить.
P.S. Если неточности в описании тоже прош сообщить
Пауза меньше 100 сильно нагружает проц особенно заметно если клиентов эдак 8 запущено.
Сеньк Savage незнал

Но мне простительно


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 разных скрипта сори
Ну вот, другое дело
Просто эти оба куска связаны между собой и работать один без другова не будут....
Просто эти оба куска связаны между собой и работать один без другова не будут....
Last edited by 666Man666 on 2005-02-02 23:01:41, edited 1 time in total.
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