So basically I scripted a simple puzzle to test databases. The basic idea is: if all the right items are inside the trigger, something will start.

This is the working script(Which doesen't really use databases as I wanted to).

Code
TriggerRegisterForItems(TRIGGER_HIB_ENIGMA02_Optable);

DB_Enigma02_bodyparts(ITEM_HIB_ENIGMA02_BODYPART1);
DB_Enigma02_bodyparts(ITEM_HIB_ENIGMA02_BODYPART2);
DB_Enigma02_bodyparts(ITEM_HIB_ENIGMA02_BODYPART3);

IF
ItemEnteredTrigger(_Item,TRIGGER_HIB_ENIGMA02_Optable,_Player)
AND
DB_Enigma02_bodyparts(_Item)
AND
ItemIsInTrigger(ITEM_HIB_ENIGMA02_BODYPART1,TRIGGER_HIB_ENIGMA02_Optable,1)
AND
ItemIsInTrigger(ITEM_HIB_ENIGMA02_BODYPART2,TRIGGER_HIB_ENIGMA02_Optable,1)
AND
ItemIsInTrigger(ITEM_HIB_ENIGMA02_BODYPART3,TRIGGER_HIB_ENIGMA02_Optable,1)
THEN
CharacterDisplayText(CHARACTER_CHARACTER_Player1, "PENNY_01");


This script as I said works, but if I want to add more items in the puzzle I need to copy/paste the same condition over and over again. So I tried this code

Code
TriggerRegisterForItems(TRIGGER_HIB_ENIGMA02_Optable);

DB_Enigma02_bodyparts(ITEM_HIB_ENIGMA02_BODYPART1);
DB_Enigma02_bodyparts(ITEM_HIB_ENIGMA02_BODYPART2);
DB_Enigma02_bodyparts(ITEM_HIB_ENIGMA02_BODYPART3);

IF
ItemEnteredTrigger(_Item,TRIGGER_HIB_ENIGMA02_Optable,_Player)
AND
DB_Enigma02_bodyparts(_Item)
AND
ItemIsInTrigger(_Item,TRIGGER_HIB_ENIGMA02_Optable,1)
THEN
CharacterDisplayText(CHARACTER_CHARACTER_Player1, "PENNY_01");


But the script doesen't work, what it does instead is to trigger the CharacterDisplayText everytime I put even only one item.