Как запретить вход в определённую зону на карте?

Boeing 767

заскамили мамонта ни за что, ни про что
Сообщения
524
Реакции
913
Создаю зону через CreateEntityByName("trigger_multiple"); , и мне нужно чтобы в эту зону никак нельзя было зайти, даже с включенным полётом.
Хукаю касание этой зоны через sdkhook, и при касании этой зоны выполняю следущее:
PHP:
public void BlockZone(int client){
    float vel[3];

    vel[0] = GetEntPropFloat(client, Prop_Send, "m_vecVelocity[0]");
    vel[0] *= -2.0;
    vel[1] = GetEntPropFloat(client, Prop_Send, "m_vecVelocity[1]");
    vel[1] *= -2.0;
    vel[2] = GetEntPropFloat(client, Prop_Send, "m_vecVelocity[2]");

    if (vel[1] > 0.0 && vel[1] < 200.0)
    vel[1] = 200.0;
    else if (vel[1] < 0.0 && vel[1] > -200.0)
    vel[1] = -200.0;
    if (vel[2] > 0.0)
    vel[2] *= -0.1;
 
    TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, vel);
 }
}
Вроде бы все хорошо, игрока "отталкивает", но если же разогнаться(разбхопиться например) , то можно все же пролететь через эту зону. Так может есть ещё какие-нибудь способы заблокировать вход в эту зону? Убивать или телепортировать игрока на спавн не вариант.
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
Создаю зону через CreateEntityByName("trigger_multiple"); , и мне нужно чтобы в эту зону никак нельзя было зайти, даже с включенным полётом.
Хукаю касание этой зоны через sdkhook, и при касании этой зоны выполняю следущее:
PHP:
public void BlockZone(int client){
    float vel[3];

    vel[0] = GetEntPropFloat(client, Prop_Send, "m_vecVelocity[0]");
    vel[0] *= -2.0;
    vel[1] = GetEntPropFloat(client, Prop_Send, "m_vecVelocity[1]");
    vel[1] *= -2.0;
    vel[2] = GetEntPropFloat(client, Prop_Send, "m_vecVelocity[2]");

    if (vel[1] > 0.0 && vel[1] < 200.0)
    vel[1] = 200.0;
    else if (vel[1] < 0.0 && vel[1] > -200.0)
    vel[1] = -200.0;
    if (vel[2] > 0.0)
    vel[2] *= -0.1;
 
    TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, vel);
 }
}
Вроде бы все хорошо, игрока "отталкивает", но если же разогнаться(разбхопиться например) , то можно все же пролететь через эту зону. Так может есть ещё какие-нибудь способы заблокировать вход в эту зону? Убивать или телепортировать игрока на спавн не вариант.
Попробуй через это: [Any] Dev Zones (with natives for developers) - AlliedModders
Там модуль NoEntry есть.
И хукается по другому.
 

Akkotto

Участник
Сообщения
88
Реакции
20
А как насчет наставить пропов?
 
Сверху Снизу