[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018 - Страница 10 - Форум Cheat-Master.ru
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
[Разработка] 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, Воу, воу полегче biggrin
[CM]MurKotik Дата: Суббота, 04.03.2017, 23:01 | Сообщение # 140
Murkot Develop
Сообщений: 252
Статус: Offline
itraller, Добавил все - попотел хорошо - красава smile

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

Ушёл в себя, вернусь поздно и пьяный!
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
Поиск:
Статистика Форума