[CS: Source] Sm Mani Bounty

SM_MA_Bounty

Участник
Сообщения
35
Реакции
39
Sm Ma Bounty

Описание: плагин является клоном функции Mani плагина ma_bounty, расширенным некоторыми функциями. При достижении определенного количества убийств подряд, за голову доминирующего игрока назначается награда, с каждым убийством и раундом в котором он выжил, она возрастает. Так же меняется цвет доминирующего игрока (задается 4 составляющими - Красный, Зеленый, Синий, Прозрачность). При убийстве доминирующего игрока убийца получает награду, а цвет убитого становится нормальным.

Требования:
SourceMod 1.3.6 (ниже не тестил)

Встроенные языки:
English, Русский

Изменения в версиях:
Версия 1.1
1. Исправлен баг "Нарушение работы плагина после смены карты".
2. Добавлена возможность назначать собственную награду, с помощью меню.

Версия 1.2
1. Исправлен 1 не значительный баг
2. Исправлена недоработка "Возможность получить награду за члена своей комманды"(теперь только за противника)
3. Добавлен показ сообщения помощи (показывает в чат "Пиши bounty..." через 5 сек. после объявления каждой награды)
4. Добавлены процентные бонусы за HeadShot, Гранату и Нож.(увеличивают размер бонуса за убийство когда доминирующий игрок кого то убил, и размер награды если убит доминирующий игрок).
5. Добавлены серверные переменные (CVars):
sm_ma_bounty_helpadv - Показ сообщений помощи
sm_ma_bounty_headbonus - бонус за HeadShot
sm_ma_bounty_grenbonus - бонус за Гранату
sm_ma_bounty_knifebonus - бонус за Нож

Версия 1.3
Исправлены некоторые баги (в том числе заявленный в 6 посте от freddim)

Версия 1.4
1. Исправлены некоторые баги
2. Исправлена недоработка с СелфКилом (теперь при убийстве самого себя награда теряется и в чате написано, что она потеряна)

Версия 1.5
Исправлен баг "Array index is out of bounds" при неполном коннекте игроков.

Версия 1.6
Исправлен баг Native "GetClientTeam" reported: Client index 0 is invalid

Настройки по умолчанию(Они же серверные переменные):

sm_ma_bounty_enabled "1" //Разрешить или запретить награды за голову.
sm_ma_bounty_helpadv "1" //Разрешить или запретить показ помощи в чате.
sm_ma_bounty_killsstart "5" //Минимальная серия убийств для назначения награды.
sm_ma_bounty_startbounty "1000" //Начальная награда за голову.
sm_ma_bounty_killbonus "250" //Бонус за убийство.
sm_ma_bounty_roundbonus "500" //Бонус за выживание в раунде.
sm_ma_bounty_headbonus "20" //Процентный бонус за HeadShot 0-100.
sm_ma_bounty_grenbonus "50" //Процентный бонус за убийство гранатой 0-100.
sm_ma_bounty_knifebonus "100" //Процентный бонус за убийство ножом 0-100.
sm_ma_bounty_talpha "200" //Прозрачность террориста 0-255.
sm_ma_bounty_tblue "150" //Синяя составляющая террориста 0-255.
sm_ma_bounty_tgreen "50" //Зеленая составляющая террориста 0-255.
sm_ma_bounty_tred "255" //Красная составляющая террориста 0-255.
sm_ma_bounty_ctalpha "200" //Прозрачность спецназовца 0-255.
sm_ma_bounty_ctblue "255" //Синяя составляющаа спецназовца 0-255.
sm_ma_bounty_ctgreen "150" //Зеленая составляющаа спецназовца 0-255.
sm_ma_bounty_ctred "50" //Красная составляющаа спецназовца 0-255.

Команды в чате:
bounty - Вызывает панель информации с правилами наград за голову, и списком 3 наивысших активных наград. Так же с этой панели можно вызвать меню выбора награды: 500$, 1000$, 2000$, 5000$, 10000$, Половина денег, Все деньги. После выбора награды предоставляется выбор игрока из противоположной команды.
 

Вложения

  • sm_ma_bounty1.6.zip
    20.1 КБ · Просмотры: 932
Последнее редактирование:

SM_MA_Bounty

Участник
Сообщения
35
Реакции
39
Выпустил новую версию - исправил баг со сменой карты, добавил новую функцию.
Будет время добавлю еще функции (HeadShotBonus, KnifeBonus и GrenadeBonus)
 

freddim

Участник
Сообщения
45
Реакции
1
плагин отличный, но

Так же меняется цвет доминирующего игрока (задается 4 составляющими - Красный, Зеленый, Синий, Прозрачность)
sm_ma_bounty_tblue "150" //Синяя составляющая террориста 0-255.
sm_ma_bounty_tgreen "50" //Зеленая составляющая террориста 0-255.
sm_ma_bounty_tred "255" //Красная составляющая террориста 0-255.
sm_ma_bounty_ctalpha "200" //Прозрачность спецназовца 0-255.
sm_ma_bounty_ctblue "255" //Синяя составляющаа спецназовца 0-255.
sm_ma_bounty_ctgreen "150" //Зеленая составляющаа спецназовца 0-255.
sm_ma_bounty_ctred "50" //Красная составляющаа спецназовца 0-255.

я бы хотел оставить все по дефолту, т.е. не менять цвет доминирующему и т.п.
как это сделать? какие параметры (цвета) являются дефолтными?
 

SM_MA_Bounty

Участник
Сообщения
35
Реакции
39
я бы хотел оставить все по дефолту, т.е. не менять цвет доминирующему и т.п.
как это сделать? какие параметры (цвета) являются дефолтными?

все по 255 (то есть 0 означает отсутствие цветовой составляющей в окраске игрока)

если цвета поставить по 0 игрок будет черным,
если поставить 0 прозрачность - игрока будет не видно....
 

SM_MA_Bounty

Участник
Сообщения
35
Реакции
39
И снова новая версия: исправлены недоработки, добавлены новые функции.

Думаю дальнейшего развития функционала плагина не будет(не знаю что еще прикрутить), только исправление багов и недоработок.

Поэтому жду отчетов об ошибках плагина :)
 

freddim

Участник
Сообщения
45
Реакции
1
c-h-i-z-h, поставил плагин.
Хочу назначить награду за какого-нибудь игрока и сразу после выбора суммы 500, 1000 и т.д. меню просто пропадает.
при этом, когда на сервере просто боты то меню работает нормально и награда ставится
 

SM_MA_Bounty

Участник
Сообщения
35
Реакции
39
c-h-i-z-h, поставил плагин.
Хочу назначить награду за какого-нибудь игрока и сразу после выбора суммы 500, 1000 и т.д. меню просто пропадает.
при этом, когда на сервере просто боты то меню работает нормально и награда ставится

Исправлено!(v. 1.3) - сейчас вроди пашет правильно, время покажет..........
 

freddim

Участник
Сообщения
45
Реакции
1
еще одно заметил..
1) name 1 получил награду за name 1 (т.е. игрок получил награду сам за себя)
2) name 1 получил награду за hostname(название сервера)
 

dddennnisss

Участник
Сообщения
173
Реакции
156
С чем связано, такое безобразие?

L 04/07/2011 - 00:00:19: SourceMod error session started
L 04/07/2011 - 00:00:19: Info (map "cs_estate_css_final") (file "errors_20110407.log")
L 04/07/2011 - 00:00:19: [SM] Plugin encountered error 15: Array index is out of bounds
L 04/07/2011 - 00:00:19: [SM] Displaying call stack trace for plugin "sm_ma_bounty.smx":
L 04/07/2011 - 00:00:19: [SM] [0] Line 304, sm_ma_bounty.sp::EventPlDisconnect()
L 04/07/2011 - 00:00:19: [SM] Plugin encountered error 15: Array index is out of bounds
L 04/07/2011 - 00:00:19: [SM] Displaying call stack trace for plugin "sm_ma_bounty.smx":
L 04/07/2011 - 00:00:19: [SM] [0] Line 304, sm_ma_bounty.sp::EventPlDisconnect()
 

noBap

Участник
Сообщения
395
Реакции
169
такая же проблема + не отображается меню при написание в чат bounty а сам плагин работает
 

SM_MA_Bounty

Участник
Сообщения
35
Реакции
39
С чем связано, такое безобразие?

у меня такой ошибки нет и на домашнем сервере на винде и на работе на линуксе, и единственное что приходит в голову по коду это изменение константы MAXPLAYERS во время работы сервера (например из за добавления резервного слота)

Попробуйте провести наблюдение - если это связано с резервным слотом то когда сервер еще не полный ошибки быть не должно.

если так - отпишитесь - попробую учесть вероятность появления резервных слотов.
 

dddennnisss

Участник
Сообщения
173
Реакции
156
c-h-i-z-h, плагин для резервных слотов отключен. единственное, что мне пришло в голову, это экстраслот для сорств, который вроде как изменяет количество слотов для игроков на лету.
 

SM_MA_Bounty

Участник
Сообщения
35
Реакции
39
Проблема найдена!!!! как оказалось появляется далеко не сразу, прикол был вот в чом:
вместо события "player_connect" мной было выбрано "player_activate" потому что с "player_connect" были глюки с ботами. Бывает такая ситуация когда игрок нажал приконнектиться к серверу и тут же отмену - получается информацию о себе передать не успел, а отконнектиться отконнектился. При нескольких таких событиях подряд в версии 1.4 "Текущее Количество Игроков" могло уйти в минус, отсюда "Array index is out of bounds"

в версии 1.5 баг устранен!



З. Ы. готовьтесь к еще большему наборчегу багов - сажусь писать клон mani_stats)))))
 
Последнее редактирование:

Salakis

Участник
Сообщения
1
Реакции
0
такое вот наблюдается:
04/10/2011 - 09:25:45: SourceMod error session started
L 04/10/2011 - 09:25:45: Info (map "de_westwood_no_tyman") (file "errors_20110410.log")
L 04/10/2011 - 09:25:45: [SM] Native "GetClientTeam" reported: Client index 0 is invalid
L 04/10/2011 - 09:25:45: [SM] Displaying call stack trace for plugin "sm_ma_bounty.smx":
L 04/10/2011 - 09:25:45: [SM] [0] Line 343, sm_ma_bounty.sp::EventPlDeath()
 

SM_MA_Bounty

Участник
Сообщения
35
Реакции
39
при каких обстоятельствах это происходит? По коду на этой строке определяется команда убийцы, при самоубийстве ID атакующего = ID убитого, при убийстве сервером (каким нибудь из плагинов) так же, а тут получается что игрок умер но его никто не убивал))).

Сейчас проверил вариант "Игрок сменил команду - по этому умер" убийца тоже равен убитому, но не 0.

Нарыл у ся в логах такое за 2 дня произошло 1 раз - чем было вызвано хз, пробовал вызвать по разному не получилось
 
Последнее редактирование:

FrozDark

Участник
Сообщения
1,769
Реакции
2,050
попробуй так
if (attacker > 0)
AttackerTeam = GetClientTeam(GetClientOfUserId(attacker));
 

SM_MA_Bounty

Участник
Сообщения
35
Реакции
39
попробуй так
if (attacker > 0)
AttackerTeam = GetClientTeam(GetClientOfUserId(attacker));

это не решит проблему - скорее всего
не плохо было бы понять от чего так получается, исправить баг не поняв от чего он - высокий шанс вызвать другой баг. поэтому сделаю так: сделаю версию 1.6 но 1.5 тоже оставлю в релизе
 
Сверху Снизу