[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018 - Страница 20 - Форум Cheat-Master.ru
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018
sashasasha74 Дата: Среда, 16.08.2017, 14:36 | Сообщение # 286
Новичок
Сообщений: 7
Статус: Offline
Цитата [CM]MurKotik ()
[CM]MurKotik

Обнови ссылки все.
belyankin12 Дата: Суббота, 19.08.2017, 14:02 | Сообщение # 287
Боец
Сообщений: 69
Статус: Offline
Трабл с overlay возник. Подключил его, создал кусочек кода с текстом, жму кнопку и игра сразу вылетает, без ошибок. Отключил антивирус, ShadowPlay, гташку чистую поставил, вылетает так же. Использовал ANSI 32 bit AHK, попробовал 32 бит юникод, запускаю игру с включенным скриптом: один раз вылезла ошибка: ссылка, больше я её получить не смог. Потом уже игра вылетать перестала, сейчас уже просто ничего не показывает. АХК выполняется от имени админа, никаких фрапсов и тому подобного нету, чистый экран. Вот код:
Код
#IfWinActive GTA:SA:MP
SendMode Input
SetWorkingDir %A_ScriptDir%
#UseHook
#NoEnv
#SingleInstance force
#include %A_ScriptDir%\plugins\overlay.ahk
#include %A_ScriptDir%\plugins\SAMP-UDF-Developer.ahk
#include %A_ScriptDir%\plugins\AutoInfo.ahk
Dx9SetParam("use_window", "1")
Dx9SetParam("window", "GTA:SA:MP")
Dx9SetParam("process", "gta_sa.exe")
#include %A_ScriptDir%\plugins\AutoUse.ahk

!Я::
Anticrash()
fn := "Times New Roman"
date := "22.10.1999"
text_overlay := Dx9TextCreate(fn, 10, true, false, 20, 180, 0xFFFFFF00, date, false, true)
Dx9TextSetString(text_overlay, date)
return


Худ от McFree в .exe работает на ура, а я более чем уверен что там overlay api используется. Кто-то что-то может сказать по этому поводу?


Сообщение отредактировал belyankin12 - Суббота, 19.08.2017, 14:03
denial19 Дата: Среда, 23.08.2017, 11:40 | Сообщение # 288
Боец
Сообщений: 107
Статус: Offline
Цитата belyankin12 ()
Худ от McFree в .exe работает на ура, а я более чем уверен что там overlay api используется. Кто-то что-то может сказать по этому поводу?

https://yadi.sk/d/hoaq3bTS3MFeaP для тебя из его Худа вырезал UDF его + Overlay.
belyankin12 Дата: Среда, 23.08.2017, 13:16 | Сообщение # 289
Боец
Сообщений: 69
Статус: Offline
Да! Работает! Ёпэрэсэтэ, спасибо!
Joni228 Дата: Понедельник, 28.08.2017, 15:51 | Сообщение # 290
Бывалый
Сообщений: 314
Статус: Offline
Кто знает, как узнать находится ли мой персанаж в такой то анимации?

Допустим если мой игрок находился в анимке 347 и резко стал в анимку 0
То произойдут какие либо действия, кто знает как сделать?


belyankin12 Дата: Понедельник, 28.08.2017, 18:35 | Сообщение # 291
Боец
Сообщений: 69
Статус: Offline
залупить, ну.. заloopить)
aknqkzxlcs_21 Дата: Вторник, 29.08.2017, 22:23 | Сообщение # 292
Боец
Сообщений: 57
Статус: Offline
открыл случайно, хотите - допишите сами до полноценной смены скина, ну а мне лень
меняет скин на сиджея, на срп not work, использование - просто CJ()

Код
CJ()
{
    if(!checkHandles())
        return false
    SIZE := 5
    dwFunc := dwSAMP + 0x15860
    offset := dwFunc - (pInjectFunc + SIZE)
    VarSetCapacity(inject, SIZE + 1, 0)
    NumPut(0xE8, inject, 0, "UChar") ; call
    NumPut(offset, inject, 1, "Int")
    NumPut(0xC3, inject, 5, "UChar") ; ret
    writeRaw(hGTA, pInjectFunc, &inject, SIZE + 1)
    hThread := createRemoteThread(hGTA, 0, 0, pInjectFunc, 0, 0, 0)
    waitForSingleObject(hThread, 0xFFFFFFFF)
    closeProcess(hThread)
    return true
}


проверяет подключен ли игрок к серверу, заменяет большие конструкции с getPlayerNameById(id) != "" и getPlayerIdByName(name) != -1
использование - IsPlayerConnected(id или ник)
Код
IsPlayerConnected(player) {
    if (player is integer) and player >= 0 and player <= 999
        return (getPlayerNameById(player) != "")
    return (getPlayerIdByName(player) != -1)
}


Сообщение отредактировал aknqkzxlcs_21 - Среда, 30.08.2017, 16:29
Martin_Self Дата: Четверг, 31.08.2017, 21:32 | Сообщение # 293
Новичок
Сообщений: 6
Статус: Offline
Помогите пожалуйста!
Как создать диалоговое окно со списком, выбираешь 1 строку там одно действие, выбираешь 2 строку там другое действие

Все форумы облазил ни где не нашёл
Пожалуйста напишите пример кода по вашему samp udf'u


Сообщение отредактировал Martin_Self - Пятница, 01.09.2017, 00:26
CZAR Дата: Пятница, 01.09.2017, 02:46 | Сообщение # 294
Czar Of Scripts
Сообщений: 1373
Статус: Offline
Martin_Self, в подпись мою загляни.




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

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


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

Гарант 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
Dentotalwar Дата: Суббота, 02.09.2017, 12:48 | Сообщение # 295
Новичок
Сообщений: 10
Статус: Offline
Спасибки за перевод, очень помогло)
aknqkzxlcs_21 Дата: Понедельник, 04.09.2017, 15:49 | Сообщение # 296
Боец
Сообщений: 57
Статус: Offline
возвращает модель (не ид) оружия, которое находится в руках у другого игрока
Код
getTargetPlayerWeaponModel(player) ; dwPed or playerid
{
    if(!checkHandles())
        return 0
    if (player is integer) and (player >= 0) and (player <= 999)
        player := getPedById(player)
    if(!player)
        return 0
    model := readMem(hGTA, player + 0x740, 2, "byte")
    if(model == 65535)
        return 0
    return model
}


хп/броня удаленного игрока
Код
getTargetPlayerHealth(player) ; dwPed or playerid
{
    if(!checkHandles())
        return 0
    if (player is integer) and (player >= 0) and (player <= 999)
        player := getPedById(player)
    if(!player)
        return 0
    return readMem(hGTA, player + 0x540, 2, "byte")
}

getTargetPlayerArmour(player) ; dwPed or playerid
{
    if(!checkHandles())
        return 0
    if (player is integer) and (player >= 0) and (player <= 999)
        player := getPedById(player)
    if(!player)
        return 0
    return readMem(hGTA, player + 0x548, 2, "byte")
}


Сообщение отредактировал aknqkzxlcs_21 - Понедельник, 04.09.2017, 15:50
[CM]MurKotik Дата: Вторник, 05.09.2017, 19:10 | Сообщение # 297
Murkot Develop
Сообщений: 252
Статус: Offline
aknqkzxlcs_21, +, Из за проблем с доступом к Яндекс диску не могу обновить ссылки, так же samp-dop function, дабы такого в будущем не было переместил на другой хост.

Добавлено (05.09.2017, 19:10)
---------------------------------------------
Coockie, Return's parameter should be blank except inside a function.


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

Ушёл в себя, вернусь поздно и пьяный!
Dworkin Дата: Пятница, 08.09.2017, 02:25 | Сообщение # 298
Боец
Сообщений: 110
Статус: Offline
Не помню откуда у меня эта функция.
IsLineOfSightClear(startX,startY,startZ,endX,endY,endZ,bCheckBuildings, bCheckVehicles, bCheckPeds, bCheckObjects, bCheckDummies, bSeeThroughStuff, bIgnoreSomeObjectsForCamera)- определяет нет ли между двумя точками объектов.
bCheckBuildings, bCheckVehicles, bCheckPeds, bCheckObjects, bCheckDummies, bSeeThroughStuff, bIgnoreSomeObjectsForCamera - ставите 1 или 0.
Например вы знаете что между точками есть здание. Если bCheckBuildings сделаете 1 то функция вернет 0 так как есть препятсвие. Если поставити 0 то функция вернет 1 то есть как будто между точками нет препятствия.
Код
IsLineOfSightClear(startX,startY,startZ,endX,endY,endZ,bCheckBuildings, bCheckVehicles, bCheckPeds, bCheckObjects, bCheckDummies, bSeeThroughStuff, bIgnoreSomeObjectsForCamera) {
    if(!checkHandles())
        return 0
    dwFunc := 0x56A490  
    dwLen := 59
    VarSetCapacity(injectData, dwLen, 0)
    ; buffer für die 2 Positionen erstellen
    ; 3*float = 12 *2  
    VarSetCapacity(vectors, 24, 0)
    NumPut(startX, vectors, 0, "Float")
    NumPut(startY, vectors, 4, "Float")
    NumPut(startZ, vectors, 8, "Float")
    NumPut(endX, vectors, 12, "Float")
    NumPut(endY, vectors, 16, "Float")
    NumPut(endZ, vectors, 20, "Float")
    ; Vectoren in den reservierten Bereich schreiben, damit darauf zugegriffen werden kann
    writeRaw(hGTA, pParam1, &vectors, 24)
    ; push
    NumPut(0x68, injectData, 0, "UChar")
    NumPut(bIgnoreSomeObjectsForCamera, injectData, 1, "UInt")
    NumPut(0x68, injectData, 5, "UChar")
    NumPut(bSeeThroughStuff, injectData, 6, "UInt")
    NumPut(0x68, injectData, 10, "UChar")
    NumPut(bCheckDummies, injectData, 11, "UInt")
    NumPut(0x68, injectData, 15, "UChar")
    NumPut(bCheckObjects, injectData, 16, "UInt")
    NumPut(0x68, injectData, 20, "UChar")
    NumPut(bCheckPeds, injectData, 21, "UInt")
    NumPut(0x68, injectData, 25, "UChar")
    NumPut(bCheckVehicles, injectData, 26, "UInt")
    NumPut(0x68, injectData, 30, "UChar")
    NumPut(bCheckBuildings, injectData, 31, "UInt")
    NumPut(0x68, injectData, 35, "UChar")
    NumPut(pParam1+12, injectData, 36, "UInt")
    NumPut(0x68, injectData, 40, "UChar")
    NumPut(pParam1, injectData, 41, "UInt")
    ; call
    NumPut(0xE8, injectData, 45, "UChar")
    offset := dwFunc - (pInjectFunc + 50)
    NumPut(offset, injectData, 46, "UInt")
    ; Rückgabewert
    NumPut(0xA2, injectData, 50, "UChar")
    NumPut(pParam2, injectData, 51, "UInt")
    ; add esp 0x24
    NumPut(0xC483, injectData, 55, "UShort")
    NumPut(0x24, injectData, 57, "UChar")
    NumPut(0xC3, injectData, 58, "UChar")
    writeRaw(hGTA, pInjectFunc, &injectData, dwLen)
    if(ErrorLevel)
        return 0
    hThread := createRemoteThread(hGTA, 0, 0, pInjectFunc, 0, 0, 0)
    if(ErrorLevel)
        return 0
    waitForSingleObject(hThread, 0xFFFFFFFF)
    closeProcess(hThread)
    return (readDWORD(hGTA, pParam2) ? 1 : 0)
}

Пример:
Определим находится ли враг в зоне видимости относительно нас.
Код
var := isLineOfSightClear(EnemyposX, EnemyposY, EnemyposZ, MyX, MyY, MyZ,1, 0, 0, 1, 0, 0, 0)
msgbox % var


IsPlayerVisible(ped) - находится ли пед у вас в зоне экрана(вышей камеры) даже если он за объектами.
Код
IsPlayerVisible(ped)
{
    If(!checkHandles())
       return false
    dwFunc := 0x536BC0
    dwLen := 16
    VarSetCapacity(injectData, dwLen, 0)         
    NumPut(0xB9, injectData, 0, "UChar")    ;mov ecx   
    NumPut(ped, injectData, 1, "UInt")   
    NumPut(0xE8, injectData, 5, "UChar")    ;call   
    offset := dwFunc - (pInjectFunc + 10)
    NumPut(offset, injectData, 6, "Int")
    ; return value
    NumPut(0xA2, injectData, 10, "UChar") ; mov bReturn, al
    NumPut(pParam1, injectData, 11, "Int")
    NumPut(0xC3, injectData, 15, "UChar") ; retn
    writeRaw(hGTA, pInjectFunc, &injectData, dwLen)
    hThread := createRemoteThread(hGTA, 0, 0, pInjectFunc, 0, 0, 0)
    waitForSingleObject(hThread, 0xFFFFFFFF)
    closeProcess(hThread)
    return readMem(hGTA, pParam1, 1, "UChar")
}


Сообщение отредактировал Dworkin - Пятница, 08.09.2017, 02:34
[CM]MurKotik Дата: Пятница, 08.09.2017, 09:47 | Сообщение # 299
Murkot Develop
Сообщений: 252
Статус: Offline
Dworkin, Полезніе нештяки smile Добавил!

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

Ушёл в себя, вернусь поздно и пьяный!
WinFakt Дата: Суббота, 09.09.2017, 11:55 | Сообщение # 300
Новичок
Сообщений: 5
Статус: Offline
Если я использую самп аддон, который позволяет мне не уходить в афк при сворачивании игры я могу взаимодействовать с сервером при помощи команды SendChat будучи не в игре. Можно ли как-нибуть взаимодействовать с диалоговыми окнами таким же образом, тоесть писать текст в диалоговом окне и нажимать его кнопки при свернутой игре?
Поиск:
Статистика Форума