Написание плагинов

WodiX

Участник
Сообщения
202
Реакции
29
Можно ли для плагина LVL Ranks сделать плагин, который будет показывать, что входит игрок, выходит игрок, входит новый игрок, показывает его страну и очки, как на hlstatsx
Игрок NIK подключился [123 очков, ISPANIA]
Это приватка напиши @Wend4r. Он помоему продаёт😁.
 

Doker0909

Участник
Сообщения
105
Реакции
3
C++:
public Action OnClientSayCommand(int client, const char[] command, const char[] args)
{
    if(args[0] == '?')
    {
        ReplyToCommand(client, "бла бла бла напишите !com для помощи");
        return Plugin_Handled;
    }
  
    return Plugin_Continue;
}

отличная идея! а можно сделать так, чтоб вместо '?' я мог вписать любые слова (в смысле нецензурные) и на каждое такое слово сервер выдавал сообщение, типа, "не матерись, а то получишь мут!" и чтоб список можно было пополнять😇
CSS v34
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
я мог вписать любые слова (в смысле нецензурные) и на каждое такое слово сервер выдавал сообщение, типа, "не матерись, а то получишь мут!" и чтоб список можно было пополнять
Если делать регэкспом, то он, емнип с кириллицей не справлялся.
Если прописывать все варианты слов, то у тебя плагин или конфиг для него будет весить мегабайты и будет хорошо так тормозить сервер, если база будет большая.
Всё равно будут ложные срабатывания и не будет срабатывать, если напишут мат с ошибкой (хорошо, если ошибка была сделана для обхода матфильтра, а не просто школота даже не знает как правильно пишутся маты).
Автоматический парсинг сообщений чата средствами плагинов для фильтрации обсцентной лексики - это слишком сложный и совершенно бессмысленный вопрос.

Вообще такие плагины пытались сделать не раз, но IMHO лучше просто чтобы админ писал предупреждение (даже просто командой прописанной в админке).
Кстати, есть плагин предупреждений:
 

Doker0909

Участник
Сообщения
105
Реакции
3
Если делать регэкспом, то он, емнип с кириллицей не справлялся.
Если прописывать все варианты слов, то у тебя плагин или конфиг для него будет весить мегабайты и будет хорошо так тормозить сервер, если база будет большая.
Всё равно будут ложные срабатывания и не будет срабатывать, если напишут мат с ошибкой (хорошо, если ошибка была сделана для обхода матфильтра, а не просто школота даже не знает как правильно пишутся маты).
Автоматический парсинг сообщений чата средствами плагинов для фильтрации обсцентной лексики - это слишком сложный и совершенно бессмысленный вопрос.

Вообще такие плагины пытались сделать не раз, но IMHO лучше просто чтобы админ писал предупреждение (даже просто командой прописанной в админке).
Кстати, есть плагин предупреждений:
спсибо!😉
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Как можно задать свой текст между тегом и именем действующего лица?
То-есть, к примеру, хочу зделать что бы писало [SM] Администратор Console: bla bla bla...
В переводах чёт нету этой строчки.

(вторая полоска, где пишет всем игрокам текст)
1585447500018.png
 

-=|УЧЕНИК|=-

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Привет народ,может кто код вырезать?
Нужно вырезать хп при спавне,а все остальное оставить.
Заранее благодарю
 

Вложения

  • test.sp
    5.5 КБ · Просмотры: 13

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Есть ли возможность из строки достать функцию и запустить её?
К примеру:
Есть строка "PrintToServer", как можно превратить её в функцию и добавить к ней аргументы?
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786

-=HellFire=-

Kernel panic - not syncing: Fatal exception
Сообщения
1,394
Реакции
585

StormX

Участник
Сообщения
891
Реакции
302
В 34 нет такой проблемы же. Количество спавнов и всё.

Глубоко заблуждаетесь уважаемый!
На примере карты de_cash_v34 на карте может играть только 14 на 14 остальные сидят в спекторах.
Полно карт таких даже стандартных.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
Как можно задать свой текст между тегом и именем действующего лица?
То-есть, к примеру, хочу зделать что бы писало [SM] Администратор Console: bla bla bla...
В переводах чёт нету этой строчки.

(вторая полоска, где пишет всем игрокам текст)
Посмотреть вложение 54758
ShowActivity функция за это отвечает. но она вроде бы в самом см запилена. можешь хукать сообщения на сервере (не от игроков) и заменять там.
как пример [CS: Source] - "[SM]" Prefix Changer
 

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
Глубоко заблуждаетесь уважаемый!
На примере карты de_cash_v34 на карте может играть только 14 на 14 остальные сидят в спекторах.
Полно карт таких даже стандартных.
Сегодня перепроверю, в 40 человек играли без каких либо проблем.
 

StormX

Участник
Сообщения
891
Реакции
302
Сегодня перепроверю, в 40 человек играли без каких либо проблем.

Поставил в итоге spawntools 7 и настроил новые точки спавна, и проблема исчезла.
Неудобно тем, что когда 50+ карт настройка занимает очень много времени.
Был бы плагин который автоматически снимает эти лимиты в картах было бы хорошо. 🙂
 

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
Поставил в итоге spawntools 7 и настроил новые точки спавна, и проблема исчезла.
Неудобно тем, что когда 50+ карт настройка занимает очень много времени.
Был бы плагин который автоматически снимает эти лимиты в картах было бы хорошо. 🙂
Это даже в теории проблема, программа же не знает где вы хотите появления игроков.
 

-=|УЧЕНИК|=-

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Привет народ
Поможет кто с плагином?)
Можно ли сделать сюда иммунитет для админов?
 

Вложения

  • skorostrel.sp
    437 байт · Просмотры: 9

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Владимир96
, можно:
C-подобный:
public Action CS_OnBuyCommand(int client, const char[] item)
{
    if(GetUserAdmin(client) == INVALID_ADMIN_ID
    && (!strcmp(item, "g3sg1", false) || !strcmp(item, "sg550", false)))
    {
        PrintToChat(client, "Скорострелки запрещены!");
        return Plugin_Handled;
    }
    return Plugin_Continue;
}
 

-=|УЧЕНИК|=-

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Владимир96
, можно:
C-подобный:
public Action CS_OnBuyCommand(int client, const char[] item)
{
    if(GetUserAdmin(client) == INVALID_ADMIN_ID
    && (!strcmp(item, "g3sg1", false) || !strcmp(item, "sg550", false)))
    {
        PrintToChat(client, "Скорострелки запрещены!");
        return Plugin_Handled;
    }
    return Plugin_Continue;
}

То есть если для ROOT делать,то так?
if(GetUserAdmin(client) == ADMFLAG_ROOT
 
Сверху Снизу