Я сделал такую функцию, но есть одно ноПолучай дистанцию между локальным игроком и машиной
bool IsPlayerInRangeOfVehicle(int player, int vehicle, float radius)
{
float x = SF->getSAMP()->getPlayers()->GetOnFootData(player)->fPosition[0] - SF->getSAMP()->getInfo()->pPools->pVehicle->pGTA_Vehicle[vehicle]->base.matrix[4 * 3];
float y = SF->getSAMP()->getPlayers()->GetOnFootData(player)->fPosition[1] - SF->getSAMP()->getInfo()->pPools->pVehicle->pGTA_Vehicle[vehicle]->base.matrix[4 * 3 + 1];
float z = SF->getSAMP()->getPlayers()->GetOnFootData(player)->fPosition[2] - SF->getSAMP()->getInfo()->pPools->pVehicle->pGTA_Vehicle[vehicle]->base.coords[4 * 3 + 2];
return ((x < radius) && (x > -radius)) && ((y < radius) && (y > -radius)) && ((z < radius) && (z > -radius));
}
Проверяй на валидность машину и игрока.Я сделал такую функцию, но есть одно но
Если указать ID машины, который далеко - зависает.C++:bool IsPlayerInRangeOfVehicle(int player, int vehicle, float radius) { float x = SF->getSAMP()->getPlayers()->GetOnFootData(player)->fPosition[0] - SF->getSAMP()->getInfo()->pPools->pVehicle->pGTA_Vehicle[vehicle]->base.matrix[4 * 3]; float y = SF->getSAMP()->getPlayers()->GetOnFootData(player)->fPosition[1] - SF->getSAMP()->getInfo()->pPools->pVehicle->pGTA_Vehicle[vehicle]->base.matrix[4 * 3 + 1]; float z = SF->getSAMP()->getPlayers()->GetOnFootData(player)->fPosition[2] - SF->getSAMP()->getInfo()->pPools->pVehicle->pGTA_Vehicle[vehicle]->base.coords[4 * 3 + 2]; return ((x < radius) && (x > -radius)) && ((y < radius) && (y > -radius)) && ((z < radius) && (z > -radius)); }
Каким образом? Подскажи плесПроверяй на валидность машину и игрока.
if (SF->getSAMP()->getInfo()->pPools->pVehicle->pGTA_Vehicle[vehicle]== null)Каким образом? Подскажи плес
Бывает, что то сложно понять и приходится перечитывать несколько раз, это нормально.Слушайте, я щас изучаю плюсы по книге прата, и закончил читать 3 главу типы данных и понял там не все. Это норма?
Почему курсор невидимый? (Это в лупе, знаю, немного говнокод, посоветуйте получше)
C++:if (SF->getGame()->isKeyPressed(VK_NUMPAD0)){ Mouse = !Mouse; } if (!Mouse) { SF->getSAMP()->getMisc()->ToggleCursor(false); } else if (Mouse) { SF->getSAMP()->getMisc()->ToggleCursor(true); }
if (SF->getGame()->isKeyPressed(VK_NUMPAD0))
{
Mouse ^= true;
SF->getSAMP()->getMisc()->ToggleCursor(Mouse);
}
Да. Собейт в помощь. Там есть СХДля того что бы сделать простенький СХ нужно всего лишь:
1 Узнать адрес скорости
2 Прочитать значение скорости
3 Добавить к нему некоторое значение (Увеличить скорость)
4 Записать полученное значение из пункта 3
Всё?
Каким образом? Подскажи плес
if (SF->getSAMP()->getVehicles()->iIsListed[carid] != 1) continue;
if (SF->getSAMP()->getVehicles()->iIsListed2[carid] != 1) continue;
if (SF->getSAMP()->getVehicles()->pSAMP_Vehicle[carid] == NULL) continue;
if (SF->getSAMP()->getVehicles()->pSAMP_Vehicle[carid]->pGTA_Vehicle == NULL) continue;
Что в твоем понятии ссылка?чем отличается указатель от ссылки ?
Мышка всё равно невидимая и независимо от переменной Mouse интерфейс на неё реагирует (ImGUI)
Именю немного вопрос - как сделать так, чтоб мышка открывалась вместе с интерфейсом ImGUI и при этом игровое управление блокировалось? (Чтоб не открывался чат, список игроков, нельзя было бегать и т.п.)
Указатель может быть нулевым. Ссылка никогда не может быть нулевой.чем отличается указатель от ссылки ?
Бля ты видел сурс собейта? Это грязный ад программиста блятьДа. Собейт в помощь. Там есть СХ