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

Ойын ішіндегі дүкен: витриналар, тауарлар және бағалар

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

Дүкен - дайын жүйе: ойыныңыздағы дүкен экраны және сатып алулардың серверлік логикасы. Витриналар мен тауарларды кабинетте баптайсыз, ал әр сатып алуда сервер бағаны, шектерді және ротацияны өзі тексереді. Сатып алуды ойыннан жалғандауға болмайды, ал дүкенге өз серверіңіз керек емес.

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

  • Қойындылар түріндегі витриналар. Витринаның бірінші бөлімі - карусель, қалғандары - карточкалар торы.
  • Тегін күн сыйлығы, алынғанша жарқырап тұрады.
  • Карточкалардағы таймерлер: «жаңаруына», «ашылуына», «сатылып кетті».
  • Сатып алуды растау терезесі (телефонда төменгі панель).
  • «Сіз алдыңыз» анимациясы: марапаттар баланс есептегіштеріне ұшады.
  • Тегін тауар күтіп тұрғанда дүкен қойындысындағы белгі.
Дүкен
12 450
320
Күнделікті1
Валюта
Жинақтар
Күн ұсыныстары Жаңаруына 15:40:12
Күн сыйлығы
ТЕГІН
Батыр қылышы
1 200
Жабдық сандығы
90
Сатылып кетті
500 монета
$0.99
Тиімді1 200 монета
$1.99
Алғашқы сатып алу x2
Витриналар - қойындылар; белгі күтіп тұрған тегін тауарларды санайды.
Ротация таймері: ол біткенде сервер слоттағы тауарларды ауыстырады.
Тегін күн сыйлығы алынғанша жарқырап тұрады.
«Сатылып кетті»: осы терезедегі шек таусылды.
Белгілер мен алғашқы сатып алу бонусы тауар баптауларынан алынады.
Мысал. Ойыншы көретін дүкен экраны, әдепкі түрде. Түрі src/ui.config.ts файлында өзгертіледі.

Дүкен қалай құрылған

Дүкен - ағаш: витрина → бөлімдер → слоттар → тауар.

  • Тауар - не сатылады: баға, марапаттар, шектер, белгілер («тиімді», «x2»). Тауарлар бір каталогта тұрады.
  • Слот - витрина сөресіндегі орын. Тауарды тек слот арқылы сатып алуға болады: ешбір слотта тұрмаған тауар мүлде сатылмайды.
  • Ротация: слот пулдан тауар көрсетіп, оны кесте бойынша ауыстыра алады, күн дүкені сияқты. Ротацияны сервер есептейді, сондықтан ойыншы кез келген құрылғыда бірдей дүкенді көреді.
Витрина«Күн дүкені»
Бөлім«Күн ұсыныстары»
Слоттар
1-слот: әрқашан күн сыйлығы
2-слот: 6 тауардың бірі, әр 24 сағ сайын жаңа
3-слот: терезе ашылғанша бос
Тауарлар каталогыбаға, марапаттар, шектер
Слотсыз тауар сатылмайды
Мысал. Кабинетте витрина қалай құрылады: тауар тек слот арқылы сатылады.

Бағалар

Ойыншы немен төлейдіҚалай жұмыс істейді
Ойын валютасы, заттарОйыншы балансынан алынады
Нақты ақшаҚосымшалар дүкеніндегі сатып алу; түбіртекті сервер тексереді
Жарнама көруОйыншы тапқан жарнама көруін жұмсайды (жарнамасы бар жинақтар)
ЕштеңеТегін тауар; шек міндетті, әйтпесе сервер сатпайды

Сызылған «ескі» бағаны көрсетуге болады, ал жеңілдік пайызын сервер есептейді. Бір тауардың бірнеше баға нұсқасы болуы мүмкін, мысалы монета немесе кристалл.

Сатып алу шектері

  • Барлық уақытқа - мысалы, бастапқы жинақ бір рет.
  • Күніне - UTC бойынша түн ортасында жаңарады.
  • Үзіліс - келесі сатып алу белгілі уақыттан кейін.
  • Ротация терезесіне - тауар сөреде тұрған кездегі слот шегі.

«Алғашқы сатып алу» және «сатылып кетті» белгілерін және таймерлерді сервер әр ойыншыға есептейді.

Қадам 01Жобаға дүкен қосыңыз

Idle-RPG үлгісінде мысал витринасы бар дүкен бұрыннан бар. Кез келген басқа жобаға оны ЖИ-кодер қосады: чатқа «Дүкен қос» деп жазыңыз. Ол дүкенді нөлден жазбай, дайын жүйені орнатады. Дүкен қойындысы ойыншыларға сататын нәрсе пайда болғанда көрінеді.

Қадам 02Тауарлар мен витринаны баптаңыз

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

  • Тауарлар қойындысында тауар жасаңыз: аты, бағасы, ойыншы не алатыны және шегі.
  • Витриналар қойындысында витрина жасап, оған бөлім мен слоттар қосып, тауарларды слоттарға қойыңыз.
  • Пресеттер - көп тауарға бірден қолдануға болатын ортақ баптаулар.

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

Қадам 03Тексеріп, шығарыңыз

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

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

Дүкен @idosgames/core ішіндегі client.store арқылы жұмыс істейді. Экранды getStorefront() бойынша салыңыз: бұл осы ойыншы үшін есептелген витрина (ротация, шектер, таймерлер). getDefinitions() - тек баптау, барлығына бірдей.

TypeScript
const res = await client.store.getStorefront()
if (!res.ok) return showError(res.error)

for (const store of res.data.Stores ?? [])
  for (const section of store.Sections ?? [])
    for (const slot of section.Slots ?? []) {
      // Бос слот Offer === null күйінде келеді: сөре секірмеуі үшін бос жақтау салыңыз.
      if (!slot.Offer) continue
      drawCard(slot.Offer, slot.RefreshesAtUtc)
    }

const buy = await client.store.purchase(offer.OfferID, 1, {
  selectedOptionID: option.OptionID,
  slot: { storeID: store.StoreID, sectionID: section.SectionID, slotID: slot.SlotID },
})
  • Сатып алу OFFER_NOT_IN_ROTATION қайтарса, витрина өзгерген: оны қатені көрсетпей қайта жүктеңіз.
  • Сұрау жүріп жатқанда «Сатып алу» батырмасын өшіріңіз: әр purchase шақыруы - бөлек сатып алу.
  • Таймерлерді құрылғы сағатынан емес, жауаптағы ServerTimeUtc мәнінен санаңыз.
  • Қалған шектегі null «шексіз» дегенді, 0 «сатылып кетті» дегенді білдіреді.

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

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

Неге тауар каталогта бар, бірақ оны сатып алуға болмайды?

Тауар тек витрина слоты арқылы сатылады. Егер ол ешбір слотта тұрмаса, оны мүлде сатып алуға болмайды. Кабинет мұндай тауарларды бөлек «Ешбір сөреде жоқ» ескертуімен көрсетеді.

Тегін күн сыйлығын жасауға бола ма?

Иә. Бағасыз тауар - кәдімгі тегін тауар, бірақ оның шегі болуы керек, мысалы күніне бір рет. Шегі жоқ тегін тауарды сервер сатпайды.

Сатып алуларды өз серверімде тексеру керек пе?

Жоқ. iDos Games сервері әр сатып алуда бағаны, шектерді және ротацияны тексереді. Ойын тек витринаны көрсетіп, сатып алуды сұрайды.

Премиум жеңілдіктері қолданыла ма?

Иә. Сервер премиум деңгейінің жеңілдіктері мен бонустарын өзі қолданады. Ойын нақты не алынғанын және не берілгенін сатып алу жауабынан оқиды.

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

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

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