KCDS 0.2.2

0.2.2 brings conversations, shops and quests: a server script talks to a player with the game's own dialogue list, sells and buys through the game's own shop screen with the server's prices and stock, and gives quests that the game announces and marks on the compass. It also finishes two things from 0.2.1: blips now show on the compass, and resource buffs show their icon.

Servers need the 0.2.2 server as well. The launcher updates itself to 0.2.2 on the next start.

Highlights

  • Conversations (#83). Dialogue.open(player, { line, options, npc }) shows the line and the answers in the game's own dialogue list; the player picks with W/S and E (or the number keys), and the script hears dialogueChoice. Checked live: the rows, the highlight, the pick on the server, the close.
  • Shops (#84, #85). Vendor.create, setShelf, setOffers and Vendor.open(vendor, player, npc) open the game's shop screen with the server's shelf and prices; a confirmed basket is settled on the server in one step (vendorTrade). Checked live: an apple bought for 15 money units, the vendor's purse from 500 to 515.
  • Quests (#81, #82). Quest.give(key, title, { type, objectives, player, track }) shows the game's "quest started" banner; track() puts the objectives with a position on the compass. Checked live with 3 clients: the banner and the main-quest mark on every compass.
  • Blips on the compass (#69). Blip.create({ position, type, label }) now shows the icon on the compass, and a removed one goes at once. Checked live with 3 clients.
  • Resource buffs (#230). A buff made with Buffs.register shows its icon on the HUD and on the character screen.

Conversations

  • A page has a line (shown as the speaker's subtitle) and up to 8 answers; an answer can be greyed out (enabled: false). Dialogue.update replaces the page, Dialogue.close ends it.
  • The player stands still while they talk; Backspace backs out (the script hears it). The game's own conversations end a server one.

Shops

  • A vendor has a purse (or none, then it never runs out), a shelf of items with prices and qualities, and prices for what it buys.
  • Money is in money units, tenths of a groschen, as everywhere in the SDK: a price of 15 shows as 1.5.
  • The shop needs an NPC as its keeper: the game's screen shows the trader. The player who trades runs that NPC while the screen is up. Without a live NPC the screen does not open and the script hears vendorClosed.
  • Haggling is off; the game moves nothing itself, the server's settlement does.

Quests

  • Types main, side, activity, event, micro, racing; progress active, done, failed; up to 8 objectives, each optional, done or with a position.
  • A quest is for one player or for everyone in a world, and it is shown again to a player whose world loads.
  • questTrackingChanged tells the script when a player starts or stops following a quest.

Not in this version

  • Quest journal (#81): a server quest is not yet a row of the game's journal.
  • Blips and quest marks on the map (#69, #82): they show on the compass, not yet on the map.
  • Gizmos (#77): the clients can draw them, but no resource API sends them yet.