Advertisement
Guest User

Untitled

a guest
Oct 16th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.72 KB | None | 0 0
  1. Sub elo()
  2.  
  3.  
  4. Dim crit_chance As Double
  5. Dim crit_dmg As Double
  6. Dim lifesteal As Double
  7. Dim lifesteal_tab(1 To 30) As Double
  8. Dim lifesteal_sum As Double
  9. Dim wp As Double
  10. Dim dmg_stacks As Double
  11. Dim pierce As Double
  12. Dim pierce1 As Double
  13. Dim shred As Double
  14. Dim shred1 As Double
  15. Dim shred_tab(1 To 30) As Double
  16. Dim tb1 As Double
  17. Dim tb_tab(1 To 30) As Double
  18. Dim tb_timer As Double
  19. Dim bp_type As Double
  20. Dim bp_tab(1 To 50) As Double
  21. Dim basearmor As Double
  22. Dim item(1 To 6) As Double
  23. Dim dmg(1 To 30) As Double
  24. Dim index As Double
  25. Dim sum_dmg As Double
  26. Dim attack_cd As Double
  27. Dim attack_speed As Double
  28. Dim basic_speed As Double
  29. Dim speed_tab(1 To 30) As Double
  30. Dim cost As Double
  31. Dim a As Byte
  32. Dim armor(1 To 30) As Double
  33.  
  34.  
  35.  
  36.  
  37.  
  38. crit_dmg = 1.5
  39. crit_chance = 0
  40. lifesteal = 0
  41. pierce = 0
  42. shred = 0
  43. lifesteal_sum = 0
  44. cost = 0
  45.  
  46.  
  47. wp = InputBox("DEFINE HERO'S BASIC WEAPON DAMAGE" & vbNewLine & "(lvl 12 average is 143)")
  48. basearmor = InputBox("DEFINE ENEMY'S ARMOR:" & vbNewLine & "" & vbNewLine & "Average level 12 without items: 86" & vbNewLine & "Average level 12 with Aegis/MJ: 286" & vbNewLine & "Joule lvl 12 (front) with Aegis/MJ/FoR: 464")
  49. attack_speed = InputBox("DEFINE HERO'S ATTACK SPEED" & vbNewLine & "(lvl 12 average is 1.26)")
  50. basic_speed = InputBox("DEFINE HERO'S BASIC ATTACK COOLDOWN" & vbNewLine & "(time between two constructive attacks for lvl 1 hero - usually 1.3 sec)")
  51. a = InputBox("How many WP items do you want to have?" & vbNewLine & "(1 - 6)")
  52.  
  53. pierce1 = 0
  54. tb1 = 0
  55. stacks1 = 0
  56. shred1 = 0
  57. bp1 = 0
  58.  
  59. sum_dmg = 0
  60.  
  61.  
  62.  
  63. For i = 1 To a
  64. item(i) = InputBox("Tornado Trigger=1" & vbNewLine & "Tyrant's Monocle=2" & vbNewLine & "Poisoned Shiv=3" & vbNewLine & "Sorrowblade=4" & vbNewLine & "Breaking Point=5" & vbNewLine & "Bonesaw=6" & vbNewLine & "Tension Bow=7" & vbNewLine & "Serpent Mask=8" & vbNewLine & "Spellsword=9" & vbNewLine & "Blazing Salvo=10" & vbNewLine & "Heavy Steel=11" & vbNewLine & "Lucky Strike=12" & vbNewLine & "Piercing Spear=13" & vbNewLine & "Six Sins=14" & vbNewLine & "Book of Eulogies=15" & vbNewLine & "Minion's Foot=16" & vbNewLine & "Swift Shooter=17" & vbNewLine & "Weapon Blade=18" & "Spellsword=19")
  65. Next i
  66.  
  67.  
  68.  
  69.  
  70. For i = 1 To a
  71. If item(i) = 1 Then
  72. attack_speed = attack_speed + 0.4
  73. crit_chance = crit_chance + 0.35
  74. crit_dmg = crit_dmg + 0.05
  75. cost = cost + 2800
  76. End If
  77.  
  78. If item(i) = 2 Then
  79. wp = wp + 50
  80. crit_chance = crit_chance + 0.35
  81. crit_dmg = crit_dmg + 0.15
  82. cost = cost + 2900
  83. End If
  84.  
  85. If item(i) = 3 Then
  86. attack_speed = attack_speed + 0.25
  87. wp = wp + 30
  88. If lifesteal < 0.1 Then
  89. lifesteal = 0.1
  90. End If
  91. cost = cost + 2250
  92. End If
  93.  
  94. If item(i) = 4 Then
  95. wp = wp + 150
  96. cost = cost + 3100
  97. End If
  98.  
  99. If item(i) = 5 Then
  100. attack_speed = attack_speed + 0.2
  101. wp = wp + 50
  102. cost = cost + 2700
  103. bp1 = 1
  104. bp_type = InputBox("Breaking Point type 1=melee, 2=ranged")
  105. If bp_type = 1 Then
  106. For j = 2 To 35
  107. bp_tab(1) = 100
  108. bp_tab(j) = bp_tab(j - 1) + 100 + 5 * (j - 1)
  109. Next j
  110. For j = 36 To 50
  111. bp_tab(j) = bp_tab(j - 1)
  112. Next j
  113. End If
  114. If bp_type = 2 Then
  115. For k = 2 To 35
  116. bp_tab(1) = 100
  117. bp_tab(k) = bp_tab(k - 1) + 100 + 10 * (k - 1)
  118. Next k
  119. For k = 36 To 50
  120. bp_tab(k) = bp_tab(k - 1)
  121. Next k
  122. End If
  123. End If
  124.  
  125. If item(i) = 6 Then
  126. attack_speed = attack_speed + 0.2
  127. wp = wp + 40
  128. If pierce < 0.2 Then
  129. pierce = 0.2
  130. End If
  131. pierce1 = 1
  132. shred1 = 1
  133. cost = cost + 2700
  134. End If
  135.  
  136. If item(i) = 7 Then
  137. If pierce < 0.1 Then
  138. pierce = 0.35
  139. End If
  140. wp = wp + 50
  141. tb1 = 1
  142. cost = cost + 2700
  143. pierce1 = 1
  144. End If
  145.  
  146. If item(i) = 8 Then
  147. If lifesteal < 0.4 Then
  148. lifesteal = 0.4
  149. End If
  150. wp = wp + 60
  151. cost = cost + 2800
  152. End If
  153.  
  154. If item(i) = 9 Then
  155. wp = wp + 85
  156. cost = cost + 2800
  157. End If
  158.  
  159. If item(i) = 10 Then
  160. If lifesteal < 0.08 Then
  161. lifesteal = 0.08
  162. End If
  163. wp = wp + 12
  164. cost = cost + 800
  165. End If
  166.  
  167. If item(i) = 10 Then
  168. attack_speed = attack_speed + 0.2
  169. cost = cost + 700
  170. End If
  171.  
  172. If item(i) = 11 Then
  173. wp = wp + 55
  174. cost = cost + 1150
  175. End If
  176.  
  177. If item(i) = 12 Then
  178. crit_dmg = crit_dmg + 0.08
  179. crit_chance = crit_chance + 0.2
  180. cost = cost + 900
  181. End If
  182.  
  183. If item(i) = 13 Then
  184. If pierce < 0.1 Then
  185. pierce = 0.1
  186. End If
  187. cost = cost + 900
  188. wp = wp + 15
  189. pierce1 = 1
  190. End If
  191.  
  192. If item(i) = 14 Then
  193. wp = wp + 30
  194. cost = cost + 650
  195. End If
  196.  
  197. If item(i) = 15 Then
  198. wp = wp + 5
  199. If lifsteal < 0.04 Then
  200. lifesteal = 0.04
  201. End If
  202. cost = cost + 300
  203. End If
  204.  
  205. If item(i) = 16 Then
  206. crit_chance = crit_chance + 0.1
  207. crit_dmg = crit_dmg + 0.1
  208. cost = cost + 300
  209. End If
  210.  
  211. If item(i) = 17 Then
  212. attack_speed = attack_speed + 0.1
  213. cost = cost + 300
  214. End If
  215.  
  216. If item(i) = 18 Then
  217. wp = wp + 15
  218. cost = cost + 300
  219. End If
  220.  
  221. If item(i) = 19 Then
  222. wp = wp + 110
  223. cost = cost + 2600
  224. End If
  225.  
  226. Next i
  227.  
  228.  
  229. '----------------------------------Other-----------------------------------------
  230. If crit_chance > 1 Then
  231. crit_chance = 1
  232. End If
  233.  
  234. If shred1 = 1 Then
  235. shred = 0.1
  236. End If
  237.  
  238.  
  239. Cells(33, 2) = wp
  240. Cells(34, 2) = attack_speed
  241. Cells(35, 2) = crit_chance
  242. Cells(36, 2) = crit_dmg
  243. Cells(37, 2) = lifesteal
  244. Cells(38, 2) = pierce
  245. Cells(40, 2) = cost
  246.  
  247. '----------------------------------DAMAGE CALCULATION-----------------------------------
  248.  
  249.  
  250. '----------------------------------ATTACK SPEED-----------------------------------------
  251.  
  252. attack_cd = basic_speed / attack_speed
  253. attack_cd = 0.85
  254.  
  255. For i = 1 To 30
  256. speed_tab(i) = (i - 1) * attack_cd
  257. Next i
  258.  
  259. For i = 1 To 30
  260. Cells(i + 1, 2) = speed_tab(i)
  261. Next i
  262.  
  263. dmg_stacks = 0
  264. tb_timer = 0
  265.  
  266. For i = 1 To 30
  267. Cells(i + 1, 1) = i
  268. Next i
  269.  
  270. '----------------------------------BONESAW CALCULATION---------------------------------CHYBA NIEPOTRZEBNE
  271.  
  272. For i = 1 To 7
  273. shred_tab(i) = 0.05 * i * shred1
  274. Next i
  275.  
  276. For i = 8 To 30
  277. shred_tab(i) = 0.4 * shred1
  278. Next i
  279.  
  280.  
  281. For i = 1 To 30
  282. Cells(i + 1, 6) = shred_tab(i)
  283. Next i
  284.  
  285. '----------------------------------ARMOR SHRED/PIERCE-----------------------------------
  286.  
  287. If pierce1 = 1 And shred1 = 1 Then
  288. armor(1) = basearmor - basearmor * pierce
  289. For i = 2 To 9
  290. armor(i) = armor(i - 1) - armor(i - 1) * shred
  291. Next i
  292. For i = 10 To 30
  293. armor(i) = armor(i - 1)
  294. Next i
  295. End If
  296.  
  297. If pierce1 = 1 And shred1 = 0 Then
  298. For i = 1 To 30
  299. armor(i) = basearmor - basearmor * pierce
  300. Next i
  301. End If
  302.  
  303. If pierce1 = 0 Then
  304. For i = 1 To 30
  305. armor(i) = basearmor
  306. Next i
  307. End If
  308.  
  309.  
  310. For i = 1 To 30
  311. Cells(i + 1, 10) = armor(i)
  312. Next i
  313.  
  314.  
  315.  
  316.  
  317. '----------------------------------DAMAGE FORMULA-------------------------------------
  318.  
  319.  
  320. For n = 0 To 50
  321. If tb_timer <= 0 Then
  322. dmg(n + 1) = ((crit_chance * crit_dmg * (wp + dmg_stacks * bp1 + 180 * tb1)) / (1 + (armor(n + 1) / 100)) + (1 - crit_chance) * (wp + dmg_stacks * bp1 + 180 * tb1) / (1 + (armor(n + 1) / 100)))
  323. tb_timer = 6
  324. Else
  325. dmg(n + 1) = ((crit_chance * crit_dmg * (wp + dmg_stacks * bp1)) / (1 + (armor(n + 1) / 100)) + (1 - crit_chance) * (wp + dmg_stacks * bp1) / (1 + (armor(n + 1) / 100)))
  326. End If
  327. lifesteal_tab(n + 1) = dmg(n + 1) * lifesteal
  328. Cells(n + 2, 7) = lifesteal_tab(n + 1)
  329. Cells(n + 2, 3) = dmg(n + 1)
  330. lifesteal_sum = lifesteal_sum + lifesteal_tab(n + 1)
  331. Cells(n + 2, 8) = lifesteal_sum
  332. dmg_stacks = 0
  333. sum_dmg = sum_dmg + dmg(n + 1)
  334. Cells(n + 2, 4) = sum_dmg
  335. For m = 1 To 35
  336. If sum_dmg > bp_tab(m) Then
  337. index = m
  338. End If
  339. Next m
  340. dmg_stacks = index * 5
  341. Cells(n + 2, 5) = index * bp1
  342. tb_timer = tb_timer - attack_cd
  343.  
  344. Next n
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement