Emotions sprite - расположение pickup

Сообщения
453
Реакции
255
Помог
9 раз(а)
Добрый день.

Руководствуясь данной статьей - Все о создании спрайтов
Запилил пару некудышных тестовых спрайтов для использования в Emotions [Modular]

Все спрайты сидят ровно на пузе, не над головой - прошу подсказать в чем дело, и как не столкнуться с этим в дальнейшем
Пробовал компилировать спрайт с разными параметрами, установить спрайту Origin (разные значение), результата не увидел

Пока думаю попробовать установку с помощью SVC_TEMPENTITY и двигать за игроком, пока спрайт существует.

Тестовый спрайт с 8 фреймами прикрепил
 

Вложения

  • 5.7 KB Просмотры: 13
Сообщения
453
Реакции
255
Помог
9 раз(а)
Решил пока-что костылями.

спрятано в ящик:
Код:
//set_entvar(iEntity, var_movetype, MOVETYPE_FOLLOW);
//set_entvar(iEntity, var_aiment, id);
костыли:
Код:
    new Float: flOrigin[3];
    get_entvar(id, var_origin, flOrigin);
    flOrigin[2] += 30.0;

    entity_set_origin(iEntity, flOrigin);

    set_entvar(iEntity, var_nextthink, get_gametime());

    set_task(EMOTION_SPRITE_UP_DELAY - 0.5, "ThinkRemove", iEntity);
Код:
register_think(EMOTION_SPRITE_UP_CLASSNAME, "ThinkEntity");

public ThinkEntity(iEntity) {
    new id = get_entvar(iEntity, var_owner);

    if (!is_user_connected(id))
    {
        return;
    }

    new Float: flOrigin[3];
    get_entvar(id, var_origin, flOrigin);
    flOrigin[2] += 30.0;

    entity_set_origin(iEntity, flOrigin);

    set_entvar(iEntity, var_nextthink, get_gametime());
}
 
Сообщения
1,668
Реакции
1,495
Помог
24 раз(а)
Там где-то в спрайте можно оффсет указать
 
Сообщения
453
Реакции
255
Помог
9 раз(а)
Завтра посмотрю, спасибо. Предварительно наобум заяндексил, пока ничо
1636322834125.png
 
Сообщения
658
Реакции
230
Помог
11 раз(а)
Код:
public set_user_sprite(id, Float:vecOrigin[3], iFrame[], Sprites[])
{
    new iEnt = rg_create_entity("info_target", true);
    if(!is_entity(iEnt))
        return PLUGIN_CONTINUE;
        
    set_entvar(iEnt, var_classname, SpritesClass);
    set_entvar(iEnt, var_scale, 0.35)
       set_entvar(iEnt, var_framerate, 0.0)
    set_entvar(iEnt, var_frame, str_to_float(iFrame));
    set_entvar(iEnt, var_origin, vecOrigin);
    engfunc(EngFunc_SetModel, iEnt, Sprites);
    set_entvar(iEnt, var_solid, SOLID_NOT);
    set_entvar(iEnt, var_movetype, MOVETYPE_NONE);
    
    g_iUserSpites[id] = true;
    new iEntIndex[2];
    iEntIndex[0] = id;
    iEntIndex[1] = iEnt;
    SetThink(iEnt, "Think_Origin", iEntIndex, sizeof(iEntIndex));
    set_entvar(iEnt, var_nextthink, get_gametime() + 0.01);
    
    
    new iTimeEnt = rg_create_entity("info_target", true);
    
    SetThink(iTimeEnt, "Think_RemoveEnt", iEntIndex, sizeof(iEntIndex));
    set_entvar(iTimeEnt, var_nextthink, get_gametime() + REMOVETIME);
    
    return PLUGIN_CONTINUE;
}


public Think_RemoveEnt(iEnt, iParam[])
{
    if(is_entity(iEnt))
    {
        new pId = iParam[0];
        new iSpritesEnt = iParam[1];
    
        if(is_user_connected(pId))
            g_iUserSpites[pId] = false;
        
        if(is_entity(iSpritesEnt))
        {
            set_entvar(iSpritesEnt, var_flags, get_entvar(iEnt, var_flags) | FL_KILLME)
            set_entvar(iSpritesEnt, var_nextthink, get_gametime() + 0.1);
        }
        
        
        set_entvar(iEnt, var_flags, get_entvar(iEnt, var_flags) | FL_KILLME)
        set_entvar(iEnt, var_nextthink, get_gametime() + 0.1);
    }
}

public Think_Origin(iEnt, iParam[])
{
    if(is_entity(iEnt))
    {
        new Float:vecOrigin[3];
        new pId = iParam[0];
        
        get_entvar(pId, var_origin, vecOrigin);
        vecOrigin[2] += 50.0;
        set_entvar(iEnt, var_origin, vecOrigin);
        
        set_entvar(iEnt, var_nextthink, get_gametime() + 0.01);
    }
}
 
Сообщения
94
Реакции
10
Флуд
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
@malniata?‍♂
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу