Тема: AHK-скрипт для SA:MP
https://www.youtube.com/watch?v=SrhawuG1Cqc
Здравствуйте. Помогите в составлении кода на AHK. Я меняю оружия - скрипт сам пишет код.
Незнаю этот код. Помогите его написать (примерно)
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
https://www.youtube.com/watch?v=SrhawuG1Cqc
Здравствуйте. Помогите в составлении кода на AHK. Я меняю оружия - скрипт сам пишет код.
Незнаю этот код. Помогите его написать (примерно)
Вариантов много как сделать. На какие кнопки оружие меняешь?
SeaVodikendu Хотя бы код с кулака на Deagle, и что бы была отыгровка.
SeaVodikendu Сам код я незнаю. А под себя я сам смогу сделать)
К примеру:
2::
sendinput, {vk32}
sleep 500
sendinput, {f6}/me Достал из кобуры Deagle{enter}
return
"2" - горячая клавиша для смены "с кулака на Deagle".
Благодарю. Держи +SeaVodikendu
Нет. Это не то..
Надо что бы я не нажимал клавиши... а он автомотически это делал, когда я менял оружия.SeaVodikendu
tawer31rus
Но ты ведь нажимаешь клавишу, когда меняешь оружие.
На этом принципе и строится код.
Нет. Я щелкаю колесиком мыши. И это не зависит, а если будет 2 оружия, как тогда?SeaVodikendu
Я не знаю, записывает ли игра логи в файл, о том какое оружие в руках. Тогда можно было бы сделать как ты хочешь. Но это навряд ли.
Еще такой вариант:
При нажатии хоткея будет всплывать окно с выбором оружия (какое имеется в арсенале). И тогда при прокрутки колеса мыши, оно будет меняться и соответствующая отыгровка к нему.
SeaVodikendu Вот этот AHK. Где есть эта смена оружия. Взломать у меня не получилось)
SeaVodikendu
Тут надо работать с памятью игры(тоесть считывать адресс) либо использовать функцию из samp UDF, которая определяет ид оружия в руке(вроде в каком-то UDF видел). А далее в зависимости от ида в руке уже пишет то что тебе надо в чат. Что бы писало в чат тоже используй функции UDF.
Какой ид относится к оружию можешь найти в интернете.
Если будешь сам считывать память то вот тебе адрес. Считывать надо в 1 byte то есть в Char. Он показывает ид оружия в руке:
0xB6F5F0(основной адрес) + 0x740(оффсет)
Я бы сделал код примерно в такой логике:
Выбрал оружие(пока ничего не происходит это делаешь руками). Далее вступает в действие скрипт.
Жмешь например Z. Скрипт считывает ид оружия. Далее в зависимости от условия пишет в чат.
Это все долго) Надо прямо чтобы я поменял оружия, и сразу же пошла отыгровка.Dworkin
Это все долго) Надо прямо чтобы я поменял оружия, и сразу же пошла отыгровка.Dworkin
ну вместо кнопки Z ставишь цикл и все.
#SingleInstance force
#NoEnv
#include SAMPMAXnew.ahk
#IfWinActive GTA:SA:MP
ListLines Off
SetBatchLines -1
SetKeyDelay 0
Chat := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
#Persistent
global TazerTo:= -1
global TazerIn := 0
global TazerOut:=0
Loop
{
TempWeapon := getPlayerWeaponId()
if (TempWeapon = 23) or(TempWeapon = 3)
if not TazerIn
{
TazerIn := 1
if TazerSleep
SetTimer TakeGun, 100
else
SetTimer TakeGun, %SleepOn%
}
if (TempWeapon = 24) or (TempWeapon = 25) or (TempWeapon = 29) or (TempWeapon = 31) or (TempWeapon = 17) or (TempWeapon = 1) or (TempWeapon = 5) or (TempWeapon = 14) or (TempWeapon = 30) or (TempWeapon = 33) or (TempWeapon = 34) or (TempWeapon = 43) or (TempWeapon = 46) or (TempWeapon = 15) or (TempWeapon = 36) or (TempWeapon = 2) {
if not TazerIn
{
TazerIn := 1
SetTimer TakeGun, %SleepOn%
}
}
if (TempWeapon = 0)
{
if (TazerOut > 1) and (TazerTo)
{
TazerTo := 0
SetTimer UnloadGun, %SleepOff%
}
}
Sleep 100
}
TakeGun:
TempWeapon := getPlayerWeaponId()
if (TempWeapon = 24) and (TazerOut != 2) {
SendChat("/do Пистолет в кобуре.")
SendChat("/me быстрым движением правой руки открыл" Female " кобуру и вытащил" Female " пистолет.")
SendChat("/me снял" Female " пистолет с предохранителя.")
TazerOut:=2
}
if (TempWeapon = 3) and (TazerOut != 3) {
SendChat("/do Дубинка висит на поясе.")
SendChat("/me резким движение снял" Female " дубинку с поясного держателя.")
TazerOut:=3
}
if (TempWeapon = 23) and (TazerOut != 4) {
SendChat("/me снял" Female " электрошокер с пояса")
TazerOut:=4
}
if (TempWeapon = 25) and (TazerOut != 5) {
SendChat("/me вытащил " Female " дробовик из-за спины")
SendChat("/me снял" Female " дробовик с предохранителя")
TazerOut:=5
}
if (TempWeapon = 29) and (TazerOut != 6) {
SendChat("/me взял" Female " MP-5 в руки.")
TazerOut:=6
}
if (TempWeapon = 31) and (TazerOut != 7) {
SendChat("/me достал" Female " карабин M4 из-за плеча")
SendChat("/me снял" Female " M4 с предохранителя")
TazerOut:=7
}
if (TempWeapon = 17) and (TazerOut != 8) {
SendChat("/me надел" Female " противогаз.")
Sleep 2000
SendChat("/me достал" Female " светошумовую гранату.")
TazerOut:=8
}
if (TempWeapon = 1) and (TazerOut != 9) {
SendChat("/me надел" Female " кастет на руку.")
TazerOut:=9
}
if (TempWeapon = 5) and (TazerOut != 10) {
SendChat("/me взял" Female " бейсбольную биту в руки.")
TazerOut:=10
}
if (TempWeapon = 14) and (TazerOut != 11) {
SendChat("/me развернул" Female " букет цветов.")
TazerOut:=11
}
if (TempWeapon = 30) and (TazerOut != 12) {
SendChat("/me взял" Female " автомат АК-47 в руки.")
TazerOut:=12
}
if (TempWeapon = 33) and (TazerOut != 13) {
SendChat("/me взял" Female " винтовку в руки.")
TazerOut:=13
}
if (TempWeapon = 34) and (TazerOut != 14) {
SendChat("/me достал" Female " снайперскую винтовку из-за плеча")
SendChat("/me снял" Female " снайперскую винтовку с предохранителя")
TazerOut:=14
}
if (TempWeapon = 43) and (TazerOut != 15) {
SendChat("/me достал" Female " фотоаппарат.")
TazerOut:=15
}
if (TempWeapon = 46) and (TazerOut != 16) {
SendChat("/me одел" Female " парашют на плечи.")
TazerOut:=16
}
if (TempWeapon = 15) and (TazerOut != 17) {
SendChat("/me достал" Female " элегантную трость.")
TazerOut:=17
}
if (TempWeapon = 36) and (TazerOut != 18) {
SendChat("/me взял" Female " Stinger в руки.")
TazerOut:=18
}
if (TempWeapon = 2) and (TazerOut != 19) {
SendChat("/me взял" Female " клюшку в руки.")
TazerOut:=19
}
TazerIn := 0
TazerTo := 1
SetTimer TakeGun, Off
return
UnloadGun:
TempWeapon := getPlayerWeaponId()
if not (TempWeapon = 24) and (TazerOut = 2)
{
SendChat("/me поставил" Female " пистолет на предохранитель.")
SendChat("/me быстрым движением руки засунул" Female " пистолет в кобуру и застегнул" Female " ее.")
}
if not (TempWeapon = 3) and (TazerOut = 3)
{
SendChat("/me повесил" Female " дубинку на пояс.")
SendChat("/do Дубинка на поясе.")
}
if not (TempWeapon = 23) and (TazerOut = 4)
{
SendChat("/me повесил" Female " электрошокер на пояс.")
}
if not (TempWeapon = 3) and (TazerOut = 5)
{
SendChat("/me поставил" Female " дробовик на предохранитель")
SendChat("/me повесил" Female " дробовик на плечо")
}
if not (TempWeapon = 3) and (TazerOut = 6)
{
SendChat("/me повесил" Female " MP-5 на плечо.")
}
if not (TempWeapon = 31) and (TazerOut = 7)
{
SendChat("/me поставил" Female " М4 на предохранитель")
SendChat("/me повесил" Female " M4 на плечо")
}
if not (TempWeapon = 1) and (TazerOut = 9)
{
SendChat("/me снял" Female " кастет.")
}
if not (TempWeapon = 5) and (TazerOut = 10)
{
SendChat("/me спрятал" Female " биту.")
}
if not (TempWeapon = 14) and (TazerOut = 11)
{
SendChat("/do Цветы не в руках.")
}
if not (TempWeapon = 30) and (TazerOut = 12)
{
SendChat("/me убрал" Female " АК-47 за спину.")
}
if not (TempWeapon = 33) and (TazerOut = 13)
{
SendChat("/me убрал" Female " винтовку.")
}
if not (TempWeapon = 34) and (TazerOut = 14)
{
SendChat("/me поставил" Female " снайперскую винтовку на предохранитель")
SendChat("/me повесил" Female " снайперскую винтовку на плечо")
}
if not (TempWeapon = 43) and (TazerOut = 15)
{
SendChat("/me закрыл" Female " крышечкой объектив фотоаппарата.")
}
if not (TempWeapon = 46) and (TazerOut = 16)
{
SendChat("/me снял" Female " парашют.")
}
TazerOut:=0
SetTimer UnloadGun, Off
return
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться