Русское сообщество по скриптингу

Что замедляет анимацию

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Что замедляет анимацию

Сообщение Mandar1n » 12 янв 2018, 00:37

Что из этого замедляет анимацию модели? Как сделать так, чтобы скорость анимации не зависела от скорости полёта

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>

new para_ent[33]

public 
plugin_init()
{
    
register_plugin("3""2""1")

    
register_event("ResetHUD""newSpawn""be")
    
register_event("DeathMsg""death_event""a")
}

public 
plugin_natives()
{
    
set_native_filter("native_filter")
}

public 
native_filter(const name[], indextrap)
{
    if (!
trap) return PLUGIN_HANDLED
    
return PLUGIN_CONTINUE
}

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

public 
client_connect(id)
{
    
parachute_reset(id)
}

public 
client_disconnect(id)
{
    
parachute_reset(id)
}

public 
death_event()
{
    new 
id read_data(2)
    
parachute_reset(id)
}

parachute_reset(id)
{
    if(
para_ent[id] > 0
    {
        if (
is_valid_ent(para_ent[id])) 
        {
            
remove_entity(para_ent[id])
        }
    }

    if(
is_user_alive(id)) set_user_gravity(id1.0)
    
para_ent[id] = 0
}

public 
newSpawn(id)
{
    if(
para_ent[id] > 0
    {
        
remove_entity(para_ent[id])
        
set_user_gravity(id1.0)
        
para_ent[id] = 0
    
}
}

public 
client_PreThink(id)
{
    if(!
is_user_alive(id)) return
    
    new 
Float:fallspeed 100 * -1.0
    
new Float:frame
    
new button get_user_button(id)
    new 
oldbutton get_user_oldbutton(id)
    new 
flags get_entity_flags(id)
    if(
para_ent[id] > && (flags FL_ONGROUND)) 
    {
        if(
get_user_gravity(id) == 0.1set_user_gravity(id1.0)
        {
            if(
entity_get_int(para_ent[id],EV_INT_sequence) != 2
            {
                
entity_set_int(para_ent[id], EV_INT_sequence2)
                
entity_set_int(para_ent[id], EV_INT_gaitsequence1)
                
entity_set_float(para_ent[id], EV_FL_frame0.0)
                
entity_set_float(para_ent[id], EV_FL_fuser10.0)
                
entity_set_float(para_ent[id], EV_FL_animtime0.0)
                
entity_set_float(para_ent[id], EV_FL_framerate0.0)
                return
            }
            
frame entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0
            entity_set_float
(para_ent[id],EV_FL_fuser1,frame)
            
entity_set_float(para_ent[id],EV_FL_frame,frame)
            if(
frame 254.0
            {
                
remove_entity(para_ent[id])
                
para_ent[id] = 0
            
}
            else 
            {
                
remove_entity(para_ent[id])
                
set_user_gravity(id1.0)
                
para_ent[id] = 0
            
}
            return
        }
    }
    if (
button IN_USE
    {
        new 
Float:velocity[3]
        
entity_get_vector(idEV_VEC_velocityvelocity)
        if(
velocity[2] < 0.0
        {
            if(
para_ent[id] <= 0
            {
                
para_ent[id] = create_entity("info_target")
                if(
para_ent[id] > 0
                {
                    
entity_set_string(para_ent[id],EV_SZ_classname,"parachute")
                    
entity_set_edict(para_ent[id], EV_ENT_aimentid)
                    
entity_set_edict(para_ent[id], EV_ENT_ownerid)
                    
entity_set_int(para_ent[id], EV_INT_movetypeMOVETYPE_FOLLOW)
                    
entity_set_model(para_ent[id], "models/flypvl.mdl")
                    
entity_set_int(para_ent[id], EV_INT_sequence0)
                    
entity_set_int(para_ent[id], EV_INT_gaitsequence1)
                    
entity_set_float(para_ent[id], EV_FL_frame0.0)
                    
entity_set_float(para_ent[id], EV_FL_fuser10.0)
                }
            }
            if(
para_ent[id] > 0
            {
                
entity_set_int(idEV_INT_sequence3)
                
entity_set_int(idEV_INT_gaitsequence1)
                
entity_set_float(idEV_FL_frame1.0)
                
entity_set_float(idEV_FL_framerate1.0)
                
set_user_gravity(id0.1)
                
velocity[2] = (velocity[2] + 40.0 fallspeed) ? velocity[2] + 40.0 fallspeed
                entity_set_vector
(idEV_VEC_velocityvelocity)
                if(
entity_get_int(para_ent[id],EV_INT_sequence) == 0
                {
                    
frame entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0
                    entity_set_float
(para_ent[id],EV_FL_fuser1,frame)
                    
entity_set_float(para_ent[id],EV_FL_frame,frame)
                    if (
frame 100.0
                    {
                        
entity_set_float(para_ent[id], EV_FL_animtime0.0)
                        
entity_set_float(para_ent[id], EV_FL_framerate0.4)
                        
entity_set_int(para_ent[id], EV_INT_sequence1)
                        
entity_set_int(para_ent[id], EV_INT_gaitsequence1)
                        
entity_set_float(para_ent[id], EV_FL_frame0.0)
                        
entity_set_float(para_ent[id], EV_FL_fuser10.0)
                    }
                }
            }
        }
        else if(
para_ent[id] > 0
        {
            
remove_entity(para_ent[id])
            
set_user_gravity(id1.0)
            
para_ent[id] = 0
        
}
    }
    else if((
oldbutton IN_USE) && para_ent[id] > 
    {
        
remove_entity(para_ent[id])
        
set_user_gravity(id1.0)
        
para_ent[id] = 0
    
}

И так, чтобы анимация была цикличная(повторялась)

Тема перемещена из раздела "Вопросы по AMXX и его плагинам" // Subb98
Аватара пользователя
Mandar1n
 
Сообщения: 133
Зарегистрирован: 08 дек 2013, 14:08
Благодарил (а): 38 раз.
Поблагодарили: 4 раз.
Языки программирования: Counter-Strike 1.6

Re: Что замедляет анимацию

Сообщение артист666 » 15 янв 2018, 07:56

Код: Выделить всё
entity_set_float(para_ent[id], EV_FL_framerate0.4
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Что замедляет анимацию

Сообщение Mandar1n » 15 янв 2018, 17:33

артист666 писал(а):
Код: Выделить всё
entity_set_float(para_ent[id], EV_FL_framerate, 0.4)

А как задать цикл? Чтобы анимация повторялась
Аватара пользователя
Mandar1n
 
Сообщения: 133
Зарегистрирован: 08 дек 2013, 14:08
Благодарил (а): 38 раз.
Поблагодарили: 4 раз.
Языки программирования: Counter-Strike 1.6

Re: Что замедляет анимацию

Сообщение Subb98 » 15 янв 2018, 19:38

Mandar1n, если нужно, чтобы для этой модели конкретная анимация всегда повторялась, то проще отредактировать саму модель, чем давать лишнюю нагрузку кодом.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Что замедляет анимацию

Сообщение Mandar1n » 18 янв 2018, 19:12

Subb98 писал(а):Mandar1n, если нужно, чтобы для этой модели конкретная анимация всегда повторялась, то проще отредактировать саму модель, чем давать лишнюю нагрузку кодом.

Ну так плагин же вроде ограничивает анимацию. Модель длится 1 секунду и дальше по циклу. Вот плагин делает так, что парашют производит анимацию только секунду, а хотелось бы, чтобы повторялась и не была медленной.
Есть модель крыльев, который пархают
Аватара пользователя
Mandar1n
 
Сообщения: 133
Зарегистрирован: 08 дек 2013, 14:08
Благодарил (а): 38 раз.
Поблагодарили: 4 раз.
Языки программирования: Counter-Strike 1.6


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 11