Как отследить что один игрок запрыгнул на голову другому SOURCEPAWN

Фантэйззи

Участник
Сообщения
11
Реакции
2
Операционная система
Windows
Как отследить что один игрок запрыгнул на голову другому игроку на sourcepawn
желательно с примером
 
Решение
Может кто напишет целиком готовое, но не сейчас )
Вот тебе фрагменты кода, если разберёшься - всё получится
Либо делать проверку по таймеру, либо, возможно, получится через хук (Не проверял)

SDKHook(iClient, SDKHook_GroundEntChangedPost, Hook_GroundEntChangedPost);

Основа:
// Переменные
int m_hGroundEntity;
m_hGroundEntity = FindSendPropInfo("CBasePlayer", "m_hGroundEntity");

// Проверка
int pEntityBelow = GetEntDataEnt2(iClient, m_hGroundEntity);
if(pEntityBelow > 0 && pEntityBelow <= MaxClients && IsClientInGame(pEntityBelow))
{
    // Valid player
}

xek

Рыба клоун
Сообщения
1,652
Реакции
636
Для какого результата понадобилась такая гениальная идея?)
 

Морковка

Котлетка ^^
Сообщения
878
Реакции
472
Для какого результата понадобилась такая гениальная идея?)
есть даже стандартная команда
mp_solid_teammates 2 // прохождение сквозь союзников (2 - подсадка на голову).
если 2 то ты будешь бегать сквозь союзников но и на голову им встать можешь.
 

Svyatoy

Участник
Сообщения
335
Реакции
137
Может кто напишет целиком готовое, но не сейчас )
Вот тебе фрагменты кода, если разберёшься - всё получится
Либо делать проверку по таймеру, либо, возможно, получится через хук (Не проверял)

SDKHook(iClient, SDKHook_GroundEntChangedPost, Hook_GroundEntChangedPost);

Основа:
// Переменные
int m_hGroundEntity;
m_hGroundEntity = FindSendPropInfo("CBasePlayer", "m_hGroundEntity");

// Проверка
int pEntityBelow = GetEntDataEnt2(iClient, m_hGroundEntity);
if(pEntityBelow > 0 && pEntityBelow <= MaxClients && IsClientInGame(pEntityBelow))
{
    // Valid player
}
 
Решение

Фантэйззи

Участник
Сообщения
11
Реакции
2
Может кто напишет целиком готовое, но не сейчас )
Вот тебе фрагменты кода, если разберёшься - всё получится
Либо делать проверку по таймеру, либо, возможно, получится через хук (Не проверял)

SDKHook(iClient, SDKHook_GroundEntChangedPost, Hook_GroundEntChangedPost);

Основа:
// Переменные
int m_hGroundEntity;
m_hGroundEntity = FindSendPropInfo("CBasePlayer", "m_hGroundEntity");

// Проверка
int pEntityBelow = GetEntDataEnt2(iClient, m_hGroundEntity);
if(pEntityBelow > 0 && pEntityBelow <= MaxClients && IsClientInGame(pEntityBelow))
{
    // Valid player
}
Спасибо, надеюсь разберусь :D
 
Сверху Снизу