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

iAmerican

Известный
Друг
615
257
Как узнать ид игрока на которого целишься?
SF->getSAMP()->getPlayers()->pLocalPlayer->sTargetPlayerID
Выдает 4рех значное число
C++:
int getTargetedPlayerSAMPId()
{
    CPed* pedSelf = GAME->GetPedContext();
    if (!pedSelf)
        return -1;

    CEntity* aimTarget = pedSelf->GetTargetedEntity();
    if (!aimTarget)
        return -1;

    if (aimTarget->GetEntityType() != eEntityType::ENTITY_TYPE_PED)
        return -1;

    CPed* aimPed = GAME->GetPools()->GetPed((DWORD*)aimTarget->GetInterface());
    if (!aimPed)
        return -1;

    DWORD dwPedRef = GAME->GetPools()->GetPedRef(aimPed);
    return SF->getSAMP()->getPlayers()->GetSAMPPlayerIDFromGTAHandle(dwPedRef);
}
 

ishi

Известный
493
110
C++:
// Build a lookat matrix. (right-handed)
D3DXMATRIX* WINAPI D3DXMatrixLookAtRH
  ( D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pEye, CONST D3DXVECTOR3 *pAt,
  CONST D3DXVECTOR3 *pUp );

// Build a lookat matrix. (left-handed)
D3DXMATRIX* WINAPI D3DXMatrixLookAtLH
  ( D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pEye, CONST D3DXVECTOR3 *pAt,
  CONST D3DXVECTOR3 *pUp );
Что значит right и left-handed?
Как это переводится на язык людей?
 

ArtyomG

Известный
21
0
Подскажите, как установить кватернион машине? Получить-то я его получаю через SF->getSAMP()->getPlayers()->pLocalPlayer->inCarData.fQuaternion[0-3], а если этими же переменными устанавливать, ничего не происходит.
 

2Shae

Известный
149
8
Как считать целую строку в диалоге стиля DIALOG_STYLE_TABLIST_HEADERS?
А то читает только до табуляции:
Код:
SF->getSAMP()->getDialog()->ListBoxGetItemText(SF->getSAMP()->getDialog()->ListBoxGetIndex())
Других способов не знаю прост :d
 

2Shae

Известный
149
8
Нужно чтобы при нажатии на пунктик из списка дало именно его строку. Отслеживает выбор listItem только в RPC_DialogResponse, но там при считывании нет "текста" (ну, исходя из того, что на форуме нашёл):
Код:
WORD dialogID, listboxItem;
BYTE buttonID, strLen;
char text[128];
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Серверный диалог или локальный? Структура для чтения не правильная.
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Код:
if (packetID == ScriptRPCEnumeration::RPC_ScrShowDialog) {
        WORD DialogID;
        BYTE style, caplen, button1_len, button2_len;
        char caption[255], button1[25], button2[25], info[0x1000];
        bs->Read(DialogID);
        bs->Read(style);
        bs->Read(caplen);
        bs->Read(caption, caplen);
        caption[caplen] = '\0';
        bs->Read(button1_len);
        bs->Read(button1, button1_len);
        button1[button1_len] = '\0';
        bs->Read(button2_len);
        bs->Read(button2, button2_len);
        button2[button2_len] = '\0';
        SF->getRakNet()->DecodeString(info, 0x1000, bs);
        std::string cap = caption, text = info;
        SF->Log("DialogID: %d - caption %s\n%s", DialogID, caption, info);
    }
 

2Shae

Известный
149
8
Код:
if (packetID == ScriptRPCEnumeration::RPC_ScrShowDialog) {
        WORD DialogID;
        BYTE style, caplen, button1_len, button2_len;
        char caption[255], button1[25], button2[25], info[0x1000];
        bs->Read(DialogID);
        bs->Read(style);
        bs->Read(caplen);
        bs->Read(caption, caplen);
        caption[caplen] = '\0';
        bs->Read(button1_len);
        bs->Read(button1, button1_len);
        button1[button1_len] = '\0';
        bs->Read(button2_len);
        bs->Read(button2, button2_len);
        button2[button2_len] = '\0';
        SF->getRakNet()->DecodeString(info, 0x1000, bs);
        std::string cap = caption, text = info;
        SF->Log("DialogID: %d - caption %s\n%s", DialogID, caption, info);
    }
Не, ну это получение всей инфы из диалога (в моём случае всех пунктов DIALOG_STYLE_TABLIST_HEADERS), а как получить всю строку именно выбраного пункта?
А то моим гавно-методом выдаёт только первую колонну из нескольких:
Код:
SF->getSAMP()->getDialog()->ListBoxGetItemText(SF->getSAMP()->getDialog()->ListBoxGetIndex())
 
Последнее редактирование:

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Я не уверен, что это функция будет работать с такими хейдерами. А так лучше написать свою функцию. Я бы написал, но времени нет.
 

Perojek)0

Известный
205
3
Как загрузить, например, скрин в буфер, чтобы потом отрендрить?
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Ты хочешь сразу скриншот в игре рендерить без сохранения в файл?
 

Perojek)0

Известный
205
3
Ты хочешь сразу скриншот в игре рендерить без сохранения в файл?
С сохранением. Скрин просто пример.
upd: Точнее текстура должна рендриться без дополнительных файлов на компьютере. То есть из буфера. На вики написано, что это возможно, ток не написано как. Надеюсь, понятно объяснил)
 
Последнее редактирование: