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

AWRage

Активный
642
141
Последнее редактирование:

MISTER_GONWIK

Всефорумный гонщик
Всефорумный модератор
1,260
1,737
Тогда что нужно указывать функции GetPed? Разве не handle?

Или как вообще получить CPed из самповского ID?
GAME->GetPools()->GetPedFromRef( SF->getSAMP()->getPlayers()->GetActorHandleFromSAMPPlayerID(i) ) и так пробовал(
тебе туда нужно структуру игрока передать:
C++:
// тут я просто показал как получить структуру,
// но однако перед тем как всё это вызывать,
// нужно проверить, что игрок существует и всё такое,
// я не стал этого делать, сам сделаешь, иначе крашнет
actor_info* actorInfo = SF->getSAMP()->getPlayers()->pRemotePlayer[iPlayerID]->pPlayerData->pSAMP_Actor->pGTA_Ped;
if (actorInfo != nullptr)
{
      CPed* ped = GAME->GetPools()->GetPed((DWORD*)actorInfo);
      ..
}
 
  • Нравится
Реакции: AWRage

AWRage

Активный
642
141
Что ты хочешь? По идеи, pRemotePlayer тебе хватит.
Мне нужно получить координаты костей игрока. В классе CPed есть это.

тебе туда нужно структуру игрока передать:
C++:
// тут я просто показал как получить структуру,
// но однако перед тем как всё это вызывать,
// нужно проверить, что игрок существует и всё такое,
// я не стал этого делать, сам сделаешь, иначе крашнет
actor_info* actorInfo = SF->getSAMP()->getPlayers()->pRemotePlayer[iPlayerID]->pPlayerData->pSAMP_Actor->pGTA_Ped;
if (actorInfo != nullptr)
{
      CPed* ped = GAME->GetPools()->GetPed((DWORD*)actorInfo);
      ..
}
Спасибо большое! Работает c:
 

AWRage

Активный
642
141
1. Как проверить, виден ли игрок моему игроку?
2. Как изменить кол-во элементов в массиве?
C++:
int i[32];

// функция, макрос, хз че еще

i[64];
 
Последнее редактирование:

SR_team

like pancake
BH Team
4,719
6,362
1. Как проверить, виден ли игрок моему игроку?
2. Как изменить кол-во элементов в массиве?
C++:
int i[32];

// функция, макрос, хз че еще

i[64];
template<typename T>
T *ReSizeMas(const T *mas, size_t sz, size_t oldsz)
{
T *newMas = new T[sz];
memcpy(newMas, mas, oldsz);
delete mas;
return newMas;
}
 
  • Нравится
Реакции: AWRage

Dark_Knight

Me, me and me.
Друг
4,062
2,077
DrawBox. цвет в идет в ARGB, где А - это альфа и на отвечает за прозрачность. 00 = 0, FF = 255/
 

Gabriel__

Известный
Проверенный
411
181
1. Как получить игроков в зоне стрима ?
2. Как проверить что игрок или точка на экране ?
 

AWRage

Активный
642
141
Крашит игра, когда вызываю функцию. Если просто вызвать функцию без присвоения *Menu возвращаемого функцией значения, то все норм.
C++:
// Реализация функции.
struct stMenu *CMenu::CreateMenu(int Status, const char *Name, D3DCOLOR ARGB, int Element, int MaxElement)
{
    struct stMenu *Menu = new struct stMenu;

    Menu->Status = Status;
    Menu->Name = _strdup(Name);
    Menu->ARGB = ARGB;
    Menu->Element = Element;
    Menu->MaxElement = MaxElement;
    Menu->Submenu = NULL;
    return Menu;
}

// Определение функции в классе CMenu.
static struct stMenu *CreateMenu(int Status, const char *Name, D3DCOLOR ARGB, int Element, int MaxElement);

//Вызов функции = краш.
struct stMenu *Menu;
Menu = CreateMenu(1, "Main", -1, 0, 0);

//Вызов функции = vse ok;
CreateMenu(1, "Main", -1, 0, 0);
 

Gabriel__

Известный
Проверенный
411
181
Ну помогите!
Как проверить что 3D координата на экране ? А то когда конвертирую координаты (SF->getGame()->convert3DCoordsToScreen(x, y, z, &x, &y);) то объекты рисуются где попало возле краев экрана.