Перейти к публикации

Добро пожаловать на форум проекта RP GameWorld!

[AHK] Полезные бинды


Kangaroo

Рекомендованные сообщения

В 24.05.2017 в 7:31 PM, strozza сказал:

Нужен код скрипта что бы пробивать собственный ID и сразу вписывать в строчку доклада

 

37 минут назад, Macros сказал:

Могу сделать такое, но только с помощью удф, он запрещен так-то, но если хочешь отпиши в ЛС, поговорим

Не нужен: https://pastebin.com/f8x6gtVj

Изменено пользователем Spikey
Ссылка на комментарий
Поделиться на других сайтах

В 29.05.2017 в 11:21 PM, Spikey сказал:

Поделюсь парой-другой биндов для ПО и не только:

1. SAMP UDF в котором нет читов (да-да, действительно нет): https://pastebin.com/7reTZY1h

 

2. Автоматический архиватор чатлога и скриншотов: https://pastebin.com/R9qh8QjP

Идея и первоначальная реализация пренадлежит Кену, я лишь чуть улучшил и кое-что пофиксил.

Предупреждаю: может занимать много места на диске если очень много играть и долго не чистить. Блокнотом открывать самый большой лог категорически не советую)

 

3. Быстрая пробежка поиском по всему /wanted: https://pastebin.com/GLeiRsg6

4. Вывод времени последнего /gov: https://pastebin.com/kypA21LB

5. Быстрые /arrest от 1 до 6 звезд: https://pastebin.com/gwZsRJgT

6. Изъятие подделок у человека, который показывал тебе лицензии последний: https://pastebin.com/br7tQNLV

7. Флуд одним и тем же сообщением в /me с прогрессом(5/10): https://pastebin.com/p9LcKtmQ

8. Повтор последнего сообщения в чат: https://pastebin.com/5xVR5JL3

9. Надеть наручники человеку, которого ты ударил тазером: https://pastebin.com/6DDUnc4V

10. Включить сирену на авто если у тебя crashes.asi и фпс > 100: https://pastebin.com/EKnXUXe3

11. Проверка всей фракции онлайн на наличие античита: https://pastebin.com/xqSJFm9g

12. Статистика за неделю для сотрудников ПО(работает только в паре с архиватором чатлога): https://pastebin.com/Sdby1PGw

13. Удобный бинд, показывающий последние выпавшие числа в /dice: https://pastebin.com/BrJ8nDx7

 

Все, что связано с копированием никнеймов:

14. Система копирования ников, id и прочей херни: https://pastebin.com/xYyXTwku

15. Запись в /pl человека, который вышел при аресте(никнейм должен быть скопирован): https://pastebin.com/AAhEGsLf

Если в чате была найдена строка о выходе при аресте, то запишет пометку [P]. Время вашего компьютера.

 

P.S. Большинство биндов использующих UDF можно переделать без него, но меня этим заниматься не просите(объяснять как это всё работает -  тоже).

Поставил себе в бинд wanted и тазер с наручниками,открываю бинд и выскакивает ошибка ругается на "isInChat" и не открывает бинд.Что делать?

Изменено пользователем EKLIPS
Ссылка на комментарий
Поделиться на других сайтах

11 минуту назад, EKLIPS сказал:

Поставил себе в бинд wanted и тазер с наручниками,открываю бинд и выскакивает ошибка ругается на "isInChat" и не открывает бинд.Что делать?

1. SAMP UDF в котором нет читов (да-да, действительно нет): https://pastebin.com/7reTZY1h

1) Создаем файлик nazvaniye.ahk

2) Копируем код в этот файлик

3) Переносим файлик в папку с основным скриптом

4) В скрипте в начало - #include nazvaniye.ahk

Ссылка на комментарий
Поделиться на других сайтах

Помогите составить структуру скрипта/направьте на истинный путь.Пишу скрипт который при нажатии на ALT кроме того как глушит/заводит машину, так и пишет о состоянии двигателя. Предполагаю что нужно пустить по циклу If но не хватает теории для реализации задумки. UDF приветствуется.

Ссылка на комментарий
Поделиться на других сайтах

8 часов назад, Krytezos сказал:

Помогите составить структуру скрипта/направьте на истинный путь.Пишу скрипт который при нажатии на ALT кроме того как глушит/заводит машину, так и пишет о состоянии двигателя. Предполагаю что нужно пустить по циклу If но не хватает теории для реализации задумки. UDF приветствуется.

Начнем по порядку. IF - условие, а не цикл.

Первое что нужно сделать - проверить находится ли игрок в автомобиле, используя UDF.

if(IsPlayerInAnyVehicle())
{
	; Сюда проверку положения мотора, действие после этого 
}
else return

Едем дальше, теперь нужно проверить положение двигателя:

if(getVehicleEngineState() = 0)
{
	; Действие при выключенном двигателе
}
else if(getVehicleEngineState() = 1)
{
	; Действие при включенном двигателе
}
else return

Итого имеем:

if(IsPlayerInAnyVehicle())
{
	if(getVehicleEngineState() = 0)
	{
		SendInput {F6}/me завел двигатель{enter}
		; трыц-тыц, действия после того, как завел
	}
	else if(getVehicleEngineState() = 1)
	{
		SendInput {F6}/me заглушил двигатель{enter}
		; тыры-пыры, действия после того, как заглушил
	}
}
else return

Добавляешь ко всему этому кнопочку и оно прекрасно работает. Ах да, UDF я юзал самый последний, найдешь на гитхабе.

Другим путем, не используя UDF, это вряд ли получится сделать ибо при изменении состояния мотора - в чатик ниче не пишется и извлечь следовательно ничего нельзя.

Ссылка на комментарий
Поделиться на других сайтах

Немного апдейта к моему посту выше.

Делал я все то без тестиков, сейчас зашел в игру и решил все-таки проверить.

Обнаружил недоработочку, а именно вызов не тех строк, которые нужны.

Более обновленный код:

Alt::
	if(IsPlayerInAnyVehicle())
	{
		Sleep 500
		if(getVehicleEngineState() = 0)
		{
			SendInput {F6}/me заглушил двигатель{enter}
			; трыц-тыц действия после того, как заглушил
		}
		else if(getVehicleEngineState() = 1)
		{
			SendInput {F6}/me завел двигатель{enter}
			; тыры-пыры действия после того, как завел
		}
	}
	else return
return

Добавил маленькую задержку, которая позволяет более точно определить состояние двигателя.

Поменял местами действия ибо проверяется уже после того, как ты завел автомобиль на сервере.

Ссылка на комментарий
Поделиться на других сайтах

Cпасибо огромное! 
Прошу прощения, но хочу вас информировать о том, что оператор выбора If else-  это прежде всего цикл, т.к. работает по циклу, который при условии=верно работает с оператором 1, если условие не верно работает с оператором 2. ( If (Условие) Оператор1 else Оператор 2 ).
C помощью вашего кода сделал для себя такую вещь, благодаря которой, при закрытии дверей, пишет соотв. в чат.
Код рабочий.



NumPad5:: SendInput, {f6}/lock{enter} if(IsPlayerInAnyVehicle()) { Sleep 500 if(getVehicleLockState() = 0) { Sleep, 1300 SendChat("/me открыл двери автомобиля") Sleep, 50 } else if(getVehicleLockState() = 1) { Sleep, 1300 SendChat("/me закрыл двери автомобиля") Sleep, 50 } } else return Return

 

 

Так же, сделал соотв. для двигателя, так же, рабочий:

 



Alt:: if(IsPlayerInAnyVehicle()) { Sleep 500 if(getVehicleEngineState() = 0) { SendChat("/me заглушил двигатель") Sleep, 1300 SendChat("/me отстегнул ремень безопасности") Sleep, 50 } else if(getVehicleEngineState() = 1) { SendChat("/me завел двигатель") Sleep, 1300 SendChat("/me пристегнул ремень безопасности") Sleep, 50 } } else return return

 

 

А вот с фарами, проблемы, клавиша не отправляет серверу, не ясно почему, запрос на изменения состояния фар, но цикл работает. Фары не включаются/выключаются при бинде на эту клавишу, состояние фар не меняется. Код :



LCtrl:: if(IsPlayerInAnyVehicle()) { Sleep 500 if(getVehicleLightState() = 0) { SendChat("/me выключил фары") Sleep, 50 } else if(getVehicleLightState() = 1) { SendInput {F6}/me включил фары{enter} Sleep, 50 } } else return return

 

Буду рад помощи.

Ссылка на комментарий
Поделиться на других сайтах

28 минут назад, Krytezos сказал:

А вот с фарами, проблемы, клавиша не отправляет серверу, не ясно почему, запрос на изменения состояния фар, но цикл работает. 

Не цикл, а ветвление. Перед LCtrl тильду поставь(~).

Ссылка на комментарий
Поделиться на других сайтах

Хочу добавить только, что бинд на команду /me при открывании/закрывании дверей может быть неудобен тем, что минимальное окно между открыванием и закрыванием получается больше 2-х секунд, за которые какой-нибудь бомж может твое ТС угнать.

Ссылка на комментарий
Поделиться на других сайтах

Всем больше спасибо за ответы! Отблагодарил кнопкой "Мне нравится".
 Есть код с диалоговым окном :
 

Numpad0::
showDialog("1", "{fc3c3c}Установка поста", "{ffffff}Введите наименование поста:", "Закрыть")
input, POST, V, {enter} 
addchatmessage("{ffffff}Установленный пост: " POST) 
sleep 100
return

При нажатии {enter} переменная заполняется как нужно. Как сделать так, чтобы при закрытии диалога любым способом {esc}, [нажатие на кнопку] переменная заполнялась так же, как и при нажатии на вышеупомянутую [enter]. Буду благодарен.
 

Ссылка на комментарий
Поделиться на других сайтах

53 минуты назад, Krytezos сказал:

Всем больше спасибо за ответы! Отблагодарил кнопкой "Мне нравится".
 Есть код с диалоговым окном :
 


Numpad0::
showDialog("1", "{fc3c3c}Установка поста", "{ffffff}Введите наименование поста:", "Закрыть")
input, POST, V, {enter} 
addchatmessage("{ffffff}Установленный пост: " POST) 
sleep 100
return

При нажатии {enter} переменная заполняется как нужно. Как сделать так, чтобы при закрытии диалога любым способом {esc}, [нажатие на кнопку] переменная заполнялась так же, как и при нажатии на вышеупомянутую [enter]. Буду благодарен.
 

Вроде как так:

input, POST, V, {enter}{esc}{кнопка_1}{кнопка_2}

Там еще есть вариант через точку({enter}.{esc}), но это не точно.

Попробуй и так, и так.

Ссылка на комментарий
Поделиться на других сайтах

1 час назад, Krytezos сказал:

Всем больше спасибо за ответы! Отблагодарил кнопкой "Мне нравится".
 Есть код с диалоговым окном :
 


Numpad0::
showDialog("1", "{fc3c3c}Установка поста", "{ffffff}Введите наименование поста:", "Закрыть")
input, POST, V, {enter} 
addchatmessage("{ffffff}Установленный пост: " POST) 
sleep 100
return

При нажатии {enter} переменная заполняется как нужно. Как сделать так, чтобы при закрытии диалога любым способом {esc}, [нажатие на кнопку] переменная заполнялась так же, как и при нажатии на вышеупомянутую [enter]. Буду благодарен.
 

Есть документация по AutoHotKey - https://autohotkey.com/docs/AutoHotkey.htm

Если в английском не силен - http://script-coding.com/AutoHotkeyTranslation.html

Ссылка на комментарий
Поделиться на других сайтах

2 часа назад, floydya сказал:

Вроде как так:


input, POST, V, {enter}{esc}{кнопка_1}{кнопка_2}

Там еще есть вариант через точку({enter}.{esc}), но это не точно.

Попробуй и так, и так.

Пишется все без точки, перечислением, заключая в {}.  Нашел в документации что кнопка меню это- {AppsKey}, Но эта кнопка конечно же для диалогового окна из SUMP UDF не подходит, т.е. Если указать {Закрыть} или {Close}(переименовав там текст) или же {AppsKey}. Все же, спасибо огромное за помощь.

Ссылка на комментарий
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в теме...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   1 пользователь

×
×
  • Создать...