Параметры:
byte IsActive
byte WeaponID
byte ClipAmmo
Четвертый и последующие параметры позволяют установить определенное правило для аргументов события, к примеру, отловить событие, когда айди оружия равно 15("2=15"), то есть, когда ты используешь оружие HLW_SNARK(это лучше чем отлавливать всё, а потом уже внутри функции проверять айди оружия).
Ты можешь через запятую регистрировать несколько условий, в спойлере пример.
register_event( "CurWeapon", "eventCurWeapon", "be", "1=1", "2=15", "3=1" );
Первый аргумент IsActive(никакой не id), отвечает за то: активно ли оружие в данный момент. 1 - активно, вызывается после выстрела, или после "доставания" оружия, 0 - неактивно, вызывается, когда ты убираешь оружие, именно убираешь, то есть меняешь оружие на другой слот, если ты выбросишь оружие, то вызова не будет.
Попрошу заметить, что для ножа событие активно(read_data(1) == 1) только во время доставания, после атаки событие не вызывается(т.е аналогично Ham_Item_Deploy), но это только для ножа.
Еще подмечу, что связано это с тем, что у ножа третий аргумент ClipAmmo(т.е количество патронов) всегда -1, и он не меняется.
P.S. Думаю, что я ответил на твой вопрос