Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Oyuncu Modelinde Animasyon Oynatma

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler


Konu Sahibi
xdferlesh1
Mesajlar: 1322
Kayıt: Sal Ağu 16, 2016 5:37 pm
Konum: Istanbul/Adana
İletişim:

Oyuncu Modelinde Animasyon Oynatma

Mesaj gönderen xdferlesh1 »

Mesela şoyle bırsey ıstıyorum Oyuncu zıpladıgında ben o modeldekı anımasyonu harekete gecırecegım bır kod.

@Yek'-ta
@seypa
@amad
@Fatih ~ EjderYa

Alttakı kod sadece Oyuncunun Sılahlarındakı anımasyonu harekete gecırıyor

Kod: Tümünü seç

stock UTIL_PlayerAnimation(const iPlayer, const szAnim[])
{
    #define ACT_RANGE_ATTACK1 28

    // Linux extra offsets
    #define linux_diff_animating 4
    #define linux_diff_player 5

    // CBaseAnimating
    #define m_flFrameRate 36
    #define m_flGroundSpeed 37
    #define m_flLastEventCheck 38
    #define m_fSequenceFinished 39
    #define m_fSequenceLoops 40

    // CBaseMonster
    #define m_Activity 73
    #define m_IdealActivity 74

    // CBasePlayer
    #define m_flLastAttackTime 220

    new iAnimDesired, Float: flFrameRate, Float: flGroundSpeed, bool: bLoops;
        
    if((iAnimDesired = lookup_sequence(iPlayer, szAnim, flFrameRate, bLoops, flGroundSpeed)) == -1)
    {
        iAnimDesired = 0;
    }
    
    new Float: flGameTime = get_gametime();

    set_pev(iPlayer, pev_frame, 0.0);
    set_pev(iPlayer, pev_framerate, 1.0);
    set_pev(iPlayer, pev_animtime, flGameTime);
    set_pev(iPlayer, pev_sequence, iAnimDesired);
    
    set_pdata_int(iPlayer, m_fSequenceLoops, bLoops, linux_diff_animating);
    set_pdata_int(iPlayer, m_fSequenceFinished, 0, linux_diff_animating);
    
    set_pdata_float(iPlayer, m_flFrameRate, flFrameRate, linux_diff_animating);
    set_pdata_float(iPlayer, m_flGroundSpeed, flGroundSpeed, linux_diff_animating);
    set_pdata_float(iPlayer, m_flLastEventCheck, flGameTime , linux_diff_animating);
    
    set_pdata_int(iPlayer, m_Activity, ACT_RANGE_ATTACK1, linux_diff_player);
    set_pdata_int(iPlayer, m_IdealActivity, ACT_RANGE_ATTACK1, linux_diff_player);
    set_pdata_float(iPlayer, m_flLastAttackTime, flGameTime , linux_diff_player);
}

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

seypa
Mesajlar: 1389
Kayıt: Cmt Ağu 13, 2016 12:49 pm
Konum: Pendik/İstanbul
İletişim:

Oyuncu Modelinde Animasyon Oynatma

Mesaj gönderen seypa »


Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
xdferlesh1
Mesajlar: 1322
Kayıt: Sal Ağu 16, 2016 5:37 pm
Konum: Istanbul/Adana
İletişim:

Oyuncu Modelinde Animasyon Oynatma

Mesaj gönderen xdferlesh1 »

Reapıden baska modul yokmu bunu kullanabılmem ıcın

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

seypa
Mesajlar: 1389
Kayıt: Cmt Ağu 13, 2016 12:49 pm
Konum: Pendik/İstanbul
İletişim:

Oyuncu Modelinde Animasyon Oynatma

Mesaj gönderen seypa »

Orpheu yada reapi başka care yok.

İleri düzey kullanıcılar için

Kod: Tümünü seç

void CBasePlayer::SetAnimation( PLAYER_ANIM playerAnim )
{
	int animDesired;
	float speed;
	char szAnim[64];
 
	speed = pev->velocity.Length2D();
 
	if (pev->flags & FL_FROZEN)
	{
		speed = 0;
		playerAnim = PLAYER_IDLE;
	}
 
	switch (playerAnim) 
	{
	case PLAYER_JUMP:
		m_IdealActivity = ACT_HOP;
		break;
	
	case PLAYER_SUPERJUMP:
		m_IdealActivity = ACT_LEAP;
		break;
	
	case PLAYER_DIE:
		m_IdealActivity = ACT_DIESIMPLE;
		m_IdealActivity = GetDeathActivity( );
		break;
 
	case PLAYER_ATTACK1:	
		switch( m_Activity )
		{
		case ACT_HOVER:
		case ACT_SWIM:
		case ACT_HOP:
		case ACT_LEAP:
		case ACT_DIESIMPLE:
			m_IdealActivity = m_Activity;
			break;
		default:
			m_IdealActivity = ACT_RANGE_ATTACK1;
			break;
		}
		break;
	case PLAYER_IDLE:
	case PLAYER_WALK:
		if ( !FBitSet( pev->flags, FL_ONGROUND ) && (m_Activity == ACT_HOP || m_Activity == ACT_LEAP) )	// Still jumping
		{
			m_IdealActivity = m_Activity;
		}
		else if ( pev->waterlevel > 1 )
		{
			if ( speed == 0 )
				m_IdealActivity = ACT_HOVER;
			else
				m_IdealActivity = ACT_SWIM;
		}
		else
		{
			m_IdealActivity = ACT_WALK;
		}
		break;
	}
 
	switch (m_IdealActivity)
	{
	case ACT_HOVER:
	case ACT_LEAP:
	case ACT_SWIM:
	case ACT_HOP:
	case ACT_DIESIMPLE:
	default:
		if ( m_Activity == m_IdealActivity)
			return;
		m_Activity = m_IdealActivity;
 
		animDesired = LookupActivity( m_Activity );
		// Already using the desired animation?
		if (pev->sequence == animDesired)
			return;
 
		pev->gaitsequence = 0;
		pev->sequence		= animDesired;
		pev->frame			= 0;
		ResetSequenceInfo( );
		return;
 
	case ACT_RANGE_ATTACK1:
		if ( FBitSet( pev->flags, FL_DUCKING ) )	// crouching
			strcpy( szAnim, "crouch_shoot_" );
		else
			strcpy( szAnim, "ref_shoot_" );
		strcat( szAnim, m_szAnimExtention );
		animDesired = LookupSequence( szAnim );
		if (animDesired == -1)
			animDesired = 0;
 
		if ( pev->sequence != animDesired || !m_fSequenceLoops )
		{
			pev->frame = 0;
		}
 
		if (!m_fSequenceLoops)
		{
			pev->effects |= EF_NOINTERP;
		}
 
		m_Activity = m_IdealActivity;
 
		pev->sequence		= animDesired;
		ResetSequenceInfo( );
		break;
 
	case ACT_WALK:
		if (m_Activity != ACT_RANGE_ATTACK1 || m_fSequenceFinished)
		{
			if ( FBitSet( pev->flags, FL_DUCKING ) )	// crouching
				strcpy( szAnim, "crouch_aim_" );
			else
				strcpy( szAnim, "ref_aim_" );
			strcat( szAnim, m_szAnimExtention );
			animDesired = LookupSequence( szAnim );
			if (animDesired == -1)
				animDesired = 0;
			m_Activity = ACT_WALK;
		}
		else
		{
			animDesired = pev->sequence;
		}
	}
 
	if ( FBitSet( pev->flags, FL_DUCKING ) )
	{
		if ( speed == 0)
		{
			pev->gaitsequence	= LookupActivity( ACT_CROUCHIDLE );
			// pev->gaitsequence	= LookupActivity( ACT_CROUCH );
		}
		else
		{
			pev->gaitsequence	= LookupActivity( ACT_CROUCH );
		}
	}
	else if ( speed > 220 )
	{
		pev->gaitsequence	= LookupActivity( ACT_RUN );
	}
	else if (speed > 0)
	{
		pev->gaitsequence	= LookupActivity( ACT_WALK );
	}
	else
	{
		// pev->gaitsequence	= LookupActivity( ACT_WALK );
		pev->gaitsequence	= LookupSequence( "deep_idle" );
	}
 
 
	// Already using the desired animation?
	if (pev->sequence == animDesired)
		return;
 
	//ALERT( at_console, "Set animation to %d\n", animDesired );
	// Reset to first frame of desired animation
	pev->sequence		= animDesired;
	pev->frame			= 0;
	ResetSequenceInfo( );
}
 

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
xdferlesh1
Mesajlar: 1322
Kayıt: Sal Ağu 16, 2016 5:37 pm
Konum: Istanbul/Adana
İletişim:

Oyuncu Modelinde Animasyon Oynatma

Mesaj gönderen xdferlesh1 »

boyle stock halında yok mudur hıc ornegın Oyuncu dogunca xx anımasyonunu kolayca oynatabılecegım fakemeta'dan

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

seypa
Mesajlar: 1389
Kayıt: Cmt Ağu 13, 2016 12:49 pm
Konum: Pendik/İstanbul
İletişim:

Oyuncu Modelinde Animasyon Oynatma

Mesaj gönderen seypa »

Hacım zaten reAPİ de nativesi var neden işi zora sokuyoruz

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

seypa
Mesajlar: 1389
Kayıt: Cmt Ağu 13, 2016 12:49 pm
Konum: Pendik/İstanbul
İletişim:

Oyuncu Modelinde Animasyon Oynatma

Mesaj gönderen seypa »

Sen model animasyonu birisine cizdir veya hazır bul ben hallederim

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
xdferlesh1
Mesajlar: 1322
Kayıt: Sal Ağu 16, 2016 5:37 pm
Konum: Istanbul/Adana
İletişim:

Oyuncu Modelinde Animasyon Oynatma

Mesaj gönderen xdferlesh1 »

@seypa ornek olarak verebılırmısın modelın sequencesını bloke edıp yerıne kendı koyacağımız sequenceyı eklemeyı nasıl yapabılırız mesela oyuncu zıplarken kendı player modelının anımasyonunu kaldırıp yerıne bızım olusturdugumuz anımasyonu oynatmayı

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
xdferlesh1
Mesajlar: 1322
Kayıt: Sal Ağu 16, 2016 5:37 pm
Konum: Istanbul/Adana
İletişim:

Oyuncu Modelinde Animasyon Oynatma

Mesaj gönderen xdferlesh1 »

@Fatih ~ EjderYa
@Yek'-ta yardımcı olabılır mısınız

Link:
Linklerini gizle
Linki Kopyala
Cevapla