Перейти к содержимому

Персонализация

Вы можете создать новую базу чата для вашего языка или изменить существующую. Файлы чата находятся в папке addons/yapb/conf/lang и называются **_chat.cfg, где ** — это код языка (например, en_chat.cfg). Загружается файл для языка, установленного в yb_language.

Боты могут писать сообщения в чат в зависимости от ситуации: закладка бомбы, убийство врага, атака тиммейтов и т.д.

Файл имеет единственный корневой блок Chat. Внутри него каждая секция чата — это блок с ключевым словом raw: его строки берутся дословно, по одному сообщению на строку. Порядок сообщений рандомизируется самим ботом.

Chat {
raw Killed {
%v, you're no match for me!
Sorry, %v. You got in my way.
That'll teach you, %v!
}
}
Плейсхолдер Описание
%v Вставляет ник последнего игрока, убитого ботом
%f Вставляет ник игрока с наибольшим количеством фрагов
%t Вставляет ник случайного живого тиммейта
%e Вставляет ник случайного живого врага
%s Вставляет ник игрока, которому бот отвечает (или игрока с наибольшим количеством фрагов)
%m Вставляет имя текущей карты
%d Вставляет название игры (Counter-Strike/CS или Condition Zero/CZ)
%r Вставляет оставшееся время раунда в формате мм:сс
%g Вставляет автора текущего файла графа

В одном сообщении подставляется не более шести плейсхолдеров. Неизвестные маркеры остаются как есть.

Секция Описание
BombPlant Сообщения, которые боты пишут после закладки бомбы
Killed Сообщения, которые боты пишут после убийства врага. Используйте плейсхолдер %v, чтобы вставить ник убитого врага
DeadChat Сообщения, которые боты пишут, когда они мертвы или находятся в режиме наблюдателя
Welcome Сообщения, которые боты пишут при подключении к серверу
TeamAttack Сообщения, которые боты пишут, когда по ним стреляет тиммейт
TeamKill Сообщения, которые боты пишут, когда убили тиммейта
Unknown Запасные ответы, используемые, когда ни одно ключевое слово не совпало с текстом чата (см. Replies ниже)

Пример — когда бот убивает врага с ником “John Smith”, он может написать “You’re dead John Smith!”, используя строку You're dead %v! из секции Killed.

Блок Replies задаёт сообщения, которые боты пишут в ответ на чат игрока, если в нём содержится известное ключевое слово. Каждая группа ответов — это блок (имя произвольное) с одной или несколькими записями key = "..." и анонимным блоком raw, в котором перечислены ответы.

Chat {
Replies {
AIMBOT {
key = "AIMBOT"
key = "WALLHACK"
raw {
%s, are you cheating?
Aimbots are cool, shut up %s!
I saw %f peeking through walls. Coincidence? I think not.
}
}
AGAIN {
key = " AGAIN "
raw {
%s, things are always repeating - aren't they?
Here we go again. Deja vu.
}
}
}
}

Вот как это будет выглядеть в игре:

John Smith: Bla bla bla aimbot
Ricardo Milos: John Smith, are you cheating?
Keanu Reeves: Bla bla bla again bla bla...
Tommy Vercetti: Here we go again. Deja vu.

Боты могут использовать эти ответы в случайном порядке. Ключевые слова сопоставляются с текстом чата без учёта регистра; заключите ключ в пробелы (например, " AGAIN "), чтобы он совпадал как целое слово.


YaPB поддерживает голосовой чат так же, как ZBot. Все пути к аудиофайлам голосового чата YaPB находятся в файле: chatter.cfg, который расположен в папке addons/yapb/conf.

Файл имеет единственный корневой блок Chatter. Каждое событие внутри него — это блок с именем события голосового чата, содержащий имена звуковых файлов (без префикса sound/ и расширения), по одному на строку. Также принимается скалярное значение через запятую:

Chatter {
RewritePath = sound/radio/bot
CoverMe {
cover_me
cover_me2
}
EnemyDown = enemy_down, enemy_down2
}

RewritePath задаёт папку, в которой расположены аудиофайлы голосового чата. По умолчанию это sound/radio/bot. Он может находиться внутри или снаружи блока Chatter.

Отсутствующие звуковые файлы сообщаются в консоль. Если отсутствует более десяти файлов, голосовой чат отключается, и боты откатываются на стандартное радио (yb_radio_mode сбрасывается в 1).

Событие Описание
CoverMe Радиокоманда “Прикрой меня!”
YouTakePoint Радиокоманда “Займи точку.”
HoldPosition Радиокоманда “Держать эту позицию.”
RegroupTeam Радиокоманда “Собрать команду.”
FollowMe Радиокоманда “Следуй за мной.”
TakingFire Радиокоманда “Принимаю огонь… Нужна помощь!”
GoGoGo Радиокоманда “Пошли, пошли, пошли!”
Fallback Радиокоманда “Команда, отступаем!”
StickTogether Радиокоманда “Держимся вместе, команда.”
GetInPosition Радиокоманда “Занять позицию и ждать моей команды.”
StormTheFront Радиокоманда “Штурмуем фронт!”
ReportTeam Радиокоманда “Доложить, команда.”
Affirmative Радиокоманда “Так точно./Принято.”
EnemySpotted Радиокоманда “Враг замечен.”
NeedBackup Радиокоманда “Нужно подкрепление.”
SectorClear Радиокоманда “Сектор чист.”
InPosition Радиокоманда “Я на позиции.”
ReportingIn Радиокоманда “Докладываю.”
ShesGonnaBlow Радиокоманда “Уходи оттуда, сейчас рванёт!”
Negative Радиокоманда “Негативно.”
EnemyDown Радиокоманда “Враг уничтожен.”
DiePain Звуки смерти бота
GoingToPlantBomb Бот говорит, что собирается заложить бомбу
GoingToGuardVIPSafety Бот говорит, что собирается охранять зону эвакуации VIP
RescuingHostages Бот говорит, что спасает заложников
TeamKill Реакция бота на убийство тиммейта
GuardingEscapeZone Бот говорит, что охраняет зону побега террористов
GuardingVipSafety Бот говорит, что охраняет зону эвакуации VIP
PlantingC4 Бот говорит, что закладывает бомбу
InCombat Бот говорит, что прямо сейчас сражается с врагом
SeeksEnemy Бот говорит, что ждёт врага
Nothing Бот говорит, что в этом секторе никого нет
UseHostage Бот говорит, что взял заложника
WonTheRound Реакция бота на победу
QuicklyWonTheRound Реакция бота на быструю победу
NoEnemiesLeft Бот говорит, что оставшихся врагов больше нет
FoundBombPlace Бот говорит, что нашёл место с заложенной бомбой
WhereIsTheBomb Бот спрашивает, где бомба
DefendingBombSite Бот говорит, что защищает точку закладки бомбы
BarelyDefused Реакция бота на едва успевшее разминирование
NiceShotCommander Реакция бота на хороший выстрел игрока
SpotTheBomber Бот говорит, что заметил носителя бомбы
VIPSpotted Бот говорит, что заметил VIP
FriendlyFire Реакция бота, когда по нему стреляет тиммейт
GotBlinded Реакция бота на светошумовую гранату
GuardingPlantedC4 Бот говорит, что охраняет заложенный C4
DefusingC4 Бот говорит, что разминирует C4
FoundC4 Бот говорит, что нашёл брошенный C4
ScaredEmotion Реакция бота, когда он встретил несколько врагов, а тиммейтов рядом нет
HeardEnemy Бот говорит, что слышал врага
SpottedOneEnemy Бот говорит, что заметил одного врага
SpottedTwoEnemies Бот говорит, что заметил двух врагов
SpottedThreeEnemies Бот говорит, что заметил трёх врагов
TooManyEnemies Бот говорит, что заметил много врагов (четыре и более)
SniperWarning Бот предупреждает о снайпере
SniperKilled Бот сообщает, что убил снайпера
OneEnemyLeft Бот говорит, что остался только один враг
TwoEnemiesLeft Бот говорит, что осталось два врага
ThreeEnemiesLeft Бот говорит, что осталось три врага
NiceShotPall Реакция бота на хороший выстрел другого бота
GoingToGuardHostages Бот говорит, что собирается охранять заложников
GoingToGuardDroppedBomb Бот говорит, что собирается охранять брошенную бомбу
OnMyWay Бот говорит, что скоро будет
LeadOnSir Бот говорит игроку, что последует за ним
PinnedDown Бот просит помощи у тиммейтов, когда они рядом
GottaFindTheBomb Бот говорит, что собирается найти бомбу
YouHeardTheMan Бот отвечает на фразы из NewRound (сейчас не используется)
LostCommander Бот говорит, что командир (игрок) был убит (сейчас не используется)
NewRound Бот говорит о начале раунда (сейчас не используется)
BehindSmoke Бот говорит, что находится за дымом (сейчас не используется)
BombSiteSecured Бот говорит, что закрепился на точке закладки бомбы
GoingToCamp Бот говорит, что собирается кемперить (охранять область)
Camp Бот говорит, что кемперит
OnARoll Бот хвастается убийством большого количества врагов за короткое время
Chatter {
RewritePath = sound/radio/bot
CoverMe {
cover_me
cover_me2
}
TakingFire {
taking_fire_need_assistance2
i_could_use_some_help
i_could_use_some_help_over_here
help
need_help
need_help2
im_in_trouble
}
Affirmative = affirmative, roger_that, me_too, ill_come_with_you, ill_go_with_you, ill_go_too, i_got_your_back, i_got_your_back2, im_with_you, sounds_like_a_plan, good_idea
SectorClear {
clear
clear2
clear3
area_clear
all_clear_here
nothing_moving_over_here
all_quiet
nothing
}
PlantingC4 = planting_the_bomb, planting
DefusingC4 {
defusing
defusing_bomb
defusing_bomb_now
}
}