[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018
|
|
fromysha |
Дата: Суббота, 04.03.2017, 11:39 | Сообщение # 136
|
Боец
Сообщений: 78
Статус: Offline
|
Через API выводится только английский текст, вместо русского типа пробелы Если у вас получилось вывести русский текст на экран, код пожалуйста дайте)
[SAMP RP] CLEO Criminal Checker (на худе) > http://cheat-master.ru/forum/129-708293-1 [CLEO] Авто замена текста в Диалогах и Чате > http://cheat-master.ru/forum/129-708561-1
|
|
|
|
McFree_ |
Дата: Суббота, 04.03.2017, 13:16 | Сообщение # 137
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
fromysha, при помощи наддного API можно выводить лишь латинские символы. Если бы можно было выводить кириллицу то я бы уже давно сделал полноценный интерфейс на AHK )
Помогаю новичкам! По всем вопросам в ЛС!
|
|
|
|
itraller |
Дата: Суббота, 04.03.2017, 17:29 | Сообщение # 138
|
Новичок
Сообщений: 15
Статус: Offline
|
Цитата [CM]MurKotik ( ) Де вы дели эту функу я добавить даж не успел ) то работает, то не работает, решил убрать
Цитата [CM]MurKotik ( ) itraller, Исправил getPlayerAnim() и ник. че там? помню setplayername баганая была
можно выводить русский текст, просто с кодировкой нужно повозиться будет
Список новых функций: toggleUnlimitedAmmo() - бесконечные патроны toggleNoReload() - стрельба без перезарядки toggleNoRecoil() - стрельба без отдачи toggleAntiBikeFall() - не падать с байка toggleAntiCarEject() - вас не могут выкинуть из машины toggleNoAnimations() - анимации не отображаются toggleObjectDrawMode() - курсор для отображения информации о streamer объектах на сервере toggleMotionBlur() - размытость при движении на большой скорости как в сингле writeBytes(hProcess, dwAddress, bytes) - записать несколько байтов по адресу (служебная функция)
Применимо к каждой функции: toggleNoReload() - вкл/выкл режим стрельбы без перезарядки toggleNoReload(true) - включить режим стрельбы без перезарядки
Параметры функции: не указывать = вкл/выкл true или 1 = включить false или 0 = выключить
Возвращаемые значения: true = выполнено и включено false = выполнено и отключено -1 = ошибка
Пример использования:
Код ^1:: addChatMessageEx(0xffffff, "unlimited ammo " (toggleUnlimitedAmmo() ? "{00dd00}enabled" : "{dd0000}disabled")) ^2:: addChatMessageEx(0xffffff, "no reload " (toggleNoReload() ? "{00dd00}enabled" : "{dd0000}disabled")) ^3:: addChatMessageEx(0xffffff, "no recoil " (toggleNoRecoil() ? "{00dd00}enabled" : "{dd0000}disabled")) ^4:: addChatMessageEx(0xffffff, "anti bike fall " (toggleAntiBikeFall() ? "{00dd00}enabled" : "{dd0000}disabled"))
Код toggleUnlimitedAmmo(tog := -1) { if(!checkHandles()) return -1 byte := readMem(hGTA, 0x7428E6, 1, "byte") if((tog == -1 && byte == 255) || tog == true || tog == 1) { writeBytes(hGTA, 0x7428E6, "909090") return true } else if((tog == -1 && byte == 144) || !tog) { writeBytes(hGTA, 0x7428E6, "FF4E0C") return false } addChatMessageEx(0xCC0000, "only for gta_sa.exe 1.0 us") return -1 }
toggleNoReload(tog := -1) { if(!checkHandles()) return -1 byte := readMem(hGTA, 0x7428B0, 1, "byte") if((tog == -1 && byte == 137) || tog == true || tog == 1) { writeBytes(hGTA, 0x7428B0, "909090") return true } else if((tog == -1 && byte == 144) || !tog) { writeBytes(hGTA, 0x7428B0, "894608") return false } addChatMessageEx(0xCC0000, "only for gta_sa.exe 1.0 us") return -1 }
toggleNoRecoil(tog := -1) { if(!checkHandles()) return -1 byte := readMem(hGTA, 0x740450, 1, "byte") if((tog == -1 && byte == 216) || tog == true || tog == 1) { writeBytes(hGTA, 0x740450, "90909090909090909090") return true } else if((tog == -1 && byte == 144) || !tog) { writeBytes(hGTA, 0x740450, "D80D3C8B8500D84C241C") return false } addChatMessageEx(0xCC0000, "only for gta_sa.exe 1.0 us") return -1 }
toggleAntiBikeFall(tog := -1) { if(!checkHandles()) return -1 byte := readMem(hGTA, 0x4BA3B9, 1, "byte") if((tog == -1 && byte == 15) || tog == true || tog == 1) { writeBytes(hGTA, 0x4BA3B9, "E9A703000090") return true } else if((tog == -1 && byte == 233) || !tog) { writeBytes(hGTA, 0x4BA3B9, "0F84A6030000") return false } addChatMessageEx(0xCC0000, "only for gta_sa.exe 1.0 us") return -1 }
toggleAntiCarEject(tog := -1) { if(!checkHandles()) return -1 byte := readMem(hGTA, dwSAMP + 0x146E0, 1, "byte") if((tog == -1 && byte == 233) || tog == true || tog == 1) { writeBytes(hGTA, dwSAMP + 0x146E0, "C390909090") return true } else if((tog == -1 && byte == 195) || !tog) { writeBytes(hGTA, dwSAMP + 0x146E0, "E9D7722700") return false } return -1 }
toggleNoAnimations(tog := -1) { if(!checkHandles()) return -1 byte := readMem(hGTA, dwSAMP + 0x16FA0, 1, "byte") if((tog == -1 && byte == 85) || tog == true || tog == 1) { writeMemory(hGTA, dwSAMP + 0x16FA0, 0xC3, 1, "byte") return true } else if((tog == -1 && byte == 195) || !tog) { writeMemory(hGTA, dwSAMP + 0x16FA0, 0x55, 1, "byte") return false } return -1 }
toggleObjectDrawMode(tog := -1) { if(!checkHandles()) return -1 byte := readMem(hGTA, dwSAMP + 0x69529, 1, "byte") if((tog == -1 && byte == 15) || tog == true || tog == 1) { writeBytes(hGTA, dwSAMP + 0x69529, "909090909090") return true } else if((tog == -1 && byte == 144) || !tog) { writeBytes(hGTA, dwSAMP + 0x69529, "0F84AE000000") return false } return -1 }
toggleMotionBlur(tog := -1) { if(!checkHandles()) return -1 byte := readMem(hGTA, 0x704E8A, 1, "byte") if((tog == -1 && byte == 144) || tog == true || tog == 1) { writeBytes(hGTA, 0x704E8A, "E811E2FFFF") return true } else if((tog == -1 && byte == 232) || !tog) { writeBytes(hGTA, 0x704E8A, "9090909090") return false } addChatMessageEx(0xCC0000, "only for gta_sa.exe 1.0 us") return -1 }
writeBytes(handle, address, bytes) { length := strlen(bytes) / 2 VarSetCapacity(toInject, length, 0) Loop %length% { byte := "0x" substr(bytes, ((A_Index - 1) * 2) + 1, 2) NumPut(byte, toInject, A_Index - 1, "uchar") } return writeRaw(handle, address, &toInject, length) }
aknqkzxlcs
Сообщение отредактировал itraller - Суббота, 04.03.2017, 18:49 |
|
|
|
Artur_iOS |
Дата: Суббота, 04.03.2017, 18:05 | Сообщение # 139
|
Боец
Сообщений: 94
Статус: Offline
|
itraller, Воу, воу полегче
|
|
|
|
[CM]MurKotik |
Дата: Суббота, 04.03.2017, 23:01 | Сообщение # 140
|
Murkot Develop
Сообщений: 252
Статус: Offline
|
itraller, Добавил все - попотел хорошо - красава
-------------------
Ушёл в себя, вернусь поздно и пьяный!
|
|
|
|
slavawar |
Дата: Воскресенье, 05.03.2017, 07:12 | Сообщение # 141
|
Проверенный
Сообщений: 172
Статус: Offline
|
itraller, Открой секрет, где нашел функи?
Мои темы: [AHK] Шифратор текста [AHK] Акцент 3 в 1 [C#] Генератор RP ников
|
|
|
|
itraller |
Дата: Воскресенье, 05.03.2017, 09:29 | Сообщение # 142
|
Новичок
Сообщений: 15
Статус: Offline
|
Цитата [CM]MurKotik ( ) itraller, Добавил все - попотел хорошо - красава та я не попотел) все адреса можно найти в просторах интернета, я только запилил с ними простенькие функи
Цитата slavawar ( ) itraller, Открой секрет, где нашел функи? функции нигде, адреса взял из asm инжектора у LuxXx, там же, где и ты нашел nodmgbyweapon, который не работает на 0.3.7 injector_037.ahk
toggleNoDamageByWeapon() - вкл/выкл невосприимчивость к пулям, без gm patch в samp 0.3.7 не работает toggleInfiniteRun() - вкл/выкл бесконечный бег gmpatch() - by FYP, отключает встроенный клиентский античит на бессмертие, деактивация пока что не предусмотрена (лень) хз, работает или нет, не проверял
Код toggleNoDamageByWeapon(tog := -1) { if(!checkHandles()) return -1 byte := readMem(hGTA, 0x60A5BA, 1, "byte") if((tog == -1 && byte == 216) || tog == true || tog == 1) { writeBytes(hGTA, 0x60A5BA, "909090") return true } else if((tog == -1 && byte == 144) || !tog) { writeBytes(hGTA, 0x60A5BA, "D95E18") return false } addChatMessageEx(0xCC0000, "only for gta_sa.exe 1.0 us") return -1 }
toggleInfiniteRun(tog := -1) { if(!checkHandles()) return -1 byte := readMem(hGTA, 0x60A5BA, 1, "byte") if((tog == -1 && byte == 217) || tog == true || tog == 1) { writeBytes(hGTA, 0x4B3314, "909090") return true } else if((tog == -1 && byte == 144) || !tog) { writeBytes(hGTA, 0x4B3314, "D86504") return false } addChatMessageEx(0xCC0000, "only for gta_sa.exe 1.0 us") return -1 }
gmpatch() { if(!checkHandles()) return false a := writeMemory(hGTA, 0x4B35A0, 0x560CEC83, 4, "int") b := writeMemory(hGTA, 0x4B35A4, 0xF18B, 2, "byte") return (a && b) }
aknqkzxlcs
Сообщение отредактировал itraller - Воскресенье, 05.03.2017, 11:20 |
|
|
|
fromysha |
Дата: Понедельник, 06.03.2017, 17:27 | Сообщение # 143
|
Боец
Сообщений: 78
Статус: Offline
|
В dx9_overlay функкций больше чем сейчас в этом UDF, можете добавить и API обновить?
[SAMP RP] CLEO Criminal Checker (на худе) > http://cheat-master.ru/forum/129-708293-1 [CLEO] Авто замена текста в Диалогах и Чате > http://cheat-master.ru/forum/129-708561-1
|
|
|
|
McFree_ |
Дата: Вторник, 07.03.2017, 04:32 | Сообщение # 144
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
fromysha, посмотрим, переберу dx9_overlay и скину коту готовый код
Помогаю новичкам! По всем вопросам в ЛС!
|
|
|
|
darkwest |
Дата: Среда, 08.03.2017, 13:21 | Сообщение # 145
|
Любитель
Сообщений: 45
Статус: Offline
|
Ребят, кто шарит) Подскажите если ли функции для анк 1.Получить информацию о 3D тексте 2.Взять пикап с расстояния 3.Сделать так, чтобы игрок бежал на определённые координаты Спасибо)
|
|
|
|
McFree_ |
Дата: Среда, 08.03.2017, 13:46 | Сообщение # 146
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
все это реализуемо но не одной функцией
Помогаю новичкам! По всем вопросам в ЛС!
Сообщение отредактировал McFree_ - Среда, 08.03.2017, 13:46 |
|
|
|
aknqkzxlcs_4 |
Дата: Четверг, 09.03.2017, 20:18 | Сообщение # 147
|
Любитель
Сообщений: 40
Статус: Offline
|
isPlayerCrouch() возвращает 1 / true = если игрок сидит возвращает 0 / false = если игрок стоит -1 = ошибка, либо игрок не заспавнен
setDialogState(0) - скрыть диалог setDialogState(1) - отобразить скрытый диалог
blurlevel() - возвращает текущий уровень размытости от 0 до 255 (по умолчанию 36) blurlevel(36) - задает уровень размытости
Edit toggleObjectDrawMode() - при отключении мышка теперь скрывается (нубо способом, но хоть работает)
Код isPlayerCrouch() { if(!checkHandles()) return -1 if(!CPed := readDWORD(hGTA, ADDR_CPED_PTR)) return -1 state := readMem(hGTA, CPed + 0x46F, 1, "byte") if(state == 132) return 1 if(state == 128) return 0 return -1 }
setDialogState(tog) { if(!checkHandles()) return false dwPointer := getDialogStructPtr() if(ErrorLevel || !dwPointer) return false writeMemory(hGTA, dwPointer + 0x28, (tog ? 1 : 0), 1, "byte") if(!tog) Send {f6}{esc} return true }
toggleObjectDrawMode(tog := -1) { if(!checkHandles()) return -1 byte := readMem(hGTA, dwSAMP + 0x69529, 1, "byte") if((tog == -1 && byte == 15) || tog == true || tog == 1) { writeBytes(hGTA, dwSAMP + 0x69529, "909090909090") return true } else if((tog == -1 && byte == 144) || !tog) { writeBytes(hGTA, dwSAMP + 0x69529, "0F84AE000000") Send {f6}{esc} return false } return -1 }
blurlevel(level := -1) { if(!checkHandles()) return -1 if level between 0 and 255 writeMemory(hGTA, 0x8D5104, level, 1, "byte") blur := readMem(hGTA, 0x8D5104, 1, "byte") return blur }
Добавлено (09.03.2017, 20:18) --------------------------------------------- getWeaponAmmo(аргументы)
Аргументы: [1] Ammo - возвращает в переменную общее количество патрон [2] Clip (необязательный) - возвращает в переменную количество патрон в магазине [3] Slot (необязательный) - если не указан, то возвращает патроны текущего оружия, иначе патроны из указанного слота (2 - пистолеты, 3 - дробовики, подробнее тут)
Возвращаемое значение - общее количество патрон
Пример:
Код ^1:: ; патроны текущего оружия getWeaponAmmo(ammo, clip) addChatMessageEx(0xFFFFFF, getPlayerWeaponName() ": " clip "-" ammo) ; патроны пистолета getWeaponAmmo(ammo, clip, 2) addChatMessageEx(0xFFFFFF, "pistol: " clip "-" ammo) ammo := getWeaponAmmo() ; так тоже можно (патроны текущего) return
Код getWeaponAmmo(ByRef Ammo := "", ByRef Clip := "", slot := -1) { if(!checkHandles()) return -1 if(!CPed := readDWORD(hGTA, ADDR_CPED_PTR)) return -1 if slot not between 0 and 12 { VarSetCapacity(slot, 1) DllCall("ReadProcessMemory", "UInt", hGTA, "UInt", CPed + 0x718, "Str", slot, "UInt", 1, "UInt*", 0) slot := NumGet(slot, 0, "short") if slot >= 12544 slot -= 12544 } struct := CPed + 0x5AC VarSetCapacity(Ammo, 4) VarSetCapacity(Clip, 4) DllCall("ReadProcessMemory", "UInt", hGTA, "UInt", struct + (0x1C * slot), "Str", Ammo, "UInt", 4, "UInt*", 0) DllCall("ReadProcessMemory", "UInt", hGTA, "UInt", struct + (0x1C * slot) - 0x4, "Str", Clip, "UInt", 4, "UInt*", 0) Ammo := NumGet(Ammo, 0, "int") Clip := NumGet(Clip, 0, "int") return Ammo }
getWeaponSlotById(id) { if id between 2 and 9 slot := 1 if id between 10 and 15 slot := 10 if id in 16,17,18,39 slot := 8 if id between 22 and 24 slot := 2 if id between 25 and 27 slot := 3 if id in 28,29,32 slot := 4 if id in 30,31 slot := 5 if id in 33,34 slot := 6 if id between 35 and 38 slot := 7 if id == 40 slot := 12 if id between 41 and 43 slot := 9 if id between 44 and 46 slot := 11 }
Сообщение отредактировал aknqkzxlcs_4 - Четверг, 09.03.2017, 20:37 |
|
|
|
Godarck |
Дата: Пятница, 10.03.2017, 23:52 | Сообщение # 148
|
AHK Скриптер
Сообщений: 252
Статус: Offline
|
Цитата aknqkzxlcs_4 ( ) toggleObjectDrawMode() По идее вернуть камеру на мушку у меня всегда удавалось открытием меню TAB.
Бесплатный и новый бот рыбалки для GTA V RP GunList для GTA V RP - писать в ЛС Fake Time для GTA V RP
|
|
|
|
[CM]Толстый |
Дата: Суббота, 11.03.2017, 16:06 | Сообщение # 149
|
Бывалый
Сообщений: 407
Статус: Offline
|
Цитата McFree_ ( ) все это реализуемо но не одной функцией Так может кто-то тогда запилит урок, хотя бы по работе с 3D текстами? Было бы очень полезно!
|
|
|
|
Ghost29 |
Дата: Воскресенье, 12.03.2017, 13:06 | Сообщение # 150
|
Новичок
Сообщений: 23
Статус: Offline
|
Код global SAMP_KILLSTAT_OFFSET := 0x21A0EC togglekillstat(state) ;переключает киллстат. 1 - вкл, 0 - выкл { if(!checkHandles()) return false dwKillptr := readDWORD(hGTA, dwSAMP + SAMP_KILLSTAT_OFFSET) if(ErrorLevel || dwKillptr == 0) { ErrorLevel := ERROR_READ_MEMORY return false } Memory_writebyte(hGTA, dwKillptr, state) if(ErrorLevel) { ErrorLevel := ERROR_WRITE_MEMORY return -1 } return true }
setkillstatwidth(width) ;ширина между строками киллстата { if(!checkHandles()) return false dwKillptr := readDWORD(hGTA, dwSAMP + SAMP_KILLSTAT_OFFSET) if(ErrorLevel || dwKillptr == 0) { ErrorLevel := ERROR_READ_MEMORY return false } Memory_writebyte(hGTA, dwKillptr + 0x133, width) if(ErrorLevel) { ErrorLevel := ERROR_WRITE_MEMORY return false } return true } movekillstat(x) ;двигает киллстат по Х { if(!checkHandles()) return false dwKillptr := readDWORD(hGTA, dwSAMP + SAMP_KILLSTAT_OFFSET) if(ErrorLevel || dwKillptr == 0) { ErrorLevel := ERROR_READ_MEMORY return false } Memory_writebyte(hGTA, dwKillptr + 0x12B, x) if(ErrorLevel) { ErrorLevel := ERROR_WRITE_MEMORY return false } return true }
setdistkillstat(int) ; расстояние между правым столбиком и иконкой гана { if(!checkHandles()) return false dwKillptr := readDWORD(hGTA, dwSAMP + SAMP_KILLSTAT_OFFSET) if(ErrorLevel || dwKillptr == 0) { ErrorLevel := ERROR_READ_MEMORY return false } Memory_writebyte(hGTA, dwKillptr + 0x12F, int) if(ErrorLevel) { ErrorLevel := ERROR_WRITE_MEMORY return false } return true }
Сообщение отредактировал Ghost29 - Воскресенье, 12.03.2017, 13:36 |
|
|
|