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

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±

    Проблема, связанная с работоспособностью функции в новой версии MySQL [R41]

    Привет всем. Недавно я спрашивал у Вас о версии MySQL и всё же решил перевести мод на новейшую версию плагина, но столкнулся с проблемой. В одной из систем требуется вывод имени игрока из базы данных, но чтобы получить этот ник, необходимо отправить запрос. На версии R39-4 всё работало стабильно, но теперь работает как-то... не очень, точнее вообще не работает.
    Как было на R39-4: (для примера)
    Код:
    new nick[MAX_PLAYER_NAME];
    cache_get_field_content(0, "nick", MySQL, MAX_PLAYER_NAME);
    При этом всё нормально выводилось.
    После того, как я перевёл (почти...) мод на новую версию, я снова же решил проверить эту систему, но ничего не выводилось.
    Я сделал почти так же:
    Код:
    new nick[MAX_PLAYER_NAME];
    cache_get_value_name(0, "nick", nick, MAX_PLAYER_NAME);
    Потом сделал вот так:
    Код:
    new nick[32];
    cache_get_value_name(0, "nick", nick, 32);
    И всё снова встало на свои места. Из-за чего это может быть?

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Можно сделать так:
    PHP код:
        new nick[MAX_PLAYER_NAME 1];
        
    cache_get_value_name(0"nick"nick); 
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

  3. Пользователь сказал cпасибо:
    PawnoNoob (07.11.2016)
  4. #3
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Нужно смотреть запрос и mysql_log.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Можно сделать так:
    PHP код:
        new nick[MAX_PLAYER_NAME 1];
        
    cache_get_value_name(0"nick"nick); 
    Код HTML:
    new nick[MAX_PLAYER_NAME+1];
    cache_get_value_name_(0, "nick", nick, MAX_PLAYER_NAME);
    Не помогло.

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

    Цитата Сообщение от DeimoS Посмотреть сообщение
    Нужно смотреть запрос и mysql_log.
    [13:15:18] [WARNING] mysql_connect: no password specified

    Не думаю, что это как-то относится к моей проблеме
    "SELECT * FROM.... WHERE `id` = '%i'" - запрос. Выгружает всё кроме ника.
    Последний раз редактировалось PawnoNoob; 07.11.2016 в 14:59.

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Зачем Вы поставили размер константой?
    Вставьте мой код и проверьте. Должно работать.
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

  8. Пользователь сказал cпасибо:
    PawnoNoob (07.11.2016)
  9. #6
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Зачем Вы поставили размер константой?
    Вставьте мой код и проверьте. Должно работать.
    Странно, но всё равно не работает

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Зачем Вы поставили размер константой?
    Вставьте мой код и проверьте. Должно работать.
    Причём тут вообще макрос и последний параметр? Если даже его не указывать, всё равно сработает sizeof.


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

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

    Steve Pavlina

  11. Пользователь сказал cпасибо:
    PawnoNoob (11.11.2016)
  12. #8
    Аватар для Item
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    27
    Репутация:
    4 ±
    Столкнулся с подобной проблемой при попытке записать данные с кэшка (cache_get_value_name_int), в переменную типа char. Компилятор выкидывает ошибку, указывая на третий аргумент
    PHP код:
    cache_get_value_name_int(0, !"exp"source_exp{playerid}); 

  13. Пользователь сказал cпасибо:
    PawnoNoob (11.11.2016)
  14. #9
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Потому что cache_get_value_name_int работает с ячейками и не умеет работать с конкретными байтами.
    Делай так
    PHP код:
    new exp_buff;
    cache_get_value_name_int(0, !"exp"exp_buff);
    source_exp{playerid} = exp_buff
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  15. 2 пользователя(ей) сказали cпасибо:
    Item (08.11.2016) PawnoNoob (11.11.2016)
  16. #10
    Аватар для Item
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    27
    Репутация:
    4 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Потому что cache_get_value_name_int работает с ячейками и не умеет работать с конкретными байтами.
    Делай так
    PHP код:
    new exp_buff;
    cache_get_value_name_int(0, !"exp"exp_buff);
    source_exp{playerid} = exp_buff
    Благодарю

  17. Пользователь сказал cпасибо:
    PawnoNoob (11.11.2016)
 

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

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

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

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

Ваши права

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