[C++] IsDormant() nicht mehr da?

OliverT

Member
13 Jul 2018
52
10
hey, habe in verschiedenen foren nachgeschaut weil ich die adresse für IsDormant() finden wollte. habe aber oft gelesen dass es die funktion nicht mehr im spiel gibt.
Falls es sie gibt könntet ihr mir die adresse dafür schicken und falls nicht kann mir jemand sagen wie ich meine eigene IsDormant() funktion schreibe? (oder zumindest etwas ähnliches)
 

rn_

Professional Software Developer
7 Jan 2011
7,460
15,874
Internal:
Code:
class IClientNetworkable
{
public:
    virtual void*        get_client_unknown() = 0;
    virtual void         release() = 0;
    virtual ClientClass* get_client_class() = 0;
    virtual void         notify_should_transmit( std::int32_t state ) = 0;
    virtual void         on_pre_data_changed( std::int32_t update_type ) = 0;
    virtual void         on_data_changed( std::int32_t update_type ) = 0;
    virtual void         pre_data_update( std::int32_t update_type ) = 0;
    virtual void         post_data_update( std::int32_t update_type ) = 0;
    virtual void         on_data_unchanged_in_pvs() = 0;
    virtual bool         is_dormant() = 0;
    virtual std::int32_t get_index() const = 0;
    virtual void         receive_message( std::int32_t classID, void* msg /*bf_read&*/ ) = 0;
    virtual void*        get_data_table_base_ptr() = 0;
    virtual void         set_destroyed_on_recreate_entities() = 0;
};

IClientNetworkable* C_BaseEntity::get_networkable()
{
    return reinterpret_cast<IClientNetworkable*>(  reinterpret_cast<std::uint8_t*>(  this  )  +  0x8  );
}

const auto dormant  = entity->get_networkable()->is_dormant();

External:
Code:
const auto dormant = RPM<bool>( entity + 0xE9 );

Kannst dir auch einfach in IDA anschauen, was die vfunc macht. Solltest auf das selbe Ergebnis kommen ^^
 

imi-tat0r

www.ev0lve.xyz
9 Oct 2015
2,059
5,065
Internal:
Code:
class IClientNetworkable
{
public:
    virtual void*        get_client_unknown() = 0;
    virtual void         release() = 0;
    virtual ClientClass* get_client_class() = 0;
    virtual void         notify_should_transmit( std::int32_t state ) = 0;
    virtual void         on_pre_data_changed( std::int32_t update_type ) = 0;
    virtual void         on_data_changed( std::int32_t update_type ) = 0;
    virtual void         pre_data_update( std::int32_t update_type ) = 0;
    virtual void         post_data_update( std::int32_t update_type ) = 0;
    virtual void         on_data_unchanged_in_pvs() = 0;
    virtual bool         is_dormant() = 0;
    virtual std::int32_t get_index() const = 0;
    virtual void         receive_message( std::int32_t classID, void* msg /*bf_read&*/ ) = 0;
    virtual void*        get_data_table_base_ptr() = 0;
    virtual void         set_destroyed_on_recreate_entities() = 0;
};

IClientNetworkable* C_BaseEntity::get_networkable()
{
    return reinterpret_cast<IClientNetworkable*>(  reinterpret_cast<std::uint8_t*>(  this  )  +  0x8  );
}

const auto dormant  = entity->get_networkable()->is_dormant();

External:
Code:
const auto dormant = RPM<bool>( entity + 0xE9 );

Kannst dir auch einfach in IDA anschauen, was die vfunc macht. Solltest auf das selbe Ergebnis kommen ^^
Wie ich deine Naming conventions verabscheue xD <3
 

Requi

Well-Known Member
9 Mar 2015
295
392
Internal:
Code:
class IClientNetworkable
{
public:
    virtual void*        get_client_unknown() = 0;
    virtual void         release() = 0;
    virtual ClientClass* get_client_class() = 0;
    virtual void         notify_should_transmit( std::int32_t state ) = 0;
    virtual void         on_pre_data_changed( std::int32_t update_type ) = 0;
    virtual void         on_data_changed( std::int32_t update_type ) = 0;
    virtual void         pre_data_update( std::int32_t update_type ) = 0;
    virtual void         post_data_update( std::int32_t update_type ) = 0;
    virtual void         on_data_unchanged_in_pvs() = 0;
    virtual bool         is_dormant() = 0;
    virtual std::int32_t get_index() const = 0;
    virtual void         receive_message( std::int32_t classID, void* msg /*bf_read&*/ ) = 0;
    virtual void*        get_data_table_base_ptr() = 0;
    virtual void         set_destroyed_on_recreate_entities() = 0;
};

IClientNetworkable* C_BaseEntity::get_networkable()
{
    return reinterpret_cast<IClientNetworkable*>(  reinterpret_cast<std::uint8_t*>(  this  )  +  0x8  );
}

const auto dormant  = entity->get_networkable()->is_dormant();

External:
Code:
const auto dormant = RPM<bool>( entity + 0xE9 );

Kannst dir auch einfach in IDA anschauen, was die vfunc macht. Solltest auf das selbe Ergebnis kommen ^^

Wie imi schon sagte. Kannste dich nicht entscheiden oder was? :grin:
 

rn_

Professional Software Developer
7 Jan 2011
7,460
15,874
Wie imi schon sagte. Kannste dich nicht entscheiden oder was? :grin:
Ach nein, ist persönlich so wie es mir am besten gefällt =]

Außerdem kann ich so ohne eine IDE erkennen was was ist. Wenn ich mich strikt an was halten würde dann wäre alles lower_cased aber wie gesagt: so ist es für mich am leserlichsten.

Wie ich deine Naming conventions verabscheue xD <3
Joa und ich die ungarische Notation :b
 
Last edited: