Вопросы

Приветик, Кто нибудь вкурсе можно ли как-то реализовать систему знакомств аналогичную GTA 5 RP проектам,

Кто не знает :

Изначально у игрока все люди 'Незнакомцы',
Если пожать друг другу руку, то вместо 'Незнакомец' над головой отобразится ник игрока.

Я отключил ники игроков на сервере и добавил кастомные через 3D Text прикрепленный к игроку, на этом всё и закончилось, можно ли как-то сделать сохранение/загрузку и отображение ников у знакомых людей?

Поделиться сообщением


Ссылка на сообщение

7 ответов на этот вопрос

  • 0

@Andy в БД хранить список знакомых людей, при авторизации проверять факт знакомства каждого игрока с каждым и с помощью https://sampwiki.blast.hk/wiki/ShowPlayerNameTagForPlayer функции показывать / скрывать дефолтный ник, и отображать Textdraw "Незнакомец". 

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST Как можно сделать сохранение и загрузку в БД в данном случае? ников как никак много будет да и что-то в голову не приходит как сделать проверку на знакомство(понятное дело через цикл, но че то не могу додумать)

Отредактировано пользователем Andy

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST На данный момент разобрался с отображением ников у знакомых между собой игроков, осталось только продумать сохранение и загрузку ников из БД чтобы сделать проверку на знакомство, как можно сохранять ники в БД и соответственно загружать их?

Поделиться сообщением


Ссылка на сообщение
  • 0

@Andy завести новую таблицу с такой структурой: 

id | FirstPlayerID | SecondPlayerID

   |                       |                             

где FirstPlayerID это один игрок, а SecondPlayerID другой, оба поля настраиваются как Foreign key на таблицу с игроками. 

Хранить информацию в какой-либо переменной не нужно, нужно просто при загрузке игрока отобразить для него лишь ники тех людей, с которыми он знаком. 

Спойлер

// Где-то в загрузке основных данных игрока после авторизации, в месте, где уже доступен ID аккаунта игрока из БД
new queryString[]; 
mysql_format(handlePtr, queryString, "SELECT `SecondPlayerID` FROM `FamiliarPlayers` WHERE `FirstPlayerID` = '%d'", PlayerInfo[playerid][AccountID]); 
mysql_query(handlePtr, queryString, "LoadNameTagsForPlayer", "i", playerid);
//

forward ...(...);
public LoadNameTagsForPlayer(playerid) 
{
  new rows; 
  cache_get_row_count(rows);
  
  if (!rows) 
    return; 
  
  for (new i = 0; i < rows; i++) 
  {
    new secondPlayerId;
    cache_get_value_name_int(i, "SecondPlayerID", secondPlayerId);
    ShowPlayerNameTagForPlayer(playerid, secondPlayerId, true); // Показать никнейм первому игроку второго игрока
    ShowPlayerNameTagForPlayer(secondPlayerId, playerid, true); // Показать никнейм второму игроку первого игрока
  }
  
  return; 
}

 

А при знакомстве соответственно записывать ИДы в базу. 

Заметка от DEST , создано

Вот, кстати, похожий вопрос и похожий ответ (даже лучше, чем у меня, поэтому советую посмотреть там) на другом портале - клик

Поделиться сообщением


Ссылка на сообщение
  • 0

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

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST Можете написать структуру самой таблицы в MySQL ? Не работал ни разу с Foreign Key

Поделиться сообщением


Ссылка на сообщение
  • 0

@Andy так загуглите что это такое, внешний ключ называется на русском. Также почитайте про отношения между таблицами ("один" к "одному", "один" ко "многим", "многие" ко "многим") 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • KAIF
      От KAIF


      Скачать файл GTA RolePlay-МОД,СБОРКА
      !!!!!ВСЕГО ОДНА КОПИЯ!!!! 
      Единственный мод GTA RP.
       
      Фракции:
      Правительство
      ГИБДД
      Полиция Южного
      ФСБ
      ЦГБ-А
      Автошкола
      Китайская мафия
      Русская Мафия
      Итальянская Мафия
      Американская Мафия
      Чеченская Мафия
      ВВС
      МЧС
      ОПГ Тяп-Ляп
      ОПГ Хади-Такташ
      СМИ Южного
      ФСИН
      В комплекте идёт СБОРКА И МОД.
      Единственный мод GTA RP.
      Добавил KAIF Добавлено 01.01.2024 Категория Моды Автор Aleksandr  
    • KAIF
      От KAIF
      !!!!!ВСЕГО ОДНА КОПИЯ!!!! 
      Единственный мод GTA RP.
       
      Фракции:
      Правительство
      ГИБДД
      Полиция Южного
      ФСБ
      ЦГБ-А
      Автошкола
      Китайская мафия
      Русская Мафия
      Итальянская Мафия
      Американская Мафия
      Чеченская Мафия
      ВВС
      МЧС
      ОПГ Тяп-Ляп
      ОПГ Хади-Такташ
      СМИ Южного
      ФСИН
      В комплекте идёт СБОРКА И МОД.
      Единственный мод GTA RP.
    • Узбек
      От Узбек
      Всем добрый вечер ребят! 
      Я начинающий, сегодня я вам сливаю команду 2(шт) на технические работы
      Ловите