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

Всё, что касается макро-плагина.

Модератор: 4epT

Правила форума
В форуме макросы "Макросы" разрешено только задавать вопросы по уже существующим макросам и просить помощь по недоработанным своим. При этом таким считается тот макрос который готов не менее чем на 2/3.
Если вы хотите попросить участников сообщества написать вам макрос, это можно сделать в разделе "сервис".
Святой Инквизитор
Грамотный
Сообщения: 235
Зарегистрирован: Вт сен 07, 2010 2:24 pm
Сервер RO:: Никакого
Discord: Mortimal#5416
Откуда: от верблюда
Контактная информация:

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

Сообщение Святой Инквизитор »

В общем на множестве пираток есть такая штука как хзаменители бабла будь то кредиты монетки или другая билебарда. вот соббственно созданный мной макрос на обмен этих монеток\кредитов на вещи.

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

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

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)

ВНИМАНИЕ!!! МАКРОС НЕ СОВЕРЩЕНЕН ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК!!!
Изображение
Ну не работает у тебя бот.... и чё теперь надо всем про это рассказать что ли?
ad1das
Новичок
Сообщения: 3
Зарегистрирован: Сб ноя 06, 2010 4:05 pm

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

Сообщение ad1das »

l
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

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

Сообщение kLabMouse »

Ахуительный Макрос..... ПростоПисец.
Афтар Мудак... отправится в баню, если не исправит свою погрешность.
EternalHarvest
Разработчик
Сообщения: 819
Зарегистрирован: Пн окт 27, 2008 9:49 pm

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

Сообщение EternalHarvest »

kLabMouse писал(а):Ахуительный Макрос
"by Святой Инквизитор » 2010-01-12 01:14:53"
"3 posts"
Баг форума?
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

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

Сообщение kLabMouse »

EternalHarvest
Похоже пора поколдовать с форумом.
Ответить