Untitled
unknown
plain_text
4 years ago
9.1 kB
13
Indexable
enum RockstarEvent
{
SCRIPT_ARRAY_DATA_VERIFY_EVENT = 3,
REQUEST_CONTROL_EVENT = 4,
GIVE_CONTROL_EVENT = 5,
WEAPON_DAMAGE_EVENT = 6,
INCAPACITATED_REVIVE_EVENT = 55,
INCAPACITATED_EXECUTE_EVENT = 56,
REQUEST_PICKUP_EVENT = 7,
REQUEST_MAP_PICKUP_EVENT = 8,
REQUEST_IS_VOLUME_EMPTY = 116,
RESPAWN_PLAYER_PED_EVENT = 11,
GENERIC_COMPONENT_CONTROL_EVENT = 12,
FIRE_EVENT = 13,
FIRE_TRAIL_UPDATE_EVENT = 14,
EXPLOSION_EVENT = 15,
START_PROJECTILE_EVENT = 16,
ALTER_WANTED_LEVEL_EVENT = 17,
RAGDOLL_REQUEST_EVENT = 20,
PLAYER_CARD_STAT_EVENT = 21,
DOOR_BREAK_EVENT = 22,
SCRIPTED_GAME_EVENT = 23,
REMOTE_SCRIPT_INFO_EVENT = 24,
REMOTE_SCRIPT_LEAVE_EVENT = 25,
MARK_AS_NO_LONGER_NEEDED_EVENT = 26,
CONVERT_TO_SCRIPT_ENTITY_EVENT = 27,
INCIDENT_EVENT = 31,
INCIDENT_ENTITY_EVENT = 32,
CLEAR_AREA_EVENT = 29,
CLEAR_VOLUME_EVENT = 30,
GIVE_PED_SCRIPTED_TASK_EVENT = 33,
GIVE_PED_SEQUENCE_TASK_EVENT = 34,
NETWORK_CLEAR_PED_TASKS_EVENT = 35,
NETWORK_SOUND_CAR_HORN_EVENT = 37,
NETWORK_ENTITY_AREA_STATUS_EVENT = 38,
NETWORK_GARAGE_OCCUPIED_STATUS_EVENT = 39,
NETWORK_PED_WHISTLE_EVENT = 135,
PED_SPEECH_CREATE_EVENT = 40,
PED_SPEECH_PLAY_EVENT = 41,
PED_SPEECH_STOP_EVENT = 42,
PED_SPEECH_ASSIGN_VOICE_EVENT = 43,
SCRIPT_ENTITY_STATE_CHANGE_EVENT = 44,
NETWORK_PLAY_SCRIPT_SOUND_EVENT = 45,
NETWORK_PLAY_AUDIO_ENTITY_SOUND_EVENT = 46,
NETWORK_STOP_SCRIPT_SOUND_EVENT = 47,
NETWORK_STOP_AUDIO_ENTITY_SOUND_EVENT = 48,
NETWORK_TRAIN_REQUEST_EVENT = 51,
NETWORK_INCREMENT_STAT_EVENT = 51,
MODIFY_VEHICLE_LOCK_WORD_STATE_DATA = 53,
REQUEST_PHONE_EXPLOSION_EVENT = 57,
REQUEST_DETACHMENT_EVENT = 58,
KICK_VOTES_EVENT = 59,
GIVE_PICKUP_REWARDS_EVENT = 60,
BLOW_UP_VEHICLE_EVENT = 61,
NETWORK_SPECIAL_FIRE_EQUIPPED_WEAPON = 62,
NETWORK_RESPONDED_TO_THREAT_EVENT = 63,
NETWORK_SHOUT_TARGET_POSITION_EVENT = 64,
PICKUP_DESTROYED_EVENT = 66,
NETWORK_PTFX_EVENT = 68,
NETWORK_PED_SEEN_DEAD_PED_EVENT = 69,
PED_PLAY_PAIN_EVENT = 72,
ADD_OR_REMOVE_PED_FROM_PEDGROUP_EVENT = 73,
NETWORK_START_PED_HOGTIE_EVENT = 74,
NETWORK_SEND_PED_LASSO_ATTACH_EVENT = 75,
NETWORK_SEND_PED_LASSO_DETTACH_EVENT = 76,
NETWORK_SEND_CARRIABLE_UPDATE_CARRY_STATE_EVENT = 78,
REQUEST_CONTROL_REQUESTER_EVENT = 81,
NETWORK_VOLUME_LOCK_REQUEST_EVENT = 82,
NETWORK_VOLUME_LOCK_REQUEST_FAILURE_EVENT = 83,
NETWORK_VOLUME_LOCK_KEEP_ALIVE_EVENT = 84,
NETWORK_VOLUME_LOCK_MOVE_EVENT = 85,
NETWORK_VOLUME_LOCK_ATTACH_EVENT = 86,
NETWORK_VOLUME_LOCK_DETACH_EVENT = 87,
NETWORK_VOLUME_LOCK_RESIZE_EVENT = 88,
NETWORK_VOLUME_LOCK_RELEASE_EVENT = 89,
NETWORK_VOLUME_LOCK_DATA_EVENT = 90,
NETWORK_MAKE_WITNESS_EVENT = 91,
NETWORK_REMOVE_WITNESS_EVENT = 92,
NETWORK_GANG_INVITE_PLAYER_EVENT = 93,
NETWORK_GANG_INVITE_RESPONSE_EVENT = 94,
NETWORK_GANG_INVITE_CANCEL_EVENT = 95,
NETWORK_GANG_JOIN_REQUEST_EVENT = 96,
NETWORK_REQUEST_CONVERT_TO_SCRIPT_ENTITY_EVENT = 100,
NETWORK_REGISTER_CRIME_EVENT = 101,
NETWORK_START_LOOT_EVENT = 103,
NETWORK_NEW_BUG_EVENT = 104,
REPORT_CASH_SPAWN_EVENT = 108,
NETWORK_CHEST_REQUEST_EVENT = 109,
NETWORK_CHEST_DATA_CHANGE_EVENT = 110,
NETWORK_CHEST_RELEASE_EVENT = 111,
NETWORK_CLEAR_GANG_BOUNTY_EVENT = 112,
NETWORK_PLAYER_REQUEST_CONTENTION_EVENT = 113,
NETWORK_START_FALLBACK_CARRY_ACTION_EVENT = 114,
NETWORK_GIVE_ENERGY_EVENT = 115,
NETWORK_DOOR_STATE_CHANGE = 118,
NETWORK_STAMINA_COST_EVENT = 119,
NETWORK_REMOVE_DOOR = 120,
SCRIPT_COMMAND_EVENT = 121,
NETWORK_KNOCK_PED_OFF_VEHICLE_EVENT = 122,
NETWORK_SPAWN_SEARCH_EVENT = 123,
NETWORK_ROPE_WORLD_STATE_DATA_BREAK_EVENT = 124,
NETWORK_PLAYER_HAT_EVENT = 125,
NETWORK_CRIME_SCENE_EVENT = 126,
NETWORK_POINT_OF_INTEREST_EVENT = 127,
NETWORK_DESTROY_VEHICLE_LOCK_EVENT = 129,
NETWORK_APPLY_REACTION_EVENT = 130,
NETWORK_START_LOOT_ALIVE_EVENT = 131,
NETWORK_SET_ENTITY_GHOST_WITH_PLAYER_EVENT = 132,
NETWORK_COMBAT_DIRECTOR_EVENT = 133,
NETWORK_MELEE_ARBITRATION_FAIL_EVENT = 134,
NETWORK_PED_MOTIVATION_CHANGE_EVENT = 136,
NETWORK_IGNITE_BOMB_EVENT = 36,
NETWORK_PED_SHARED_TARGETING_EVENT = 137,
NETWORK_REQUEST_COMBAT_GESTURE = 138,
NETWORK_CRIME_REPORT_EVENT = 102,
LIGHTNING_EVENT = 139,
PED_TRIGGER_BULLET_FLINCH_EVENT = 140,
PED_TRIGGER_EXPLOSION_FLINCH_EVENT = 141,
NETWORK_PLAYER_WHISTLE_EVENT = 142,
CONVERSATION_EVENT = 145,
NETWORK_END_LOOT_EVENT = 147,
NETWORK_PLAYER_SPURRING_EVENT = 143,
NETWORK_PLAYER_HORSE_TAMING_CALLOUT_EVENT = 144,
NETWORK_PICKUP_CARRIABLE_EVENT = 148,
NETWORK_PLACE_CARRIABLE_ONTO_PARENT_EVENT = 149,
PLAY_DEAD_EVENT = 150,
NETWORK_PLAYER_HORSE_SHOT_EVENT = 151,
ANIM_SCENE_ABORT_ENTITY_EVENT = 152,
NETWORK_REQUEST_ASSET_DETACHMENT = 153,
NETWORK_CARRIABLE_VEHICLE_STOW_START_EVENT = 154,
NETWORK_CARRIABLE_VEHICLE_STOW_COMPLETE_EVENT = 155,
NETWORK_BOLAS_HIT_EVENT = 77,
NETWORK_WANTED_EVENT = 18,
NETWORK_UPDATE_ANIMATED_VEHICLE_PROP_EVENT = 156,
NETWORK_SET_CARRYING_FLAG_FOR_ENTITY = 157,
NETWORK_BOUNTY_HUNT_EVENT = 158,
NETWORK_DEBUG_REQUEST_ENTITY_POSITION = 159,
NETWORK_REMOVE_PROP_OWNERSHIP = 160,
NETWORK_DUMP_CARRIABLE_OFF_MOUNT_EVENT = 161,
NETWORK_FORCE_IN_SCOPE_FOR_DUPLICATE_OBJECT_OWNER = 162,
REVENT_EVENT_END
}; //53 43 52 49 50 54 5F 41 52 52 41 59 5F 44 41 54 41 5F 56 45 52 49 46 59 5F 45 56 45 4E 54 00
//48 83 EC 28 E8 C3 73 80 ?
const int EVENT_COUNT = REVENT_EVENT_END;
static std::vector<void*> EventPtr;
static unsigned char EventRestore[REVENT_EVENT_END] = { 0 };
setFn<fpGetEventData>((char*)"get_event_data",
(char*)"\x48\x89\x5C\x24\x00\x57\x48\x83\xEC\x20\x49\x8B\xF8\x41\x8B\xD9",
(char*)"xxxx?xxxxxxxxxxx",
&Hooking::get_event_data);
setFn<fpreceivedeventptr>((char*)"received_event_ptr",
(char*)"\x48\x8B\xC4\x48\x89\x58\x08\x48\x89\x68\x10\x48\x89\x70\x18\x48\x89\x78\x20\x41\x56\x48\x83\xEC\x30\x48\x8B\xD9\x45\x0F\xB7\xF1",
(char*)"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
&Hooking::received_event_ptr);
auto p_eventHook = pattern("48 83 EC 28 E8 C3 73 80 ?");
char* c_location = nullptr;
void* v_location = nullptr;
Log::Msg("Getting Event Hook...");
if ((c_location = p_eventHook.count(1).get(0).get<char>(0)))
{
int i = 0, j = 0, matches = 0, found = 0;
char* pattern = (char*)"\x4C\x8D\x0D";
while (found != EVENT_COUNT)
{
if (c_location[i] == pattern[j])
{
if (++matches == 3)
{
EventPtr.push_back((void*)(reinterpret_cast<uint64_t>(c_location + i - j) + *reinterpret_cast<int*>(c_location + i + 1) + 7));
found++;
j = matches = 0;
}
j++;
}
else
{
matches = j = 0;
}
i++;
}
}
MH_CreateHook((LPVOID)Hooking::received_event_ptr, &Hooking::receivedevent, &m_OriginalReceivedEvent);
MH_EnableHook((LPVOID)Hooking::received_event_ptr);
Log::Msg("received_event create_status : 0x%#p 0x%llX\n", Hooking::received_event_ptr);
MH_CreateHook((LPVOID)Hooking::get_event_data, &Hooking::GED, &m_OriginalGetEventData);
MH_EnableHook((LPVOID)Hooking::get_event_data);
Log::Msg("get_event_data create_status : 0x%#p 0x%llX\n", Hooking::get_event_data);
typedef int int64_t;
bool Hooking::protection2 = false;
bool Hooking::GED(int eventGroup, int eventIndex, __int64* argStruct, int argStructSize)
{
int argsstructs1 = argStruct[1];
int argsstructs0 = argStruct[0];
char* name = Hooking::get_player_name(argsstructs1);
/*const char* name = PLAYER::GET_PLAYER_NAME(argsstructs1);*/
char id[30];
char sender[30];
auto result = static_cast<decltype(&GED)>(m_OriginalGetEventData)(eventGroup, eventIndex, argStruct, argStructSize);
if (result && argStruct[0] != 0)
{
bool Hooking::geteventdata = false;
void* m_OriginalGetEventData = nullptr;
uintptr_t received_event_ptr;
void* m_OriginalReceivedEvent = nullptr;
const char* EventName[2000];
bool Hooking::receivedevent(void* event_manager, __int64* sender, __int64* receiver, unsigned __int16 event_id, int event_index, int event_handled_bitset, __int64 bitbuffer_size, __int64 bitbuffer) {
auto sender_id = *reinterpret_cast<BYTE*>(sender + 25);
const char* senderName = PLAYER::GET_PLAYER_NAME(sender_id);
switch (event_id)
{
case EXPLOSION_EVENT:
{
if (Hooking::EXPLOSIONEVENT)
{
Log::Msg("EXPLOSION_EVENT \n");
printf("EXPLOSION_EVENT \n");
return 0;
}
};
case FIRE_EVENT:
{
if (Hooking::FIREEVENT)
{
Log::Msg("FIRE_EVENT \n");
printf("FIRE_EVENT \n");
return 0;
}
};
case NETWORK_CLEAR_PED_TASKS_EVENT:
{
if (Hooking::NETWORKCLEARPEDTASKSEVENT)
{
Log::Msg("NETWORK_CLEAR_PED_TASKS_EVENT \n");
printf("NETWORK_CLEAR_PED_TASKS_EVENT \n");
return 0;
}
};
}
return static_cast<decltype(&receivedevent)>(m_OriginalReceivedEvent)(event_manager, sender, receiver, event_id, event_index, event_handled_bitset, bitbuffer_size, bitbuffer);Editor is loading...