private int OnGetUseMonkAttackTables(void *pStats, int bForceUnarmed) { CNWSCreatureStats stats = CNWSCreatureStats.FromPointer(pStats); CNWSCreature creature = stats.m_pBaseCreature; int monkLevels = GetLevelByClass(stats, (uint)ClassType.Monk); if (monkLevels < 1 || !creature.GetUseMonkAbilities().ToBool()) { return(false.ToInt()); } CNWSItem mainWeapon = creature.m_pInventory.GetItemInSlot((uint)EquipmentSlot.RightHand); if (mainWeapon == null) { return(true.ToInt()); } if (bForceUnarmed.ToBool()) { return(false.ToInt()); } uint mainWeaponType = mainWeapon.m_nBaseItem; if (mainWeaponType != (uint)BaseItem.Kama && !monkWeaponSet.Contains(mainWeapon.m_nBaseItem)) { return(false.ToInt()); } CNWSItem secondWeapon = creature.m_pInventory.GetItemInSlot((uint)EquipmentSlot.LeftHand); if (secondWeapon == null) { return(true.ToInt()); } uint secondWeaponType = secondWeapon.m_nBaseItem; return((secondWeaponType is (uint)BaseItem.Kama or(uint) BaseItem.Torch || monkWeaponSet.Contains(secondWeaponType)).ToInt()); }