- Лучшие ответы
- 0
Плагин SteamBonus писал вчера вечером чисто для своего сервера. Потом решил выложить сюда, мало ли кому понадобится.
За основу был взят SteamBonus 1.2 by Stimul.
Выдаёт бонусы в виде брони, денег, гранат, дигла в зависимости от скилла игрока. Сообщает о бонусе игроку, получившему его, в чат. Скилл считается как фраги/смерти. Чем выше скилл, тем меньше бонус и меньше шанс его получить. Если смертей 0, то выдаются деньги в сумме фраги*200. Если фрагов 0 и смертей 0, то ничего не происходит).
Код простой, под себя подредактировать сможет каждый, не забаненный в гугле.
С плагинами типа вип конфликтовать по идее не должен.
Особенности:
Установка и настройка:
За основу был взят SteamBonus 1.2 by Stimul.
Выдаёт бонусы в виде брони, денег, гранат, дигла в зависимости от скилла игрока. Сообщает о бонусе игроку, получившему его, в чат. Скилл считается как фраги/смерти. Чем выше скилл, тем меньше бонус и меньше шанс его получить. Если смертей 0, то выдаются деньги в сумме фраги*200. Если фрагов 0 и смертей 0, то ничего не происходит).
Код простой, под себя подредактировать сможет каждый, не забаненный в гугле.
С плагинами типа вип конфликтовать по идее не должен.
Особенности:
- Выдача бонуса игрокам STEAM каждый раунд. Ну или почти каждый, он скилла зависит.
- Бонус выдаётся случайно из определённого набора бонусов.
- Бонус выдаётся в зависимости от скилла игрока. Чем выше скилл, тем меньше бонус и меньше шанс его получить.
- Игроку, получившему бонус, выдаётся сообщение в чат.
- Минимальная нагрузка на сервер.
- Встроенный колорчат.
1) Качаем исходник.
2) Строка 89
3 - это раунд, с которого будет выдаваться бонус.
3) Смотрим на функцию public fw_CS_RoundRespawn_Post(id)
В ней есть блоки типа
switch(random(5)) загадывает случайное число в диапазоне от 0 до 4.
case 0: - что произойдёт если выпадет 0, case 1: - если выпадет 1, case 2: - если выпадет 2, case 3: - если выпадет 3. А для 4 своего case нету, поэтому, если выпадет 4, игрок не получит ничего. Именно так реализована вероятность получения бонуса за скилл. Конкретно в этом участке кода вероятность получения 4 из 5. Хотите вероятность 100% - замените switch(random(5)) на switch(random(4)). default: return; нужен, если (random(N) больше, чем число case. То есть если загадывется 5 чисел (switch(random(5))) , а выпадает 4 числа(case 0..case 3), то нужен. Если загадывается 5 чисел и выпадает 5, то можете убрать.
if (soot == 1) говорит о том, что будет рассматривать игроков, у которых соотношение фрагов к смертям [1;2).
soot = округлённое в меньшую сторону соотношение фраги/смерти. К примеру, 19/10=1, 10/10=1.
Всего в коде 4 подобных участка. Каждый участок определяет скилл, после чего - вероятность бонуса и сам бонус.
cs_set_user_money(id, cs_get_user_money(id) + get_user_frags(id)*200); - если у игрока 0 смертей, то даём ему денег = фраги*200
2) Строка 89
PHP:
if(round_number>=3)
3) Смотрим на функцию public fw_CS_RoundRespawn_Post(id)
В ней есть блоки типа
PHP:
else if (soot == 1)
{
switch(random(5))
{
case 0:
{
cs_set_user_money(id, cs_get_user_money(id) + 1500);
ChatColor(id, "^3%s ^4 1500$", PREFIX);
}
case 1:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
ChatColor(id, "^3%s ^4HE + 2FLASH", PREFIX);
}
case 2:
{
cs_set_user_armor(id, 100, CsArmorType:2);
ChatColor(id, "^3%s ^4Броня и Шлем", PREFIX);
}
case 3:
{
get_player_deagle(id);
}
default: return;
}
}
switch(random(5)) загадывает случайное число в диапазоне от 0 до 4.
case 0: - что произойдёт если выпадет 0, case 1: - если выпадет 1, case 2: - если выпадет 2, case 3: - если выпадет 3. А для 4 своего case нету, поэтому, если выпадет 4, игрок не получит ничего. Именно так реализована вероятность получения бонуса за скилл. Конкретно в этом участке кода вероятность получения 4 из 5. Хотите вероятность 100% - замените switch(random(5)) на switch(random(4)). default: return; нужен, если (random(N) больше, чем число case. То есть если загадывется 5 чисел (switch(random(5))) , а выпадает 4 числа(case 0..case 3), то нужен. Если загадывается 5 чисел и выпадает 5, то можете убрать.
if (soot == 1) говорит о том, что будет рассматривать игроков, у которых соотношение фрагов к смертям [1;2).
soot = округлённое в меньшую сторону соотношение фраги/смерти. К примеру, 19/10=1, 10/10=1.
Всего в коде 4 подобных участка. Каждый участок определяет скилл, после чего - вероятность бонуса и сам бонус.
cs_set_user_money(id, cs_get_user_money(id) + get_user_frags(id)*200); - если у игрока 0 смертей, то даём ему денег = фраги*200
Установка и настройка:
- скачиваем исходник плагина.
- меняем настройки по своему усмотрению. Как и что менять - описано выше.
- компилируем.
- ставим на сервер и привлекаем игроков STEAM.