fork download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Diagnostics;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using System.Drawing.Imaging;
  11. using System.IO;
  12. using System.Media;
  13. using System.Net;
  14. using mshtml;
  15.  
  16. /*
  17.  *
  18.  * TODO:
  19.  *
  20.  * bilden laddas lite off, typ [2,7] _\|
  21.  * hakar upp sig lite då o då...
  22.  * errorhandling, file input
  23.  *
  24.  * svara mod
  25.  *
  26.  */
  27.  
  28.  
  29. namespace WindowsFormsApplication1
  30. {
  31.  
  32. public partial class Form1 : Form
  33. {
  34.  
  35. public enum Activity { ranar, mods, updateUsers, rejsarAnv, checkDrag, initRanaAnv, ranarAnv, saljer, raggar, gangSalj, gang, healar, initierar, verktyg, inbox, bank, idle, friend }
  36. Activity aktivitet = Activity.idle;
  37.  
  38. //IntPtr lastPopUp;
  39. SoundPlayer sp;
  40. DateTime raggaTid, stjalRanaTid, ranaSpelareTid, spelaTid, gangTid, idleTid, bankTid, logoutTid, rejsaTid, updateUsersTid;
  41. int spelaMin, raggaMax, ranaSpelareMax, stjalRanaMax, spelaMax, captchaForsok, gangMax, bankMax, idleTidMax, rejsaMax;
  42. int maxErrors, errorCount, lokal, level, fas, halsa, halsaMin, mnKr, mnKrMin, mnKrKritisk, mnKrMax, fordon, garage, skada, bilPott, verktyg;
  43. bool friendsLoaded, alerted, dragChecked = false, initierad = false, showStat = false;
  44. bool[,] statsData;
  45. string gang, namn;
  46. Dictionary<string, string> urls = new Dictionary<string, string>();
  47. Dictionary<int, user> users = new Dictionary<int, user>();
  48. List<int> friends = new List<int>();
  49. List<int> mods = new List<int>();
  50. List<int> statsStolenCars = new List<int>();
  51. int statsStolenCarsCount = 0, stolenCarsMax = 0;
  52. Stack<int> checkUser = new Stack<int>();
  53. Dictionary<int, DateTime> attackTime = new Dictionary<int, DateTime>();
  54. Dictionary<int, DateTime> raceTime = new Dictionary<int, DateTime>();
  55. //List<int> friends;
  56. //List<int> dangerous;
  57. //List<int> tooQuick;
  58. int[] statsCount;
  59. //string[] allowed, limitedAccess, fullAccess;
  60. double chance;
  61.  
  62. public Form1(string[] mArgs)
  63. {
  64. InitializeComponent();
  65. checkArgs(mArgs);
  66. }
  67.  
  68. private void checkArgs(string[] args)
  69. {
  70. //string s="";
  71. //for(int i=0; i<args.Length; i++)
  72. // s += args[i] + "\n";
  73. //lfelsok.Text = s;
  74. if (args.Length > 0)
  75. {
  76. tbAnvandarnamn.Text = args[0];
  77. }
  78. if (args.Length > 1)
  79. tbLosenord.Text = args[1];
  80. }
  81.  
  82. private void Form1_Load(object sender, EventArgs e)
  83. {
  84.  
  85.  
  86. stjalRanaMax = 77; //1:15
  87. raggaMax = 77; //1:15
  88. ranaSpelareMax = 302; //5:00
  89. rejsaMax = 303; //5m vid saknad av offer
  90. spelaMax = 422; //7:00
  91. idleTidMax = 10; //minuter
  92. bankMax = 15; //minuter
  93.  
  94. halsaMin = 90;
  95. spelaMin = 70;
  96. gangMax = 30;
  97.  
  98. alerted = false;
  99. errorCount = 0;
  100. maxErrors = 10;
  101. friendsLoaded = false;
  102.  
  103. logoutTid = DateTime.Now.AddDays(100);
  104. stjalRanaTid = DateTime.Now.AddSeconds(5);
  105. raggaTid = DateTime.Now.AddSeconds(20);
  106. gangTid = DateTime.Now.AddMilliseconds(30);
  107. updateUsersTid = DateTime.Now.AddSeconds(35);
  108. ranaSpelareTid = DateTime.Now.AddSeconds(40);
  109. rejsaTid = DateTime.Now.AddSeconds(60);
  110.  
  111. spelaTid = DateTime.Now.AddSeconds(1);
  112. idleTid = DateTime.Now;
  113. bankTid = DateTime.Now;
  114.  
  115. sp = new SoundPlayer();
  116. sp.SoundLocation = "meddelande.wav";
  117.  
  118. //allowed = new string[] { "hebbe94", "Pyssling", "relaxxa" }; //Gothe86's bror, sarah, sarahs bf
  119. //limitedAccess = new string[] { };
  120. //fullAccess = new string[] { "Sway" };
  121.  
  122. urls.Add("stjalRana", "http://w...content-available-to-author-only...v.se/default.aspx?p=crime");
  123. urls.Add("online", "http://w...content-available-to-author-only...v.se/default.aspx?p=online");
  124. urls.Add("ragga", "http://w...content-available-to-author-only...v.se/default.aspx?p=dragrace/sponsor");
  125. urls.Add("gang", "http://w...content-available-to-author-only...v.se/default.aspx?p=gang/crime");
  126. urls.Add("kvacksalvare", "http://w...content-available-to-author-only...v.se/default.aspx?p=shop/healer");
  127. urls.Add("lagaSalj", "http://w...content-available-to-author-only...v.se/default.aspx?p=fence");
  128. urls.Add("inbox", "http://w...content-available-to-author-only...v.se/default.aspx?p=messages/inbox&type=1");
  129. urls.Add("inboxGang", "http://w...content-available-to-author-only...v.se/default.aspx?p=messages/inbox&type=8");
  130. urls.Add("bank", "http://w...content-available-to-author-only...v.se/default.aspx?p=bank");
  131. urls.Add("login", "http://w...content-available-to-author-only...v.se");
  132. urls.Add("profil", "http://w...content-available-to-author-only...v.se/default.aspx?p=profile");
  133. urls.Add("verktyg", "http://w...content-available-to-author-only...v.se/default.aspx?p=shop/tools");
  134. urls.Add("logout", "http://b...content-available-to-author-only...v.se/logout.aspx");
  135. urls.Add("mods", "http://w...content-available-to-author-only...v.se/default.aspx?p=stats");
  136. urls.Add("drag", "http://w...content-available-to-author-only...v.se/default.aspx?p=shop/dragcar");
  137.  
  138. toolTip.SetToolTip(lIdle, "Om man navigerat ifrån stjäl/råna återupptar taskern sitt jobb efter " + idleTidMax.ToString() + " minuters inaktivitet.");
  139. toolTip.SetToolTip(cbBank, "Sätt in pengar automatiskt (endast för fas 3)");
  140.  
  141. cbLogout.SelectedIndex = 0;
  142. cbCaptcha.SelectedIndex = 0;
  143.  
  144. FileStream fs;
  145. StreamReader sr;
  146. //try {
  147. // fs = new FileStream("nfo.dat", FileMode.Open, FileAccess.Read, FileShare.None);
  148. // sr = new StreamReader(fs);
  149. // users = sr.ReadLine().Split(' ').ToList();
  150. // sr.Close();
  151. // fs.Close();
  152. //}
  153. //catch(FileNotFoundException exc) {
  154. // System.Diagnostics.Debug.WriteLine(exc.Message);
  155. // return;
  156. //}
  157. //catch {
  158. // System.Diagnostics.Debug.WriteLine("Error reading nfo.dat");
  159. // return;
  160. //}
  161.  
  162. //läs in catpcha data
  163. try
  164. {
  165. fs = new FileStream(Application.StartupPath + "\\captcha.dat", FileMode.Open, FileAccess.Read, FileShare.None);
  166. }
  167. catch (Exception ex)
  168. {
  169. //timer1.Enabled = false;
  170. cbCaptcha.SelectedIndex = 1;
  171. cbCaptcha.Enabled = false;
  172. lCaptcha.Enabled = false;
  173. MessageBox.Show(ex.Message + "\n\nVerkar som att du får sköta captchan manuellt...","Epic fail!",MessageBoxButtons.OK,MessageBoxIcon.Warning);
  174. webBrowser1.Navigate("http://w...content-available-to-author-only...v.se");
  175. return;
  176. }
  177. sr = new StreamReader(fs);
  178. statsCount = new int[10];
  179. string[] tmpStats = sr.ReadLine().Split(' ');
  180. for (int x = 0; x < 10; x++)
  181. {
  182. statsCount[x] = Convert.ToInt32(tmpStats[x]);
  183. }
  184. int statsSum;
  185. statsSum = statsCount.Sum();
  186. statsData = new bool[100, statsSum];
  187. for (int y = 0; y < statsSum; y++)
  188. {
  189. tmpStats = sr.ReadLine().Split(' ');
  190. for (int x = 0; x < 100; x++)
  191. statsData[x, y] = (tmpStats[x] == "1");
  192. }
  193. sr.Close();
  194. fs.Close();
  195.  
  196. webBrowser1.Navigate("http://w...content-available-to-author-only...v.se");
  197. }
  198.  
  199. void Form1_GotFocus(object sender, System.EventArgs e)
  200. {
  201. throw new System.NotImplementedException();
  202. }
  203.  
  204. private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
  205. {
  206. HtmlDocument document = webBrowser1.Document;
  207. HtmlElement element = document.All["ctl02_lblInfo"];
  208. TimeSpan ts;
  209. string tmp, url;
  210. url = webBrowser1.Url.ToString();
  211. tbURL.Text = url;
  212. idleTid = DateTime.Now;
  213. if(!timer1.Enabled) timer1.Enabled = true;
  214.  
  215. System.Diagnostics.Debug.WriteLine(url);
  216.  
  217. //if (aktivitet != Activity.idle) //slow shit down
  218. //{
  219. // int rnd = new Random().Next(1500, 3000);
  220. // System.Threading.Thread.Sleep(rnd);
  221. //}
  222.  
  223. if (document == null || url == null)
  224. {
  225. System.Diagnostics.Debug.WriteLine("webBrowser1_DocumentCompleted->document/url null");
  226. return;
  227. }
  228.  
  229. if (element != null) //ctl02_lblInfo check
  230. {
  231. string innerText = element.InnerText;
  232. if (innerText.Contains("Du satte in") || innerText.Contains("Du tog ut"))
  233. {
  234. bankTid = DateTime.Now.AddMinutes(bankMax);
  235. }
  236. else if (innerText.Contains("Du måste vänta") && bankTid <= DateTime.Now)
  237. {
  238. tmp = innerText.Substring(("Du måste vänta ").Length, 2).Trim();
  239. bankTid = DateTime.Now.AddMinutes(Convert.ToInt32(tmp));
  240. if (aktivitet == Activity.bank)
  241. {
  242. aktivitet = Activity.idle;
  243. webBrowser1.Navigate(urls["stjalRana"]);
  244. }
  245. }
  246. else if (innerText.Contains("Du stal") && innerText.Contains("och detta ökade") && showStat)
  247. {
  248. tmp = innerText.Substring(8);
  249. tmp = tmp.Substring(0, tmp.IndexOf(" st."));
  250. int cars = Convert.ToInt32(tmp);
  251. statsStolenCars.Add(cars);
  252. statsStolenCarsCount++;
  253. if (stolenCarsMax < cars) stolenCarsMax = cars;
  254. lFelsok.Visible = true;
  255. lFelsok.Text = "Snitt: " + Math.Round(1.0 * statsStolenCars.Sum() / statsStolenCarsCount, 2).ToString() + "\nMax: " + stolenCarsMax.ToString() + "\nMin: " + statsStolenCars.Min() + "\nSet: " + statsStolenCars.Count;
  256. }
  257. else if (innerText.Contains("Er lokal är full"))
  258. {
  259. aktivitet = Activity.gangSalj;
  260. webBrowser1.Navigate(urls["gang"]);
  261. return;
  262. }
  263. }
  264.  
  265. if (document.All["ctl04_lblStatus"] != null)
  266. {
  267. if (document.All["ctl04_lblStatus"].InnerText.Contains("Du måste ha bil"))
  268. cbRaggaSpons.Checked = false;
  269. }
  270.  
  271.  
  272. if (url.Contains("login.aspx")) //login
  273. {
  274. errorCount++;
  275. aktivitet = Activity.idle;
  276. captchaForsok = 0;
  277. initierad = false;
  278. login();
  279. //if (errorCount < maxErrors) login();
  280. return;
  281. }
  282. else if (!document.Body.InnerText.Contains("Länkar")) //Error/utloggad/uppdaterar/hoppsan
  283. {
  284. System.Diagnostics.Debug.WriteLine("webBrowser1_DocumentCompleted->hoppsan/utloggad/error/uppdaterar");
  285. aktivitet = Activity.idle;
  286. errorCount++;
  287. if (errorCount > 2)
  288. webBrowser1.Navigate(urls["login"]);
  289. else if (!document.Body.InnerText.Contains("Felaktigt användarnamn"))
  290. webBrowser1.Navigate(urls["stjalRana"]);
  291. //this.webBrowser1.Navigate(urls["login"]);
  292. return;
  293. }
  294. else if (document.All["ctl04_tblTaskerCheck"] != null) // in-game captcha
  295. {
  296. ts = DateTime.Now - idleTid;
  297. System.Diagnostics.Debug.WriteLine("webBrowser1_DocumentCompleted->captcha");
  298. if (cbCaptcha.SelectedIndex == 0) // ???-> || (cbCaptcha.SelectedIndex == 0 && ts.Minutes >= idleTidMax))
  299. {
  300. if (captchaForsok > 1)
  301. {
  302. webBrowser1.Navigate(urls["logout"]);
  303. }
  304. else
  305. {
  306. Win32API.ShowWindow(this.Handle, 9); //Win32API.WindowState.SW_RESTORE
  307. Application.DoEvents();
  308. Win32API.SetForegroundWindow(this.Handle);
  309. Application.DoEvents();
  310. this.Activate();
  311.  
  312. Bitmap bmp = getBmp("ctl04_imgCaptcha");
  313. //this.pictureBox1.Image = bmp;
  314.  
  315. string value = extractString(bmp);
  316. if (value.Length == 4 && Form.ActiveForm != null) //släng in chance[].min() koll typ eller nåt kanske?
  317. {
  318. errorCount = 0;
  319. captchaForsok++;
  320. document.All["ctl04$txtCaptcha"].SetAttribute("Value", value);
  321. document.All["ctl04$btnSend"].InvokeMember("click");
  322. }
  323. }
  324. return;
  325. }
  326. else if (!cbCaptcha.SelectedText.Contains("blinka"))
  327. {
  328. FlashWindow.Flash(this);
  329. return;
  330. }
  331. else {
  332. return;
  333. }
  334. }
  335. else if (document.All["ctl02_hlNormal"] != null && aktivitet != Activity.inbox) //Meddelande
  336. {
  337. aktivitet = Activity.inbox;
  338. webBrowser1.Navigate(urls["inbox"]);
  339. return;
  340. }
  341. else
  342. {
  343. alerted = false;
  344. errorCount = 0;
  345. }
  346.  
  347. //lFelsok.Visible = true;
  348. //lFelsok.Text = "kollar fas/level:\n";
  349.  
  350. tmp = document.GetElementById("ctl02_lblPhase").InnerHtml;
  351. if (tmp == "USA") tmp = "4";
  352. fas = Convert.ToInt32(tmp);
  353.  
  354. tmp = document.GetElementById("ctl02_lblLevel").InnerText;
  355. if (tmp.Contains("/")) tmp = tmp.Substring(0, tmp.IndexOf(" /"));
  356. tmp = tmp.Replace(" ", "");
  357. level = Convert.ToInt32(tmp);
  358.  
  359. tmp = document.GetElementById("ctl02_lblMoney").InnerText.Replace(" ", "");
  360. if (tmp.Length > 6)
  361. mnKr = Convert.ToInt32(tmp.Substring(0, tmp.Length - 6));
  362. else
  363. mnKr = 1;
  364.  
  365.  
  366. tmp = document.GetElementById("ctl02_lblHealth").InnerHtml;
  367. tmp = tmp.Substring(0, tmp.Length - 1);
  368. halsa = Convert.ToInt32(tmp);
  369.  
  370. tmp = document.GetElementById("ctl02_lblVehicles").InnerHtml;
  371. tmp = tmp.Substring(0, tmp.IndexOf("/"));
  372. fordon = Convert.ToInt32(tmp);
  373.  
  374. tmp = document.GetElementById("ctl02_lblTools").InnerHtml;
  375. tmp = tmp.Substring(0, tmp.IndexOf("/"));
  376. verktyg = Convert.ToInt32(tmp);
  377.  
  378. tmp = document.GetElementById("ctl02_lblVehicles").InnerHtml;
  379. int ln = tmp.IndexOf("/") + 2;
  380. tmp = tmp.Substring(ln, tmp.Length - ln);
  381. garage = Convert.ToInt32(tmp);
  382.  
  383. tmp = document.All["ctl02_lblDamage"].InnerHtml;
  384. tmp = tmp.Substring(0, tmp.Length - 1);
  385. skada = Convert.ToInt32(tmp);
  386.  
  387. tmp = document.GetElementById("ctl02_lblVehicles").InnerHtml;
  388. ln = tmp.IndexOf("/") + 2;
  389. tmp = tmp.Substring(ln, tmp.Length - ln);
  390. lokal = Convert.ToInt32(tmp);
  391.  
  392. //lFelsok.Text = "fas: " + fas + " level: " + level;
  393.  
  394. if (cbSpela.Checked)
  395. {
  396. ts = spelaTid - DateTime.Now;
  397. if (document.All["ctl04_btnGambleCars"] != null && ts.TotalSeconds <= 0 && fordon >= 5) //spela
  398. {
  399. tmp = document.GetElementById("ctl04_lblCarsInPot").InnerHtml;
  400. ln = tmp.IndexOf("det") + 4;
  401. tmp = tmp.Substring(ln, tmp.IndexOf(" bilar") - ln);
  402. bilPott = Convert.ToInt32(tmp);
  403. if (garage - fordon > spelaMin && bilPott > spelaMin)
  404. {
  405. document.All["ctl04_btnGambleCars"].InvokeMember("click");
  406. spelaTid = DateTime.Now.AddSeconds(spelaMax);
  407. }
  408. }
  409. }
  410.  
  411. //if (url.Contains("tools")) //fas == 1 && //verktyg, browsing
  412. //{
  413. // if (document.GetElementById("ctl04_lblNumberOfTools") != null)
  414. // {
  415. // verktyg = Convert.ToInt32(document.GetElementById("ctl04_lblNumberOfTools").InnerHtml);
  416. // }
  417. // else if (document.GetElementById("ctl04_tblTools") != null)
  418. // {
  419. // //if (document.GetElementById("ctl04_tblTools").InnerText.Contains("alla verktyg")) //funkar inte i usa
  420. // verktyg = 40; //man kan va i usa utan 40 verktyg... fixa sen kanske...
  421. // }
  422.  
  423. // System.Diagnostics.Debug.WriteLine("Verktyg=" + verktyg);
  424. //}
  425. if (url.Contains("gangprofile") && cbGang.Checked == false && document.All["ctl04_hlSteal"] != null)
  426. cbGang.Checked = true;
  427. if (url.Contains("inbox") && !url.Contains("&type=") && document.All["ctl02_hlNormal"] == null)
  428. this.Text = "BTT2 | " + namn;
  429. if(url.Contains("dragcar"))
  430. {
  431. dragChecked = true;
  432. if (document.All["ctl04_lblCurrentCar"].InnerText.Contains("Ingen") ||
  433. document.All["ctl04_lblCurrentEngine"].InnerText.Contains("Ingen"))
  434. cbRaggaSpons.Checked = false;
  435. if (aktivitet == Activity.checkDrag)
  436. {
  437. aktivitet = Activity.idle;
  438. webBrowser1.Navigate(urls["stjalRana"]);
  439. return;
  440. }
  441. }
  442. if (aktivitet == Activity.healar) //heala
  443. {
  444. System.Diagnostics.Debug.WriteLine("webBrowser1_DocumentCompleted->heal");
  445. if (halsa >= halsaMin || (fas == 4 && halsa > 0))
  446. {
  447. aktivitet = Activity.idle;
  448. webBrowser1.Navigate(urls["stjalRana"]);
  449. }
  450. else
  451. {
  452. if (fas == 4)
  453. {
  454. document.All["ctl04_btnHeal"].InvokeMember("click");
  455. }
  456. else
  457. {
  458. heala();
  459. }
  460. }
  461. }
  462. else if (aktivitet == Activity.inbox) // läs post
  463. {
  464. HtmlElement elem;
  465. if (url.Contains("type=8")) //gängbox - kolla vice
  466. {
  467. elem = document.All["ctl04_tblInbox"];
  468. elem = elem.Children[0].GetElementsByTagName("td")[5];
  469. if (elem != null)
  470. {
  471. string senaste = elem.InnerHtml.ToString();
  472. if (senaste.Equals("[GÄNG] Grattis, du har just blivit Vice gängledare i ditt gäng!"))
  473. cbGang.Checked = true;
  474. }
  475. }
  476. else if (url.Contains("type=1")) //inbox - kolla mod...
  477. {
  478. this.Text = "[MAIL] BTT2 | " + namn + " | Kolla inboxen!";
  479. HtmlElementCollection elements;
  480. elements = document.All["ctl04_tblInbox"].GetElementsByTagName("tr");
  481. string sID = "";
  482. foreach (HtmlElement elm in elements)
  483. {
  484. if (elm.OuterHtml.Contains("tr-third-row")) // verkar inte gå att få tag i class attributet
  485. {
  486. sID = elm.GetElementsByTagName("a")[2].GetAttribute("href");
  487. sID = sID.Substring(sID.IndexOf("i=") + 2);
  488. if (mods.Contains(Convert.ToInt32(sID)))
  489. {
  490. if (!alerted)
  491. {
  492. Win32API.Beep(300, 100);
  493. Win32API.Beep(200, 200);
  494. sp.Play();
  495. alerted = true;
  496. break;
  497. }
  498. }
  499. }
  500. }
  501. FlashWindow.Flash(this);
  502. }
  503. aktivitet = Activity.idle;
  504. webBrowser1.Navigate(urls["stjalRana"]);
  505. return;
  506. }
  507. else if ((halsa < halsaMin && fas != 4) || (fas == 4 && halsa == 0)) //börja heala
  508. {
  509. System.Diagnostics.Debug.WriteLine("webBrowser1_DocumentCompleted->idle->heala");
  510. aktivitet = Activity.healar;
  511. webBrowser1.Navigate(urls["kvacksalvare"]);
  512. }
  513. else if (!initierad && aktivitet != Activity.initierar) //börja initiera
  514. {
  515. aktivitet = Activity.initierar;
  516. webBrowser1.Navigate(urls["profil"]);
  517. }
  518. else if (!dragChecked)
  519. {
  520. aktivitet = Activity.checkDrag;
  521. webBrowser1.Navigate(urls["drag"]);
  522. }
  523. else if (aktivitet == Activity.verktyg) //verktyg, initiering
  524. {
  525. System.Diagnostics.Debug.WriteLine("webBrowser1_DocumentCompleted->verktyg");
  526. aktivitet = Activity.idle;
  527. webBrowser1.Navigate(urls["stjalRana"]);
  528. }
  529. else if (aktivitet == Activity.raggar) // ragga spons
  530. {
  531. document.All["ctl04_ddlGetSponsor"].SetAttribute("value", "5"); // NK Airfilters (30)
  532. document.All["ctl04_btnGetSponsor"].InvokeMember("click");
  533. aktivitet = Activity.idle;
  534. raggaTid = DateTime.Now.AddSeconds(raggaMax);
  535. webBrowser1.Navigate(urls["stjalRana"]);
  536. }
  537. else if (aktivitet == Activity.rejsarAnv) //rejsa användare
  538. {
  539. string sID = "";
  540. if (!url.Contains("id=") && !url.Contains("i="))
  541. {
  542. aktivitet = Activity.idle;
  543. webBrowser1.Navigate(urls["stjalRana"]);
  544. return;
  545. }
  546. if (url.Contains("id="))
  547. sID = url.Substring(url.IndexOf("id=") + 3);
  548. else
  549. sID = url.Substring(url.IndexOf("i=") + 2);
  550. if (sID.Contains("&q=")) sID = sID.Substring(0, sID.IndexOf("&q="));
  551. int iID = Convert.ToInt32(sID);
  552. string info = "";
  553. if (document.All["ctl02_lblInfo"] != null)
  554. {
  555. info = document.All["ctl02_lblInfo"].InnerText;
  556. if (info.Contains("rejsa mot saknar bil"))
  557. {
  558. users[iID].setRaceable(false);
  559. raceUser();
  560. return;
  561. }
  562. else if (info.Contains("Du måste vänta"))
  563. {
  564. string sTid = info.Substring(info.IndexOf("vänta") + 6, 2).Trim();
  565. int iTid = Convert.ToInt32(sTid) * 60;
  566. if (info.Contains("min och"))
  567. {
  568. sTid = info.Substring(info.IndexOf("och") + 4, 2).Trim();
  569. iTid += Convert.ToInt32(sTid);
  570. }
  571. raceTime.Add(iID, DateTime.Now.AddSeconds(iTid));
  572. raceUser();
  573. return;
  574. }
  575. else //offline/död
  576. {
  577. raceUser();
  578. return;
  579. }
  580. }
  581. else if (document.All["ctl04_tblResults"] != null)
  582. {
  583. info = document.All["ctl04_tblResults"].InnerText;
  584. if (info.Contains("förlorade mot din motståndare"))
  585. users[iID].setFast(true);
  586. else
  587. raceTime.Add(iID, DateTime.Now.AddMinutes(15));
  588. raceUser();
  589. return;
  590. //rejsaTid = DateTime.Now.AddSeconds(rejsaMax);
  591. //aktivitet = Activity.idle;
  592. //webBrowser1.Navigate(urls["stjalRana"]);
  593. }
  594. }
  595. else if (aktivitet == Activity.ranarAnv) //råna användare
  596. {
  597. string sID = "";
  598. if (!url.Contains("id=") && !url.Contains("i="))
  599. {
  600. aktivitet = Activity.idle;
  601. webBrowser1.Navigate(urls["stjalRana"]);
  602. return;
  603. }
  604. if (url.Contains("id="))
  605. sID = url.Substring(url.IndexOf("id=") + 3);
  606. else
  607. sID = url.Substring(url.IndexOf("i=") + 2);
  608. if (sID.Contains("&q=")) sID = sID.Substring(0, sID.IndexOf("&q="));
  609. int iID = Convert.ToInt32(sID);
  610. string info = "";
  611. if (document.All["ctl02_lblInfo"] != null)
  612. {
  613. info = document.All["ctl02_lblInfo"].InnerText;
  614. if (info.Contains("kan inte råna denne"))
  615. {
  616. users[iID].setAttackable(false);
  617. attackUser();
  618. return;
  619. }
  620. else if (info.Contains("Du måste vänta"))
  621. {
  622. string sTid = info.Substring(info.IndexOf("vänta") + 6, 2).Trim();
  623. int iTid = Convert.ToInt32(sTid) * 60;
  624. if (info.Contains("min och"))
  625. {
  626. sTid = info.Substring(info.IndexOf("och") + 4, 2).Trim();
  627. iTid += Convert.ToInt32(sTid);
  628. }
  629. attackTime.Add(iID, DateTime.Now.AddSeconds(iTid));
  630. attackUser();
  631. return;
  632. }
  633. else // offline/död
  634. {
  635. attackUser();
  636. return;
  637. }
  638. }
  639. else if (document.All["ctl04_tblResults"] != null)
  640. {
  641. info = document.All["ctl04_tblResults"].InnerText;
  642. if (info.Contains("rundor förlorade du"))
  643. users[iID].setdangerous(true);
  644. else
  645. attackTime.Add(iID, DateTime.Now.AddMinutes(15));
  646. ranaSpelareTid = DateTime.Now.AddSeconds(ranaSpelareMax);
  647. aktivitet = Activity.idle;
  648. webBrowser1.Navigate(urls["stjalRana"]);
  649. }
  650. }
  651. else if (aktivitet == Activity.updateUsers) //initiera råna användare
  652. {
  653. HtmlElementCollection elements;//, useElms;
  654. string sID = "", name = "", cash = "";
  655. int iID = 0;
  656. if (url.Contains("online"))
  657. {
  658. element = document.GetElementById("ctl04_tblOnline");
  659. elements = element.GetElementsByTagName("tr");
  660. for (int i = 3; i < elements.Count; i++)
  661. {
  662. sID = elements[i].GetElementsByTagName("a")[0].GetAttribute("href");
  663. sID = sID.Substring(sID.IndexOf("i=") + 2);
  664. iID = Convert.ToInt32(sID);
  665. cash = elements[i].GetElementsByTagName("td")[4].InnerText;
  666. if (!friends.Contains(iID))
  667. if (!users.Keys.Contains(iID)) //(!users.Contains<int>(iID))
  668. {
  669. name = elements[i].GetElementsByTagName("td")[0].GetElementsByTagName("a")[0].InnerText;
  670. if (elements[i].GetElementsByTagName("td")[1].InnerHtml.Contains("Fas " + fas))
  671. {
  672. users.Add(iID, new user(iID, name));
  673. attackTime.Add(iID, DateTime.Now);
  674. raceTime.Add(iID, DateTime.Now);
  675. }
  676. else //if (fullAccess.Contains(namn))
  677. {
  678. users.Add(iID, new user(iID, name, false));
  679. raceTime.Add(iID, DateTime.Now);
  680. }
  681. //checkUser.Push(iID);
  682. }
  683. else
  684. {
  685. if (!attackTime.Keys.Contains(iID) && users[iID].isAttackable() &&
  686. elements[i].GetElementsByTagName("td")[1].InnerHtml.Contains("Fas " + fas) &&
  687. (!users[iID].isDangerous() || cash.Length >= 18)) // ofarlig eller 100+mrd
  688. {
  689. attackTime.Add(iID, DateTime.Now);
  690. }
  691. if (!raceTime.Keys.Contains(iID) && users[iID].isRaceable() && !users[iID].isFast()) // fullAccess.Contains(namn) &&
  692. {
  693. raceTime.Add(iID, DateTime.Now);
  694. }
  695. }
  696. }
  697. saveUsers();
  698. updateUsersTid = DateTime.Now.AddMinutes(5);
  699. aktivitet = Activity.idle;
  700. webBrowser1.Navigate(urls["stjalRana"]);
  701.  
  702. //if (checkUser.Count > 0)
  703. //{
  704. // webBrowser1.Navigate("http://w...content-available-to-author-only...v.se/default.aspx?p=profile&i=" + sID);
  705. //}
  706. //if (attackTime.Count > 0)
  707. //{
  708. // aktivitet = Activity.ranarAnv;
  709. // attackUser();
  710. //}
  711. //else
  712. //{
  713. // ranaSpelareTid = DateTime.Now.AddSeconds(ranaSpelareMax);
  714. // aktivitet = Activity.idle;
  715. // webBrowser1.Navigate(urls["stjalRana"]);
  716. // return;
  717. //}
  718. }
  719. //else
  720. //{
  721. // bool race = (document.All["ctl04_hlRace"] != null);
  722. // users.Add
  723. //}
  724. }
  725. else if (aktivitet == Activity.bank) // sätt in pengar
  726. {
  727. if (document.All["ctl04_txtMoney"] != null)
  728. {
  729. string value = (mnKr - mnKrMin).ToString() + "000000";
  730. document.All["ctl04_txtDeposit"].SetAttribute("value", value);
  731. document.All["ctl04_btnDeposit"].InvokeMember("click");
  732. Application.DoEvents();
  733. }
  734. bankTid = DateTime.Now.AddSeconds(3);
  735. aktivitet = Activity.idle;
  736. webBrowser1.Navigate(urls["stjalRana"]);
  737. }
  738. else if (aktivitet == Activity.mods) // populate mod list
  739. {
  740. if (url.Contains("stats") && document.All["ctl04_tblStats"] == null)
  741. {
  742. webBrowser1.Navigate("javascript:__doPostBack('ctl04$lbStaff','')");
  743. return;
  744. }
  745. else if (document.All["ctl04_tblStats"] != null)
  746. {
  747. HtmlElementCollection elements = document.All["ctl04_tblStats"].GetElementsByTagName("a");
  748. string sID = "";
  749. foreach (HtmlElement elm in elements)
  750. {
  751. sID = elm.GetAttribute("href");
  752. sID = sID.Substring(sID.IndexOf("i=") + 2);
  753. mods.Add(Convert.ToInt32(sID));
  754. }
  755. aktivitet = Activity.idle;
  756. webBrowser1.Navigate(urls["stjalRana"]);
  757. }
  758. else
  759. {
  760. aktivitet = Activity.idle;
  761. webBrowser1.Navigate(urls["stjalRana"]);
  762. }
  763. }
  764. else if (aktivitet == Activity.gangSalj)
  765. {
  766. if (document.All["ctl04$btnGangSell"] != null)
  767. document.GetElementById("ctl04$btnGangSell").InvokeMember("click");
  768. aktivitet = Activity.gang;
  769. webBrowser1.Navigate(urls["gang"]);
  770. }
  771. else if (aktivitet == Activity.gang) // levla gäng
  772. {
  773. if (url.Contains("news") || url.Contains("login"))
  774. {
  775. cbGang.Checked = false;
  776. aktivitet = Activity.idle;
  777. }
  778. else if (document.All["ctl04_btnGangSteal"] != null)
  779. {
  780. aktivitet = Activity.idle;
  781. document.All["ctl04_btnGangSteal"].InvokeMember("click");
  782. }
  783. else
  784. {
  785. aktivitet = Activity.idle;
  786. }
  787. gangTid = DateTime.Now.AddSeconds(gangMax);
  788. webBrowser1.Navigate(urls["stjalRana"]);
  789. }
  790. else if (aktivitet == Activity.friend) //friends
  791. {
  792. string sID = "";
  793. HtmlElementCollection elements;
  794. if (url.Contains("contacts"))
  795. {
  796. element = document.GetElementById("ctl04_tblFriends");
  797. elements = element.GetElementsByTagName("a");
  798. for (int i = 0; i < elements.Count; i += 2)
  799. {
  800. sID = elements[i].GetAttribute("href");
  801. sID = sID.Substring(sID.IndexOf("i=") + 2);
  802. friends.Add(Convert.ToInt32(sID));
  803. }
  804. if (gang != null)
  805. webBrowser1.Navigate(urls["medlemmar"]);
  806. else
  807. aktivitet = Activity.idle;
  808. }
  809. else if (url.Contains("members"))
  810. {
  811. element = document.GetElementById("ctl04_tblMembers");
  812. elements = element.GetElementsByTagName("a");
  813. //foreach (HtmlElement elm in elements)
  814. // tbFelsok.Text += elm.InnerHtml + "\r\n";
  815. int iID;
  816. foreach (HtmlElement elm in elements)//(int i = 0; i < elements.Count; i++)
  817. {
  818. //lfelsok.Text = (i + 1).ToString() + "/" + elements.Count.ToString();
  819. if (elm.InnerHtml != "[X]")
  820. {
  821. sID = elm.GetAttribute("href");
  822. sID = sID.Substring(sID.IndexOf("i=") + 2);
  823. iID = Convert.ToInt32(sID);
  824. if (!friends.Contains(iID))
  825. friends.Add(iID);
  826. }
  827. }
  828. aktivitet = Activity.idle;
  829. webBrowser1.Navigate(urls["stjalRana"]);
  830. }
  831. else
  832. {
  833. webBrowser1.Navigate(urls["friends"]);
  834. }
  835. }
  836. else if (aktivitet == Activity.initierar) //initiera, gäng samt verktyg
  837. {
  838. System.Diagnostics.Debug.WriteLine("webBrowser1_DocumentCompleted->init");
  839.  
  840. string tmpNamn = namn;
  841. namn = document.GetElementById("ctl04_lblUsername").GetElementsByTagName("a")[0].InnerHtml;
  842. if (tmpNamn == namn && tmpNamn != null)
  843. {
  844. initierad = true;
  845. aktivitet = Activity.idle;
  846. webBrowser1.Navigate(urls["stjalRana"]);
  847. return;
  848. }
  849. if (namn == null)
  850. {
  851. aktivitet = Activity.idle;
  852. return;
  853. }
  854.  
  855. loadUsers();
  856.  
  857. gang = "";
  858. element = document.GetElementById("ctl04_lblGang");
  859. if (element.InnerHtml != null)
  860. {
  861. element = element.GetElementsByTagName("a")[0];
  862. gang = element.InnerHtml;
  863.  
  864. string id = element.GetAttribute("href");
  865. id = id.Substring(id.IndexOf("i=") + 2);
  866. if (urls.ContainsKey("medlemmar")) urls.Remove("medlemmar");
  867. urls.Add("medlemmar", "http://w...content-available-to-author-only...v.se/?p=gang/members&i=" + id);
  868.  
  869. cbGang.CheckState = CheckState.Checked;
  870. }
  871.  
  872. //bank, endast intressant för fas3 för tillfället...
  873. switch (fas)
  874. {
  875. case 1: mnKrMin = 10; mnKrMax = 100; mnKrKritisk = 500; break;
  876. case 2: mnKrMin = 50; mnKrMax = 500; mnKrKritisk = 5000; break;
  877. case 3: mnKrMin = 150; mnKrMax = 2000; mnKrKritisk = 15000; break;
  878. }
  879. if (fas != 3)
  880. {
  881. cbBank.Enabled = false;
  882. cbBank.Checked = false;
  883. cbRanaSpelare.Enabled = false;
  884. cbRanaSpelare.Checked = false;
  885. lRanaSpelareTid.Enabled = false;
  886. }
  887. else
  888. {
  889. cbRanaSpelare.Enabled = true;
  890. lRanaSpelareTid.Enabled = true;
  891. cbBank.Enabled = true;
  892. cbBank.Checked = true;
  893. if (document.All["ctl04_lblWeapon"].InnerText == "Nej" || document.All["ctl04_lblProtection"].InnerText == "Nej")
  894. cbRanaSpelare.Checked = false;
  895. else
  896. cbRanaSpelare.Checked = false; // funkar inte jusst nu ... eller?
  897.  
  898. }
  899.  
  900. //tillhörighetskontroll
  901. //if (false) //gang != "BÖNDERNA" && !allowed.Contains(namn))
  902. //{
  903. // if (limitedAccess.Contains(namn))
  904. // {
  905. // cbGang.Enabled = false;
  906. // cbGang.Checked = false;
  907. // lgangTid.Enabled = false;
  908. // cbSpela.Enabled = false;
  909. // cbSpela.Checked = false;
  910. // lSpelaTid.Enabled = false;
  911. // cbRaggaSpons.Enabled = false;
  912. // cbRaggaSpons.Checked = false;
  913. // lRaggaSponsTid.Enabled = false;
  914. // cbBank.Enabled = false;
  915. // cbBank.Checked = false;
  916. // cbRanaSpelare.Enabled = false;
  917. // cbRanaSpelare.Checked = false;
  918. // lRanaSpelareTid.Enabled = false;
  919. // cbRace.Enabled = false;
  920. // cbRace.Checked = false;
  921. // lRaceTid.Enabled = false;
  922. // }
  923. // else
  924. // {
  925. // tbURL.Text = "Ledsnen grabben, det är programmet är inget för dig!";
  926. // webBrowser1.AllowNavigation = false;
  927. // try { checkName(); }
  928. // catch { }
  929. // return;
  930. // }
  931. //}
  932. //if (true) //fullAccess.Contains(namn))
  933. //{
  934. // cbRace.Checked = false;
  935. // cbRace.Enabled = true;
  936. // cbRace.Visible = true;
  937. // lRaceTid.Enabled = true;
  938. // lRaceTid.Visible = true;
  939. //}
  940.  
  941. try { checkName(); }
  942. catch { }
  943.  
  944. this.Text = "BTT2 | " + namn;
  945. initierad = true;
  946.  
  947. string friendsUrl = document.GetElementById("ctl04_hlFriends").GetAttribute("href");
  948. if (urls.ContainsKey("friends")) urls.Remove("friends");
  949. urls.Add("friends", friendsUrl);
  950.  
  951. //if (cbRanaSpelare.Checked || cbRace.Checked)
  952. //{
  953. // aktivitet = Activity.friend;
  954. // webBrowser1.Navigate(urls["friends"]);
  955. //}
  956. //else if (fas == 1) //ehm... hur göra?
  957. //{
  958. //aktivitet = Activity.verktyg;
  959. //webBrowser1.Navigate(urls["verktyg"]);
  960. //}
  961. //else
  962. //{
  963. aktivitet = Activity.idle;
  964. webBrowser1.Navigate(urls["stjalRana"]);
  965. //}
  966. }
  967. else if (aktivitet == Activity.saljer) //sälj
  968. {
  969. System.Diagnostics.Debug.WriteLine("webBrowser1_DocumentCompleted->salj");
  970. if (fordon == 0 || (fordon < lokal / 2 && skada == 0))
  971. {
  972. aktivitet = Activity.idle;
  973. webBrowser1.Navigate(urls["stjalRana"]);
  974. }
  975. else
  976. {
  977. if (fas == 4)
  978. {
  979. saljUSA();
  980. }
  981. else
  982. {
  983. salj();
  984. }
  985. }
  986. }
  987. else if (aktivitet == Activity.ranar && document.All["ctl04$btnWork"] != null) //råna
  988. {
  989. System.Diagnostics.Debug.WriteLine("webBrowser1_DocumentCompleted->rånar");
  990. aktivitet = Activity.idle;
  991. string value;
  992. if (fas == 2)
  993. value = Convert.ToString(Math.Floor(level / 500.0) + 15);
  994. else if (fas == 3)
  995. value = Convert.ToString(Math.Floor(level / 500.0) + 22);
  996. else if (fas == 4)
  997. value = getFas1USARanValue().ToString();
  998. else
  999. value = getFas1RanValue().ToString();
  1000.  
  1001. stjalRanaTid = DateTime.Now.AddSeconds(stjalRanaMax);
  1002. document.All["ctl04$ddlRob"].SetAttribute("Value", value);
  1003. document.All["ctl04$btnRob"].InvokeMember("click");
  1004. }
  1005. else if (aktivitet == Activity.idle)
  1006. {
  1007. System.Diagnostics.Debug.WriteLine("webBrowser1_DocumentCompleted->idle");
  1008. if (cbSpela.Checked && (spelaTid - DateTime.Now).TotalSeconds <= 0 &&
  1009. document.All["ctl04$btnGambleCars"] != null &&
  1010. fordon >= 5 && (lokal - fordon) > spelaMin && bilPott > spelaMin)
  1011. {
  1012. System.Diagnostics.Debug.WriteLine("webBrowser1_DocumentCompleted->idle->spela"); //spela
  1013. // and 5<=cars<x
  1014. spelaTid = DateTime.Now.AddSeconds(spelaMax);
  1015. document.All["ctl04$btnGambleCars"].InvokeMember("click");
  1016. }
  1017. else if (document.All["ctl02_hlGang"] != null) //gängmeddelande
  1018. {
  1019. //Win32API.ShowWindow(this.Handle, 9); //Win32API.WindowState.SW_RESTORE
  1020. //Application.DoEvents();
  1021. aktivitet = Activity.inbox;
  1022. webBrowser1.Navigate(urls["inboxGang"]);
  1023. }
  1024. else if (fordon > (lokal - lokal / 3) ||
  1025. (skada > 10 && skada <= 30 && fas != 1)) //börja sälj
  1026. {
  1027. System.Diagnostics.Debug.WriteLine("webBrowser1_DocumentCompleted->idle->salj");
  1028. aktivitet = Activity.saljer;
  1029. webBrowser1.Navigate(urls["lagaSalj"]);
  1030. }
  1031. else if (mods.Count == 0)
  1032. {
  1033. aktivitet = Activity.mods;
  1034. webBrowser1.Navigate(urls["mods"]);
  1035. }
  1036.  
  1037. }
  1038. }
  1039.  
  1040. private void raceUser()
  1041. {
  1042. if (raceTime.Count == 0 || webBrowser1.Document.All["ctl02_hlCrime"] == null)
  1043. {
  1044. rejsaTid = DateTime.Now.AddSeconds(rejsaMax);
  1045. aktivitet = Activity.idle;
  1046. webBrowser1.Navigate(urls["stjalRana"]);
  1047. return;
  1048. }
  1049. string q = webBrowser1.Document.All["ctl02_hlCrime"].GetAttribute("href");
  1050. q = q.Substring(q.IndexOf("q=") + 2);
  1051. aktivitet = Activity.rejsarAnv;
  1052. string url;
  1053. foreach (int iid in raceTime.Keys)
  1054. {
  1055. if (raceTime[iid] < DateTime.Now)
  1056. {
  1057. raceTime.Remove(iid);
  1058. url = users[iid].getRaceUrl(q);
  1059. webBrowser1.Navigate(url);
  1060. return;
  1061. }
  1062. }
  1063. int s = Convert.ToInt32((raceTime.Values.Min() - DateTime.Now).TotalSeconds + 0.5);
  1064. s = Math.Min(s, rejsaMax);
  1065. rejsaTid = DateTime.Now.AddSeconds(s);
  1066. aktivitet = Activity.idle;
  1067. webBrowser1.Navigate(urls["stjalRana"]);
  1068. }
  1069.  
  1070. private void attackUser()
  1071. {
  1072. if (attackTime.Count == 0 || webBrowser1.Document.All["ctl02_hlCrime"] == null)
  1073. {
  1074. ranaSpelareTid = DateTime.Now.AddSeconds(ranaSpelareMax);
  1075. aktivitet = Activity.idle;
  1076. webBrowser1.Navigate(urls["stjalRana"]);
  1077. return;
  1078. }
  1079. string q = webBrowser1.Document.All["ctl02_hlCrime"].GetAttribute("href");
  1080. q = q.Substring(q.IndexOf("q=") + 2);
  1081. aktivitet = Activity.ranarAnv;
  1082. string url;
  1083. foreach (int iid in attackTime.Keys)
  1084. {
  1085. if (attackTime[iid] < DateTime.Now)
  1086. {
  1087. attackTime.Remove(iid);
  1088. url = users[iid].getAttackUrl(q);
  1089. webBrowser1.Navigate(url);
  1090. return;
  1091. }
  1092. }
  1093. int s = Convert.ToInt32((attackTime.Values.Min() - DateTime.Now).TotalSeconds + 0.5);
  1094. s = Math.Min(s, ranaSpelareMax);
  1095. ranaSpelareTid = DateTime.Now.AddSeconds(s);
  1096. aktivitet = Activity.idle;
  1097. webBrowser1.Navigate(urls["stjalRana"]);
  1098. }
  1099.  
  1100. void saveUsers()
  1101. {
  1102. Debug.WriteLine("Saving users...");
  1103. string fileName = Application.StartupPath + "\\" + namn + "Users.dat";
  1104. try
  1105. {
  1106. FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.Read);
  1107. StreamWriter sw = new StreamWriter(fs);
  1108. bool full = true; //fullAccess.Contains(namn);
  1109. foreach (user u in users.Values)
  1110. {
  1111. sw.WriteLine(u.outData(full));
  1112. }
  1113. sw.Close();
  1114. fs.Close();
  1115. }
  1116. catch (Exception ex)
  1117. {
  1118. Debug.WriteLine("ERROR: saveUsers failed!\n" + ex.Message);
  1119. return;
  1120. }
  1121. Debug.WriteLine("Users saved!");
  1122. }
  1123.  
  1124. void loadUsers()
  1125. {
  1126. Debug.WriteLine("Loading users...");
  1127. try
  1128. {
  1129. FileStream fs;
  1130. StreamReader sr;
  1131. string fileName = Application.StartupPath + "\\" + namn + "Users.dat";
  1132. fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None);
  1133. sr = new StreamReader(fs);
  1134. string[] input;
  1135. string row;
  1136. while (!sr.EndOfStream)
  1137. {
  1138. row = sr.ReadLine();
  1139. if (row.Contains("\t"))
  1140. input = row.Split('\t');
  1141. else
  1142. input = row.Split(' ');
  1143. users.Add(Convert.ToInt32(input[0]), new user(input));
  1144. }
  1145.  
  1146. sr.Close();
  1147. fs.Close();
  1148.  
  1149. }
  1150. catch (Exception ex)
  1151. {
  1152. Debug.WriteLine("Reading users data failed!\n" + ex.Message);
  1153. return;
  1154. }
  1155. Debug.WriteLine(users.Count.ToString() + " users loaded!");
  1156. }
  1157.  
  1158. private int getFas1USARanValue()
  1159. {
  1160. int value;
  1161. if (level < 8)
  1162. value = 1;
  1163. else if (level < 15)
  1164. value = 2;
  1165. else if (level < 22)
  1166. value = 3;
  1167. else if (level < 30)
  1168. value = 4;
  1169. else if (level < 50)
  1170. value = 5;
  1171. else if (level < 100)
  1172. value = 6;
  1173. else if (level < 200)
  1174. value = 7;
  1175. else if (level < 400) //hit funkare
  1176. value = 8;
  1177. else if (level < 800)
  1178. value = 9;
  1179. else if (level < 1600)
  1180. value = 10;
  1181. else if (level < 3000)
  1182. value = 11;
  1183. else if (level < 2800)
  1184. value = 12;
  1185. else
  1186. value = 13;
  1187. return value;
  1188. }
  1189.  
  1190. private int getFas1RanValue() {
  1191. int value;
  1192. if (level < 10)
  1193. value = 1;
  1194. else if (level < 25)
  1195. value = 2;
  1196. else if (level < 50)
  1197. value = 3;
  1198. else if (level < 100)
  1199. value = 4;
  1200. else if (level < 250)
  1201. value = 5;
  1202. else if (level < 500)
  1203. value = 6;
  1204. else if (level < 750)
  1205. value = 7;
  1206. else if (level < 1000)
  1207. value = 8;
  1208. else if (level < 1500)
  1209. value = 9;
  1210. else if (level < 2000)
  1211. value = 10;
  1212. else if (level < 2500)
  1213. value = 11;
  1214. else if (level < 2800)
  1215. value = 12;
  1216. else
  1217. value = 13;
  1218. return value;
  1219. }
  1220.  
  1221. private void heala()
  1222. {
  1223. System.Diagnostics.Debug.WriteLine("heala");
  1224. if (halsa <= 50)
  1225. webBrowser1.Navigate("javascript:__doPostBack('ctl04$lbheal_4','')");
  1226. else if (halsa <= 70)
  1227. webBrowser1.Navigate("javascript:__doPostBack('ctl04$lbheal_3','')");
  1228. else if (halsa <= 80)
  1229. webBrowser1.Navigate("javascript:__doPostBack('ctl04$lbheal_2','')");
  1230. else
  1231. webBrowser1.Navigate("javascript:__doPostBack('ctl04$lbheal_1','')");
  1232.  
  1233. }
  1234.  
  1235. private void saljUSA()
  1236. {
  1237. System.Diagnostics.Debug.WriteLine("salj");
  1238. System.Windows.Forms.HtmlDocument document = this.webBrowser1.Document;
  1239. string value;
  1240. if (skada > 30 || skada == 0)
  1241. {
  1242. if (skada < 3)
  1243. value = "1";
  1244. else if (skada < 9)
  1245. value = "2";
  1246. else if (skada < 17)
  1247. value = "3";
  1248. else if (skada < 26)
  1249. value = "4";
  1250. else if (skada < 40)
  1251. value = "5";
  1252. else if (skada < 51)
  1253. value = "6";
  1254. else if (skada < 67)
  1255. value = "7";
  1256. else
  1257. value = "8";
  1258. document.All["ctl04$ddlSell"].SetAttribute("value", value);
  1259. document.All["ctl04$btnSell"].InvokeMember("click");
  1260. }
  1261. else
  1262. {
  1263. if (skada < 3)
  1264. value = "1";
  1265. else if (skada < 10)
  1266. value = "2";
  1267. else if (skada < 17)
  1268. value = "3";
  1269. else if (skada < 25)
  1270. value = "4";
  1271. else
  1272. value = "5";
  1273. document.All["ctl04$ddlRepair"].SetAttribute("value", value);
  1274. document.All["ctl04$btnRepair"].InvokeMember("click");
  1275. }
  1276. }
  1277.  
  1278. private void salj()
  1279. {
  1280. System.Diagnostics.Debug.WriteLine("salj");
  1281. System.Windows.Forms.HtmlDocument document = this.webBrowser1.Document;
  1282. string value;
  1283. if (fas == 1 || skada > 30 || skada == 0)
  1284. {
  1285. if (skada < 2)
  1286. value = "1";
  1287. else if (skada < 10)
  1288. value = "2";
  1289. else if (skada < 20)
  1290. value = "3";
  1291. else if (skada < 30)
  1292. value = "4";
  1293. else if (skada < 40)
  1294. value = "5";
  1295. else if (skada < 50)
  1296. value = "6";
  1297. else if (skada < 70)
  1298. value = "7";
  1299. else if (skada < 86)
  1300. value = "8";
  1301. else if (skada < 100)
  1302. value = "9";
  1303. else
  1304. value = "10";
  1305. document.All["ctl04$ddlSell"].SetAttribute("value", value);
  1306. document.All["ctl04$btnSell"].InvokeMember("click");
  1307. }
  1308. else
  1309. {
  1310. skada = Convert.ToInt32(Math.Ceiling(skada / 5.0));
  1311. value = skada.ToString();
  1312. document.All["ctl04$ddlRepair"].SetAttribute("value", value);
  1313. document.All["ctl04$btnRepair"].InvokeMember("click");
  1314. }
  1315. }
  1316.  
  1317. private int getToolVal()
  1318. {
  1319. int val = 0;
  1320. if (fas == 1)
  1321. {
  1322. val = Convert.ToInt32(Math.Floor(verktyg / 5.0) + 1);
  1323. if (val > 6) val = 6;
  1324. }
  1325. else if (fas == 4)
  1326. {
  1327. if (verktyg < 37)
  1328. val = 1;
  1329. else if (verktyg < 38)
  1330. val = 2;
  1331. else if (verktyg < 39)
  1332. val = 3;
  1333. else if (verktyg < 40)
  1334. val = 4;
  1335. else
  1336. val = 5;
  1337. }
  1338. else //if (fas == 2 || fas == 3)
  1339. {
  1340. if (verktyg < 25)
  1341. val = 5;
  1342. else if (verktyg < 26)
  1343. val = 6;
  1344. else if (verktyg < 27)
  1345. val = 7;
  1346. else if (verktyg < 28)
  1347. val = 8;
  1348. else if (verktyg < 29)
  1349. val = 9;
  1350. else if (verktyg < 30)
  1351. val = 10;
  1352. else if (verktyg < 32)
  1353. val = 11;
  1354. else if (verktyg < 34)
  1355. val = 12;
  1356. else if (verktyg < 36)
  1357. val = 13;
  1358. else
  1359. val = 14;
  1360. }
  1361. return val;
  1362. }
  1363.  
  1364. private void stjalRana()
  1365. {
  1366. System.Windows.Forms.HtmlDocument document = this.webBrowser1.Document;
  1367. if (document != null && document.All["ctl04$btnSteal"] != null)
  1368. {
  1369. System.Diagnostics.Debug.WriteLine("stjalRana");
  1370. int val = getToolVal();
  1371. System.Diagnostics.Debug.WriteLine("stjalRana->verktyg->val = " + val.ToString());
  1372. document.All["ctl04$ddlSteal"].SetAttribute("value", val.ToString());
  1373.  
  1374. aktivitet = Activity.ranar;
  1375. document.All["ctl04$btnSteal"].InvokeMember("click");
  1376. }
  1377. //else
  1378. //{
  1379. // System.Diagnostics.Debug.WriteLine("stjalRana misslyckades!");
  1380. //}
  1381. }
  1382.  
  1383.  
  1384. private Bitmap getBmp(string id) {
  1385.  
  1386.  
  1387. mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)webBrowser1.Document.DomDocument;
  1388. mshtml.IHTMLSelectionObject sobj = doc.selection;
  1389. mshtml.HTMLBody body = doc.body as mshtml.HTMLBody;
  1390. sobj.empty();
  1391. mshtml.IHTMLControlRange range = body.createControlRange() as mshtml.IHTMLControlRange;
  1392. mshtml.IHTMLControlElement img = (mshtml.IHTMLControlElement)webBrowser1.Document.All[id].DomElement;
  1393.  
  1394. range.add(img);
  1395. range.select();
  1396. range.execCommand("Copy", false, null);
  1397.  
  1398. Bitmap bmp = new Bitmap(Clipboard.GetImage());
  1399.  
  1400. return bmp;
  1401. }
  1402.  
  1403. private void login()
  1404. {
  1405. HtmlDocument document = webBrowser1.Document;
  1406. if (document != null && document.All["btnLogin"] != null && tbAnvandarnamn.Text != "" && tbLosenord.Text != "")
  1407. {
  1408.  
  1409. document.All["txtUsername"].SetAttribute("Value", tbAnvandarnamn.Text);
  1410. document.All["txtPassword"].SetAttribute("Value", tbLosenord.Text);
  1411.  
  1412. // ??? -> TimeSpan ts = DateTime.Now - idleTid;
  1413. if (cbCaptcha.SelectedIndex == 0) // ??? -> || (cbCaptcha.SelectedIndex == 1 && ts.Minutes >= idleTidMax))
  1414. {
  1415. Win32API.ShowWindow(this.Handle, 9); //Win32API.WindowState.SW_RESTORE
  1416. Application.DoEvents();
  1417. Win32API.SetForegroundWindow(this.Handle);
  1418. Application.DoEvents();
  1419. this.Activate();
  1420.  
  1421. //string imgUrl = document.All["imgCaptcha"].GetAttribute("src").ToString();
  1422. Bitmap bmp = getBmp("imgCaptcha"); // (imgUrl); //("imgCaptcha"); //temp
  1423. //pictureBox1.Image = bmp;
  1424.  
  1425. string value = extractString(bmp);
  1426. if (value.Length == 3 && Form.ActiveForm != null && errorCount < maxErrors)
  1427. {
  1428. document.All["txtCaptcha"].SetAttribute("Value", value);
  1429. document.All["btnLogin"].InvokeMember("Click");
  1430. }
  1431. else if (errorCount < maxErrors)
  1432. {
  1433. Debug.WriteLine("login misslyckades - fel kodlängd");
  1434. webBrowser1.Navigate(urls["login"]);
  1435. }
  1436. else
  1437. {
  1438. Debug.WriteLine("Abort! To many errors in login");
  1439. //fulfix av mysko fel
  1440. Process.Start(Application.ExecutablePath, tbAnvandarnamn.Text + " " + tbLosenord.Text);
  1441. Application.Exit();
  1442. }
  1443. }
  1444. else if (cbCaptcha.SelectedIndex != 2)
  1445. {
  1446. FlashWindow.Flash(this);
  1447. }
  1448.  
  1449. }
  1450. else
  1451. {
  1452. System.Diagnostics.Debug.WriteLine("login misslyckades");
  1453. }
  1454. }
  1455.  
  1456. private void timer1_Tick(object sender, EventArgs e)
  1457. {
  1458. HtmlDocument document = webBrowser1.Document;
  1459.  
  1460. //lfelsok.Text = aktivitet.ToString();
  1461.  
  1462. //döda alerts
  1463. IntPtr alerthwnd = Win32API.GetLastActivePopup(this.Handle);
  1464. string dis, last, bwsr;
  1465. dis = this.Handle.ToString();
  1466. last = alerthwnd.ToString();
  1467. bwsr = webBrowser1.Handle.ToString();
  1468. if (dis != last) Debug.Print("this:" + dis + " last:" + last + " brwsr:" + bwsr);
  1469. if (alerthwnd != this.Handle) //lastPopUp && alerthwnd != webBrowser1.Handle)
  1470. {
  1471. //if (document == null)
  1472. //if (document.All["imgCaptcha"] != null || document.All["ctl04_imgCaptcha"] != null)
  1473. //return;
  1474. Debug.WriteLine("sendkeys - alerthwnd: " + alerthwnd.ToString());
  1475.  
  1476. SendKeys.Send("~"); //Win32API.PostMessage(this.Handle, 275, new IntPtr(1), IntPtr.Zero); //0x113
  1477.  
  1478. }
  1479. //lastPopUp = alerthwnd;
  1480.  
  1481. //uppdatera tid
  1482. TimeSpan ts = spelaTid - DateTime.Now; //spela
  1483. if (ts.TotalSeconds > 0)
  1484. lSpelaTid.Text = new DateTime(ts.Ticks).ToLongTimeString();
  1485.  
  1486.  
  1487. //idle
  1488. //
  1489. // An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in System.Windows.Forms.dll
  1490. // Additional information: The requested resource is in use. (Exception from HRESULT: 0x800700AA)
  1491. //
  1492. ts = DateTime.Now - idleTid;
  1493. lIdle.Text = "Idle: " + new DateTime(ts.Ticks).ToLongTimeString();
  1494. if (ts.Seconds > 10 && aktivitet != Activity.idle)
  1495. {
  1496. aktivitet = Activity.idle;
  1497. webBrowser1.Navigate(urls["stjalRana"]);
  1498. }
  1499. if (ts.Minutes > idleTidMax && document.All["btnLogin"] == null &&
  1500. document.All["ctl04_tblTaskerCheck"] == null)
  1501. {
  1502. aktivitet = Activity.idle;
  1503. try
  1504. {
  1505. webBrowser1.Navigate(urls["stjalRana"]);
  1506. }
  1507. catch
  1508. {
  1509. Debug.WriteLine("nav. error in timer, idle!");
  1510. }
  1511. }
  1512.  
  1513. //logout / shut down
  1514. if (cbLogout.SelectedIndex > 0)
  1515. {
  1516. ts = logoutTid - DateTime.Now;
  1517. if (ts.TotalSeconds > 0)
  1518. {
  1519. lLogout.Text = new DateTime(ts.Ticks).ToLongTimeString();
  1520. }
  1521. else if (cbLogout.SelectedIndex == 1)
  1522. {
  1523. System.Diagnostics.Debug.WriteLine("timer1_tick->logout->logout");
  1524. cbCaptcha.SelectedIndex = 2;
  1525. cbLogout.SelectedIndex = 0;
  1526. webBrowser1.Navigate(urls["logout"]);
  1527. }
  1528. else if (cbLogout.SelectedIndex == 2)
  1529. {
  1530. Process.Start("shutdown", "-s -f -t 180");
  1531. Application.Exit();
  1532. }
  1533. }
  1534.  
  1535. //Stjäl / råna'
  1536. ts = stjalRanaTid - DateTime.Now;
  1537. if (ts.TotalSeconds <= 0)
  1538. {
  1539. if (aktivitet == Activity.idle)
  1540. {
  1541. stjalRana();
  1542. return;
  1543. }
  1544. }
  1545. else
  1546. {
  1547. lStjalRanaTid.Text = new DateTime(ts.Ticks).ToLongTimeString();
  1548. }
  1549.  
  1550.  
  1551. //bank
  1552. if (cbBank.Checked)
  1553. {
  1554. ts = bankTid - DateTime.Now;
  1555. if (fas == 3 && mnKr > mnKrMax && aktivitet == Activity.idle && document.All["ctl04_ddlSteal"] != null && ts.TotalMinutes <= 0)
  1556. {
  1557. if (Form.ActiveForm != null)
  1558. {
  1559. aktivitet = Activity.bank;
  1560. webBrowser1.Navigate(urls["bank"]);
  1561.  
  1562. }
  1563. else if (mnKr > mnKrKritisk)
  1564. {
  1565. Win32API.ShowWindow(this.Handle, 9); //Win32API.WindowState.SW_RESTORE
  1566. this.Activate();
  1567. }
  1568. }
  1569. }
  1570.  
  1571. string url = webBrowser1.Url.ToString();
  1572.  
  1573. //spons
  1574. if (cbRaggaSpons.Checked)
  1575. {
  1576. ts = raggaTid - DateTime.Now;
  1577. if (ts.TotalSeconds <= 0)
  1578. {
  1579. if (aktivitet == Activity.idle && url.Contains("crime"))
  1580. {
  1581. aktivitet = Activity.raggar;
  1582. webBrowser1.Navigate(urls["ragga"]);
  1583. }
  1584. }
  1585. else
  1586. {
  1587. this.lRaggaSponsTid.Text = new DateTime(ts.Ticks).ToLongTimeString();
  1588. }
  1589. }
  1590.  
  1591. //levla gäng
  1592. if (cbGang.Checked)
  1593. {
  1594. ts = gangTid - DateTime.Now;
  1595. if (ts.TotalSeconds <= 0)
  1596. {
  1597.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Visual Basic.Net Compiler version 0.0.0.5914 (Mono 2.4.2 - r)
Copyright (C) 2004-2008 Rolf Bjarne Kvinge. All rights reserved.


/home/xy2MDy/prog.vb (1,7) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (1,14) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (2,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (2,33) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (3,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (3,28) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (4,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (4,18) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (5,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (5,21) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (6,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (6,25) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (7,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (7,18) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (8,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (8,18) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (9,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (9,27) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (10,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (10,29) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (11,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (11,16) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (12,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (12,19) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (13,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (13,17) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (14,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (14,13) : Error VBNC30037: Symbol is not valid.
/home/xy2MDy/prog.vb (30,2) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (32,38) : Error VBNC90019: Expected 'End'.
Error recovery not implemented yet.
/home/xy2MDy/prog.vb (32,38) : Error VBNC30205: Expected end of statement.
Error recovery not implemented yet.
/home/xy2MDy/prog.vb (32,38) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (33,6) : Error VBNC30203: Not valid as identifier.
/home/xy2MDy/prog.vb (35,31) : Error VBNC30205: Expected end of statement.
Error recovery not implemented yet.
Error recovery not implemented yet.
/home/xy2MDy/prog.vb (35,31) : Error VBNC30205: Expected end of statement.
Error recovery not implemented yet.
/home/xy2MDy/prog.vb (35,31) : Error VBNC99999: vbnc crashed nearby this location in the source code.
/home/xy2MDy/prog.vb (35,31) : Error VBNC99999: Unexpected error: Object reference not set to an instance of an object
  at vbnc.EnumMemberDeclaration.Init (Int32 EnumIndex, vbnc.Attributes Attributes, vbnc.Identifier Identifier, vbnc.Expression ConstantExpression) [0x00000] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Members/EnumMemberDeclaration.vb:54 
  at vbnc.Parser.ParseEnumMemberDeclaration (vbnc.ParsedObject Parent, vbnc.ParseAttributableInfo Info, Int32 EnumIndex) [0x00083] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Parser/Parser(Members2).vb:168 
  at vbnc.Parser.ParseEnumMembers (vbnc.EnumDeclaration Parent) [0x00065] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Parser/Parser(Types).vb:149 
  at vbnc.Parser.ParseEnumDeclaration (vbnc.ParsedObject Parent, vbnc.Attributes Attributes, System.String Namespace) [0x000da] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Parser/Parser(Types).vb:190 
  at vbnc.Parser.ParseTypeDeclaration (vbnc.ParsedObject Parent, vbnc.Attributes Attributes, System.String Namespace) [0x00034] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Parser/Parser.vb:1438 
  at vbnc.Parser.ParseAssemblyMembers (vbnc.AssemblyDeclaration Parent, System.String RootNamespace, vbnc.MemberDeclarations declarations) [0x001a8] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Parser/Parser.vb:1482 
  at vbnc.Parser.ParseAssemblyDeclaration (System.String RootNamespace, vbnc.AssemblyDeclaration assembly) [0x00092] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Parser/Parser.vb:433 
  at vbnc.Parser.Parse (System.String RootNamespace, vbnc.AssemblyDeclaration assembly) [0x00002] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/Parser/Parser.vb:58 
  at vbnc.Compiler.Compile_Parse () [0x0006d] in /var/tmp/portage/dev-lang/mono-basic-2.4.2/work/mono-basic-2.4.2/vbnc/vbnc/source/General/Compiler.vb:363 
Compilation took 00:00:00.5658880
stdout
Standard output is empty