Вопрос по SubModel в reapi.

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
61
Реакции
24
Помог
1 раз(а)
Здравствуйте, прочитал тему https://dev-cs.ru/threads/97/ создали 2 модели в одной.
Прикрепить не получается, но принцип, две модели, 1543945000344.png в одной, переключаются через саб модель.
Далее модифицировал плагин. https://dev-cs.ru/resources/103/ добавив в него
Следующее.
Код:
new const g_eModelsData[][player_models] =
{
    {"TT", "TT", (ADMIN_LEVEL_D|ADMIN_LEVEL_G|ADMIN_LEVEL_E)},
    {"", "", -1}
};
new g_iTTModelIndex[sizeof(g_eModelsData)], g_iCTModelIndex[sizeof(g_eModelsData)];

public SetClientUserInfoModel(const pPlayer, infobuffer[], szNewModel[])
{
    new iArrayIndex = get_user_model_by_flag(get_user_flags(pPlayer));

    if(!IsValidArrayIndex(iArrayIndex))
        return HC_CONTINUE;
    
    switch(get_member(pPlayer, m_iTeam))
    {
        case TEAM_TERRORIST:
        {
            set_member(pPlayer, m_modelIndexPlayer, g_iTTModelIndex[iArrayIndex]);
            set_entvar(pPlayer, var_body, 0);
            SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szTTModel]);
        }
        case TEAM_CT:
        {
            set_member(pPlayer, m_modelIndexPlayer, g_iCTModelIndex[iArrayIndex]);
            set_entvar(pPlayer, var_body, 1);
            SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szCTModel]);
        }
        default: return HC_CONTINUE;
    }
    return HC_CONTINUE;
}
И в итоге, модель за кт, устанавливается и террористу и менту. В скиншоте, это SubModel 2. (Body 1) 1543945525339.png Эта. При смерти террориста, его моделька меняется на модельку которая и нужна.то SubModel 1. (Body 0). Если убрать у тт set_entvar(pPlayer, var_body, 0); эту строку. ничего не меняется, все равно он играет с моделькой за ментов, пока не умрет.
В чем может быть проблема, куда копать?
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
Может боди в след.фрейме ставить?
 
Сообщения
61
Реакции
24
Помог
1 раз(а)
fl0wer, Так что ли?)
Код:
public SetClientUserInfoModel(const pPlayer, infobuffer[], szNewModel[])
{
    new iArrayIndex = get_user_model_by_flag(get_user_flags(pPlayer));

    if(!IsValidArrayIndex(iArrayIndex))
        return HC_CONTINUE;
    
    switch(get_member(pPlayer, m_iTeam))
    {
        case TEAM_TERRORIST:
        {
            set_member(pPlayer, m_modelIndexPlayer, g_iTTModelIndex[iArrayIndex]);
            SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szTTModel]);
            return HC_CONTINUE;
        }
        case TEAM_CT:
        {
            set_member(pPlayer, m_modelIndexPlayer, g_iCTModelIndex[iArrayIndex]);
            SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szCTModel]);
            return HC_CONTINUE;
        }
        default: return HC_CONTINUE;
    }
    switch(get_member(pPlayer, m_iTeam))
    {
        case TEAM_TERRORIST:
        {
            set_entvar(pPlayer, var_body, 0);
        }
        case TEAM_CT:
        {
            set_entvar(pPlayer, var_body, 1);
        }
        default: return HC_CONTINUE;
    }
    return HC_CONTINUE;
}
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
Это не след.фрейм. И у Вас код до туда не дойдет. Нужно RequestFrame.
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
fl0wer, а если в посте засетать? Должно ведь сменить по идее
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
fantom, можно и в посте, если хочешь его регать)
 
Сообщения
61
Реакции
24
Помог
1 раз(а)
fl0wer, к сожалению не знаю как это реализовать, тот код что я кинул, на удивление выставил модельки, но за ст выставил модельку тт, а за тт выставил модельку ст, и изменение значения вар боди между собой, не изменило ничего)
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
Are_you_ready, я не скриптер, но думаю что как-то так:
Код:
public SetClientUserInfoModel(const pPlayer, infobuffer[], szNewModel[])
{
    new iArrayIndex = get_user_model_by_flag(get_user_flags(pPlayer));

    if(!IsValidArrayIndex(iArrayIndex))
        return HC_CONTINUE;

    switch(get_member(pPlayer, m_iTeam))
    {
        case TEAM_TERRORIST:
        {
            set_member(pPlayer, m_modelIndexPlayer, g_iTTModelIndex[iArrayIndex]);
            SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szTTModel]);

            RequestFrame("@NextFrame_SetBody", iPlayer);
        }
        case TEAM_CT:
        {
            set_member(pPlayer, m_modelIndexPlayer, g_iCTModelIndex[iArrayIndex]);
            SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szCTModel]);

            RequestFrame("@NextFrame_SetBody", iPlayer);
        }
        default: return HC_CONTINUE;
    }

    return HC_CONTINUE;
}

@NextFrame_SetBody(iPlayer)
{
    set_entvar(iPlayer, var_body, TeamName:get_member(iPlayer, m_iTeam) == TEAM_TERRORIST ? 0 : 1);
}
 
Сообщения
61
Реакции
24
Помог
1 раз(а)
fl0wer, Спасибо большое, и правда данный вариант сработал. Но появился небольшой баг. Если дропнуть бомбу, все норм, а вот берешь ее обратно и моделька у тт меняется на модельку ст...Выбрасываешь бомбу, ты снова тт. В начале раунда появившись с бомбой, моделька нормальная, нужная. то есть за тт, моделька тт.
 
Последнее редактирование:
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
Are_you_ready, ну потому что бомба на спине это боди 1 у обычной модельки и оно меняется в хуках связанных с бомбой.
 
Сообщения
61
Реакции
24
Помог
1 раз(а)
fl0wer, Спасибо за помощь, тогда примерно понял куда копать. Очень помогли!)
Тему можно закрывать, ответ на вопрос в посте номер 8.
 
Статус
В этой теме нельзя размещать новые ответы.

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

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