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

Dark_Knight

Me, me and me.
Друг
4,078
2,096
Пойми одну простую вещь, что не все с ходу могут писать чистый код и к тому же безошибочно, это с опытом приходит, спасибо за помощь😙
Советую выучить основы. С ними реально потом проще будет. Советую по своему опыту. Те же вектора(они же контейнеры) очень грубо говоря не сильно от массивов отличаются.
 
  • Нравится
Реакции: PanSeek

Yayachana)

Известный
32
10
Советую выучить основы. С ними реально потом проще будет. Советую по своему опыту. Те же вектора(они же контейнеры) очень грубо говоря не сильно от массивов отличаются.
Вчера по твоему совету ознакомился с vectorами**, про замену элемента не знал, честно. В итоге получились "варнинги" на смену организации

Подскажите пожалуйста, могу ли я как-то рисовать линии по нужным мне координатам на текстурах? По типу такого

1647423127446.png
 
Последнее редактирование:

Ya Zaregalsya

Известный
387
135
Вчера по твоему совету ознакомился с vectorами**, про замену элемента не знал, честно. В итоге получились "варнинги" на смену организации

Подскажите пожалуйста, могу ли я как-то рисовать линии по нужным мне координатам на текстурах? По типу такого

Посмотреть вложение 140075
Можешь рисовать линии по экрану: https://www.blast.hk/threads/23412/


Т.е. берёшь координаты из мира, получаешь их позицию на экране и далее как в уроке.
 
  • Нравится
Реакции: Yayachana)

Dark_Knight

Me, me and me.
Друг
4,078
2,096
Да, разобрался уже. Кому интересно, у меня был бесконечный цикл отрисовки. Добавил условие проверки вкл\выкл менюшки и всё починилось
Бесконечные циклы нельзя юзать вообще-то в хуках ибо твой код в главном цикле игры работает грубо говоря.
 

Yayachana)

Известный
32
10
Бесконечные циклы нельзя юзать вообще-то в хуках ибо твой код в главном цикле игры работает грубо говоря.
Да не, сам хук у меня не в беск. цикле юзается, я хреново сформулировал короче ответ выше, думаю, ты понял суть
 

Ya Zaregalsya

Известный
387
135
Если отдать в getActorPos локального актёра, то всё работает нормально, если другого, то игра крашится. В чём проблема?
C++:
CVector DevKit::getActorPos(int actorId)
{
    CVector actorPos;
    actorPos.fX = SF->getGame()->actorInfoGet(actorId, ACTOR_ALIVE)->base.matrix[12];
    actorPos.fY = SF->getGame()->actorInfoGet(actorId, ACTOR_ALIVE)->base.matrix[12 + 1];
    actorPos.fZ = SF->getGame()->actorInfoGet(actorId, ACTOR_ALIVE)->base.matrix[12 + 2];
    return actorPos;
}

void PositioningInterface::Interface::PresentHandler()
{      
     if (this->bShow)
     {
          if (GetAsyncKeyState(this->keys.magnetizeToPlayer))
          {
               stRemotePlayer* pNearestVictim;
               CVector nearestVictimPos;
               float nearestVictimDist;
               int victimsIter = 0;
               for (int i = 0; i < SAMP_MAX_PLAYERS; i++)
               {
                    if (SF->getSAMP()->getPlayers()->IsPlayerDefined(i, true) && SF->getSAMP()->getPlayers()->sLocalPlayerID != i)
                    {
                         stRemotePlayer* thisVictim = SF->getSAMP()->getPlayers()->pRemotePlayer[i];
                         CVector thisVictimPos = DevKit::getActorPos(SF->getSAMP()->getPlayers()->GetActorHandleFromSAMPPlayerID(i));

Как узнать, что локальный игрок целится/находится в прицеле?
Попробуй if (GAME->GetCamera()->GetCam(GAME->GetCamera()->GetActiveCam())->GetMode() == eCamMode::MODE_AIMING). Полный список каммодов см. в CCamera.h.
 
Последнее редактирование:

Yayachana)

Известный
32
10
Если отдать в getActorPos локального актёра, то всё работает нормально, если другого, то игра крашится. В чём проблема?
C++:
CVector DevKit::getActorPos(int actorId)
{
    CVector actorPos;
    actorPos.fX = SF->getGame()->actorInfoGet(actorId, ACTOR_ALIVE)->base.matrix[12];
    actorPos.fY = SF->getGame()->actorInfoGet(actorId, ACTOR_ALIVE)->base.matrix[12 + 1];
    actorPos.fZ = SF->getGame()->actorInfoGet(actorId, ACTOR_ALIVE)->base.matrix[12 + 2];
    return actorPos;
}

void PositioningInterface::Interface::PresentHandler()
{     
     if (this->bShow)
     {
          if (GetAsyncKeyState(this->keys.magnetizeToPlayer))
          {
               stRemotePlayer* pNearestVictim;
               CVector nearestVictimPos;
               float nearestVictimDist;
               int victimsIter = 0;
               for (int i = 0; i < SAMP_MAX_PLAYERS; i++)
               {
                    if (SF->getSAMP()->getPlayers()->IsPlayerDefined(i, true) && SF->getSAMP()->getPlayers()->sLocalPlayerID != i)
                    {
                         stRemotePlayer* thisVictim = SF->getSAMP()->getPlayers()->pRemotePlayer[i];
                         CVector thisVictimPos = DevKit::getActorPos(SF->getSAMP()->getPlayers()->GetActorHandleFromSAMPPlayerID(i));


Попробуй if (GAME->GetCamera()->GetCam(GAME->GetCamera()->GetActiveCam())->GetMode() == eCamMode::MODE_AIMING). Полный список каммодов см. в CCamera.h.
SF->getSAMP()->getPlayers()->pRemotePlayer[wPlayerID]->pPlayerData->fOnFootPos