Уже несколько человек задало один и тот же вопрос в ЛС. А именно зачем там SetThink и в чем отличие от UpdateClientData + CD_flNextAttack. Поэтому постараюсь описать раз, дабы не расписывать каждому по отдельности. Итак если вкратце то, чтобы сломать предикт оружия и успешно заблокировать ивенты, звуки, анимации у нас есть два пути. Это CD_flNextAttack или CD_ID. Первый способ это тот, который вы можете встретить практически в любом екстра оружии для ZP. Он работает надежно и проблем с ним не возникает. Но мы не ищем простых путей. И будем использовать трюк с подменой CD_ID. А использовать будем индекс 2 который не валидный и не имеет предикшина (можно использовать числа в интервале 0-63, но все индексы больше 30 отправлены клиенту не будут. По идее можно указать вообще любое число, но я не пробовал). Большим разочарованием данного способа является тот факт, что при указании невалидного ИД, у нас не происходит смена сторон оружия. Поэтому при переключении на нож, и последующим переключении на наше кастом оружие, то оно так и останется в левой руке. Грубо говоря оно будет всегда в той руке, в которой было предыдущее. Чтобы избежать данного момента, нам нужно отправить ровно 1 раз SVC_CLIENTDATA с валидным ID (1, 3-31). Этого можно достичь хукнув UpdateClientData. Но мне показался способ с SetThink намного проще и удобней. Главное понять тот факт, что вызван он будет лишь один раз после деплоя. Так как у выданого оружия нет Think-а, то мы с помощью реапи переопределяем его на свой. Тут важно заметить: гарантий того, что аз этот промежуток времени будет отправлен SVC_CLIENTDATA нет. Но тесты локально показали, что 1 сек более чем достаточно. После чего мы меняем на наш невалидный ИД (2 например) с помощью rg_set_iteminfo. ItemInfo_iId позже используется для отправки как активное оружие (
код). Таким образом мы обходим предикт. Лучший это способ, точно нет. У него также есть свои плюсы и недостатки. Выбор, как всегда, за вами. Моя цель была продемонстрировать другой способ, чем принято использовать. И как мне кажется получилось очень даже ничего.