Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 20
  1. #1
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±

    Как сделать совпдание/не совпдание

    Всем, привет уважаемые посетитель Pro Pawn!
    Как сделать совпадение не совпадение подсети как на Advance?
    Кто не знает там пишет "Подсеть совпадает/подсеть не совпадает"

    - - - Добавлено - - -

    А и ещё не работает почему то сохранение аккаунта(
    PHP код:
    stock SavePlayer(playerid)
    {
        static const 
    fmt_str[] = "UPDATE "TABLE_ACCOUNT" SET `Password` = '%e', `Administration` = '%d', `Kills` = '%d', `Death` = '%d', `Informer_Off_Onn` = '%d', `Jail` = '%d', `Mute` = '%d', `Vip` = '%d'  WHERE `Name` = '%e'";
        const 
    fmt_size sizeof(fmt_str) + 300;
        new 
    string[fmt_size];
        
    format(string,sizeof(string),fmt_str,
        
    PlayerInfo[playerid][pPassword],
        
    PlayerInfo[playerid][pAdmin],
        
    PlayerInfo[playerid][pKills],
        
    PlayerInfo[playerid][pDeath],
        
    PlayerInfo[playerid][pInformer_Off_Onn],
        
    PlayerInfo[playerid][pJail],
        
    PlayerInfo[playerid][pMute],
        
    PlayerInfo[playerid][pVip],
        
    NAME_REG[playerid]);
        
    mysql_tquery(connect_to_mysqlstring"""");
        return 
    1;


  2. #2
    Аватар для underwoker
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Сообщений
    331
    Репутация:
    47 ±
    Цитата Сообщение от Bublik_Public Посмотреть сообщение
    Всем, привет уважаемые посетитель Pro Pawn!
    Как сделать совпадение не совпадение подсети как на Advance?
    Кто не знает там пишет "Подсеть совпадает/подсеть не совпадает"

    - - - Добавлено - - -

    А и ещё не работает почему то сохранение аккаунта(
    PHP код:
    stock SavePlayer(playerid)
    {
        static const 
    fmt_str[] = "UPDATE "TABLE_ACCOUNT" SET `Password` = '%e', `Administration` = '%d', `Kills` = '%d', `Death` = '%d', `Informer_Off_Onn` = '%d', `Jail` = '%d', `Mute` = '%d', `Vip` = '%d'  WHERE `Name` = '%e'";
        const 
    fmt_size sizeof(fmt_str) + 300;
        new 
    string[fmt_size];
        
    format(string,sizeof(string),fmt_str,
        
    PlayerInfo[playerid][pPassword],
        
    PlayerInfo[playerid][pAdmin],
        
    PlayerInfo[playerid][pKills],
        
    PlayerInfo[playerid][pDeath],
        
    PlayerInfo[playerid][pInformer_Off_Onn],
        
    PlayerInfo[playerid][pJail],
        
    PlayerInfo[playerid][pMute],
        
    PlayerInfo[playerid][pVip],
        
    NAME_REG[playerid]);
        
    mysql_tquery(connect_to_mysqlstring"""");
        return 
    1;

    Что за блядо код? Почему вы так извращаетесь?
    "Власть, кровь, няш-мяш, кровь, власть, Крым наш!" - (c) Наталья Поклонская.

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

  3. #3
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,271
    Репутация:
    418 ±
    Цитата Сообщение от underwoker Посмотреть сообщение
    Что за блядо код? Почему вы так извращаетесь?
    Отличный код, компилятор сам подсчитывает ячейки которые нужно выделить, а ты не матерись...

  4. #4
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от Bublik_Public Посмотреть сообщение
    PHP код:
    static const fmt_str[] = "UPDATE "TABLE_ACCOUNT" SET `Password` = '%e', `Administration` = '%d', `Kills` = '%d', `Death` = '%d', `Informer_Off_Onn` = '%d', `Jail` = '%d', `Mute` = '%d', `Vip` = '%d'  WHERE `Name` = '%e'";
    const 
    fmt_size sizeof(fmt_str) + 300
    Для чего вы всё усложняете, если размер массива всё равно расчитан кое-как? Откуда число 300 вообще взялось?

    Цитата Сообщение от Bublik_Public Посмотреть сообщение
    Как сделать совпадение не совпадение подсети как на Advance?
    PHP код:

    static const
        
    some_ip_string[] = "192.168.0.1";

    new
        
    str[16],
        
    split_ip[2][4];

    strcat(strsome_ip_string);

    #if defined strsplit
        
    strsplit(strsplit_ip'.');
    #elseif defined split
        
    split(strsplit_ip'.');
    #else
        #error Function split or strsplit is not implemented ( see: "http://pro-pawn.ru/showthread.php?5603" )
    #endif 
    Первые 2 числа разделенные символом '.' хранятся в массиве split_ip. Первое число в split_ip[0], второе в split_ip[1].

    Вместо массива "some_ip_string" выставляете IP адрес игрока, например:
    PHP код:
    PlayerInfo[playerid][pIP
    Примечание: Функция split или strsplit должна распологаться выше чем этот весь код.

    Ссылка на функцию:
    strsplit
    Последний раз редактировалось L0ndl3m; 06.08.2014 в 18:22.

  5. #5
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Для чего вы всё усложняете, если размер массива всё равно расчитан кое-как? Откуда число 300 вообще взялось?


    PHP код:

    static const
        
    some_ip_string[] = "192.168.0.1";

    new
        
    str[16],
        
    split_ip[2][4];

    strcat(strsome_ip_string);

    #if defined strsplit
        
    strsplit(strsplit_ip'.');
    #elseif defined split
        
    split(strsplit_ip'.');
    #else
        #error Function split or strsplit is not implemented ( see: "http://pro-pawn.ru/showthread.php?5603" )
    #endif 
    Первые 2 числа разделенные символом '.' хранятся в массиве split_ip. Первое число в split_ip[0], второе в split_ip[1].

    Вместо массива "some_ip_string" выставляете IP адрес игрока, например:
    PHP код:
    PlayerInfo[playerid][pIP
    Примечание: Функция split или strsplit должна распологаться выше чем этот весь код.

    Ссылка на функцию:
    strsplit
    Хм, а как же сверять то будет? Где GetPlayerIP тоесть какой сейчас...
    Вместо IP что сюда ставить?
    PHP код:
    some_ip_string[] = "192.168.0.1" 
    А на счёт сохранение, можете показать как правильней?

  6. #6
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Сначала разделяете один IP адрес на две части, потом второй ( полученный только что через функцию GetPlayerIp ), далее сверяете их с помощью функции strcmp:
    PHP код:
    if(strcmp(первый_IPвторой_IPtrue16) == 0)
        
    // совпадает
    else
        
    // не совпадает 
    Прошлый массив some_ip_string можете удалить, это я для теста вам предоставил.

  7. #7
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    А с сохранением аккаунта что?

  8. #8
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Хотя бы так:
    PHP код:
    static const fmt_str[] = "UPDATE "TABLE_ACCOUNT" SET `Password` = '%e', `Administration` = '%d', `Kills` = '%d', `Death` = '%d', `Informer_Off_Onn` = '%d', `Jail` = '%d', `Mute` = '%d', `Vip` = '%d'  WHERE `Name` = '%e'";
    new 
    string[sizeof(fmt_str) + (-20) + ((-11) * 7) + (-MAX_PLAYER_NAME)]; 
    Где 20 там макс. длина пароля.

  9. #9
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Хотя бы так:
    PHP код:
    static const fmt_str[] = "UPDATE "TABLE_ACCOUNT" SET `Password` = '%e', `Administration` = '%d', `Kills` = '%d', `Death` = '%d', `Informer_Off_Onn` = '%d', `Jail` = '%d', `Mute` = '%d', `Vip` = '%d'  WHERE `Name` = '%e'";
    new 
    string[sizeof(fmt_str) + (-20) + ((-11) * 7) + (-MAX_PLAYER_NAME)]; 
    Где 20 там макс. длина пароля.
    PHP код:
    Не работает все так же...
    stock SavePlayer(playerid)
    {
        if(
    GetPVarInt(playerid"Pvar_Loggin"))
        {
            static const 
    fmt_str[] = "UPDATE "TABLE_ACCOUNT" SET `Password` = '%e', `Administration` = '%d', `Kills` = '%d', `Death` = '%d', `Informer_Off_Onn` = '%d', `Jail` = '%d', `Mute` = '%d', `Vip` = '%d'  WHERE `Name` = '%e'";
            new 
    string[sizeof(fmt_str) + (-32) + ((-11) * 7) + (-MAX_PLAYER_NAME)];
            
    format(string,sizeof(string),fmt_str,
            
    PlayerInfo[playerid][pPassword],
            
    PlayerInfo[playerid][pAdmin],
            
    PlayerInfo[playerid][pKills],
            
    PlayerInfo[playerid][pDeath],
            
    PlayerInfo[playerid][pInformer_Off_Onn],
            
    PlayerInfo[playerid][pJail],
            
    PlayerInfo[playerid][pMute],
            
    PlayerInfo[playerid][pVip],
            
    NAME_REG[playerid]);
            
    mysql_tquery(connect_to_mysqlstring"""");
        }
        return 
    1;

    - - - Добавлено - - -

    Как пробую сохранять...
    PHP код:
        CMD:saveall(playerid)
        {
            foreach(new 
    iPlayer)
               {
                 
    SavePlayer(i);
            }
            
    SendClientMessageToAll(COLOR_LIGHTRED"Аккаунты сохранены");
        } 
    - - - Добавлено - - -

    PHP код:
        cache_get_field_content(0"IP_REG"PlayerInfo[playerid][pIP]);
        
    printf("ХУЯСЕ: %s"PlayerInfo[playerid][pIP]) 
    Почему то выгружает пустую строку хотя в базе она занята IP.
    PHP код:
    [19:18:13ХУЯСЕ

  10. #10
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Хотя бы так:
    PHP код:
    static const fmt_str[] = "UPDATE "TABLE_ACCOUNT" SET `Password` = '%e', `Administration` = '%d', `Kills` = '%d', `Death` = '%d', `Informer_Off_Onn` = '%d', `Jail` = '%d', `Mute` = '%d', `Vip` = '%d'  WHERE `Name` = '%e'";
    new 
    string[sizeof(fmt_str) + (-20) + ((-11) * 7) + (-MAX_PLAYER_NAME)]; 
    Где 20 там макс. длина пароля.
    Сохранение решил не делать на статистической константе.
    А вот почему всегда показывает что подсеть совпадает?
    PHP код:
        CMD:testgo(playeridparams[])
        {
            if(
    sscanf(params"u"params[0])) return SendClientMessage(playerid,COLOR_GRAD,"Используйте: /testgo [ID игрока]");
            new 
    string[16], split_ip[2][4], IP_NOW[16], SUBNET_VERIFICATION[30];
            
    strcat(stringPlayerInfo[params[0]][pIP]);
            
    printf("IP выгружаный из базы: %s"PlayerInfo[params[0]][pIP]);
            
    strsplit(stringsplit_ip'.');
            
    GetPlayerIp(params[0],IP_NOW,sizeof(IP_NOW));
            
    strsplit(IP_NOWsplit_ip'.');
            
    printf("GetPlayerIp: %s"IP_NOW);
            if(
    strcmp(stringIP_NOWtrue16) == 0SUBNET_VERIFICATION "Подсеть несовпадает";
            else 
    SUBNET_VERIFICATION "Подсеть совпадает";
            static const 
    fmt_str0[] = "%s";
            new 
    str[sizeof(fmt_str0) + 30];
            
    printf("SUBNET_VERIFICATION: %s"SUBNET_VERIFICATION);
            
    format(strsizeof(str), fmt_str0SUBNET_VERIFICATION);
            
    SendClientMessage(playeridCOLOR_LIGHTREDstr);
            return 
    1;
        } 
    Logi:
    PHP код:
    [20:20:11IP выгружаный из базы83.149.37.132
    [20:20:11GetPlayerIp212.109.30.209
    [20:20:11SUBNET_VERIFICATIONПодсеть совпадает 

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •