Cheats Disabler Incompleto [PoC]
#1
Probablemente este será el último aporte que deje, ya que revisé mis discos y encontré esto ...

Esta es una idea que se hizo por el 2010, el objetivo de esto era básicamente lo siguiente:

1) Remover TODA la información de las entidades de los players a través de AddToFullPack (esto causa que TODO Cheat existente que use GetEntityByIndex o variantes FALLEN, prácticamente todos lo usan).

2) Desafortunadamente, esto causa que los players se hagan "invisibles" así que el objetivo ahora es recrear las entidades de todos los players manualmente.

3) Crear una entidad, poner el model, arma, efectos, animaciones, etc. de cada player a su respectiva entidad.

Ahora bien, esto jamás se logró porque supuestamente no hay forma de reproducir las animaciones en las entidades de los players (sequence & gaitsequence), digo supuestamente porque ya pasaron 10 años y no sé si hoy en día se podrá hacer, de poderse entonces resta hacer algunas otras cosas para seguir testeando y terminar con la solución final.
Se me ocurren ideas de reproducir las sequences & gaitsequences a traves de set_es de AddToFullPack, pero si alguien quiere hacer pruebas, adelante.

Nota: Es del 2010, el code es, como dije antes, CONCEPTUAL:

Código PHP:
#include < amxmodx >
#include < engine >
#include < fakemeta >

new gL_PlayerEntity[33], gL_PlayerWeapon[33]

public 
plugin_init ( )
{
 
register_plugin "Cheats Disabler""1.0""Rainnegan" )

 
register_forward FM_AddToFullPack"FM_AddToFullPack_Pre",  0 )
 
 for ( new 
id id <= get_maxplayers ( ) ; id++ )
 {
 
gL_PlayerEntity[id] = create_entity "info_target" )
 
 
entity_set_int gL_PlayerEntity[id], EV_INT_movetypeMOVETYPE_STEP )
 
entity_set_int gL_PlayerEntity[id], EV_INT_solidSOLID_NOT )
 
entity_set_model gL_PlayerEntity[id], "models/player/arctic/arctic.mdl" )
 
entity_set_float gL_PlayerEntity[id], EV_FL_animtimeget_gametime ( ) )
 
entity_set_float gL_PlayerEntity[id], EV_FL_framerate1.0 )
 
 
gL_PlayerWeapon[id] = create_entity "info_target" )
 
 
entity_set_int gL_PlayerWeapon[id], EV_INT_movetypeMOVETYPE_FOLLOW )
 
entity_set_int gL_PlayerWeapon[id], EV_INT_solidSOLID_NOT )
 
entity_set_edict gL_PlayerWeapon[id], EV_ENT_aimentgL_PlayerEntity[id] )
 }
}

public 
plugin_precache ( )
{
 
precache_model "models/player/arctic/arctic.mdl" )
}

public 
FM_AddToFullPack_Pre es_handleeenthosthostflagsplayerpset )
{
 if ( !
player || ( host == ent ) )
 {
  return FMRES_IGNORED
 
}

 if ( 
is_user_connected ent ) && is_user_alive ent ) )
 {
 
Client_Ent enttrue )
 return 
FMRES_SUPERCEDE // Borrar player info
 
}
 
 else
 {
  Client_Ent entfalse )
 }
 
 return 
FMRES_IGNORED
}

stock Client_Ent idAlive )
{
 if ( 
Alive )
 {
 
// Mostrar
 
entity_set_int gL_PlayerEntity[id], EV_INT_effectsentity_get_int idEV_INT_effects ) &~ EF_NODRAW )
 
 
// Posicion & Angulos
 
static Float:Origin[3], Float:Angles[3]
 
entity_get_vector idEV_VEC_originOrigin )
 
entity_get_vector idEV_VEC_anglesAngles )
 
entity_set_vector gL_PlayerEntity[id], EV_VEC_originOrigin )
 
entity_set_vector gL_PlayerEntity[id], EV_VEC_anglesAngles )

 
// Model del Player
 
static Model[33], SetModel[64]
 
engfunc EngFunc_InfoKeyValueengfunc EngFunc_GetInfoKeyBufferid ), "model"Modelcharsmax Model ) )
 
formatex SetModelcharsmax (SetModel ), "models/player/%s/%s.mdl"ModelModel )
 
engfunc EngFunc_SetModelgL_PlayerEntity[id], SetModel )
 
 
// Model del Arma
 
static WeaponModel[64]
 
entity_get_string idEV_SZ_weaponmodelWeaponModelcharsmax WeaponModel ) )
 
entity_set_model gL_PlayerWeapon[id], WeaponModel )
 
 
// Animaciones (No soportado por AmxModX)
 
entity_set_int gL_PlayerEntity[id], EV_INT_sequenceentity_get_int idEV_INT_sequence ) )
 
entity_set_int gL_PlayerEntity[id], EV_INT_gaitsequenceentity_get_int idEV_INT_gaitsequence ) )

 
// Efectos
 
static Float:RenderColor[3]
 
entity_set_int gL_PlayerEntity[id], EV_INT_rendermodeentity_get_int idEV_INT_rendermode ) )
 
entity_set_int gL_PlayerEntity[id], EV_INT_renderfxentity_get_int idEV_INT_renderfx ) )
 
entity_set_float gL_PlayerEntity[id], EV_FL_renderamtentity_get_float idEV_FL_renderamt ) )
 
entity_get_vector idEV_VEC_rendercolorRenderColor )
 
entity_set_vector gL_PlayerEntity[id], EV_VEC_rendercolorRenderColor )
 }
 
 else 
// El player no está vivo, ocultar su entidad falsa
 
{
  entity_set_int gL_PlayerEntity[id], EV_INT_effectsentity_get_int idEV_INT_effects ) | EF_NODRAW )
 }

(15/12/2020, 07:06 PM)Mario AR. escribió: Cuando tu acatante conozca de tu nuevo puerto, te volverá a atacar

[Imagen: b_560_95_1.png]
Responder
#2
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

(18/11/2014, 05:47 PM)Neeeeeeeeeel.- escribió: Por qué necesitan una guía para todo? Meté mano y que salga lo que salga... es la mejor forma de aprender.

(16/05/2016, 11:08 PM)kikizon2 escribió: No cabe duda que tienen mierda en vez de cerebro, par de pendejos v:
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)