Другое С/С++ Вопрос - Ответ

ishi

Известный
493
110
SendInput не подходит?
А вот не знаю ещё, я не разобрался как его использовать.
Вернее, я не разобрался как правильно отправить структуру в структуре, со структурой внутри ._.

Если я просто ставил скобочки и в них, не указывая ни тип, ни название, чередовал нужные значения, то не принимало массивы ( а у меня работа в цикле фор, без массива как бы никак.). А пытаясь как-то озаглавить эти структуры, чтобы в них работали массивы, получал ошибки которые жаловались на попытки озаглавить структуры.
В общем не разобрался. Думал, может иные функции есть ._.

upd: вообще, я пытался отправить структуру не объявляя её, скорее всего это и есть ошибка. В луа же можно было таблицы прямо в функции изображать (во всяком случае в загрузке иника, как заполнение при создании)
Если бы ты мне показал как отослать несколько структур одна в одной, не объявляя их отдельно, было бы очень круто.
Впрочем, информация о том что это невозможно тоже была бы полезна, сделал бы как полагается, с инициализацией.
 
Последнее редактирование:

SR_team

like pancake
BH Team
4,719
6,362
Пытался найти, как установить состояние клавиши, чтобы она считалась приложениями зажатой, но безуспешно.
Пытался найти какой-нибудь аналог функции getAsyncKeyState который устанавливает состояние, а не получает, но безуспешно. Функции что я пробовал "отпускают" клавишу моментально после использования.
Как создать имитацию физически зажатой клавиши -чтобы все приложения их считывающие поверили что она зажата?
https://dl.prime-hack.net/AsiPlugin/AsiPlugin_29.11.2017_3.zip
sys/SRKeys - там есть код имитации нажатия клавиши
 
  • Нравится
Реакции: ishi

Camper36

Новичок
1
0
Получил указатель на 99 строку чата , как его прочитать? VS2015 \ DLL библиотека.
 

Вложения

  • Безымянный.png
    Безымянный.png
    18.9 KB · Просмотры: 310

Blood

Известный
45
1
кто нибудь делал патчер?
Не подскажите, с чего начать чтобы его сделать()))
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077

eiuhuth

Новичок
91
43
можно ли как нибудь отследить какие адреса меняет (или нопит) samp.dll в gta_sa.exe при заходе на сервер?
 

iAmerican

Известный
Друг
615
257
Почему выдает какие то жуткие числа? Не собейт. И это идентично функции PEDSELF->GetPosition() ? Которая в SF.
Ниже функа рабочая.
Вообщем мне надо сравнивать мои координаты и координаты игроков в стриме , ну и выдавать ближайщего ко мне по дистанции. Но если сажусь в кар , это не работает(
Можно это вообще организовать с помощью структур , или надо подключать CPed ещё?
Или это чуть другое , не очень понимаю с этими матрицами.
C++:
[20:09:13] 0.000000 -0.000000 886037354234888510750277462123436141866603692813428183054675666743423718227469389108341509893426935493491309880923201857534948968510119855140827330019463333615039859207245375607370175681355057696282488514962129001551637886543853238772892797512209089698207891456.000000

[20:09:13] 0.000000 -0.000000 886037354234888510750277462123436141866603692813428183054675666743423718227469389108341509893426935493491309880923201857534948968510119855140827330019463333615039859207245375607370175681355057696282488514962129001551637886543853238772892797512209089698207891456.000000
C++:
float *xX;
                float *yY;
                float *zZ;

                try
                {
                    xX = &g_Players->pLocalPlayer->pSAMP_Actor->pGTA_Ped->base.matrix[4 * 3];
                    yY = &g_Players->pLocalPlayer->pSAMP_Actor->pGTA_Ped->base.matrix[4 * 3 + 1];
                    zZ = &g_Players->pLocalPlayer->pSAMP_Actor->pGTA_Ped->base.matrix[4 * 3 + 2];
                    addMessageToChat(-1, "%f %f %f", &xX,&yY,&zZ);
               
                }
                catch (int f)
                {
                    addMessageToChat(-1, "%i", f);
                }

C++:
short GetNearestPlayerID()
    {
        //CVector *pos, *spos; // pos - позиция игрока, spos - наша позиция
        float distance; // дистанция
        float testing = 0xFFFFFFFF;
        uint16_t nearestId = -1;

        for (uint16_t it = 0; it < SAMP_MAX_PLAYERS; it++)
        {
            if (g_Players->iIsListed[it] != 1)
                continue;
            if (g_Players->pRemotePlayer[it] == NULL)
                continue;

            if ((g_Players->pRemotePlayer[it]->pPlayerData == NULL ||
                g_Players->pRemotePlayer[it]->pPlayerData->pSAMP_Actor == NULL))
                continue;

            if (g_Players->pRemotePlayer[it]->pPlayerData->iShowNameTag != 0) {


                distance = GetDistanceXYZ(g_Players->pRemotePlayer[it]->pPlayerData->fOnFootPos[0],
                    g_Players->pRemotePlayer[it]->pPlayerData->fOnFootPos[1],
                    g_Players->pRemotePlayer[it]->pPlayerData->fOnFootPos[2],

                    g_Players->pLocalPlayer->onFootData.fPosition[0],
                    g_Players->pLocalPlayer->onFootData.fPosition[1],
                    g_Players->pLocalPlayer->onFootData.fPosition[2]); // сравниваем


                if (distance < 12.0)
                {
                    if (distance < testing)
                    {
                        testing = distance;
                        nearestId = it;
                    }
                }

            }

        }

        return nearestId;
    }
 
Последнее редактирование:

BlackKnigga

Известный
BH Team
922
443
Почему выдает какие то жуткие числа? Не собейт. И это идентично функции PEDSELF->GetPosition() ? Которая в SF.
Или это чуть другое , не очень понимаю с этими матрицами.
C++:
[20:09:13] 0.000000 -0.000000 886037354234888510750277462123436141866603692813428183054675666743423718227469389108341509893426935493491309880923201857534948968510119855140827330019463333615039859207245375607370175681355057696282488514962129001551637886543853238772892797512209089698207891456.000000

[20:09:13] 0.000000 -0.000000 886037354234888510750277462123436141866603692813428183054675666743423718227469389108341509893426935493491309880923201857534948968510119855140827330019463333615039859207245375607370175681355057696282488514962129001551637886543853238772892797512209089698207891456.000000
C++:
float *xX;
                float *yY;
                float *zZ;

                try
                {
                    xX = &g_Players->pLocalPlayer->pSAMP_Actor->pGTA_Ped->base.matrix[4 * 3];
                    yY = &g_Players->pLocalPlayer->pSAMP_Actor->pGTA_Ped->base.matrix[4 * 3 + 1];
                    zZ = &g_Players->pLocalPlayer->pSAMP_Actor->pGTA_Ped->base.matrix[4 * 3 + 2];
                    addMessageToChat(-1, "%f %f %f", &xX,&yY,&zZ);
                
                }
                catch (int f)
                {
                    addMessageToChat(-1, "%i", f);
                }
Ты не разыменовываешь, а берешь ссылку

И зачем ты вообще юзаешь указатели?
 

iAmerican

Известный
Друг
615
257
Ты не разыменовываешь, а берешь ссылку

И зачем ты вообще юзаешь указатели?
Если делать так , то вообще крашит моментально . Прочти пост повыше, я там чуть дополнил
C++:
float xX;
                float yY;
                float zZ;

                try
                {
                    xX = g_Players->pLocalPlayer->pSAMP_Actor->pGTA_Ped->base.matrix[4 * 3];
                    yY = g_Players->pLocalPlayer->pSAMP_Actor->pGTA_Ped->base.matrix[4 * 3 + 1];
                    zZ = g_Players->pLocalPlayer->pSAMP_Actor->pGTA_Ped->base.matrix[4 * 3 + 2];
                    addMessageToChat(-1, "%f %f %f", xX, yY, zZ);

                }
                catch (int f)
                {
                    addMessageToChat(-1, "%i", f);
                }
 

BlackKnigga

Известный
BH Team
922
443
Если делать так , то вообще крашит моментально . Прочти пост повыше, я там чуть дополнил
C++:
float xX;
                float yY;
                float zZ;

                try
                {
                    xX = g_Players->pLocalPlayer->pSAMP_Actor->pGTA_Ped->base.matrix[4 * 3];
                    yY = g_Players->pLocalPlayer->pSAMP_Actor->pGTA_Ped->base.matrix[4 * 3 + 1];
                    zZ = g_Players->pLocalPlayer->pSAMP_Actor->pGTA_Ped->base.matrix[4 * 3 + 2];
                    addMessageToChat(-1, "%f %f %f", xX, yY, zZ);

                }
                catch (int f)
                {
                    addMessageToChat(-1, "%i", f);
                }
Что то в этой цепочке может быть нулем.
И если садишься в кар то и координаты надо брать кара.