C ++ Как мне передать переменную через класс с индексом массива?

0

В настоящее время я изменяю видеоигру, и у меня возникают проблемы с клиентами. Их 18 клиентов в игре. Каждый клиент в основном является номером. Итак, клиент 4 = 4 клиент 16 = 16 и т.д. Так что скажем, идет ли клиент в меню и нажимает на FlyMode. Номер ClientIndex сохранит номер в массиве. Вот мой класс клиентов.

class Client{
public:
    void FlyMode(int Client) { *(int*)(GetEntity(Client) + 0xB4); };
};

Вместо того, чтобы иметь int Client как параметр, я хочу передать переменную, чтобы указать номер клиента. Я хочу, чтобы это можно было вызвать FlyMode. Client[ID].FlyMode(); Вместо Client[ID].FlyMode(ClientID); Я также хочу попытаться избежать havint Client Clients[18];

  • 0
    Используйте unordered_map с ключом ID клиента и значением объекта Client .
  • 0
    Можете ли вы объяснить больше? Я не понимаю, что вы пытаетесь сказать.
Показать ещё 5 комментариев
Теги:
class
arrays

2 ответа

0

Вы могли бы реализовать свою собственную оболочку коллекции над массивом и оператором перегрузки [] таким образом, чтобы он рассказывал вашим объектам, какой идентификатор имеет. Sth в соответствии с этим

class MyContainer
{
public:
    Client & operator[](int i) { mClients[i].setId(i); return mClients[i]; }
private:
    Client mClients[18];
}

Конечно, вы, вероятно, хотели бы реализовать его надлежащим образом (проверка диапазона?), Приведенный выше код просто для того, чтобы выразить идею.

0

У вас могут быть данные участника в Client которые захватывают идентификатор клиента и используют его в FlyMode.

class Client{
   int ID_;
public:
   Client(int ID) : ID_(ID) {}
   void FlyMode() { *(int*)(GetEntity(this->ID_) + 0xB4); };
};
  • 0
    ДА что-то просто так. Я вижу, вы понимаете мой вопрос полностью. НО мне это нужно в массиве, чтобы я мог делать такие вещи, как, скажем, если бы у нас был bool InMenu; в классе я бы не смог получить к нему доступ, если бы не имел его в массиве.
  • 0
    Мне не ясно, что вы ищете с массивом. Возможно, вы можете обновить свой пост, чтобы четко описать все ваши вопросы.
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню