ログインボーナスはサーバーから時間を取得した方が不正を防止できますが、
今回コスト面を考えて、
サーバー無しで不正ログインを検出する完全オレオレログインボーナスを作りました。
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LoginBonus : MonoBehaviour
{
private enum LOGIN_TYPE
{
FIRST_USER_LOGIN,
TODAY_LOGIN,
ALREADY_LOGIN,
ERROR_LOGIN
}
private int todayDate = 0;
private int lastDate;
private LOGIN_TYPE judge_type;
void Start()
{
DateTime now = DateTime.Now;
todayDate = now.Year * 10000 + now.Month * 100 + now.Day;
lastDate = PlayerPrefs.GetInt("LastGetDate", (int)LOGIN_TYPE.FIRST_USER_LOGIN);
if (lastDate < todayDate)
{
judge_type = LOGIN_TYPE.TODAY_LOGIN;
}
else if (lastDate == todayDate)
{
judge_type = LOGIN_TYPE.ALREADY_LOGIN;
}
else if (lastDate > todayDate)
{
judge_type = LOGIN_TYPE.ERROR_LOGIN;
}
switch (judge_type)
{
case LOGIN_TYPE.TODAY_LOGIN:
if (lastDate == (int)LOGIN_TYPE.FIRST_USER_LOGIN)
{
}
else
{
}
break;
case LOGIN_TYPE.ALREADY_LOGIN:
break;
case LOGIN_TYPE.ERROR_LOGIN:
break;
}
PlayerPrefs.SetInt("LastGetDate", todayDate);
PlayerPrefs.Save();
}
}