Русское сообщество по скриптингу

Сравнить ник, если в нике присутствует #  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Сравнить ник, если в нике присутствует #

Сообщение DoNotFollowMe » 11 фев 2017, 12:59

Здравствуйте.
Есть один читер, которого не реально забанить. Меняет ип и все такое, fb + dp обходит, какой чит без понятия, наверно приватный, так что и алиас чекером не проверить. Но этот чел всегда с одним и тем же ником, редкий ник так что я подумал, и надумал банить игрока с этим ником. Чтоб он не понял что за ник бан, его банит с задержкой и за кб :D
А вот в чем проблема, у него в нике есть решетка '#' (ник не буду писать, дабы не нашел себя в гугле:D) ник премерно такой #Бла Бла#, так вот, get_user_name похоже не видит решетки и не хочет банить(. Как быть?

Код: Выделить всё
#include <amxmodx>

#define PLUGIN "Ban"
#define VERSION "1.0"
#define AUTHOR "IIPU3PAK"

new const nickLowka[] = {"#Бла Бла#"}

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
}

public client_connect(id)
{
    new getName[32]; get_user_name(id, getName, 31);
    
    if
(equal(nickLowka, getName)) set_task(12.0, "ban", id);
}

public ban(id) server_cmd("fb_ban 0 #%d ^"KnifeBot Detected^"", get_user_userid(id));
Аватара пользователя
DoNotFollowMe
 
Сообщения: 117
Зарегистрирован: 29 фев 2016, 20:25
Благодарил (а): 41 раз.
Поблагодарили: 3 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Re: Сравнить ник, если в нике присутствует #

Сообщение lop50956 » 11 фев 2017, 13:25

, get_user_name похоже не видит решетки и не хочет банить(

Видит. Не ту решетку используешь наверно.
Аватара пользователя
lop50956
 
Сообщения: 178
Зарегистрирован: 29 ноя 2016, 00:36
Забанен
Благодарил (а): 18 раз.
Поблагодарили: 16 раз.
Опыт программирования: Больше трех лет
Языки программирования: Php

Re: Сравнить ник, если в нике присутствует #  [Решено]

Сообщение Subb98 » 11 фев 2017, 13:43

Вы должны зарегистрироваться, чтобы видеть ссылки. или

Код: Выделить всё
/**
*    Modified by Safety1st
*
*    Last update:
*      8/15/2014
*
*    Home post:
*      http://c-s.net.ua/forum/index.php?act=findpost&pid=639977
*/

#include <amxmodx>
#include <fakemeta>

/*---------------EDIT ME------------------*/
#define CHECK_CHAT    // comment to disable
/*----------------------------------------*/

#pragma ctrlchar    '\'

public plugin_init() {
    
register_plugin("Fast Fix #""1.2""PRoSToTeM@");

    
register_forward(FM_ClientUserInfoChanged"ClientUserInfoChanged_Pre"false);

#if defined CHECK_CHAT
    
register_clcmd"say""CheckChat" );
    
register_clcmd"say_team""CheckChat" );
#endif
}

public 
ClientUserInfoChanged_Pre(const iClient, const pszInfoBuffer) {
    new 
szNetName[32];
    
pev(iClientpev_netnameszNetNamecharsmax(szNetName));
    
    new 
szBufferName[32];
    
engfunc(EngFunc_InfoKeyValuepszInfoBuffer"name"szBufferNamecharsmax(szBufferName));
    
    if (
szNetName[0] != '\0' && equal(szNetNameszBufferName)) {
        return 
FMRES_IGNORED;
    }
    
    new 
bool:fChanged;
    
    for (new 
0szBufferName[i] != '\0'i++) {
        if (
szBufferName[i] == '#' || (szBufferName[i] == '+' && !('0' <= szBufferName[1] <= '9'))) {
            
szBufferName[i] = ' ';
            
            
fChanged true;
        }
    }
    
    if (
fChanged) {
        
trim(szBufferName);
        
        
engfunc(EngFunc_SetClientKeyValueiClientpszInfoBuffer"name"szBufferName);
    }
    
    return 
FMRES_IGNORED;
}

#if defined CHECK_CHAT
public CheckChat(id) {
    static 
szMsg[191];
    
read_argsszMsgcharsmax(szMsg) );

    if( 
containszMsg"#" ) != -)
        return 
PLUGIN_HANDLED

    
return PLUGIN_CONTINUE
}
#endif 
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15