Нужна помощь с АХК

Статус
В этой теме нельзя размещать новые ответы.

JOPANUS

Новичок
Автор темы
17
1
Хочу сделать скрипт что бы при нажатии на кнопку активации запускался цикл который отслеживает здоровье игрока и если оно ниже 35, то он использует аптечку, а если здоровье 100 то ничего не делает, но есть одна проблема что например на сервере Diamond RP можно купить только 2 аптечки и в итоге когда использованы 2 аптечки, а здоровье все еще меньше 35 то он начинает флудить что нет аптечки в итоге крашит. Можно ли как то сделать проверку есть ли аптечка или же когда закончились аптечки остановить скрипт? Пока что сделал код без цикла
Код:
#Include, SAMP-UDF-Developer.ahk
!1::
Health := getPlayerHealth()
if (Health<35)
{
    SendChat("/healme")
    Sleep, 300
    SendInput {vk71 down}  ; Сбив анимации
       sleep 30            ; Сбив анимации
       SendInput {vk71 up} ; Сбив анимации
       sleep 10            ; Сбив анимации
}
return
 

ishi

Известный
493
110
Не очень понял тебя
добавить в цикл itrations_counter+=1 сразу после healme и в конец if(iterations_counter==2)then break, или как там цикл останавливать в ахк?
Ты извини, я не шарю в синтаксисе ахк, погляди как там прерывать цикл и прибавлять к переменным значение, если не знаешь
Ну, суть ты понял: добавить переменную-счётчик и проверку, чтоб по достижении какого-то кол-ва выполнений прерывала работу цикла (останавливала скрипт, т.е.)
 
  • Нравится
Реакции: JOPANUS

JOPANUS

Новичок
Автор темы
17
1
Я немного по другому сделал но теперь скрипт работает пока есть аптечки, но я еще хочу что бы он работал пока хп не станет 100, через while пробовал но что то не получается
Код:
#Include, SAMP-UDF-Developer.ahk
!1::
put = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
FileDelete, %put%
Health := getPlayerHealth()
VarNumber := 0
if (Health<=35)
{
    while(VarNumber<=0)
    {
    FileRead, file, %put%
    IfInString, file, У вас нету аптечек
    {
        VarNumber=1
    }
    else
    {
    FileDelete, %put%
    SendChat("/healme")
    Sleep, 300
    SendInput {vk71 down}  ; Сбив анимации
       sleep 30            ; Сбив анимации
       SendInput {vk71 up} ; Сбив анимации
       sleep 10
   }
   }      
   }
return
 

FordeD

Участник
98
11
Хочу сделать скрипт что бы при нажатии на кнопку активации запускался цикл который отслеживает здоровье игрока и если оно ниже 35, то он использует аптечку, а если здоровье 100 то ничего не делает, но есть одна проблема что например на сервере Diamond RP можно купить только 2 аптечки и в итоге когда использованы 2 аптечки, а здоровье все еще меньше 35 то он начинает флудить что нет аптечки в итоге крашит. Можно ли как то сделать проверку есть ли аптечка или же когда закончились аптечки остановить скрипт? Пока что сделал код без цикла
Код:
#Include, SAMP-UDF-Developer.ahk
!1::
Health := getPlayerHealth()
if (Health<35)
{
    SendChat("/healme")
    Sleep, 300
    SendInput {vk71 down}  ; Сбив анимации
       sleep 30            ; Сбив анимации
       SendInput {vk71 up} ; Сбив анимации
       sleep 10            ; Сбив анимации
}
return

Вот код чекера
Код:
#Persistent
#MaxThreads 5
SetTimer, Check, Off
isUsed := false

!1::
SetTimer, Check, 100
return

!2::
SetTimer, Check, Off
return

Check:
if (getPlayerHealth()<35 && isUsed == false) {
    SendChat("/healme")
    Sleep, 300
    SendInput {vk71 down}
    Sleep, 30
    SendInput {vk71 up}
    Sleep, 10
    isUsed := true
} else if (getPlayerHealth()>35){
    isUsed := false
}
return
 
  • Нравится
Реакции: JOPANUS

JOPANUS

Новичок
Автор темы
17
1
Вот код чекера
Код:
#Persistent
#MaxThreads 5
SetTimer, Check, Off
isUsed := false

!1::
SetTimer, Check, 100
return

!2::
SetTimer, Check, Off
return

Check:
if (getPlayerHealth()<35 && isUsed == false) {
    SendChat("/healme")
    Sleep, 300
    SendInput {vk71 down}
    Sleep, 30
    SendInput {vk71 up}
    Sleep, 10
    isUsed := true
} else if (getPlayerHealth()>35){
    isUsed := false
}
return
Спасибо большое, наверно много прошу но не мог бы ты еще рассказать как это работает если не сложно
 

FordeD

Участник
98
11
Спасибо большое, наверно много прошу но не мог бы ты еще рассказать как это работает если не сложно
Есть таймер (Check) который инициализируется на 3 строке. Есть 2 сочетания Alt+1 - старт таймера и Alt+2 - стоп таймера. Есть метка Check которая проходит данную логику : если HP игрока меньше 35 и переменная isUsed ровна false то юзает хилку, если же нет то проверяет количество HP игрока и если оно было восстановлено то изменяется значение isUsed на false. переменная isUsed отвечает за то была ли использована аптечка или нет.
 
  • Нравится
Реакции: JOPANUS

JOPANUS

Новичок
Автор темы
17
1
Есть таймер (Check) который инициализируется на 3 строке. Есть 2 сочетания Alt+1 - старт таймера и Alt+2 - стоп таймера. Есть метка Check которая проходит данную логику : если HP игрока меньше 35 и переменная isUsed ровна false то юзает хилку, если же нет то проверяет количество HP игрока и если оно было восстановлено то изменяется значение isUsed на false. переменная isUsed отвечает за то была ли использована аптечка или нет.
Спасибо еще раз
 
Статус
В этой теме нельзя размещать новые ответы.