bf_missin_simple.go 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455
  1. // package bf_mission_simple -- простые миссии
  2. package bf_mission_simple
  3. import (
  4. "strings"
  5. . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
  6. . "wartank/app/lev0/types"
  7. )
  8. // МиссииПростыеЗабрать -- забирает выполненные простые миссии
  9. func МиссииПростыеЗабрать(конт ILocalCtx) {
  10. сражениеЗащита(конт)
  11. сражениеНаступление(конт)
  12. проведиВойну(конт)
  13. battle5Fiting(конт)
  14. battle6win(конт)
  15. battle10Fiting(конт)
  16. battleDogFyting(конт)
  17. makeResource(конт)
  18. kill3tanks(конт)
  19. топливоДив(конт)
  20. upMan(конт)
  21. }
  22. // Проверяет награду за уничтожить 3 танка в бою
  23. func kill3tanks(конт ILocalCtx) {
  24. арена := конт.Get("миссии_простые").Val().(ИАрена)
  25. var (
  26. strOut string
  27. lstMissions = арена.СписПолучить()
  28. еслиНайдено bool
  29. ind int
  30. )
  31. for ind, strOut = range lstMissions {
  32. if strings.Contains(strOut, `Уничтожь в бою 3 танка<br/>`) {
  33. еслиНайдено = true
  34. break
  35. }
  36. }
  37. if !еслиНайдено {
  38. return
  39. }
  40. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  41. ind += 23
  42. strOut = lstMissions[ind]
  43. if !strings.Contains(strOut, `>Получить награду<`) {
  44. return
  45. }
  46. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  47. strLink := lstLink[1]
  48. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  49. strLink = "https://wartank.ru/missions/" + lstLink[0]
  50. lstMissions, err := арена.Сеть().Get(strLink)
  51. if err != nil {
  52. // log._rintf("ERRO Миссии.kill3tanks(): при выполнении GET-запроса, err=\n\t%v\n", err)
  53. return
  54. }
  55. if err := арена.СтрОбновить(lstMissions); err != nil {
  56. // log._rintf("ERRO Миссии.kill3tanks(): при обновлении lstMissions, err=\n\t%v\n", err)
  57. return
  58. }
  59. }
  60. // Проверяет награду оборонительного сражения
  61. func сражениеЗащита(конт ILocalCtx) {
  62. арена := конт.Get("миссии_простые").Val().(ИАрена)
  63. var (
  64. strOut string
  65. еслиНайдено bool
  66. )
  67. арена.Обновить()
  68. списМиссия := арена.СписПолучить()
  69. // <a class="simple-but border" href="?23-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  70. for _, strOut = range списМиссия {
  71. if strings.Contains(strOut, `.ILinkListener-missions-cc-0-c-awardLink`) {
  72. еслиНайдено = true
  73. break
  74. }
  75. }
  76. if !еслиНайдено {
  77. return
  78. }
  79. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  80. _ссылка := strings.TrimPrefix(strOut, `<a class="simple-but border" href="`)
  81. _ссылка = strings.TrimSuffix(_ссылка, `"><span><span>Получить награду</span></span></a>`)
  82. strLink := "https://wartank.ru/missions/" + _ссылка
  83. списМиссия, err := арена.Сеть().Get(strLink)
  84. if err != nil {
  85. // log._rintf("ERRO Миссии.battleDefence(): при выполнении GET-запроса, err=\n\t%v\n", err)
  86. return
  87. }
  88. if err := арена.СтрОбновить(списМиссия); err != nil {
  89. // log._rintf("ERRO Миссии.battleDefence(): при обновлении lstMissions, err=\n\t%v\n", err)
  90. return
  91. }
  92. }
  93. // Проверяет награду за одну войну
  94. func проведиВойну(конт ILocalCtx) {
  95. арена := конт.Get("миссии_простые").Val().(ИАрена)
  96. var (
  97. strOut string
  98. lstMissions = арена.СписПолучить()
  99. еслиНайдено bool
  100. ind int
  101. )
  102. for ind, strOut = range lstMissions {
  103. if strings.Contains(strOut, `Проведи одну войну<br/>`) {
  104. еслиНайдено = true
  105. break
  106. }
  107. }
  108. if !еслиНайдено {
  109. return
  110. }
  111. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  112. ind += 23
  113. strOut = lstMissions[ind]
  114. if !strings.Contains(strOut, `>Получить награду<`) {
  115. return
  116. }
  117. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  118. strLink := lstLink[1]
  119. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  120. strLink = "https://wartank.ru/missions/" + lstLink[0]
  121. lstMissions, err := арена.Сеть().Get(strLink)
  122. if err != nil {
  123. // log._rintf("ERRO Миссии.battleWar(): при выполнении GET-запроса, err=\n\t%v\n", err)
  124. return
  125. }
  126. if err := арена.СтрОбновить(lstMissions); err != nil {
  127. // log._rintf("ERRO Миссии.battleWar(): при обновлении lstMissions, err=\n\t%v\n", err)
  128. return
  129. }
  130. }
  131. // Проверяет награду наступательного сражения
  132. func сражениеНаступление(конт ILocalCtx) {
  133. арена := конт.Get("миссии_простые").Val().(ИАрена)
  134. var (
  135. strOut string
  136. еслиНайдено bool
  137. ind int
  138. lstMissions = арена.СписПолучить()
  139. )
  140. if len(lstMissions) == 0 {
  141. арена.Обновить()
  142. lstMissions = арена.СписПолучить()
  143. }
  144. for ind, strOut = range lstMissions {
  145. if strings.Contains(strOut, "Проведи одно наступательное сражение<br/>") {
  146. еслиНайдено = true
  147. break
  148. }
  149. }
  150. if !еслиНайдено {
  151. return
  152. }
  153. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  154. ind += 23
  155. strOut = lstMissions[ind]
  156. if !strings.Contains(strOut, `>Получить награду<`) {
  157. return
  158. }
  159. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  160. strLink := lstLink[1]
  161. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  162. strLink = "https://wartank.ru/missions/" + lstLink[0]
  163. lstMissions, err := арена.Сеть().Get(strLink)
  164. if err != nil {
  165. // log._rintf("ERRO Миссии.battleAttack(): при выполнении GET-запроса, err=\n\t%v\n", err)
  166. return
  167. }
  168. if err := арена.СтрОбновить(lstMissions); err != nil {
  169. // log._rintf("ERRO Миссии.battleAttack(): при обновлении lstMissions, err=\n\t%v\n", err)
  170. return
  171. }
  172. }
  173. // Проверяет награду за схватку
  174. func battleDogFyting(конт ILocalCtx) {
  175. арена := конт.Get("миссии_простые").Val().(ИАрена)
  176. var (
  177. strOut string
  178. lstMissions = арена.СписПолучить()
  179. еслиНайдено bool
  180. ind int
  181. )
  182. for ind, strOut = range lstMissions {
  183. if strings.Contains(strOut, `Проведи одну схватку<br/>`) {
  184. еслиНайдено = true
  185. break
  186. }
  187. }
  188. if !еслиНайдено {
  189. return
  190. }
  191. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  192. ind += 23
  193. strOut = lstMissions[ind]
  194. if !strings.Contains(strOut, `>Получить награду<`) {
  195. return
  196. }
  197. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  198. strLink := lstLink[1]
  199. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  200. strLink = "https://wartank.ru/missions/" + lstLink[0]
  201. lstMissions, err := арена.Сеть().Get(strLink)
  202. if err != nil {
  203. // log._rintf("ERRO Миссии.battleDogFyting(): при выполнении GET-запроса, err=\n\t%v\n", err)
  204. return
  205. }
  206. if err := арена.СтрОбновить(lstMissions); err != nil {
  207. // log._rintf("ERRO Миссии.battleDogFyting(): при обновлении lstMissions, err=\n\t%v\n", err)
  208. return
  209. }
  210. }
  211. // Проверяет награду за ресурсы
  212. func makeResource(конт ILocalCtx) {
  213. арена := конт.Get("миссии_простые").Val().(ИАрена)
  214. var (
  215. strOut string
  216. lstMissions = арена.СписПолучить()
  217. еслиНайдено bool
  218. ind int
  219. )
  220. for ind, strOut = range lstMissions {
  221. if strings.Contains(strOut, `Произведи на базе 10 ресурсов<br/>`) {
  222. еслиНайдено = true
  223. break
  224. }
  225. }
  226. if !еслиНайдено {
  227. return
  228. }
  229. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  230. ind += 23
  231. strOut = lstMissions[ind]
  232. if !strings.Contains(strOut, `>Получить награду<`) {
  233. return
  234. }
  235. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  236. strLink := lstLink[1]
  237. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  238. strLink = "https://wartank.ru/missions/" + lstLink[0]
  239. lstMissions, err := арена.Сеть().Get(strLink)
  240. if err != nil {
  241. // log._rintf("ERRO Миссии.makeResource(): при выполнении GET-запроса, err=\n\t%v\n", err)
  242. return
  243. }
  244. if err := арена.СтрОбновить(lstMissions); err != nil {
  245. // log._rintf("ERRO Миссии.makeResource(): при обновлении lstMissions, err=\n\t%v\n", err)
  246. return
  247. }
  248. }
  249. // Проверяет награду за ресурсы
  250. func upMan(конт ILocalCtx) {
  251. арена := конт.Get("миссии_простые").Val().(ИАрена)
  252. var (
  253. strOut string
  254. lstMissions = арена.СписПолучить()
  255. еслиНайдено bool
  256. ind int
  257. )
  258. for ind, strOut = range lstMissions {
  259. if strings.Contains(strOut, `Прокачай экипаж на 100 опыта экипажа<br/>`) {
  260. еслиНайдено = true
  261. break
  262. }
  263. }
  264. if !еслиНайдено {
  265. return
  266. }
  267. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  268. ind += 23
  269. strOut = lstMissions[ind]
  270. if !strings.Contains(strOut, `>Получить награду<`) {
  271. return
  272. }
  273. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  274. strLink := lstLink[1]
  275. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  276. strLink = "https://wartank.ru/missions/" + lstLink[0]
  277. lstMissions, err := арена.Сеть().Get(strLink)
  278. if err != nil {
  279. // log._rintf("ERRO Миссии.upMan(): при выполнении GET-запроса, err=\n\t%v\n", err)
  280. return
  281. }
  282. if err := арена.СтрОбновить(lstMissions); err != nil {
  283. // log._rintf("ERRO Миссии.upMan(): при обновлении lstMissions, err=\n\t%v\n", err)
  284. return
  285. }
  286. // log._rintf("INFO Миссии.upMan(): награда получена\n")
  287. }
  288. // Проверяет награду за топливо
  289. func топливоДив(конт ILocalCtx) {
  290. арена := конт.Get("миссии_простые").Val().(ИАрена)
  291. var (
  292. strOut string
  293. lstMissions = арена.СписПолучить()
  294. еслиНайдено bool
  295. ind int
  296. )
  297. for ind, strOut = range lstMissions {
  298. if strings.Contains(strOut, `Получи топливо в дивизии<br/>`) {
  299. еслиНайдено = true
  300. break
  301. }
  302. }
  303. if !еслиНайдено {
  304. return
  305. }
  306. // <a class="simple-but border" href="?157-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  307. ind += 19
  308. strOut = lstMissions[ind]
  309. if !strings.Contains(strOut, `>Получить награду</`) {
  310. return
  311. }
  312. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  313. strLink := lstLink[1]
  314. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  315. strLink = "https://wartank.ru/missions/" + lstLink[0]
  316. lstMissions, err := арена.Сеть().Get(strLink)
  317. if err != nil {
  318. // log._rintf("ERRO Миссии.makeFuel(): при выполнении GET-запроса, err=\n\t%v\n", err)
  319. return
  320. }
  321. if err := арена.СтрОбновить(lstMissions); err != nil {
  322. // log._rintf("ERRO Миссии.makeFuel(): при обновлении lstMissions, err=\n\t%v\n", err)
  323. return
  324. }
  325. // log._rintf("INFO Миссии.makeFuel(): награда получена")
  326. }
  327. // Проверяет награду 5 боёв
  328. func battle5Fiting(конт ILocalCtx) {
  329. арена := конт.Get("миссии_простые").Val().(ИАрена)
  330. var (
  331. strOut string
  332. lstMissions = арена.СписПолучить()
  333. еслиНайдено bool
  334. ind int
  335. )
  336. for ind, strOut = range lstMissions {
  337. if strings.Contains(strOut, `Проведи 5 боев<br/>`) {
  338. еслиНайдено = true
  339. break
  340. }
  341. }
  342. if !еслиНайдено {
  343. return
  344. }
  345. // <a class="simple-but border" href="?113-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  346. ind += 23
  347. strOut = lstMissions[ind]
  348. if !strings.Contains(strOut, `>Получить награду<`) {
  349. return
  350. }
  351. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  352. strLink := lstLink[1]
  353. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  354. strLink = "https://wartank.ru/missions/" + lstLink[0]
  355. lstMissions, err := арена.Сеть().Get(strLink)
  356. if err != nil {
  357. // log._rintf("ERRO Миссии.battle5Fiting(): при выполнении GET-запроса, err=\n\t%v\n", err)
  358. return
  359. }
  360. if err := арена.СтрОбновить(lstMissions); err != nil {
  361. // log._rintf("ERRO Миссии.battle5Fiting(): при обновлении lstMissions, err=\n\t%v\n", err)
  362. return
  363. }
  364. }
  365. // Проверяет награду 10 боёв
  366. func battle10Fiting(конт ILocalCtx) {
  367. арена := конт.Get("миссии_простые").Val().(ИАрена)
  368. var (
  369. strOut string
  370. lstMissions = арена.СписПолучить()
  371. еслиНайдено bool
  372. ind int
  373. )
  374. for ind, strOut = range lstMissions {
  375. if strings.Contains(strOut, `Уничтожь в бою 10 танков<br/>`) {
  376. еслиНайдено = true
  377. break
  378. }
  379. }
  380. if !еслиНайдено {
  381. return
  382. }
  383. // <a class="simple-but border" href="?113-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  384. ind += 23
  385. strOut = lstMissions[ind]
  386. if !strings.Contains(strOut, `>Получить награду<`) {
  387. return
  388. }
  389. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  390. strLink := lstLink[1]
  391. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  392. strLink = "https://wartank.ru/missions/" + lstLink[0]
  393. lstMissions, err := арена.Сеть().Get(strLink)
  394. if err != nil {
  395. // log._rintf("ERRO Миссии.battle10Fiting(): при выполнении GET-запроса, err=\n\t%v\n", err)
  396. return
  397. }
  398. if err := арена.СтрОбновить(lstMissions); err != nil {
  399. // log._rintf("ERRO Миссии.battle10Fiting(): при обновлении lstMissions, err=\n\t%v\n", err)
  400. return
  401. }
  402. }
  403. // Проверяет награду за 6 побед подряд
  404. func battle6win(конт ILocalCtx) {
  405. арена := конт.Get("миссии_простые").Val().(ИАрена)
  406. var (
  407. strOut string
  408. lstMissions = арена.СписПолучить()
  409. еслиНайдено bool
  410. ind int
  411. )
  412. for ind, strOut = range lstMissions {
  413. if strings.Contains(strOut, `Победи 6 раз подряд<br/>`) {
  414. еслиНайдено = true
  415. break
  416. }
  417. }
  418. if !еслиНайдено {
  419. return
  420. }
  421. // <a class="simple-but border" href="?113-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  422. ind += 25
  423. strOut = lstMissions[ind]
  424. if !strings.Contains(strOut, `>Получить награду<`) {
  425. return
  426. }
  427. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  428. strLink := lstLink[1]
  429. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  430. strLink = "https://wartank.ru/missions/" + lstLink[0]
  431. lstMissions, err := арена.Сеть().Get(strLink)
  432. if err != nil {
  433. // log._rintf("ERRO Миссии.battle6win(): при выполнении GET-запроса, err=\n\t%v\n", err)
  434. return
  435. }
  436. if err := арена.СтрОбновить(lstMissions); err != nil {
  437. // log._rintf("ERRO Миссии.battle6win(): при обновлении lstMissions, err=\n\t%v\n", err)
  438. return
  439. }
  440. }