[ReAPI] Пример кастомного оружия с дополнительними свойствами

Сообщения
443
Реакции
319
Помог
13 раз(а)
 
Последнее редактирование:
Сообщения
594
Реакции
350
Предупреждения
1
Помог
9 раз(а)

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
344
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Shel, Показывай
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
Javekson, кратко суть. Есть клип, а есть аммо. Первое это количество патронов обойме, второе в запасе. Также нужно различать вывод патронов в худе и подсчет при стрельбе. Клип хранится в мембере m_Weapon_iClip (в weapon_*), а аммо m_rgAmmo (в player). Причем m_rgAmmo это массив размерностью в 32 ячейки. Если игрок поднимает/покупает/получает оружие, идет вызов CBasePlayer_GiveAmmo. Где имя аммо будет взято из
ItemInfo_pszAmmo1. А там будет выслана мессага AmmoPickup. А само количество будет сохранено в m_rgAmmo. Каждый кадр игрока идет его сверка с массивом m_rgAmmoLast (количество которое было в последний раз отправлено игроку). И если значение ячейки другое будет отправлена мессага AmmoX. Это и есть то количество которое видит игрок у себя на экране как количество патронов в запасе. Касательно патронов в обойме. При выборе оружие (деплое) и каждом выстреле идет отправка CurWeapon где 3-им аргументом шлется количество патронов в обойме. Но эти сообщения никак не влияют на просчеты. Та же информация отправляется в дельте после вызова GetWeaponData у игрока. Там в массив структуры weapon_data_s загоняются данные оружия (те самые m_Weapon_iClip и другие). Максимальное количество патронов в обойме прописано хардкодом в клиенте, и при нажатии релоада будет вызван код почти идентичный серверному. И вот зная что например у АК47 по умолчанию коиличество патронов 30, наша задача заключается в отправке клиенту (конечно в GetWeaponData) 30 патронов если у нас максимальное их количество (анпирмер 35) и другое значение если у нас их 30. Так как я раньше говорил для худа используется CurWeapon, то игрок ничего не заметит, а клиент игры будет думать что у нас максимальное количество патронов и заблокирует релоад сам. Собственно то, что нам и нужно. К сожалению в фейкмете никогда не был проброшен данный хук, что странно как по мне. И вот модификация от Shel как раз пробрасывает данный хук.
20 Мар 2020
Другой путь сложнее, это установка m_Weapon_iClip в 30. Но тогда оригинальное значение где то нужно хранить, а также фейковать CurWeapon. Что имхо сложнее.
 

Ayk

Сообщения
763
Реакции
478
Помог
19 раз(а)
К сожалению в фейкмете никогда не был проброшен данный хук, что странно как по мне. И вот модификация от @Shel как раз пробрасывает данный хук.
Его бы в РеГейм вставить, чтобы не возиться с кастомным фейкмета. Дефолтные АМХХ модули могут обновляться.
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
Ayk, это костыль, которому не место в регейме. Делайте модулем (Vaqtincha выкладывал на голсрц)
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
Ayk, под вопросом. Моя цель была описать принцып. А далее уж делайте сами как считаете нужным.
 
Сообщения
594
Реакции
350
Предупреждения
1
Помог
9 раз(а)
Javekson, нет
20 Мар 2020
Скрытое содержимое для пользователей: Javekson
 
Сообщения
1,033
Реакции
828
Помог
10 раз(а)
fantom, попробовал заблокировать анимацию с помощью кода, все норм кроме одной оружки weapon_m3
На него нету лечения? :D

 
Сообщения
594
Реакции
350
Предупреждения
1
Помог
9 раз(а)
Javekson, тебе скинули рабочий вариант, в чем проблема?
 
Сообщения
594
Реакции
350
Предупреждения
1
Помог
9 раз(а)
Javekson, что не так в модуле?
 
Сообщения
443
Реакции
319
Помог
13 раз(а)
Да он даже не читает то что пишет ему fantom.
 

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

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