Один из способов мотенизации это продажа GamePass.
Что это такое? Это продаваемые за роблоксы плюшки — на всегда! Да. Именно так. Вы конечно можете их не использовать в игре или отключить отображение в Магазине игры на сайте Roblox, но вот удалить их у вас уже никак не получится. А по сему с этим надо быть по осторожней. Ибо не стоит создавать прецедент того, что у вас кто его купил и в игре не получил обещанное и как результат — пожаловался на автора игры, т.е. на вас.
За базу возьму данное видео.
А также документацию — https://developer.roblox.com/en-us/articles/Game-Passes-One-Time-Purchases
И добавим GamePass в мою многострадальную тестовую игру https://www.roblox.com/games/4587789852/NecroWorld
Открываем страницу игры и в ней вкладку магазина — Store
Как видим у нас нет ничего на продажу, но есть вариант добавить «Add Pass». Что мы сейчас и будем делать. Жмём туда! И попадаем на страницу создания (и обслуживания) наших GamePass.
Первой строкой указана игра, для которой мы создаём GamePass. Второй строкой — выбор картинки для GamePass. Это должна быть квадратная картинка с размерами от 150*150, из которой будет взята круглая внутренность. На картинках документации это наглядно продемонстрировано:
Следующей строкой у нас идёт название нашего игрового пропуска. Краткое и ёмкое!
А вот в Description — нужно как можно детальней описать, какое именно преимущество в игре даст игроку покупка данного пропуска.
К сожалению, всё заполняется исключительно на англицком языке. И ещё один нюанс — очень важный! Все картинки проходят модерацию и они должны быть либо нейтральными, либо однозначно указывать на ДЕТСКУЮ аудиторию! Иначе можно словить бан аккаунта. (Проверено на себе, когда я взял картинку тёток: ангела и бесовки) Для начала он будет временный.
После чего жмём Prevew и.. Veryfy Upload и внизу у нас появится наш новый пропуск. Жмём шестерёнку и идём настраивать наш новый пропуск — Configure.
Первое — перепроверяем имя — т.к. подставляется имя файла. Второе: если видим песочные часы — значит наша картинка ещё на модерации. Третье: описание должно быть исключительно на английском.
И если всё верно, то жмём Sales. И вне зависимости от того исправляли вы что либо или нет — жмём Save.
Теперь переключаем рычажок (1) и появляется дополнительное поле для ввода стоимости (2) нашего пропуска:
Тут так же будет указано — сколько робуксов уйдёт хозяевам платформы Roblox (3) от продажи и сколько вам (4) в зависимости от вашего статуса.
Снова жмём Save и следом «Go to Details»
Поздравляю! Вы сейчас не только создали пропуск, но и стали его обладателем, как разработчик! В этом вы можете убедиться наличием кнопки Delete в меню.
Внимание! Если вы удалите его, то робуксы вам не прибавятся, а вернуть его вы сможете, только купив его у самого себя.
Если теперь вернуться в магазин игры (щёлкнув по иконке игры, например), то в её магазине Store вы увидите наличие данного GamePass.
Соответственно щёлкнув по нему мы перейдём на страницу самого GamePass. И… Пока я писал всё это, моя картинка прошла модерацию. А теперь разберёмся, что же мы видим?
- Кто создал
- Уже в инвентаре
- Цена
- Тип
- Дата создания/обновления
- Описание
- К чему относится
Но нас на этой странице больше всего интересует не её содержание, а её адрес! Точней, цифровой код содержащийся в нём. В моём случае это: 7988151
Это и есть ссылка на наш GamePass для использования его в игре.
Теперь переходим ко второй части — использование этого в игре. В том числе и покупки их из игры! Иначе какой в этом смысл?
Но, для начала создадим второй пропуск и удалим его. Проверить же надо?! 🙂
Как видим первый (7986207) мы должны купить, а второй (7988151) у нас в наличии.
Просто создадим две кнопки UI в одной будет покупка двойной скорости, во второй — светлячок. С соответствующими названиями и текстовым содержанием. Ну и ещё по локальному скрипту в них кинем.
local id=7988151 -- id GamePass script.Parent.MouseButton1Down:Connect(function() game:GetService("MarketplaceService"):PromptGamePassPurchase(game.Players.LocalPlayer,id) -- вызов метода покупки GamePass end)
Данный код будет выполняться когда мы будем нажимать на соответствующую кнопку. Соответственно id должен быть в коде разный!
Запускаем?
Такой ответ получаем при нажатии на кнопку светлячка — Вы уже владеете данным предметом.
И такой ответ, при нажатии кнопки двойной скорости — Вы собираетесь купить продукт двойная скорость за 1000 робуксов. Купить — Отказаться.
Что мы имеем? Мы осуществили мечту — покупку пропусков как на сайте, так и из игры.
Что осталось? Проверять их наличие и соответственно исполнять то, для чего они куплены.
Добавляем скрипты в ServerScriptService — GamePassID
-- сокрытие приобретённых кнопок в копии скрипта Gamepasshide local id1 = 7986207 -- id gamepass - оно же и в названии скрипта local id2 = 7988151 -- FireFly -- проверка на совершении покупки game:GetService("MarketplaceService").PromptGamePassPurchaseFinished:Connect(function(plr,ido,purchased) if purchased and ido == id1 then -- пропуск с id1 plr.Character.Humanoid.WalkSpeed = 30 end if purchased and ido == id2 then -- пропуск с id2 plr.Character.Humanoid.JumpPower= 100 end end) -- проверка уже приобретённого пропуска при подключении игрока game.Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:connect(function(char) if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(game.Players[char.Name].UserId, id1) then char.Humanoid.WalkSpeed = 30 end if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(game.Players[char.Name].UserId, id2) then char.Humanoid.JumpPower = 100 end end) end)
(game.Players[char.Name].UserId, id1) Правильный код! Подмена работает странно…
Для наглядности, вместо светлячка увеличивается высота прыжка. Запускаем и наслаждаемся!
Прыжок увеличен сразу после входа игрока. А скорость бега увеличивается, как только мы производим покупку.
Что собственно нам и нужно было.
Честно говоря я запарился делать такой длинный урок, который на видео помещается в менее, чем 7 минут. А ведь ещё, по уму, надо скрывать уже приобретённые геймпассы.
Ну и как обычно — результат всего этого можно увидеть в игре:
https://www.roblox.com/games/4587789852/NecroWorld
90% забирают себе? Охренеть! Приватный сервер и прочие услуги (если они есть) такой же грабёж?
А при выводе в доллары сколько себе забирают? Я слышал что, там и так конверсия низкая.
Именно так. Поэтому, основная ставка заработка не на покупки в игре, а на время нахождения игроков в игре. Но тут уж всё зависит от интересности игры.
Не работает, только испортил игру
Всё прекрасно работает.
>время нахождения игроков в игре
А как монетизируется время в игре? В первый раз слышу. Можно подробнее?
Честно говоря тонкостей мне не известно.
Но периодически приходят письма примерно такого содержания:
«В Вашей игре находился VIP игрок, за что Вам начислены бонусные робуксы».