Aclarando un poco las cosas.
@Kosh tu codigo esta MUY mal. Te explico:
lpObj->Inventory[ItemInfo.TwoHand].IsItem() Inventory[
SLOT]
Lo que va entre corchetes [] es el slot donde va ubicado el item, si vos le pasas la propiedad ItemInfo.TwoHand, no tiene nada que ver, absolutamente nada que ver, que te funcione es de ojete, porque lleva 0 o 1 la variable esa, nada mas que por eso.
@Llalex Si bien no esta mal lo que hiciste, estas validando de la forma incorrecta, y como dijiste vos mismo, cada vez que agregues un item vas a tener que agregarlo al source tambien. Ademas de que es muy poco optimizado.
La forma correcta de hacerlo es como dijo
@takumi12, validando la class del pj y del item, y que si el item de la mano izquierda es para RF/DL/ME solamente, en la mano derecha no te deje ponerte un item que tambien puede equipar un DK por ej. Con ItemInfo se hacen esas verificaciones.
Respecto al bug de la chaos machine, el único que tengo es que no actualiza la combinación luego de retirar los items, prefiero eso al bug que presentaste vos
@Llalex