achievement_criteria_data表是AzerothCore中为成就标准添加额外条件和数据的表格。它允许为成就的完成条件添加更复杂的限制,如特定地图、特定装备、特定时间等条件,使成就系统更加灵活和精确。
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
criteria_id | MEDIUMINT | 0 | 成就标准ID,对应Achievement_Criteria.dbc |
type | TINYINT UNSIGNED | 0 | 条件类型 |
value1 | MEDIUMINT UNSIGNED | 0 | 条件值1 |
value2 | MEDIUMINT UNSIGNED | 0 | 条件值2 |
ScriptName | VARCHAR(64) | '' | 脚本名称 |
指定要添加额外条件的成就标准。对应Achievement_Criteria.dbc文件中的ID。
定义额外条件的类型:
根据条件类型的不同,这两个值有不同的含义:
指定自定义的C++脚本来处理复杂的条件判断。
INSERT INTO achievement_criteria_data (criteria_id, type, value1)
VALUES (12345, 6, 571); -- 只能在诺森德完成
INSERT INTO achievement_criteria_data (criteria_id, type, value1)
VALUES (12346, 1, 15989); -- 只能击杀阿尔萨斯
INSERT INTO achievement_criteria_data (criteria_id, type, value1, value2)
VALUES (12347, 2, 1, 0); -- 只有战士职业可以完成
INSERT INTO achievement_criteria_data (criteria_id, type, value1, value2)
VALUES (12348, 17, 49623, 15); -- 需要装备特定武器
INSERT INTO achievement_criteria_data (criteria_id, type, value1)
VALUES (12349, 3, 10); -- 血量低于10%时完成
SELECT * FROM achievement_criteria_data
WHERE criteria_id = 成就标准ID;
DELETE FROM achievement_criteria_data
WHERE criteria_id = 成就标准ID;
.reload achievement_criteria_data
可以为同一个成就标准添加多个条件,所有条件都必须同时满足:
-- 必须是战士职业
INSERT INTO achievement_criteria_data (criteria_id, type, value1)
VALUES (12350, 2, 1, 0);
-- 必须在特定地图
INSERT INTO achievement_criteria_data (criteria_id, type, value1)
VALUES (12350, 6, 571);
-- 必须血量低于50%
INSERT INTO achievement_criteria_data (criteria_id, type, value1)
VALUES (12350, 3, 50);