Ойын жүйелері

Ойын ішіндегі тапсырмалар: күнделікті тапсырмалар мен марапаттар

iDos Games-тің дайын тапсырмалары қалай жұмыс істейді: күнделікті, апталық және бір реттік тапсырмалар, сандықтары бар ұпай жолағы және тапсырмалар тобына бонус, және оларды кабинетте қалай баптауға болады.

Тапсырмалар - дайын тапсырмалар жүйесі: марапаты бар күнделікті, апталық және бір реттік тапсырмалар, сандықтары бар ұпай жолағы және тапсырмалар тобын орындағаны үшін бонус. Тапсырмалар әр жаңа жобаның бөлігі. Барысы мен марапаттарды сервер санайды; ойын тек ойыншы не істегенін хабарлайды және нәтижені көрсетеді.

Ойыншы не көреді

  • Қойындылар түріндегі циклдер: күнделікті, апталық, жетістіктер, келесі циклге дейінгі таймерімен.
  • Әр тапсырмадағы барыс жолақтары және оның барлық мақсаттары бар толық терезе.
  • Орындалған тапсырмаларға арналған «Барлығын алу» батырмасы.
  • Ұпай жиналған сайын ашылатын сандықтары бар ұпай жолағы.
  • Орындалған тапсырмалар күтіп тұрғанда қойындыдағы белгі.
Тапсырмалар
12 450
320
Күнделікті2
Апталық
Жетістіктер
Жаңа тапсырмалар 08:12:44-тен кейін
Тапсырма ұпайлары: 45
20
40
60
80
100
20 құбыжықты жеңу
20/20
+10
Алу
3 кезеңді өту
3/3
+10
Алу
Батырды 10 рет жақсарту
7/10
+15
Алу
Дүкеннен бірдеңе сатып алу
0/1
+20
Алу
Барлығын алу
Циклдер - қойындылар, келесі циклге дейінгі таймерімен.
Ұпай жолағы: алынған тапсырмалар ұпай қосады, жол бойында сандықтар ашылады.
Орындалған тапсырма «Алу» батырмасын күтеді; қалғандары барысын көрсетеді.
«Барлығын алу» барлық орындалған тапсырмаларды бір түртумен алады.
Мысал. Тапсырмалар экраны: циклдер, сандықтары бар ұпай жолағы және тапсырмалар тізімі.

Тапсырмалар қалай құрылған

  • Цикл - кестесі бар тапсырмалар жиынтығы: күнделікті, апталық, тұрақты немесе уақытша ивент. Цикл кезең-кезеңімен өтуі мүмкін, мысалы сегіз апталық маусым, әр аптаның өз тапсырмалары мен өз ұпай жолағы бар.
  • Тапсырма - әрқайсысының өз есептегіші бар бір не бірнеше мақсат («20 құбыжықты жеңу») және марапат. Тапсырма алдымен басқа тапсырманың орындалуын талап ете алады: тізбектер осылай құрылады.

Марапаттың үш түрі бар және олардың бәрі бірге жұмыс істейді:

  1. Тапсырма марапаты - барлық мақсат орындалғанда.
  2. Ұпай жолағындағы сандықтар - алынған тапсырма цикл ұпайын қосады, ал қажетті жиынтықта сандық ашылады.
  3. Топ бонусы - бір топтың белгілі санды тапсырмасы орындалғанда.

Барыс қайдан келеді

КөзіМысалСізге не істеу керек
Ойын хабарлайдыҚұбыжық жеңілді, деңгей өтілдіБолған жерде бір жол код
Сервер санайдыДүкендегі сатып алу, басқа тапсырманы алуЕштеңе, тек оқиғаны таңдаңыз
Серверлік скриптCloud code-тағы өз ережеңізСкрипттен шақыру

Қадам 01Цикл жасаңыз

Кабинетті ашып, жобаңызды таңдап, Тікелей операциялар → v2 → Quest бөліміне өтіңіз. Циклдер қойындысында цикл жасаңыз, мысалы күнделікті, қаласаңыз сандықтары бар ұпай жолағын қосыңыз.

Қадам 02Тапсырмалар қосыңыз

Тапсырмалар қойындысында тапсырма жасаңыз: аты, циклі, мақсаттары және марапаты. Әр мақсат үшін оның барысы қайдан келетінін таңдаңыз. Егер оны ойын санаса, есептегіш атын таңдаңыз, мысалы monsters_defeated.

Беттегі ЖИ батырмасы көмекшіні ашады: «Үш күнделікті тапсырма жаса: жеңістерге, дүкендегі сатып алуларға және батыр жақсартуларына». Ол өзгерістер ұсынады, сіз оларды қарап, Сақтау батырмасын басасыз.

Қадам 03Ойынды барысты хабарлауға үйретіңіз

Ойын санайтын мақсаттар үшін ЖИ-кодерден сұраңыз: «Әр құбыжық жеңілгенде monsters_defeated есептегішін сана». Ол шақыруды кодтың дұрыс жеріне қосады. Idle-RPG үлгісі өтілген кезеңдер мен батыр жақсартулары туралы бұрыннан хабарлайды.

Әзірлеушілерге

Тапсырмалар @idosgames/core ішіндегі client.quest арқылы жұмыс істейді. Барыс тапсырма бойынша емес, есептегіш аты бойынша жіберіледі: сервер оны сол есептегішті тыңдайтын барлық белсенді тапсырмаға береді.

TypeScript
// Болған жерде: құбыжық жеңілді
await client.quest.addQuestProgress('monsters_defeated', 1)

// Тапсырмалар экраны: ойыншы барысы; циклдер өздері алға жылжиды
const state = await client.quest.getUserQuestState()

// Орындалған тапсырманың марапатын алу
const claim = await client.quest.claimQuestReward('daily_win_20', 'daily')
if (!claim.ok) return showError(claim.error)
  • addQuestProgress тек көзі ойын болатын мақсаттарды жылжытады. Сервер өзі санайтын мақсаттар қабылданбайды.
  • Мәнді ешқашан «қалай болса да» жібермеңіз: мақсаттың бір шақыруға максимумы болса, одан асу ойыншы аккаунтын бұғаттайды.
  • Берілген марапаттар SDK кэшіндегі баланстарға бірден қолданылған, оларды қайта жүктеудің қажеті жоқ.

Әр өріс quest-system дағдысында сипатталған, оны SDK-ның MCP сервері береді.

Жиі қойылатын сұрақтар

Тапсырмаларды жобама қосу керек пе?

Жоқ. Тапсырмалар әр жаңа жобаның бөлігі. Кабинетте кем дегенде бір тапсырма бапталған бойда тапсырмалар қойындысы ойыншыларға көрінеді.

Ойын тапсырманың орындалғанын қалай біледі?

Барысын сервер санайды. Кейбір тапсырмаларды ол өзі санайды (сатып алулар, басқа тапсырмалар), ал ойын ішіндегі әрекеттер туралы, мысалы құбыжықты жеңгенде, ойын серверге бір жол кодпен хабарлайды.

Батл пас жасауға бола ма?

Циклдің ұпай жолағы ұқсас механика береді. Алынған әр тапсырма ұпай қосады, ал жолақта ойыншы қажетті ұпайға жеткенде ашылатын сандықтар бар.

Сондай-ақ қараңыз

Өз ойыныңызды жасаңыз

Идеяны бір сөйлеммен сипаттаңыз - ЖИ-кодер оны жинайды, ал ойын өз сілтемесімен іске қосылады.