12.05.2011, 23:53
|
#59
|
Местный
Регистрация: 23.11.2010
Сообщений: 617
Сказал Спасибо: 22
Имеет 83 спасибок в 65 сообщенях
|
Цитата:
Вы ввели слишком длинный текст (6565 символов). Пожалуйста, сократите его до 5000 символов.
|
![](images/smilies/sad.gif)
По просьбе из поста выше добавлю схему для синхронизации в пати бд + свс.
Оффтоп
Сразу скажу, что у меня нет свса, потому не проверял на себе ![](images/smilies/smile.gif)
Итак, для примера предположим, что последовательность дс такая:
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()
//===============================
Оба скрипта проверяют, в пати ли второй бард. Если да, то работают по схеме синхронизации с напарником, если нет, то работают по одиночной схеме. Если вы никогда не грузите их вместе или никогда по одному, можно вырезать ненужный кусок.
Расширить скрипт слежением за наличием в пати целевого ДД, которого нужно бафать, проверками на достаточность МР, смертью и прочими полезностями можете самостоятельно ![](images/smilies/smile.gif) Не потому, что я злой, а потому что волкер юзал всего три дня
Пояснения:
Оффтоп
Вы видите две процедуры у каждого барда: SOLO, если бард в пати один, и DUO, если бардов двое. В текущем варианте скрипт безопасно добафает, если один из бардов выпал посреди выполнения очереди дс. Однако для ситуации присоединения одного из бардов посреди выполнения нужно немного доработать. ![](images/smilies/dirol.gif) Предела совершенству нет.
Каждый данс/сонг, кроме первого, имеет свой блок вида:
Код:
!CharBuffs(текущий д/с) -- нужен ли этот баф
{
CharBuffs(предыдущий д/с) -- висит ли предыдущий баф
{
UseSkill(текущий д/с) -- дать этот баф
Return()
}
}
Первый в [общей, глобальной] очереди д/с имеет блок вида:
Код:
!CharBuffs(Song of Renewal) -- нужно ли стартовать очередь
{
UseSkill(Song of Renewal) -- дать стартовый баф
Return()
}
Заметьте, что первый данс в примере у свса. У бд его баф сразу третий, потому у бд нет "урезанного" блока.
Запуск очереди скрипт производит после полного падения д/с. Не умеет волкер видеть "оставшееся время бафа"
Последний раз редактировалось deNoor, 13.05.2011 в 02:58.
|
|
|