"Trebam nešto" - tema

Započeo Vasic, Jun 15, 2020, 09:33:02 PRE PODNE

prethodna tema - sledeća tema

MarkeZ i 5 gostiju pregledaju ovu temu.

Citat: letecitanjur poslato Oktobar 06, 2024, 11:30:39 PRE PODNEhvala, tako nesto vec imam, ali mene zanima jel se moze izbjec da se provjeravaju sva vozila nego da provjerava samo ona u odredenoj zoni, jer mislim da bi bilo preveliko opterecenje za server kad bi ucestalo provjeravao sva vozila na serveru.
jer funkciju bi koristio za vise stvari, kad igrac spawna vozilo da mu spawna na parking najblizi,  kad provjeravam jel auto u pns, ili provjera jel neki auto blokira neki ulaz u interijer itd


Pokušaj onda nešto ovako, ovaj kod je samo primjer, ne znam hoce li raditi jer sam pisao iz glave.

new Float:zabranjenaZonaX = 100.0, Float:zabranjenaZonaY = 200.0, Float:zabranjenaZonaZ = 10.0; // Koordinate zabranjene zone
new Float:radijusZone = 50.0; // Radijus zabranjene zone

public OnVehicleUpdate(vehicleid)
{
    new Float:x, Float:y, Float:z;
   
    // Dobijanje trenutne pozicije vozila
    GetVehiclePos(vehicleid, x, y, z);

    // Provjera da li je vozilo unutar zabranjene zone
    if(IsPointInRangeOfPoint(x, y, z, zabranjenaZonaX, zabranjenaZonaY, zabranjenaZonaZ, radijusZone))
    {
        // Respawn vozila
        SetVehicleToRespawn(vehicleid);
        return 1;
    }
   
    return 1;
}

stock IsPointInRangeOfPoint(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2, Float:range)
{
    return (floatsqroot(floatabs(x2 - x1) * floatabs(x2 - x1) + floatabs(y2 - y1) * floatabs(y2 - y1) + floatabs(z2 - z1) * floatabs(z2 - z1)) <= range);
}

Citat: K ROSE poslato Oktobar 08, 2024, 05:42:26 PRE PODNEPokušaj onda nešto ovako, ovaj kod je samo primjer, ne znam hoce li raditi jer sam pisao iz glave.

new Float:zabranjenaZonaX = 100.0, Float:zabranjenaZonaY = 200.0, Float:zabranjenaZonaZ = 10.0; // Koordinate zabranjene zone
new Float:radijusZone = 50.0; // Radijus zabranjene zone

public OnVehicleUpdate(vehicleid)
{
    new Float:x, Float:y, Float:z;
   
    // Dobijanje trenutne pozicije vozila
    GetVehiclePos(vehicleid, x, y, z);

    // Provjera da li je vozilo unutar zabranjene zone
    if(IsPointInRangeOfPoint(x, y, z, zabranjenaZonaX, zabranjenaZonaY, zabranjenaZonaZ, radijusZone))
    {
        // Respawn vozila
        SetVehicleToRespawn(vehicleid);
        return 1;
    }
   
    return 1;
}

stock IsPointInRangeOfPoint(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2, Float:range)
{
    return (floatsqroot(floatabs(x2 - x1) * floatabs(x2 - x1) + floatabs(y2 - y1) * floatabs(y2 - y1) + floatabs(z2 - z1) * floatabs(z2 - z1)) <= range);
}


ohh dobra ideja,probati cu kasnije. hvala