Страница 1 из 1

[share] обмен вещи на вещи - методом чата.

Добавлено: Вт янв 12, 2010 1:14 am
Святой Инквизитор
В общем на множестве пираток есть такая штука как хзаменители бабла будь то кредиты монетки или другая билебарда. вот соббственно созданный мной макрос на обмен этих монеток\кредитов на вещи.

Конфиг должен иметь следующие вещи:

Код: Выделить всё

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
]
}
console /\[Guild\] You have 0 new emails/ - Нужно заменитьтем что появляется у вас на сервере.
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
}
3-я часть (менять нужно больше всего):

Код: Выделить всё

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 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)

ВНИМАНИЕ!!! МАКРОС НЕ СОВЕРЩЕНЕН ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК!!!

Re: [share] обмен вещи на вещи - методом чата.

Добавлено: Пн дек 06, 2010 6:55 pm
ad1das
l

Re: [share] обмен вещи на вещи - методом чата.

Добавлено: Вт дек 07, 2010 9:27 pm
kLabMouse
Ахуительный Макрос..... ПростоПисец.
Афтар Мудак... отправится в баню, если не исправит свою погрешность.

Re: [share] обмен вещи на вещи - методом чата.

Добавлено: Вт дек 07, 2010 10:24 pm
EternalHarvest
kLabMouse писал(а):Ахуительный Макрос
"by Святой Инквизитор » 2010-01-12 01:14:53"
"3 posts"
Баг форума?

Re: [share] обмен вещи на вещи - методом чата.

Добавлено: Вт дек 07, 2010 10:26 pm
kLabMouse
EternalHarvest
Похоже пора поколдовать с форумом.