Вопросы

Добрый день, уважаемые скриптеры.

Вопрос мой таков: как использовать значение переменной в качестве ключа массива?

 

Пример кода:

enum pInfo
{
	pID,
	pName,
	pPassword,
};
new PlayerInfo[MAX_PLAYERS][pInfo];

// Тут массив заплняется значениями

new key[24] = "pPassword"; // Допустим, это ввел пользователь

print(PlayerInfo[playerid][key]); // ???

Но при таком раскладе функция ищет ключ "key" вместо ключа "pPassword".

 

Я использую такой костыль для вывода данных, которые запросит пользователь.

 

Второй день не могу найти ответ на этот простой вопрос (я новичок).

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


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

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

  • 0

@irtf у массивов нет ключей, это индексы. enum введен просто для удобства, чтобы вместо цифр указывать буквы, людям программистам так проще. 

Поэтому Ваше обращение аналогично 

PlayerInfo[0][2] // получить pPassword для игрока с playerid = 0 

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

Функция для сравнения срок - strcmp (альт. википедия)

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


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

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

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

    • От Daf
      Здравствуйте, знатоки Pawn. У меня возникла такая проблема, сейчас попробую расписать ее подробно:
      Я решил добавить в игру Real cars. Всё сделал правильно: подключил инклуд, знаю принцип добавление реал кара. Захожу в игру и вижу машину. Добавляю вторую — она тоже есть. Добавляю третью — снова всё нормально. Но когда я пытаюсь добавить четвёртую, игра крашится при входе.
      Не важно, какой ид авто я ставлю, менял модельки, переделал всё, но проблема остаётся. Думаю, вы сможете подсказать, как её решить.
      Include - m_custom_sync 1.0.0
      CreateVehicleVEx(npoType, npoId, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay = 180, addsiren = 0, tc_veh = 0) {     new vehicle, custom_id = -1;     if(!(400 <= modelid <= 20000))     {         custom_id = GetSlotVehicleModelSync(modelid);         if(custom_id == -1) return print("daf top");         modelid = customVehModels[custom_id][ModelID];     } #include <m_custom-sync> #define M_CUSTOM_CustomForPlayers 1 #define M_CUSTOM_CustomForActors 1 #define M_CUSTOM_CustomForVehicles 1 public OnGameModeInit() {     AddVehicleSyncModel(560, 12500); // беха     AddVehicleSyncModel(560, 12600); // порш     AddVehicleSyncModel(579, 12700); // хамер     AddVehicleSyncModel(560, 19929); // чирик