PDA

View Full Version : setAnim for clonePlayer()



voron00
15th November 2020, 05:19
BratokHR found an interesting way to change an animation of a player clone:


clone_addModel( origin, angles, indexModel )
{
level.g_cloneplayer endon( "disconnect" );

level.g_cloneplayer clone_setModel( indexModel );
clone = level.g_cloneplayer cloneplayer(0);
clone.origin = origin;
clone.angles = angles;

clone clone_setAnim();

return clone;
}

clone_setAnim( indexAnim )
{
start_addr = 140924032;

if ( getCvar("shortversion") == "1.2" )
start_addr = 141005696;
else if ( getCvar("shortversion") == "1.3" )
start_addr = 141648896;

id = self getEntityNumber();
addr = start_addr + (560 * id) + 204; // 0x08665480 + sizeof(gentity_t) * id + 0xCC(ent->s.legsAnim)
memory_int_set( addr, RandomIntRange(1, 300) ); // indexAnim 150
}

It works, but i did not test this much. Maybe there is a better way to do that though.

voron00
20th November 2020, 11:02
https://github.com/voron00/libcod/commit/06837e16e8cbf00f4f2aff2b596986159d835c75

Added this into libcod, just call setAnim on player corpse now.