Advertisement
Guest User

Untitled

a guest
Aug 20th, 2014
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.78 KB | None | 0 0
  1. #IfWinActive, Path of Exile
  2. XButton1::FastLogOut() ; Assign F8 to Logout
  3. F10::CheckItemLevel() ; Assign F10 to Check item level
  4. D::OosCommand() ; Assign F9 to execute the oos command
  5. XButton2::OpenPortal() ; Assign F1 to execute Open Portal
  6. f4::spamItem() ; Spam
  7. f3::remaining() ; Monsters remaining
  8.  
  9. ; Visit Youtube.com/PoEHelper for Path of Exile Tips&Trics and Guides
  10. ; Stream: http://twitch.tv/rg_panko
  11.  
  12. ; This script is a cleaned up and enhanced version of the one found here:
  13. ; https://www.pathofexile.com/forum/view-thread/594346
  14.  
  15. #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
  16. #Persistent ; Stay open in background
  17. SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
  18. StringCaseSense, On ; Match strings with case.
  19.  
  20. ; Options
  21. ; Pixels mouse must move to auto-dismiss tooltip
  22. MouseMoveThreshold := 40
  23. ; Font size for the tooltip, leave empty for default
  24. FontSize :=
  25.  
  26. ; Menu tooltip
  27. Menu, tray, Tip, Path of Exile Itemlevel and DPS Display (fork by Aeons)
  28.  
  29. ; Create font for later use
  30. FixedFont := CreateFont()
  31.  
  32. ; Creates a font for later use
  33. CreateFont()
  34. {
  35. global FontSize
  36. Options :=
  37. If (!(FontSize = ""))
  38. {
  39. Options = s%FontSize%
  40. }
  41. Gui Font, %Options%, Courier New
  42. Gui Font, %Options%, Consolas
  43. Gui Add, Text, HwndHidden,
  44. SendMessage, 0x31,,,, ahk_id %Hidden%
  45. return ErrorLevel
  46. }
  47.  
  48. ; Sets the font for a created ahk tooltip
  49. SetFont(Font)
  50. {
  51. SendMessage, 0x30, Font, 1,, ahk_class tooltips_class32 ahk_exe autohotkey.exe
  52. }
  53.  
  54. ; Parse elemental damage
  55. ParseDamage(String, DmgType, ByRef DmgLo, ByRef DmgHi)
  56. {
  57. IfInString, String, %DmgType% Damage
  58. {
  59. IfNotInString, String, increased
  60. {
  61. StringSplit, Arr, String, %A_Space%
  62. StringSplit, Arr, Arr2, -
  63. DmgLo := Arr1
  64. DmgHi := Arr2
  65. }
  66. }
  67. }
  68.  
  69. ; Parse clipboard content for item level and dps
  70. ParseClipBoardChanges()
  71. {
  72. NameIsDone := False
  73. ItemName :=
  74. ItemLevel := -1
  75. IsWeapon := False
  76. PhysLo := 0
  77. PhysHi := 0
  78. Quality := 0
  79. AttackSpeed := 0
  80. PhysMult := 0
  81. ChaoLo := 0
  82. ChaoHi := 0
  83. ColdLo := 0
  84. ColdHi := 0
  85. FireLo := 0
  86. FireHi := 0
  87. LighLo := 0
  88. LighHi := 0
  89.  
  90. Loop, Parse, Clipboard, `n, `r
  91. {
  92. ; Clipboard must have "Rarity:" in the first line
  93. If A_Index = 1
  94. {
  95. IfNotInString, A_LoopField, Rarity:
  96. {
  97. Exit
  98. }
  99. Else
  100. {
  101. Continue
  102. }
  103. }
  104.  
  105. ; Get name
  106. If Not NameIsDone
  107. {
  108. If A_LoopField = --------
  109. {
  110. NameIsDone := True
  111. }
  112. Else
  113. {
  114. ItemName := ItemName . A_LoopField . "`n" ; Add a line of name
  115. }
  116. Continue
  117. }
  118.  
  119. ; Get item level
  120. IfInString, A_LoopField, Itemlevel:
  121. {
  122. StringSplit, ItemLevelArray, A_LoopField, %A_Space%
  123. ItemLevel := ItemLevelArray2
  124. Continue
  125. }
  126.  
  127. ; Get quality
  128. IfInString, A_LoopField, Quality:
  129. {
  130. StringSplit, Arr, A_LoopField, %A_Space%, +`%
  131. Quality := Arr2
  132. Continue
  133. }
  134.  
  135. ; Get total physical damage
  136. IfInString, A_LoopField, Physical Damage:
  137. {
  138. IsWeapon = True
  139. StringSplit, Arr, A_LoopField, %A_Space%
  140. StringSplit, Arr, Arr3, -
  141. PhysLo := Arr1
  142. PhysHi := Arr2
  143. Continue
  144. }
  145.  
  146. ; These only make sense for weapons
  147. If IsWeapon
  148. {
  149. ; Get attack speed
  150. IfInString, A_LoopField, Attacks per Second:
  151. {
  152. StringSplit, Arr, A_LoopField, %A_Space%
  153. AttackSpeed := Arr4
  154. Continue
  155. }
  156.  
  157. ; Get percentage physical damage increase
  158. IfInString, A_LoopField, increased Physical Damage
  159. {
  160. StringSplit, Arr, A_LoopField, %A_Space%, `%
  161. PhysMult := Arr1
  162. Continue
  163. }
  164.  
  165. ; Parse elemental damage
  166. ParseDamage(A_LoopField, "Chaos", ChaoLo, ChaoHi)
  167. ParseDamage(A_LoopField, "Cold", ColdLo, ColdHi)
  168. ParseDamage(A_LoopField, "Fire", FireLo, FireHi)
  169. ParseDamage(A_LoopField, "Lightning", LightLo, LightHi)
  170. }
  171. }
  172. If ItemLevel = -1 ; Something without an itemlevel
  173. {
  174. Exit
  175. }
  176. ; Get position of mouse cursor
  177. global X
  178. global Y
  179. MouseGetPos, X, Y
  180.  
  181. ; All items should show name and item level
  182. ; Pad to 3 places
  183. ItemLevel := " " + ItemLevel
  184. StringRight, ItemLevel, ItemLevel, 3
  185. TT = %ItemName%Item lvl: %ItemLevel%
  186.  
  187. ; DPS calculations
  188. If IsWeapon {
  189. SetFormat, FloatFast, 5.1
  190.  
  191. PhysDps := ((PhysLo + PhysHi) / 2) * AttackSpeed
  192. EleDps := ((ChaoLo + ChaoHi + ColdLo + ColdHi + FireLo + FireHi + LighLo + LighHi) / 2) * AttackSpeed
  193. TotalDps := PhysDps + EleDps
  194.  
  195. ItemLevel := " " + ItemLevel
  196. StringRight, ItemLevel, ItemLevel, 3
  197.  
  198. TT = %TT%`nPhys DPS: %PhysDps%`nElem DPS: %EleDps%`nTotal DPS: %TotalDps%
  199.  
  200. ; Only show Q20 values if item is not Q20
  201. If Quality < 20
  202. {
  203. TotalPhysMult := (PhysMult + Quality + 100) / 100
  204. BasePhysDps := PhysDps / TotalPhysMult
  205. Q20Dps := BasePhysDps * ((PhysMult + 120) / 100) + EleDps
  206.  
  207. TT = %TT%`nQ20 DPS: %Q20Dps%
  208. }
  209. }
  210.  
  211. ; Show tooltip, with fixed width font
  212. ToolTip, %TT%, X + 35, Y + 35
  213. global FixedFont
  214. SetFont(FixedFont)
  215. ; Set up count variable and start timer for tooltip timeout
  216. global ToolTipTimeout := 0
  217. SetTimer, ToolTipTimer, 100
  218. }
  219.  
  220. ; Tick every 100 ms
  221. ; Remove tooltip if mouse is moved or 5 seconds pass
  222. ToolTipTimer:
  223. ToolTipTimeout += 1
  224. MouseGetPos, CurrX, CurrY
  225. MouseMoved := (CurrX - X)**2 + (CurrY - Y)**2 > MouseMoveThreshold**2
  226. If (MouseMoved or ToolTipTimeout >= 50)
  227. {
  228. SetTimer, ToolTipTimer, Off
  229. ToolTip
  230. }
  231. return
  232.  
  233. OnClipBoardChange:
  234. ParseClipBoardChanges()
  235.  
  236. CheckItemLevel(){
  237. BlockInput On
  238. Send {LButton}
  239. Send {Enter}
  240. Sleep 2
  241. Send /itemlevel
  242. Send {Enter}
  243. Sleep, 75
  244. Send {LButton}
  245. BlockInput Off
  246. return
  247. }
  248.  
  249. OosCommand(){
  250. BlockInput On
  251. Send {Enter}
  252. Sleep 2
  253. Send /oos
  254. Send {Enter}
  255. BlockInput Off
  256. return
  257. }
  258.  
  259. FastLogOut(){
  260. BlockInput On
  261. SetDefaultMouseSpeed 0
  262. sendinput {esc}
  263. MouseClick, left, 959, 432, 1, 1
  264. BlockInput Off
  265. return
  266. }
  267.  
  268. OpenPortal(){
  269. BlockInput On
  270. Send {i}
  271. Click right 1878,791
  272. Send {i}
  273. BlockInput Off
  274. return
  275. }
  276.  
  277. spamItem(){
  278. sendinput {enter}
  279. Sleep 100
  280. sendinput /trade 1
  281. Sleep 100
  282. sendinput {enter}
  283. Sleep 100
  284. sendinput {enter}
  285. Sleep 100
  286. sendinput {up}
  287. Sleep 100
  288. sendinput {up}
  289. Sleep 100
  290. sendinput {enter}
  291. Sleep 100
  292. sendinput {enter}
  293. Sleep 100
  294. sendinput /trade 2
  295. Sleep 100
  296. sendinput {enter}
  297. Sleep 100
  298. sendinput {enter}
  299. Sleep 100
  300. sendinput {up}
  301. Sleep 100
  302. sendinput {up}
  303. Sleep 100
  304. sendinput {enter}
  305. Sleep 100
  306. sendinput {enter}
  307. Sleep 100
  308. sendinput /trade 3
  309. Sleep 100
  310. sendinput {enter}
  311. Sleep 100
  312. sendinput {enter}
  313. Sleep 100
  314. sendinput {up}
  315. Sleep 100
  316. sendinput {up}
  317. Sleep 100
  318. sendinput {enter}
  319. Sleep 100
  320. sendinput {enter}
  321. Sleep 100
  322. sendinput /trade 4
  323. Sleep 100
  324. sendinput {enter}
  325. Sleep 100
  326. sendinput {enter}
  327. Sleep 100
  328. sendinput {up}
  329. Sleep 100
  330. sendinput {up}
  331. Sleep 100
  332. sendinput {enter}
  333. Sleep 100
  334. sendinput {enter}
  335. Sleep 100
  336. sendinput /trade 5
  337. Sleep 100
  338. sendinput {enter}
  339. Sleep 100
  340. sendinput {enter}
  341. Sleep 100
  342. sendinput {up}
  343. Sleep 100
  344. sendinput {up}
  345. Sleep 100
  346. sendinput {enter}
  347. Sleep 100
  348. sendinput {enter}
  349. Sleep 100
  350. sendinput /trade 6
  351. Sleep 100
  352. sendinput {enter}
  353. Sleep 100
  354. sendinput {enter}
  355. Sleep 100
  356. sendinput {up}
  357. Sleep 100
  358. sendinput {up}
  359. Sleep 100
  360. sendinput {enter}
  361. Sleep 100
  362. sendinput {enter}
  363. Sleep 100
  364. sendinput /trade 7
  365. Sleep 100
  366. sendinput {enter}
  367. Sleep 100
  368. sendinput {enter}
  369. Sleep 100
  370. sendinput {up}
  371. Sleep 100
  372. sendinput {up}
  373. Sleep 100
  374. sendinput {enter}
  375. Sleep 100
  376. sendinput {enter}
  377. Sleep 100
  378. sendinput /trade 8
  379. Sleep 100
  380. sendinput {enter}
  381. Sleep 100
  382. sendinput {enter}
  383. Sleep 100
  384. sendinput {up}
  385. Sleep 100
  386. sendinput {up}
  387. Sleep 100
  388. sendinput {enter}
  389. Sleep 100
  390. sendinput {enter}
  391. Sleep 100
  392. sendinput /trade 9
  393. Sleep 100
  394. sendinput {enter}
  395. Sleep 100
  396. sendinput {enter}
  397. Sleep 100
  398. sendinput {up}
  399. Sleep 100
  400. sendinput {up}
  401. Sleep 100
  402. sendinput {enter}
  403. Sleep 100
  404. sendinput {enter}
  405. Sleep 100
  406. sendinput /trade 10
  407. Sleep 100
  408. sendinput {enter}
  409. Sleep 100
  410. sendinput {enter}
  411. Sleep 100
  412. sendinput {up}
  413. Sleep 100
  414. sendinput {up}
  415. Sleep 100
  416. sendinput {enter}
  417. Sleep 100
  418. sendinput {enter}
  419. Sleep 100
  420. sendinput /trade 11
  421. Sleep 100
  422. sendinput {enter}
  423. Sleep 100
  424. sendinput {enter}
  425. Sleep 100
  426. sendinput {up}
  427. Sleep 100
  428. sendinput {up}
  429. Sleep 100
  430. sendinput {enter}
  431. Sleep 100
  432. sendinput {enter}
  433. Sleep 100
  434. sendinput /trade 12
  435. Sleep 100
  436. sendinput {enter}
  437. Sleep 100
  438. sendinput {enter}
  439. Sleep 100
  440. sendinput {up}
  441. Sleep 100
  442. sendinput {up}
  443. Sleep 100
  444. sendinput {enter}
  445. Sleep 100
  446. sendinput {enter}
  447. Sleep 100
  448. sendinput /trade 13
  449. Sleep 100
  450. sendinput {enter}
  451. Sleep 100
  452. sendinput {enter}
  453. Sleep 100
  454. sendinput {up}
  455. Sleep 100
  456. sendinput {up}
  457. Sleep 100
  458. sendinput {enter}
  459. Sleep 100
  460. sendinput {enter}
  461. Sleep 100
  462. sendinput /trade 14
  463. Sleep 100
  464. sendinput {enter}
  465. Sleep 100
  466. sendinput {enter}
  467. Sleep 100
  468. sendinput {up}
  469. Sleep 100
  470. sendinput {up}
  471. Sleep 100
  472. sendinput {enter}
  473. Sleep 100
  474. sendinput {enter}
  475. Sleep 100
  476. sendinput /trade 15
  477. Sleep 100
  478. sendinput {enter}
  479. Sleep 100
  480. sendinput {enter}
  481. Sleep 100
  482. sendinput {up}
  483. Sleep 100
  484. sendinput {up}
  485. Sleep 100
  486. sendinput {enter}
  487. Sleep 100
  488. sendinput {enter}
  489. Sleep 100
  490. sendinput /trade 16
  491. Sleep 100
  492. sendinput {enter}
  493. Sleep 100
  494. sendinput {enter}
  495. Sleep 100
  496. sendinput {up}
  497. Sleep 100
  498. sendinput {up}
  499. Sleep 100
  500. sendinput {enter}
  501. Sleep 100
  502. sendinput {enter}
  503. Sleep 100
  504. sendinput /trade 17
  505. Sleep 100
  506. sendinput {enter}
  507. Sleep 100
  508. sendinput {enter}
  509. Sleep 100
  510. sendinput {up}
  511. Sleep 100
  512. sendinput {up}
  513. Sleep 100
  514. sendinput {enter}
  515. Sleep 100
  516. sendinput {enter}
  517. Sleep 100
  518. sendinput /trade 18
  519. Sleep 100
  520. sendinput {enter}
  521. Sleep 100
  522. sendinput {enter}
  523. Sleep 100
  524. sendinput {up}
  525. Sleep 100
  526. sendinput {up}
  527. Sleep 100
  528. sendinput {enter}
  529. Sleep 100
  530. sendinput {enter}
  531. Sleep 100
  532. sendinput /trade 19
  533. Sleep 100
  534. sendinput {enter}
  535. Sleep 100
  536. sendinput {enter}
  537. Sleep 100
  538. sendinput {up}
  539. Sleep 100
  540. sendinput {up}
  541. Sleep 100
  542. sendinput {enter}
  543. Sleep 100
  544. sendinput {enter}
  545. Sleep 100
  546. sendinput /trade 20
  547. Sleep 100
  548. sendinput {enter}
  549. Sleep 100
  550. sendinput {enter}
  551. Sleep 100
  552. sendinput {up}
  553. Sleep 100
  554. sendinput {up}
  555. Sleep 100
  556. sendinput {enter}
  557. Sleep 100
  558. sendinput {enter}
  559. Sleep 100
  560. sendinput /trade 21
  561. Sleep 100
  562. sendinput {enter}
  563. Sleep 100
  564. sendinput {enter}
  565. Sleep 100
  566. sendinput {up}
  567. Sleep 100
  568. sendinput {up}
  569. Sleep 100
  570. sendinput {enter}
  571. Sleep 100
  572. sendinput {enter}
  573. Sleep 100
  574. sendinput /trade 22
  575. Sleep 100
  576. sendinput {enter}
  577. Sleep 100
  578. sendinput {enter}
  579. Sleep 100
  580. sendinput {up}
  581. Sleep 100
  582. sendinput {up}
  583. Sleep 100
  584. sendinput {enter}
  585. Sleep 100
  586. sendinput {enter}
  587. Sleep 100
  588. sendinput /trade 23
  589. Sleep 100
  590. sendinput {enter}
  591. Sleep 100
  592. sendinput {enter}
  593. Sleep 100
  594. sendinput {up}
  595. Sleep 100
  596. sendinput {up}
  597. Sleep 100
  598. sendinput {enter}
  599. Sleep 100
  600. sendinput {enter}
  601. Sleep 100
  602. sendinput /trade 24
  603. Sleep 100
  604. sendinput {enter}
  605. Sleep 100
  606. sendinput {enter}
  607. Sleep 100
  608. sendinput {up}
  609. Sleep 100
  610. sendinput {up}
  611. Sleep 100
  612. sendinput {enter}
  613. Sleep 100
  614. sendinput {enter}
  615. Sleep 100
  616. sendinput /trade 25
  617. Sleep 100
  618. sendinput {enter}
  619. Sleep 100
  620. sendinput {enter}
  621. Sleep 100
  622. sendinput {up}
  623. Sleep 100
  624. sendinput {up}
  625. Sleep 100
  626. sendinput {enter}
  627. Sleep 100
  628. sendinput {enter}
  629. Sleep 100
  630. sendinput /trade 26
  631. Sleep 100
  632. sendinput {enter}
  633. Sleep 100
  634. sendinput {enter}
  635. Sleep 100
  636. sendinput {up}
  637. Sleep 100
  638. sendinput {up}
  639. Sleep 100
  640. sendinput {enter}
  641. Sleep 100
  642. sendinput {enter}
  643. Sleep 100
  644. sendinput /trade 27
  645. Sleep 100
  646. sendinput {enter}
  647. Sleep 100
  648. sendinput {enter}
  649. Sleep 100
  650. sendinput {up}
  651. Sleep 100
  652. sendinput {up}
  653. Sleep 100
  654. sendinput {enter}
  655. Sleep 100
  656. sendinput {enter}
  657. Sleep 100
  658. sendinput /trade 28
  659. Sleep 100
  660. sendinput {enter}
  661. Sleep 100
  662. sendinput {enter}
  663. Sleep 100
  664. sendinput {up}
  665. Sleep 100
  666. sendinput {up}
  667. Sleep 100
  668. sendinput {enter}
  669. Sleep 100
  670. sendinput {enter}
  671. Sleep 100
  672. sendinput /trade 29
  673. Sleep 100
  674. sendinput {enter}
  675. Sleep 100
  676. sendinput {enter}
  677. Sleep 100
  678. sendinput {up}
  679. Sleep 100
  680. sendinput {up}
  681. Sleep 100
  682. sendinput {enter}
  683. Sleep 100
  684. sendinput {enter}
  685. Sleep 100
  686. sendinput /trade 30
  687. Sleep 100
  688. sendinput {enter}
  689. Sleep 100
  690. sendinput {enter}
  691. Sleep 100
  692. sendinput {up}
  693. Sleep 100
  694. sendinput {up}
  695. Sleep 100
  696. sendinput {enter}
  697. }
  698.  
  699. remaining(){
  700. BlockInput On
  701. Send {Enter}
  702. Sleep 2
  703. Send /remaining
  704. Send {Enter}
  705. BlockInput Off
  706. return
  707. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement