ManaServer.cs 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810
  1. using LitJson;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. using UnityEngine.Events;
  5. using System;
  6. using System.IO;
  7. using System.Net;
  8. using System.Xml;
  9. using System.Text;
  10. using System.Linq;
  11. using System.Net.Mail;
  12. using System.Collections;
  13. using System.Collections.Generic;
  14. using Random = UnityEngine.Random;
  15. public class MyCredentials : ICredentialsByHost
  16. {
  17. public NetworkCredential NetworkCredential;
  18. public NetworkCredential GetCredential(string host, int port, string authType)
  19. {
  20. return NetworkCredential.GetCredential(new Uri("http://" + host + ":" + port), authType);
  21. }
  22. public MyCredentials(string username, string password)
  23. {
  24. NetworkCredential = new NetworkCredential(username, password);
  25. }
  26. }
  27. public class ManaServer : Regist
  28. {
  29. public class MailReward
  30. {
  31. public string Id;
  32. public string Key;
  33. public string Value;
  34. public MailReward(string id, string key, string value)
  35. {
  36. Id = id;
  37. Key = key;
  38. Value = value;
  39. }
  40. }
  41. #region 变量
  42. public static bool Connect
  43. {
  44. get
  45. {
  46. if (Connect_)
  47. {
  48. return true;
  49. }
  50. else
  51. {
  52. if (ManaTutorial.ConnectExemptAmt > 0)
  53. {
  54. ManaTutorial.ConnectExemptAmt--;
  55. return true;
  56. }
  57. else
  58. {
  59. return false;
  60. }
  61. }
  62. }
  63. set { Connect_ = value; }
  64. }
  65. public static bool PackLock
  66. {
  67. get { return PackLock_; }
  68. set
  69. {
  70. PackLock_ = value;
  71. foreach (var kv in ManaCenter.SkillDic)
  72. {
  73. if (kv.Value is Pack)
  74. {
  75. ((Pack) kv.Value).SetActive(!PackLock_);
  76. }
  77. }
  78. }
  79. }
  80. public static bool Connect_;
  81. public static bool PackLock_;
  82. public static int Counter;
  83. public static float Timer;
  84. public static bool Complete;
  85. public static bool FirstConnect = true;
  86. public static string ID = "Default";
  87. public static string SerialNumber;
  88. public static string ReportContent;
  89. public static JsonData JsonData;
  90. public static DateTime Time;
  91. public static string MailXml;
  92. public static List<MailReward> MailRewardList = new List<MailReward>();
  93. #endregion
  94. public void Awake()
  95. {
  96. //URLRequestData urlData = new URLRequestData();
  97. //urlData.Add("u", "1704189794672324513");
  98. //URLRequest.CreateStrURLRequest("https://garden.dashgame.com/index.php/home/user/other", urlData, Debug.Log, URLRequest.Method.POST);
  99. //URLRequestData urlData = new URLRequestData();
  100. //urlData.Add("i", "");
  101. //URLRequest.CreateStrURLRequest("https://garden.dashgame.com/index.php/home/user/rand", urlData, Debug.Log, URLRequest.Method.POST);
  102. //URLRequestData urlData = new URLRequestData();
  103. //urlData.Add("u", "ytcy9g");
  104. //URLRequest.CreateStrURLRequest("https://garden.dashgame.com/index.php/home/user/load", urlData, Debug.Log, URLRequest.Method.POST);
  105. //Login((data => print(data.ToJson())));
  106. //Download("ytcy9g",(data)=> { print(data.ToJson()); });
  107. //Other("1704189794672324513", (data) => { print(data.ToJson()); });
  108. //AddComment("12a", "12b", "content", "0");
  109. //GetComment("12b", "0", "0");
  110. //Praise("123", "1704189794672324513");
  111. //Target("", "1704189794672324513");
  112. }
  113. public void Update()
  114. {
  115. if (!ManaCenter.Complete && !Complete)
  116. {
  117. Timer += UnityEngine.Time.deltaTime;
  118. if (Timer >= 2f)
  119. {
  120. Timer = 0;
  121. Counter++;
  122. if (Counter > 4)
  123. {
  124. Complete = true;
  125. ManaCenter.LoginCallbackInitial(new JsonData());
  126. }
  127. else
  128. {
  129. Login(ManaCenter.LoginCallbackInitial);
  130. IOSAlipayRequest();
  131. }
  132. }
  133. }
  134. }
  135. public override bool RegistImmed()
  136. {
  137. if (base.RegistImmed())
  138. {
  139. return true;
  140. }
  141. enabled = true;
  142. return false;
  143. }
  144. public static void DownloadAllTexture(List<WWW> wwwList)
  145. {
  146. List<Texture2D> textureList = new List<Texture2D>();
  147. List<SpriteInfo> spriteInfoList = new List<SpriteInfo>();
  148. for (int i = 0; i < wwwList.Count; i++)
  149. {
  150. textureList.Add(wwwList[i].texture);
  151. SpriteInfo spriteInfo = new SpriteInfo();
  152. spriteInfo.Name = Path.GetFileNameWithoutExtension(wwwList[i].url);
  153. spriteInfoList.Add(spriteInfo);
  154. }
  155. Texture2D atlas = new Texture2D(2048, 2048);
  156. Rect[] rects = atlas.PackTextures(textureList.ToArray(), 1);
  157. Sprite sprite = Sprite.Create(atlas, new Rect(0, 0, atlas.width, atlas.height), new Vector2(0.5f, 0.5f));
  158. for (int i = 0; i < spriteInfoList.Count; i++)
  159. {
  160. spriteInfoList[i].Width = textureList[i].width;
  161. spriteInfoList[i].Height = textureList[i].height;
  162. spriteInfoList[i].UvList = new List<Vector2>()
  163. {
  164. new Vector2(rects[i].xMin, rects[i].yMax),
  165. new Vector2(rects[i].xMax, rects[i].yMax),
  166. new Vector2(rects[i].xMax, rects[i].yMin),
  167. new Vector2(rects[i].xMin, rects[i].yMin),
  168. };
  169. SpriteAsset.SpriteInfoDic.Add(spriteInfoList[i].Name, spriteInfoList[i]);
  170. }
  171. Auxiliary.Instance.Sprite = sprite;
  172. }
  173. public static IEnumerator DownloadAllAsset(List<string> urlList, Action<List<WWW>> callback)
  174. {
  175. List<WWW> wwwList = new List<WWW>();
  176. for (int i = 0; i < urlList.Count; i++)
  177. {
  178. wwwList.Add(new WWW(urlList[i]));
  179. }
  180. for (int i = 0; i < wwwList.Count; i++)
  181. {
  182. yield return wwwList[i];
  183. }
  184. callback(wwwList);
  185. }
  186. public static void Praise(string sendID, string receiveID)
  187. {
  188. URLRequestData urlData = new URLRequestData();
  189. urlData.Add("u", sendID);
  190. urlData.Add("t", receiveID);
  191. URLRequest.CreateStrURLRequest("https://garden.dashgame.com/index.php/home/praise/click", urlData, Debug.Log, URLRequest.Method.POST);
  192. }
  193. public static void Target(string userID, string targetID)
  194. {
  195. URLRequestData urlData = new URLRequestData();
  196. urlData.Add("u", userID);
  197. urlData.Add("t", targetID);
  198. URLRequest.CreateStrURLRequest("https://garden.dashgame.com/index.php/home/praise/target", urlData, Debug.Log, URLRequest.Method.POST);
  199. }
  200. public static void AddComment(string sendID, string receiveID, string content, string type)
  201. {
  202. URLRequestData urlData = new URLRequestData();
  203. urlData.Add("c", sendID);
  204. urlData.Add("u", receiveID);
  205. urlData.Add("i", content);
  206. urlData.Add("t", type);
  207. URLRequest.CreateStrURLRequest("https://garden.dashgame.com/index.php/home/comment/comment", urlData, Debug.Log, URLRequest.Method.POST);
  208. }
  209. public static void GetComment(string id, string page, string type)
  210. {
  211. URLRequestData urlData = new URLRequestData();
  212. urlData.Add("u", id);
  213. urlData.Add("p", page);
  214. urlData.Add("t", type);
  215. URLRequest.CreateStrURLRequest("https://garden.dashgame.com/index.php/home/comment/index", urlData, Debug.Log, URLRequest.Method.POST);
  216. }
  217. public static void IndexRequest(Action<JsonData> callback)
  218. {
  219. URLRequestData urlData = new URLRequestData();
  220. URLRequest.CreateURLRequest
  221. (
  222. "https://garden.dashgame.com/index.php/home/index/index",
  223. urlData,
  224. data =>
  225. {
  226. if (data.Inst_Object.ContainsKey("error"))
  227. {
  228. if (ManaData.PlayerDoc_ != null)
  229. {
  230. if (Application.platform == RuntimePlatform.Android)
  231. {
  232. PackLock = true;
  233. }
  234. else if (Application.platform == RuntimePlatform.IPhonePlayer)
  235. {
  236. PackLock = ManaData.GetPlayerBool("PackLock");
  237. }
  238. }
  239. }
  240. else
  241. {
  242. callback(data);
  243. }
  244. }
  245. );
  246. }
  247. public static void MailRequest()
  248. {
  249. IndexRequest
  250. (
  251. data =>
  252. {
  253. URLRequestData urlData = new URLRequestData();
  254. URLRequest.CreateStrURLRequest
  255. (
  256. data["l"][1]["val"].ToJson().Trim('"'),
  257. urlData,
  258. mailXml =>
  259. {
  260. MailXml = mailXml;
  261. }
  262. );
  263. }
  264. );
  265. }
  266. public static void GetMailReward()
  267. {
  268. for (int i = 0; i < MailRewardList.Count; i++)
  269. {
  270. GetMailReward(MailRewardList[i]);
  271. }
  272. }
  273. public static void GetMailReward(MailReward mailReward)
  274. {
  275. ManaData.SavePlayerString("OneTimeReward", $"{ManaData.GetPlayerString("OneTimeReward")} {mailReward.Id}".Trim(' '));
  276. if (mailReward.Key == "pack")
  277. {
  278. SkillRoot skillRoot;
  279. if (ManaCenter.SkillDic.TryGetValue($"Pack{mailReward.Value}", out skillRoot))
  280. {
  281. Pack pack = (Pack) skillRoot;
  282. pack.PurchaseResult();
  283. Transform mailItem = ManaReso.Get("MailItem", Folder.UI, false, ManaReso.Get("Bd_Grid"), new Vector3(), ObjType.MailItem);
  284. float newSpriteSize = 0.35f;
  285. mailItem.GetChild(1).SetActive(false);
  286. mailItem.GetChild(0).GetComponent<Image>().sprite = pack.Icon;
  287. mailItem.GetChild(0).GetComponent<Image>().Resize(true, newSpriteSize, newSpriteSize);
  288. mailItem.GetChild(0).transform.localPosition = new Vector2(0, 0);
  289. mailItem.GetChild(2).GetComponent<Text>().text = pack.Name;
  290. ManaInfo.Show($"{Language.GetStr("Common", "Get")} <(礼包)>{pack.Name}", 10);
  291. }
  292. else
  293. {
  294. Debug.LogWarning($"Unknown id {mailReward.Value}");
  295. }
  296. }
  297. else if (mailReward.Key == "close")
  298. {
  299. List<int> idList = Auxiliary.IntListParse(' ', mailReward.Value, new List<int>());
  300. CloseUnit closeUnit;
  301. for (int i = 0; i < idList.Count; i++)
  302. {
  303. if (ManaPlayer.CloseUnitDic.TryGetValue(idList[i], out closeUnit))
  304. {
  305. if (closeUnit.Bought == false)
  306. {
  307. closeUnit.Unlock();
  308. ManaPlayer.BoughtCloseList.UniqueAdd(idList[i]);
  309. }
  310. Transform mailItem = ManaReso.Get("MailItem", Folder.UI, false, ManaReso.Get("Bd_Grid"), new Vector3(), ObjType.MailItem);
  311. float newSize = 0.6f;
  312. float newSpriteSize = closeUnit.PixelSize*newSize/closeUnit.Sprites[0].rect.width;
  313. mailItem.GetChild(1).GetComponent<Image>().sprite = closeUnit.Sprites[0];
  314. mailItem.GetChild(1).GetComponent<Image>().Resize(true, newSpriteSize, newSpriteSize);
  315. mailItem.GetChild(1).transform.localPosition = new Vector2(0, closeUnit.IconOffset*newSize);
  316. if (closeUnit.Sprites.Length > 1)
  317. {
  318. mailItem.GetChild(0).SetActive(true);
  319. mailItem.GetChild(0).GetComponent<Image>().sprite = closeUnit.Sprites[1];
  320. mailItem.GetChild(0).GetComponent<Image>().Resize(true, newSpriteSize, newSpriteSize);
  321. mailItem.GetChild(0).transform.localPosition = closeUnit.IconOffset1*newSpriteSize + new Vector2(0, closeUnit.IconOffset*newSize);
  322. }
  323. else
  324. {
  325. mailItem.GetChild(0).SetActive(false);
  326. }
  327. mailItem.GetChild(2).GetComponent<Text>().text = closeUnit.Name;
  328. ManaInfo.Show($"{Language.GetStr("Common", "Get")} <(服装)>{closeUnit.Name}", 10);
  329. }
  330. else
  331. {
  332. Debug.LogWarning($"Unknown id {idList[i]}");
  333. }
  334. }
  335. }
  336. else if (mailReward.Key == "flower")
  337. {
  338. List<int> idList = Auxiliary.IntListParse(' ', mailReward.Value, new List<int>());
  339. FlowerInfo flowerInfo;
  340. for (int i = 0; i < idList.Count; i++)
  341. {
  342. if (ManaGarden.FlowerInfoDic.TryGetValue(idList[i], out flowerInfo))
  343. {
  344. if (flowerInfo.Unlock == false)
  345. {
  346. flowerInfo.Unlock = true;
  347. }
  348. Transform mailItem = ManaReso.Get("MailItem", Folder.UI, false, ManaReso.Get("Bd_Grid"), new Vector3(), ObjType.MailItem);
  349. float newSpriteSize = 0.18f;
  350. mailItem.GetChild(1).SetActive(false);
  351. mailItem.GetChild(0).GetComponent<Image>().sprite = flowerInfo.Icon;
  352. mailItem.GetChild(0).GetComponent<Image>().Resize(true, newSpriteSize, newSpriteSize);
  353. mailItem.GetChild(0).transform.localPosition = new Vector2(0, 0);
  354. mailItem.GetChild(2).GetComponent<Text>().text = flowerInfo.Name;
  355. ManaInfo.Show($"{Language.GetStr("Common", "Get")} <(花朵)>{flowerInfo.Name}", 10);
  356. }
  357. else
  358. {
  359. Debug.LogWarning($"Unknown id {idList[i]}");
  360. }
  361. }
  362. }
  363. else if (mailReward.Key == "coin")
  364. {
  365. ManaCenter.AddCoin(double.Parse(mailReward.Value), StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.Mail);
  366. Transform mailItem = ManaReso.Get("MailItem", Folder.UI, false, ManaReso.Get("Bd_Grid"), new Vector3(), ObjType.MailItem);
  367. float newSpriteSize = 0.75f;
  368. mailItem.GetChild(1).SetActive(false);
  369. mailItem.GetChild(0).GetComponent<Image>().sprite = ManaReso.LoadSprite("金币", Folder.UI);
  370. mailItem.GetChild(0).GetComponent<Image>().Resize(true, newSpriteSize, newSpriteSize);
  371. mailItem.GetChild(0).transform.localPosition = new Vector2(0, 0);
  372. mailItem.GetChild(2).GetComponent<Text>().text = Auxiliary.ShrinkNumberStr(double.Parse(mailReward.Value));
  373. ManaInfo.Show($"{Language.GetStr("Common", "Get")} <(金币)>{Auxiliary.ShrinkNumberStr(double.Parse(mailReward.Value))}", 10);
  374. }
  375. else if (mailReward.Key == "diamond")
  376. {
  377. ManaCenter.AddDiamond(double.Parse(mailReward.Value), StaticsManager.ItemID.获得钻石, StaticsManager.ConsumeModule.Mail);
  378. Transform mailItem = ManaReso.Get("MailItem", Folder.UI, false, ManaReso.Get("Bd_Grid"), new Vector3(), ObjType.MailItem);
  379. float newSpriteSize = 0.75f;
  380. mailItem.GetChild(1).SetActive(false);
  381. mailItem.GetChild(0).GetComponent<Image>().sprite = ManaReso.LoadSprite("钻石", Folder.UI);
  382. mailItem.GetChild(0).GetComponent<Image>().Resize(true, newSpriteSize, newSpriteSize);
  383. mailItem.GetChild(0).transform.localPosition = new Vector2(0, 0);
  384. mailItem.GetChild(2).GetComponent<Text>().text = Auxiliary.ShrinkNumberStr(double.Parse(mailReward.Value));
  385. ManaInfo.Show($"{Language.GetStr("Common", "Get")} <(钻石)>{Auxiliary.ShrinkNumberStr(double.Parse(mailReward.Value))}", 10);
  386. }
  387. else
  388. {
  389. Debug.Log(mailReward.Key);
  390. }
  391. }
  392. public static void DecodeMailXml(string mailXml)
  393. {
  394. MailRewardList = new List<MailReward>();
  395. XmlDocument xmlDoc = new XmlDocument();
  396. try
  397. {
  398. xmlDoc.LoadXml(mailXml);
  399. }
  400. catch (Exception)
  401. {
  402. return;
  403. }
  404. XmlNodeList rewardNodeList = xmlDoc.SelectSingleNode("mail").SelectNodes("OneTimeReward");
  405. List<string> receivedIdList = Auxiliary.StringListParse(' ', ManaData.GetPlayerString("OneTimeReward"), new List<string>());
  406. for (int i = 0; i < rewardNodeList.Count; i++)
  407. {
  408. string id = rewardNodeList[i].SelectSingleNode("id").InnerText;
  409. if (receivedIdList.Contains(id))
  410. {
  411. continue;
  412. }
  413. XmlNodeList targetIdNodeList = rewardNodeList[i].SelectSingleNode("targets").SelectNodes("id");
  414. for (int j = 0; j < targetIdNodeList.Count; j++)
  415. {
  416. if (targetIdNodeList[j].InnerText.ToLower() == ID.ToLower())
  417. {
  418. XmlNodeList xmlNodeList = rewardNodeList[i].SelectSingleNode("reward").ChildNodes;
  419. for (int k = 0; k < xmlNodeList.Count; k++)
  420. {
  421. MailRewardList.Add(new MailReward(id, xmlNodeList[k].Name, xmlNodeList[k].InnerText));
  422. }
  423. break;
  424. }
  425. }
  426. }
  427. }
  428. public static void PackTypeRequest()
  429. {
  430. IndexRequest
  431. (
  432. data =>
  433. {
  434. PackLock = Auxiliary.BoolParse(data["l"][0]["val"].ToJson().Trim('"'), true);
  435. if (Application.platform == RuntimePlatform.Android)
  436. {
  437. PackLock = true;
  438. }
  439. if (ManaData.PlayerDoc_ != null)
  440. {
  441. ManaData.SavePlayerBool("PackLock", PackLock);
  442. }
  443. }
  444. );
  445. }
  446. public static void IOSAlipayRequest()
  447. {
  448. IndexRequest
  449. (
  450. data =>
  451. {
  452. ManaIAP.UseAlipayOnIOS = Auxiliary.BoolParse(data["l"][2]["val"].ToJson().Trim('"'), false);
  453. }
  454. );
  455. }
  456. public static void GetProductID(string id, URLRequest.URLRequestCallBackDelegate callback)
  457. {
  458. URLRequestData urlData = new URLRequestData();
  459. urlData.Add("t", 1);
  460. urlData.Add("i", id);
  461. urlData.Add("u", JsonData.Inst_Object["i"].ToJson().Trim('"'));
  462. URLRequest.CreateStrURLRequest("https://garden.dashgame.com/index.php/home/pay/pay", urlData, callback, URLRequest.Method.POST);
  463. }
  464. public static void Login(URLRequest.URLRequestJsonCallBackDelegate callback = null)
  465. {
  466. URLRequestData urlData = new URLRequestData();
  467. urlData.Add("u", SystemInfo.deviceUniqueIdentifier);
  468. URLRequest.CreateURLRequest("https://garden.dashgame.com/index.php/home/user/login", urlData, LoginCallback + callback, URLRequest.Method.POST);
  469. }
  470. private static void LoginCallback(JsonData jsonData)
  471. {
  472. Complete = true;
  473. if (jsonData.Inst_Object.ContainsKey("c"))
  474. {
  475. Connect = true;
  476. JsonData = jsonData;
  477. Time = DateUtil.GetTime(jsonData["time"].ToJson());
  478. SerialNumber = jsonData["i"].ToJson().Trim('"');
  479. if (ManaData.DamageLock)
  480. {
  481. ID = jsonData["o"].ToString();
  482. }
  483. else if (ManaData.PlayerDoc_ != null)
  484. {
  485. if (ManaData.GetPlayerString("ID") == "Default")
  486. {
  487. ID = jsonData["o"].ToString();
  488. if (Initializer.Complete)
  489. {
  490. ManaReso.SetText("L_UserLab", ID);
  491. }
  492. }
  493. }
  494. if (FirstConnect)
  495. {
  496. FirstConnect = false;
  497. StaticsManager.GetInstance().ActOrReg(ID, DataEyeGA.AccountType.Official);
  498. }
  499. ManaDebug.Log("<color=red>连接成功</color>");
  500. }
  501. else
  502. {
  503. Connect = false;
  504. ManaDebug.Log("<color=red>连接失败</color>");
  505. }
  506. }
  507. public static void Save()
  508. {
  509. ManaCenter.SaveTimer = 0;
  510. URLRequestData urlData = new URLRequestData();
  511. urlData.Add("u", ID);
  512. ManaData.SavePlayerConfig();
  513. urlData.Add("l", ManaData.PlayerDoc.OuterXml);
  514. URLRequest.CreateURLRequest("https://garden.dashgame.com/index.php/home/user/save", urlData, SaveCallback, URLRequest.Method.POST);
  515. }
  516. private static void SaveCallback(JsonData jsonData)
  517. {
  518. ManaDebug.Log("<color=red>发送存档成功</color>");
  519. }
  520. public static void Other(string id, URLRequest.URLRequestJsonCallBackDelegate callback)
  521. {
  522. URLRequestData urlData = new URLRequestData();
  523. urlData.Add("u", id);
  524. URLRequest.CreateURLRequest("https://garden.dashgame.com/index.php/home/user/other", urlData, callback, URLRequest.Method.POST);
  525. }
  526. public static void Download(string id, URLRequest.URLRequestJsonCallBackDelegate callback)
  527. {
  528. URLRequestData urlData = new URLRequestData();
  529. urlData.Add("u", id);
  530. URLRequest.CreateURLRequest("https://garden.dashgame.com/index.php/home/user/load", urlData, callback, URLRequest.Method.POST);
  531. }
  532. public static void RandomLoad(URLRequest.URLRequestJsonCallBackDelegate callback)
  533. {
  534. URLRequestData urlData = new URLRequestData();
  535. urlData.Add("i", "");
  536. URLRequest.CreateURLRequest("https://garden.dashgame.com/index.php/home/user/rand", urlData, callback, URLRequest.Method.POST);
  537. }
  538. public static void Report()
  539. {
  540. ManaReso.Get("Lb_Info").TweenBacCG();
  541. string str = ManaReso.Get<Text>("Lb_InputLab").text;
  542. if (string.IsNullOrEmpty(str))
  543. {
  544. Bubble.Show(null, Language.GetStr("UI", "Lb_Send2"));
  545. }
  546. else if(ReportContent == str)
  547. {
  548. Bubble.Show(null, Language.GetStr("UI", "Lb_Send1"));
  549. }
  550. else
  551. {
  552. MailMessage mailMessage = new MailMessage();
  553. mailMessage.To.Add(new MailAddress("bug@dashgame.com"));
  554. mailMessage.From = new MailAddress("dashgamegarden@163.com");
  555. ReportContent = str;
  556. mailMessage.Body = ReportContent + '\n' + GetSystemInfo();
  557. mailMessage.Subject = ID + " MyLovelyGargen Issue";
  558. SmtpClient smtpClient = new SmtpClient("smtp.163.com");
  559. smtpClient.Credentials = new MyCredentials("dashgamegarden@163.com", "cs670cs");
  560. smtpClient.SendAsync(mailMessage, "Async");
  561. Bubble.Show(null, Language.GetStr("UI", "Lb_Send0"));
  562. }
  563. }
  564. public static string GetSystemInfo()
  565. {
  566. StringBuilder sb = new StringBuilder();
  567. sb.AppendLine("deviceType :" + SystemInfo.deviceType.ToString());
  568. sb.AppendLine("deviceName :" + SystemInfo.deviceName.ToString());
  569. sb.AppendLine("deviceModel :" + SystemInfo.deviceModel.ToString());
  570. sb.AppendLine("deviceUniqueIdentifier :" + SystemInfo.deviceUniqueIdentifier.ToString());
  571. sb.AppendLine("graphicsDeviceID :" + SystemInfo.graphicsDeviceID.ToString());
  572. sb.AppendLine("graphicsDeviceType :" + SystemInfo.graphicsDeviceType.ToString());
  573. sb.AppendLine("graphicsDeviceName :" + SystemInfo.graphicsDeviceName.ToString());
  574. sb.AppendLine("graphicsShaderLevel :" + SystemInfo.graphicsShaderLevel.ToString());
  575. sb.AppendLine("graphicsMemorySize :" + SystemInfo.graphicsMemorySize.ToString());
  576. sb.AppendLine("graphicsDeviceVersion :" + SystemInfo.graphicsDeviceVersion.ToString());
  577. sb.AppendLine("graphicsMultiThreaded :" + SystemInfo.graphicsMultiThreaded.ToString());
  578. sb.AppendLine("graphicsDeviceVendor :" + SystemInfo.graphicsDeviceVendor.ToString());
  579. sb.AppendLine("graphicsDeviceVendorID :" + SystemInfo.graphicsDeviceVendorID.ToString());
  580. sb.AppendLine("npotSupport :" + SystemInfo.npotSupport.ToString());
  581. sb.AppendLine("maxTextureSize :" + SystemInfo.maxTextureSize.ToString());
  582. sb.AppendLine("operatingSystem :" + SystemInfo.operatingSystem.ToString());
  583. sb.AppendLine("operatingSystemFamily :" + SystemInfo.operatingSystemFamily.ToString());
  584. sb.AppendLine("processorType :" + SystemInfo.processorType.ToString());
  585. sb.AppendLine("processorCount :" + SystemInfo.processorCount.ToString());
  586. sb.AppendLine("processorFrequency :" + SystemInfo.processorFrequency.ToString());
  587. sb.AppendLine("copyTextureSupport :" + SystemInfo.copyTextureSupport.ToString());
  588. sb.AppendLine("graphicsMultiThreaded :" + SystemInfo.graphicsMultiThreaded.ToString());
  589. sb.AppendLine("supportedRenderTargetCount :" + SystemInfo.supportedRenderTargetCount.ToString());
  590. sb.AppendLine("supports3DTextures :" + SystemInfo.supports3DTextures.ToString());
  591. sb.AppendLine("supports2DArrayTextures :" + SystemInfo.supports2DArrayTextures.ToString());
  592. sb.AppendLine("supportsAccelerometer :" + SystemInfo.supportsAccelerometer.ToString());
  593. sb.AppendLine("supportsAudio :" + SystemInfo.supportsAudio.ToString());
  594. sb.AppendLine("supportsComputeShaders :" + SystemInfo.supportsComputeShaders.ToString());
  595. sb.AppendLine("supportsCubemapArrayTextures :" + SystemInfo.supportsCubemapArrayTextures.ToString());
  596. sb.AppendLine("supportsGyroscope :" + SystemInfo.supportsGyroscope.ToString());
  597. sb.AppendLine("supportsImageEffects :" + SystemInfo.supportsImageEffects.ToString());
  598. sb.AppendLine("supportsInstancing :" + SystemInfo.supportsInstancing.ToString());
  599. sb.AppendLine("supportsLocationService :" + SystemInfo.supportsLocationService.ToString());
  600. sb.AppendLine("supportsMotionVectors :" + SystemInfo.supportsMotionVectors.ToString());
  601. sb.AppendLine("supportsRawShadowDepthSampling :" + SystemInfo.supportsRawShadowDepthSampling.ToString());
  602. sb.AppendLine("supportsRenderToCubemap :" + SystemInfo.supportsRenderToCubemap.ToString());
  603. sb.AppendLine("supportsShadows :" + SystemInfo.supportsShadows.ToString());
  604. sb.AppendLine("supportsSparseTextures :" + SystemInfo.supportsSparseTextures.ToString());
  605. sb.AppendLine("supportsVibration :" + SystemInfo.supportsVibration.ToString());
  606. sb.AppendLine("systemMemorySize :" + SystemInfo.systemMemorySize.ToString());
  607. sb.AppendLine("usesReversedZBuffer :" + SystemInfo.usesReversedZBuffer.ToString());
  608. return sb.ToString();
  609. }
  610. }