[HL2DM] set_model plays animation

Please post any questions about developing your plugin here. Please use the search function before posting!
User avatar
Kami
Global Moderator
Posts: 263
Joined: Wed Aug 15, 2012 1:24 am
Location: Germany

[HL2DM] set_model plays animation

Postby Kami » Mon Jan 25, 2021 8:15 pm

Hey guys, I'm trying to use this code to change the player model in hl2dm.

Syntax: Select all

from events import Event
from players.entity import Player
import random
from engines.precache import Model

@Event('player_spawn')
def _spawn(ev):
player = Player.from_userid(ev['userid'])
player.delay(1.0,player.set_model,(Model("models/eli.mdl"),))


The problem is that the model seems to go through it's animations (I guess from HL2) instead of sticking to the actual player stance.

Example: Image
User avatar
VinciT
Senior Member
Posts: 331
Joined: Thu Dec 18, 2014 2:41 am

Re: [HL2DM] set_model plays animation

Postby VinciT » Tue Jan 26, 2021 1:06 am

Hi Kami, I believe this should give you the desired result:

Syntax: Select all

# ../set_model/set_model.py

# Source.Python
from core import PLATFORM
from core.cache import cached_property
from engines.server import engine_server
from events import Event
from memory import Convention, DataType
from memory.helpers import MemberFunction
from memory.manager import manager
from players.entity import Player


# void CBaseEntity::SetModel( const char *szModelName )
# More info: https://git.io/Jtn9u
SET_MODEL_OFFSET = 24 if PLATFORM == 'windows' else 25


@Event('player_spawn')
def player_spawn(event):
PlayerSM.from_userid(event['userid']).set_model('models/eli.mdl')


class PlayerSM(Player):
"""Extended Player class."""
caching = True

def set_model(self, model_path):
"""Sets the player's model."""
# Make sure the model is precached before trying to set it.
engine_server.precache_model(model_path)
# Set the model.
self._set_model(model_path)

@cached_property
def _set_model(self):
return MemberFunction(
manager,
DataType.VOID,
self.make_virtual_function(
SET_MODEL_OFFSET,
Convention.THISCALL,
(DataType.POINTER, DataType.STRING),
DataType.VOID
),
self
)
ImageImageImageImageImage
User avatar
Kami
Global Moderator
Posts: 263
Joined: Wed Aug 15, 2012 1:24 am
Location: Germany

Re: [HL2DM] set_model plays animation

Postby Kami » Tue Jan 26, 2021 5:18 am

Awesome, thank you!
User avatar
PEACE
Member
Posts: 50
Joined: Mon Oct 12, 2020 1:13 pm

Re: [HL2DM] set_model plays animation

Postby PEACE » Tue Jan 26, 2021 6:56 pm

Smiles ,
Both you guys are in my book :)

Return to “Plugin Development Support”

Who is online

Users browsing this forum: No registered users and 44 guests