Вопросы по AHK-скриптингу

scrihack

Новичок
8
1
Помогите написать скрипт для вычисления расстояния между IP - адресами
 

yanysik

Новичок
2
0
недавно решила сделать себе ахк и сделать так, что-бы там был по команде мой ник и id
вставила этот код:

Mymame := RegExReplace(getUsername(), "_"," ")
Myid:= getPlayerIdByName(getUsername())

написала текст, поставила там "Myname" и "Myid".
в итоге в нике был пробел, а в id -1.

я где-то накосячила или косяк в скрипте?
 

#Rin

Известный
Всефорумный модератор
1,214
1,036
недавно решила сделать себе ахк и сделать так, что-бы там был по команде мой ник и id
вставила этот код:

Mymame := RegExReplace(getUsername(), "_"," ")
Myid:= getPlayerIdByName(getUsername())

написала текст, поставила там "Myname" и "Myid".
в итоге в нике был пробел, а в id -1.

я где-то накосячила или косяк в скрипте?
Запусти скрипт в кодировке ANSI.
 

darksoor

Известный
674
353
недавно решила сделать себе ахк и сделать так, что-бы там был по команде мой ник и id
вставила этот код:

Mymame := RegExReplace(getUsername(), "_"," ")
Myid:= getPlayerIdByName(getUsername())

написала текст, поставила там "Myname" и "Myid".
в итоге в нике был пробел, а в id -1.

я где-то накосячила или косяк в скрипте?

При установке программы AutoHotKey выбираем пункт Custom Installation, после выбираем ANSI-32.

Myid := getId() - более удобная функция для получения своего ID. Выводит -1, так как функция getPlayerIdByName() выводит ID из никнейма формата Nick_Name, а Вы данным кодом (Mymame := RegExReplace(getUsername(), "_"," ")) убирание нижнее подчеркивание из никнейма.
Думаю понятно объяснил ;)
 

TopMo3

Участник
121
7
Можно ли сделать в АХК так, чтобы когда я пишу /gps 6 он сразу отмечался и не пришлось самому делать?
Если можно, то сделайте позязя
 

oPawka

Новичок
23
4
Можно ли сделать в АХК так, чтобы когда я пишу /gps 6 он сразу отмечался и не пришлось самому делать?
Если можно, то сделайте позязя
AutoHotKey:
#SingleInstance Force
#Persistent
#NoEnv
#Include udf.ahk ; Твоё название UDFa

:?:/gps 6::
SendChat("/gps")
while !isDialogOpen()
    continue
SendInput {down 5} {enter}
return
 
  • Нравится
Реакции: Quattro

Arthur22

Новичок
11
1
Можно ли сделать в АХК так, чтобы когда я пишу /gps 6 он сразу отмечался и не пришлось самому делать?
Если можно, то сделайте позязя
Код:
#SingleInstance force
#include samp.ahk
#IfWinActive GTA:SA:MP
$~Enter::
if (!isInChat() && isDialogOpen())
    return
Sleep, 170
global dwAddress := dwSAMP + 0x12D8F8
chatInput := readString(hGTA, dwAddress, 256)
Sleep, 30
If RegExMatch(chatInput, "i)/gps (?<count>[0-9])", o_) {
    If o_count =
        return
    else 
    {
        count := o_count-1
        SendInput, {DOWN %count%}{ENTER}
        writeString(hGTA, dwAddress, false)
    }
}
return
 

David056

Новичок
2
0
А можно ли как-то изменять текст прямо в игре? Ну например:
У тебя есть свой флудер, прописываешь /fld *текст* *задержка* выглядите так: /fld /admins 1000
Вот код. Скажите что делать чтобы именно так сделать?
:?:/fld::
Loop
{
SendChat("/admins)
Sleep, 1000
}
 

oPawka

Новичок
23
4
А можно ли как-то изменять текст прямо в игре? Ну например:
У тебя есть свой флудер, прописываешь /fld *текст* *задержка* выглядите так: /fld /admins 1000
Вот код. Скажите что делать чтобы именно так сделать?
:?:/fld::
Loop
{
SendChat("/admins)
Sleep, 1000
}
Можно через GUI сделать это.
 

darksoor

Известный
674
353
А можно ли как-то изменять текст прямо в игре? Ну например:
У тебя есть свой флудер, прописываешь /fld *текст* *задержка* выглядите так: /fld /admins 1000
Вот код. Скажите что делать чтобы именно так сделать?
:?:/fld::
Loop
{
SendChat("/admins)
Sleep, 1000
}

AutoHotKey:
if (A_IsAdmin = false) {
    Run *RunAs "%A_ScriptFullPath%" ,, UseErrorLevel
}
#NoEnv
#SingleInstance force
#Include SAMP-UDF.ahk ;подключаешь SAMP-UDF (создаёшь рядом со своим скриптом файлик SAMP-UDF.ahk, после переходишь в тему "https://blast.hk/threads/20318/"(без кавычек) и копируешь в данный файл код)
IfNotExist, % A_ScriptDir "\setting.ini"
{
    FileAppend, , % A_ScriptDir "\setting.ini"
}
IniRead, floodText, %A_ScriptDir%\setting.ini, Setup, floodText
IniRead, floodSleep, %A_ScriptDir%\setting.ini, Setup, floodSleep
$~NumpadEnter::
$~Enter::
if (isInChat() && !isDialogOpen()) {
    Sleep 200
    chatInput := readString(hGTA, dwSAMP + 0x12D8F8, 256)
    if (RegExMatch(chatInput, "^/fld", out))
    {
        if (RegExMatch(chatInput, "^/fld (.*) (\d+)", var))
        {
            IniWrite, %var1%, %A_ScriptDir%\setting.ini, Setup, floodText
            IniWrite, %var2%, %A_ScriptDir%\setting.ini, Setup, floodSleep
            floodText := var1
            floodSleep := var2
            AddChatMessageEx("{228B22}", "[Flood]:{F5F5DC} Текст флуда - {228B22}" floodText "{F5F5DC}, задержка флуда - {228B22}" floodSleep "{F5F5DC}. Активация - F2.")
            Return
        }
    }
}
return

F2::
if (floodText == "ERROR") or (floodSleep == "ERROR") {
    AddChatMessageEx("{228B22}", "[Flood]:{F5F5DC} Заполните текст и задержку для флудера! Команда - {228B22}/fld [текст] [задержка в м/c]")
    return
}
SS := !SS
SetTimer, Flooder, % (SS ? floodSleep : "off")
Return

Flooder:
SendChat(floodText)
return
 

Anton_Hamond

Новичок
13
2
Здравствуйте, подскажите реально ли сделать, чтобы ахк сам писал статью "Вы задержаны за ( здесь статья)" по нажатию кнопки с этого кода? Заранее спасибо
AutoHotKey:
SendMessage, 0x50,, 0x4190419,, A
if(!checkHandles())
   return
LastLine:=GetChatText()
File = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
if (lastLine==-1)
   return
if RegExMatch(lastLine, "^\/zv\s(\d+)$", id)
   {
   if (id1>999)
      {
      addChatMessageWithColor("AFAFAF", " Вы указали некорректный id")
      return
      }
   NameWantedPlayer:=getPlayerNameById(id1)
   if (NameWantedPlayer=="")
      {
      addChatMessageWithColor("AFAFAF", " Игрок оффлайн")
      return
      }
   Wanted:=""
   NumberOfLines:=0
   Loop, Read, %File%
      {
      NumberOfLines:=NumberOfLines+1
      if (RegExMatch(A_LoopReadLine, "\[..:..:..\]\s\s\<\<\sОфицер\s.*?\sарестовал\s" NameWantedPlayer) or RegExMatch(A_LoopReadLine, "\[..:..:..\]\s\s\[Clear\]\s[A-Za-z0-9_]*?\sудалил\sиз\sрозыскиваемых\s" NameWantedPlayer))
         ResetLines:=NumberOfLines
      }
   NumberOfLines:=0
   Loop, Read, %File%
      {
      NumberOfLines:=NumberOfLines+1
      if (NumberOfLines>ResetLines and RegExMatch(A_LoopReadLine, "\[..:..:..\]\s\s\[Wanted\s\d:\s" NameWantedPlayer "\]\s\[.*?:\s[A-Za-z0-9_]*?\]\s\[(.*?)\]$", su))
         If (not RegExMatch(Wanted, su1)) 
            if (Wanted!="")
               Wanted:=Wanted ", " su1
            else
               Wanted:=su1
      }
   if (Wanted=="")
      Wanted:="Нет данных"
   addChatMessageWithColor("FFFF00", " " NameWantedPlayer " совершил(а) " Wanted)
   return
   }
if (RegExMatch(lastLine, "^\/zv$") or RegExMatch(lastLine, "^\/zv\s.+$"))
   {
   addChatMessageWithColor("FFFFFF", " Введите: /zv [id игрока]")
   return
 
  • Нравится
Реакции: Andy Safino

darksoor

Известный
674
353
Ребзи, помогите с скриптом.
Нужно написать скрипт-замену на биндер, привожу пример. Мероприятие "Догони и передай", тебе указывают ID кому нужно передать 1 доллар, допустим будет 8. и тебе командой прямо в игре надо записать в аргумент этот id (Аргументом допустим будет X), чтобы при следующей команде, допустим команда /pp, не имеет значение, было вот так: /pp "X"​

AutoHotKey:
if (A_IsAdmin = false) {
   Run *RunAs "%A_ScriptFullPath%" ,, UseErrorLevel
}
#NoEnv
#SingleInstance force
#Include SAMP-UDF.ahk ;подключаешь SAMP-UDF (создаёшь рядом со своим скриптом файлик SAMP-UDF.ahk, после переходишь в тему "https://blast.hk/threads/20318/"(без кавычек) и копируешь в данный файл код)
$~NumpadEnter::
$~Enter::
if (isInChat() && !isDialogOpen()) {
   Sleep 200
   chatInput := readString(hGTA, dwSAMP + 0x12D8F8, 256)
   if (RegExMatch(chatInput, "^/pp (\d{1,3})", out))
   {
       id := out1 ; id - и будет твоя нужная переменная
   }
}
return