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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|