Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Замена ников рекламных

, Хочу сделать по человечески
Статус пользователя ssx
сообщение 22.6.2017, 12:40
Сообщение #1


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Есть код:Код:
    //Исправляем рекламные ники
get_user_name(user, name, 33)
if(containi(name, ":27") != -1 || contain(name, "http") != -1 || contain(name, "connect") != -1 || contain(name, "194.67.215.198") != -1 || contain(name, ".ru") != -1 || contain(name, ".com") != -1)
set_user_info(user, "name", "Player")
Многие ругаются что им меняет ники ..

Хочу сделать так что бы с ника вырезались рекламные части а не менялся ник целиком на Player.

Помогите плиз.


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ScuZe
сообщение 22.6.2017, 12:53
Сообщение #2


Стаж: 10 лет

Сообщений: 102
Благодарностей: 42
Полезность: 262

Есть моники, где запрещено менять никнейм игроку fool.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JIuXeP
сообщение 22.6.2017, 16:08
Сообщение #3


Стаж: 12 лет

Сообщений: 338
Благодарностей: 205
Полезность: 792

ssx, regex?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя neverminde
сообщение 22.6.2017, 16:09
Сообщение #4


Стаж: 15 лет

Сообщений: 1133
Благодарностей: 595
Полезность: 576

Я бы сказал, что наверное проще будет применить регулярку
Для примера взять основу из https://forums.alliedmods.net/showthread.php?t=137697
pawn
Код:
// Checks the message for spam
bool:is_invalid(const text[])
{
new error[50], num
new Regex:regex = regex_match (text, "[a-z0-9-]{3,}\.[a-z]{1,2}(\S)", num, error, 49, "i")
if(regex >= REGEX_OK)
{
regex_free(regex)
return true
}

regex = regex_match(text, "([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}", num, error, 49)
if(regex >= REGEX_OK)
{
regex_free(regex)
return true
}

return false

}

Потом можно собрать подстроку с использованием regex_substr
pawn
Код:
regex_substr(Regex:id, str_id, buffer[], maxLen);

Код
Usage

id    
The regex handle to extract data from.
str_id    
The index of the expression to get - starts at 0, and ends at ret - 1.
buffer    
The buffer to set to the matching substring.
maxLen    
The maximum string length of the buffer.



И потом уже заменять подстроку в нике игрока на то, что хотим.
Если я конечно правильно помню как это все работает.

Отредактировал: neverminde, - 22.6.2017, 16:26
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя d3m37r4
сообщение 3.7.2017, 8:22
Сообщение #5


Стаж: 11 лет

Сообщений: 304
Благодарностей: 119
Полезность: 604

Цитата(ScuZe @ 22.6.2017, 16:53) *
Есть моники, где запрещено менять никнейм игроку fool.gif

Ник можно визуально заменить, за это раскрутки не банят.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
csuser
сообщение 3.7.2017, 16:25
Сообщение #6
Стаж: 9 лет 10 месяцев

Сообщений: 1155
Благодарностей: 309
Полезность: 130

Раскрутки банят за изменение дефолтных ников их раскруток, а не любых ников.
Так можно дойти ло абсурда и запретить amx_nick
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Templar
сообщение 3.7.2017, 17:21
Сообщение #7
Иконка группы

Стаж: 18 лет

Сообщений: 2680
Благодарностей: 978
Полезность: 860

Меценат Меценат

Код:

#include <amxmodx>

public plugin_init() {
register_plugin("[AMX] block name", "1.0", "di.alyabev")
}

public client_putinserver(id) {
new uname[32]
get_user_name(id, uname, 31)
if(containi(uname, "site.ru | name") != -1) {
set_user_info(id, "name", "site | name")
}
}


Тип чтот того, думаю можно сделать и под разные ники

Отредактировал: Templar, - 3.7.2017, 17:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Jack2345
сообщение 4.7.2017, 18:49
Сообщение #8
Стаж: 11 лет
Город: Москва

Сообщений: 277
Благодарностей: 0
Полезность: < 0

Templar,
Есть лучше вариант


Success
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: