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

amx_belarus для ReHLDS  [Решено]

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

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

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

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

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

amx_belarus для ReHLDS

Сообщение Mr.PolaZ » 27 янв 2019, 23:00

Дорогие участники сообщества, очень нужна ваша помощь.
Плагин должен считывать 2 .txt файла bynets.txt и local.txt
и проверять ip адреса на принадлежность к определённым сетям и игроков на наличие ADMIN_RESERVATION разрешать доступ на сервер, остальных кикать.
При компиляции столкнулся с warning 213: tag mismatch (немогу найти ошибку)

Код: Выделить всё
AMX Mod X Compiler 1.8.3-dev+5147
Copyright 
(c) 1997-2006 ITB CompuPhase
Copyright 
(c) 2004-2013 AMX Mod X Team

amx_belarus
.sma(87) : warning 213: tag mismatch
Header size
: 780 bytes
Code size
: 4028 bytes
Data size
: 3672 bytes
Stack
/heap size: 16384 bytes
Total requirements
: 24864 bytes

1 Warning
.
Done


Код: Выделить всё
if (allowed && !get_user_flags(id, 0) & 2 && isfiles == 1


Помогите пожалуйста. :dntknw:
P.S. Всегда открыт для замечаний и советов.
Последний раз редактировалось Mr.PolaZ 30 янв 2019, 13:30, всего редактировалось 2 раз(а).
Аватара пользователя
Mr.PolaZ
 
Сообщения: 67
Зарегистрирован: 13 мар 2018, 14:36
Благодарил (а): 37 раз.
Поблагодарили: 2 раз.

Re: warning 213: tag mismatch

Сообщение gamingEx » 28 янв 2019, 09:25

Код: Выделить всё
if (~get_user_flags(id) & ADMIN_RESERVATION

Выполняется битовая операция, соответственно, ожидается битовая НЕ (~), а не логическая (!).

К слову, warning - предупреждение, а не ошибка. Нежелательно, конечно, но на него и хер забить можно.
:dance2: :dance2: :dance2:
Аватара пользователя
gamingEx
 
Сообщения: 121
Зарегистрирован: 07 окт 2017, 20:48
Благодарил (а): 0 раз.
Поблагодарили: 19 раз.
Опыт программирования: Больше трех лет
Языки программирования: Swift, C++, PHP, Ruby, JS

amx_belarus для ReHLDS

Сообщение Mr.PolaZ » 28 янв 2019, 11:10

Добавлено спустя 1 минуту 9 секунд:
gamingEx писал(а):
Код: Выделить всё
if (~get_user_flags(id) & ADMIN_RESERVATION)

Выполняется битовая операция, соответственно, ожидается битовая НЕ (~), а не логическая (!).

К слову, warning - предупреждение, а не ошибка. Нежелательно, конечно, но на него и хер забить можно.


Уважаемый gamingEx, подскажите мне как правильно сделать.
Я что-то наворотил и плагин не выдаёт нужного результата и крашит сервер.
Этот плагин был без исходника, я его декомпилировал через "Lysis" в связи с тем что плагин достаточно старый и видимо не хочет работать на ReHLDS.
Плагин был написан для Хостинга на котором я сейчас держу сервер но Т.П. давненько молчит и ничего не предпринимает.
Плагин мне не по силам, сам я точно не справлюсь.
Буду вам очень признателен, если вы мне поможете или объясните как сделать правильно.
Последний раз редактировалось Mr.PolaZ 30 янв 2019, 13:31, всего редактировалось 1 раз.
Аватара пользователя
Mr.PolaZ
 
Сообщения: 67
Зарегистрирован: 13 мар 2018, 14:36
Благодарил (а): 37 раз.
Поблагодарили: 2 раз.

Re: amx_belarus для ReHLDS

Сообщение Fedcomp » 28 янв 2019, 14:54

Код: Выделить всё
!!! Removed Phi

Это еще че такое?
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: amx_belarus для ReHLDS

Сообщение Mr.PolaZ » 28 янв 2019, 16:11

Fedcomp писал(а):
Код: Выделить всё
!!! Removed Phi

Это еще че такое?

Это вылезло после декомпиляции.

Я тоже не понял, погуглил, Google ничего не ответил.
Вот что я сделал, но в такой ситуации, крашится сервер.
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "Connection for Belarus"
#define VERSION "1.1"
#define AUTHOR "HostGame.by"

#define ADMIN_RESERVATION   (1<<1)

public plugin_init()
{
    register_plugin( PLUGIN, VERSION, AUTHOR );
    register_cvar("amx_belarus_kick", "Извините, сервер только для игроков из Беларуси.", 0, 0.00);
    server_print("[Amx Belarus HostGame.by] Проверка входящих на сервер игроков включена.");
    return 0;
}

public client_putinserver(id)
{
    check_subnet(id);
    return 0;
}

public client_infochanged(id)
{
    if (!is_user_connected(id))
    {
        return 0;
    }
    new newname[32];
    new oldname[32];
    get_user_name(id, oldname, 31);
    get_user_info(id, "name", newname, 31);
    if (!equal(newname, oldname, 0))
    {
        check_subnet(id);
    }
    return 0;
}

public check_subnet(id)
{
    new subnetmsg[512];
    new readdata[50];
    new len = 0;
    new pos = 0;
    new userip[16];
    new allowed = 0;
    new isfiles = 1;
    get_user_ip(id, userip, 16, 1);
    get_cvar_string("amx_belarus_kick", subnetmsg, 512);
    if (file_exists("addons/amxmodx/data/bynets.txt"))
    {
        pos++;
        while (read_file("addons/amxmodx/data/bynets.txt", pos, readdata, 50, len))
        {
            if (readdata[0] == 59 || readdata[0] == 35)
            {
            }
        }
    }
    else
    
{
        server_print("[Amx Belarus HostGame.by] Файл подсетей cs/cstike/addons/amxmodx/data/bynets.txt не найден!");
        isfiles = 0;
    }
    len = 0;
    pos = 0;
    readdata[0] = 1780;
    if (file_exists("addons/amxmodx/data/local.txt"))
    {
        if (!allowed)
        {
            pos++;
            while (read_file("addons/amxmodx/data/local.txt", pos, readdata, 50, len))
            {
                if (readdata[0] == 59 || readdata[0] == 35)
                {
                }
            }
        }
        isfiles = 1;
    }
    else
    
{
        server_print("[Amx Belarus HostGame.by] Файл подсетей cs/cstike/addons/amxmodx/data/local.txt не найден!");
    }
    if (allowed && ~get_user_flags(id, 0) & ADMIN_RESERVATION && isfiles == 1)
    {
        server_cmd("kick #%d ^"%s^"", get_user_userid(id), subnetmsg);
        server_print("[Amx Belarus HostGame.by] Игрок с IP %s отключен: ip_to_number(userip) %d", userip, ip_to_number(userip));
    }
    else
    
{
        if (isfiles == 1)
        {
            server_print("[Amx Belarus HostGame.by] Игрок с IP %s допущен на сервер.", userip);
        }
        server_print("[Amx Belarus HostGame.by] Внимание! Игрок с IP %s допущен на сервер так как не найдены файлы белорусских подсетей!", userip);
    }
    return 0;
}

public get_mask(mask_length)
{
    if (mask_length > 31)
    {
        return -1;
    }
    return 1 << mask_length + 1 - 1 << 32 - mask_length;
}

public ip_to_number(userip[16])
{
    new ipb1[12];
    new ipb2[12];
    new ipb3[12];
    new ipb4[12];
    new ip = 0;
    new nipb1 = 0;
    new nipb2 = 0;
    new nipb3 = 0;
    new nipb4 = 0;
    new uip[16];
    copy(uip, 16, userip);
    do {
    } while (replace(uip, 16, ".", " "));
    parse(uip, ipb1, 12, ipb2, 12, ipb3, 12, ipb4, 12);
    nipb1 = str_to_num(ipb1);
    nipb2 = str_to_num(ipb2);
    nipb3 = str_to_num(ipb3);
    nipb4 = str_to_num(ipb4);
    ip = nipb4 + nipb3 + nipb2 + nipb1 * 256 * 256 * 255 + nipb3 + nipb2 + nipb1 * 256 * 256;
    return ip;
}

 
Аватара пользователя
Mr.PolaZ
 
Сообщения: 67
Зарегистрирован: 13 мар 2018, 14:36
Благодарил (а): 37 раз.
Поблагодарили: 2 раз.

Re: amx_belarus для ReHLDS

Сообщение gamingEx » 28 янв 2019, 16:19

Mr.PolaZ, дай содержимое bynets.txt и local.txt. Время будет сегодня/завтра напишу тебе этот плагин.
:dance2: :dance2: :dance2:
Аватара пользователя
gamingEx
 
Сообщения: 121
Зарегистрирован: 07 окт 2017, 20:48
Благодарил (а): 0 раз.
Поблагодарили: 19 раз.
Опыт программирования: Больше трех лет
Языки программирования: Swift, C++, PHP, Ruby, JS

Re: amx_belarus для ReHLDS

Сообщение Mr.PolaZ » 28 янв 2019, 16:28

gamingEx писал(а):Mr.PolaZ, дай содержимое bynets.txt и local.txt. Время будет сегодня/завтра напишу тебе этот плагин.

Спасибо большое.

31.24.88.0/21
31.130.200.0/21
46.53.128.0/17
46.56.0.0/16
46.182.48.0/21
46.175.168.0/21
46.216.0.0/16
77.74.32.0/21
79.98.48.0/21
80.94.160.0/20
80.94.224.0/20
81.25.32.0/20
81.30.80.0/20
84.201.224.0/20
87.252.224.0/19
91.149.128.0/18
91.187.0.0/19
91.220.250.0/24
91.215.176.0/22
93.125.0.0/17
93.191.96.0/21
95.128.64.0/21
95.130.80.0/21
128.65.0.0/18
128.140.240.0/20
176.60.0.0/16
178.159.240.0/21
178.163.128.0/17
178.168.128.0/17
178.172.128.0/17
193.17.173.0/24
193.58.255.0/24
193.151.40.0/22
193.232.92.0/24
195.50.0.0/19
195.137.180.0/24
195.222.64.0/19
212.98.160.0/19
213.184.224.0/19
217.21.32.0/19
217.23.112.0/20
134.17.0.0/16
37.17.0.0/17
93.171.104.0/21
176.118.152.0/21
194.62.64.0/24
95.46.200.0/21
95.46.208.0/20
5.100.192.0/19
93.189.224.0/21
195.137.160.0/24
185.6.24.0/22
95.47.128.0/21
95.47.224.0/21
93.171.160.0/23
95.47.99.0/24
92.38.56.0/21
93.171.34.0/23
93.171.36.0/22
185.53.72.0/22
185.66.70.0/24
93.171.48.0/20
92.38.64.0/20
185.32.224.0/22
93.170.252.0/24
185.47.152.0/23
188.130.170.0/24
93.171.112.0/20
185.66.68.0/23
151.249.128.0/17
93.170.143.0/24
77.94.56.0/21
95.46.16.0/20
95.46.158.0/24
185.20.112.0/22
185.24.100.0/24
185.61.104.0/22
185.62.203.0/24
198.11.141.0/24
217.21.166.0/24
185.128.200.0/22
5.45.205.0/24
5.45.208.0/24
178.154.131.0/24
199.7.82.0/23
95.47.60.0/23
93.170.28.0/22
146.120.32.0/21
146.120.144.0/21
185.186.208.0/22
146.120.128.0/20
185.65.137.0/24
95.46.243.0/24
185.70.12.0/22
109.126.128.0/18
185.15.156.0/22
95.46.46.0/24
185.203.152.0/22
46.191.0.0/17
178.154.0.0/17
178.159.44.0/23
178.159.46.0/24
5.45.196.0/24
146.120.13.0/24
46.28.96.0/21
80.249.80.0/20
164.177.192.0/18
93.170.184.0/23
185.158.216.0/22
31.148.248.0/22
185.227.96.0/22
185.179.82.0/23
91.204.13.0/24
146.120.152.0/22
93.171.6.0/24
146.120.14.0/23
185.204.116.0/23
185.204.118.0/24
193.176.180.0/23
31.148.198.0/23
91.90.222.0/23
93.170.34.0/24
77.67.192.0/18
91.192.82.0/24
93.189.59.0/24
185.123.184.0/22
185.183.120.0/22
185.190.188.0/23
192.31.196.0/24
192.175.48.0/24
213.183.34.0/23

100.64.0.0/10
82.209.192.0/18
86.57.128.0/17
93.84.0.0/15
178.120.0.0/13
194.158.192.0/19
194.226.120.0/22
194.226.124.0/23
193.232.248.0/22
37.45.0.0/16
37.44.64.0/18
37.212.0.0/14
185.152.136.0/22
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Mr.PolaZ
 
Сообщения: 67
Зарегистрирован: 13 мар 2018, 14:36
Благодарил (а): 37 раз.
Поблагодарили: 2 раз.

Re: amx_belarus для ReHLDS  [Решено]

Сообщение Fedcomp » 28 янв 2019, 18:36

Mr.PolaZ писал(а):
Fedcomp писал(а):
Код: Выделить всё
!!! Removed Phi

Это еще че такое?

Это вылезло после декомпиляции

Обращаю внимание что он мог что то пропустить из оригинального плагина или понять неверно.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust


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

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

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