[Помощь] Помогите с getPlayerHealth()
|
|
Molotovs |
Дата: Вторник, 14.08.2018, 14:54 | Сообщение # 1
|
Новичок
Сообщений: 4
Статус: Offline
|
Прошу помощи, как сделать при прописывании команды /med в чат бы на выбивало что у тебя полное здоровье(100 hp), но ты можешь все равно использовать аптечку. Если же меньше 100 hp , мы можем спокойно ее использовать Заготовку нашел на просторах, не особо понимаю куда впихнуть getPlayerHealth()
Код :?:/med:: addChatMessageEx("[helper]: Ты здоров. 1 - все равно использовать аптечку 2 - отказ ") Loop, { if (getkeystate("1", "P")) { sendchat("/med") Return } else if (getkeystate("2", "P")) { addChatMessageEx( "[helper]: отказ") Return } }
Сообщение отредактировал Molotovs - Вторник, 14.08.2018, 14:58 |
|
|
|
[CM]James17 |
Дата: Вторник, 14.08.2018, 15:13 | Сообщение # 2
|
Новичок
Сообщений: 22
Статус: Offline
|
Надеюсь, я правильно понял. В тот момент, когда у игрока, после введенной команды /med, уровень здоровья будет выше 90, но меньше 160 (по-моему, это максимально допустимое количество hp), скрипт будет предлагать выполнить команду еще раз. Добавил сюда простой командный процессор, если это можно так назвать :D, но, по желанию, можно использовать другие инклуды.
Код #SingleInstance Force #Include UDF.ahk ~Enter:: if (isInChat() and !isDialogOpen()) { sleep 150 dwAddress := dwSAMP + 0x12D8F8 chatInput := readString(hGTA, dwAddress, 256) sleep 150 if chatInput = /med { if (getPlayerHealth()>90>100) { addChatMessage("{FFFFFF}[Helper]Ты здоров. 1 - использовать аптечку; 2 - отказаться") if (getKeyState("1", "P")) SendChat("/med") if (getKeyState("2", "P")) addChatMessage("{FFFFFF}[Helper] Отказ.") } } } return
Сообщение отредактировал [CM]James17 - Вторник, 14.08.2018, 15:19 |
|
|
|
MrGPro |
Дата: Вторник, 14.08.2018, 16:46 | Сообщение # 3
|
Боец
Сообщений: 202
Статус: Offline
|
Более восприимчивый код к HotKey .
Код #SingleInstance Force #Include SAMPUDF.ahk #IfWinActive GTA:SA:MP
$~Enter:: if (isInChat() and !isDialogOpen()) { sleep 150 dwAddress := dwSAMP + 0x12D8F8 chatInput := readString(hGTA, dwAddress, 256) sleep 150 if (chatInput = "/med") { if (getPlayerHealth() >= 99) { addChatMessage("{FFFFFF}[Helper]Ты здоров. 1 - использовать аптечку; 2 - отказаться") while !(getKeyState("1", "P") or getKeyState("2", "P")) { if (getKeyState("1", "P")) SendChat("/med") if (getKeyState("2", "P")) addChatMessage("{FFFFFF}[Helper] Отказ.") } } } } return
Тебе помогли не забывай про благодарность >> тыкни репутацию ---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ ----------------------------------------------------- Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия
|
|
|
|
|
[CM]James17 |
Дата: Среда, 15.08.2018, 12:56 | Сообщение # 5
|
Новичок
Сообщений: 22
Статус: Offline
|
Phoenixxx_Czar, дааа, да, точно. Как только увидел код постом выше, вспомнил, что я совсем забыл добавить в свой код while, писал быстро, на работоспособность не проверял. Спасибо, что на ошибку указали.
|
|
|
|
Molotovs |
Дата: Среда, 15.08.2018, 22:27 | Сообщение # 6
|
Новичок
Сообщений: 4
Статус: Offline
|
Нужно что то вроде такого, но не реагирует на нажатия в чём проблема?
Код :?:/med:: if (getPlayerHealth() >= 99) { addChatMessage("{FFFFFF}[Helper]Ты здоров. 1 - использовать аптечку; 2 - отказаться") while !(getKeyState("1", "P") or getKeyState("2", "P")) { if (getKeyState("1", "P")) SendChat("med") if (getKeyState("2", "P")) addChatMessage("{FFFFFF}[Helper] Отказ.") } } return
Добавлено (15.08.2018, 22:58) --------------------------------------------- MrGPro, Нашёл твой код по поводу ХП, но проблемка после отказа лечения он всё равно предлагает лечение
Код #Include SAMPUDF.ahk #IfWinActive GTA:SA:MP
global Minut := 0.03 global timer_HealChecker := Minut*60*1000 global antiFlood := true
; Данный скрипт требует версии 1.0.25.13. Gui, Add, Text,, First name: Gui, Add, Text,, Last name: Gui, Add, Edit, vFirstName ym ; Опция ym начинает новую колонку элементов управления. Gui, Add, Edit, vLastName Gui, Add, Button, default, OK ; Метка ButtonOK (если она существует) будет запущена при нажатии кнопки. Gui, Show,, Simple Input Example SetTimer, HealChecker, On return
HealChecker: if (antiFlood) { Loop { if (getPlayerHealth() <= 40 and getPlayerHealth() >= 0) { addChatMessageEx("FFFFFF", "[ХП помощник]:Используй аптечку у тебя " getPlayerHealth() " хп. Использовать - [1], отказ - [2]") Loop, { if (getkeystate("1", "P")) { sendchat("/usemed") break } if (getkeystate("2", "P")) { addChatMessageEx("FFFFFF", "[ХП помощник]: Вы отказались от помощи") break } } antiFlood := false SetTimer, HealChecker, % timer_HealChecker break } else { antiFlood := false SetTimer, HealChecker, 1000 break } } return } antiFlood := true return
Сообщение отредактировал Molotovs - Среда, 15.08.2018, 22:28 |
|
|
|
MrGPro |
Дата: Среда, 15.08.2018, 23:16 | Сообщение # 7
|
Боец
Сообщений: 202
Статус: Offline
|
Molotovs, Вот тебе наглядное пособие
Код global Minut := 0.03 global timer_HealChecker := Minut*60*1000 global antiFlood := true sleep, % timer_HealChecker MsgBox, % timer_HealChecker
Конструкция выше построена на натуральное число(1/2/3/4...), а не на сотые и и десятые. Код который я указывал предназначен для того чтобы после нажатия отказа повторное предложение появиться через 1 2 3 4 .... мин после нажатия клавиши.
Тебе помогли не забывай про благодарность >> тыкни репутацию ---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ ----------------------------------------------------- Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия
Сообщение отредактировал MrGPro - Среда, 15.08.2018, 23:19 |
|
|
|
Molotovs |
Дата: Среда, 15.08.2018, 23:27 | Сообщение # 8
|
Новичок
Сообщений: 4
Статус: Offline
|
MrGPro, А как сделать что бы после отказа скрипт прекращал действовать, но когда у тебя будет ниже 90 хп, он вновь работал?
|
|
|
|
MrGPro |
Дата: Четверг, 16.08.2018, 00:26 | Сообщение # 9
|
Боец
Сообщений: 202
Статус: Offline
|
Molotovs, пробуй этот
Код global Minut := 2 global timer_HealChecker := Minut*60*1000 global antiFlood := true
; Данный скрипт требует версии 1.0.25.13. Gui, Add, Text,, First name: Gui, Add, Text,, Last name: Gui, Add, Edit, vFirstName ym ; Опция ym начинает новую колонку элементов управления. Gui, Add, Edit, vLastName Gui, Add, Button, default, OK ; Метка ButtonOK (если она существует) будет запущена при нажатии кнопки. Gui, Show,, Simple Input Example SetTimer, HealChecker, On return
HealChecker: if (antiFlood) { while (getPlayerHealth() <= 79) { addChatMessageEx("FFFFFF", "[ХП помощник]:Используй аптечку у тебя " getPlayerHealth() " хп. Использовать - [1], отказ - [2]") Loop, { if (getkeystate("1", "P")) { sendchat("/usemed") break } if (getkeystate("2", "P")) { addChatMessageEx("FFFFFF", "[ХП помощник]: Вы отказались от помощи") break } } antiFlood := false SetTimer, HealChecker, % timer_HealChecker return } SetTimer, HealChecker, 1000 return } antiFlood := true return
Тебе помогли не забывай про благодарность >> тыкни репутацию ---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ ----------------------------------------------------- Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия
|
|
|
|
Molotovs |
Дата: Четверг, 16.08.2018, 00:53 | Сообщение # 10
|
Новичок
Сообщений: 4
Статус: Offline
|
MrGPro, При соглашении на лечение скрипт останавливается если ты даже не вылечился
|
|
|
|