cond_atr[2] = ATR_DEXTERITY|ATR_STRENGTH;
cond_value[ATR_DEXTERITY] = 90;
cond_value[ATR_STRENGTH] = 60;
Ale zapis
Potrafiłbyś uzasadnić co chciałeś w ten sposób osiągnąć, zwłaszcza pierwszą linijką? Napisałeś że drugi element tablicy to
iloczyn suma bitowa liczb bodajże 4 i 5.
A następnie przypisałeś wartości elementom innej tablicy, tym razem czwartemu i piątemu.
cond_atr[0] = ATR_DEXTERITY
cond_atr[1] = ATR_STRENGTH;
cond_value[0] = 90;
cond_value[1] = 60;
Tak jest poprawnie.
Nie rozumiem po co takie kosmiczne kombinacje, przecież nawet nie mając pojęcia o skryptach wystarczyłoby zobaczyć zapis z oryginalnych broni.
//edit: w sumie z tego co widzę w oryginalnych broniach zawsze używa się indeksu 2. Jednak z innymi też prawdopodobnie powinno zadziałać.
Jeśli nie, to możesz po prostu dodać funkcję on_equip która ręcznie sprawdzi wartość funkcji i ewentualnie zdejmie broń.