What are the Overhead Icons?
These are bitmaps that float over the head of npcs. They give information about what the player can do when interacting with that character.
Meet the Icons
Primary Quest Available
Secondary Quest Available
Party member Quest Available
The character has a secondary quest that requires the player to have a certain party member with them.
This character has given the player a task, but the player doesn't meet the requirement to complete it.
Speaking to the character will give a quest prompt.
Primary Task Complete
Speaking to this character will complete a primary quest task.
Secondary Task Complete
Speaking to this character will complete a secondary quest task.
This character has tutorial-style information for the player. Likely results in a handbook entry.
This character will offer to join the party.
This character will offer to enchant items.
This character can increase a player's party size. Also, you can re-acquire disbanded party members here.
Old Icon for the Inn, not used in DS2.
These are used when a character has both a Quest and another function.
How Do I Add One?
You can add one by putting an [indicate_emitter]
block in an actor's template, or by placing an emitter_indicate
via the editor. It's preferable to put it in an actor's template. The gizmo should be used with actors that can't use scidbits (hireables, spawned) or in special case situations.
Both methods use indicate_emitter.skrit
, found here ..world\contentdb\components\emitters\indicate_emitter.skrit
This component handles all the streaming and saveload issues for the icon.
There are several modifiable properties in this skrit, These are the relevant ones:
// Indicator textures
indicator_texture_1$ = "b_gui_el_talk2me" // primary quest !
indicator_texture_2$ = "b_gui_el_question-mark" //primary quest ?
indicator_texture_3$ = "b_gui_el_question-mark_grey" //grey ?
indicator_texture_4$ = "b_gui_el_info" // info icon
indicator_texture_5$ = "b_gui_el_join" //hirable icon
// Parameters used to customize the look of many of the effects
scale$ = 1.0 //generally not changed
height$ = 0 //left to 0, it defaults to the actors bounding sphere radius * 1.5 when placed on an actor
ignore_actor_height$ = false //set to true if you want to explicitly set the height
initially_active$ = true //Whether this effect is initially active when it is first loaded.
initial_texture$ = 1 // Which of the above indicator_textures to use
By modifying these setting you can show any of the icons. These values can be modified in the tempates (preferred), or in the instance.
indicator block for a pet seller
indicator_texture_1 = b_gui_el_pack-mule-exclamation;
indicator block for a hireable
note: change the inital texture when using icons that are defined as defaults. In this case b_gui_el_join
initial_texture = 5;
indicator block for a Quest Giver, Quest not yet active
note: no icon is present over this character until it recieves a message telling it to display.
initially_active = false;
indicator block for a combination Quest Giver / enchanter
note: this character starts with a combo questgiver/enchater icon. And later switches after being messages (more below)
indicator_texture_1 = b_gui_el_hand-exclamation;
indicator_texture_2 = b_gui_el_hand-q-mark-o;
indicator_texture_3 = b_gui_el_hand-q-mark-g;
indicator_texture_5 = b_gui_el_hand;
Changing the Icons in Game
You can activate, deactive, and switch the icons in game. The indicate_emitter.skrit
will look for and act on several messages to manage its state. The skrit also talks care of all streaming/saveload issues. Lastly, these emitters are client/server objects. That means that messages must be broadcast to them , not just sent.
Failure to broadcast the message results in the change only taking place on the host's machine.
| WE_USER_INDICATE_EMITTER_ON || turns on the icon |
| WE_USER_INDICATE_EMITTER_OFF || turns off the icon |
| WE_USER_INDICATE_EMITTER_SWITCH || requires data1 to be set to a value between 1 and 5. The active texture is set to the matching indicator_texture. This will also turn on an icon if its currently off. |
| WE_USER_INDICATE_EMITTER_INFO || set the active texture to indicator_texture_4. By default, this is set to the info icon. |
| WE_USER_INDICATE_EMITTER_TASK_ACTIVE || set the active texture to indicator_texture_2. By default, this is set to the active task icon. |
Messaging Via Flick
This is the preferred method of messaging indicate_emitter
, as most of the time they're updated from talk flicks. Use the flick BroadcastMessage
BroadcastMessage (role_name, Message);
Messaging Via Triggers
You can also message the indicate_emitter
directly from a trigger. Set up your trigger action like this:
Here is a list of the available icon images from DS II. They can be found in ..art\Bitmaps\GUI\Elements
|b_gui_el_exclamation-green||Party Member Quest|
|b_gui_el_exclamation-grey||Quest, not yet available|
|b_gui_el_amulet-exclamation||Reagent / give quest |
|b_gui_el_amulet-q-mark-g||Reagent / Task prompt |
|b_gui_el_amulet-q-mark-o||Reagent / Task complete |
|b_gui_el_potion-exclamation||Magic Seller / give quest |
|b_gui_el_potion-q-mark-g||Magic Seller / Task prompt |
|b_gui_el_potion-q-mark-o||Magic Seller / Task complete |
|b_gui_el_pack-mule-q-mark-o||Pet Seller / Task Complete|
|b_gui_el_pack-mule-q-mark-g||Pet Seller / Task Prompt|
|b_gui_el_pack-mule-exclamation||Pet Seller / Quest Available|
|b_gui_el_hand-exclamation||Enchanter / Quest Available|
|b_gui_el_hand-q-mark-g||Enchanter / Task Prompt|
|b_gui_el_hand-q-mark-o||Enchanter / Task Complete|