Вызов CALLBACK функции с несколькими входящими значениями

Статус
В этой теме нельзя размещать новые ответы.

FordeD

Участник
Автор темы
98
11
Может кто подсказать саму суть оформления?

Так же решило взять за основу код с темы, В той функции идет лишь 1 входящая переменная (ID). Как можно осуществить 2 и более вхоядщих данных?

Вот код с темы :
C++:
void CALLBACK cmd_shot_player(std::string param, std::string param2)
{
    if (param.empty() || param2.empty()) return;
    int    i = std::stoi(param);
    int    w = std::stoi(param2);

    stRemotePlayer *pPlayer = SF->getSAMP()->getPlayers()->pRemotePlayer[i];
    if (!pPlayer) return;
    stBulletData sync;
    ZeroMemory(&sync, sizeof(stBulletData));

    sync.sTargetID = i;

    sync.fOrigin[0] = PEDSELF->GetPosition()->fX;
    sync.fOrigin[1] = PEDSELF->GetPosition()->fY;
    sync.fOrigin[2] = PEDSELF->GetPosition()->fZ;

    sync.fTarget[0] = pPlayer->pPlayerData->fOnFootPos[0];
    sync.fTarget[1] = pPlayer->pPlayerData->fOnFootPos[1];
    sync.fTarget[2] = pPlayer->pPlayerData->fOnFootPos[2];

    sync.fCenter[0] = 0.0;
    sync.fCenter[1] = 0.0;
    sync.fCenter[2] = 0.5;

    sync.byteWeaponID = w;
    sync.byteType = 1;

    BitStream BulletSync;
    BulletSync.Write((BYTE)PacketEnumeration::ID_BULLET_SYNC);
    BulletSync.Write((PCHAR)&sync, sizeof(stBulletData));
    SF->getRakNet()->SendPacket(&BulletSync);
}

Вызов в Mainloop :
Код:
SF->getSAMP()->registerChatCommand("cshot", cmd_shot_player);

В результате хотелось бы получить реакцию на строку /cshot [IDPlayer] [IDAmmo]
 

SR_team

like pancake
BH Team
4,707
6,347
param это строка. Все параметры в ней. Их можно получить функцией sscanf
Код:
int a, b;
sscanf(param.c_str(), "%d %d", &a, &b);

SF->Log("a = %d, b = %d", a, b);
 
  • Нравится
Реакции: FordeD
Статус
В этой теме нельзя размещать новые ответы.