Я бы место того чтобы отводить каждому игроку двухмерных массив с большим кол-во ячеек, вынес все это в отдельную таблицу в БД
Вид для печати
Соглашусь с оратором выше. Эти данные совсем не обязательно хранить на сервере постоянно. Создай отдельную таблицу со структурой
ГдеPHP код:
row_id | owner_id | subscriber_id
row_id - Столбец с идентификатором строки (его мы вообще не трогаем. Устанавливаем параметр AUTO_INCREMENT и забываем о нём. Он нужен для правильного функционирования таблицы)
owner_id - ID аккаунта владельца телефонной книги
subscriber_id - ID аккаунта игрока, которого добавил владелец в свою телефонную книгу
Это и позволит удобно работать с данными, покойно удаляя/извлекая данные о любой записи в эту самую книгу, и позволит хранить неограниченное число номеров в этой самой книге (всё будет ограничиваться лишь размерами массива, куда будут выгружаться данные и ограничениями функции, с помощью которой данные отображаются игроку: если диалог - 4096 символов)
Собственно, вывод значений можно произвести таким запросом:
PHP код:
SELECT a.player_name AS name, a.phone_number AS number FROM accounts AS a, phone_book AS p WHERE p.owner_id = ID_АККАУНТА AND a.id = p.subscriber_id
/*
В результате запроса имена игроков, добавленных в телефонную книгу можно получить под меткой "name"
А их номера - "number"
То бишь:
new subscriber_name[MAX_PLAYER_NAME],
subscriber_number;
cache_get_value_name(0, "name", subscriber_name, MAX_PLAYER_NAME);// Ник
cache_get_value_name_int(0, "number", subscriber_number);// Номер телефона
Соответственно, данные из таблицы можно грузить прямо при вводе команды показа телефонной книги
и сразу показывать в диалоге, не сохраняя в глобальных массивах или где-либо ещё.
*/
Ну а редактирование, добавление и удаление, думаю, и сам знаешь как делать.
Почему так не кто не делает? зачем эти понты с enum:dirol:PHP код:
начало какое с инклудами...
//
//My Visual Enum 'P'layer
new
pLolka[MAX_PLAYERS],
pKek[MAX_PLAYERS][100],
pCheburek[MAX_PLAYERS];
//My Visual Enum 'M'ap
new
mName[MAX_MAPS],
mInfo[MAX_MAPS][145],
mStatus[MAX_MAPS][MAX_PLAYERS];
//
вот тут тоже код какой то...
Потому что это напоминает венгерскую нотацию.