Недавно меня попросили создать разные Strafe (да так, чтоб безпалевно они делались). Так Вот Strafe Script'ы к сожалению я плохо делаю но идеи ко мне иногда приходят очень даже не плохие
и идея такова: что если Strafe'ы запишешь в список, например: "strafe1;straf2;strafe3;strafe4;" то они выполнятся все... Т.е. нельзя их остановить, а loop как раз нам и дает эту возможность.
Вот так выглядит пример для 4 Strafe'ов:
Код:
alias strafe strafe1
alias strafe1 "Код Strafe'а;alias strafe strafe2"
alias strafe2 "Код Strafe'а;alias strafe strafe3"
alias strafe3 "Код Strafe'а;alias strafe strafe4"
alias strafe4 "Код Strafe'а;alias strafe strafe1"
alias +strafe "-forward;alias kzh_xtd @strafe;@strafe"
alias -strafe "alias kzh_xtd"
alias @strafe "strafe;kzh_loopx td"
Т.е. в loop прописываем 1 alias который обозначает Strafe, а уже в самом Strafe мы переадресовываем на другой.
Ну вроде бы всё, но а что если мы сделаем больше Strafe'ов чем надо и нас поймают и забанят.. Тогда можно сделать ограничитель Strafe'ов т.е. например 4 Strafe'а за раз.
Код на ограничение Strafe'ов (макс. 4 Strafe'а):
Код:
alias strafe++ strafecount=1
alias strafecount=1 "alias strafe++ strafecount=2" //1ый Strafe
alias strafecount=2 "alias strafe++ strafecount=3" //2ой Strafe
alias strafecount=3 "alias strafe++ strafecount=4" //3ий Strafe
alias strafecount=4 "-strafe" //4ый Strafe - выключаем Strafe'ы
//и loop тогда тоже не много меняется...
alias +strafe "-forward;alias kzh_xtd @strafe;@strafe"
alias -strafe "alias kzh_xtd;alias strafe++ strafecount=1" //обнуляем счетчик Strafe'ов
alias @strafe "strafe;strafe++;kzh_loopx td" //прибавляем 1 Strafe к счетчику Strafe'ов
Ну а что если мы летим далеко, то нам блокировка не нужна...
Код:
alias strafeblock_toggle strafeblock_off
alias strafeblock_off "alias strafeblock;motd_write StrafeBlock: Disabled;developer 1;motd;developer 0;alias strafeblock_toggle strafeblock_on"
alias strafeblock_on "alias strafeblock -strafe;motd_write StrafeBlock: Enabled;developer 1;motd;developer 0;alias strafeblock_toggle strafeblock_off"
bind "" strafeblock_toggle
//и счетчик Strafe'ов тогда тоже не много меняется...
alias strafecount=4 "strafeblock" //4ый Strafe - выключаем Strafe'ы
alias strafeblock -strafe
И так в завершении я напишу как добавить PreStrafe к этому script'y.
На 1 взгляд просто:
Код:
alias PreStrafe "Код PreStrafe'а"
// и изменяем начало Loop'a
alias +strafe "-forward;alias kzh_xtd @strafe;PreStrafe;@strafe"
Но тут есть проблема.. PreStrafe может быть как вправо так и влево и следующий strafe из alias'a "Strafe" может совпадать с PreStrafe и следовательно замедлять весь прыжок..
И тут есть 2 решения:
1) Согласовать 1 Strafe с PreStrafe'ом
2) Согласовать PreStrafe с 1 Strafe, но тогда прийдётся делать 2 PreStrafe. Один влево другой в право.
И так 1 способ - Согласовать 1 Strafe с PreStrafe'ом и напимер PreStrafe у нас влево.
Код:
alias LeftPreStrafe "Код PreStrafe'а"
// добавляем согласовывающие alias'ы в strafe'ы
alias strafe strafe1
alias strafe1 "Код Strafe'а вправо;alias strafe strafe2;alias 1strafe strafe3" // т.к. PreStrafe влево и следующий Strafe тоже влево нам надо сделать чтоб начальный Strafe был в другую сторону - strafe3
alias strafe2 "Код Strafe'а влево;alias strafe strafe3;alias 1strafe strafe3"
alias strafe3 "Код Strafe'а вправо;alias strafe strafe4;alias 1strafe strafe1"
alias strafe4 "Код Strafe'а влево;alias strafe strafe1;alias 1strafe strafe1"
// и изменяем начало Loop'a и конец
alias +strafe "-forward;alias kzh_xtd @strafe;LeftPreStrafe;@strafe" // делаем PreStrafe перед Strafe Loop'ом
alias -strafe "alias kzh_xtd;alias strafe++ strafecount=1;alias strafe 1strafe" // Согласовываем 1strafe с PreStrafe, это надо делать в конце loop'a иначе будут делаться только strafe1 и strafe3
А второй способ, на мой взгляд, "бессмысленый", но если вы хотите то я могу написать.
П.С. Извиняюсь если статья бессмысленная, но мне кажется что не всякий додумается как сделать "Разные Strafe в loop'е"