Другое SAMPFUNCS | API C++

iAmerican

Известный
Друг
615
257
for (int gun = 23; gun <= 31; gun++) {
*(float *)(((gun + 36) * 0x70) + 0xC8AAB8 + 0x5C) = 10.0;
}
Почему скорость стрельбы не меняется ?
 

iAmerican

Известный
Друг
615
257

Sia

Новичок
7
0
Как рисовать текст на игроках ? Есть получение их в зоне стрима , получение их координат.
 

loremi735

Новичок
11
13
C++:
void CALLBACK cmd_show_info_player( std::string param )
{
    if ( param.empty() ) return;
    int    i = std::stoi( param );

    char buf[128];

    stRemotePlayer *pPlayer = SF->getSAMP()->getPlayers()->pRemotePlayer[ i ];

    if(!pPlayer) return;

    sprintf( buf, "Nickname - %s, Ping - %d, Score - %d, isNPC - %d, AFKState - %d",
        pPlayer->szPlayerName,
        pPlayer->iPing,
        pPlayer->iScore,
        pPlayer->iIsNPC,
        pPlayer->pPlayerData->iAFKState == 2 );

    SF->getSAMP()->getChat()->AddChatMessage( -1, buf );  
};

Почему-то функция выходит после if(!pPlayer).

Насколько я понимаю, что-то не так с указателем на объект класса stRemotePlayer; но i == 0, как я и указал в команде: /showinfo 0, и игрок с таким ID есть, но всё равно !pPlayer возвращает true, и из-за этого выполнение функции прекращается. Что не так?
 
  • Нравится
Реакции: iAmerican

Woofing Giraffe

Активный
402
49
C++:
void CALLBACK cmd_show_info_player( std::string param )
{
    if ( param.empty() ) return;
    int    i = std::stoi( param );

    char buf[128];

    stRemotePlayer *pPlayer = SF->getSAMP()->getPlayers()->pRemotePlayer[ i ];

    if(!pPlayer) return;

    sprintf( buf, "Nickname - %s, Ping - %d, Score - %d, isNPC - %d, AFKState - %d",
        pPlayer->szPlayerName,
        pPlayer->iPing,
        pPlayer->iScore,
        pPlayer->iIsNPC,
        pPlayer->pPlayerData->iAFKState == 2 );

    SF->getSAMP()->getChat()->AddChatMessage( -1, buf ); 
};

Почему-то функция выходит после if(!pPlayer).

Насколько я понимаю, что-то не так с указателем на объект класса stRemotePlayer; но i == 0, как я и указал в команде: /showinfo 0, и игрок с таким ID есть, но всё равно !pPlayer возвращает true, и из-за этого выполнение функции прекращается. Что не так?
ты это не на свой ид юзаешь?
 
  • Нравится
Реакции: loremi735

da9

Новичок
12
1
Как работать с CHandlingEntry
Код:
for (int i = 0; i < SAMP_MAX_VEHICLES; i++) {
        if (!GAME->GetPools()->GetVehicle(i)) {
            continue;
        }
        CHandlingEntry *entry = GAME->GetPools()->GetVehicle(i)->GetHandlingData();
        entry->SetABS(true);
    }
моментально крашит игру при вызове любого метода этого класса.:help:
 

Dark_Knight

Me, me and me.
Друг
4,064
2,078
После получение CHandlingEntry делай проверку на валидность
Код:
if(entry){
entry->SetABS(true);
} else {
SF->Log("CHandlingEntry empty");
}
 
  • Нравится
Реакции: da9