Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама



**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 100руб/мес, Текстовая 50руб/мес.
Страница 3 из 27 ПерваяПервая 12345 13 ... ПоследняяПоследняя
Показано с 21 по 30 из 261
  1. #21
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    2,936
    Репутация:
    1170 ±
    Если речь о mysql_tquery, то, если открыть инклюд MySQL, можно увидеть такой макрос:
    PHP код:
    #define mysql_function_query(%0,%1,%2,%3,"%4"%5)     mysql_tquery(%0,%1,%3,#%4%5) 
    То бишь, разницы никакой нет. Просто в mysql_function_query добавлен параметр кэширования, как я понимаю, для наглядности во время чтения кода (то бишь, чтоб можно было узнать о назначении запроса, не выискивая текст самого запроса). Я привык пользоваться этим макросом поэтому и использовал его. Описывать настоящую функцию не стал, ибо и так много информации сторонней в уроке.
    Ну а если что-то ещё интересует - прошу уточнить.
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  2. Пользователь сказал cпасибо:
    #enotya (21.08.2016)
  3. #22
    Аватар для Nurick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.04.2014
    Адрес
    Уфа, Россия
    Сообщений
    302
    Репутация:
    50 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Если речь о mysql_tquery, то, если открыть инклюд MySQL, можно увидеть такой макрос:
    PHP код:
    #define mysql_function_query(%0,%1,%2,%3,"%4"%5)     mysql_tquery(%0,%1,%3,#%4%5) 
    То бишь, разницы никакой нет. Просто в mysql_function_query добавлен параметр кэширования, как я понимаю, для наглядности во время чтения кода (то бишь, чтоб можно было узнать о назначении запроса, не выискивая текст самого запроса). Я привык пользоваться этим макросом поэтому и использовал его. Описывать настоящую функцию не стал, ибо и так много информации сторонней в уроке.
    Ну а если что-то ещё интересует - прошу уточнить.
    Спасибо, просто я писал систему регистрации на примере от BlueG(r39-2). И что то появились сомнения, щас открыл инклуид и убедился.

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

    Статус
    Оффлайн
    Регистрация
    01.09.2014
    Сообщений
    20
    Репутация:
    0 ±
    Почему не сохраняет другие переменные ? Я добавляю допустим "Admin", в игре я устанавливаю себе уровень "Admin" = 5. При выходе игрока срабатывает stock SaveAccount, но Admin = 5 он не записывает. Как был 0, так и остался.

    PHP код:
    format(query_stringsizeof(query_string), "%s `Admin` = '%d'"query_stringpInfo[playerid][pAdmin]); // (14+3) допустим 
    PHP код:
    stock SaveAccount(playerid)  

        new 
    query_string[(21)+(16+11)+(19+MAX_PLAYER_NAME)+(16+30)+(14+3)] = "UPDATE `accounts` SET"
         
        
    format(query_stringsizeof(query_string), "%s `player_name` = '%s'"query_stringpInfo[playerid][pName]); 
        
    format(query_stringsizeof(query_string), "%s `password` = '%s'"query_stringpInfo[playerid][pPassword]); 

        
    format(query_stringsizeof(query_string), "%s `Admin` = '%d'"query_stringpInfo[playerid][pAdmin]); // (14+3) допустим

        
    format(query_stringsizeof(query_string), "%s WHERE `ID` = '%d'"query_stringpInfo[playerid][pID]); 
        
    mysql_function_query(mysql_connect_IDquery_stringfalse"""");  
        return 
    1;  


  5. #24
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    2,936
    Репутация:
    1170 ±
    Во-первых, сделайте логирование запроса
    PHP код:
    stock SaveAccount(playerid)   
    {  
        new 
    query_string[(21)+(16+11)+(19+MAX_PLAYER_NAME)+(16+30)+(14+3)] = "UPDATE `accounts` SET";  
          
        
    format(query_stringsizeof(query_string), "%s `player_name` = '%s',"query_stringpInfo[playerid][pName]);  
        
    format(query_stringsizeof(query_string), "%s `password` = '%s',"query_stringpInfo[playerid][pPassword]);  

        
    format(query_stringsizeof(query_string), "%s `Admin` = '%d'"query_stringpInfo[playerid][pAdmin]); // (14+3) допустим 

        
    format(query_stringsizeof(query_string), "%s WHERE `ID` = '%d'"query_stringpInfo[playerid][pID]);  
        
    mysql_function_query(mysql_connect_IDquery_stringfalse"""");   
        
    printf("\n\n%s\n\n"query_string);
        return 
    1;   

    Во-вторых, скиньте скрин вкладки "структура" из phpMyAdmin
    Последний раз редактировалось DeimoS; 09.10.2014 в 16:17.
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  6. #25
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    538
    Репутация:
    266 ±
    Репозитории? не, не слышал.

  7. #26
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    2,936
    Репутация:
    1170 ±
    Цитата Сообщение от Seregamil Посмотреть сообщение
    Репозитории? не, не слышал.
    Так а я собираюсь этот урок дополнять новым кодом?
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  8. #27
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    538
    Репутация:
    266 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Так а я собираюсь этот урок дополнять новым кодом?
    Дело не в том, дополнять или нет, дело в том, что лучше просмотреть весь код на месте из репозитория со всеми причендалами, нежели скачивать подозрительного происхождения архив, в котором не исключается наличие вирусов.

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

    Статус
    Оффлайн
    Регистрация
    09.10.2014
    Сообщений
    4
    Репутация:
    0 ±
    Помогите пожалуйста
    Хочу перевести регистрацию и авторизацию на r39-2, но когда захожу - пароль никакой не принимает
    у меня при регистрации пароль кодируется, возможно из-за этого
    вот код:

    PHP код:
    case LOGIN_ID:
            {
                if(
    response)
                {
                    if(
    istext(PlayerInfo[playerid][pPassword], MD5_Hash(inputtext)) && strlen(inputtext) > 0)
                    {
                        if(
    IsPlayerNPC(playerid)) return 1;
                        new 
    string[128];
                        
    f(string"SELECT * FROM "T_USERS" WHERE `NAME`='%s' LIMIT 1"PlayerInfo[playerid][pName]);
                        
    mysql_function_query(dbHandlestringtrue"mysql_OnPlayerLoadInfo""i"playerid);
                        
    settext(PlayerSavePass[playerid], inputtext);
                        
    GetPlayerOption[playerid] = 0;
                    }
                    else
                    {
                        if(
    GetPlayerOption[playerid] > 3)
                        {
                            
    ShowBox(playerid"{FF0000}Ты кикнут по причине подбора пароля");
                            
    KickEx(playerid);
                            return 
    1;
                        }
                        new 
    string_login[560];
                        
    f(string_login"{00FF00}\t\t\t\t\t\t\t\n{C0C0C0}------------------------------------------------------------------------------------------------\n\n");
                        
    f(string_login"%s{FFFFFF}Здравствуйте, {1DC4B1}%s\n"string_loginPlayerInfo[playerid][pName]);
                        
    f(string_login"%s{FFFFFF}Мы рады видеть тебя в нашем штате!\n\n"string_login);
                        
    f(string_login"%s{C590D4}\tДанный аккаунт {FFFFFF}[{CCCCCC}зарегистрирован{FFFFFF}]{C590D4} в базе данных.\n"string_login);
                        
    f(string_login"%s\tУкажи пароль в этом диалоге:\n\n"string_login);
                        
    f(string_login"%s{FF0000}\tВведенный пароль не верен!\n\n"string_login);
                        
    f(string_login"%s{C0C0C0}------------------------------------------------------------------------------------------------"string_login);
                        
    Dialog(playeridLOGIN_IDDIALOG_STYLE_INPUT""DLG_COLOR"Авторизация персонажа"string_login"Ок""Выйти");
                        
    GetPlayerOption[playerid]++;
                    }
                }
                else
                {
                    
    ShowBox(playerid"{FF0000}Ты кикнут по причине отмены авторизации");
                    
    KickEx(playerid);
                }
            }
            case 
    LOGIN_ID+1:
            {
                if(
    response)
                {
                    if(
    strlen(inputtext) < 17 && strlen(inputtext) > 2)
                       {
                           if(
    IsPlayerNPC(playerid)) return 1;
                           if(
    NoSymbols(inputtext))
                           {
                            
    settext(PlayerInfo[playerid][pPassword], MD5_Hash(inputtext));
                            
    settext(PlayerSavePass[playerid], inputtext);
                            new 
    string[200];
                            
    f(string"INSERT INTO "T_USERS" (`name`,`password`) VALUES ('%s','%e')"PlayerInfo[playerid][pName], MD5_Hash(PlayerSavePass[playerid]));
                            
    mysql_function_query(dbHandlestringfalse"""");
                            
    PlayerInfo[playerid][pSpawn] = random(3);
                            new 
    string_rules[1960];
                            
    CreateRulesFromString(string_rules);
                            
    Dialog(playeridLOGIN_ID+2DIALOG_STYLE_MSGBOX""DLG_COLOR"Правила сервера"string_rules"Играть""");
                            
    PlayerPlaySound(playerid10570.00.00.0);
                        }
                        else
                        {
                            new 
    string_login[560];
                            
    f(string_login"{00FF00}\t\t\t\t\t\t\t\n{C0C0C0}------------------------------------------------------------------------------------------------\n\n");
                            
    f(string_login"%s{FFFFFF}Здравствуйте, {1DC4B1}%s\n"string_loginPlayerInfo[playerid][pName]);
                            
    f(string_login"%s{FFFFFF}Мы рады видеть тебя в нашем штате!\n\n"string_login);
                            
    f(string_login"%s{D4F065}\tДанный аккаунт {FFFFFF}[{CCCCCC}не зарегистрирован{FFFFFF}]{D4F065} в базе данных.\n"string_login);
                            
    f(string_login"%s\tПридумай пароль и введи его в этом диалоге:\n\n"string_login);
                            
    f(string_login"%s{FF0000}\tПароль не должен содержать знаков символов или пробелов!\n\n"string_login);
                            
    f(string_login"%s{C0C0C0}------------------------------------------------------------------------------------------------"string_login);
                            
    Dialog(playeridLOGIN_ID+1DIALOG_STYLE_INPUT""DLG_COLOR"Регистрация персонажа"string_login"Ок""Выйти");
                        }
                    }
                    else
                    {
                        new 
    string_login[560];
                        
    f(string_login"{00FF00}\t\t\t\t\t\t\t\n{C0C0C0}------------------------------------------------------------------------------------------------\n\n");
                        
    f(string_login"%s{FFFFFF}Здравствуйте, {1DC4B1}%s\n"string_loginPlayerInfo[playerid][pName]);
                        
    f(string_login"%s{FFFFFF}Мы рады видеть тебя в нашем штате!\n\n"string_login);
                        
    f(string_login"%s{D4F065}\tДанный аккаунт {FFFFFF}[{CCCCCC}не зарегистрирован{FFFFFF}]{D4F065} в базе данных.\n"string_login);
                        
    f(string_login"%s\tПридумай пароль и введи его в этом диалоге:\n\n"string_login);
                        
    f(string_login"%s{FF0000}\tДлина пароля должна быть от 3 до 16 символов!\n\n"string_login);
                        
    f(string_login"%s{C0C0C0}------------------------------------------------------------------------------------------------"string_login);
                        
    Dialog(playeridLOGIN_ID+1DIALOG_STYLE_INPUT""DLG_COLOR"Регистрация персонажа"string_login"Ок""Выйти");
                    }
                }
                else
                {
                    
    ShowBox(playerid"{FF0000}Ты кикнут по причине отмены авторизации");
                    
    KickEx(playerid);
                }
            } 

  10. #29
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    2,936
    Репутация:
    1170 ±
    Цитата Сообщение от Seregamil Посмотреть сообщение
    Дело не в том, дополнять или нет, дело в том, что лучше просмотреть весь код на месте из репозитория со всеми причендалами, нежели скачивать подозрительного происхождения архив, в котором не исключается наличие вирусов.
    Так весь код имеется в статье. Статья направлена на новичков, которым интересно то, как писать регистрацию. Следовательно, код без описания не имеет никакой ценности. Так что не вижу в создании репозитория никакого смысла.
    По поводу архива. Он есть в статье чисто для того, чтоб люди могли увидеть структуру папки с сервером в финальном виде. То есть, ты переходишь по ссылке, нажимаешь "Посмотреть" и смотришь то, где должен находится тот или иной файл. В архиве нет ничего, о чём бы не говорилось в статье. Не путай предназначение темы.

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

    Цитата Сообщение от TBO1GREH Посмотреть сообщение
    Помогите пожалуйста
    Хочу перевести регистрацию и авторизацию на r39-2, но когда захожу - пароль никакой не принимает
    у меня при регистрации пароль кодируется, возможно из-за этого
    вот код:

    PHP код:
    case LOGIN_ID:
            {
                if(
    response)
                {
                    if(
    istext(PlayerInfo[playerid][pPassword], MD5_Hash(inputtext)) && strlen(inputtext) > 0)
                    {
                        if(
    IsPlayerNPC(playerid)) return 1;
                        new 
    string[128];
                        
    f(string"SELECT * FROM "T_USERS" WHERE `NAME`='%s' LIMIT 1"PlayerInfo[playerid][pName]);
                        
    mysql_function_query(dbHandlestringtrue"mysql_OnPlayerLoadInfo""i"playerid);
                        
    settext(PlayerSavePass[playerid], inputtext);
                        
    GetPlayerOption[playerid] = 0;
                    }
                    else
                    {
                        if(
    GetPlayerOption[playerid] > 3)
                        {
                            
    ShowBox(playerid"{FF0000}Ты кикнут по причине подбора пароля");
                            
    KickEx(playerid);
                            return 
    1;
                        }
                        new 
    string_login[560];
                        
    f(string_login"{00FF00}\t\t\t\t\t\t\t\n{C0C0C0}------------------------------------------------------------------------------------------------\n\n");
                        
    f(string_login"%s{FFFFFF}Здравствуйте, {1DC4B1}%s\n"string_loginPlayerInfo[playerid][pName]);
                        
    f(string_login"%s{FFFFFF}Мы рады видеть тебя в нашем штате!\n\n"string_login);
                        
    f(string_login"%s{C590D4}\tДанный аккаунт {FFFFFF}[{CCCCCC}зарегистрирован{FFFFFF}]{C590D4} в базе данных.\n"string_login);
                        
    f(string_login"%s\tУкажи пароль в этом диалоге:\n\n"string_login);
                        
    f(string_login"%s{FF0000}\tВведенный пароль не верен!\n\n"string_login);
                        
    f(string_login"%s{C0C0C0}------------------------------------------------------------------------------------------------"string_login);
                        
    Dialog(playeridLOGIN_IDDIALOG_STYLE_INPUT""DLG_COLOR"Авторизация персонажа"string_login"Ок""Выйти");
                        
    GetPlayerOption[playerid]++;
                    }
                }
                else
                {
                    
    ShowBox(playerid"{FF0000}Ты кикнут по причине отмены авторизации");
                    
    KickEx(playerid);
                }
            }
            case 
    LOGIN_ID+1:
            {
                if(
    response)
                {
                    if(
    strlen(inputtext) < 17 && strlen(inputtext) > 2)
                       {
                           if(
    IsPlayerNPC(playerid)) return 1;
                           if(
    NoSymbols(inputtext))
                           {
                            
    settext(PlayerInfo[playerid][pPassword], MD5_Hash(inputtext));
                            
    settext(PlayerSavePass[playerid], inputtext);
                            new 
    string[200];
                            
    f(string"INSERT INTO "T_USERS" (`name`,`password`) VALUES ('%s','%e')"PlayerInfo[playerid][pName], MD5_Hash(PlayerSavePass[playerid]));
                            
    mysql_function_query(dbHandlestringfalse"""");
                            
    PlayerInfo[playerid][pSpawn] = random(3);
                            new 
    string_rules[1960];
                            
    CreateRulesFromString(string_rules);
                            
    Dialog(playeridLOGIN_ID+2DIALOG_STYLE_MSGBOX""DLG_COLOR"Правила сервера"string_rules"Играть""");
                            
    PlayerPlaySound(playerid10570.00.00.0);
                        }
                        else
                        {
                            new 
    string_login[560];
                            
    f(string_login"{00FF00}\t\t\t\t\t\t\t\n{C0C0C0}------------------------------------------------------------------------------------------------\n\n");
                            
    f(string_login"%s{FFFFFF}Здравствуйте, {1DC4B1}%s\n"string_loginPlayerInfo[playerid][pName]);
                            
    f(string_login"%s{FFFFFF}Мы рады видеть тебя в нашем штате!\n\n"string_login);
                            
    f(string_login"%s{D4F065}\tДанный аккаунт {FFFFFF}[{CCCCCC}не зарегистрирован{FFFFFF}]{D4F065} в базе данных.\n"string_login);
                            
    f(string_login"%s\tПридумай пароль и введи его в этом диалоге:\n\n"string_login);
                            
    f(string_login"%s{FF0000}\tПароль не должен содержать знаков символов или пробелов!\n\n"string_login);
                            
    f(string_login"%s{C0C0C0}------------------------------------------------------------------------------------------------"string_login);
                            
    Dialog(playeridLOGIN_ID+1DIALOG_STYLE_INPUT""DLG_COLOR"Регистрация персонажа"string_login"Ок""Выйти");
                        }
                    }
                    else
                    {
                        new 
    string_login[560];
                        
    f(string_login"{00FF00}\t\t\t\t\t\t\t\n{C0C0C0}------------------------------------------------------------------------------------------------\n\n");
                        
    f(string_login"%s{FFFFFF}Здравствуйте, {1DC4B1}%s\n"string_loginPlayerInfo[playerid][pName]);
                        
    f(string_login"%s{FFFFFF}Мы рады видеть тебя в нашем штате!\n\n"string_login);
                        
    f(string_login"%s{D4F065}\tДанный аккаунт {FFFFFF}[{CCCCCC}не зарегистрирован{FFFFFF}]{D4F065} в базе данных.\n"string_login);
                        
    f(string_login"%s\tПридумай пароль и введи его в этом диалоге:\n\n"string_login);
                        
    f(string_login"%s{FF0000}\tДлина пароля должна быть от 3 до 16 символов!\n\n"string_login);
                        
    f(string_login"%s{C0C0C0}------------------------------------------------------------------------------------------------"string_login);
                        
    Dialog(playeridLOGIN_ID+1DIALOG_STYLE_INPUT""DLG_COLOR"Регистрация персонажа"string_login"Ок""Выйти");
                    }
                }
                else
                {
                    
    ShowBox(playerid"{FF0000}Ты кикнут по причине отмены авторизации");
                    
    KickEx(playerid);
                }
            } 
    Прологируйте оба пароля (что извлекается из БД и что вводит игрок) и увидите то, виновата ли шифровка или что-то ещё.
    Больше ничего толкового сказать не могу, ибо не знаю структуры ваших функций, типа "istext"
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  11. #30
    Аватар для TBO1GREH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.10.2014
    Сообщений
    4
    Репутация:
    0 ±
    в шифровке дело
    сами функции я вижу тут только 2

    #define istext(%0,%1) (!strcmp(%0,%1,true))
    #define settext(%0,%1) strmid(%0,%1,0,strlen(%1),255)

 

 
Страница 3 из 27 ПерваяПервая 1234513 ... ПоследняяПоследняя

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

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

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

Ваши права

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