Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для LowCoder
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.01.2020
    Сообщений
    10
    Репутация:
    0 ±

    Ник игрока по ID из базы

    Привет.

    Делаю систему домов, решил в hOwner использовать ID аккаунта владельца, собственно, возник вопрос: чтобы получать затем имя игрока для той же надписи владельца придётся создавать отдельный сток, где каждый раз будет идти подключение к БД и получение ника по ID аккаунта. Так вот, насколько это рискованное решение и как лучше создать логику, чтобы не грузить каждый раз БД (а каждый пикап, на которой игрок встанет, будет отправлять запрос на получение имени)? Думал, может, записывать временно в переменную, а затем удалять, если, например, ник поменялся во время игры или что-то вроде.

    Может, кто-то и делал схожим образом у себя?

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

    Статус
    Оффлайн
    Регистрация
    22.04.2016
    Адрес
    Украина
    Сообщений
    157
    Репутация:
    35 ±
    Добавь в энуменатор игрока pHouse и взаимодействуй с ним в статистике и прочих локальных вещах. А hOwner оставь для диалога занят/не занят. Соответственно и запросов никаких не нужно, ибо достаточно будет обратится к ячейке массиве с идом дома и написать проверку.
    Последний раз редактировалось Pa4enka; 13.01.2020 в 02:29.

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

    Статус
    Оффлайн
    Регистрация
    09.01.2020
    Сообщений
    10
    Репутация:
    0 ±
    Пытаюсь избавиться от постоянных привязок к системам, в которых владелец или игрок указан именно по нику. По ID куда удобнее ведь.

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

    Статус
    Оффлайн
    Регистрация
    22.04.2016
    Адрес
    Украина
    Сообщений
    157
    Репутация:
    35 ±
    Ну так один запрос ничего не сломает.

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

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Для того, чтобы получить ник игрока по его ID в таблице аккаунте при загрузке домов, достаточно использовать подзапрос для получения ника и всё

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    При загрузке дома обращаешься не только к таблице домов, но и к таблице аккаунтов, выгружая ник владельца.
    В массиве домов выделяешь место для хранения ника, куда, собственно, и записываешь загруженный из БД ник.
    Ну и, собственно, всё. Когда игрок подходит к дому, сначала проверяешь значение переменной с ID владельца и если дом куплен - обращаешься к переменной с именем владельца, отображая ник.
    Когда игрок покупает дом - так же записываешь его ник в переменную для хранения ника владельца.

    Запрос на загрузку данных домов и ника может выглядеть как-то так:
    1. SELECT h.*, IFNULL((SELECT a.player_name FROM account AS a WHERE a.id = h.owner_id LIMIT 1), '') AS 'owner_name' FROM house AS h

    И обрабатывать ник владельца нужно будет так:
    1. cache_get_field_content(i, "owner_name", /*массив*/);
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  7. Пользователь сказал cпасибо:
    LowCoder (14.01.2020)
 

 

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

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

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

Ваши права

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