Scripts in databasevelden
Geplaatst: 09 mei 2004, 14:25
Ik zat te denken of het soms zinvol is om scripts in een database-veld te stoppen. Bijv. als ik in een RPG MOD een serie items heb die ik aantrek of draag. Wat moet er dan bij een bepaald item gebeuren?
Bijv.
En dan ergens in een PHP-script:
Is het zinvol om zoiets te schrijven? Het resultaat zou moeten zijn dat de minimum en maximum damage van het karakter wordt aangepast omdat er een ander item, in dit geval het item met de naam $weapon_name.
Bijv.
Code: Selecteer alles
CREATE TABLE phpbb_rpg_item (
name varchar(255) NOT NULL default '',
onEquip longtext NOT NULL default '',
isUnequippable longtext NOT NULL default'',
...
);
INSERT INTO phpbb_rpg_item VALUES ('Short Sword', '
// $chardata bevat karaktergegevens
$chardata['phys_min_damage'] = $min_damage;
$chardata['phys_max_damage'] = $max_damage;
update_char_data($chardata);
',
'item_is_cursed()');
Code: Selecteer alles
// equip weapon
$sql = "select onEquip from phpbb_rpg_item where name = $weapon_name";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query inventory data', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
eval($row['onEquip']);
Code: Selecteer alles
// try to unequip
$sql = "select isUnequippable from phpbb_rpg_item where name = $weapon_name";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query inventory data', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
if (!eval($row['isUnequippable']))
{
echo 'Not possible to unequip';
}