C# 反系统时间欺骗未完全工作
发生了什么事: 除了在使用离线硬币计数始终为0后的一段时间外,它在大多数情况下都有效。我正在努力做到这一点,这样玩家就不能仅仅改变他们的系统时间来更快地获得更多的钱。我也没有试图通过连接服务器进行时间检查来实现这一点。有人知道出了什么问题吗 如果语句处于唤醒状态:C# 反系统时间欺骗未完全工作,c#,unity3d,systemtime,C#,Unity3d,Systemtime,发生了什么事: 除了在使用离线硬币计数始终为0后的一段时间外,它在大多数情况下都有效。我正在努力做到这一点,这样玩家就不能仅仅改变他们的系统时间来更快地获得更多的钱。我也没有试图通过连接服务器进行时间检查来实现这一点。有人知道出了什么问题吗 如果语句处于唤醒状态: if (PlayerPrefs.GetInt("offlineCheck").Equals(1)) { ButtonCanvas.gameObject.SetActive(false);
if (PlayerPrefs.GetInt("offlineCheck").Equals(1))
{
ButtonCanvas.gameObject.SetActive(false);
OfflineCanvas.gameObject.SetActive(true);
PlayerPrefs.SetInt("offlineCheck", 0);
// year not the same
if (!PlayerPrefs.GetInt("year").Equals(System.DateTime.Now.Year))
{
// Add 24 Hour Coins
if (PlayerPrefs.GetInt("year") < System.DateTime.Now.Year)
{
offlineCoinCount = PlayerPrefs.GetInt("OfflineCoinsVal") * (24 * 60);
} else {
offlineCoinCount = 0;
}
}
else
{ // same Year
// month not the same
if (!PlayerPrefs.GetInt("month").Equals(System.DateTime.Now.Month))
{
// Add 24 Hour Coins
if (PlayerPrefs.GetInt("month") < System.DateTime.Now.Month)
{
offlineCoinCount = PlayerPrefs.GetInt("OfflineCoinsVal") * (24 * 60);
} else {
offlineCoinCount = 0;
}
}
else
{ // Same Month
// day not the same
if (!PlayerPrefs.GetInt("day").Equals(System.DateTime.Now.Day))
{
// Add 24 hours?
if (PlayerPrefs.GetInt("day") < System.DateTime.Now.Day)
{
offlineCoinCount = PlayerPrefs.GetInt("OfflineCoinsVal") * (24 * 60);
} else {
offlineCoinCount = 0;
}
}
else
{ // Same Day
// hour not the same
if (!PlayerPrefs.GetInt("timeHour").Equals(System.DateTime.Now.Hour))
{
// Add Coins
if (PlayerPrefs.GetInt("timeHour") < System.DateTime.Now.Hour)
{
offlineCoinCount = PlayerPrefs.GetInt("OfflineCoinsVal") * (((System.DateTime.Now.Hour - PlayerPrefs.GetInt("timeHour")) * 60) - (System.DateTime.Now.Minute - PlayerPrefs.GetInt("timeMin")));
} else {
offlineCoinCount = 0;
}
}
else
{ // Same hour
// min not the same
if (!PlayerPrefs.GetInt("timeMin").Equals(System.DateTime.Now.Minute))
{
// Add coins
offlineCoinCount = PlayerPrefs.GetInt("OfflineCoinsVal") * (System.DateTime.Now.Minute - PlayerPrefs.GetInt("timeMin"));
}
else
{ // Same min
}
}
}
}
}
}
if(PlayerPrefs.GetInt(“离线检查”).Equals(1))
{
ButtonCanvas.gameObject.SetActive(false);
OfflineCanvas.gameObject.SetActive(true);
PlayerPrefs.SetInt(“离线检查”,0);
//今年不一样
如果(!PlayerPrefs.GetInt(“年”)等于(System.DateTime.Now.year))
{
//添加24小时硬币
if(PlayerPrefs.GetInt(“年”)
此反时间欺骗的其余代码
private void OnApplicationQuit()
{
saveDateTime();
PlayerPrefs.SetInt("offlineCheck", 1);
//offlineCoinCount = 0;
}
private void OnApplicationFocus(bool focus)
{
saveDateTime();
PlayerPrefs.SetInt("offlineCheck", 1);
//offlineCoinCount = 0;
}
private void OnApplicationPause(bool pause)
{
saveDateTime();
PlayerPrefs.SetInt("offlineCheck", 1);
//offlineCoinCount = 0;
}
public void saveDateTime()
{
//Player Restart Game
//////
/// Check Time for coin bonus
////
if (PlayerPrefs.GetInt("year").Equals(System.DateTime.Now.Year))
{ // Same Year
if (PlayerPrefs.GetInt("month").Equals(System.DateTime.Now.Month))
{ // Same Month
if (PlayerPrefs.GetInt("day").Equals(System.DateTime.Now.Day))
{ // Same Day
if (PlayerPrefs.GetInt("timeHour").Equals(System.DateTime.Now.Hour))
{ // Same Hour
if (PlayerPrefs.GetInt("timeMin").Equals(System.DateTime.Now.Minute))
{ // Same Minute
}
else
{ // Different Minute
// Update if new Minute is higher than old
if (PlayerPrefs.GetInt("timeMin") < System.DateTime.Now.Month)
{
PlayerPrefs.SetInt("timeMin", System.DateTime.Now.Minute);
}
}
}
else
{ //Different Hour
// Update if new hour is higher than old
if (PlayerPrefs.GetInt("timeHour") < System.DateTime.Now.Month)
PlayerPrefs.SetInt("timeHour", System.DateTime.Now.Hour);
PlayerPrefs.SetInt("timeMin", System.DateTime.Now.Minute);
}
}
else
{ // Different Day
// Update if new day is higher than old
if (PlayerPrefs.GetInt("day") < System.DateTime.Now.Month)
{
PlayerPrefs.SetInt("day", System.DateTime.Now.Year);
PlayerPrefs.SetInt("timeHour", System.DateTime.Now.Hour);
PlayerPrefs.SetInt("timeMin", System.DateTime.Now.Minute);
}
}
}
else
{ // Different Month
// Update if new month is higher than old
if (PlayerPrefs.GetInt("month") < System.DateTime.Now.Month)
{
PlayerPrefs.SetInt("month", System.DateTime.Now.Year);
PlayerPrefs.SetInt("day", System.DateTime.Now.Year);
PlayerPrefs.SetInt("timeHour", System.DateTime.Now.Hour);
PlayerPrefs.SetInt("timeMin", System.DateTime.Now.Minute);
}
}
}
else
{ // Different Year
// Update if new year is higher than old
if (PlayerPrefs.GetInt("year") < System.DateTime.Now.Year)
{
PlayerPrefs.SetInt("year", System.DateTime.Now.Year);
PlayerPrefs.SetInt("month", System.DateTime.Now.Year);
PlayerPrefs.SetInt("day", System.DateTime.Now.Year);
PlayerPrefs.SetInt("timeHour", System.DateTime.Now.Hour);
PlayerPrefs.SetInt("timeMin", System.DateTime.Now.Minute);
}
}
}
applicationquit()上的私有void
{
saveDateTime();
PlayerPrefs.SetInt(“离线检查”,1);
//offlineCoinCount=0;
}
应用程序焦点上的私有无效(布尔焦点)
{
saveDateTime();
PlayerPrefs.SetInt(“离线检查”,1);
//offlineCoinCount=0;
}
应用程序暂停时的私有无效(布尔暂停)
{
saveDateTime();
PlayerPrefs.SetInt(“离线检查”,1);
//offlineCoinCount=0;
}
public void saveDateTime()
{
//玩家重启游戏
//////
///检查硬币奖金的时间
////
if(PlayerPrefs.GetInt(“年”).Equals(System.DateTime.Now.year))
{//同年
if(PlayerPrefs.GetInt(“月”).Equals(System.DateTime.Now.month))
{//同月
if(PlayerPrefs.GetInt(“day”).Equals(System.DateTime.Now.day))
{//当天
if(PlayerPrefs.GetInt(“timeHour”).Equals(System.DateTime.Now.Hour))
{//同一时间
if(PlayerPrefs.GetInt(“timeMin”).Equals(System.DateTime.Now.Minute))
{//同一分钟
}
其他的
{//不同的分钟
//如果新分钟数高于旧分钟数,则更新
if(PlayerPrefs.GetInt(“timeMin”)