KAs (Knowledge Areas) list and structure
KA Structure and guidelines
Every area should have:
- "<area>_basic" (example hydlaa_basic) containing:
- locations and POI (example temple, winch, fountain, ...)
- typical services: tavern, blacksmith, temple, merchants, ...
- <area>_important_people: all major NPC of the area with their approximate location
- greetings/goodbye not really requires as anyway every NPC has its own specific one
Existing KAs
random: There is a special KA on 20+ NPCs called "random", this seems to be used when NPC are thinking aloud and just randomly saying something. I don't remember how this is triggered.
All sentient NPCs (?):
- general
Hydlaa:
|
Ojaveda:
|
OjaRoad:
|
Arena:
|
Gugrontid:
|
Amdeneir:
|
Eagle Bronze Doors:
|
Death Realm
|
Gods: | Races: | Magic: |
---|---|---|
|
|
|
- newbie (used by tutorial NPCs and few others, most answers are OOC)
- winch_info (seems to be used by some merchants, not very consistently)
- greeting_evil (used by Dark Wanderer and Nodramok)
- merchant (used by Lerok Dilechi, Jashoky Dakarn) SHOULD BE REMOVED
- lyeorire_fisk (is assigned to Archilaya Gurpleferd, seems to contain duplicates)
Proximity Guards:
- Proximity_Guard_Checks_Oja
- Proximity_Guard_Checks_Hydlaa
- Proximity_Guard_Checks_Gug
Pet KAs:
- Pet Groffel 1
- Pet Yulbar 1
- Pet Rivnak 1
- Pet Drifter 1
- Pet Serpent Gobble 1
- Pet Eagle Gobble 1
NPC name typos or specific NPC group:
- ash_brotherhood
- Vuudjehn Korthel (its actually linked correctly on the NPC) -> Vuddjehn Korthel
- Heedel Remains (its actually linked correctly on the NPC) -> Heedel's Remains
- Skull (its actually linked correctly on the NPC) -> Mr Skull
- Bread (its actually linked correctly on the NPC) -> Mr Bread
Tests:
- AndrewTestNPC
- AndrewTestNPC2
Useful queries
Find all the knowledge areas in the database not specific to NPCs, so the generic ones applicable to multiple NPCs:
select distinct(nka.area) from npc_knowledge_areas nka left join `characters` c on nka.area=CONCAT(c.name, " ",c.lastname) where c.name is null;
Find all KA defined in triggers that are not associated to any NPC (maybe we were working on those?):
select distinct(tr.area) from npc_triggers tr left join npc_knowledge_areas ka on tr.area=ka.area where ka.area is null;
Find all triggers without a response:
select * from npc_triggers tr left join npc_responses nr on tr.id = nr.trigger_id where nr.id is null;
Extract triggers and responses of one area:
select * from npc_triggers tr, npc_responses re where tr.id=re.trigger_id and tr.area ='hydlaa_townsperson'