239 lines
7.1 KiB
C#
239 lines
7.1 KiB
C#
using MySql.Data.MySqlClient;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.Networking;
|
|
using System.Collections;
|
|
|
|
public class HistoryScoreLoader : MonoBehaviour
|
|
{
|
|
public TextMeshProUGUI txtnamaUser;
|
|
public TextMeshProUGUI txtNoAbsen;
|
|
public TextMeshProUGUI txtHistoryScore;
|
|
public TextMeshProUGUI txtPostestScore;
|
|
public TextMeshProUGUI txtLevelScore;
|
|
|
|
private void Start()
|
|
{
|
|
LoadUserInfo();
|
|
StartCoroutine(LoadScoresFromAPI());
|
|
}
|
|
|
|
void LoadUserInfo()
|
|
{
|
|
if (GlobalUser.Instance != null)
|
|
{
|
|
txtnamaUser.text = "Nama: " + GlobalUser.Instance.namaUser;
|
|
txtNoAbsen.text = "No Absen: " + GlobalUser.Instance.noAbsen;
|
|
}
|
|
else
|
|
{
|
|
txtnamaUser.text = "Nama: Tidak Dikenal";
|
|
txtNoAbsen.text = "No Absen: Tidak Dikenal";
|
|
}
|
|
}
|
|
|
|
IEnumerator LoadScoresFromAPI()
|
|
{
|
|
int userId = GlobalUser.Instance != null ? GlobalUser.Instance.userId : -1;
|
|
|
|
if (userId == -1)
|
|
{
|
|
txtNoAbsen.text = "Belum ada data.";
|
|
txtHistoryScore.text = "Belum ada data.";
|
|
txtPostestScore.text = "Belum ada data.";
|
|
txtLevelScore.text = "Belum ada data.";
|
|
yield break;
|
|
}
|
|
|
|
string url = "https://wifiapi.wazzgroup.com/api.php";
|
|
|
|
WWWForm form = new WWWForm();
|
|
form.AddField("api", "get_history_score");
|
|
form.AddField("id", userId);
|
|
|
|
|
|
UnityWebRequest request = UnityWebRequest.Post(url, form);
|
|
yield return request.SendWebRequest();
|
|
|
|
#if UNITY_2020_1_OR_NEWER
|
|
if (request.result != UnityWebRequest.Result.Success)
|
|
#else
|
|
if (request.isNetworkError || request.isHttpError)
|
|
#endif
|
|
{
|
|
Debug.LogError("Gagal mengambil data dari API: " + request.error);
|
|
txtHistoryScore.text = "Gagal memuat skor.";
|
|
txtPostestScore.text = "Gagal memuat skor.";
|
|
txtNoAbsen.text = "Gagal memuat data.";
|
|
txtLevelScore.text = "Gagal memuat skor.";
|
|
}
|
|
else
|
|
{
|
|
string json = request.downloadHandler.text;
|
|
HistoryScoreData data = JsonUtility.FromJson<HistoryScoreData>(json);
|
|
|
|
if (data.success)
|
|
{
|
|
|
|
txtHistoryScore.text = "Skor Pretest: " + data.pretest;
|
|
txtPostestScore.text = "Skor Postest: " + data.postest;
|
|
txtLevelScore.text = "Level Tertinggi: Level " + data.highestLevel + "\nSkor: " + data.highestScore;
|
|
}
|
|
else
|
|
{
|
|
//txtNoAbsen.text = "-";
|
|
txtHistoryScore.text = "Data tidak ditemukan.";
|
|
txtPostestScore.text = "-";
|
|
txtLevelScore.text = "-";
|
|
}
|
|
}
|
|
}
|
|
|
|
[System.Serializable]
|
|
public class HistoryScoreData
|
|
{
|
|
public bool success;
|
|
public int pretest;
|
|
public int postest;
|
|
public string no_absen;
|
|
public int highestLevel;
|
|
public int highestScore;
|
|
}
|
|
|
|
//public TextMeshProUGUI txtnamaUser;
|
|
|
|
//public TextMeshProUGUI txtHistoryScore;
|
|
//public TextMeshProUGUI txtLevelScore;
|
|
//public TextMeshProUGUI txtNoAbsen;
|
|
|
|
|
|
//private string connectionString;
|
|
//private MySqlConnection connection;
|
|
//private MySqlCommand command;
|
|
|
|
//void Start()
|
|
//{
|
|
// LoadUserInfo();
|
|
// LoadHistoryScore();
|
|
// LoadLevelTertinggiScore();
|
|
//}
|
|
|
|
//void LoadUserInfo()
|
|
//{
|
|
// if (GlobalUser.Instance != null)
|
|
// {
|
|
// txtnamaUser.text = "Nama: " + GlobalUser.Instance.namaUser;
|
|
// }
|
|
// else
|
|
// {
|
|
// txtnamaUser.text = "Nama: Tidak Dikenal";
|
|
// }
|
|
//}
|
|
|
|
//void Koneksi()
|
|
//{
|
|
// connectionString = "Server=127.0.0.1; Database=game; User=root; Password=; Charset=utf8;";
|
|
// connection = new MySqlConnection(connectionString);
|
|
// connection.Open();
|
|
//}
|
|
|
|
//void LoadHistoryScore()
|
|
//{
|
|
// try
|
|
// {
|
|
// Koneksi();
|
|
|
|
// int userId = GlobalUser.Instance != null ? GlobalUser.Instance.userId : -1;
|
|
|
|
// if (userId == -1)
|
|
// {
|
|
// Debug.LogWarning("User ID tidak ditemukan.");
|
|
// txtHistoryScore.text = "Belum ada data.";
|
|
// return;
|
|
// }
|
|
|
|
// string query = "SELECT pretest FROM score WHERE id = @id";
|
|
// command = new MySqlCommand(query, connection);
|
|
// command.Parameters.AddWithValue("@id", userId);
|
|
|
|
// object result = command.ExecuteScalar();
|
|
|
|
// if (result != null && float.TryParse(result.ToString(), out float score))
|
|
// {
|
|
// //txtHistoryScore.text = "Skor Pretest: " + score.ToString("F2");
|
|
// txtHistoryScore.text = "Skor Pretest: " + Mathf.RoundToInt(score).ToString();
|
|
|
|
// }
|
|
// else
|
|
// {
|
|
// txtHistoryScore.text = "Belum ada skor yang tersimpan.";
|
|
// }
|
|
|
|
// connection.Close();
|
|
// }
|
|
// catch (MySqlException ex)
|
|
// {
|
|
// Debug.LogError("Gagal mengambil skor history: " + ex.Message);
|
|
// txtHistoryScore.text = "Gagal memuat skor.";
|
|
// }
|
|
//}
|
|
|
|
//// Fungsi untuk memuat skor level tertinggi dari database
|
|
//void LoadLevelTertinggiScore()
|
|
//{
|
|
// int skorTertinggi = 0;
|
|
// int levelTertinggi = 0;
|
|
|
|
// try
|
|
// {
|
|
// Koneksi();
|
|
|
|
// int userId = GlobalUser.Instance != null ? GlobalUser.Instance.userId : -1;
|
|
|
|
// if (userId == -1)
|
|
// {
|
|
// Debug.LogWarning("User ID tidak ditemukan.");
|
|
// txtLevelScore.text = "Belum ada data.";
|
|
// return;
|
|
// }
|
|
|
|
// // Loop untuk mengambil skor dari level 1 hingga 10 dari database
|
|
// for (int i = 1; i <= 10; i++)
|
|
// {
|
|
// string query = $"SELECT level{i} FROM high_score WHERE id_score = @id";
|
|
// command = new MySqlCommand(query, connection);
|
|
// command.Parameters.AddWithValue("@id", userId);
|
|
|
|
// object result = command.ExecuteScalar();
|
|
|
|
// if (result != null && int.TryParse(result.ToString(), out int skor))
|
|
// {
|
|
// if (skor > skorTertinggi)
|
|
// {
|
|
// skorTertinggi = skor;
|
|
// levelTertinggi = i;
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// connection.Close();
|
|
|
|
// if (skorTertinggi > 0)
|
|
// {
|
|
// txtLevelScore.text = "Level Tertinggi: Level " + levelTertinggi + "\nSkor: " + skorTertinggi;
|
|
// // txtLevelScore.text = "Skor Tertinggi: " + skorTertinggi;
|
|
// }
|
|
// else
|
|
// {
|
|
// // txtLevelScore.text = "Skor Tertinggi: -";
|
|
// txtLevelScore.text = "Level Tertinggi: -\nSkor: -";
|
|
// }
|
|
// }
|
|
// catch (MySqlException ex)
|
|
// {
|
|
// Debug.LogError("Gagal mengambil skor level tertinggi: " + ex.Message);
|
|
// txtLevelScore.text = "Gagal memuat skor.";
|
|
// }
|
|
//}
|
|
}
|