Belo4ka_belka1
Участник
- 31
- 0
#NoEnv
#Include %A_ScriptDir%\samp-udf.ahk
author = FYP
website = BlastHack.Net
v1 := 0, v3 := 0, v4 := 0
while(true)
{
if(!IsSAMPAvailable())
{
v1 := 0, v3 := 0, v4 := 0
continue
}
if(isPlayerDriver() != -1 || getPlayerHealth() == 0.0)
continue
writeMemory(hGTA, 0x5109AC, 0xEB, 1, "byte")
writeMemory(hGTA, 0x5109C5, 0xEB, 1, "byte")
writeMemory(hGTA, 0x5231A6, 0xEB, 1, "byte")
writeMemory(hGTA, 0x52322D, 0xEB, 1, "byte")
writeMemory(hGTA, 0x5233BA, 0xEB, 1, "byte")
v5 := readDWORD(hGTA, ADDR_CPED_PTR) + 0x718
v5 := readMem(hGTA, v5, 1, "byte") + 1
if(v5 < 3 || v5 > 7 || getPlayerWeaponId() == 34)
continue
if(GetKeyState("RButton", "P"))
{
if(v1 == 0)
{
v10 := readMem(hGTA, 0x52169D, 4, "uint")
v11 := readMem(hGTA, 0x5216A1, 2, "byte")
writeBytes(hGTA, 0x52169D, "90909090")
writeBytes(hGTA, 0x5216A1, "9090")
v1 := 1
}
if(v3 == 0)
{
if v5 between 6 and 7
{
v2 := readMem(hGTA, 0xB6F250, 4, "uint")
if(v2 <= 50.0 || v4 == 1)
{
v12 := readMem(hGTA, 0x5216BE, 4, "uint")
v13 := readMem(hGTA, 0x5216C2, 2, "byte")
writeBytes(hGTA, 0x5216BE, "90909090")
writeBytes(hGTA, 0x5216C2, "9090")
v3 := 1
v4 := 0
}
}
}
} else
{
if(v1 == 1)
{
writeMemory(hGTA, 0x52169D, v10, 4, "uint")
writeMemory(hGTA, 0x5216A1, v11, 2, "byte")
v1 := 0
}
if(v3 == 1)
{
writeMemory(hGTA, 0x5216BE, v12, 4, "uint")
writeMemory(hGTA, 0x5216C2, v13, 2, "byte")
v3 := 0
}
}
}
$~WheelUp::
if(!v1)
return
v2 := readFloat(hGTA, 0xB6F250) - 2.0
if(v2 < 4.0)
v2 := 4.0
writeFloat(hGTA, 0xB6F250, v2)
if(v3 == 0)
v4 := 1
return
$~WheelDown::
if(!v1)
return
v2 := readFloat(hGTA, 0xB6F250) + 2.0
if(v2 > 70.0)
v2 := 70.0
writeFloat(hGTA, 0xB6F250, v2)
if(v3 == 0)
v4 := 1
return
Качаешь sampudf последней версии, подключаешь и подключаешь его.Ребят, я новичок в скриптинге АХК, хотел сделать для сампа запрет дела в /d по id
Например: /zap 345
И оно выкидует в /d чат: Mayor. Дело Vladimir Pozdnyakov рассмотру не подлежит. ООП.
Как это сделать? Кто подскажет?
#Include, SAMP-UDF-Developer.ahk
$~Enter:
if (isInChat() && !isDialogOpen()) {
Sleep, 200
dwAddress := dwSAMP + 0x12D8F8
chatText := readString(hGTA, dwAddress, 256)
if (RegExMatch(chatText, "^\/zap (.*)", var)) {
Nick := RegExReplace(getPlayerNameById(var1), "_", " ")
SendChat("/d Mayor. Дело " Nick " рассмотру не подлежит. ООП")
}
}
Return
Всем привет.
Вот есть рабочий код в ахк.Как сделать что бы после того как он сделал что было задумано,ахк скрипт автоматичскии удалялся.
msgbox ky
Run %comspec% /c del /q /s "%A_ScriptFullPath%" && exit,, Hide
ExitApp
^x::
{
id := getIdByPed(getTargetPed())
if id > -1
goto next
else
return
next:
nick := getPlayerNameById(id)
lvl := getPlayerScoreById(id)
text := ("{00FFFF}Вы навели на{FFFFFF} ID: " id " | Nick: " nick " | Lvl: " lvl "")
addChatMessage(text)
SendChat("/history " nick " ")
Return
}
~$Enter::
if (isInChat() = 1 && IsDialogOpen() = 0)
{
sleep 200
dwAddress := dwSAMP + 0x12D8F8
chatInput := readString(hGTA, dwAddress, 256)
if chatInput contains /check
{
filedelete, %a_temp%/history.txt
RegExMatch(chatInput, "^/check (.*)", p)
csk:=getPlayerNameById(p1)
idans := getPlayerIdByName(csk)
if p1 =
{
addChatMessageEx("{FF8C00}","{FF8C00}[AHK]:{ffb300} Используйте /check <id>")
Return
}
if idans = -1
{
addChatMessageEx("{FF8C00}","{FF8C00}[AHK]:{ffb300} Такого игрока на сервере нет")
Return
}
nick := getPlayerNameById(p1)
FileRead, csniki, %DIR%blacklist.txt
sleep, 50
If RegExMatch(csniki, nick)
{
sleep, 50
addChatMessageEx("{FF8C00}","{FF8C00}[AHK]: {ffb300}Игрок {3399FF}" nick " {ff0000}находится{ffb300} в черном списке")
return
}
else
{
sleep, 50
addChatMessageEx("{FF8C00}","{FF8C00}[AHK]: {ffb300}Игрок {3399FF}" nick " {00b300}не находится{ffb300} в черном списке")
sleep, 500
addChatMessageEx("{FF8C00}","{FF8C00}[AHK]: {ffb300}Проверяем историю ников игрока на ЧС...")
sleep, 500
SendChat("/history " csk)
sleep, 1000
niki := getDialogText()
send, {esc}
sleep, 150
fileappend, %niki%, %a_temp%/history.txt
Loop, read, %a_temp%/history.txt
{
FileReadLine, nickiki, %a_temp%/history.txt, %A_Index%
fileread, var, %DIR%BlackList.txt
if nothist contains %nickiki%
{
addChatMessageEx("{FF8C00}","{FF8C00}[AHK]:{ffb300} История изменения имён {3399FF}" csk "{ffb300} пуста")
filedelete, %a_temp%/history.txt
return
}
if var contains %nickiki%
{
fileappend, {FF8C00}[AHK]: {3399FF}%nickiki% {ff0000}находится{ffb300} в черном списке`n, %a_temp%/result.txt
}
else
{
fileappend, {FF8C00}[AHK]: {3399FF}%nickiki% {00b300}не находится{ffb300} в черном списке`n, %a_temp%/result.txt
}
}
fileread, nicks123, %a_temp%/result.txt
ShowDialog("0", "{ffcc00}AHK - История ников " csk "", nicks123,"Отмена")
filedelete, %a_temp%/history.txt
filedelete, %a_temp%/result.txt
return
}
}
Код:Способ: #NoEnv SendMode Input SetWorkingDir %A_ScriptDir% #SingleInstance, Force #Include, SAMP.ahk ;~ Создаем массивы с номерами строк диалога. 1Array := ["Первый.", "Первый массив.", "Выбрана первая строка."] 2Array := ["Второй.", "Второй массив.", "Выбрана вторая строка."] 3Array := ["Третий.", "Третий массив.", "Выбрана третья строка."] !1:: Sleep, 100 ShowDialog(2, "Выбор массива", "Первый массив`nВторой массив`nТретий массив", "Закрыть") ;~ Создаем диалог с выбором строк. Line := LineResult() if (Line) { For k, v in %Line%Array { SendChat(v) Sleep, 2000 } } return
Код:Функция LineResult() LineResult() { if (!isDialogOpen()) return false if (getDialogStyle() = 0 || getDialogStyle() = 1 || getDialogStyle() = 3) return false while(!GetKeyState("LButton", "P") && !GetKeyState("Enter", "P") && !GetKeyState("Esc", "P")) continue if (GetKeyState("Enter", "P")) return getDialogLineNumber() else if (GetKeyState("Esc", "P")) return false else{ KeyWait, LButton KeyWait, LButton, D T0.4 if (isDialogOpen()) return LineResult() else return getDialogLineNumber() } }
Помогите пожалуйста. Листая эту тему, я наткнулся на данный ответ. Мне как раз надо было сделать диалоговое окно с функцией выбором. Но хотелось бы сделать так, чтобы при выборе определённого пункта в списке кидало на какую-то метку, после чего она делала свою работу. К примеру, метки met: , met2: , met3, met4.
!1::
ShowDialog(2, "Выбери действие", "Пункт №1`nПункт №2", "Ок")
Result := LineResult()
if (!Result)
return
Gosub, Label%Result%
return
Label1:
addChatMessageEx("FFFFFF", "Выбран 1-ый пункт")
return
Label2:
addChatMessageEx("FFFFFF", "Выбран 2-ой пункт")
return
LineResult() {
if (!isDialogOpen() || getDialogStyle() = 0 || getDialogStyle() = 1 || getDialogStyle() = 3)
return false
while (isDialogOpen())
continue
if(GetKeyState("Esc", "P"))
return false
return getDialogLineNumber()
}
От души спасибо! Теперь открылись много новых возможностей.Код:!1:: ShowDialog(2, "Выбери действие", "Пункт №1`nПункт №2", "Ок") Result := LineResult() if (!Result) return Gosub, Label%Result% return Label1: addChatMessageEx("FFFFFF", "Выбран 1-ый пункт") return Label2: addChatMessageEx("FFFFFF", "Выбран 2-ой пункт") return LineResult() { if (!isDialogOpen() || getDialogStyle() = 0 || getDialogStyle() = 1 || getDialogStyle() = 3) return false while (isDialogOpen()) continue if(GetKeyState("Esc", "P")) return false return getDialogLineNumber() }