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

Phoenixxx_CZAR

Известный
61
31
Мне сколько раз повторять? Я не трогал код этого пользователя. Да я мог бы оптимизировать для SendChat, но как ты же сказал "Это не обязательно".
Ставить скобки необязательно везде, но я ставлю, для меня это выглядит лучше. Какому-какому, но точно не плохому.
Попрошу со мной не спорить, оставьте своё мнение при себе, пусть в теме будут вопросы, а не наш оффтоп.
Оффтоп - разговоры не о чем. В данном случае тебе правильно подметили, если хочешь помочь - сделай это максимально правильно, а не говори как тебе лучше и все такое.
 

Cod

Участник
117
15
Оффтоп - разговоры не о чем. В данном случае тебе правильно подметили, если хочешь помочь - сделай это максимально правильно, а не говори как тебе лучше и все такое.
Видимо ты правильно не понял.
Какой смысл критиковать мой код? Если ты видишь что у меня не всё круто, напиши человеку свой - лучше. Дабы не начинать спор со мной.
Человек попросил отыгровку на команду, я сделал отыгровку на команду. Его код внутри, он не просил его оптимизировать - я не оптимизировал. Вы что все тут такие нервные и любите спорить?
Если мы одно комьюнити, то хотя бы вели бы себя так.\

Вот даже ты говоришь, "сделай это максимально правильно", хотя человеку выше ты предложил только :=, так что давайте без этого ребята.

не робит,пофиксите пожалуйста
HTML:
#Include SAMP.ahk
:?:/pinfo::
Input, id, V, {Enter}{F6}
name1 = getPlayerNameById(id)
lvl = "{ff0000}Уровень:"
lvl1 = getPlayerScoreById(id)
addChatMessage(lvl , "{ff0000}[" , lvl1 , "]")
;addChatMessage("{ff00ff}"(name1)) так просто выводит функцию  getPlayerNameById(id) в чат
Немного воды у вас много.
Вот так будет более лучше.
C++:
$~Enter::
if (isInChat() && !isDialogOpen())
  Sleep 200
  dwAddress := dwSAMP + 0x12D8F8
  chatInput := readString(hGTA, dwAddress, 256)
  {
    if(RegExMatch(chatInput, "/pinfo.(.*)", out)) {
      addChatMessage("{FF0000}Ник: {FFFFFF}" getPlayerNameById(out1) " {FF0000}Уровень: {FFFFFF}" getPlayerScoreById(out1))
    }
  }
return
 

WarGko

Известный
275
95
Помогите со скриптом. Нужно что бы он нажимал 1 раз альт выскочит диалоговое окно, потом нажмет ентер, потом стрелку вниз что бы выбрался второй пункт диалога и нажмет еще 2 раза ентер что бы принять выбор и закрыть еще один всплывающий диалог и это все зациклить.
 

madrasso

Потрачен
883
324
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Помогите со скриптом. Нужно что бы он нажимал 1 раз альт выскочит диалоговое окно, потом нажмет ентер, потом стрелку вниз что бы выбрался второй пункт диалога и нажмет еще 2 раза ентер что бы принять выбор и закрыть еще один всплывающий диалог и это все зациклить.
AutoHotKey:
#include samp-udf.ahk

F1::
Gg:
Sendinput, {alt down}
Sleep 200
Sendinput {alt up}
while (!isDialogOpen)
    continue
Sleep 200
Sendinput {enter}
Setdialogindex(1)
Sleep 50
Sendinput {enter}
while (!isDialogOpen)
    continue
Sleep 200
Sendinput {enter}
Goto Gg[/php]
Работать должен, но точно не знаю, косячно и ТД, но та мне кхм, ну вы поняли (это для тех кто цапается выше), писал с телефона просто, компа нету
 

Revalto

Известный
532
225
Видимо ты правильно не понял.
Какой смысл критиковать мой код? Если ты видишь что у меня не всё круто, напиши человеку свой - лучше. Дабы не начинать спор со мной.
Человек попросил отыгровку на команду, я сделал отыгровку на команду. Его код внутри, он не просил его оптимизировать - я не оптимизировал. Вы что все тут такие нервные и любите спорить?
Если мы одно комьюнити, то хотя бы вели бы себя так.\

Вот даже ты говоришь, "сделай это максимально правильно", хотя человеку выше ты предложил только :=, так что давайте без этого ребята.


Немного воды у вас много.
Вот так будет более лучше.
C++:
$~Enter::
if (isInChat() && !isDialogOpen())
  Sleep 200
  dwAddress := dwSAMP + 0x12D8F8
  chatInput := readString(hGTA, dwAddress, 256)
  {
    if(RegExMatch(chatInput, "/pinfo.(.*)", out)) {
      addChatMessage("{FF0000}Ник: {FFFFFF}" getPlayerNameById(out1) " {FF0000}Уровень: {FFFFFF}" getPlayerScoreById(out1))
    }
  }
return
Там не было спора и критики, просто небольшая поправка...

AutoHotKey:
#include samp-udf.ahk

F1::
Gg:
Sendinput, {alt down}
Sleep 200
Sendinput {alt up}
while (!isDialogOpen)
    continue
Sleep 200
Sendinput {enter}
Setdialogindex(1)
Sleep 50
Sendinput {enter}
while (!isDialogOpen)
    continue
Sleep 200
Sendinput {enter}
Goto Gg[/php]
Работать должен, но точно не знаю, косячно и ТД, но та мне кхм, ну вы поняли (это для тех кто цапается выше), писал с телефона просто, компа нету
Ты смеешься? Сделай получше, ты забыл Return на конце, да и цикл с помощью goto не акти вариант.

Код:
F1::
Act := !Act
SetTimer, Gk, % (Act ? "350", "off")
return

Gk:
Sendinput, {alt down}
Sleep 200
Sendinput {alt up}
while (!isDialogOpen)
    continue
Sleep 200
Sendinput {enter}
Setdialogindex(1)
Sleep 50
Sendinput {enter}
while (!isDialogOpen)
    continue
Sleep 200
Sendinput {enter}
return
 

madrasso

Потрачен
883
324
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Там не было спора и критики, просто небольшая поправка...


Ты смеешься? Сделай получше, ты забыл Return на конце, да и цикл с помощью goto не акти вариант.

Код:
F1::
Act := !Act
SetTimer, Gk, % (Act ? "350", "off")
return

Gk:
Sendinput, {alt down}
Sleep 200
Sendinput {alt up}
while (!isDialogOpen)
    continue
Sleep 200
Sendinput {enter}
Setdialogindex(1)
Sleep 50
Sendinput {enter}
while (!isDialogOpen)
    continue
Sleep 200
Sendinput {enter}
return

С телефона писал, сделал бы и лучше, а цикл вообще похуй какой, ему главное что бы было, а не быстро и т.д
 

WarGko

Известный
275
95
Там не было спора и критики, просто небольшая поправка...


Ты смеешься? Сделай получше, ты забыл Return на конце, да и цикл с помощью goto не акти вариант.

Код:
F1::
Act := !Act
SetTimer, Gk, % (Act ? "350", "off")
return

Gk:
Sendinput, {alt down}
Sleep 200
Sendinput {alt up}
while (!isDialogOpen)
    continue
Sleep 200
Sendinput {enter}
Setdialogindex(1)
Sleep 50
Sendinput {enter}
while (!isDialogOpen)
    continue
Sleep 200
Sendinput {enter}
return
У меня только первый диалог открывается и дальше не идет ничего
 

Cod

Участник
117
15
Помогите со скриптом. Нужно что бы он нажимал 1 раз альт выскочит диалоговое окно, потом нажмет ентер, потом стрелку вниз что бы выбрался второй пункт диалога и нажмет еще 2 раза ентер что бы принять выбор и закрыть еще один всплывающий диалог и это все зациклить.
Я не думаю, что это хорошая идея, ибо это обычно работает всегда криво.
C++:
#IfWinActive, GTA:SA:MP

F1::
{
  Loop {
    if (isInChat() && !isDialogOpen())
      Sleep, 50
      Send, {LAlt}
      Sleep, 100
      Send, {Enter}
      Sleep, 100
      Send, {Down}
      Sleep, 100
      Send, {Enter}
      Sleep, 100
      Send, {Enter}
    }
  }
return
 

WarGko

Известный
275
95
Я не думаю, что это хорошая идея, ибо это обычно работает всегда криво.
C++:
#IfWinActive, GTA:SA:MP

F1::
{
  Loop {
    if (isInChat() && !isDialogOpen())
      Sleep, 50
      Send, {LAlt}
      Sleep, 100
      Send, {Enter}
      Sleep, 100
      Send, {Down}
      Sleep, 100
      Send, {Enter}
      Sleep, 100
      Send, {Enter}
    }
  }
return
Я нашел более легкий способ, просто nbotom записал действия и зациклил
 

Revalto

Известный
532
225
С телефона писал, сделал бы и лучше, а цикл вообще похуй какой, ему главное что бы было, а не быстро и т.д
Вообще с циклом да, у каждого свои вкусы, я предоставил версию, которую можно включить/выключить, да и SetTimer более удобно использовать..

Я не думаю, что это хорошая идея, ибо это обычно работает всегда криво.
C++:
#IfWinActive, GTA:SA:MP

F1::
{
  Loop {
    if (isInChat() && !isDialogOpen())
      Sleep, 50
      Send, {LAlt}
      Sleep, 100
      Send, {Enter}
      Sleep, 100
      Send, {Down}
      Sleep, 100
      Send, {Enter}
      Sleep, 100
      Send, {Enter}
    }
  }
return
Проблема этой версии в том, что ты не рассчитываешь пинг, он нажмет клавишу даже тогда, когда диалога вовсе еще не открылся..
 

Andreykas1421

Новичок
47
0
Как сделать при прописывании команду к примеру /rang id , после этого игралась отыгровка и в конце вводилась команда /rang id
 

Cod

Участник
117
15
Как сделать при прописывании команду к примеру /rang id , после этого игралась отыгровка и в конце вводилась команда /rang id
Код:
$~Enter::
if (isInChat() && !isDialogOpen())
  Sleep 200
  dwAddress := dwSAMP + 0x12D8F8
  chatInput := readString(hGTA, dwAddress, 256)
  {
    if(RegExMatch(chatInput, "/rank.(.*)", out)) {
      ;Ваша отыгровка
       SendChat("/rang " out1)
    }
  }
return
 

RellaX

Известный
80
9
Как сделать при прописывании команду к примеру /rang id , после этого игралась отыгровка и в конце вводилась команда /rang id
PHP:
$~Enter::
if (isInChat() and !isDialogOpen())
{
    blockChatInput()
    while(isInChat())
        continue
    dwAddress := dwSAMP + 0x12D8F8
    chtext := readString(hGTA, dwAddress, 256)
    unBlockChatInput()
    if (RegExMatch(chtext, "i)^/rang\s([0-9]{1,3})$", params))
    {
        SendChat("/me RP")
        Sleep, 1001
        SendChat("/rang " params1 )
    }
    else
    {
        if (chtext)
        {
            SendChat(chtext)
        }
    }
}
Return
 

Alexandr Parker

Новичок
7
0
Здравствуйте, когда я ввожу в блокнот
Код:
#Include samp.ahk
:?/взмигрок::
ShowDialog("3", Взаимодействие с игроком", "1.Надеть наручники`n2.Посадить игрока в тюрьму.", "Закрыть")
Return
мне выдаёт ошибку:

Код:
Error at line 177
#Include file "samp.ahk" cannot be opened.
the program wil exit.
 
Последнее редактирование: