Просмотр полной версии : Макрос: дух для всех классов (Soul Linker)
хочется поставить суллинкера, который бы по просьбе согильдийца давал ему линк на его профессию, например на сообщение в гильдчате "линк" :) (естественно тому кто в зоне досягаемости)
поискал на форуме - не нашел, может плохо искал.. помогите плиз
должно получиться что-то типо того:
automacro spirit {
pubm "линк"
call buff
run-once 1
}
macro buff {
$id = @player ($.lastpub)
if ($id = -1) goto stop
$g = @eval (exists $::players{$::playersID[$id]}->{guild} ? $::players{$::playersID[$id]}->{guild}{name} : 'null')
$guild = гилда1, гилда2
if ($g ~ $guild) goto ok
stop
:ok
$jobID = @eval ($::players{$::playersID[$id]}->{jobID})
$spirit = 4010,4011,4013,4019
if ($jobID ~ $spirit) goto yes
goto stop
:yes
if ($jobID = 7) goto knight
if ($jobID = 13) goto knight
if ($jobID = 4008) goto knight
if ($jobID = 4014) goto knight
if ($jobID = 12) goto assassin
if ($jobID = 4013) goto assassin
if ($jobID = 10) goto smith
if ($jobID = 4011) goto smith
if ($jobID = 14) goto paladin
if ($jobID = 21) goto paladin
if ($jobID = 4015) goto paladin
if ($jobID = 4022) goto paladin
if ($jobID = 4012) goto sniper
if ($jobID = 11) goto sniper
if ($jobID = 16) goto professor
if ($jobID = 4017) goto professor
if ($jobID = 8) goto priest
if ($jobID = 4009) goto priest
if ($jobID = 15) goto champion
if ($jobID = 4016) goto champion
if ($jobID = 4010) goto wizard
if ($jobID = 4018) goto stalker
if ($jobID = 18) goto creator
if ($jobID = 4019) goto creator
if ($jobID = 4020) goto clown
if ($jobID = 4021) goto clown
if ($jobID = 19) goto clown
if ($jobID = 20) goto clown
if ($jobID = 4047) goto star
if ($jobID = 4049) goto soul
if ($jobID = 23) goto snoob
:knight
do sp 452 $id
goto stop
:assassin
do sp 457 $id
goto stop
:smith
do sp 458 $id
goto stop
:paladin
do sp 450 $id
goto stop
:sniper
do sp 460 $id
goto stop
:professor
do sp 449 $id
goto stop
:priest
do sp 454 $id
goto stop
:champion
do sp 447 $id
goto stop
:wizard
do sp 453 $id
goto stop
:stalker
do sp 456 $id
goto stop
:creator
do sp 445 $id
goto stop
:clown
do sp 455 $id
goto stop
:star
do sp 448 $id
goto stop
:soul
do sp 461 $id
goto stop
:snoob
do sp 451 $id
:stop
release spirit
}
$guild = гилда1, гилда2 <-- сюда вписываем имя гильдий которым хотим каст давать.
$spirit = 4010,4011,4013,4019 <- это профы для которых у линкера прокачен "Дух". Расшифровку можно найти в файле src\Globals.pm
Внимание, т.к в макросе используются русские слова (линк), то файл macros.txt необходимо сохранить в кодировке UTF-8 (http://ragbot.ru/forum/mini-chavo/597-gajd-po-macro-plugin-5.html#post11548)
Всё начиналось от сюда:
[Question] Soul Linker Spirits > 1 Script for all Classes (http://bibian.ath.cx/openkore/viewtopic.php?t=28708&start=0&postdays=0&postorder=asc&highlight=)
4epT как ты и говорил, на Kore версии 2.*.* данный макрос не работает :(
Можешь помочь с данной проблемой? У меня Линк с душами: убийцы, алхимика, мудреца и волшебника
Заранее благодарен
Духи, а какую ошибку выдаёт? на 2.0.5 вроде должно пахать..
Извеняюсь за своё так сказать "нубство", а где я могу ушидеть эту ошибку?
Вот мои дествия:
1. Установил Kore 2.0.5
2. Открыл файл Control\macros.txt
3. Копирую макрос
4. Закрываю, сохраняю как... с кодировкой utf-8
5. Запускаю бота и пишу ему в Общий чат, в приват, а он ни слухом и не духом :) (во завернул)
Ещё одно, Медиум у меня и персонажи которые просят Линк находятся в разных гильдиях.
Вот такой у меня расклад. Пожалуйста помогите найти ошибки и недочёты.
Заранее Благодарен.
Духи, тот чар, который просит каста он находится в гилде "Rеvolution"?
ЗЫ: для каста нужно писать в общий чат слово "линк" и ничего другого.
Если не катит, то попробуй заменить строчку на:
pubm /линк/
4epT вот что за ошибку пишет:
"[dist=2.2] СкороВаркин (0): линк
[macro] automacro spirit triggered.
[macro] buff error: error in 7: @eval ($::players{$::playersID[$i]}->{jobID}) failed
the line number may be incorrect if you called a sub-macro."
эгей, чувак, найди строчку:
$jobID = @eval ($::players{$::playersID[$i]}->{jobID})
и допиши буковку d:
$jobID = @eval ($::players{$::playersID[$id]}->{jobID})
Очепяточка
Спасибо 4epT
Теперь пишет вот это и всё равно ничего не делает :(
"[macro] automacro spirit triggered."
ну и отлично, значит макрос работает :) ищи где он у тебя зашивается,
советую почитать гайд по макросам и в это тмакрос напихать метки, типо:
if ($g ~ $guild) goto ok
log g ~ guild
stop
:ok
log ok
и посмотри на каком этапе он у тебя зашивается
а некто не подскажит можно ли тут за место гильды писать ники или персов на которых накладывать линк после слова "линк" в общем чате как я понял это записывается в этой строчке $id = @player ($.lastpub)
тока что тут стирать я так и не понял подскажите плиз....
в смысле "писать ники или персов на которых накладывать линк" ??
344556, ну попробуй так:
1. замени строчку строчку строчку "$g = @eval (exists $..." на "$g = $.lastpub"
2. тут пиши ники друзей (советую сначало написать одного друга, если заработает, то писать остальных) "$guild = друг1, друг2"
[macro] automacro spirit triggered.
[macro][log] ok ;первая метка
[macro][log] yes;вторая метка
Syntax error in function 'sp' (Use Skill on Player)
Usage: sp <skill #> <player #> [level] ;как я понял не праваельно прописано
количество сп ,изменил:
:smith
do sp 460 $.i
goto stop
но каста на сб всеравно нет так же прописывал вместо smith , Blacksmith таже самая ошибка
344556, скорее всего тут у тя ошибка в имени игрока который каст просит.. иногда бывает что кора хренова его определяет..
ты бы почитал в консольных командах, что действительно значит команда sp, и тогда бы ты не писал бы: "количество сп ,изменил"
в начале макроса впиндюрь:
log lastpub = $.lastpub
log id = $id
[macro] automacro spirit triggered.
[macro][log] lastpub = крот
[macro][log] id =
[macro][log] ok
[macro][log] yes
Syntax error in function 'sp' (Use Skill on Player)
Usage: sp <skill #> <player #> [level]
всеравно не хочет работать и выдает туже ошибку может еще чем поможеш:-[
Quezacotl
27.12.2007, 02:19
Точно такаяже была когда то проблема,смог пройти,но там появилась еще одна трабла............
Вообщем вернулся к:
partySkill
notPartyOnly 1
поставил дистанцию,и тайм аут,на малых серверах это лучше чем просить линк в чаты...........
344556, лучше бы строчку "log id = $id" писать после: "$id = @player ($.lastpub)"
Quezacotl, ты напиши полностью что в конфиг запихал!
control\macros.txt: ignoring 'log lastpub = $.lastpub' (munch, munch, unknown automacro keyword)
control\macros.txt: ignoring 'log id = $id' (munch, munch, unknown automacro keyword)
пишет при загрузки...
[macro] automacro spirit triggered.
[macro][log] lastpub = крот
[macro][log] id = 2
[macro][log] ok
[macro][log] yes
Syntax error in function 'sp' (Use Skill on Player)
Usage: sp <skill #> <player #> [level]
суть проблеммы не изменил хотя как я понял и не должна была....ну что это можно както исправить?:-[
control\macros.txt: ignoring 'log lastpub = $.lastpub' (munch, munch, unknown automacro keyword)
control\macros.txt: ignoring 'log id = $id' (munch, munch, unknown automacro keyword)
это означfет, что ты строчки "log lastpub = $.lastpub" и "log id = $id" поместил в тело автомакроса, а это нужно в макрос запихать
...
блин ну конешно же у тя написано "do sp 460 $.i"
что такое $.i ?? Херня это какая-то!
пиши: do sp 460 $id
кстати 460 - это обкаст ханта, а не БСа!
кароче это ещё один баг, исправил (http://ragbot.ru/forum/showpost.php?p=11974&postcount=2). Надаж было такой касяк выложить..
ironmind
25.03.2008, 23:27
И снова я удивлён.... Такая ошибка и никто не заметил или лень было хз.... Линк на линкера это sp 461 а не 448 а то написанно что на линкера и стар гладиатора один и тот же линк....
ironmind, сенк, исправил ;) заодно ещё раз проверил..остальные цифры точно соответствуют профам
ironmind
14.04.2008, 03:06
Что то у меня приста не линкует, пишет вот что:
Syntax error in function 'sp' (Use Skill on Player)
Usage: sp <skill #> <player #> [level]
Спс за помощь заранее
Constantin
06.05.2008, 20:04
Люди а мона сделать так, чтобы линк кастовал спирит не по команде "линк" в чат а проста когда видит чара, каторый находиться в той гильде каторая прописана в макросе соул линкера?
Constantin, можно, а кто мешает?? Вот схема:
partySkill *** {
lvl 5
target Ник
target_whenStatusInactive
notPartyOnly 1
}
Constantin
06.05.2008, 23:53
так это только на 1 чара будет делать спирит или на всех кто в ги?
я проста предпологал что можна вот в шапке начального макроса, вот этого:
automacro spirit {
pubm "линк"
call buff
run-once 1
}
macro buff {
$id = @player ($.lastpub)
if ($id = -1) goto stop
$g = @eval (exists $::players{$::playersID[$id]}->{guild} ? $::players{$::playersID[$id]}->{guild}{name} : 'null')
$guild = гилда1, гилда2
if ($g ~ $guild) goto ok
место pubm "линк" вписать команду что при видимости чара из прописаной ги сразу начать кастовать то что далее в макросе прописано.
Это вообще реально?
Constantin, ты хочешь чтобы макрос срабатывал на каждого игрока которого он вообще встретит??
Ну попробуй замени условие "pm" на:
player /.*/, 10
Constantin
07.05.2008, 15:51
да на каждого, но ток из гильдии каторая у него прописана.
да и кстати если нуна так была сделать pubm "player /.*/, 10" то эт не пашет и проста без pumb тож)
pubm "player /.*/, 10" то эт не пашет
так ты фигню-то не пиши такую! тут условие написано не правельно!
Макрос работает, спасибо 4epT, но есть маленькая проблемка, даже тестил, id персов ники которых с пробелами не хочет определять поэтому не даёт линк, это баг самой коры или чтото гдето надо прописать?
действительно, поставил кору 2.0.6 всё отлично работает, спасибо*beer*
а что прописать нада чтобы каманды не в публичный чат были pubm, в в приват?
c <сообщ> - общий чат
g <сообщ> - гильдчат
pm <player> <сообщ> - в приват
ЗЫ. мануалы для кого писаны••••••••
alex600, он вообще то про макросы..
читайте гайд по макросам сударь
у мня макрос неработает пишет
[macro] buff error: error in 10: cannot find label stop
из за чего это может быть?
А не подскажите, как выполнить похожую проверку, но только с членами партии?
Т.е. давать линк есть попросил только кто-то из партии бота
а ты попробуй "guild" заменить на "party"
Добавлено через 46 секунд
lol2, у тебя похоже старый бот?
а ты попробуй "guild" заменить на "party"
Пробовал... но каждый раз @eval возвращает 'null', Хотя персонаж и в партии.
эй товарищи, а чё мы паримся на счёт партии?? поменяйте условие pubm на party
эй товарищи, а чё мы паримся на счёт партии?? поменяйте условие pubm на party
=) Тоже не совсем мой вариант. У меня автомакра срабатывает когда сопартиец машет влажком. Ладно, попробую сам раскопать, если что выйдет - поделюсь.
kill_man
13.02.2009, 16:41
automacro soul {
guild "z"
call buff
run-once 1
}
macro buff {
$id = @player ($.lastguild)
$jobID = @eval ($::players{$::playersID[$id]}->{jobID})
$spirit = 4008,4010,4011,4012,4013,4015,4016,4017,4018,4019
if ($jobID ~ $spirit) goto yes
goto stop
:yes
if ($jobID = 4008) goto LordKnight
if ($jobID = 4010) goto HighWizard
if ($jobID = 4011) goto Whitesmith
if ($jobID = 4012) goto Sniper
if ($jobID = 4013) goto AssassinCross
if ($jobID = 4015) goto Paladin
if ($jobID = 4016) goto Champion
if ($jobID = 4017) goto Professor
if ($jobID = 4018) goto Stalker
if ($jobID = 4019) goto Creator
:LordKnight
do sp 452 $.lastguild
goto stop
:HighWizard
do sp 453 $.lastguild
goto stop
:Whitesmith
do sp 458 $.lastguild
goto stop
:Sniper
do sp 460 $.lastguild
goto stop
:AssassinCross
do sp 457 $.lastguild
goto stop
:Paladin
do sp 450 $.lastguild
goto stop
:Champion
do sp 447 $.lastguild
goto stop
:Professor
do sp 449 $.lastguild
goto stop
:Stalker
do sp 456 $.lastguild
goto stop
:Creator
do sp 445 $.lastguild
goto stop
:stop
release soul
stop
}
:cool: в строке " $jobID = @eval ($::№players{$::№playersID[$id]}->{jobID})" знаки № стереть просто смайлы появляются =))
учимся работать с форумом:
http://savepic.ru/503176.png
Что у меня не так??
automacro spirit {
pubm "линк"
call buff
run-once 1
}
macro buff {
$id = @player ($.lastpub)
if ($id = -1) goto stop
$g = $.lastpub
$guild = Holy Templar
if ($g ~ $guild) goto ok
stop
:ok
$jobID = @eval ($::players{$::playersID[$id]}->{jobID})
$spirit = 4010,4011,4013,4019,4009
if ($jobID ~ $spirit) goto yes
goto stop
:yes
if ($jobID = 7) goto knight
if ($jobID = 13) goto knight
if ($jobID = 4008) goto knight
if ($jobID = 4014) goto knight
if ($jobID = 12) goto assassin
if ($jobID = 4013) goto assassin
if ($jobID = 10) goto smith
if ($jobID = 4011) goto smith
if ($jobID = 14) goto paladin
if ($jobID = 21) goto paladin
if ($jobID = 4015) goto paladin
if ($jobID = 4022) goto paladin
if ($jobID = 4012) goto sniper
if ($jobID = 11) goto sniper
if ($jobID = 16) goto professor
if ($jobID = 4017) goto professor
if ($jobID = 8) goto priest
if ($jobID = 4009) goto priest
if ($jobID = 15) goto champion
if ($jobID = 4016) goto champion
if ($jobID = 4010) goto wizard
if ($jobID = 4018) goto stalker
if ($jobID = 18) goto creator
if ($jobID = 4019) goto creator
if ($jobID = 4020) goto clown
if ($jobID = 4021) goto clown
if ($jobID = 19) goto clown
if ($jobID = 20) goto clown
if ($jobID = 4047) goto star
if ($jobID = 4049) goto soul
if ($jobID = 23) goto snoob
:knight
do sp 452 $id
goto stop
:assassin
do sp 457 $id
goto stop
:smith
do sp 458 $id
goto stop
:paladin
do sp 450 $id
goto stop
:sniper
do sp 460 $id
goto stop
:professor
do sp 449 $id
goto stop
:priest
do sp 454 $id
goto stop
:champion
do sp 447 $id
goto stop
:wizard
do sp 453 $id
goto stop
:stalker
do sp 456 $id
goto stop
:creator
do sp 445 $id
goto stop
:clown
do sp 455 $id
goto stop
:star
do sp 448 $id
goto stop
:soul
do sp 461 $id
goto stop
:snoob
do sp 451 $id
:stop
release spirit
}
после он выдеёт:
[macro] automacro spirit triggered.
это хорошо что оно тебе пишет! Значит АМ сработал.. что не так?
это хорошо что оно тебе пишет! Значит АМ сработал.. что не так?
всё после этого он нечего не пишет..... и действий ноль
почитай гайд про макросы и напихай в этот макрос строчки:
log проверка
и посмотри на каком этапе у тебя макрос затыкается
automacro link {
pm "soul"
call {
$id = @player ($.lastpm)
if ($id < 0) stop
$jobID = @eval ($::players{$::playersID[$id]}->{jobID})
if ($jobID = 7) goto knight
if ($jobID = goto priest
if ($jobID = 9) goto wizard
if ($jobID = 10) goto smith
if ($jobID = 11) goto sniper
if ($jobID = 12) goto assassin
if ($jobID = 13) goto knight
if ($jobID = 14) goto paladin
if ($jobID = 15) goto champion
if ($jobID = 16) goto professor
if ($jobID = 17) goto stalker
if ($jobID = 1 goto creator
if ($jobID = 19) goto clown
if ($jobID = 20) goto clown
if ($jobID = 21) goto paladin
if ($jobID = 23) goto supernovice
if ($jobID = 400 goto knight
if ($jobID = 4009) goto priest
if ($jobID = 4010) goto wizard
if ($jobID = 4011) goto smith
if ($jobID = 4012) goto sniper
if ($jobID = 4013) goto assassin
if ($jobID = 4014) goto knight
if ($jobID = 4015) goto paladin
if ($jobID = 4016) goto champion
if ($jobID = 4017) goto professor
if ($jobID = 401 goto stalker
if ($jobID = 4019) goto creator
if ($jobID = 4020) goto clown
if ($jobID = 4021) goto clown
if ($jobID = 4022) goto paladin
if ($jobID = 4047) goto star
if ($jobID = 4049) goto soul
:creator
do sp 445 $id
stop
release link
:champion
do sp 447 $id
stop
release link
:star
do sp 448 $id
stop
release link
:professor
do sp 449 $id
stop
release link
:paladin
do sp 450 $id
stop
release link
:supernovice
do sp 451 $id
stop
release link
:knight
do sp 452 $id
stop
release link
:wizard
do sp 453 $id
stop
release link
:priest
do sp 454 $id
stop
release link
:clown
do sp 455 $id
stop
release link
:stalker
do sp 456 $id
stop
release link
:assassin
do sp 457 $id
stop
release link
:smith
do sp 458 $id
stop
release link
:sniper
do sp 460 $id
stop
release link
:soul
do sp 461 $id
stop
release link
}
}
в итоге когда бот получает пм "soul" [macro] automacro link triggered.
[macro] tempMacro0 error: error in 4: syntax error in if statement
при етом бот невыполняет своих обязательств,вобщем кто сталкивался помогите подсказками,искать сейчас времени нету.
я пропиcал так, вариант кнайта
automacro link {
pubm "link"
call {
$id = @player ($.lastpub)
if ($id < 0) stop
$jobID = @eval ($::players{$::playersID[$id]}->{jobID})
if ($jobID = 4008) goto LordKnight
:LordKnight
do sp 452 $id 5
goto stop
а на кроса как зделать? джоб айди изменить?
if ($jobID = 4013) goto AssassinCross
:AssassinCross
do sp 457 $id 5
goto stop
вот такой макрос, всем линк даёт но профессору нехочет( что не так?
automacro link {
pm "-"
run-once 1
call linktime
}
macro linktime {
release link
$id = @player ($.lastpm)
$jobID = @eval ($::players{$::playersID[$id]}->{jobID})
if ($jobID = 7) goto knight
if ($jobID = 13) goto knight
if ($jobID = 4008) goto knight
if ($jobID = 4014) goto knight
if ($jobID = 12) goto assassin
if ($jobID = 4013) goto assassin
if ($jobID = 10) goto smith
if ($jobID = 4011) goto smith
if ($jobID = 14) goto paladin
if ($jobID = 21) goto paladin
if ($jobID = 4015) goto paladin
if ($jobID = 4022) goto paladin
if ($jobID = 4012) goto sniper
if ($jobID = 11) goto sniper
if ($jobID = 16) goto professor
if ($jobID = 4017) goto professor
if ($jobID = 8) goto priest
if ($jobID = 4009) goto priest
if ($jobID = 15) goto champion
if ($jobID = 4016) goto champion
if ($jobID = 4010) goto wizard
if ($jobID = 4018) goto stalker
if ($jobID = 18) goto creator
if ($jobID = 4019) goto creator
if ($jobID = 4020) goto clown
if ($jobID = 4021) goto clown
if ($jobID = 19) goto clown
if ($jobID = 20) goto clown
if ($jobID = 4047) goto star
if ($jobID = 4049) goto soul
if ($jobID = 23) goto snoob
:snoob
do sp 451 $.lastpm 5
stop
release link
:star
do sp 448 $.lastpm 5
stop
release link
:soul
do sp 448 $.lastpm 5
stop
release link
:knight
do sp 452 $.lastpm 5
stop
release link
:priest
do sp 454 $.lastpm 5
stop
release link
:wizard
do sp 453 $.lastpm 5
stop
release link
:smith
do sp 458 $.lastpm 5
stop
release link
:sniper
do sp 460 $.lastpm 5
stop
release link
:assassin
do sp 457 $.lastpm 5
stop
release link
:paladin
do sp 450 $.lastpm 5
stop
release link
:champion
do sp 447 $.lastpm 5
stop
release link
:professor
do sp 449 $.lastpm 5
stop
release link
:creator
do sp 445 $.lastpm 5
stop
release link
:clown
do sp 455 $.lastpm 5
stop
release link
:stalker
do sp 456 $.lastpm 5
stop
release link
}
poiu,ОТКЛЮЧИ СМАЙЛЫ в тексте.
Добавлено через 10 минут
покачто из етой темы неодин макрос у меня неработает))
у мня мой макрос работает как я говорил, но только профессору недаёт
может у тебя имя профа из 2х слов?
попробуй не $lastpm, возьми $id или $lastmatch1
в этмоместе
:Professor
do sp 449 $.lastpm
goto stop
trouble, не забывай про регистр!
ага ник из 2 слов, попробую что ты предлагаеш потом отпишусь
vBulletin® v3.8.11, Copyright ©2000-2024, vBulletin Solutions Inc. Перевод: zCarot