thieumao

SQLiteKitScript v2

Aug 5th, 2015
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 21.60 KB | None | 0 0
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using System.Collections;
  4. using System;
  5. using System.IO;
  6. using System.Threading;
  7. using System.Diagnostics;
  8. using System.Collections.Generic;
  9. using Debug = UnityEngine.Debug;
  10.  
  11. public class SQLiteKitScript : MonoBehaviour
  12. {
  13.     //
  14.     // DataUser
  15.     //
  16.     private string DataUser = "DataUser0";
  17.  
  18.     // Query Create DataUser
  19.     private string tbl_HeroUser =
  20.         "CREATE TABLE IF NOT EXISTS tbl_HeroUser (id_hero INTEGER, id_unlockhero INTEGER, id_skill INTEGER, level_hero INTEGER, attack INTEGER, unlock INTEGER);";
  21.     private string tbl_LevelUser =
  22.             "CREATE TABLE IF NOT EXISTS tbl_LevelUser (id_level INTEGER, play INTEGER, unlock INTEGER, top_dame INTEGER, top_move INTEGER);";
  23.  
  24.     // Query Select DataUser
  25.     private string tbl_HeroUserSelect = "SELECT * FROM tbl_HeroUser;";
  26.     private string tbl_LevelUserSelect = "SELECT * FROM tbl_LevelUser;";
  27.  
  28.     // Query Insert DataUser
  29.     private string tbl_HeroUserInsert =
  30.         "INSERT INTO tbl_HeroUser (id_hero,id_unlockhero,id_skill,level_hero,attack,unlock) VALUES(?,?,?,?,?,?);";
  31.     private string tbl_LevelUserInsert =
  32.         "INSERT INTO tbl_LevelUser (id_level,play,unlock,top_dame,top_move) VALUES(?,?,?,?,?);";
  33.  
  34.     //
  35.     // DataGame
  36.     //
  37.     private string DataGame = "DataGame0";
  38.  
  39.     // Query Create DataGame
  40.     private string tbl_Boss =
  41.             "CREATE TABLE IF NOT EXISTS tbl_Boss (id_boss INTEGER, type INTEGER, id_level INTEGER, name_boss VARCHAR, blood INTEGER, resist INTEGER, special INTEGER, move INTEGER, blood_special INTEGER, num_special INTEGER, img VARCHAR);";
  42.     private string tbl_Draw =
  43.             "CREATE TABLE IF NOT EXISTS tbl_Draw (id INTEGER, note INTEGER, food_percent VARCHAR, food INTEGER, soul_percent VARCHAR, soul INTEGER, cube_percent VARCHAR, cube INTEGER, cube_buy INTEGER);";
  44.     private string tbl_Energy =
  45.             "CREATE TABLE IF NOT EXISTS tbl_Energy (buy INTEGER, note INTEGER, energy INTEGER, energy_buy INTEGER, buy_cube INTEGER, energy_refill VARCHAR);";
  46.     private string tbl_Hero =
  47.             "CREATE TABLE IF NOT EXISTS tbl_Hero (id_hero INTEGER, map_open INTEGER, map_gift INTEGER, type_hero INTEGER, id_skill INTEGER, name_hero VARCHAR, des VARCHAR, food INTEGER, p_food VARCHAR, soul INTEGER, p_soul VARCHAR, cube INTEGER, p_cube VARCHAR, shop_food INTEGER, shop_soul INTEGER, shop_cube INTEGER);";
  48.     private string tbl_Level =
  49.             "CREATE TABLE IF NOT EXISTS tbl_Level (id_level INTEGER, chapter INTEGER, name_level VARCHAR, energy INTEGER DEFAULT (0), w_crystal INTEGER DEFAULT (0), w_food INTEGER DEFAULT (0), w_soul INTEGER, w_energy INTEGER, w_ticket INTEGER, w_hero INTEGER, q_move INTEGER, q_h1 INTEGER, q_h2 INTEGER, q_h3 INTEGER, q_h4 INTEGER, q_h5 INTEGER, q_box INTEGER, q_boss INTEGER, q_food INTEGER, q_soul INTEGER, q_ticket INTEGER, q_crystal INTEGER, q_hero INTEGER, q_bom INTEGER, log_win VARCHAR, log_lose VARCHAR);";
  50.     private string tbl_Skill =
  51.             "CREATE TABLE IF NOT EXISTS tbl_Skill (id_skill INTEGER, type_skill INTEGER, name_skill INTEGER, level_skill INTEGER, num_gem INTEGER, dame INTEGER, range INTEGER, des VARCHAR);";
  52.     private string tbl_UnlockHero =
  53.             "CREATE TABLE IF NOT EXISTS tbl_UnlockHero (id_unlockhero INTEGER, id_hero INTEGER, level_hero INTEGER, attack INTEGER, soul INTEGER, food INTEGER, crystal INTEGER, img VARCHAR);";
  54.  
  55.     // Query Select DataGame
  56.     private string tbl_BossSelect = "SELECT * FROM tbl_Boss;";
  57.     private string tbl_DrawSelect = "SELECT * FROM tbl_Draw;";
  58.     private string tbl_EnergySelect = "SELECT * FROM tbl_Energy;";
  59.     private string tbl_HeroSelect = "SELECT * FROM tbl_Hero;";
  60.     private string tbl_LevelSelect = "SELECT * FROM tbl_Level;";
  61.     private string tbl_SkillSelect = "SELECT * FROM tbl_Skill;";
  62.     private string tbl_UnlockHeroSelect = "SELECT * FROM tbl_UnlockHero;";
  63.  
  64.     // Query Insert DataGame
  65.     private string tbl_BossInsert =
  66.         "INSERT INTO tbl_Boss (id_boss,type,id_level,name_boss,blood,resist,special,special,move,blood_special,num_special,img) VALUES(?,?,?,?,?,?,?,?,?,?,?);";
  67.     private string tbl_DrawInsert =
  68.         "INSERT INTO tbl_Draw (id,note,food_percent,food,soul_percent,soul,cube_percent,cube,cube_buy) VALUES(?,?,?,?,?,?,?,?,?);";
  69.     private string tbl_EnergyInsert =
  70.         "INSERT INTO tbl_Energy (buy,note,energy,energy_buy,buy_cube,energy_refill) VALUES(?,?,?,?,?,?);";
  71.     private string tbl_HeroInsert =
  72.         "INSERT INTO tbl_Hero (id_hero,map_open,map_gift,type_hero,id_skill,name_hero,des,food,p_food,soul,p_soul,cube,p_cube,shop_food,shop_soul,shop_cube) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
  73.     private string tbl_LevelInsert =
  74.         "INSERT INTO tbl_Level (id_level,chapter,name_level,energy,w_crystal,w_food,w_soul,w_energy,w_ticket,w_hero,q_move,q_h1,q_h2,q_h3,q_h4,q_h5,q_box,q_boss,q_food,q_soul,q_ticket,q_crystal,q_hero,q_bom,log_win,log_lose) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
  75.     private string tbl_SkillInsert =
  76.         "INSERT INTO tbl_Skill (id_skill,type_skill,name_skill,level_skill,num_gem,dame,range,des) VALUES(?,?,?,?,?,?,?,?);";
  77.     private string tbl_UnlockHeroInsert =
  78.         "INSERT INTO tbl_UnlockHero (id_unlockhero,id_hero,level_hero,attack,soul,food,crystal,img) VALUES(?,?,?,?,?,?,?,?);";
  79.  
  80.     //
  81.     // Other
  82.     //
  83.     private string password = "thieumao";
  84.     private SQLiteDB db = null;
  85.  
  86.     // Use this for initialization
  87.     void Start()
  88.     {
  89.         print("chay roi");
  90.         createDataUser(password);
  91.         createDataGame(password);
  92.         //GetHeroesUserData();
  93.         //tbl_HeroUser,tbl_LevelUser
  94.         //tbl_Boss tbl_Draw tbl_Energy tbl_Hero tbl_Level lbl_Skill tbl_UnlockHero
  95. //        converttbl_HeroUser();
  96. //        converttbl_LevelUser();
  97. //
  98. //        converttbl_Boss();
  99. //        converttbl_Draw();
  100. //        converttbl_Energy();
  101. //        converttbl_Hero();
  102. //        converttbl_Level();
  103. //        converttbl_Skill();
  104. //        converttbl_UnlockHero();
  105.  
  106.     }
  107.  
  108.     // Update is called once per frame
  109.     void Update()
  110.     {
  111.     }
  112.  
  113.     private void createDataUser(string password)
  114.     {
  115.         string heykey = Md5Sum(password);
  116.         string pass = "PRAGMA hexkey=\"0x" + heykey + "\";";
  117.         // tat ma hoa
  118.         pass = "PRAGMA hex";
  119.  
  120.         try
  121.         {
  122.             SQLiteDB db2 = null;
  123.  
  124.             db2 = new SQLiteDB();
  125.             string filename = Application.persistentDataPath + "/" + DataUser;
  126.             File.Delete(filename);
  127.             db2.Open(filename);
  128.  
  129.             //
  130.             // set ENCRYPTION
  131.             //
  132.             SQLiteQuery qr2 = new SQLiteQuery(db2, pass);
  133.             qr2.Step();
  134.             qr2.Release();
  135.  
  136.             //
  137.             // create table
  138.             //
  139.             qr2 = new SQLiteQuery(db2, tbl_HeroUser);
  140.             qr2.Step();
  141.             qr2.Release();
  142.             qr2 = new SQLiteQuery(db2, tbl_LevelUser);
  143.             qr2.Step();
  144.             qr2.Release();
  145.  
  146.             //
  147.             // insert table
  148.             //
  149.             converttbl_HeroUser(db2);
  150.             converttbl_LevelUser(db2);
  151.  
  152.             // close
  153.             db2.Close();
  154.         }
  155.         catch (Exception e)
  156.         {
  157.         }
  158.     }
  159.  
  160.     private void createDataGame(string password)
  161.     {
  162.         string heykey = Md5Sum(password);
  163.         string pass = "PRAGMA hexkey=\"0x" + heykey + "\";";
  164.         // tat ma hoa
  165.         pass = "PRAGMA hex";
  166.  
  167.         try
  168.         {
  169.             SQLiteDB db3 = null;
  170.  
  171.             db3 = new SQLiteDB();
  172.             string filename = Application.persistentDataPath + "/" + DataGame;
  173.             File.Delete(filename);
  174.             db3.Open(filename);
  175.  
  176.             //
  177.             // set ENCRYPTION
  178.             //
  179.             SQLiteQuery qr3 = new SQLiteQuery(db3, pass);
  180.             qr3.Step();
  181.             qr3.Release();
  182.  
  183.             //
  184.             // create table
  185.             //
  186.             qr3 = new SQLiteQuery(db3, tbl_Boss);
  187.             qr3.Step();
  188.             qr3.Release();
  189.             qr3 = new SQLiteQuery(db3, tbl_Draw);
  190.             qr3.Step();
  191.             qr3.Release();
  192.             qr3 = new SQLiteQuery(db3, tbl_Energy);
  193.             qr3.Step();
  194.             qr3.Release();
  195.             qr3 = new SQLiteQuery(db3, tbl_Hero);
  196.             qr3.Step();
  197.             qr3.Release();
  198.             qr3 = new SQLiteQuery(db3, tbl_Level);
  199.             qr3.Step();
  200.             qr3.Release();
  201.             qr3 = new SQLiteQuery(db3, tbl_Skill);
  202.             qr3.Step();
  203.             qr3.Release();
  204.             qr3 = new SQLiteQuery(db3, tbl_UnlockHero);
  205.             qr3.Step();
  206.             qr3.Release();
  207.  
  208.             //tbl_Boss tbl_Draw tbl_Energy tbl_Hero tbl_Level lbl_Skill tbl_UnlockHero
  209.  
  210.             //
  211.             // insert table
  212.             //
  213.             converttbl_Boss(db3);
  214.             converttbl_Draw(db3);
  215.             converttbl_Energy(db3);
  216.             converttbl_Hero(db3);
  217.             converttbl_Level(db3);
  218.             converttbl_Skill(db3);
  219.             converttbl_UnlockHero(db3);
  220.  
  221.             // close
  222.             db3.Close();
  223.         }
  224.         catch (Exception e)
  225.         {
  226.         }
  227.     }
  228.  
  229.     //tbl_HeroUser,tbl_LevelUser
  230.     //tbl_Boss tbl_Draw tbl_Energy tbl_Hero tbl_Level lbl_Skill tbl_UnlockHero
  231.     private void converttbl_HeroUser(SQLiteDB db2)
  232.     {
  233.         LoadDatabase("DataUser");
  234.         SQLiteQuery qr = new SQLiteQuery(db, tbl_HeroUserSelect);        
  235.         while (qr.Step())
  236.         {
  237.             SQLiteQuery qr2 = new SQLiteQuery(db2, tbl_HeroUserInsert);
  238.             qr2.Bind(qr.GetInteger("id_hero"));
  239.             qr2.Bind(qr.GetInteger("id_unlockhero"));
  240.             qr2.Bind(qr.GetInteger("id_skill"));
  241.             qr2.Bind(qr.GetInteger("level_hero"));
  242.             qr2.Bind(qr.GetInteger("attack"));
  243.             qr2.Bind(qr.GetInteger("unlock"));
  244.             qr2.Step();
  245.             qr2.Release();
  246.             print("mao2 id_hero=" + qr.GetInteger("id_hero") + " attack=" + qr.GetInteger("attack"));
  247.         }
  248.     }
  249.  
  250.     private void converttbl_LevelUser(SQLiteDB db2)
  251.     {
  252.         LoadDatabase("DataUser");
  253.         SQLiteQuery qr = new SQLiteQuery(db, tbl_LevelUserSelect);
  254.         while (qr.Step())
  255.         {
  256.             SQLiteQuery qr2 = new SQLiteQuery(db2, tbl_LevelUserInsert);
  257.             qr2.Bind(qr.GetInteger("id_level"));
  258.             qr2.Bind(qr.GetInteger("play"));
  259.             qr2.Bind(qr.GetInteger("unlock"));
  260.             qr2.Bind(qr.GetInteger("top_dame"));
  261.             qr2.Bind(qr.GetInteger("top_move"));
  262.             qr2.Step();
  263.             qr2.Release();
  264.         }
  265.     }
  266.  
  267.     private void converttbl_Boss(SQLiteDB db3)
  268.     {
  269.         LoadDatabase("DataGame");
  270.  
  271.         SQLiteQuery qr = new SQLiteQuery(db, tbl_BossSelect);
  272.         while (qr.Step())
  273.         {
  274.             SQLiteQuery qr3 = new SQLiteQuery(db3, tbl_BossInsert);
  275.             qr3.Bind(qr.GetInteger("id_boss"));
  276.             qr3.Bind(qr.GetInteger("type"));
  277.             qr3.Bind(qr.GetInteger("id_level"));
  278.             qr3.Bind(qr.GetString("name_boss"));
  279.             qr3.Bind(qr.GetInteger("blood"));
  280.             qr3.Bind(qr.GetInteger("resist"));
  281.             qr3.Bind(qr.GetInteger("special"));
  282.             qr3.Bind(qr.GetInteger("move"));
  283.             qr3.Bind(qr.GetInteger("blood_special"));
  284.             qr3.Bind(qr.GetInteger("num_special"));
  285.             qr3.Bind(qr.GetString("img"));
  286.             qr3.Step();
  287.             qr3.Release();
  288.         }
  289.     }
  290.  
  291.     private void converttbl_Draw(SQLiteDB db3)
  292.     {
  293.         LoadDatabase("DataGame");
  294.  
  295.         SQLiteQuery qr = new SQLiteQuery(db, tbl_DrawSelect);
  296.         while (qr.Step())
  297.         {
  298.             SQLiteQuery qr3 = new SQLiteQuery(db3, tbl_DrawInsert);
  299.             qr3.Bind(qr.GetInteger("id"));
  300.             qr3.Bind(qr.GetInteger("note"));
  301.             qr3.Bind(qr.GetString("food_percent"));
  302.             qr3.Bind(qr.GetInteger("food"));
  303.             qr3.Bind(qr.GetString("soul_percent"));
  304.             qr3.Bind(qr.GetInteger("soul"));
  305.             qr3.Bind(qr.GetString("cube_percent"));
  306.             qr3.Bind(qr.GetInteger("cube"));
  307.             qr3.Bind(qr.GetInteger("cube_buy"));
  308.             qr3.Step();
  309.             qr3.Release();
  310.         }
  311.     }
  312.  
  313.     private void converttbl_Energy(SQLiteDB db3)
  314.     {
  315.         LoadDatabase("DataGame");
  316.  
  317.         SQLiteQuery qr = new SQLiteQuery(db, tbl_EnergySelect);
  318.         while (qr.Step())
  319.         {
  320.             SQLiteQuery qr3 = new SQLiteQuery(db3, tbl_EnergyInsert);
  321.             qr3.Bind(qr.GetInteger("buy"));
  322.             qr3.Bind(qr.GetInteger("note"));
  323.             qr3.Bind(qr.GetInteger("energy"));
  324.             qr3.Bind(qr.GetInteger("energy_buy"));
  325.             qr3.Bind(qr.GetInteger("buy_cube"));
  326.             qr3.Bind(qr.GetString("energy_refill"));
  327.             qr3.Step();
  328.             qr3.Release();
  329.         }
  330.     }
  331.  
  332.     private void converttbl_Hero(SQLiteDB db3)
  333.     {
  334.         LoadDatabase("DataGame");
  335.  
  336.         SQLiteQuery qr = new SQLiteQuery(db, tbl_HeroSelect);
  337.         while (qr.Step())
  338.         {
  339.             SQLiteQuery qr3 = new SQLiteQuery(db3, tbl_HeroInsert);
  340.             qr3.Bind(qr.GetInteger("id_hero"));
  341.             qr3.Bind(qr.GetInteger("map_open"));
  342.             qr3.Bind(qr.GetInteger("map_gift"));
  343.             qr3.Bind(qr.GetInteger("type_hero"));
  344.             qr3.Bind(qr.GetInteger("id_skill"));
  345.             qr3.Bind(qr.GetString("name_hero"));
  346.             qr3.Bind(qr.GetString("des"));
  347.             qr3.Bind(qr.GetInteger("food"));
  348.             qr3.Bind(qr.GetString("p_food"));
  349.             qr3.Bind(qr.GetInteger("soul"));
  350.             qr3.Bind(qr.GetString("p_soul"));
  351.             qr3.Bind(qr.GetInteger("cube"));
  352.             qr3.Bind(qr.GetString("p_cube"));
  353.             qr3.Bind(qr.GetInteger("shop_food"));
  354.             qr3.Bind(qr.GetInteger("shop_soul"));
  355.             qr3.Bind(qr.GetInteger("shop_cube"));
  356.             qr3.Step();
  357.             qr3.Release();
  358.         }
  359.     }
  360.  
  361.     private void converttbl_Level(SQLiteDB db3)
  362.     {
  363.         LoadDatabase("DataGame");
  364.  
  365.         SQLiteQuery qr = new SQLiteQuery(db, tbl_LevelSelect);
  366.         while (qr.Step())
  367.         {
  368.             SQLiteQuery qr3 = new SQLiteQuery(db3, tbl_LevelInsert);
  369.             qr3.Bind(qr.GetInteger("id_level"));
  370.             qr3.Bind(qr.GetInteger("chapter"));
  371.             qr3.Bind(qr.GetString("name_level"));
  372.             qr3.Bind(qr.GetInteger("energy"));
  373.             qr3.Bind(qr.GetInteger("w_crystal"));
  374.             qr3.Bind(qr.GetInteger("w_food"));
  375.             qr3.Bind(qr.GetInteger("w_soul"));
  376.             qr3.Bind(qr.GetInteger("w_energy"));
  377.             qr3.Bind(qr.GetInteger("w_ticket"));
  378.             qr3.Bind(qr.GetInteger("w_hero"));
  379.             qr3.Bind(qr.GetInteger("q_move"));
  380.             qr3.Bind(qr.GetInteger("q_h1"));
  381.             qr3.Bind(qr.GetInteger("q_h2"));
  382.             qr3.Bind(qr.GetInteger("q_h3"));
  383.             qr3.Bind(qr.GetInteger("q_h4"));
  384.             qr3.Bind(qr.GetInteger("q_h5"));
  385.             qr3.Bind(qr.GetInteger("q_box"));
  386.             qr3.Bind(qr.GetInteger("q_boss"));
  387.             qr3.Bind(qr.GetInteger("q_food"));
  388.             qr3.Bind(qr.GetInteger("q_soul"));
  389.             qr3.Bind(qr.GetInteger("q_ticket"));
  390.             qr3.Bind(qr.GetInteger("q_crystal"));
  391.             qr3.Bind(qr.GetInteger("q_hero"));
  392.             qr3.Bind(qr.GetInteger("q_bom"));
  393.             qr3.Bind(qr.GetString("log_win"));
  394.             qr3.Bind(qr.GetString("log_lose"));
  395.             qr3.Step();
  396.             qr3.Release();
  397.         }
  398.     }
  399.  
  400.     private void converttbl_Skill(SQLiteDB db3)
  401.     {
  402.         LoadDatabase("DataGame");
  403.  
  404.         SQLiteQuery qr = new SQLiteQuery(db, tbl_SkillSelect);
  405.         while (qr.Step())
  406.         {
  407.             SQLiteQuery qr3 = new SQLiteQuery(db3, tbl_SkillInsert);
  408.             qr3.Bind(qr.GetInteger("id_skill"));
  409.             qr3.Bind(qr.GetInteger("type_skill"));
  410.             qr3.Bind(qr.GetInteger("name_skill"));
  411.             qr3.Bind(qr.GetInteger("level_skill"));
  412.             qr3.Bind(qr.GetInteger("num_gem"));
  413.             qr3.Bind(qr.GetInteger("dame"));
  414.             qr3.Bind(qr.GetInteger("range"));
  415.             qr3.Bind(qr.GetString("des"));
  416.             qr3.Step();
  417.             qr3.Release();
  418.         }
  419.     }
  420.  
  421.     private void converttbl_UnlockHero(SQLiteDB db3)
  422.     {
  423.         LoadDatabase("DataGame");
  424.  
  425.         SQLiteQuery qr = new SQLiteQuery(db, tbl_UnlockHeroSelect);
  426.         while (qr.Step())
  427.         {
  428.             SQLiteQuery qr3 = new SQLiteQuery(db3, tbl_UnlockHeroInsert);
  429.             qr3.Bind(qr.GetInteger("id_unlockhero"));
  430.             qr3.Bind(qr.GetInteger("id_hero"));
  431.             qr3.Bind(qr.GetInteger("level_hero"));
  432.             qr3.Bind(qr.GetInteger("attack"));
  433.             qr3.Bind(qr.GetInteger("soul"));
  434.             qr3.Bind(qr.GetInteger("food"));
  435.             qr3.Bind(qr.GetInteger("crystal"));
  436.             qr3.Bind(qr.GetString("img"));
  437.             qr3.Step();
  438.             qr3.Release();
  439.         }
  440.     }
  441.  
  442.     //Data User
  443.     public List<HeroUser> heroesUserData;
  444.  
  445.     public List<HeroUser> GetHeroesUserData()
  446.     {
  447.         LoadDatabase("DataUser");
  448.  
  449.         heroesUserData = new List<HeroUser>();
  450.         SQLiteQuery qr = new SQLiteQuery(db, "Select * FROM tbl_HeroUser");
  451.         print("truoc");
  452.         while (qr.Step())
  453.         {
  454.             HeroUser heroUserData = new HeroUser();
  455.             heroUserData.ID = qr.IsNULL("id_hero") ? 0 : qr.GetInteger("id_hero");
  456.             heroUserData.Level = qr.IsNULL("level_hero") ? 0 : qr.GetInteger("level_hero");
  457.             heroUserData.State = qr.IsNULL("unlock") ? 0 : qr.GetInteger("unlock");
  458.             heroUserData.SkillID = qr.IsNULL("id_skill") ? 0 : qr.GetInteger("id_skill");
  459.             heroUserData.UnlockHeroID = qr.IsNULL("id_unlockhero") ? 0 : qr.GetInteger("id_unlockhero");
  460.             heroUserData.AttackPower = qr.IsNULL("attack") ? 0 : qr.GetInteger("attack");
  461.  
  462.             print("ID=" + heroUserData.ID + " Level=" + heroUserData.Level + " AttackPower= " + heroUserData.AttackPower);
  463.  
  464.             heroesUserData.Add(heroUserData);
  465.         }
  466.         print("sau");
  467.         return heroesUserData;
  468.  
  469.     }
  470.  
  471.     public void LoadDatabase(String nameDb)
  472.     {
  473.         db = new SQLiteDB();
  474.  
  475.         String filename = Application.persistentDataPath + "/" + nameDb;
  476.  
  477.         // check if database already exists.
  478.         if (!File.Exists(filename))
  479.         {
  480.             UnityEngine.Debug.Log("file does not exist");
  481.             // ok , this is first time application start!
  482.             // so lets copy prebuild dtabase from StreamingAssets and load store to persistancePath with Test2
  483.             byte[] bytes = null;
  484. #if UNITY_EDITOR || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX
  485.             string dbpath = "file://" + Application.streamingAssetsPath + "/" + nameDb;
  486.             WWW www = new WWW(dbpath);
  487.             StartCoroutine(Download(www));
  488.             bytes = www.bytes;
  489. #elif UNITY_WEBPLAYER
  490.                             string dbpath = "StreamingAssets/" + nameDb;
  491.                             WWW www = new WWW(dbpath);
  492.                             StartCoroutine(Download(www));
  493.                             bytes = www.bytes;
  494. #elif UNITY_IPHONE
  495.                             string dbpath = Application.dataPath + "/Raw/" + nameDb;           
  496.                             try{   
  497.                                 using ( FileStream fs = new FileStream(dbpath, FileMode.Open, FileAccess.Read, FileShare.Read) ){
  498.                                     bytes = new byte[fs.Length];
  499.                                     fs.Read(bytes,0,(int)fs.Length);
  500.                                 }          
  501.                             } catch (Exception e){
  502.                    
  503.                             }
  504. #elif UNITY_ANDROID
  505.            
  506.                             UnityEngine.Debug.Log("UNITY_ANDROID");
  507.                             string dbpath = Application.streamingAssetsPath + "/" + nameDb;  
  508.                             UnityEngine.Debug.Log(dbpath); 
  509.                             WWW www = new WWW(dbpath);
  510.                             StartCoroutine(Download(www));
  511.                             while(!www.isDone){}
  512.                             bytes = www.bytes;
  513. #endif
  514.  
  515.             if (bytes != null)
  516.             {
  517.                 try
  518.                 {
  519.                     // copy database to real file into cache folder
  520.                     using (FileStream fs = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write))
  521.                     {
  522.                         fs.Write(bytes, 0, bytes.Length);
  523.                     }
  524.  
  525.                     // initialize database
  526.                     db.Open(filename);
  527.                 }
  528.                 catch (Exception e)
  529.                 {
  530.                     Debug.Log("ERROR: " + e);
  531.                 }
  532.             }
  533.         }
  534.         else
  535.         {
  536.             // it mean we already download prebuild data base and store into persistantPath
  537.             // lest update, I will call Test
  538.  
  539.             try
  540.             {
  541.                 // initialize database
  542.                 db.Open(filename);
  543.             }
  544.             catch (Exception e)
  545.             {
  546.                 Debug.Log("ERROR: " + e);
  547.             }
  548.  
  549.         }
  550.     }
  551.  
  552.     IEnumerator Download(WWW www)
  553.     {
  554.         yield return www;
  555.     }
  556.  
  557.     private string Md5Sum(string strToEncrypt)
  558.     {
  559.         System.Text.UTF8Encoding ue = new System.Text.UTF8Encoding();
  560.         byte[] bytes = ue.GetBytes(strToEncrypt);
  561.  
  562.         // encrypt bytes
  563.         System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
  564.         byte[] hashBytes = md5.ComputeHash(bytes);
  565.  
  566.         // Convert the encrypted bytes back to a string (base 16)
  567.         string hashString = "";
  568.  
  569.         for (int i = 0; i < hashBytes.Length; i++)
  570.         {
  571.             hashString += System.Convert.ToString(hashBytes[i], 16).PadLeft(2, '0');
  572.         }
  573.  
  574.         return hashString.PadLeft(32, '0');
  575.     }
  576. }
Advertisement
Add Comment
Please, Sign In to add comment