12.05.2011, 23:53
|
#59
|
Местный
Регистрация: 23.11.2010
Сообщений: 617
Сказал Спасибо: 22
Имеет 83 спасибок в 65 сообщенях
|
Цитата:
Вы ввели слишком длинный текст (6565 символов). Пожалуйста, сократите его до 5000 символов.
|
По просьбе из поста выше добавлю схему для синхронизации в пати бд + свс.
Оффтоп
Сразу скажу, что у меня нет свса, потому не проверял на себе
Итак, для примера предположим, что последовательность дс такая:
Song of Renewal
Song of Champion
Dance of Fury
Song of Hunter
Dance of Fire
Song of Earth
Dance of the Warrior
Song of Warding
Dance of the Vampire
У бд нужно запустить скрипт:
Оффтоп
Код:
//========Run it on BD=======
Label(Main)
!IsMember(mySWSname)
Call(Dance)
IsMember(mySWSname)
Call(DanceSong)
Delay(300)
Jmp(Main)
//==============SOLO=================
Label(Dance)
CharBuffs(Dance of the Vampire)
{
Return()
}
!CharBuffs(Dance of Fury)
{
UseSkill(Dance of Fury)
Return()
}
!CharBuffs(Dance of Fire)
{
CharBuffs(Dance of Fury)
{
UseSkill(Dance of Fire)
Return()
}
}
!CharBuffs(Dance of the Warrior)
{
CharBuffs(Dance of Fire)
{
UseSkill(Dance of the Warrior)
Return()
}
}
!CharBuffs(Dance of Shadows)
{
CharBuffs(Dance of the Warrior)
{
UseSkill(Dance of Shadows)
Return()
}
}
!CharBuffs(Dance of the Vampire)
{
CharBuffs(Dance of Shadows)
{
UseSkill(Dance of the Vampire)
Return()
}
}
Return()
//===============================
//================DUO===============
Label(DanceSong)
CharBuffs(Dance of the Vampire) -- висит ли последний дс в очереди
{
Return()
}
!CharBuffs(Dance of Fury)
{
CharBuffs(Song of Champion)
{
UseSkill(Dance of Fury)
Return()
}
}
!CharBuffs(Dance of Fire)
{
CharBuffs(Song of Hunter)
{
UseSkill(Dance of Fire)
Return()
}
}
!CharBuffs(Dance of the Warrior)
{
CharBuffs(Song of Earth)
{
UseSkill(Dance of the Warrior)
Return()
}
}
!CharBuffs(Dance of the Vampire)
{
CharBuffs(Song of Warding)
{
UseSkill(Dance of the Vampire)
Return()
}
}
Return()
//===============================
У свса нужно запустить скрипт:
Оффтоп
Код:
//========Run it on SWS=======
Label(Main)
!IsMember(myBDname)
Call(Song)
IsMember(myBDname)
Call(SongDance)
Delay(300)
Jmp(Main)
//=================SOLO==============
Label(Song)
CharBuffs(Song of Warding)
{
Return()
}
!CharBuffs(Song of Renewal)
{
UseSkill(Song of Renewal)
Return()
}
!CharBuffs(Song of Champion)
{
CharBuffs(Song of Renewal)
{
UseSkill(Song of Champion)
Return()
}
}
!CharBuffs(Song of Hunter)
{
CharBuffs(Song of Champion)
{
UseSkill(Song of Hunter)
Return()
}
}
!CharBuffs(Song of Earth)
{
CharBuffs(Song of Hunter)
{
UseSkill(Song of Earth)
Return()
}
}
!CharBuffs(Song of Warding)
{
CharBuffs(Song of Earth)
{
UseSkill(Song of Warding)
Return()
}
}
Return()
//===============================
//===================DUO============
Label(SongDance)
CharBuffs(Dance of the Vampire) -- висит ли последний дс в очереди
{
Return()
}
!CharBuffs(Song of Renewal)
{
UseSkill(Song of Renewal)
Return()
}
!CharBuffs(Song of Champion)
{
CharBuffs(Song of Renewal)
{
UseSkill(Song of Champion)
Return()
}
}
!CharBuffs(Song of Hunter)
{
CharBuffs(Dance of Fury)
{
UseSkill(Song of Hunter)
Return()
}
}
!CharBuffs(Song of Earth)
{
CharBuffs(Dance of Fire)
{
UseSkill(Song of Earth)
Return()
}
}
!CharBuffs(Song of Warding)
{
CharBuffs(Dance of the Warrior)
{
UseSkill(Song of Warding)
Return()
}
}
Return()
//===============================
Оба скрипта проверяют, в пати ли второй бард. Если да, то работают по схеме синхронизации с напарником, если нет, то работают по одиночной схеме. Если вы никогда не грузите их вместе или никогда по одному, можно вырезать ненужный кусок.
Расширить скрипт слежением за наличием в пати целевого ДД, которого нужно бафать, проверками на достаточность МР, смертью и прочими полезностями можете самостоятельно Не потому, что я злой, а потому что волкер юзал всего три дня
Пояснения:
Оффтоп
Вы видите две процедуры у каждого барда: SOLO, если бард в пати один, и DUO, если бардов двое. В текущем варианте скрипт безопасно добафает, если один из бардов выпал посреди выполнения очереди дс. Однако для ситуации присоединения одного из бардов посреди выполнения нужно немного доработать. Предела совершенству нет.
Каждый данс/сонг, кроме первого, имеет свой блок вида:
Код:
!CharBuffs(текущий д/с) -- нужен ли этот баф
{
CharBuffs(предыдущий д/с) -- висит ли предыдущий баф
{
UseSkill(текущий д/с) -- дать этот баф
Return()
}
}
Первый в [общей, глобальной] очереди д/с имеет блок вида:
Код:
!CharBuffs(Song of Renewal) -- нужно ли стартовать очередь
{
UseSkill(Song of Renewal) -- дать стартовый баф
Return()
}
Заметьте, что первый данс в примере у свса. У бд его баф сразу третий, потому у бд нет "урезанного" блока.
Запуск очереди скрипт производит после полного падения д/с. Не умеет волкер видеть "оставшееся время бафа"
Последний раз редактировалось deNoor, 13.05.2011 в 02:58.
|
|
|