Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 26 из 31 ПерваяПервая ... 16 24 25 26 27 28 ... ПоследняяПоследняя
Показано с 251 по 260 из 308
  1. #251
    Аватар для Outsider
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.03.2017
    Сообщений
    82
    Репутация:
    0 ±
    Код HTML:
    public ShowCharList(playerid)
    {
    	new chars[3];
    	cache_get_value_name(0, "CharName", chars[0], 24);
    	new query_string[6+MAX_PLAYER_NAME * 3];
    	format(query_string, sizeof(query_string), "%s", chars[0]);
        ShowPlayerDialog(playerid, dSelChar, LIST, "Выбор персонажа", query_string, "Выбрать", "Инфо");
        return 1;
    }
    - - - Добавлено - - -

    PHP код:
    public UploadPlayerAccount(playerid)
    {
        
    cache_get_value_name_int(0"ID"pInfo[playerid][pID]);
        
    SendClientMessage(playeridCOLOR_GREEN"Âû óñïåøíî àâòîðèçèðîâàëèñü! Âûáåðèòå ïåðñîíàæà...");
        new 
    query_string[128];
        
    format(query_stringsizeof(query_string), "SELECT `CharName` FROM `Characters` WHERE `ID` = '%d'"pInfo[playerid][pID]);
        
    mysql_tquery(mysql_connect_IDquery_string"ShowCharList""i"playerid);
        return 
    1;


  2. #252
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Может я что-то не так понимаю в этой жизни, но что это за код такой?
    PHP код:
        new chars[3];
        
    cache_get_value_name(0"CharName"chars[0], 24); 
    Скинь скрин структуры таблицы аккаунтов
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  3. #253
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Так:

    PHP код:
    forward ShowCharList(playerid);
    public 
    ShowCharList(playerid)
    {
        new 
    chars[3][MAX_PLAYER_NAME];
        
    cache_get_value_name(0"CharName"chars[0], MAX_PLAYER_NAME);
        new 
    query_string[6+MAX_PLAYER_NAME 3];
        
    format(query_stringsizeof(query_string), "%s"chars[0]);
        
    ShowPlayerDialog(playeriddSelChar, LIST, "Выбор персонажа"query_string"Выбрать""Инфо");
        return 
    1;
    }

    forward UploadPlayerAccount(playerid);
    public 
    UploadPlayerAccount(playerid)
    {
        
    cache_get_value_name_int(0"ID"pInfo[playerid][pID]);
        
    SendClientMessage(playeridCOLOR_GREEN"Вы успешно авторизировались! Выберите персонажа...");
        new 
    query_string[128];
        
    format(query_stringsizeof(query_string), "SELECT `CharName` FROM `Characters` WHERE `ID` = '%d'"pInfo[playerid][pID]);
        
    mysql_tquery(mysql_connect_IDquery_string"ShowCharList""i"playerid);
        return 
    1;

    И если не будет работать, сделай так и скинь логи после попытки войти:
      Открыть/закрыть
    PHP код:
    forward ShowCharList(playerid);
    public 
    ShowCharList(playerid)
    {
        print(
    "ShowCharList 1");
        new 
    chars[3][MAX_PLAYER_NAME];
        
    cache_get_value_name(0"CharName"chars[0], MAX_PLAYER_NAME);
        print(
    "ShowCharList 2");
        new 
    query_string[6+MAX_PLAYER_NAME 3];
        
    format(query_stringsizeof(query_string), "%s"chars[0]);
        
    ShowPlayerDialog(playeriddSelChar, LIST, "Выбор персонажа"query_string"Выбрать""Инфо");
        print(
    "ShowCharList 3\n\n");
        return 
    1;
    }

    forward UploadPlayerAccount(playerid);
    public 
    UploadPlayerAccount(playerid)
    {
        print(
    "\n\nUploadPlayerAccount 1");
        
    cache_get_value_name_int(0"ID"pInfo[playerid][pID]);
        print(
    "UploadPlayerAccount 2");
        
    SendClientMessage(playeridCOLOR_GREEN"Вы успешно авторизировались! Выберите персонажа...");
        new 
    query_string[128];
        
    format(query_stringsizeof(query_string), "SELECT `CharName` FROM `Characters` WHERE `ID` = '%d'"pInfo[playerid][pID]);
        print(
    query_string);
        
    mysql_tquery(mysql_connect_IDquery_string"ShowCharList""i"playerid);
        print(
    "UploadPlayerAccount 3");
        return 
    1;

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  4. Пользователь сказал cпасибо:
    Outsider (09.03.2017)
  5. #254
    Аватар для Outsider
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.03.2017
    Сообщений
    82
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Так:
    Спасибо большое.
    Но, блин, я не понимаю, почему у меня не работало? Я даже отличий в коде не нашел.

  6. #255
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Outsider Посмотреть сообщение
    Спасибо большое.
    Но, блин, я не понимаю, почему у меня не работало? Я даже отличий в коде не нашел.
    Твой код:
    PHP код:
        new chars[3];
        
    cache_get_value_name(0"CharName"chars[0], 24); 
    Мой код:
    PHP код:
        new chars[3][MAX_PLAYER_NAME];
        
    cache_get_value_name(0"CharName"chars[0], MAX_PLAYER_NAME); 
    Сейчас подчищу статью от бессмысленных сообщений. Не пугайтесь, если что-то пропадёт
    Последний раз редактировалось DeimoS; 09.03.2017 в 19:36.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  7. Пользователь сказал cпасибо:
    Outsider (10.03.2017)
  8. #256
    Аватар для m1n1vv
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    PHP код:
    if(!strlen(inputtext)) return ShowPlayerDialog(playeriddRegisterDIALOG_STYLE_INPUT"Регистрация нового пользователя""{FF0000}Ошибка: {FFFFFF}Вы не можете продолжить регистрацию не введя пароль!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).""Регистрация""Выход"); 
            else if(
    strlen(inputtext) < 4) return ShowPlayerDialog(playeriddRegisterDIALOG_STYLE_INPUT"Регистрация нового пользователя""{FF0000}Ошибка: {FFFFFF}Пароль слишком короткий!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).""Регистрация""Выход"); 
            else if(
    strlen(inputtext) > 30) return ShowPlayerDialog(playeriddRegisterDIALOG_STYLE_INPUT"Регистрация нового пользователя""{FF0000}Ошибка: {FFFFFF}Пароль слишком длинный!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).""Регистрация""Выход"); 
    Не значительно, но может лучше так?

    PHP код:
    if (!(<= strlen(inputtext) <= 30))
        return 
    ShowPlayerDialog(playeriddRegisterDIALOG_STYLE_INPUT"Регистрация нового пользователя""{FF0000}Ошибка: {FFFFFF}Пароль слишком длинный!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).""Регистрация""Выход"); 
    Последний раз редактировалось m1n1vv; 18.03.2017 в 12:17.

  9. #257
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от m1n1vv Посмотреть сообщение
    PHP код:
    if(!strlen(inputtext)) return ShowPlayerDialog(playeriddRegisterDIALOG_STYLE_INPUT"Регистрация нового пользователя""{FF0000}Ошибка: {FFFFFF}Вы не можете продолжить регистрацию не введя пароль!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).""Регистрация""Выход"); 
            else if(
    strlen(inputtext) < 4) return ShowPlayerDialog(playeriddRegisterDIALOG_STYLE_INPUT"Регистрация нового пользователя""{FF0000}Ошибка: {FFFFFF}Пароль слишком короткий!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).""Регистрация""Выход"); 
            else if(
    strlen(inputtext) > 30) return ShowPlayerDialog(playeriddRegisterDIALOG_STYLE_INPUT"Регистрация нового пользователя""{FF0000}Ошибка: {FFFFFF}Пароль слишком длинный!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).""Регистрация""Выход"); 
    Не значительно, но может лучше так?

    PHP код:
    if (!(<= strlen(inputtext) <= 30))
        return 
    ShowPlayerDialog(playeriddRegisterDIALOG_STYLE_INPUT"Регистрация нового пользователя""{FF0000}Ошибка: {FFFFFF}Пароль слишком длинный!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).""Регистрация""Выход"); 
    А что, тащемта, изменилось, кроме уменьшения числа строк? Как по мне, лучше дать игроку конкретную информацию по тому, что он сделал не так, а не что-то обобщённое, что заставит его додумывать самостоятельно.
    Если ты о сокращении числа вызовов strlen, то проще уж сделать так:
    PHP код:
    new input_size strlen(inputtext);
    if(
    input_size 4)
        return 
    ShowPlayerDialog(playerid"dRegister"DIALOG_STYLE_INPUT"{FF8A00} {FFFFFF}Регистрация""{FF0000}Ошибка: {FFFFFF}Пароль слишком короткий!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).""Регистрация""Выход");
    else if(
    input_size MAX_PLAYER_PASSWORD)
        return 
    ShowPlayerDialog(playerid"dRegister"DIALOG_STYLE_INPUT"{FF8A00} {FFFFFF}Регистрация""{FF0000}Ошибка: {FFFFFF}Пароль слишком длинный!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).""Регистрация""Выход"); 
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    А что, тащемта, изменилось, кроме уменьшения числа строк? Как по мне, лучше дать игроку конкретную информацию по тому, что он сделал не так, а не что-то обобщённое, что заставит его додумывать самостоятельно.
    Если ты о сокращении числа вызовов strlen, то проще уж сделать так:
    PHP код:
    new input_size strlen(inputtext);
    if(
    input_size 4)
        return 
    ShowPlayerDialog(playerid"dRegister"DIALOG_STYLE_INPUT"{FF8A00} {FFFFFF}Регистрация""{FF0000}Ошибка: {FFFFFF}Пароль слишком короткий!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).""Регистрация""Выход");
    else if(
    input_size MAX_PLAYER_PASSWORD)
        return 
    ShowPlayerDialog(playerid"dRegister"DIALOG_STYLE_INPUT"{FF8A00} {FFFFFF}Регистрация""{FF0000}Ошибка: {FFFFFF}Пароль слишком длинный!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).""Регистрация""Выход"); 
    А вместо for использовать while?

  11. #259
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от m1n1vv Посмотреть сообщение
    А вместо for использовать while?



    Цитата Сообщение от DeimoS Посмотреть сообщение
    А что, тащемта, изменилось
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  12. #260
    Аватар для m1n1vv
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение

    PHP код:
    case dRegister

        if (!
    response
        { 
            
    ShowPlayerDialog(playeriddKickMessageDIALOG_STYLE_MSGBOX, !"Оповещение", !"{FFFFFF}Вы были кикнуты с сервера.\n{FF0000}Причина: Отказ от регистрации.\n{FFFFFF}Для выхода с сервера введите \"/q\" в чат", !"Выход"""); 
            return 
    Kick(playerid); 
        } 

        new
            
    len strlen(inputtext),
            
    is;

        if (!(
    <= len <= 30))
            return 
    ShowPlayerDialog(playeriddRegisterDIALOG_STYLE_INPUT, !"Регистрация нового пользователя", !"{FF0000}Ошибка: {FFFFFF}Пароль слишком длинный!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, 0-9).", !"Регистрация", !"Выход"); 

        while ((
    inputtext[i++]) != '\0')
        { 
            switch (
    s
            { 
                case 
    '0'..'9''a'..'z''A'..'Z'
                    continue; 
                default: 
                    return 
    ShowPlayerDialog(playeriddRegisterDIALOG_STYLE_INPUT, !"Регистрация нового пользователя", !"{FF0000}Ошибка: {FFFFFF}Пароль содержит запрещённые символы!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, 0-9).", !"Регистрация", !"Выход"); 
            } 
        } 

        
    strcat((pInfo[playerid][pPassword][0] = EOSpInfo[playerid][pPassword]), inputtext);
        return 
    CreateNewAccount(playeridpInfo[playerid][pPassword]);

    Правда можно еще больше упростить. Только ради stack.

      Открыть/закрыть
    PHP код:
    case dRegister

        if (!
    response
        { 
            
    ShowPlayerDialog(playeriddKickMessageDIALOG_STYLE_MSGBOX, !"Оповещение", !"{FFFFFF}Вы были кикнуты с сервера.\n{FF0000}Причина: Отказ от регистрации.\n{FFFFFF}Для выхода с сервера введите \"/q\" в чат", !"Выход"""); 
            return 
    Kick(playerid); 
        } 

        new
            
    len strlen(inputtext),
            
    war,
            
    is;

        if (!(
    <= len <= 30))
            
    war 1;

        while ((
    inputtext[i++]) != '\0')
        { 
            switch (
    s
            { 
                case 
    '0'..'9','a'..'z''A'..'Z'
                    continue; 
                default: 
                {
                    
    war 1;
                    break;
                }
            }
        }

        if (
    war)
            return 
    ShowPlayerDialog(playeriddRegisterDIALOG_STYLE_INPUT, !"Регистрация нового пользователя", !"{FF0000}Ошибка: {FFFFFF}Пароль содержит запрещённые символы!\nВведите пароль для регистрации нового аккаунта:\n{C0C0C0}Примечание:\n{666666}- Пароль чувствителен к регистру.\n- Пароль должен содержать от 4 до 30 символов.\n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, 0-9).", !"Регистрация", !"Выход"); 

        
    strcat((pInfo[playerid][pPassword][0] = EOSpInfo[playerid][pPassword]), inputtext);
        return 
    CreateNewAccount(playeridpInfo[playerid][pPassword]);

    Последний раз редактировалось m1n1vv; 18.03.2017 в 13:36.

 

 
Страница 26 из 31 ПерваяПервая ... 16 24 25 26 27 28 ... ПоследняяПоследняя

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

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

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

Ваши права

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