[Non commerce] Бесплатное создание AHK скриптов

Статус
В этой теме нельзя размещать новые ответы.

ᴍ ᴜ x ᴜ ɪ

Заблокированный
Пользователь
Сообщения
73
Реакции
26
Баллы
0
Сервер
Emerald
Привет.
У тебя появилась идея, ты хочешь заказать AHK скрипт, но не хочешь платить?
Правильно, это не стоит денег. Я сделаю все твои заказы совершенно бесплатно.
Я — программист-энтузиаст, программирование для меня, как хобби.
Опыт написания скриптов — более пяти лет. Я смогу реализовать самые сложные системы, которые ты мог только представить.
В то время, как другие берут за написание AHK скриптов деньги — я же не вижу в этом никакого смысла.
Также, помимо AHK, помогу с написанием сайтов -
front-end, back-end (Python, Go, NodeJS, Lua, PHP 5.3-7.4), с настройкой серверов (VDS).


Что требуется для составления заказа? Просто оставь форму ниже:
• Твой ник/логин:
• Подробное описание скрипта (опиши все в деталях, как хотел бы видеть итоговый скрипт):
• Комментарии к скрипту:

Важно!
• Скрипт не должен давать преимущество другим игрокам
Не возьмусь делать биндеры по одной простой причине слишком нудное занятие.


Также, так как услуги абсолютно бесплатны все работы, конечно же, буду стараться выполнять в кратчайшие сроки, но в свободное от основной работы время. Надеюсь на взаимопонимание.
Также, по понятным на то причинам, я не могу оставить приватные примеры работ, которые выполнял для клиентов.
Но есть один паблик-класс на этом форуме [Framework for newbie] Callback класс для чтения чата

 
Последнее редактирование:

$.ASNIP.#KJ\\\\

Пользователь
Сообщения
534
Реакции
243
Баллы
0
Сервер
• Твой ник/логин: Соуп Рамирес
• Подробное описание скрипта (опиши все в деталях, как хотел бы видеть итоговый скрипт): Этот скрипт должен определять стоит рядом со мной игрок, если да то выводил его ИД ( это я знаю как делается), если нет то писали "Напарника нет" в SendShat
• Комментарии к скрипту: если можно объясни как это делается, через else или else if
 

ᴍ ᴜ x ᴜ ɪ

Заблокированный
Пользователь
Сообщения
73
Реакции
26
Баллы
0
Сервер
Emerald
• Твой ник/логин: Соуп Рамирес
• Подробное описание скрипта (опиши все в деталях, как хотел бы видеть итоговый скрипт): Этот скрипт должен определять стоит рядом со мной игрок, если да то выводил его ИД ( это я знаю как делается), если нет то писали "Напарника нет" в SendShat
• Комментарии к скрипту: если можно объясни как это делается, через else или else if
Куда должно писаться сообщние?
P.S. На счет if, else if разъясню чуть позже.
 

ᴍ ᴜ x ᴜ ɪ

Заблокированный
Пользователь
Сообщения
73
Реакции
26
Баллы
0
Сервер
Emerald
• Твой ник/логин: Соуп Рамирес
• Подробное описание скрипта (опиши все в деталях, как хотел бы видеть итоговый скрипт): Этот скрипт должен определять стоит рядом со мной игрок, если да то выводил его ИД ( это я знаю как делается), если нет то писали "Напарника нет" в SendShat
• Комментарии к скрипту: если можно объясни как это делается, через else или else if
Все, что было описано, сделал в addChatMessageEx()
JavaScript:
#SingleInstance, Force
#Persistent
#HotkeyInterval, 50

#If WinActive("GTA:SA:MP")

#Include, %A_ScriptDir%\UDF.ahk

!1::
{
    if (pid := getClosestPlayerId()) {
        addChatMessageEx(0xFFFFFF, "Твой напарник: " pid)
    } else {
        addChatMessageEx(0xFFFFFF, "У тебя нет напарника")
    }
}
return
Как работает if, else if:
JavaScript:
#CommentFlag, //
//Для начала объявим две переменные -- a и b
//Можно без static, static - статическая переменная, которая не изменяется
static a := 1
static b := 2


//if переводится с английского как "если", читаем - "если а больше b", тогда...
if (a > b) {
    //...выводим сообщение на экран
    MsgBox, % "Переменная a[" a "] больше переменной b[" b "]"
    //else if -- переводится как "иначе, если", читаем - "иначе, если а равно b", тогда...
} else if (a == b) {
    //...если же a равно b, то выводим следующее сообщение
    MsgBox, % "Переменная a[" a "] равна переменной b[" b "]"
    //else переводится как "иначе", читаем - "иначе"
} else {
    //иначе, если а не больше b, если а не равно b, просто выводим сообщение.
    //Иначе говоря, если же операнды а и b не равны двум условиям выше, то выводим это сообщение:
    MsgBox, % "Переменная a равна " a ", переменная b равна " b
}
 
Последнее редактирование:

$.ASNIP.#KJ\\\\

Пользователь
Сообщения
534
Реакции
243
Баллы
0
Сервер
Все, что было описано, сделал в addChatMessageEx()
JavaScript:
#SingleInstance, Force
#Persistent
#HotkeyInterval, 50

#If WinActive("GTA:SA:MP")

#Include, %A_ScriptDir%\UDF.ahk

!1::
{
    if (pid := getClosestPlayerId()) {
        addChatMessageEx(0xFFFFFF, "Твой напарник: " pid)
    } else {
        addChatMessageEx(0xFFFFFF, "У тебя нет напарника")
    }
}
return
Как работает if, else if:
JavaScript:
#CommentFlag, //
//Для начала объявим две переменные -- a и b
//Можно без static, static - статическая переменная, которая не изменяется
static a := 1
static b := 2


//if переводится с английского как "если", читаем - "если а больше b", тогда...
if (a > b) {
    //...выводим сообщение на экран
    MsgBox, % "Переменная a[" a "] больше переменной b[" b "]"
    //else if -- переводится как "иначе, если", читаем - "иначе, если а равно b", тогда...
} else if (a == b) {
    //...если же a равно b, то выводим следующее сообщение
    MsgBox, % "Переменная a[" a "] равна переменной b[" b "]"
    //else переводится как "иначе", читаем - "иначе"
} else {
    //иначе, если а не больше b, если а не равно b, просто выводим сообщение.
    //Иначе говоря, если же операнды а и b не равны двум условиям выше, то выводим это сообщение:
    MsgBox, % "Переменная a равна " a ", переменная b равна " b
}
Да, все верно, но, ты забыл что бы ид выводило с 1 до 1000 ( а не все время -1) нужно добавить такую строку:
if(pid!=-1){
Тобиш весь код
JavaScript:
#SingleInstance, Force
#Persistent
#HotkeyInterval, 50

#If WinActive("GTA:SA:MP")

#Include, %A_ScriptDir%\UDF.ahk

!1::
{
    if (pid := getClosestPlayerId())
        if(pid!=-1){
        addChatMessageEx(0xFFFFFF, "Твой напарник: " pid)
    } else {
        addChatMessageEx(0xFFFFFF, "У тебя нет напарника")
    }
}
return

Спасибо
 

coockie

Пользователь
Сообщения
57
Реакции
10
Баллы
0
Да, все верно, но, ты забыл что бы ид выводило с 1 до 1000 ( а не все время -1) нужно добавить такую строку:
if(pid!=-1){
Тобиш весь код
JavaScript:
#SingleInstance, Force
#Persistent
#HotkeyInterval, 50

#If WinActive("GTA:SA:MP")

#Include, %A_ScriptDir%\UDF.ahk

!1::
{
    if (pid := getClosestPlayerId())
        if(pid!=-1){
        addChatMessageEx(0xFFFFFF, "Твой напарник: " pid)
    } else {
        addChatMessageEx(0xFFFFFF, "У тебя нет напарника")
    }
}
return

Спасибо
if (pid := getClosestPlayerId())
Эта строка и проверяет, положительное число вернула функция (true), или -1 (false).
Тут нет никакой ошибки.
И у тебя как раз таки ошибка в воде - ты забыл закрыть фигурную скобку после добавления своей строки.
 

ᴍ ᴜ x ᴜ ɪ

Заблокированный
Пользователь
Сообщения
73
Реакции
26
Баллы
0
Сервер
Emerald
Да, все верно, но, ты забыл что бы ид выводило с 1 до 1000 ( а не все время -1) нужно добавить такую строку:
if(pid!=-1){
Тобиш весь код
JavaScript:
#SingleInstance, Force
#Persistent
#HotkeyInterval, 50

#If WinActive("GTA:SA:MP")

#Include, %A_ScriptDir%\UDF.ahk

!1::
{
    if (pid := getClosestPlayerId())
        if(pid!=-1){
        addChatMessageEx(0xFFFFFF, "Твой напарник: " pid)
    } else {
        addChatMessageEx(0xFFFFFF, "У тебя нет напарника")
    }
}
return

Спасибо
Тут не требуется строка if(pid!=-1){ (к тому же, не закрыл фигурную скобку).
Тут уже надо знать булевую алгебру.
В переменную pid вносится id ближайшего игрока, или -1
По правилам булевой алгербры - любое положительное число имеет булевый тип true, отрицательное - false
И мы делаем проверку -
Код:
if (pid := getClosestPlayerId()) {
    ;Если pid равен true, то обрабатывается этот участок кода.
}
 

$.ASNIP.#KJ\\\\

Пользователь
Сообщения
534
Реакции
243
Баллы
0
Сервер
• Твой ник/логин: Соуп Рамирес
• Подробное описание скрипта (опиши все в деталях, как хотел бы видеть итоговый скрипт): Этот скрипт должен выводить в SendChat ИД игрока на заданном расстоянии ( например в 1метре от меня), я пытался но что то не получилось
• Комментарии к скрипту: если можно объясни как это делается.
 

Mike Stepanyan

aka Mike Kowalski
Пользователь
Сообщения
37
Реакции
3
Баллы
0
Сервер
• Твой ник/логин: Соуп Рамирес
• Подробное описание скрипта (опиши все в деталях, как хотел бы видеть итоговый скрипт): Этот скрипт должен выводить в SendChat ИД игрока на заданном расстоянии ( например в 1метре от меня), я пытался но что то не получилось
• Комментарии к скрипту: если можно объясни как это делается.
Вот пример
C++:
!1::
loop 1000
{
        id := A_Index - 1
        if(!(pos := getPlayerPosById(id)) || id == getId())
        continue
        if(getDist(getCoordinates(), pos) > 200) ; 200, это радиус, указывай на какой хочешь
        continue
        nick := RegExReplace(getPlayerNameById(id), "_", " ")
        addChatMessageEx("{FFFFFF}","• {00FF00}AHK | {ffffff}Рядом с вами {ff0000}" nick "[" id "]")
        sleep, 100
    }
return
 

$.ASNIP.#KJ\\\\

Пользователь
Сообщения
534
Реакции
243
Баллы
0
Сервер
Вот пример
C++:
!1::
loop 1000
{
        id := A_Index - 1
        if(!(pos := getPlayerPosById(id)) || id == getId())
        continue
        if(getDist(getCoordinates(), pos) > 200) ; 200, это радиус, указывай на какой хочешь
        continue
        nick := RegExReplace(getPlayerNameById(id), "_", " ")
        addChatMessageEx("{FFFFFF}","• {00FF00}AHK | {ffffff}Рядом с вами {ff0000}" nick "[" id "]")
        sleep, 100
    }
return
Что значит "continue"?
 

ᴍ ᴜ x ᴜ ɪ

Заблокированный
Пользователь
Сообщения
73
Реакции
26
Баллы
0
Сервер
Emerald
Вот пример
C++:
!1::
loop 1000
{
        id := A_Index - 1
        if(!(pos := getPlayerPosById(id)) || id == getId())
        continue
        if(getDist(getCoordinates(), pos) > 200) ; 200, это радиус, указывай на какой хочешь
        continue
        nick := RegExReplace(getPlayerNameById(id), "_", " ")
        addChatMessageEx("{FFFFFF}","• {00FF00}AHK | {ffffff}Рядом с вами {ff0000}" nick "[" id "]")
        sleep, 100
    }
return
Как-то некультурно вмешиваться в чужую тему. Вы всегда можете создать свою.
Да и зачем так усложнять велосипед? Вы хотите перегрузить процессор игроку?

JavaScript:
global mypos := getCoordinates()

!1::callFuncForAllStreamedInPlayers("event", 200)

event(o) {
    return addChatMessageEx(0xFFFFFF, "Рядом с Вами: " o["NAME"] "[" o["ID"] "]. Дистанция - " getDist(mypos, o["POS"]) " м.")
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху