Между игроком и предметом что-то есть..

Jafa

Участник
Сообщения
159
Реакции
3
Native "TR_DidHit" reported: Invalid Handle 1 (error 1) - по прежнему спамит это в логи.
PHP:
 float client_pos[3];
 float prop_pos[3];
 
 GetClientAbsOrigin(cl_index, client_pos);
 GetEntPropVector(prop_index, Prop_Send, "m_vecOrigin", prop_pos);
 
 Handle trace = TR_TraceRayFilterEx(prop_pos, client_pos, MASK_SOLID, RayType_Infinite, wS_TraceFilter, prop_index);
 if(TR_DidHit(trace))
 {
 PrintToChatAll("Между игроком и пропом появилась стена");
 }
Спамит "Между игроком и пропом появилась стена" хотя никакого препятствия нет
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
@Jafa, а
PHP:
public bool wS_TraceFilter(int ent,int mask, any prop)
{
return ent != prop;
}

сделал?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Между игроком и пропом появилась стена
30c487f21dca.jpg

Грубо говоря, но... :biggrin:
 

Jafa

Участник
Сообщения
159
Реакции
3
30c487f21dca.jpg
:biggrin:
)))) не там гладкая поверхность... говорю же даже в воздухе зависали с предметом)
--- Добавлено позже ---
Когда я смотрю на предмет мне пишит "Заложник: Здоровье: 100%" - можно как-то это изменить? Написать например "Предмет: Бочка. Здоровье: 100%"?
 

AlmazON

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

Jafa

Участник
Сообщения
159
Реакции
3
Да вы "землю" (пол) меряете, по сути. Лучше от позиции глаз.Это уже недостаток кода.

так я это нарошно делал чтоб убедиться что вообще ниче не мешает.
--- Добавлено позже ---
Когда я смотрю на предмет мне пишит "Заложник: Здоровье: 100%" - можно как-то это изменить? Написать например "Предмет: Бочка. Здоровье: 100%"?
--- Добавлено позже ---
Да вы "землю" (пол) меряете, по сути. Лучше от позиции глаз.Это уже недостаток кода.

как я глаза померяю у предмета?)) hostage_entity ? да и как вариант сделать просто prop_pos[2] += 5.0;
 

Jafa

Участник
Сообщения
159
Реакции
3
PHP:
GetEntPropVector(prop_info, Prop_Data, "m_vecMaxs", max);
3b4b8e566a43.jpg
PHP:
 new Float:max[3];
        new Float:min[3];
        GetEntPropVector(prop_index, Prop_Data, "m_vecMaxs", max);
        GetClientEyePosition(cl_index, min);
        new Handle:trace = TR_TraceRayFilterEx(max, min, MASK_SOLID, RayType_Infinite, wS_TraceFilter, prop_index);
        new index = TR_GetEntityIndex();
        PrintToChat(cl_index, "%d", index);

PHP:
 new Float:max[3];
        new Float:min[3];
        GetEntPropVector(prop_index, Prop_Data, "m_vecMaxs", max);
        GetClientEyePosition(cl_index, min);
        new Handle:trace = TR_TraceRayFilterEx(max, min, MASK_SOLID, RayType_Infinite, wS_TraceFilter, prop_index);
       if(TR_DidHit(trace))
        {
                PrintToChat(cl_index, "Между игроком и пропом появилась стена");
        }

Вот по вашей рекомендации, все верно? если Да, то:
1 вариант: Спамить "0" не зависимо есть между нами припятствие или нет.
2 вариант: Спамить "Между игроком и пропом появилась стена" не зависимо есть между нами припятствие или нет.

Как быть?(
--- Добавлено позже ---
GetEntPropVector(prop_index, Prop_Data, "m_vecMaxs", max); - тут что-то не то. Я првоерил чему равно max и оно равно 0.0 0.0 0.0 т.е ничему функция не сработала.. почему?
--- Добавлено позже ---
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Потому что они не заданы. Вот, например, для бочки (см. картинку):
PHP:
GetEntPropVector(g_iPropIndex, Prop_Send, "m_vecOrigin", f_Angles);
float max[3];
GetEntPropVector(g_iPropIndex, Prop_Data, "m_vecMaxs", max);
f_Angles[2] += max[2];
//f_Angles - координаты вершины.
А не получается всё, по большей части, потому, что вторым параметром:
TR_TraceRayFilterEx(max, min
Должны быть углы.
 

Вложения

  • Трейсер к вершине бочки.jpg
    Трейсер к вершине бочки.jpg
    61.3 КБ · Просмотры: 46

Jafa

Участник
Сообщения
159
Реакции
3
Потому что они не заданы. Вот, например, для бочки (см. картинку):
PHP:
GetEntPropVector(g_iPropIndex, Prop_Send, "m_vecOrigin", f_Angles);
float max[3];
GetEntPropVector(g_iPropIndex, Prop_Data, "m_vecMaxs", max);
f_Angles[2] += max[2];
//f_Angles - координаты вершины.
А не получается всё, по большей части, потому, что вторым параметром:Должны быть углы.
скажите пожалуйста а можно ли как-то заставить hostage_entity в ксго также бегать за игроком?
 

Jafa

Участник
Сообщения
159
Реакции
3
@AlmazON, @Primo,

CreateEntityByName("prop_physics_override");
SetEntProp(prop, Prop_Send, "m_CollisionGroup", 1);

Сталкивается с игроками... можно это исправить? нужно чтоб сталкивался только с world или предметами, а лучше чтоб только с world
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
@Jafa, думаю тебе подойдёт COLLISION_GROUP_DEBRIS
C-подобный:
COLLISION_GROUP_NONE  = 0,
COLLISION_GROUP_DEBRIS,            // Collides with nothing but world and static stuff
COLLISION_GROUP_DEBRIS_TRIGGER,         // Same as debris, but hits triggers
COLLISION_GROUP_INTERACTIVE_DEBRIS,    // Collides with everything except other interactive debris or debris
COLLISION_GROUP_INTERACTIVE,        // Collides with everything except interactive debris or debris
COLLISION_GROUP_PLAYER,
COLLISION_GROUP_BREAKABLE_GLASS,
COLLISION_GROUP_VEHICLE,
COLLISION_GROUP_PLAYER_MOVEMENT,      // For HL2, same as Collision_Group_Player, for
                        // TF2, this filters out other players and CBaseObjects
COLLISION_GROUP_NPC,            // Generic NPC group
COLLISION_GROUP_IN_VEHICLE,        // for any entity inside a vehicle
COLLISION_GROUP_WEAPON,            // for any weapons that need collision detection
COLLISION_GROUP_VEHICLE_CLIP,        // vehicle clip brush to restrict vehicle movement
COLLISION_GROUP_PROJECTILE,        // Projectiles!
COLLISION_GROUP_DOOR_BLOCKER,        // Blocks entities not permitted to get near moving doors
COLLISION_GROUP_PASSABLE_DOOR,        // Doors that the player shouldn't collide with
COLLISION_GROUP_DISSOLVING,        // Things that are dissolving are in this group
COLLISION_GROUP_PUSHAWAY,        // Nonsolid on client and server, pushaway in player code

COLLISION_GROUP_NPC_ACTOR,        // Used so NPCs in scripts ignore the player.
COLLISION_GROUP_NPC_SCRIPTED,        // Used for NPCs in scripts that should not collide with each other
COLLISION Types - Valve Developer Community
 
  • Мне нравится
Реакции: Jafa

Jafa

Участник
Сообщения
159
Реакции
3
@Primo, и еще совсем маленький вопрос на седня а то у самого голова кипит(

Есть координаты в пространстве float Pos[3] = .. бла бла бла..; мне нужно получить индекс предмета на котором лежит координата.
--- Добавлено позже ---
@Jafa, думаю тебе подойдёт COLLISION_GROUP_DEBRIS
C-подобный:
COLLISION_GROUP_NONE  = 0,
COLLISION_GROUP_DEBRIS,            // Collides with nothing but world and static stuff
COLLISION_GROUP_DEBRIS_TRIGGER,         // Same as debris, but hits triggers
COLLISION_GROUP_INTERACTIVE_DEBRIS,    // Collides with everything except other interactive debris or debris
COLLISION_GROUP_INTERACTIVE,        // Collides with everything except interactive debris or debris
COLLISION_GROUP_PLAYER,
COLLISION_GROUP_BREAKABLE_GLASS,
COLLISION_GROUP_VEHICLE,
COLLISION_GROUP_PLAYER_MOVEMENT,      // For HL2, same as Collision_Group_Player, for
                        // TF2, this filters out other players and CBaseObjects
COLLISION_GROUP_NPC,            // Generic NPC group
COLLISION_GROUP_IN_VEHICLE,        // for any entity inside a vehicle
COLLISION_GROUP_WEAPON,            // for any weapons that need collision detection
COLLISION_GROUP_VEHICLE_CLIP,        // vehicle clip brush to restrict vehicle movement
COLLISION_GROUP_PROJECTILE,        // Projectiles!
COLLISION_GROUP_DOOR_BLOCKER,        // Blocks entities not permitted to get near moving doors
COLLISION_GROUP_PASSABLE_DOOR,        // Doors that the player shouldn't collide with
COLLISION_GROUP_DISSOLVING,        // Things that are dissolving are in this group
COLLISION_GROUP_PUSHAWAY,        // Nonsolid on client and server, pushaway in player code

COLLISION_GROUP_NPC_ACTOR,        // Used so NPCs in scripts ignore the player.
COLLISION_GROUP_NPC_SCRIPTED,        // Used for NPCs in scripts that should not collide with each other
COLLISION Types - Valve Developer Community
COLLISION_GROUP_DEBRIS - не компилит с этим... какой номер у этого? если 1 то я уже юзал это - SetEntProp(prop, Prop_Send, "m_CollisionGroup", 1);
--- Добавлено позже ---
SetEntProp(prop, Prop_Send, "m_CollisionGroup", 1); от 0 до 40 проверил - не дало результата.. обьект упирается в Игрока((( при чем независимо от того есть ли ноблок у игрока или нет...(@Primo,
--- Добавлено позже ---
@Primo, а как можно получить сразу ряд предметом которые от точки А и Б ? TR_GetEntityIndex(); показывает 1 предмет которые первым встретился на пути... а как получить все?
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
COLLISION_GROUP_DEBRIS - не компилит с этим
#include <sdktools> впиши.
какой номер у этого?
C-подобный:
COLLISION_GROUP_NONE  
По умолчанию, сталкивается с статическими и динамическими объектами

COLLISION_GROUP_DEBRIS  
Сталкивается только с миром и статическими вещами

COLLISION_GROUP_DEBRIS_TRIGGER   
Тоже что и предыдущее, но переключает триггеры

COLLISION_GROUP_INTERACTIVE_DEBRIS  
Сталкивается со всем за исключением других интерактивных осколков или осколков

COLLISION_GROUP_INTERACTIVE  
Сталкивается со всем за исключением интерактивных осколков или осколков

COLLISION_GROUP_PLAYER  
Сталкивается с игроком

COLLISION_GROUP_BREAKABLE_GLASS  
Специальная группа для стеклянных осколков

COLLISION_GROUP_VEHICLE  
Группа коллизии для управляемого транспорта

COLLISION_GROUP_PLAYER_MOVEMENT   
Для однопользовательского режима то же чо Collision_Group_Player;
Для многопользовательского — это отфильтровывает других игроков и CBaseObjects

COLLISION_GROUP_NPC  
Базовая группа NPC

COLLISION_GROUP_IN_VEHICLE  
Любая энтить внутри транспорта

COLLISION_GROUP_WEAPON  
Для любого огружия требующего определения коллизий

COLLISION_GROUP_VEHICLE_CLIP  
Клип браш для транспорта, для ограничения движения транспорта

COLLISION_GROUP_PROJECTILE  
Пули

COLLISION_GROUP_DOOR_BLOCKER  
Блокировка энтитей не допустимых к движению рядом с дверями

COLLISION_GROUP_PASSABLE_DOOR  
Двери с которыми не может сталкиваться игрок

COLLISION_GROUP_DISSOLVING  
Вещи проникают друг в друга

COLLISION_GROUP_PUSHAWAY  
Немонолитные на стороне клиента и сервера, отталкивают игрока
Оффтоп
получить индекс предмета на котором лежит координата
C-подобный:
native TR_GetPointContents(const Float:pos[3], &entindex=-1);
TR_GetEntityIndex(); показывает 1 предмет которые первым встретился на пути... а как получить все?
Строить трейсы от полученного предмета до конечной точки, пока не найдётся коллизии.
 
  • Мне нравится
Реакции: Jafa
Сверху Снизу