Просмотр полной версии : макрос: варп для указанной гилды
Описание:
Прист варпает в 1 точку (пока). Схема такая:
1. Рядом с пристом (в радиусе 10 клеток) в общий чат пишут слово варп (можно не переключать раскладку и написать dfhg, кстати можно написать и ВаРп - тоже поймёт. Макрос реагирует на 4 слова: варп, dfhg, порт, gjhn).
2. бот анализирует кто это, дальше:
а) если этот засранец (автор слов) не из наших гильдий, то молчим
б) если же - свой чувак, то открываем 1 варп (мало?)
Навтройка макроса:
$guild = гилда1,гилда2,...
сюда прописываем имена "своих в доску" гильдий. Имена не чувствительны к РеГиСтРу. После запятой пробела быть не должно!
$warp = 0
вместо '0' ставим тот портал который нужен (их всего четыре: 0, 1, 2, 3)
Достоинства макроса:
1. Прист не привязан к координатам, может стоять в любом городе, почти в любом месте.Почему почти? Читай далее.
2. Прист варпает в рандомные координаты. Причём всегда выше себя. Варпы могут быть левее и правее приста.
3. Если гемов нету, то макрос срабатывать не будет
Недостатки макроса:
А кто же о них пишет?
1. Нет оповещения о том, что кончились гемы (кому нада сами прикрутите, или настроете, чтоб бот сам брал гемы)
2. Прист не кидает санки (кому нада сам допишет)
Сам макрос:
##Варпаем гильдию##
automacro warp {
pubm /варп|порт|dfhg|gjhn/i,10
inventory "Blue Gemstone" > 0
run-once 1
call {
$guild = гилда1,гилда2,...
$warp = 0
$i = @player ($.lastpub)
if ($id = -1) goto stop
$g = @eval (exists $::players{$::playersID[$i]}->{guild} ? $::players{$::playersID[$i]}->{guild}{name} : 'null')
if ($g ~ $guild) goto ok
release warp
stop
:ok
if (@eval($::char->{sitting}) = 1) goto stand
do stand
:stand
$x = @eval($::char->{pos}{x})
$y = @eval($::char->{pos}{y})
do sl 27 @eval($x + @rand(-5, 5)) @eval($y + @rand(2, 7))
pause 2
do warp $warp
pause 5
release warp
}
}
#4epT©
Внимание, т.к в макросе исользуются русские слова (варп|порт), то файл macros.txt необходимо сохранить в кодировке UTF-8 (http://ragbot.ru/forum/showthread.php?p=11548##post11548)
а как зделать тоже самое только если игрок не в гильдии?
1. принять его в гильдию
или
2 . Удалить:
$i = @player ($.lastpub)
if ($id = -1) goto stop
$g = @eval (exists $::players{$::playersID[$i]}->{guild} ? $::players{$::playersID[$i]}->{guild}{name} : 'null')
$guild = гилда1, гилда2, ... <<указываем имя гилды или несколько
if ($g ~ $guild) goto ok
release warp
stop
:ok
или
3. написать гильдию null $guild = null
Тогда бот будет включать варп всем
спасибо работает...хотя на шёт куска макроса его убрать я давно догадалься,просто у меня бот сидел поэтому не варпал,вот такой йа нупко =/
хм теперь другая проблема он юзает 1 раз всего варп если бота не резетнуть он показывает ошибку и не варпает....есть какое нибуть решение?
P.S> ошибка "Skill Warp Portal failed (Basic) Casting failed: Basic (0)"
на счёт вставания (нету времени тестить, проверять) я подправил, теперь если бот сидит, то он встаёт :)
на счёт того что 1 раз юзает это ты брешиш :d когда я тестил он мне кучу варпов наоткрывал. может он у тебя пытается поставить варп на запрещённый участок (столб например)? место варпа радомное, поэтому вполне возможно. Приста лучше помещать так что бы сверху от него можно было варпы кидать.
а как сделать чтобы бот после варпа сам прыгл в него.
имеется ввиду что если напишишь какуюто хитрую команду то он сам прыгнет в варп после тебя.
endigro, чтобы точно после тебя - это запаришься, можно поставить через 7 сек после открытия.
а команду move x y ещё никто не отменял ;)
Я плохо понял что ты имел ввиду, поясни =-o
Убераешь:
$x = @eval($::char->{pos}{x})
$y = @eval($::char->{pos}{y})
do sl 27 @eval($x + @rand(-5, 5)) @eval($y + @rand(2, 7))
пишешь конкретные координаты, типо "do sl 27 x y"
потом паузу и "do move x y"
Обьясните нубу пожалуста что нужно изменить.
Настроил всё как указано в первом посте.
В итоге, при слове в общий чат "warp", прист встаёт, но варп не вскрывает... :(
do sl 27 @eval($x + @rand(-5, 5)) @eval($y + @rand(2, 7))
Что значит эта строка, может тут надо что-то менять? Извините зе глупые вопросы, просто ваще не понимаю тут ничего:D
kumar, неплохо было бы посмотреть на консоль бота (приста)
Эта строчка - команда открыть варп на рандомных координатах выше приста. Кстати посмотри, чтобы прист не стоял под стенкой, т.к. он всегда будет кидать вапр выше себя.
Кстати перс который пишет "warp" он находится в гилде "StormRaiders"?
да он находится в этой гильдии
консоль приста? не оч понимаю о чём речь...
можешь сделать конфиги или что-то что нужно вставить куда-то и это работало плиз. я бы сам сделал но скока не пытался разобраться не получается =(
только обкасты аги блес норм работают.
ты запускаешь бота (приста) там есть поле где постоянно бот пишет о том что с ним происходит, это и называется консоль..
так вот подойди к боту другим чаром и скажи warp потом перейди в окно с пристом (ботом) и скопирую сюда текст консоли (желательно после строки "такой-то чел сказал warp")
cabromen
16.09.2007, 17:32
отличный макрос спасибо черт..
все удобно особенно на гв!
тока я сделал чтобы на смайлик открывал)
показываешь ему свиит и все и он открывает
cabromen, если тебе это понравилось, то тебе сюда (http://ragbot.ru/forum/showthread.php?do=post_thanks_add&p=7933)
На свиит, так на свиит. Как пример можешь и сюда забацать что ты там наковырял.
cabromen
17.09.2007, 19:01
чето сегодня не пашет уже вот ошибка:
[macro] tempMacro0 error: error in 9: either '@eval($::char->{sitting})' or '1' has failed
the line number may be incorrect if you called a sub-macro.
cabromen, а чё ты с корой сделал, обновил?
FragMent
28.11.2007, 20:52
У меня вот что пишет
[macro] automacro warp triggered.
FragMent, поздравляю, это значит, что автомакрос у тебя запустился *bravo*
GumaNoiD
03.01.2008, 22:24
1.как сделать чтобы впрпал любого кто напишет определнное-тоесть не ориентируясь на гильду.
2.как чтоб после варпа делал чат
GumaNoiD
1. почитай повнимательнее первое и второе сообщение в этой теме.
2. почитай консольные команды и допиши их в конце макроса.
CaptainPetrov
04.02.2008, 21:34
а как сделать, чтобы прист открывал варп, если указанный игрок появился на экране?
а в автомакросах есть условие player ;)
CaptainPetrov
05.02.2008, 01:28
Вот так работает, но только один раз. Второй раз он не стал открывать варп :(
automacro warp {
player "ВасяНубов"
inventory "Blue Gemstone" > 0
run-once 1
call {
$guild = null
$warp = 1
$x = @eval($::char->{pos}{x})
$y = @eval($::char->{pos}{y})
do sl 27 @eval($x + @rand(-1, 0)) @eval($y + @rand(0, 0))
pause 2
do warp $warp
pause 5
release warp
}
}
вроде как должно пахать, только пауза убери последнюю (pause 5)
у меня работает, я проверил, у тя при загрузке коры никаких жёлтых ошибок не выскакивает?
CaptainPetrov
05.02.2008, 02:23
всё работает, спасибо)
так и в чом трабла была? в паузе? о_о
CaptainPetrov
05.02.2008, 04:17
трабла я так и не понял в чем, просто кору тупо перезапустил и заработало. щас иногда запускаю то работает то не работает, не пойму от чего зависит.
Вот тут тоже не пойму почему не варпает. На мой нубо-взгляд всё правильно, но бот ничего не делает и даже не пишет что ошибка. Я это впихал сразу после предыдущего макроса
##Варпаем в москву##
automacro warp {
pubm /мск|моск|msk|mosk/i,10
inventory "Blue Gemstone" > 0
run-once 1
call {
$guild = null
$warp = 1
$x = @eval($::char->{pos}{x})
$y = @eval($::char->{pos}{y})
do sl 27 @eval($x + @rand(-1, -1)) @eval($y + @rand(0, 0))
pause 2
do warp $warp
pause 5
release warp
}
}
Кстати, как сделать чтобы прист варпал не одного игрока а какой-то список игроков? Или лучше игроков с содержанием допустим буквы "a" грубо говоря
Ок. я разобрался
player /а/[i]
а если список игроков то вот так:
player "игрок1|игрок2|игрок50"
макросы у тебя не работают потому, что одинаковое имя у них.
тут i нужно писать без скобок (если ты конечно используешь это со смыслом): player /а/[i]
так не правельно: player "игрок1|игрок2|игрок50"
список игроков можно использовать, тока если макрос срабатывает на фразу.. или ждать пока я выложу ссылку на сборку в которой есть новый макро плагин (в нём есть новое условие eval ;))
FIRE4ell
22.02.2008, 03:15
######## Main configuration ########
automacro warp {
pubm /варп|порт|dfhg|gjhn/i,10
inventory "Blue Gemstone" > 0
run-once 1
call {
$guild =
Player = херасима
$warp = 2
$i = @player ($.lastpub)
if (@eval($::char->{sitting}) = 1) goto stand
$g = @eval (exists $::players{$::playersID[$i]}->{guild} ? $::players{$::playersID[$i]}->{guild}{name} : 'null')
if (@eval($::char->{sitting}) = 1) goto stand
release warp
stop
:ok
if (@eval($::char->{sitting}) = 1) goto stand
do warp $warp
:stand
$x = @eval($::char->{pos}{x})
$y = @eval($::char->{pos}{y})
do warp $warp
pause 5
do warp $warp
pause 5
release warp
}
Вот мой конфиг мой прист не в моей гильдии я бы хотел чтобы при слова варп он варпала моего чара,или чтото я не так сделал или обьясняте мне пожалуйста!!!!! черт не суди строга я новичек)) и как сохранить в этом формате который ты сказал?
Вот что я отсавил всвоем конфиге и все удалил,но почему при...
ЫЫЫ 5 баллов!!!:)):)):))
Советую тебе почитать темы в этом разделе:
http://ragbot.ru/forum/forumdisplay.php?f=21
Если кратко, то в конфиге удалять ничего не надо, это надо пихать в файл macros.txt...
FIRE4ell
26.02.2008, 08:25
))а в принцыпе если все это в макрос написан правильно?)спасиба за ответ)
Вот так работает, но только один раз. Второй раз он не стал открывать варп :(
имхо остальные он у тебя пытается открыть под себя
FIRE4ell, тебе бы почитать темку с раздела МИНИ ЧАВО про макросы.. ты макрос вставил в конфиг, а нужно в отдельный файл, про УТФ ищи!
1) Подскажите пожалустка, как сделать, чтобы прист открывал сразу 3 варпа
2) Возможно сделать так, чтобы при слове "излуд" он открывал варп в излуд, а при слове "пронта" он открывал пронту. То есть что бы он по словал распознавал куда вам варп открыть. Если возможно, то прошу напишите как это сделать.
Заранее спасибо.
Ребята, тут столько смыслящих в этих делах людей, неужели это не возможно осуществить? =-o
masterspirta
16.04.2008, 13:01
протестите
automacro warp {
pubm /<название города(слово на которое он туды будет варповать)>/i,10
inventory "Blue Gemstone" > 0
run-once 1
call {
$i = 0
if (@eval($::char->{sitting}) = 1) goto stand
do stand
:stand
while ($i <= <количество варпов>) as exampleloop
$x = @eval($::char->{pos}{x})
$y = @eval($::char->{pos}{y})
do sl 27 @eval($x + @rand(-5, 5)) @eval($y + @rand(2, 7))
pause 2
do warp <номер варпа >
$i++
end exampleloop
pause 5
release warp
}
}
Спасибо, работает, НО что с макросом в 1 посте, что в макросе в посте №37 у меня выдаёт такую ошибку : [macro] tempMacro0 error: error in 1: either '@eval($::char->{sitting})' or '1' has failed
От неё я избавился , удалив в макросе эти строки:
if (@eval($::char->{sitting}) = 1) goto stand
do stand
:stand
А Можно ещё придумать, чтобы бот мог открывать разные варпы, соответственно на разные слова?
masterspirta
16.04.2008, 18:00
А я как тебе сделал?
или не можеш копи пас 1-3 раза сделать?*bravo*
Лана даю подробное описание, делаешь один раз копи и 3 раза паст....
Потом в каждом отдельном случии изменяешь :
automacro warp {
pubm /<название города(слово на которое он туды будет варповать)>/i,10
inventory "Blue Gemstone" > 0
run-once 1
call {
$i = 0
if (@eval($::char->{sitting}) = 1) goto stand
do stand
:stand
while ($i <= <количество варпов>) as exampleloop
$x = @eval($::char->{pos}{x})
$y = @eval($::char->{pos}{y})
do sl 27 @eval($x + @rand(-5, 5)) @eval($y + @rand(2, 7))
pause 2
do warp <номер варпа >
$i++
end exampleloop
pause 5
release warp
}
}
Нее, я то могу, НО :stop:
Когда я пробовал на макросе, который в после №1, то у меня не работало, он распознавал только последний макрос :(
Сяс попробую на этом ;)
Большое спасибо, всё работает.
Понял свою ошибку, я не поменял вот тут: automacro warp { :-[
angino4ka
11.06.2008, 16:47
[macro] tempMacro0 error: error in 9: either '@eval($::char->{sitting})' or '1' has failed
the line number may be incorrect if you called a sub-macro.
пишет ошибка как заходит и все( ору варп итд не хочет( и еще он сидит если можно как то настроить сразу на 3 варпа я примена понила как . что тут непрвелно?
automacro warp {
pubm /варп|порт|dfhg|gjhn/i,10
inventory "Blue Gemstone" > 0
run-once 1
call {
$guild = InXocSigno
$warp = 2
$i = @player ($.lastpub)
if ($id = -1) goto stop
$g = @eval (exists $::players{$::playersID[$i]}->{guild} ? $::players{$::playersID[$i]}->{guild}{name} : 'null')
if ($g ~ $guild) goto ok
release warp
stop
:ok
if (@eval($::char->{sitting}) = 1) goto stand
do stand
:stand
$x = @eval($::char->{pos}{x})
$y = @eval($::char->{pos}{y})
do sl 27 @eval($x + @rand(-5, 5)) @eval($y + @rand(2, 7))
pause 2
do warp $warp
pause 5
release warp
}
}
macro] automacro warp triggered.
[macro] tempMacro0 error: error in 0: unrecognized assignment
the line number may be incorrect if you called a sub-macro.
You are sitting.
теперь вот что пишет
изначальный макрос у мя щас вот в таком виде
automacro warp {
pubm /варп|порт|dfhg|gjhn/i,10
inventory "Blue Gemstone" > 0
run-once 1
call {
# $guild = null
$warp = 2
# $i = @player ($.lastpub)
# if ($id = -1) goto stop
# $g = @eval (exists $::players{$::playersID[$i]}->{guild} ? $::players{$::playersID[$i]}->{guild}{name} : 'null')
# if ($g ~ $guild) goto ok
# release warp
# stop
# :ok
if (@eval($::char->{sitting}) = 1) goto stand
do stand
:stand
$x = @eval($::char->{pos}{x})
$y = @eval($::char->{pos}{y})
do sl 27 @eval($x + @rand(-5, 5)) @eval($y + @rand(2, 7))
pause 2
do warp $warp
pause 5
release warp
}
}
Работает отлично, НО хотелось бы дополнить его, чтобы бот открывал варп не только на слово варп в общак но и на слово в приват а так же на какой нибудь смайлик, причем чтобы работали одновременно несколько условий на которые от открывает варп.
И еще, как добавить задержку 1 или 2 секунды перед тем как бот откроет варп?
Master, а кто тебе мешает макрос погрузить в отдельное тело и написать несколько АМ с разными условиями??
4epT, это как? подскажи плиз лучше как написать я нешарю в таких языках и к тому же совершенно незнаю операторы.
Как написать реакцию на приват и на смайлик?
ЗЫ. с приватом получилось через pm а вот как на смайлик сделать так и недопер:(
MaKpo_MaH4
08.07.2008, 23:21
вот как на смайлик сделать так и недопер
пишем-с АМ
automacro warpsmile {
console /*<смайлик можно посмотреть через кору>*/
call portal
}
в портал выцепляем тело макроса
macro portal {
...
... <тело>
...
release warpsmile(ну или другое название АМ)
}
я нешарю в таких языках и к тому же совершенно незнаю операторы
а гайды для кого 4epT копипастил?
что значит копипастил••••••=-o
Lucifer58
11.09.2008, 15:54
почемуто неработает макрос вот что пишет:
[dist=7.1] фрося (0): варп
[macro] automacro warp triggered.
Syntax error in function 'sl' (Use Skill on Location)
Usage: sl <skill #> <x> <y> [level]
You didn't cast warp portal.
бот OpenKore_206SVN6462
помогите пожалусто
Ну это или скилла нету или нельзя тут его кастовать))
[macro] tempMacro2 error: error in 1: either '@eval($::char->{sitting})' or '1' has failed
вот эта ошибка уже бесит)) ни как немогу с ней разобратцо
удали тогда вот этот кусок:
if (@eval($::char->{sitting}) = 1) goto stand
do stand
:stand
опаньки) спасибо) все пашет)
vBulletin® v3.8.11, Copyright ©2000-2024, vBulletin Solutions Inc. Перевод: zCarot