Bebras prieš 11 metų
Keletą privalumų pridėjau, bet pats didžiausias pliusas tai yra kalba. Duomenų struktūros, esami algoritmai ir t.t. Nežinau kaip jums, bet man objektinis programavimas atrodo patrauklesnis nei funkcinis :)
Bebras prieš 11 metų
Tu nori žaidėjo pasisukimą nustatyti taip kad jis matytų objektą? Ar taip kad kad žaidėjas žiūrėtų tokiu pat kampu kaip objektas?
Bebras prieš 11 metų
Ar aš vienas užuodžiu trolius?
Nepamirškite kam skirti spalvoti mygtukai po pranešimais. :)
Bebras prieš 11 metų
Tai jeigu tau reikia tiesiog artimiausios, užteks ir tokios elementarios funkcijos:
stock GetPlayerNearestVehicle(playerid, Float:max_distance = -1.0)
{
new Float:x, Float:y, Float:z, closest = INVALID_VEHICLE_ID;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i < MAX_VEHICLES; i++)
{
if(!IsValidVehicle(i))
continue;
new Float:distance = GetVehicleDistanceFromPoint(i, x, y, z);
if(max_distance == -1.0 || distance <= max_distance)
{
closest = i;
max_distance = distance;
}
}
return closest;
}
Bebras prieš 11 metų
Faktas tas kad problema jog GetNearestVehicle gražina INVALID_VEHICLE_ID.
fRadius = floatsqroot((fSX + fSX) + (fSY + fSY));
Man ši eilutė kelią nepasitikėjimą. Tarkim kad mašinos plotis 2, o ilgis 16m. Pagal tavo formulę gaunam:
šaknis((2+2) + (16 + 16)) = šaknis(36) = 6
Taigi tokiu atveju tikrintum ar žaidėjas yra nemažesniu kaip 6m atstumu nuo transporto priemonės, ar tai tikrai yra tai ką nori padaryti?