Невидимая стены\prop\TR_GetEntityIndex

Jafa

Участник
Сообщения
159
Реакции
3
На картах ka_ (футбол) есть невидимая текстура по краям футбольного поля для того чтоб мяч на футбольном поле не вылетал. На этой карте я заменил стандартный мяч на свой - "prop_physics_override", и мой мяч тоже не может вылететь с футбольного поля, при этом я заметил поднимается частицы "пыли" когда мяч сталкивается с "невидимой стеной"..

new object_index = TR_GetEntityIndex(); - говорит что перед мячем нет ничего (не видит "невидимой стены").

Так вот мне нужно отловить момент сталкивания мяча с "невидимой стеной", а лучше всего как-то разрешить моему мячу вылетать с футбольного поля... мб есть какой-то DispatchKeyValue разрешающий это? ну или на крайняк получить образование этой пыли.. тогда я смогу что-то накрутить и хотябы телепортировать мяч когда он сталкивается с "невидимой стеной".
 

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,336
SDKHook_StartTouch (начало касания) - дать noclip на небольшой промежуток времени.
SDKHook_ShouldCollide (должен столкнуться) - надо проверять, мб вообще можно сказать "не сталкивайся с этим объектом".
Или найти сущности этих стен и убрать\изменить тип столкновений.
 
  • Мне нравится
Реакции: Jafa

gibs

Фитиль народного волненья
Сообщения
722
Реакции
407
Мошенник
Или просто выталкивать мяч обратно при касании.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
  • Мне нравится
Реакции: Jafa

Jafa

Участник
Сообщения
159
Реакции
3
SDKHook_StartTouch (начало касания) - дать noclip на небольшой промежуток времени.
SDKHook_ShouldCollide (должен столкнуться) - надо проверять, мб вообще можно сказать "не сталкивайся с этим объектом".
Или найти сущности этих стен и убрать\изменить тип столкновений.
PHP:
{
ball = CreateEntityByName("prop_physics_override");
    DispatchKeyValue(ball, "model", "models/items/ball.mdl");
    DispatchSpawn(ball);
    SetEntProp(ball, Prop_Data, "m_takedamage", 0, 1);
    SetEntPropFloat(ball, Prop_Data, "m_flModelScale", 0.8);
    TeleportEntity(ball, pos, angles, NULL_VECTOR);
    SetEntProp(ball, Prop_Send, "m_CollisionGroup", 1);
    SDKHook(ball, SDKHook_StartTouch, Touched);
    SDKHook(ball, SDKHook_Touch, Touched);
}
public Action:Touched(ent, client)
{
    PrintToChatAll( "КАСАНИЕ: %d, %d", ent, client);
}

Touched - вообще никогда не срабатывает..( почему? Нужно бы сохранить при этом m_CollisionGroup в той или иной форме чтоб мяч мог пролетать сквозь игроков.
--- Добавлено позже ---
@AlmazON, @Reiko1231,

DispatchKeyValue(ect, "spawnflags", "0");
SetEntProp(ect, Prop_Send, "m_usSolidFlags", 8);

подскажите что это такое?
 
Последнее редактирование:
Сверху Снизу