IsVisible

  • Автор темы Автор темы sadaaa
  • Дата начала Дата начала
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
4 Янв 2021
Сообщения
16
Реакции
10
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
Expand Collapse Copy
//257 = ent_static | ent_terrain
bool isVisible(IEntity* pEntity, Vec3 from, Vec3 to, IPhysicalEntity** pSkipEnts = 0, int nSkipEnts = 0, int pierceability = 10)
{
    ray_hit rayhit;
    if (gEnv->pPhysicalWorld->RayWorldIntersection(from, to - from, ent_static | ent_terrain, 0xA0001500 | pierceability, &rayhit, 1, pSkipEnts, nSkipEnts) > 0)
    {
        return gEnv->pEntitySystem->GetEntityFromPhysics(rayhit.pCollider) == pEntity;
    }
    return true;
}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Паста с UC от ICode, для чего?
И на будущее если ты или кто-то, что-то сливает из кодов или сурсов то будьте добры делать это как я и иные личности у кого мозгов на это больше.
1)Где GetEntityFromPhysics? От куда люди будут его брать? Из ветра?
2)Где объяснения для чего он и чем лучше от других версий?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Паста с UC от ICode, для чего?
И на будущее если ты или кто-то, что-то сливает из кодов или сурсов то будьте добры делать это как я и иные личности у кого мозгов на это больше.
1)Где GetEntityFromPhysics? От куда люди будут его брать? Из ветра?
2)Где объяснения для чего он и чем лучше от других версий?

1)
Код:
Expand Collapse Copy
struct IEntitySystem
{
    IEntity* GetEntityFromPhysics(IPhysicalEntity* pPhysEntity) {
        return _vcall<IEntity*>(this, 26, pPhysEntity);
    }
};
struct IPhysicalWorld
{
    struct SRWIParams
    {
        SRWIParams() { RtlSecureZeroMemory(this, sizeof(*this)); }
        void* pForeignData;
        int iForeignData;
        int(__fastcall* OnEvent)(EventPhysRWIResult*);
        Vec3 org;
        Vec3 dir;
        int objtypes;
        uint32_t flags;
        ray_hit* hits;
        int nMaxHits;
        ray_hit_cached* phitLast;
        int nSkipEnts;
        IPhysicalEntity** pSkipEnts;
        SCollisionClass collclass;
    };

    int RayWorldIntersection(SRWIParams& rp, const char* pNameTag = 0, int iCaller = 4)
    {
        return _vcall<int>(this, 35, rp, pNameTag, iCaller);
    }
    int RayWorldIntersection(const Vec3& org, const Vec3& dir, int objtypes, unsigned int flags, ray_hit* hits, int nMaxHits, IPhysicalEntity* pSkipEnt, IPhysicalEntity* pSkipEntAux = 0, void* pForeignData = 0, int iForeignData = 0)
    {
        IPhysicalEntity* pSkipEnts[2];
        int nSkipEnts = 0;
        if (pSkipEnt) pSkipEnts[nSkipEnts++] = pSkipEnt;
        if (pSkipEntAux) pSkipEnts[nSkipEnts++] = pSkipEntAux;
        return RayWorldIntersection(org, dir, objtypes, flags, hits, nMaxHits, pSkipEnts, nSkipEnts, pForeignData, iForeignData);
    }
    int RayWorldIntersection(const Vec3& org, const Vec3& dir, int objtypes, unsigned int flags, ray_hit* hits, int nmaxhits, IPhysicalEntity** pSkipEnts = 0, int nSkipEnts = 0, void* pForeignData = 0, int iForeignData = 0, const char* pNameTag = 0, ray_hit_cached* phitLast = 0, int iCaller = 4)
    {
        SRWIParams rp;
        rp.org = org;
        rp.dir = dir;
        rp.objtypes = objtypes;
        rp.flags = flags;
        rp.hits = hits;
        rp.nMaxHits = nmaxhits;
        rp.pForeignData = pForeignData;
        rp.iForeignData = iForeignData;
        rp.phitLast = phitLast;
        rp.pSkipEnts = pSkipEnts;
        rp.nSkipEnts = nSkipEnts;
        return RayWorldIntersection(rp, 0, iCaller);
    }

    int GetSurfaceParameters(int surface_idx, float* bounciness, float* friction, float* damage_reduction, unsigned int* flags)
    {
        return _vcall<int>(this, 24, surface_idx, bounciness, friction, damage_reduction, flags);
    }
    int GetPhysicalEntityId(IPhysicalEntity* pent)
    {
        return _vcall<int>(this, 20, pent);
    }
};
2)
хочешь объяснений в паре строк?
ну да вы же сами не хотите что-то сами искать или хотя бы посмотреть на код и понять что там происходит.
Ну дак вот отличия:
- для ботов и игроков и обычная будет работать
- для чего нужен pierceability? для того чтобы учитывать преграды между координатами, которые ваше оружие может прострелить. 10 это для пистолетов, для каждого оружия кому надо сами найдут.
- pSkipEnts, nSkipEnts нужны для того чтобы указать игнорируемые цели между вами и врагом
- если в обычной версии между вашими координатами будет ваша цель, и результатом будет 1, а не ноль, то вы получите что ваша цель за стеной и тут этого не будет
3)
ICoded это я (прикол да)
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1)
Код:
Expand Collapse Copy
struct IEntitySystem
{
    IEntity* GetEntityFromPhysics(IPhysicalEntity* pPhysEntity) {
        return _vcall<IEntity*>(this, 26, pPhysEntity);
    }
};
struct IPhysicalWorld
{
    struct SRWIParams
    {
        SRWIParams() { RtlSecureZeroMemory(this, sizeof(*this)); }
        void* pForeignData;
        int iForeignData;
        int(__fastcall* OnEvent)(EventPhysRWIResult*);
        Vec3 org;
        Vec3 dir;
        int objtypes;
        uint32_t flags;
        ray_hit* hits;
        int nMaxHits;
        ray_hit_cached* phitLast;
        int nSkipEnts;
        IPhysicalEntity** pSkipEnts;
        SCollisionClass collclass;
    };

    int RayWorldIntersection(SRWIParams& rp, const char* pNameTag = 0, int iCaller = 4)
    {
        return _vcall<int>(this, 35, rp, pNameTag, iCaller);
    }
    int RayWorldIntersection(const Vec3& org, const Vec3& dir, int objtypes, unsigned int flags, ray_hit* hits, int nMaxHits, IPhysicalEntity* pSkipEnt, IPhysicalEntity* pSkipEntAux = 0, void* pForeignData = 0, int iForeignData = 0)
    {
        IPhysicalEntity* pSkipEnts[2];
        int nSkipEnts = 0;
        if (pSkipEnt) pSkipEnts[nSkipEnts++] = pSkipEnt;
        if (pSkipEntAux) pSkipEnts[nSkipEnts++] = pSkipEntAux;
        return RayWorldIntersection(org, dir, objtypes, flags, hits, nMaxHits, pSkipEnts, nSkipEnts, pForeignData, iForeignData);
    }
    int RayWorldIntersection(const Vec3& org, const Vec3& dir, int objtypes, unsigned int flags, ray_hit* hits, int nmaxhits, IPhysicalEntity** pSkipEnts = 0, int nSkipEnts = 0, void* pForeignData = 0, int iForeignData = 0, const char* pNameTag = 0, ray_hit_cached* phitLast = 0, int iCaller = 4)
    {
        SRWIParams rp;
        rp.org = org;
        rp.dir = dir;
        rp.objtypes = objtypes;
        rp.flags = flags;
        rp.hits = hits;
        rp.nMaxHits = nmaxhits;
        rp.pForeignData = pForeignData;
        rp.iForeignData = iForeignData;
        rp.phitLast = phitLast;
        rp.pSkipEnts = pSkipEnts;
        rp.nSkipEnts = nSkipEnts;
        return RayWorldIntersection(rp, 0, iCaller);
    }

    int GetSurfaceParameters(int surface_idx, float* bounciness, float* friction, float* damage_reduction, unsigned int* flags)
    {
        return _vcall<int>(this, 24, surface_idx, bounciness, friction, damage_reduction, flags);
    }
    int GetPhysicalEntityId(IPhysicalEntity* pent)
    {
        return _vcall<int>(this, 20, pent);
    }
};
2)
хочешь объяснений в паре строк?
ну да вы же сами не хотите что-то сами искать или хотя бы посмотреть на код и понять что там происходит.
Ну дак вот отличия:
- для ботов и игроков и обычная будет работать
- для чего нужен pierceability? для того чтобы учитывать преграды между координатами, которые ваше оружие может прострелить. 10 это для пистолетов, для каждого оружия кому надо сами найдут.
- pSkipEnts, nSkipEnts нужны для того чтобы указать игнорируемые цели между вами и врагом
- если в обычной версии между вашими координатами будет ваша цель, и результатом будет 1, а не ноль, то вы получите что ваша цель за стеной и тут этого не будет
3)
ICoded это я (прикол да)

Я же тебе написал, что другие люди нихуя не поймут! Так что нужно сразу, ибо пастер зайдет и не поймет
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я же тебе написал, что другие люди нихуя не поймут! Так что нужно сразу, ибо пастер зайдет и не поймет
по сколько ты еще и на UC это заметил значит ты видел вот такой кусок is_Visible(aabb.GetCenter(), 2.0f)
это то что я делал несколько лет назад, чтоб корды цели были на 2 метра ближе для такого учета (такое се), а вы так и используете этот мусор.

А ты буд-то понял да хах
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
по сколько ты еще и на UC это заметил значит ты видел вот такой кусок is_Visible(aabb.GetCenter(), 2.0f)
это то что я делал несколько лет назад, чтоб корды цели были на 2 метра ближе для такого учета (такое се), а вы так и используете этот мусор.

А ты буд-то понял да хах
хаахахв, ща
1629124526195.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ты б CallFunction укоротил до CallFunction<int>(this, индекс, параметры);
зачем ты мне isVisible кидаешь который в каждой пасте лежит?
Да мне так удобнее, ну и я тебе скинул что не юзаю ту хуйню)
ты б CallFunction укоротил до CallFunction<int>(this, индекс, параметры);
зачем ты мне isVisible кидаешь который в каждой пасте лежит?
Но и лучше бы сливал что-то годное
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я же тебе написал, что другие люди нихуя не поймут! Так что нужно сразу, ибо пастер зайдет и не поймет
нахуя пастеру, что либо понимать. им нужен только r2p код в свой супериор легендвар
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу