Конфиг должен иметь следующие вещи:
Код: Выделить всё
sellStatus <Оставляем пустым бот будет заполнять сам>
chatName <Имя вашего чата>
owgChatName <Имя чата перевеса - если тот с кем вы торгуете дибил и не может понять что он перегружен сам.>
sellItem <Вещь которую мы предлагаем>
sellItemAmount <Сколько таких вещей мы предлагаем>
gainItem <Вещь которую мы просим за наши>
gainItemAmount <Сколько таких вещей мы просим>
bossNick <Ник того кому сгружать все gainItem если он бросит дил - это если мы ленивые руками делать. Поле можно не заполнять тогда сгружать он не будет никому.>
Я разделил их на 3 части так как 2 каждый должен настроить под свой сервер и желания.
1-я часть (нужно менять):
Код: Выделить всё
automacro weLogIn{
priority 1
console /\[Guild\] You have 0 new emails/ #тут пишем то что появляется у вас на сервере.
exclusive 1
call atFirst
}
macro atFirst{
[
do conf dealAuto 1
]
pause 5
[
log ++++++++++++++++++++
log First Inventory Chek
log ++++++++++++++++++++
]
if (@invamount(@eval($::config{sellItem})) > @eval(@eval($::config{sellItemAmount}) - 1)) goto iChkd
call getItems
:iChkd
[
log ++++++++++++++
log Inventory - Ok
log ++++++++++++++
do conf ignoreAll 1
do conf logConsole 1
do conf sellStatus needToOpenChat
]
}
call getItems - о нём будет рассказано ниже
do conf sellStatus needToOpenChat - перед этой строкой можно вставить любые действия - например выбор места и карты где будет стоять наш бот и т.д.
2-я часть(можно не менять)
Код: Выделить всё
automacro openingChat {
priority 2
eval ($::config{sellStatus} eq "needToOpenChat") and (Macro::Utilities::getInventoryAmount($::config{sellItem}) > ($::config{sellItemAmount} - 1))
exclusive 1
call openChat
run-once 1
}
macro openChat {
do chat create "@eval($::config{chatName})" @rand(2,5) 0 NoTaBoT
do conf dealAuto 0
do conf sellStatus waitingDeal
release openingChat
}
automacro dealRequest {
console /(.+) \(level (\d+)\) Requests a Deal/
eval ($::config{sellStatus} eq "waitingDeal") and (Macro::Utilities::getInventoryAmount($::config{sellItem}) > ($::config{sellItemAmount} - 1))
call engageDeal
}
macro engageDeal {
do conf sellStatus dealingPlayerWaitBuyItem
do deal
pause 2
if ($.lastMatch1 != @eval($::config{bossNick})) goto other
do deal add @inventory(@eval($::config{gainItem}))
do deal
do conf sellStatus dealingPlayerWaitFinilize
goto end
:other
do deal add @inventory(@eval($::config{sellItem})) @eval($::config{sellItemAmount})
do deal
:end
pause 10
[
log ++++++++++++++++
log Dealing Too Long
log ++++++++++++++++
]
do conf sellStatus waitingDeal
do deal no
}
automacro playerOWG {
console /That person is overweight; you cannot trade\./
eval $::config{sellStatus} eq "dealingPlayerWaitBuyItem"
call OWG
}
macro OWG {
do conf sellStatus dealingPlayerOWG
do deal no
do conf dealAuto 1
do chat modify "@eval($::config{owgChatName})" @rand(2,5) 0 NoTaBoT
pause 5
do chat modify "@eval($::config{chatName})" @rand(2,5) 0 NoTaBoT
do conf dealAuto 0
do conf sellStatus waitingDeal
}
automacro tradeItemAdded {
console /^(?!You added)(.+) added Item to Deal\: (.+) x (\d+)/
eval $::config{sellStatus} eq "dealingPlayerWaitBuyItem"
call confirmTradeItem
}
macro confirmTradeItem {
[
if ($.lastMatch2 != @eval($::config{gainItem})) goto error
if ($.lastMatch3 != @eval($::config{gainItemAmount})) goto error
do conf sellStatus dealingPlayerWaitFinilize
]
pause 10
[
log ++++++++++++++++
log Dealing Too Long
log ++++++++++++++++
:error
do conf sellStatus waitingDeal
]
pause 1
do deal no
}
automacro finalizeDeal {
console /^(?!You finalized)(.+) finalized the Deal/
eval $::config{sellStatus} eq "dealingPlayerWaitFinilize"
call lastDeal
}
macro lastDeal {
do conf sellStatus getItems
do deal
pause 10
[
log ++++++++++++++++
log Dealing Too Long
log ++++++++++++++++
]
do conf sellStatus waitingDeal
do deal no
}
automacro completeDeal {
console /Deal Complete/
eval $::config{sellStatus} eq "getItems"
call endDeal
}
macro endDeal {
do conf sellStatus chekingItems
call getItems
}
Код: Выделить всё
macro getItems {
do conf dealAuto 1
[
log ++++++++++
log Geting Items
log ++++++++++
]
do c @storage
pause 2
if (@storamount(@eval($::config{sellItem})) > @eval(@eval($::config{sellItemAmount}) - 1)) goto sChkd
call noItems
:sChkd
[
log ++++++++++++
log Storage - Ok
log ++++++++++++
]
do storage get @eval($::config{sellItem}) @eval(@eval($::config{sellItemAmount}) - @invamount(@eval($::config{sellItem})))
pause 1
do storage close
pause 1
do conf sellStatus waitingDeal
do conf dealAuto 0
}
macro noItems {
[
log +++++++++++++++
log Storage - Empty
log +++++++++++++++
]
do conf sellStatus noItems
do quit
}
do storage get @eval($::config{sellItem}) @eval(@eval($::config{sellItemAmount}) - @invamount(@eval($::config{sellItem}))) - тут @eval(@eval($::config{sellItemAmount}) - @invamount(@eval($::config{sellItem}))) заменить на то количество что берём за раз с сундука!
do storage close - если у вас нет @storage то после этой строки написать возвращение на место и новое открытие чата.(ЗЫ чат открываем так - do chat create "@eval($::config{chatName})" @rand(2,5) 0 NoTaBoT)
ВНИМАНИЕ!!! МАКРОС НЕ СОВЕРЩЕНЕН ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК!!!