Мне нужна помощь в написании системы для моей игры на Unity, которая выбрасывает предмет из общего пула добычи каждые 2 часа, а предмет из редкого пула добычи каждые 10 часов. Моя игра на Unity — это простая игра-кликер, которая содержит изображение, на которое можно щелкнуть, и когда вы щелкаете по изображению, номер текста увеличивается на 1. У меня уже реализован Steamworks.net, мне нужна помощь в структуре файла JSON (ItemDefinitons .json), который вы загружаете на веб-сайт Steamworks, и скрипт, который сообщает Steam выбрасывать предмет из общего пула добычи каждые 2 часа, а предмет из редкого пула добычи каждые 10 часов. Кроме того, вам нужно хотя бы один раз нажать на эти временные метки, большое спасибо! Если хотите, чтобы я с вами связался, напишите свой контакт в комментариях! Спасибо!
using UnityEngine;
using Steamworks;
using System.Collections.Generic;
public class ItemDropManager : MonoBehaviour
{
private const int ThreeHourInterval = 7200;
private const int EighteenHourInterval = 36000; // 18 hours in seconds
private List threeHourItems = new List { ITEM_DEF_ID1, ITEM_DEF_ID2 }; // will replace with item def ids, just help me make the json file using steam inventory schema
private List eighteenHourItems = new List { ITEM_DEF_ID3, ITEM_DEF_ID4 }; // will replace with item def ids, just help me make the json file using steam inventory schema
private void Start()
{
InvokeRepeating(nameof(CheckForItemDrop), 0, 180); // 3 minute checks
}
private void CheckForItemDrop()
{
long lastThreeHourDropTime = PlayerPrefs.GetInt("LastThreeHourDropTime", 0);
long lastEighteenHourDropTime = PlayerPrefs.GetInt("LastEighteenHourDropTime", 0);
long currentTime = (long)(System.DateTime.UtcNow - new System.DateTime(1970, 1, 1)).TotalSeconds;
if (currentTime - lastThreeHourDropTime >= ThreeHourInterval)
{
RequestItemDrop(threeHourItems);
PlayerPrefs.SetInt("LastThreeHourDropTime", (int)currentTime);
}
if (currentTime - lastEighteenHourDropTime >= EighteenHourInterval)
{
RequestItemDrop(eighteenHourItems);
PlayerPrefs.SetInt("LastEighteenHourDropTime", (int)currentTime);
}
}
private void RequestItemDrop(List itemDefs)
{
int randomIndex = Random.Range(0, itemDefs.Count);
int itemDefId = itemDefs[randomIndex];
SteamInventoryResult_t result;
bool success = SteamInventory.AddPromoItem(out result, (SteamItemDef_t)itemDefId);
if (success)
{
SteamInventoryResultReady_t callback = new SteamInventoryResultReady_t
{
m_handle = result
};
OnInventoryResultReady(callback);
}
else
{
Debug.LogError("Failed to initiate item drop.");
}
}
private void OnInventoryResultReady(SteamInventoryResultReady_t pCallback)
{
if (pCallback.m_result == EResult.k_EResultOK)
{
Debug.Log("Items granted successfully.");
}
else
{
Debug.LogError("Failed to grant items: " + pCallback.m_result);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... ry-service
Служба инвентаря Steam Unity ⇐ C#
Место общения программистов C#
1719506854
Anonymous
Мне нужна помощь в написании системы для моей игры на Unity, которая выбрасывает предмет из общего пула добычи каждые 2 часа, а предмет из редкого пула добычи каждые 10 часов. Моя игра на Unity — это простая игра-кликер, которая содержит изображение, на которое можно щелкнуть, и когда вы щелкаете по изображению, номер текста увеличивается на 1. У меня уже реализован Steamworks.net, мне нужна помощь в структуре файла JSON (ItemDefinitons .json), который вы загружаете на веб-сайт Steamworks, и скрипт, который сообщает Steam выбрасывать предмет из общего пула добычи каждые 2 часа, а предмет из редкого пула добычи каждые 10 часов. Кроме того, вам нужно хотя бы один раз нажать на эти временные метки, большое спасибо! Если хотите, чтобы я с вами связался, напишите свой контакт в комментариях! Спасибо!
using UnityEngine;
using Steamworks;
using System.Collections.Generic;
public class ItemDropManager : MonoBehaviour
{
private const int ThreeHourInterval = 7200;
private const int EighteenHourInterval = 36000; // 18 hours in seconds
private List threeHourItems = new List { ITEM_DEF_ID1, ITEM_DEF_ID2 }; // will replace with item def ids, just help me make the json file using steam inventory schema
private List eighteenHourItems = new List { ITEM_DEF_ID3, ITEM_DEF_ID4 }; // will replace with item def ids, just help me make the json file using steam inventory schema
private void Start()
{
InvokeRepeating(nameof(CheckForItemDrop), 0, 180); // 3 minute checks
}
private void CheckForItemDrop()
{
long lastThreeHourDropTime = PlayerPrefs.GetInt("LastThreeHourDropTime", 0);
long lastEighteenHourDropTime = PlayerPrefs.GetInt("LastEighteenHourDropTime", 0);
long currentTime = (long)(System.DateTime.UtcNow - new System.DateTime(1970, 1, 1)).TotalSeconds;
if (currentTime - lastThreeHourDropTime >= ThreeHourInterval)
{
RequestItemDrop(threeHourItems);
PlayerPrefs.SetInt("LastThreeHourDropTime", (int)currentTime);
}
if (currentTime - lastEighteenHourDropTime >= EighteenHourInterval)
{
RequestItemDrop(eighteenHourItems);
PlayerPrefs.SetInt("LastEighteenHourDropTime", (int)currentTime);
}
}
private void RequestItemDrop(List itemDefs)
{
int randomIndex = Random.Range(0, itemDefs.Count);
int itemDefId = itemDefs[randomIndex];
SteamInventoryResult_t result;
bool success = SteamInventory.AddPromoItem(out result, (SteamItemDef_t)itemDefId);
if (success)
{
SteamInventoryResultReady_t callback = new SteamInventoryResultReady_t
{
m_handle = result
};
OnInventoryResultReady(callback);
}
else
{
Debug.LogError("Failed to initiate item drop.");
}
}
private void OnInventoryResultReady(SteamInventoryResultReady_t pCallback)
{
if (pCallback.m_result == EResult.k_EResultOK)
{
Debug.Log("Items granted successfully.");
}
else
{
Debug.LogError("Failed to grant items: " + pCallback.m_result);
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78678930/unity-steam-inventory-service[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия