Pitanje/Savet

Započeo BuhaBosko, Mart 15, 2024, 19:23:59 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Neko neki predlog kako napraviti ono u auto skoli kad neko polaze i neko hoce da ga udara kolima da samo prolazi kroz kola od auto skole, i da im ne nanosi hp?

Kreiranje zona auto škole: Definišite zone unutar kojih će biti aktivna zaštita od sudara.

Pratite ulazak i izlazak iz zone: Koristite funkcije poput OnPlayerEnterDynamicArea i OnPlayerExitDynamicArea kako biste pratili kada igrači ulaze i izlaze iz zona auto škole.

Zaštita igrača unutar zone: Kada igrač uđe u zonu auto škole, postavite ga u poseban režim ili aktivirajte zaštitu koja će sprečiti da mu se nanese šteta od sudara.

Odbijanje štete od drugih vozila: Kada drugi vozači pokušaju udariti igrača unutar auto škole, odbijte ili neutralizirajte štetu koju bi ta kolizija inače prouzrokovala.

Podešavanje poruka upozorenja: Dodajte poruke upozorenja ili obavještenja koje će igrače obavijestiti kada uđu u zonu auto škole ili kada su zaštićeni od sudara.

Primjer nekakav kako treba ici #define AUTO_SKOLA_ZONE 1

public OnPlayerEnterDynamicArea(playerid, areaid)
{
    if(areaid == AUTO_SKOLA_ZONE)
    {
        SetPlayerSpecialAction(playerid, SPECIAL_ACTION_VEHICLE_ENTRY);
        SendClientMessage(playerid, COLOR_GREEN, "Dobrodošli u auto školu. Sada ste zaštićeni od štete.");
    }
}

public OnPlayerExitDynamicArea(playerid, areaid)
{
    if(areaid == AUTO_SKOLA_ZONE)
    {
        SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
        SendClientMessage(playerid, COLOR_GREEN, "Napustili ste auto školu. Sada niste više zaštićeni.");
    }
}

public OnPlayerVehicleCollision(playerid, vehicleid)
{
    if(IsPlayerInVehicle(playerid) && GetPlayerVehicleID(playerid) == vehicleid)
    {
        new Float:playerX, Float:playerY, Float:playerZ;
        new Float:vehicleX, Float:vehicleY, Float:vehicleZ;
        GetPlayerPos(playerid, playerX, playerY, playerZ);
        GetVehiclePos(vehicleid, vehicleX, vehicleY, vehicleZ);
        new Float:distance = sqrt(pow(playerX - vehicleX, 2) + pow(playerY - vehicleY, 2) + pow(playerZ - vehicleZ, 2));

        if(distance < 3.0) // Ako je igrač u blizini vozila, ignorišite sudar
        {
            return 0; // Odbacite sudar
        }
    }
    return 1; // Nastavite sa standardnim postupkom sudara
}

https://www.open.mp/docs/scripting/functions/DisableRemoteVehicleCollisions

Gasi collision za igraca to jest moci ce da prolazi kroz ostala okupirana vozila