1

Тема: AHK-скрипт для SA:MP

https://www.youtube.com/watch?v=SrhawuG1Cqc

Здравствуйте. Помогите в составлении кода на AHK. Я меняю оружия - скрипт сам пишет код.
Незнаю этот код. Помогите его написать (примерно)

2

Re: AHK-скрипт для SA:MP

Вариантов много как сделать. На какие кнопки оружие меняешь?

3

Re: AHK-скрипт для SA:MP

SeaVodikendu Хотя бы код с кулака на Deagle, и что бы была отыгровка.

4

Re: AHK-скрипт для SA:MP

SeaVodikendu Сам код я незнаю. А под себя я сам смогу сделать)

5 (изменено: SeaVodikendu, 2016-05-22 13:37:56)

Re: AHK-скрипт для SA:MP

К примеру:


2::
sendinput, {vk32}
sleep 500
sendinput, {f6}/me Достал из кобуры Deagle{enter}
return

"2" - горячая клавиша для смены "с кулака на Deagle".

6

Re: AHK-скрипт для SA:MP

Благодарю. Держи +SeaVodikendu

7

Re: AHK-скрипт для SA:MP

Нет. Это не то..
Надо что бы я не нажимал клавиши... а он автомотически это делал, когда я менял оружия.SeaVodikendu

8

Re: AHK-скрипт для SA:MP

tawer31rus
Но ты ведь нажимаешь клавишу, когда меняешь оружие.
На этом принципе и строится код.

9

Re: AHK-скрипт для SA:MP

Нет. Я щелкаю колесиком мыши. И это не зависит, а если будет 2 оружия, как тогда?SeaVodikendu

10

Re: AHK-скрипт для SA:MP

Я не знаю, записывает ли игра логи в файл, о том какое оружие в руках. Тогда можно было бы сделать как ты хочешь. Но это навряд ли.
Еще такой вариант:
При нажатии хоткея будет всплывать окно с выбором оружия (какое имеется в арсенале). И тогда при прокрутки колеса мыши, оно будет меняться и соответствующая отыгровка к нему.

11

Re: AHK-скрипт для SA:MP

SeaVodikendu Вот этот AHK. Где есть эта смена оружия. Взломать у меня не получилось)

12

Re: AHK-скрипт для SA:MP

SeaVodikendu

13 (изменено: Dworkin, 2016-05-22 22:52:40)

Re: AHK-скрипт для SA:MP

Тут надо работать с памятью игры(тоесть считывать адресс) либо использовать функцию из samp UDF, которая определяет ид оружия в руке(вроде в каком-то UDF видел). А далее в зависимости от ида в руке уже пишет то что тебе надо в чат. Что бы писало в чат тоже используй функции UDF.
Какой ид относится к оружию можешь найти в интернете.
Если будешь сам считывать память то вот тебе адрес. Считывать надо в 1 byte то есть в Char. Он показывает ид оружия в руке:

0xB6F5F0(основной адрес) + 0x740(оффсет)

Я бы сделал код примерно в такой логике:
Выбрал оружие(пока ничего не происходит это делаешь руками). Далее вступает в действие скрипт.
Жмешь например Z. Скрипт считывает ид оружия. Далее в зависимости от условия пишет в чат.

14

Re: AHK-скрипт для SA:MP

Это все долго) Надо прямо чтобы я поменял оружия, и сразу же пошла отыгровка.Dworkin

15

Re: AHK-скрипт для SA:MP

tawer31rus пишет:

Это все долго) Надо прямо чтобы я поменял оружия, и сразу же пошла отыгровка.Dworkin

ну вместо кнопки Z ставишь цикл и все.

16

Re: AHK-скрипт для SA:MP

#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