Quest, Achievement & Daily Gift
Daily gift
client:claimDailyGift()
| Field | Type |
|---|---|
| Signature | (self: Client) → string? |
| Returns | string? — nil kalau sukses |
| Async | yes |
Ngirim RqWG (WorldGiftRequest). Server bales sama slot calendar, timestamp, sama isi gift-nya. No-op kalau udah diklaim hari ini.
Achievement
client:getAchievements()
| Field | Type |
|---|---|
| Signature | (self: Client) → {table} |
| Returns | Tabel 1-indexed berisi row {id, name, description, current, completed_level, claimed_level, max_level, requirements, rewards, final_target, reward} |
| Async | yes |
client:getAchievement(id)
| Field | Type |
|---|---|
| Signature | (self: Client, id: number) → table? |
| Returns | Row achievement tunggal, atau nil kalau id-nya nggak dikenal |
| Async | yes |
client:claimAchievement(id, level)
| Field | Type |
|---|---|
| Signature | (self: Client, id: number, level: number) → string? |
| Returns | string? — nil kalau sukses |
| Common errors | Errors.CANCELLED, Errors.DISCONNECTED |
| Async | yes |
local list = client:getAchievements()
local one = client:getAchievement(id)
client:claimAchievement(id, level)
Quest
client:getQuests()
| Field | Type |
|---|---|
| Signature | (self: Client) → {table} |
| Returns | Tabel 1-indexed berisi row {id, title, description, quest_type, current_step, step_progress, amount, reward_gems, reward_xp, reward_extra, slot}. id itu string lengkap (misal "DailyQuest127") |
| Async | yes |
client:acceptQuest(questId?)
| Field | Type |
|---|---|
| Signature | (self: Client, questId: number?) → (string, string?) |
| Returns | (id, err) — string id quest yang di-resolve, plus kode Errors.* opsional |
| Common errors | Errors.CANCELLED, Errors.DISCONNECTED, Errors.OTHER |
| Async | yes |
Tanpa arg auto-pilih quest yang eligible berdasar metadata pool bundled + level bot. Lewatkan id numerik buat force quest tertentu (misal 127 buat DailyQuest127).
client:claimQuest(questId)
| Field | Type |
|---|---|
| Signature | (self: Client, questId: string) → string? |
| Returns | string? — nil kalau sukses |
| Common errors | Errors.CANCELLED, Errors.DISCONNECTED |
| Async | yes |
Lewatkan string id lengkap ("DailyQuest127" / "Tutorial10"). Auto-rute CdQ vs CtQ berdasar prefix.
client:discardQuest(slotIndex)
| Field | Type |
|---|---|
| Signature | (self: Client, slotIndex: number) → string? |
| Returns | string? — nil kalau sukses |
| Common errors | Errors.CANCELLED, Errors.DISCONNECTED |
| Async | yes |
Buang daily quest di slot index (0 atau 1). Quest tutorial nggak bisa dibuang.
local quests = client:getQuests()
client:acceptQuest() -- accept quest yang available berikutnya
client:acceptQuest(questId) -- … atau id tertentu
client:claimQuest(quest_id_str)
client:discardQuest(slot_index)