Иконка ресурса

[Fork] Anti-TK System 1.1.3

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
  • Автор ресурса
  • #1
Nekro добавил(а) новый ресурс:

[Fork] Anti-TK Sistem - Anti-TK Система

Предоставляем Вашему вниманию Anti-TK Систему (взят за основу), которая позволяет отслеживать не добросовестных игроков которые убивают/ранят товарищей по команде (при mp_friendlyfire 1). В данном плагине представлен функционал:
1. Убивает игроков которые атакуют товарищей по команде при старте раунда
2. Позволяет жертве выбрать наказание для нарушителя, если цель мертва то наказание при следующем воскрешении убийцы
3. Имеет...

Узнать больше об этом ресурсе...
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
"System" же
Сообщения автоматически склеены:

На кой делать файлы переводов, если они используются только в половине сообщений?
Половина тупо на русском захардкоджена.
Сообщения автоматически склеены:

C-подобный:
bKillAttaker[MAXPLAYERS+1] = {false, ...},
...
SpawnTime[MAXPLAYERS + 1] = {0, ...},
А смысл это прописывать? Там и так будет везде false и 0.
Сообщения автоматически склеены:

C-подобный:
Engine_Version = GetCSGame(); if(Engine_Version == GAME_UNDEFINED) SetFailState("Game is not supported!");
А почему не сделать SetFailState() в самой функции GetCSGame()?
Какой смысл использовать char для хранения типа игры? Типа char будет занимать меньше, чем int? Не будет он меньше занимать: минимальный размер всё те же 4 байта.
 
Последнее редактирование:

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
  • Автор ресурса
  • #3
Исправим
На кой делать файлы переводов, если они используются только в половине сообщений?
Половина тупо на русском захардкоджена.
Везде, кроме дебага же

Сообщения автоматически склеены:

C-подобный:
bKillAttaker[MAXPLAYERS+1] = {false, ...},
...
SpawnTime[MAXPLAYERS + 1] = {0, ...},
А смысл это прописывать? Там и так будет везде false и 0.
Буду знать

Сообщения автоматически склеены:

C-подобный:
Engine_Version = GetCSGame(); if(Engine_Version == GAME_UNDEFINED) SetFailState("Game is not supported!");
А почему не сделать SetFailState() в самой функции GetCSGame()?
Какой смысл использовать char для хранения типа игры? Типа char будет занимать меньше, чем int? Не будет он меньше занимать: минимальный размер всё те же 4 байта.
Исправим
Сообщения автоматически склеены:

Обновил требования, добавил ссылку на инклюд
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Для чего в плагине неиспользуемая функция PbSayText2(), заточенная под КСГО (потому что протобуф)?

Искать оффсеты и делать SetFailState(), если они не найдены, нужно в самом начале, ещё до создания кваров и хуков событий. Лучше в AskPluginLoad2().
Просто плагин делает много лишней работы при запуске, если он не подходит для игры.

В Event_OnStart() ты пропустил главный параметр в выводе сообщения для КСС.

При форматировании текста всё же немного полезнее использовать FormatEx(), а не Format(), если целевая тестовая переменная не используется в качестве одного из параметров ввода.
К тому же при использовании %t в FormatEx() и Format() нужно предварительно сделать SetGlobalTransTarget(client). Иначе лучше использовать %T и индекс клиента в качестве параметра для форматирования


C-подобный:
char attackerName[32],
GetClientName(attacker, attackerName, 31);
Почему именно 32 и 31? Дефайн MAX_NAME_LENGTH имеет значение 128 для поддержки КСГО. Раньше, в более старых версиях SM он имел значение 64.

C-подобный:
switch(iPunishMent)
{
    case 0: punishment = "warn";
    case 1: punishment = "slay";
    case 2: punishment = "burn";
    case 3: punishment = "freeze";
    case 4: punishment = "beacon";
    case 5: punishment = "freezebomb";
    case 6: punishment = "firebomb";
    case 7: punishment = "timebomb";
    case 8: punishment = "drug";
    case 9: punishment = "removecash";
    case 10: punishment = "slap";
    case 11: punishment = "Chicken";
    default: punishment = "warn";
}
Я бы просто заюзал текстовый массив с предварительной проверкой индекса, чтобы не было выхода за границы этого массива.
Да и в качестве параметра для функции PunishHandler() параметр в виде int был бы лучше, чем в виде char: занимает меньше места, дешевле и быстрее в обработки значений (switch вместо strcmp).
C-подобный:
char sWeaponName[16];
GetEntityClassname(weapon, sWeaponName, 16);
if(strncmp(sWeaponName, "weapon_", 7) == 0)
А не проще было сделать размер массива равным 8 и использовать strcmp? Ведь тогда текст сразу обрежется до 7 символов.

RemovGrenad почему не RemoveGrenade? Кто-то с инглишем совсем не дружит? =)
Да и отбирать было бы проще по слоту или через оффсет для патронов.

C-подобный:
public Action Undrug(Handle timer, any client)
{
    if(client > 0 && IsClientInGame(client))
    {
        char clientName[32];
        GetClientName(client, clientName, 31);

        ServerCommand("sm_undrug \"%s\"", clientName);
    }
    return Plugin_Handled;
}
А нафига здесь нужно имя игрока? Лучше же его userid использовать в таких дефолтных командах SM.

Везде, кроме дебага же
Функция DoChat()
 
Последнее редактирование:

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
  • Автор ресурса
  • #5
А это я как то упустил из вида..

Помоги пожалуйста, как добавить анимацию на курицу при смене модели игрока? Вообще никак не хочет, если просто создаю курицу, то работает анимация, а когда игроку меняю, то ни в какую..
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Nekro, хз как. Я в работу анимациями не очень-то и вникал.
 

Fast-Kill

Админ школьник проверяет мой ПК на читы!
Сообщения
991
Реакции
299
Скажите если урон по своим выключен а вот если кинуть топор в своего, сработает плагин?!
 

Fast-Kill

Админ школьник проверяет мой ПК на читы!
Сообщения
991
Реакции
299
Ну ладно)))
Сообщения автоматически склеены:

А вот проверьте и нас просветите)
Неа не робит протестил, наверно при вкл функции по своим работает тока!
 
Последнее редактирование:

panikajo

Участник
Сообщения
866
Реакции
231
@Nekro, 1 . в начале раунда если стрельнуть в своего сразу смэрть как убрать это?
 

panikajo

Участник
Сообщения
866
Реакции
231
@Nekro,
1614110396131.png
 

panikajo

Участник
Сообщения
866
Реакции
231
@Nekro, Я уже писал напишу еще раз сюда.
1614278504183.png

Все равно людей пинает при выстреле в своих. (перезагрузка сервера не помогла).

Еще люди просят добавит !stk Stop team kill или голосование чтобы вырубать его или команду чтобы каждый игрок для себя смог вырубить убийство своего.
 

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
  • Автор ресурса
  • #17
@Nekro, Я уже писал напишу еще раз сюда.
Посмотреть вложение 72943
Все равно людей пинает при выстреле в своих. (перезагрузка сервера не помогла).

Еще люди просят добавит !stk Stop team kill или голосование чтобы вырубать его или команду чтобы каждый игрок для себя смог вырубить убийство своего.
Речь о тряске экрана или дерганья прицела в сторону?
Обновления планирую в выходные
 

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
  • Автор ресурса
  • #19
@Nekro, Я уже писал напишу еще раз сюда.
Посмотреть вложение 72943
Все равно людей пинает при выстреле в своих. (перезагрузка сервера не помогла).

Еще люди просят добавит !stk Stop team kill или голосование чтобы вырубать его или команду чтобы каждый игрок для себя смог вырубить убийство своего.
Ну наверно магия
 

panikajo

Участник
Сообщения
866
Реакции
231
@Nekro, Я тут кое что нарыл.
Если играют люди с дальтонизмом как они определят что стреляют в чужих?
 
Сверху Снизу