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

Реклама


 
IP:176.32.36.96:7777 Ha6op adm,liderov + bonuse.

**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 100руб/мес, Текстовая 50руб/мес.
Страница 2 из 26 ПерваяПервая 1234 12 ... ПоследняяПоследняя
Показано с 11 по 20 из 259
  1. #11
    Аватар для Stats
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.09.2014
    Сообщений
    16
    Репутация:
    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;  


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

    Статус
    Онлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,121
    Репутация:
    1254 ±
    Во-первых, сделайте логирование запроса
    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

  3. #13
    Аватар для Nurick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.04.2014
    Адрес
    Уфа, Россия
    Сообщений
    298
    Репутация:
    50 ±
    PHP код:
    default:
    {
        
    ShowPlayerDialog(playeriddLoginDIALOG_STYLE_MSGBOX"Оповещение""{FFFFFF}Вы были кикнуты с сервера.\n{FF0000}Причина: Превышен лимит попыток на ввод пароля.\n{FFFFFF}Для выхода с сервера введите \"/q\" в чат""Вход""Выход");
        return 
    Kick(playerid);

    Этот диалог не выводит. Не успевает оповестить игрока перед киком.


    PHP код:
    forward KickPlayer(playerid);
    public 
    KickPlayer(playerid) return Kick(playerid);
    stock KickSendClientMessage(playeridcolormessage[])
    {
        
    SendClientMessage(playeridcolormessage);
        
    SetTimerEx("KickPlayer"10000"d"playerid);


    PHP код:
    default: KickSendClientMessage(playerid0xFE6500FF"Превышен лимит попыток на ввод пароля. Для выхода с сервера введите \"/q\""); 

  4. #14
    Аватар для DeimoS
    Модератор?

    Статус
    Онлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,121
    Репутация:
    1254 ±
    Цитата Сообщение от Nurick Посмотреть сообщение
    PHP код:
    default:
    {
        
    ShowPlayerDialog(playeriddLoginDIALOG_STYLE_MSGBOX"Оповещение""{FFFFFF}Вы были кикнуты с сервера.\n{FF0000}Причина: Превышен лимит попыток на ввод пароля.\n{FFFFFF}Для выхода с сервера введите \"/q\" в чат""Вход""Выход");
        return 
    Kick(playerid);

    Этот диалог не выводит. Не успевает оповестить игрока перед киком.


    PHP код:
    forward KickPlayer(playerid);
    public 
    KickPlayer(playerid) return Kick(playerid);
    stock KickSendClientMessage(playeridcolormessage[])
    {
        
    SendClientMessage(playeridcolormessage);
        
    SetTimerEx("KickPlayer"10000"d"playerid);


    PHP код:
    default: KickSendClientMessage(playerid0xFE6500FF"Превышен лимит попыток на ввод пароля. Для выхода с сервера введите \"/q\""); 
    В начало мода
    PHP код:
    forward KickPublic(playerid);
    public 
    KickPublic(playerid) return Kick(playerid);

    #define Kick(%0) SetTimerEx("KickPublic", 100, false, "i", %0) 
    Не меня ничего местами и всё, никаких проблем не будет :) Думал об этом написать, но, опять же, и так много в уроке информации, которая не относится к регистрации
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    01.09.2014
    Сообщений
    16
    Репутация:
    0 ±
    Какой-то бред. Вроде ничего не менял. Опять не сохраняет переменную pAdmin и к тому же теперь и ID аккаунта в логах показывает ID = 0. Хотя в таблице записывает ID = 111. Что это может быть?

    Логи:
    PHP код:
    UPDATE `accountsSET `Name` = 'Semen_Petrov', `Key` = '123456', `Admin` = '6' WHERE `ID` = '0' 
    Аккаунт в таблице:




    Stock как был, так и остался. Вроде ничего не менял.

    PHP код:
    stock SaveAccount(playerid)
    {
        new 
    query_string[(21)+(16+11)+(19+MAX_PLAYER_NAME)+(16+30)+(20)] = "UPDATE `accounts` SET";

        
    format(query_stringsizeof(query_string), "%s `Name` = '%s',"query_stringPlayerInfo[playerid][pName]);
        
    format(query_stringsizeof(query_string), "%s `Key` = '%s',"query_stringPlayerInfo[playerid][pKey]);
        
        
    format(query_stringsizeof(query_string), "%s `Admin` = '%d'"query_stringPlayerInfo[playerid][pAdmin]);

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


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

    Статус
    Оффлайн
    Регистрация
    19.04.2014
    Адрес
    Уфа, Россия
    Сообщений
    298
    Репутация:
    50 ±
    Разве запятая не должна быть после 'Admin'

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

    Статус
    Онлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,121
    Репутация:
    1254 ±
    Цитата Сообщение от Nurick Посмотреть сообщение
    Разве запятая не должна быть после 'Admin'
    Если запятая будет после 'Admin', то выйдет следующее:
    PHP код:
    `Admin` = '%d'WHERE `ID` = '%d' 
    Что совсем неверно. В уроке об этом сказано.



    Цитата Сообщение от Stats Посмотреть сообщение
    Какой-то бред. Вроде ничего не менял. Опять не сохраняет переменную pAdmin и к тому же теперь и ID аккаунта в логах показывает ID = 0. Хотя в таблице записывает ID = 111. Что это может быть?

    Логи:
    PHP код:
    UPDATE `accountsSET `Name` = 'Semen_Petrov', `Key` = '123456', `Admin` = '6' WHERE `ID` = '0' 
    Аккаунт в таблице:




    Stock как был, так и остался. Вроде ничего не менял.

    PHP код:
    stock SaveAccount(playerid)
    {
        new 
    query_string[(21)+(16+11)+(19+MAX_PLAYER_NAME)+(16+30)+(20)] = "UPDATE `accounts` SET";

        
    format(query_stringsizeof(query_string), "%s `Name` = '%s',"query_stringPlayerInfo[playerid][pName]);
        
    format(query_stringsizeof(query_string), "%s `Key` = '%s',"query_stringPlayerInfo[playerid][pKey]);
        
        
    format(query_stringsizeof(query_string), "%s `Admin` = '%d'"query_stringPlayerInfo[playerid][pAdmin]);

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

    Во-первых, добавьте проверку на авторизацию:
    PHP код:
    stock SaveAccount(playerid)
    {
        if(!
    player_logged{playerid}) return 1;
        new 
    query_string[(21)+(16+11)+(19+MAX_PLAYER_NAME)+(16+30)+(20)] = "UPDATE `accounts` SET";

        
    format(query_stringsizeof(query_string), "%s `Name` = '%s',"query_stringPlayerInfo[playerid][pName]);
        
    format(query_stringsizeof(query_string), "%s `Key` = '%s',"query_stringPlayerInfo[playerid][pKey]);
        
        
    format(query_stringsizeof(query_string), "%s `Admin` = '%d'"query_stringPlayerInfo[playerid][pAdmin]);

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

    Во-вторых, UploadPlayerAccount покажите
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    01.09.2014
    Сообщений
    16
    Репутация:
    0 ±
    Пожалуйста. До этого все же было нормально, в смысле когда мы разобрались с запятыми в format.

    PHP код:
    forward UploadPlayerAccount(playerid);
    public 
    UploadPlayerAccount(playerid)
    {
        
    PlayerInfo[playerid][pID] = cache_get_field_content_int(0"ID"mysql_connect_ID);
        
    PlayerInfo[playerid][pAdmin] = cache_get_field_content_int(0"Admin"mysql_connect_ID);
        
    SendClientMessage(playerid0xFFFFFF00"Вы успешно авторизировались!");
        
    player_logged{playerid} = 1;
        
    SpawnPlayer(playerid);
        return 
    1;


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

    Статус
    Онлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,121
    Репутация:
    1254 ±
    PHP код:
    forward UploadPlayerAccount(playerid);
    public 
    UploadPlayerAccount(playerid)
    {
        
    PlayerInfo[playerid][pID] = cache_get_field_content_int(0"ID"mysql_connect_ID);
        
    printf("\n\n%d | %d"PlayerInfo[playerid][pID], PlayerInfo[playerid][pAdmin]);
        
    PlayerInfo[playerid][pAdmin] = cache_get_field_content_int(0"Admin"mysql_connect_ID);
        
    printf("%d | %d\n\n"PlayerInfo[playerid][pID], PlayerInfo[playerid][pAdmin]);
        
    SendClientMessage(playerid0xFFFFFF00"Вы успешно авторизировались!");
        
    player_logged{playerid} = 1;
        
    SpawnPlayer(playerid);
        return 
    1;

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    01.09.2014
    Сообщений
    16
    Репутация:
    0 ±
    Вот это логи после первой регистрации, заметьте, что ID = 0. После чего я присваиваю pAdmin = 6. Но в таблице pAdmin = 0. Т.е не сохраняет. Но поле ID =111.

    PHP код:
    UPDATE `accountsSET `Name` = 'Semen_Petrov', `Key` = '123456', `Admin` = '6' WHERE `ID` = '0' 

    Это логи после второго входа на сервер, т.е авторизации. Я опять же присвоил значение pAdmin = 6. При выходе все сохранилось. Странно.
    PHP код:
    111 6
    111 
    0

    UPDATE 
    `accountsSET `Name` = 'Semen_Petrov', `Key` = '123456', `Admin` = '6' WHERE `ID` = '111' 
    Может что-то с базой или таблицей?
    Последний раз редактировалось Stats; 10.10.2014 в 16:50.

 

 
Страница 2 из 26 ПерваяПервая 123412 ... ПоследняяПоследняя

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

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

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

Ваши права

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