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

Revalto

Известный
532
225
Приветствую. Столкнулся с такой проблемой:

К примеру, есть координаты множества чекпоинтов, они расположены хаотично.

Есть координаты машины и поворот персонажа в ней:

Поворот персонажа:

public float Get_Rotation() {
int base_address = mem.ReadInt(0xB6F5F0);
float angel = mem.ReadFloat(base_address + 0x558);

return angel * 6;
}

Координаты машины:

public float[] Get_Car_Coord()
{
float[] Position = new float[2];
int car_offset = mem.ReadInt(0xBA18FC);
int offset_to_matrix_car = mem.ReadInt(car_offset + 0x14);
Position[0] = mem.ReadFloat(offset_to_matrix_car + 0x30);
Position[1] = mem.ReadFloat(offset_to_matrix_car + 0x34);
return Position;
}

Как мне сделать так, чтобы она могла проехать по маршруту чекпоинтов?

Мне нужно как-то взять тот угол, на который она должна повернуться.

Типа... Есть координаты чекпоинта:

x: 1141.513916
y: -1162.998169

И координаты машины:


x: 1162.112061

y: -1199.149658

Как сделать так, чтобы она туда приехала? Как вычислить тот угол, на который она должна повернуть?

Вообще, видел, что реализуют через функцию lua - getHeadingFromVector2d.

Как она вообще устроена? Как её перевести на другой язык, к примеру?

P.S НУЖНО БЕЗ SAMPFUNCS и SAMP LUA.

Заранее спасибо)
Зажми клавишу W через key_event
 

SR_team

like pancake
BH Team
4,729
6,389
Зажми клавишу W через key_event
У тебя не это спросили
Как рассчитать угол между двумя точками, куда нужно повернуть машине?
AsiPlugin(https://git.prime-hack.net/SR_team/AsiPlugin/src/branch/master/CGame/Types.cpp#L29)
X и Y это дельты, как в опкоде CLEO

У SF плагина нет Makefile
 
Последнее редактирование модератором:
  • Нравится
Реакции: Babayka2016

ALF

Известный
Проверенный
320
537
??

float angle = atan2(x_car - x_checkpoint, y_car - y_checkpoint);
angle += M_PI;
 
  • Нравится
Реакции: 01EG

ALF

Известный
Проверенный
320
537
Код:
C:\Новая папка\SFPlugin\SFPlugin\SFPlugin.vcxproj : warning  : Невозможно найти средства сборки для Visual Studio 2012 - Windows XP (v110_xp). Установите Visual Studio 2012 - Windows XP (v110_xp), чтобы выполнить сборку с использованием средств сборки Visual Studio 2012 - Windows XP (v110_xp).
Открываю готовый проект SF, и пишет это
свойства проекта > свойства конфигурации > набор инструментов платформы > ставь что у тебя есть
 
  • Нравится
Реакции: 01EG

ШPEK

Известный
1,476
525
Как сделать чтобы sf проект запускался на версиях ниже 2012??? p.s версия 2010
 

justblast

Новичок
8
1
Как получить анимацию игрока в зоне прорисовки? Подскажите пожалуйста.
SF->getSAMP()->getPlayers()->GetPlayerAnimation(id);
SF->getSAMP()->getInfo()->pPools->pPlayer->GetPlayerAnimation(id);
SF->getSAMP()->getPlayers()->GetOnFootData(id)->sCurrentAnimationID;

Не подходят, они получают только ноли.
 

CleanLegend

Известный
Всефорумный модератор
476
930
Как получить анимацию игрока в зоне прорисовки? Подскажите пожалуйста.
SF->getSAMP()->getPlayers()->GetPlayerAnimation(id);
SF->getSAMP()->getInfo()->pPools->pPlayer->GetPlayerAnimation(id);
SF->getSAMP()->getPlayers()->GetOnFootData(id)->sCurrentAnimationID;

Не подходят, они получают только ноли.
C++:
SF->getSAMP()->getPlayers()->pRemotePlayer[id]->pPlayerData->onFootData.sAnimFlags;
        SF->getSAMP()->getPlayers()->pRemotePlayer[id]->pPlayerData->onFootData.sCurrentAnimationID;

Установи DirectX SDK и подключи к проекту, на ютубе много гайдов по этой теме
why this not working
void Anims()
{

struct actor_info *self = actor_info_get(ACTOR_SELF, ACTOR_ALIVE);

if (FastWalk)
{

if (self == NULL)
return;

ScriptCommand(&anim_speed, ScriptActorId(self), "WALK_PLAYER", set.walk_speed);
}

}

this code above is in .cpp i included void Anims(); in .h file
Are you initializing script?
 
Последнее редактирование:
  • Нравится
Реакции: _=Gigant=_

Babayka2016

Известный
51
2
Люди, спасайте. Как сделана функция getHeadingFromVector2d() в lua? Нужен именно исходный код.