Bu yol ile priestte hangi heal skili açık onu öğrenim en mantıklı heal skilini kullanır ve fazla mana yemekten kurtarır.
Priest Otomatik Heal Yapımı
Gerekenler ;
- 1 Adet CheckBox 1 Adet TextBox 1 Adet Timer
Timer1 ( Interval = 1000) Kod Kısmına şunu yazıyoruz. Kod:
If Check1.Value = 1 Then
HealKontrol
KendineHealKontrol
End If
Text1'in text kısmına "95" yazıyoruz. Check1'in Caption'una "Oto Heal" Yazıyoruz.
Module Şu Kodları Ekliyoruz. Kod:
Public HealSkillSeç As String
Public Sub HealKontrol()
On Error Resume Next
If PartyHP1 < ((PartyMaxHP1 * Form1.Text1(5).Text) / 100) Then
If GetSkillBarOpen(59) = 1 Then ' 1920 Heal Açık ise
If KalanPartyHP1 >= 1700 Then
HealSkillSeç = "545"
HealYap1
End If
End If
If GetSkillBarOpen(56) = 1 Then ' 960 Heal Açık ise
If KalanPartyHP1 >= 900 Then
HealSkillSeç = "536"
HealYap1
End If
End If
If GetSkillBarOpen(52) = 1 Then ' 720 Heal Açık ise
If KalanPartyHP1 >= 680 Then
HealSkillSeç = "527"
HealYap1
End If
End If
If GetSkillBarOpen(48) = 1 Then ' 360 Heal Açık ise
If KalanPartyHP1 >= 320 Then
HealSkillSeç = "518"
HealYap1
End If
End If
If GetSkillBarOpen(45) = 1 Then ' 240 Heal Açık ise
If KalanPartyHP1 >= 200 Then
HealSkillSeç = "509"
HealYap1
End If
End If
If GetSkillBarOpen(43) = 1 Then ' 60 Heal Açık ise
If KalanPartyHP1 >= 40 Then
HealSkillSeç = "500"
HealYap1
End If
End If
End If
If PartyHP2 < ((PartyMaxHP2 * Form1.Text1(5).Text) / 100) Then
If GetSkillBarOpen(59) = 1 Then ' 1920 Heal Açık ise
If KalanPartyHP2 >= 1700 Then
HealSkillSeç = "545"
HealYap2
End If
End If
If GetSkillBarOpen(56) = 1 Then ' 960 Heal Açık ise
If KalanPartyHP2 >= 900 Then
HealSkillSeç = "536"
HealYap2
End If
End If
If GetSkillBarOpen(52) = 1 Then ' 720 Heal Açık ise
If KalanPartyHP2 >= 680 Then
HealSkillSeç = "527"
HealYap2
End If
End If
If GetSkillBarOpen(48) = 1 Then ' 360 Heal Açık ise
If KalanPartyHP2 >= 320 Then
HealSkillSeç = "518"
HealYap2
End If
End If
If GetSkillBarOpen(45) = 1 Then ' 240 Heal Açık ise
If KalanPartyHP2 >= 200 Then
HealSkillSeç = "509"
HealYap2
End If
End If
If GetSkillBarOpen(43) = 1 Then ' 60 Heal Açık ise
If KalanPartyHP2 >= 40 Then
HealSkillSeç = "500"
HealYap2
End If
End If
End If
If PartyHP3 < ((PartyMaxHP3 * Form1.Text1(5).Text) / 100) Then
If GetSkillBarOpen(59) = 1 Then ' 1920 Heal Açık ise
If KalanPartyHP3 >= 1700 Then
HealSkillSeç = "545"
HealYap3
End If
End If
If GetSkillBarOpen(56) = 1 Then ' 960 Heal Açık ise
If KalanPartyHP3 >= 900 Then
HealSkillSeç = "536"
HealYap3
End If
End If
If GetSkillBarOpen(52) = 1 Then ' 720 Heal Açık ise
If KalanPartyHP3 >= 680 Then
HealSkillSeç = "527"
HealYap3
End If
End If
If GetSkillBarOpen(48) = 1 Then ' 360 Heal Açık ise
If KalanPartyHP3 >= 320 Then
HealSkillSeç = "518"
HealYap3
End If
End If
If GetSkillBarOpen(45) = 1 Then ' 240 Heal Açık ise
If KalanPartyHP3 >= 200 Then
HealSkillSeç = "509"
HealYap3
End If
End If
If GetSkillBarOpen(43) = 1 Then ' 60 Heal Açık ise
If KalanPartyHP3 >= 40 Then
HealSkillSeç = "500"
HealYap3
End If
End If
End If
If PartyHP4 < ((PartyMaxHP4 * Form1.Text1(5).Text) / 100) Then
If GetSkillBarOpen(59) = 1 Then ' 1920 Heal Açık ise
If KalanPartyHP4 >= 1700 Then
HealSkillSeç = "545"
HealYap4
End If
End If
If GetSkillBarOpen(56) = 1 Then ' 960 Heal Açık ise
If KalanPartyHP4 >= 900 Then
HealSkillSeç = "536"
HealYap4
End If
End If
If GetSkillBarOpen(52) = 1 Then ' 720 Heal Açık ise
If KalanPartyHP4 >= 680 Then
HealSkillSeç = "527"
HealYap4
End If
End If
If GetSkillBarOpen(48) = 1 Then ' 360 Heal Açık ise
If KalanPartyHP4 >= 320 Then
HealSkillSeç = "518"
HealYap4
End If
End If
If GetSkillBarOpen(45) = 1 Then ' 240 Heal Açık ise
If KalanPartyHP4 >= 200 Then
HealSkillSeç = "509"
HealYap4
End If
End If
If GetSkillBarOpen(43) = 1 Then ' 60 Heal Açık ise
If KalanPartyHP4 >= 40 Then
HealSkillSeç = "500"
HealYap4
End If
End If
End If
If PartyHP5 < ((PartyMaxHP5 * Form1.Text1(5).Text) / 100) Then
If GetSkillBarOpen(59) = 1 Then ' 1920 Heal Açık ise
If KalanPartyHP5 >= 1700 Then
HealSkillSeç = "545"
HealYap5
End If
End If
If GetSkillBarOpen(56) = 1 Then ' 960 Heal Açık ise
If KalanPartyHP5 >= 900 Then
HealSkillSeç = "536"
HealYap5
End If
End If
If GetSkillBarOpen(52) = 1 Then ' 720 Heal Açık ise
If KalanPartyHP5 >= 680 Then
HealSkillSeç = "527"
HealYap5
End If
End If
If GetSkillBarOpen(48) = 1 Then ' 360 Heal Açık ise
If KalanPartyHP5 >= 320 Then
HealSkillSeç = "518"
HealYap5
End If
End If
If GetSkillBarOpen(45) = 1 Then ' 240 Heal Açık ise
If KalanPartyHP5 >= 200 Then
HealSkillSeç = "509"
HealYap5
End If
End If
If GetSkillBarOpen(43) = 1 Then ' 60 Heal Açık ise
If KalanPartyHP5 >= 40 Then
HealSkillSeç = "500"
HealYap5
End If
End If
End If
If PartyHP6 < ((PartyMaxHP6 * Form1.Text1(5).Text) / 100) Then
If GetSkillBarOpen(59) = 1 Then ' 1920 Heal Açık ise
If KalanPartyHP6 >= 1700 Then
HealSkillSeç = "545"
HealYap6
End If
End If
If GetSkillBarOpen(56) = 1 Then ' 960 Heal Açık ise
If KalanPartyHP6 >= 900 Then
HealSkillSeç = "536"
HealYap6
End If
End If
If GetSkillBarOpen(52) = 1 Then ' 720 Heal Açık ise
If KalanPartyHP6 >= 680 Then
HealSkillSeç = "527"
HealYap6
End If
End If
If GetSkillBarOpen(48) = 1 Then ' 360 Heal Açık ise
If KalanPartyHP6 >= 320 Then
HealSkillSeç = "518"
HealYap6
End If
End If
If GetSkillBarOpen(45) = 1 Then ' 240 Heal Açık ise
If KalanPartyHP6 >= 200 Then
HealSkillSeç = "509"
HealYap6
End If
End If
If GetSkillBarOpen(43) = 1 Then ' 60 Heal Açık ise
If KalanPartyHP6 >= 40 Then
HealSkillSeç = "500"
HealYap6
End If
End If
End If
If PartyHP7 < ((PartyMaxHP7 * Form1.Text1(5).Text) / 100) Then
If GetSkillBarOpen(59) = 1 Then ' 1920 Heal Açık ise
If KalanPartyHP7 >= 1700 Then
HealSkillSeç = "545"
HealYap7
End If
End If
If GetSkillBarOpen(56) = 1 Then ' 960 Heal Açık ise
If KalanPartyHP7 >= 900 Then
HealSkillSeç = "536"
HealYap7
End If
End If
If GetSkillBarOpen(52) = 1 Then ' 720 Heal Açık ise
If KalanPartyHP7 >= 680 Then
HealSkillSeç = "527"
HealYap7
End If
End If
If GetSkillBarOpen(48) = 1 Then ' 360 Heal Açık ise
If KalanPartyHP7 >= 320 Then
HealSkillSeç = "518"
HealYap7
End If
End If
If GetSkillBarOpen(45) = 1 Then ' 240 Heal Açık ise
If KalanPartyHP7 >= 200 Then
HealSkillSeç = "509"
HealYap7
End If
End If
If GetSkillBarOpen(43) = 1 Then ' 60 Heal Açık ise
If KalanPartyHP7 >= 40 Then
HealSkillSeç = "500"
HealYap7
End If
End If
End If
If PartyHP8 < ((PartyMaxHP8 * Form1.Text1(5).Text) / 100) Then
If GetSkillBarOpen(59) = 1 Then ' 1920 Heal Açık ise
If KalanPartyHP8 >= 1700 Then
HealSkillSeç = "545"
HealYap8
End If
End If
If GetSkillBarOpen(56) = 1 Then ' 960 Heal Açık ise
If KalanPartyHP8 >= 900 Then
HealSkillSeç = "536"
HealYap8
End If
End If
If GetSkillBarOpen(52) = 1 Then ' 720 Heal Açık ise
If KalanPartyHP8 >= 680 Then
HealSkillSeç = "527"
HealYap8
End If
End If
If GetSkillBarOpen(48) = 1 Then ' 360 Heal Açık ise
If KalanPartyHP8 >= 320 Then
HealSkillSeç = "518"
HealYap8
End If
End If
If GetSkillBarOpen(45) = 1 Then ' 240 Heal Açık ise
If KalanPartyHP8 >= 200 Then
HealSkillSeç = "509"
HealYap8
End If
End If
If GetSkillBarOpen(43) = 1 Then ' 60 Heal Açık ise
If KalanPartyHP8 >= 40 Then
HealSkillSeç = "500"
HealYap8
End If
End If
End If
End Sub
Public Sub RezKontrol()
On Error Resume Next
If PartyHP1 = "0" Then
OtoRez1
End If
If PartyHP2 = "0" Then
OtoRez2
End If
If PartyHP3 = "0" Then
OtoRez3
End If
If PartyHP4 = "0" Then
OtoRez4
End If
If PartyHP5 = "0" Then
OtoRez5
End If
If PartyHP6 = "0" Then
OtoRez6
End If
If PartyHP7 = "0" Then
OtoRez7
End If
If PartyHP8 = "0" Then
OtoRez8
End If
End Sub
Public Sub KendineHealKontrol()
If KarakterHP < ((KarakterMaxHP * Form1.Text1(5).Text) / 100) Then
If GetSkillBarOpen(59) = 1 Then ' 1920 Heal Açık ise
If KalanCan >= 1700 Then
HealSkillSeç = "545"
KendineHealYap
End If
End If
If GetSkillBarOpen(56) = 1 Then ' 960 Heal Açık ise
If KalanCan >= 900 Then
HealSkillSeç = "536"
KendineHealYap
End If
End If
If GetSkillBarOpen(52) = 1 Then ' 720 Heal Açık ise
If KalanCan >= 680 Then
HealSkillSeç = "527"
KendineHealYap
End If
End If
If GetSkillBarOpen(48) = 1 Then ' 360 Heal Açık ise
If KalanCan >= 320 Then
HealSkillSeç = "518"
KendineHealYap
End If
End If
If GetSkillBarOpen(45) = 1 Then ' 240 Heal Açık ise
If KalanCan >= 200 Then
HealSkillSeç = "509"
KendineHealYap
End If
End If
If GetSkillBarOpen(43) = 1 Then ' 60 Heal Açık ise
If KalanCan >= 40 Then
HealSkillSeç = "500"
KendineHealYap
End If
End If
End If
End Sub
Fonksiyonları Olmuyanlar Şunlarıda eklesin.
Offsetleri 1868'de değiştimi bilmiyorum. Onuda siz bulursunuz artık. Kod:
Function GetSkillBarOpen(Slot As Long ) As Byte
Dim a, b, c, d As Long
pPtr = LongOku(KO_PTR_DLG)
a = LongOku(pPtr + &H1CC + 4)
b = LongOku(a + &H124 + (Slot * 4))
c = LongOku(b + &H38)
d = ByteOku(b + &H4) 'd = byteoku(b + &H4) 'c bak
GetSkillBarOpen = d
End Function
Function GetSkillBar(Slot As Long ) As Long
Dim a, b, c As Long
pPtr = LongOku(KO_PTR_DLG)
a = LongOku(pPtr + &H1CC + 4)
b = LongOku(a + &H124 + (Slot * 4))
c = LongOku(b + &H38)
GetSkillBar = LongOku((c))
End Function
Function GetSkillBarName(Slot As Long ) As String
Dim a, b, c As Long
Dim SkillName() As Byte
Dim SkillNameLen As Long
pPtr = LongOku(KO_PTR_DLG)
a = LongOku(pPtr + &H1CC + 4)
b = LongOku(a + &H124 + (Slot * 4))
c = LongOku(b + &H38)
SkillNameLen = ByteOku(c + &H1C)
If SkillNameLen > 0 Then
SıraByteOku LongOku(c + &H18), SkillName, SkillNameLen
End If
GetSkillBarName = StrConv(SkillName, vbUnicode)
End Function
Bir teşekkür yeter