[share] обмен вещи на вещи - методом чата.
Добавлено: Вт янв 12, 2010 1:14 am
В общем на множестве пираток есть такая штука как хзаменители бабла будь то кредиты монетки или другая билебарда. вот соббственно созданный мной макрос на обмен этих монеток\кредитов на вещи.
Конфиг должен иметь следующие вещи:
Со вступом всё теперь часть макросов.
Я разделил их на 3 части так как 2 каждый должен настроить под свой сервер и желания.
1-я часть (нужно менять):
console /\[Guild\] You have 0 new emails/ - Нужно заменитьтем что появляется у вас на сервере.
call getItems - о нём будет рассказано ниже
do conf sellStatus needToOpenChat - перед этой строкой можно вставить любые действия - например выбор места и карты где будет стоять наш бот и т.д.
2-я часть(можно не менять)
3-я часть (менять нужно больше всего):
do c @storage - если у вас нет это команды то вам придётся заменить эту строку на поход до кафры и открытие сундука.
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)
ВНИМАНИЕ!!! МАКРОС НЕ СОВЕРЩЕНЕН ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК!!!
Конфиг должен иметь следующие вещи:
Код: Выделить всё
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)
ВНИМАНИЕ!!! МАКРОС НЕ СОВЕРЩЕНЕН ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК!!!