[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018 - Страница 8 - Форум Cheat-Master.ru
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018
Dworkin Дата: Пятница, 20.01.2017, 07:29 | Сообщение # 106
Боец
Сообщений: 110
Статус: Offline
Решил написать бота шахтера для арп. Заметил что тут нет такой функции.
getCameraCoordinates() - координаты вашей камеры
Код
getCameraCoordinates() {
    if(!checkHandles())
        return false

    fX := readFloat(hGTA, 0xB6F9CC)
    if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return ""
    }
    
    fY := readFloat(hGTA, 0xB6F9D0)
    if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return ""
    }
    
    fZ := readFloat(hGTA, 0xB6F9D4)
    if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return ""
    }
    
    ErrorLevel := ERROR_OK
    return [fX, fY, fZ]
}


Пример использования:
Код

mycamera := getCameraCoordinates()
camX := mycamera[1]
camY := mycamera[2]
camZ := mycamera[3]
msgbox, %camX% `n%camY% `n%camZ%


Сообщение отредактировал Dworkin - Пятница, 20.01.2017, 07:31
[CM]MurKotik Дата: Воскресенье, 22.01.2017, 02:42 | Сообщение # 107
Murkot Develop
Сообщений: 252
Статус: Offline
22.01.2017 | New - getCameraCoordinates() | Dworkin

-------------------

Ушёл в себя, вернусь поздно и пьяный!
Armadel Дата: Суббота, 04.02.2017, 20:25 | Сообщение # 108
Новичок
Сообщений: 19
Статус: Offline
Пожалуйста фиксаните краш, при открытии большого диалогга.
aknqkzxlcs Дата: Суббота, 04.02.2017, 21:35 | Сообщение # 109
Любитель
Сообщений: 33
Статус: Offline
должно быть полезно - редакция некоторых диалоговых функций, которые не работали
getDialogIndex() - возвращает индекс выбранной строки, начиная с 1
isDialogButtonSelected(номер кнопки = 1) - возвращает true, если кнопка была выделена/нажата. Номер кнопки может быть 1 или 2.
isDialogButton1Selected()
isDialogButton2Selected()

SAMP UDF (Yandex Disk)
Пример локального диалога.AHK (Yandex Disk)





Сообщение отредактировал aknqkzxlcs - Суббота, 04.02.2017, 21:40
CZAR Дата: Суббота, 04.02.2017, 23:24 | Сообщение # 110
Czar Of Scripts
Сообщений: 1373
Статус: Offline
getDialogLineNumber() - Замена getDialogIndex()
getsexbyskin(skin) - Выдает пол по иду скина (0 - Ошибка, 1 - Мужской, 2 - Женский)






Я в ВК
Ушел в веб.

• Ничего не покупаю.
• Способы не проверяю.


У меня теперь новый домен, если ссылка не работает - напишите.

Гарант Cheat-Master:
*тема*

AHK
[S-RP] House Finder / House Teleporter
[SAMP] Online Counter
[S-RP] [For Event] Show Star
[S-RP] AntiCasino
[S-RP] [BOT] Auto Fisher + Auto Find Worm + Auto Cook
[S-RP] [BOT] /dance
Winner | Делаем розыгрыши среди участников темы.
SAMP-UDF
[AHK Урок] Выбор в диалогах мышкой и enter`ом
[SAMP] Быстрый ответ на СМС
[ERP] Помощник для адвоката
[DRP] FakeTime

Достижения:
- 26.02.2017
- 03.01.2018
- 26.05.2018
- 22.09.2018
- 04.04.2019


Сообщение отредактировал Phoenixxx_Czar - Суббота, 04.02.2017, 23:25
fromysha Дата: Воскресенье, 05.02.2017, 13:27 | Сообщение # 111
Боец
Сообщений: 78
Статус: Offline
Цитата aknqkzxlcs ()
должно быть полезно - редакция некоторых диалоговых функций, которые не работали
getDialogIndex() - возвращает индекс выбранной строки, начиная с 1
isDialogButtonSelected(номер кнопки = 1) - возвращает true, если кнопка была выделена/нажата. Номер кнопки может быть 1 или 2.
isDialogButton1Selected()
isDialogButton2Selected()

Выбирается всегда только 1 строка


[SAMP RP] CLEO Criminal Checker (на худе) > http://cheat-master.ru/forum/129-708293-1
[CLEO] Авто замена текста в Диалогах и Чате > http://cheat-master.ru/forum/129-708561-1
CZAR Дата: Воскресенье, 05.02.2017, 20:13 | Сообщение # 112
Czar Of Scripts
Сообщений: 1373
Статус: Offline
fromysha, Используй мою функцию. С ней у всех все норм smile ps getDialogLineNumber()
Выше я выложил ее





Я в ВК
Ушел в веб.

• Ничего не покупаю.
• Способы не проверяю.


У меня теперь новый домен, если ссылка не работает - напишите.

Гарант Cheat-Master:
*тема*

AHK
[S-RP] House Finder / House Teleporter
[SAMP] Online Counter
[S-RP] [For Event] Show Star
[S-RP] AntiCasino
[S-RP] [BOT] Auto Fisher + Auto Find Worm + Auto Cook
[S-RP] [BOT] /dance
Winner | Делаем розыгрыши среди участников темы.
SAMP-UDF
[AHK Урок] Выбор в диалогах мышкой и enter`ом
[SAMP] Быстрый ответ на СМС
[ERP] Помощник для адвоката
[DRP] FakeTime

Достижения:
- 26.02.2017
- 03.01.2018
- 26.05.2018
- 22.09.2018
- 04.04.2019
shadystyle Дата: Воскресенье, 05.02.2017, 23:12 | Сообщение # 113
Новичок
Сообщений: 12
Статус: Offline
Цитата Phoenixxx_Czar ()
Используй мою функцию

GetDialogLineNumber() не твоя функция. Это я тебе ее в ЛС скинул. Если нужно будет, могу MurKotik'u док-ва кинуть, что это моя функция.


Сообщение отредактировал shadystyle - Воскресенье, 05.02.2017, 23:12
CZAR Дата: Понедельник, 06.02.2017, 00:07 | Сообщение # 114
Czar Of Scripts
Сообщений: 1373
Статус: Offline
shadystyle, Твоя функция работала на 14 строк. Моя функция работает на столько сколько влезит в диалог, при этом она оптимизирована. Да ты подтолкнул к этой функции, но почти 70% убрано. Есть еще вопросы?


Коротко:
Был быдлокод, я ее переделал и оптимизировал, но за идею реализации спасибо!





Я в ВК
Ушел в веб.

• Ничего не покупаю.
• Способы не проверяю.


У меня теперь новый домен, если ссылка не работает - напишите.

Гарант Cheat-Master:
*тема*

AHK
[S-RP] House Finder / House Teleporter
[SAMP] Online Counter
[S-RP] [For Event] Show Star
[S-RP] AntiCasino
[S-RP] [BOT] Auto Fisher + Auto Find Worm + Auto Cook
[S-RP] [BOT] /dance
Winner | Делаем розыгрыши среди участников темы.
SAMP-UDF
[AHK Урок] Выбор в диалогах мышкой и enter`ом
[SAMP] Быстрый ответ на СМС
[ERP] Помощник для адвоката
[DRP] FakeTime

Достижения:
- 26.02.2017
- 03.01.2018
- 26.05.2018
- 22.09.2018
- 04.04.2019


Сообщение отредактировал Phoenixxx_Czar - Понедельник, 06.02.2017, 00:11
aknqkzxlcs Дата: Понедельник, 06.02.2017, 12:31 | Сообщение # 115
Любитель
Сообщений: 33
Статус: Offline
Цитата fromysha ()
Выбирается всегда только 1 строка

ниже

Цитата shadystyle ()
Это я тебе ее в ЛС скинул

нужно было скидывать сюда, а не кому попало, если хотел, чтобы твоё имя было в списке

Добавлено (06.02.2017, 12:31)
---------------------------------------------
Цитата aknqkzxlcs ()
должно быть полезно

забудьте про этот пост, доработал

getDialogIndex() - возвращает индекс выбранной строки, начиная с 1
isDialogButtonSelected() - ховер на первую кнопку
isDialogButtonSelected(2) - ховер на вторую кнопку
так же работают isDialogButton1Selected() и isDialogButton2Selected()

Вставить в SAMP UDF:


Пример локального диалога. Работают: двойное нажатие по элементу списка, выбор нажатием по первой кнопке, выбор нажатием на Enter, отмена нажатием по второй кнопке.


info


Сообщение отредактировал aknqkzxlcs - Понедельник, 06.02.2017, 12:37
Miterew Дата: Понедельник, 06.02.2017, 20:48 | Сообщение # 116
Новичок
Сообщений: 7
Статус: Offline
У меня одного перестало работать getPlayerNameById после послед. обновления AHK?

Небольшой простенький код: getPlayerRpNameById(dwId) - выдает значение как getPlayerNameById(dwId), только в РП формате. Например не "Rams_Tord" а "Rams Tord".

Код

getPlayerRpNameById(dwId) {
    playernickname := getPlayerNameById(dwId)
    rpnicknemeforplayer := RegExReplace(playernickname,"_"," ")
    return rpnicknemeforplayer
}


Сообщение отредактировал Miterew - Понедельник, 06.02.2017, 20:53
aknqkzxlcs Дата: Вторник, 07.02.2017, 17:49 | Сообщение # 117
Любитель
Сообщений: 33
Статус: Offline
del

Сообщение отредактировал aknqkzxlcs - Вторник, 07.02.2017, 19:55
aknqkzxlcs_2 Дата: Пятница, 10.02.2017, 07:00 | Сообщение # 118
Новичок
Сообщений: 4
Статус: Offline
Цитата Miterew ()
Небольшой простенький код: getPlayerRpNameById(dwId)

такие функции пишутся непосредственно в скрипте
ну да ладно, тогда я тоже вставлю свою малополезную функу
set_player_armed_weapon_to(id оружия) - меняет оружие в руках на указанное путем перелистывания клавишей E (если указанного гана нет, то возвращает то, что было)
1:: set_player_armed_weapon_to(24) ;~ возьмет в руки дигл
2:: set_player_armed_weapon_to(25) ;~ возьмет в руки шот
3:: set_player_armed_weapon_to(31) ;~ возьмет в руки м4


Код
set_player_armed_weapon_to(weaponid)
{
    c := getPlayerWeaponId()
    WinGet, gtapid, List, GTA:SA:MP
    SendMessage, 0x50,, 0x4090409,, GTA:SA:MP
    Loop
    {
        ControlSend,, {E down}, ahk_id %gtapid1%
        Sleep, 5
        ControlSend,, {E up}, ahk_id %gtapid1%
        if(getPlayerWeaponId() == c || getPlayerWeaponId() == weaponid)
            break
    }
}
McFree_ Дата: Понедельник, 13.02.2017, 17:47 | Сообщение # 119
В рядах СМ.
Сообщений: 321
Статус: Offline
Не давно написал подобную функу:

Код

; CurZone[1] - Zone Name
; CurZone[2] - Zone ID
; CurZone[3] - Array of arrays points positions
; CurZone[3,1] - Array of thirst point position
; CurZone[3,1,1] - Zone X1
; CurZone[3,1,2] - Zone Y1
; CurZone[3,1,3] - Zone Z1
; CurZone[3,2] - Array of second point position
; CurZone[3,2,1] - Zone X2
; CurZone[3,2,2] - Zone Y2
; CurZone[3,2,3] - Zone Z2

getZoneByName(zName, ByRef CurZone ) {
     if ( bInitZaC == 0 )
    {
        initZonesAndCities()
        bInitZaC := 1
    }
        
    Loop % nZone-1
    {
        if (zone%A_Index%_name == zName)
        {
            ErrorLevel := ERROR_OK
            CurZone[1] :=  zone%A_Index%_name
            CurZone[2] := %A_Index%
            CurZone[3,1,1] := zone%A_Index%_x1
            CurZone[3,1,2] := zone%A_Index%_y1
            CurZone[3,1,3] := zone%A_Index%_z1
            CurZone[3,2,1] := zone%A_Index%_x2
            CurZone[3,2,2] := zone%A_Index%_y2
            CurZone[3,2,3] := zone%A_Index%_z2
            return true
        }
    }
    ErrorLevel := ERROR_ZONE_NOT_FOUND
    return "Unbekannt"
}


Добавлено (13.02.2017, 17:45)
---------------------------------------------
Miterew, советую лучше через SplitStr, быстрее отрабатывает и меньше затрат на отработку этой функции. Оптимизация так сказать.

Добавлено (13.02.2017, 17:47)
---------------------------------------------
shadystyle, Подтверждаю слова Феникса, Оптимизации 0, ограниченность строк и никакой практичности.


Помогаю новичкам!
По всем вопросам в ЛС!


Сообщение отредактировал McFree_ - Понедельник, 13.02.2017, 17:46
[CM]MurKotik Дата: Понедельник, 13.02.2017, 17:53 | Сообщение # 120
Murkot Develop
Сообщений: 252
Статус: Offline
13.10.2017 | New - getDialogLineNumber(), getsexbyskin(skin) | Phoenixxx_Czar
13.02.2017 | Rework - getDialogIndex(), isDialogButtonSelected(id Button) | aknqkzxlcs
13.02.2017 | New -set_player_armed_weapon_to(id оружия) | aknqkzxlcs
13.02.2017 | New - getZoneByName(zName), getCenterPointToZone(zName) | McFree


Стандартная isDialogButton1Selected() удалена а getDialogIndex() заменена на вариант aknqkzxlcs(_2), так же не добавлял функции isDialogButton1Selected() и isDialogButton2Selected() так как isDialogButtonSelected() заменяет их. Так же частично переводим документацию.

P.S Прошу прощения за столь долгое отсутствие smile


-------------------

Ушёл в себя, вернусь поздно и пьяный!


Сообщение отредактировал [CM]MurKotik - Понедельник, 13.02.2017, 17:54
Поиск:
Статистика Форума