Как использовать иную анимацию оружия в моделе игрока?
Как использовать иную анимацию оружия в моделе игрока?

В данной статье я расскажу о способе как можно поставить любую кастомную анимацию оружия на моделях игрока

Для начала, чтобы использовать кастомные анимации, нужно включить индексирование моделей. Есть два варианта для этого.
Если вы используете модификацию Zombie Plague 4.3 (и новее):

1. Открываем файл zombieplague.ini. Местонахождение: .../addons/amxmodx/configs/zombieplague.ini
2. Находим в конце файла данную строку 

SET MODELINDEX OFFSET = 0
3. Заменяем 0 на 1
4. Сохраняем. Больше к этому не возвращаемся.


Если вы используете любую другую модификацию:

1. Качаем данный плагин: https://forums.alliedmods.net/showthread.php?t=161255
2. Открываем исходный файл плагина
3. Находим данную строку
//#define SET_MODELINDEX_OFFSET
4. Надо раскомментировать данный макрос. Достаточно убрать просто // в начале строки, получится вот так:
#define SET_MODELINDEX_OFFSET
5. Сохраняем. Устанавливаем его на сервер.


Теперь нужно найти анимации для моделей. В моделях из игры Counter-Strike Online / Counter-Strike Nexon Zombies уже есть достаточно много интересных анимаций для оружий. Открываем модель и смотрим сами анимации и их названия.

При открытии модели, смотрим весь список анимаций и выбираем те, что нужны:


На скриншоте я выделил кастомные анимации. Как мы видим у них названия точно такие же, как и у обычных анимаций, однако в конце названия анимации написано название анимации, то есть hammer или m134. Это нам и нужно.

Вот выбрал я к примеру ref_aim_hammer и выглядит оно вот так:



Теперь переходим к основной части гайда. Нужно добавить код, чтобы как раз таки менялись анимации у нужного вам оружия. Открываем плагин вашего оружия и находим функцию, в которой идёт установка моделей оружия (Это Ham_Item_Deploy или CurWeapon), у меня в плагине это

RegisterHam(Ham_Item_Deploy, "weapon_knife", "CKnife__Item_Deploy_Post", true);

Ищем функцию CKnife__Item_Deploy_Post в плагине. Я нашёл, далее добавляем после наших проверок данный код:

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

    // CBasePlayerItem
    #define m_pPlayer 41

    // CBasePlayer
    #define m_szAnimExtention 492

    set_pdata_string(ИНДЕКС_ИГРОКА, m_szAnimExtention * 4, "НАЗВАНИЕ_АНИМАЦИИ", -1, linux_diff_player * linux_diff_animating);

В ИНДЕКС_ИГРОКА вписываем индекс игрока. У меня же это iPlayer, у вас может быть id / player / pPlayer / index.
В НАЗВАНИЕ_АНИМАЦИИ берём именно то, что указано в конце анимации в модельке игрока. То есть hammer или m134.

У меня получился такой код:

public CKnife__Item_Deploy_Post(iItem)
{
    // Linux extra offsets
    #define linux_diff_weapon 4
    #define linux_diff_animating 4
    #define linux_diff_player 5

    // CBasePlayerItem
    #define m_pPlayer 41

    // CBasePlayer
    #define m_szAnimExtention 492

    static iPlayer; iPlayer = get_pdata_cbase(iItem, m_pPlayer, linux_diff_weapon);
    if(zp_get_user_zombie(iPlayer)) return;

    set_pev(iPlayer, pev_viewmodel2, KNIFE_VIEW_MODEL);
    set_pev(iPlayer, pev_weaponmodel2, KNIFE_PLAYER_MODEL);

    set_pdata_string(iPlayer, m_szAnimExtention * 4, "hammer", -1, linux_diff_player * linux_diff_animating);
}

Теперь же, в моём случае, когда я достану нож, у меня будет Хаммер с анимацией не ..._knife, а с анимацией ..._hammer. Все стандартные анимации ..._knife заменены на ..._hammer.
Также, есть сток, чтобы вызвать нужную вам анимацию в нужный для вас момент. К примеру, у вас сделана кастомная атака на правую кнопку мыши у какого нибудь огнестрельного оружия. Добавляем данный сток:

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);
}
Теперь же, находим нужный нам момент, когда нужно вызвать анимацию и используем данный сток:

    UTIL_PlayerAnimation(iPlayer, "crouch_shoot_m134");
В данном же случае, нужно вписывать полное название анимации. Также iPlayer заменяете на свой индекс игрока и crouch_shoot_m134 на свою анимацию.
Вот в принципе и всё.

Хотелось бы добавить, при использовании индексации моделей, теперь у вас будут пофикшены хитбоксы. На примере, возьмём данную модель:



При выключенной индексации моделей, хитбоксы у этой модели будут кривыми, потому что модель большая и будут использоваться хитбоксы от стандартных моделей, то есть вы будете стрелять в голову - вы не будете попадать по голове, пули будут проходить сквозь модель и не будет проходить также урон, однако если будете стрелять в тело, будет засчитываться попадание в голову. При включенной индексации моделей хитбоксы будут правильными и такой проблемы не будет.



Можно скачать мой плагин с заменой модели ножа на Hammer и заменой анимации на ..._hammer

У вас нет доступа к скачиванию файлов с нашего сервера

Пожертвовать Вы можете сделать автору xUnicorn, подарок в виде пожертвования на его электронную копилку ;)


Комментариев 6
  1. Universe
    Годно, Олег лох кста лайк
    Why i'm not from Ukraine?
    -------------------------------------------------------------------------------------------------------------------------
    Группа VK: vk.com/forumbz
    • 21 декабря 2018 23:13
  2. kopS
    kopS
    • +1
    а как сделать так чтоб анимация хаммера работала только у випов и админов??
    • 20 января 2019 22:16
    1. )_NEO_(
      Простая проверка на флаг 
      Людям страдающих оптимизацией старательно не рекомендую смотреть мой код =)
      By NEO
      • 24 января 2019 18:39
  3. akashi
    akashi
    • 0
    what a nice tutorial dude that really helpfull for us < 3 + karma
    btw i was looking for tut like that for 3 year ago but finaly i know how to set that animation to player model.
    and another thing will be helpfull if you make another tut how to put animation in another player model example if
    i have my normal model and i want to put new animation in that model like hammer crouch ref .... and sorry for my bad english
    • 23 января 2019 04:25
  4. 3RA1N
    3RA1N
    • 0
    Статья Конечно полезна для начинающих моделиров, но хорошо бы было еще модлью поделиться!
    • 24 января 2019 16:55
    1. )_NEO_(
      Хз как тут но я в интернете нашел такую модель и сюда выложил а так да их можно найти но сложно (https://cs-fade.ru/counter-strike/models/lyudey/1280-model-igroka-perfect-admi
      n-dlya-cs-16.html)
      Людям страдающих оптимизацией старательно не рекомендую смотреть мой код =)
      By NEO
      • 24 января 2019 18:38
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Сайт был обновлен, нажми CTRL+F5
Задать вопрос
BuB9neC
BuB9neC
Сегодня в 17:33:36

Олег, ну ты надеюсь помнишь, что ты должен поставить лайк? 011-suspicious
3RA1N
3RA1N
17 февраля 2019

Mort3m,
настроения нет
Mort3m
Mort3m
17 февраля 2019

Цитата: 3RA1N


Дарова! Когда новый рескин!
3RA1N
3RA1N
17 февраля 2019

привет бандиты
Mort3m
Mort3m
15 февраля 2019

MayTov,
а ты тут на что-то влиял?
IIyLLIaPa
IIyLLIaPa
15 февраля 2019

MayTov,
все стабильно
MayTov
MayTov
15 февраля 2019

Хаё-у ребят,чё как без меня?
IIyLLIaPa
IIyLLIaPa
15 февраля 2019

Цитата: edik92


статью на сайте смотреть не пытался?
r1chicorejz
r1chicorejz
15 февраля 2019

BuB9neC, хватит выёбыватся!
BuB9neC
BuB9neC
15 февраля 2019

Советую обратиться к Власенко, наёбет быстро и качественно!
BuB9neC
BuB9neC
15 февраля 2019

edik92, это умеют только гуру.
NLess
NLess
15 февраля 2019

edik92
Поищи в статьях, или забей поиске, Как добавить способности ножам в ZP 4.3, если найдёт.
edik92
edik92
15 февраля 2019

Как добавить способности ножам в ZP 4.3?
DeMNiX
DeMNiX
13 февраля 2019

kHRYSTAL,
хаха, ты не один такой
у меня тут тоже фанат появился
kHRYSTAL
kHRYSTAL
13 февраля 2019

ra1n, ути какой, взял все мои посты задизлайкал, молодец, заведи ещё пару фейков и ещё нахерачь
NLess
NLess
13 февраля 2019

Я посмотрел разрешение на чтение и и запись всё доступна, запускал с админстратора, так я и не понял в чём причина
DeMNiX
DeMNiX
13 февраля 2019

NLess,
да
kolok1990
kolok1990
12 февраля 2019

Mort3m,
097-happy-1
Mort3m
Mort3m
12 февраля 2019

JustProOnline,
ты что ЕбАнУтЫй?
JustProOnline
JustProOnline
12 февраля 2019

куплю пирог!!! писать в лс!!!
NLess
NLess
12 февраля 2019

Я скажу что это не из за плагина, ещё не сохраняются lvl система, плагин ZP Bank Ultimate v1.2, не касается плагинов, дело в другом я не знаю что это
kolok1990
kolok1990
12 февраля 2019

привет всем 086-happy-4
DeMNiX
DeMNiX
12 февраля 2019

в плагине он может быть под стимайди, айпи или же никнейму
DeMNiX
DeMNiX
12 февраля 2019

тип сохранения уточни
NLess
NLess
11 февраля 2019

У меня Steam версия игры, в игре пишет "Авто сохранение завершена" иду в data nvault 0 кб, ничего не сохраняет, может разрешение на сохранение надо, не знаю?
DeMNiX
DeMNiX
11 февраля 2019

в dproto hashsalt для начала проверить
NLess
NLess
10 февраля 2019

Первый вопрос исправил, второй нет, у меня nvault система, как исправить?
Mort3m
Mort3m
10 февраля 2019

NLess,
1. попробуй заюзать sync для худа
2. если плагин к SQL подрублен, надо вводить данные от SQL
ну я так думаю, Ты ничего из этого не понял
NLess
NLess
10 февраля 2019

Вопросы:
1. Все HUD-ы (Score плагины) мешают работать основному плагину zp40, там где есть HP, CLASS, AMMO, установил плагин и захожу мелькает HUD SCORE и HP, CLASS, AMMO то есть основной HUD, как только убераю этот плагин, такого не происходит, как это исправить?
2. Аммо не сохраняются когда установил плагин как Save ammo bank как это исправить?
xman2030
xman2030
10 февраля 2019

Leonid2111,
Sprite Explorer
Leonid2111
Leonid2111
10 февраля 2019

скажите как создать спрайты для гранат какие праграммы нужны
xman2030
xman2030
10 февраля 2019

St3RFAN,
Какие видосы, работы?
St3RFAN
St3RFAN
10 февраля 2019

xman2030,
Славно. Че када видосы пилить будешь? я то жду,посмотреть твои работы :)
xman2030
xman2030
10 февраля 2019

St3RFAN,
Хорошо, залипаем в потолок... завтра уже на работу
St3RFAN
St3RFAN
10 февраля 2019

Че как отдых ребята?
090-devil-1
3RA1N
3RA1N
10 февраля 2019

ra1n,
как можно меня не заметить я на 5 месте в топе
Mort3m
Mort3m
9 февраля 2019

BuB9neC,
будет что то дельное в твоем АПДЕЙТЕ - я напишу, а пока видно как мод превращается в очередной пирог
советую добавить фишки в кфг файл, чтобы отрубать некоторые фичи которые ты добавил
к примеру те же дхуды, я может не хочу чтобы они были, а лезть в мод и убирать мне лень
ra1n
ra1n
9 февраля 2019

3RA1N, нет, я тебя тут не видел даже.
3RA1N
3RA1N
9 февраля 2019

ra1n,
Ник Решил Свиснуть?
3RA1N
3RA1N
9 февраля 2019

xman2030,
Она платная
BuB9neC
BuB9neC
9 февраля 2019

Mort3m, хм, да для тебя всё дефолтное...
xman2030
xman2030
9 февраля 2019

Или есть OFFLINE клиент, называется CS SME на сайте есть
xman2030
xman2030
9 февраля 2019

3RA1N,
В стиме CSNZ, если именно хочешь ONLINE, то сложно будет, там проблема с регистрацией.
3RA1N
3RA1N
9 февраля 2019

а что за игра кс online? где её взять можно?
Mort3m
Mort3m
9 февраля 2019

BuB9neC,
на кой мне оценивает дефолтный зп с изменениями которые никому не нужны?
пока не увидел ничего полезного
BuB9neC
BuB9neC
8 февраля 2019

Матвей, это ещё грубей, когда ты не ставишь лайк или дизлайк, ну... 077-sad-1
Mort3m
Mort3m
7 февраля 2019

DeMNiX,
011-suspicious
DeMNiX
DeMNiX
7 февраля 2019

Mort3m,
пиши лучше
Ment
Ment
6 февраля 2019

Есть у кого текстуры оружия +8 из ксо ?
xman2030
xman2030
6 февраля 2019

Akeiro,
О чем ты?

Только зарегистрированные посетители могут писать в чате.
Статистика
  • +1 Всего статей 1300
  • +14 Комментариев 2628
  • +14 Пользователей : 5262
  • Новичок dbnfkz123
  • Сейчас на сайте 6
  • Гостей 4
  • Пользователей 2
  • [NLess BENI ]
Комментарии

[CS 1.6] Скрипт LGCP - Управление серверами CS 1.6 (VDS)

Всё робит, это Глеб просто пиздит.)

[CS 1.6] Скрипт LGCP - Управление серверами CS 1.6 (VDS)

Смысл ставить тогда если Fast DL не робит)

[CS 1.6] Скрипт LGCP - Управление серверами CS 1.6 (VDS)

Я смогу) изи

[CS 1.6] Скрипт LGCP - Управление серверами CS 1.6 (VDS)

Ну что я скажу. Слили и хер с ним, это вобще версия 3.0, от сентября того года. Сейчас актуальная 3.3, скоро доделаю 3.4.  Поддержку всем покупателям

[CS 1.6] Скрипт LGCP - Управление серверами CS 1.6 (VDS)

Ну конечно он не дал добро.

[CS 1.6] Скрипт LGCP - Управление серверами CS 1.6 (VDS)

А что Глеб дал добро?

[CS 1.6] Скрипт LGCP - Управление серверами CS 1.6 (VDS)

Да её нет, я просто захотел слить его и всё.

[CS 1.6] Скрипт LGCP - Управление серверами CS 1.6 (VDS)

Прости, я думал есть подвох, там коды для взлома итд... Ну молодец, его скрипт и так мало кто покупал, а щас будет жопенский. А причину сливать забыл

[CS 1.6] Скрипт LGCP - Управление серверами CS 1.6 (VDS)

Годно, однако жаль все равно

[CS 1.6] Скрипт LGCP - Управление серверами CS 1.6 (VDS)

Хех, его здесь нет, самый настоящий скрипт LGCP

Основа для вашей сборки
ReHLDS 3.4.0.654

ReHLDS (Reverse-engineered) - это новый шаг вперед, который дает второе дыхание нашим серверам. ReHLDS работает в 2 раза быстрей, чем HLDS.

AmxModx 1.8.3

AMXModX - это Metamod дополнение, которое позволяет создавать новые модификации для Half-Life на языке Pawn

Reunion 0.1.92

Reunion является продолжением Dproto для ReHLDS. Это metamod плагин, который позволяет заходить 47/48 Non-Steam на сервер.

Revoice 0.1.0.32

Revoice - это Metamod plugin, который дает возможность общения голосовым чатом между non-steam и steam клиентами.

Metamod-r 1.3.0.127

Новый Metamod-r содержит огромное количество оптимизаций производительности и намного более чистый код. Ядро было написано с использованием JIT-компилятора.

Ultimate Unprecacher 1.1

Ultimate Unprecacher являет плагином для MetaMod, работает он по принципу отключение не нужных ресурсов на вашем сервере, тем самым вы сможете освободить места для ресурсов под ваши плагины, с помощью данного модуля можно избавиться от ошибки 512!

ReAuthCheck 0.1.6

ReAuthCheck - это Metamod плагин, который занимается проверкой ваших игроков на валидность, с помощью данного модуля для REHLDS вы сможете защитить свой сервер от ботов, которые постоянно спамят рекламу или просто забивают слот на сервере!

Чем пользуешься ты?
Информация

Добро пожаловать на CS-FADE.RU!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт