Рекомендованные сообщения



Не найдено.

8 posts in this topic

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

Кто не знает :

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Edited by Andy

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

@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 , создано

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • misha_makilov
      By misha_makilov


      Просмотр файла Arizona RP | Nike
      1. Система каршеринга (Полностью написана с 0 и готова).
      2. Система дрифта. (Написана с 0, не доделан магазин аксессуаров).
      3. Система заточек, а так же улучшения на них, как на аризоне рп, по типу больше хп или урона. (Система готова до конца)
      4. Динамическая система казино, казино работает как бизнес, можно добавить несколько казино и управлять ими, в них можно менять цены на все, что имеет цену в самом казино (Полностью написана с 0 и готова).
      5. Система для слетов бизнесов и домов, можно выставить через сколько он слетит (Полностью написана с 0 и готова).
      6. Система люкс каров (Полностью написана с 0 и готова, даже с таймеров, но необходим плагин на машины)
      7. Полностью был оптимизирован весь мод, а так же подправлен код + убраны все ошибки связанные с БД
      8. Исправлены все возможные баги, который находили игроки на Arizona Nike и мною.
      9. Система урона с заточенными аксессуарами. (Копия оригинальной аризоны рп)
      10. Смена текста у организаций на стенде. (Копия оригинальной аризоны рп)
      11. Начата разработка системы майнинга (Система будет не много другой, не как на оригинальной аризоне)
      12. Сайт с логами, с небольшими переделками.
       
      Обзор мода - https://www.youtube.com/watch?v=MrQ6tFQsD2o
       
      Цена данного мода 800 рублей + еженедельная подписка навсегда(включает в себя еженедельные обновления)

      Для получения сайта с логами, обратитесь сюда - https://vk.com/jenyahuntwill (Необходимо предоставить док-ва, что вы купили данный мод)
      Добавил misha_makilov Добавлено 29.05.2021 Категория Моды Автор Mayota_Nebr  
    • glvde.
      By glvde.
      Хранение данных (версия MySQL): R39-6.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 65908.
      Анти-чит: Nexius-AC v1.9.55.
       
      Автор данного мода: неизвестно.
      Автор данной доработки: glvde. (я).

      На доработку мода ушло около двух недель.
      Тестовый сервер предоставляется по запросу покупателя.
       
       
       

      Не исключено, что есть баги. Каждую неделю выходит багофикс.
      Всем спасибо за внимание.
    • glvde.
      By glvde.


      Просмотр файла Arizona RolePlay | Paige
      Хранение данных (версия MySQL): R39-6.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 65908.
      Анти-чит: Nexius-AC v1.9.55.
       
      Автор данного мода: неизвестно.
      Автор данной доработки: glvde. (я).

      На доработку мода ушло около двух недель.
      Тестовый сервер предоставляется по запросу покупателя.
       
       
       

      Не исключено, что есть баги. Каждую неделю выходит багофикс.
      Всем спасибо за внимание.
      Добавил glvde. Добавлено 16.06.2021 Категория Моды Автор glvde.  
    • Человек-редиска
      By Редиска
      ПОМОГИТЕ!!!!!!!!
      НЕ СОХРАНЯЮТСЯ НОМЕРА НА АВТО.
      ПОЛУЧАЮ НОМЕРА, А ОНИ ПРОПАДАЮТ ПОСЛЕ ПОЛУЧЕНИЯ.
      ТО ЕСТЬ, КОГДА ПРОПИСЫВАЮ КОМАНДУ /FIXCAR И ВЫБЕРАЮ ВЫГРУЗИТЬ А ПОТОМ ЗАГРУЗИТЬ.
      ТО НОМЕРОВ УЖЕ НЕТУ, ТУПО ПРОПАЛИ!
      ЗАХОДИЛ В БД ТАМ ОНИ ПОЯВЛЯЮТСЯ, А НА АВТО ПОЧЕМУ ТО НЕ ОТОБРАЖАЮТСЯ.
      ПОТОМ Я РЕШИЛ ЗАЙТИ В ТАБЛИЦУ ПОД НАЗВАНИЕМ OWNABLE_CARS ТАМ Я УВИДЕЛ СТРОКУ C_NUMBERS
      В ЭТОМ СТРОКЕ Я ПРОПИСАЛ СВОЁ ИМЯ, ПОТОМ ЗАШЁЛ В ИГРУ, ЗАГРУЖАЮ АВТО И ЕСТЬ НОМЕРА.
      А ТО ЧТО У МЕНЯ ЕСТЬ ЕЩЁ ОДНА ТАБЛИЦА ПОД НАЗВАНИЕМ OWNABLE_NUMBERS.
      ТАМ У МЕНЯ ТОЛЬКО НОМЕРА ПОЯВЛЯЮТСЯ И ВСЁ. ТОЕСТЬ ОНИ НЕ ПРИВЯЗЫВАЮТСЯ К АВТО КОРОЧЕ ВОТ И ВСЁ!!!!!!
      ПОМОГИТЕ УЖЕ ПОЖАЛУЙСТА СРОЧНО НУЖНО.