[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018 - Страница 11 - Форум Cheat-Master.ru
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018
aknqkzxlcs_4 Дата: Воскресенье, 12.03.2017, 20:51 | Сообщение # 151
Любитель
Сообщений: 40
Статус: Offline
getKillStat() - возвращает киллстат в виде массива из 5 строк
в каждом массиве прячется еще один: [killer, victim, killerColor, victimColor, weapontype]
в первый параметр будет занесено состояние киллстата: включен(1) / выключен(0)

пример
Код
1::
    a := getKillStat() ; двумерный массив
    for k, v in a
    {
        ; v[1] - киллер, v[2] - убитый, v[3] - цвет киллера, v[4] - цвет убийцы, v[5] - тип убийства / ид оружия
        killerColor := SubStr(v[3], 5)
        victimColor := SubStr(v[4], 5)
        addChatMessageEx(0xffffff, "{" killerColor "}" v[1] " {ffffff}-> {" victimColor "}" v[2] " {ffffff}[weap: " v[5]"]")
    }
return

2::
    getKillStat(isEnabled)
    addChatMessageEx(0xffffff, "киллстат сейчас " (isEnabled ? "активен" : "выключен"))
return


func
Код
getKillStat(ByRef IsEnabled := "")
{
    if(!checkHandles())
        return false
    a := []
    klist := readDWORD(hGTA, dwSAMP + 0x21A0EC)
    isEnabled := readMem(hGTA, klist, 4, "int")
    klist += 4
    loop 5
    {
        szKiller := readString(hGTA, klist, 25)
        szVictim := readString(hGTA, (klist += 25), 25)
        clKillerColor := inttohex(readMem(hGTA, (klist += 25), 4, "uint"))
        clVictimColor := inttohex(readMem(hGTA, (klist += 4), 4, "uint"))
        byteType := Memory_ReadByte(hGTA, (klist += 4))
        klist++
        a.Insert([szKiller, szVictim, clKillerColor, clVictimColor, byteType])
    }
    return a
}


Добавлено (12.03.2017, 18:31)
---------------------------------------------
еще чуть-чуть
Код
setFireImmunity(state)
{
    if(!checkHandles())
        return
    writeMemory(hGTA, 0xB7CEE6, (state ? 1 : 0), 1, "byte")
}

setInfiniteRun(state)
{
    if(!checkHandles())
        return
    writeMemory(hGTA, 0xB7CEE4, (state ? 1 : 0), 1, "byte")
}

isMarkerSetup()
{
    if(!checkHandles())
        return -1
    return readMem(hGTA, 0xBA6774, 1, "byte")
}

global multVehicleSpeed_tick := 0
multVehicleSpeed(MultValue := 1.01, SleepTime := 10, MaxSpeedX := 2.0, MaxSpeedY := 2.0)
{
    if(multVehicleSpeed_tick + SleepTime > A_TickCount)
        return false
    multVehicleSpeed_tick := A_TickCount
    
    if(!checkHandles())
        return false
    if(!dwAddr := readDWORD(hGTA, ADDR_VEHICLE_PTR))
        return false
    
    if(!MultValue)
    {
        writeFloat(hGTA, dwAddr + ADDR_VEHICLE_X, 0.0)
        writeFloat(hGTA, dwAddr + ADDR_VEHICLE_Y, 0.0)
        return true
    }
    
    fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
    fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
    
    if(abs(fSpeedX) <= MaxSpeedX)
        writeFloat(hGTA, dwAddr + ADDR_VEHICLE_X, fSpeedX * MultValue)
    if(abs(fSpeedY) <= MaxSpeedY)
        writeFloat(hGTA, dwAddr + ADDR_VEHICLE_Y, fSpeedY * MultValue)
    
    return true
}


Добавлено (12.03.2017, 20:51)
---------------------------------------------
getLastDamagePed(playerid, weapon) ; возвращает ид игрока, который последний раз стрелял в вас и с какого оружия

пример
Код
death := false
Loop
{
    if(!getPlayerHealth() && !death)
    {
        death := true
        getLastDamagePed(playerid, weap)
        dist := getDist(getCoordinates(), getPlayerPosById(playerid))
        addChatMessageEx(0xdd0000, "Тебя убил " getPlayerNameById(playerid) " [" playerid "] с оружия " oWeaponNames[weap+1] " с расстояния " dist)
    }
    if(getPlayerHealth())
        death := false
}


Код
getLastDamagePed(ByRef Ped := "", ByRef Weapon := "")
{
    if(!checkHandles())
        return -1
    if(!CPed := readDWORD(hGTA, ADDR_CPED_PTR))
        return -1
    if(!dwPed := readDWORD(hGTA, CPed + 0x764))
        return -1
    Ped := getIdByPed(dwPed)
    Weapon := readMem(hGTA, CPed + 0x760, 4, "int")
    return Ped
}


Сообщение отредактировал aknqkzxlcs_4 - Понедельник, 13.03.2017, 10:39
[CM]MurKotik Дата: Понедельник, 13.03.2017, 18:39 | Сообщение # 152
Murkot Develop
Сообщений: 252
Статус: Offline
Усё добавил )

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

Ушёл в себя, вернусь поздно и пьяный!
ProgMaster90 Дата: Вторник, 14.03.2017, 07:21 | Сообщение # 153
Новичок
Сообщений: 2
Статус: Offline
всем привет!
имеется адрес:
0xb6f980 cvehicle
+0x4a8 статус бомбы (byte)

как правильно записать значение 5? пробовал методом замены в уже имеющихся функциях, не дало результатов, только зависание игры. короче работа с памятью пока для меня в недосягаемости.

проводил эксперименты с cheat engine, и в ручную изменял значение. значение 5 устанавливает бомбу на машину, которая взрывается при зажигании двигателя. хорошее средство от угона личного автомобиля
aknqkzxlcs_4 Дата: Вторник, 14.03.2017, 16:14 | Сообщение # 154
Любитель
Сообщений: 40
Статус: Offline
Цитата ProgMaster90 ()
хорошее средство от угона личного автомобиля

лол, только если в сингле
ProgMaster90 Дата: Среда, 15.03.2017, 13:06 | Сообщение # 155
Новичок
Сообщений: 2
Статус: Offline
Цитата aknqkzxlcs_4 ()
лол, только если в сингле

пожалуй да, уже проверил
aknqkzxlcs_4 Дата: Четверг, 16.03.2017, 22:24 | Сообщение # 156
Любитель
Сообщений: 40
Статус: Offline
исправлены getVehicleLightState (+ById&ByPed, только не пиши об этом плес в топике, зафлудишь всё)
теперь состояние фар всегда отображается корректно (но это не точно)

Код
getVehicleLightState() {
    if(!checkHandles())
        return -1
    
    dwAddr := readDWORD(hGTA, ADDR_VEHICLE_PTR)
    if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return -1
    }
    
    if(!dwAddr)
        return -1
    
    dwVal := readMem(hGTA, dwAddr + ADDR_VEHICLE_LIGHTSTATE, 1, "byte")
    if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return -1
    }
    
    ErrorLevel := ERROR_OK
    return (dwVal>0)
}

getTargetVehicleLightStateByPed(dwPED) {
    if(!checkHandles())
        return -1
    
    dwAddr := getVehiclePointerByPed(dwPED)
    
    if(!dwAddr)
        return -1
    
    dwVal := readMem(hGTA, dwAddr + ADDR_VEHICLE_LIGHTSTATE, 1, "byte")
    if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return -1
    }
    
    ErrorLevel := ERROR_OK
    return (dwVal>0)
}

getTargetVehicleLightStateById(dwId) {
    if(!checkHandles())
        return -1
    
    dwAddr := getVehiclePointerById(dwId)
    
    if(!dwAddr)
        return -1
    
    dwVal := readMem(hGTA, dwAddr + ADDR_VEHICLE_LIGHTSTATE, 1, "byte")
    if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return -1
    }
    
    ErrorLevel := ERROR_OK
    return (dwVal>0)
}


Добавлено (16.03.2017, 22:24)
---------------------------------------------
getVehicleMaxPassengers() - максимальное количество пассажирских мест в текущем транспорте
getVehiclePassenger(место) - возвращает CPed pointer пассажира/водителя
getVehiclePassengerId(место) - возвращает id пассажира/водителя
места: 0 водительское, 1-8 пассажирские

Код
getVehicleMaxPassengers()
{
    if(!checkHandles())
        return -1
    if(!CVeh := readDWORD(hGTA, ADDR_VEHICLE_PTR))
        return -1
    return readMem(hGTA, CVeh + 0x488, 1, "byte")
}

getVehiclePassenger(place)
{
    ; возвращает указатель на игрока
    ; 0 - водитель, от 1 до 8 - пассажирские места
    if(!checkHandles())
        return -1
    if(!CVeh := readDWORD(hGTA, ADDR_VEHICLE_PTR))
        return -1
    return readDWORD(hGTA, CVeh + 0x460 + (place * 4))
}

getVehiclePassengerId(place)
{
    CPed := getVehiclePassenger(place)
    return getIdByPed(CPed)
}


Сообщение отредактировал aknqkzxlcs_4 - Пятница, 17.03.2017, 17:29
ktp3000 Дата: Суббота, 18.03.2017, 18:08 | Сообщение # 157
Новичок
Сообщений: 1
Статус: Offline
Возможно ли реализовать данную pawn функцию GetPlayerTargetPlayer?

Prive
CZAR Дата: Суббота, 18.03.2017, 18:18 | Сообщение # 158
Czar Of Scripts
Сообщений: 1373
Статус: Offline
ktp3000, На ахк уже есть такая функция или тебе нужно на pawno ее?




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

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


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

Гарант 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
slavawar Дата: Суббота, 18.03.2017, 20:33 | Сообщение # 159
Проверенный
Сообщений: 172
Статус: Offline
ktp3000
Код
getTargetPed() {
    if(!checkHandles())
        return 0
    
    dwAddress := readDWORD(hGTA, 0xB6F3B8)
    if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return 0
    }
    if(!dwAddress)
  return 0
  
    dwAddress := readDWORD(hGTA, dwAddress+0x79C)
    if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return 0
    }
    
    ErrorLevel := ERROR_OK
    return dwAddress
}


Мои темы:
[AHK] Шифратор текста
[AHK] Акцент 3 в 1
[C#] Генератор RP ников
Richard_Montgomery Дата: Вторник, 21.03.2017, 09:04 | Сообщение # 160
Боец
Сообщений: 287
Статус: Offline
Уважаемые разрабочики SAMP UDF.

Пожалуйста найдите обход для SA-MP Addon
Дело в том, что не давно он был обновлен и там улучшили какой то "АЧ"... Я в этом не разбираюсь, но это сказал разработчик. До этого обновление SAMP UDF работал замечательно и все скрипты. Найдите способ обхода и чтобы все скрипт работали.... Вот например есть скрипт, который просто должен показывать в чате текст. Если текст высветился, то скрипт работает и UDF подключен, а сейчас не высвечивается.
aknqkzxlcs_4 Дата: Вторник, 21.03.2017, 12:06 | Сообщение # 161
Любитель
Сообщений: 40
Статус: Offline
Цитата Richard_Montgomery ()
Пожалуйста найдите обход для SA-MP Addon
Дело в том, что не давно он был обновлен и там улучшили какой то "АЧ"... Я в этом не разбираюсь, но это сказал разработчик. До этого обновление SAMP UDF работал замечательно и все скрипты. Найдите способ обхода и чтобы все скрипт работали.... Вот например есть скрипт, который просто должен показывать в чате текст. Если текст высветился, то скрипт работает и UDF подключен, а сейчас не высвечивается.

https://yadi.sk/d/GZd54_Id3FtFf8
Это Process Hacker. Открываешь его, двойным щелчком тыкаешь по gta_sa.exe, во вкладке General давишь на Permissions, отмечаешь разрешенным "Full control" и сохраняешь
только после этого запускать скрипт (либо перезапустить, если запущен)
скрипт придется запустить от имени админа, иначе не будет работать

// игра должна быть запущена


Сообщение отредактировал aknqkzxlcs_4 - Вторник, 21.03.2017, 12:07
Richard_Montgomery Дата: Вторник, 21.03.2017, 12:15 | Сообщение # 162
Боец
Сообщений: 287
Статус: Offline
Цитата aknqkzxlcs_4 ()
https://yadi.sk/d/GZd54_Id3FtFf8
Это Process Hacker. Открываешь его, двойным щелчком тыкаешь по gta_sa.exe, во вкладке General давишь на Permissions, отмечаешь разрешенным "Full control" и сохраняешь
только после этого запускать скрипт (либо перезапустить, если запущен)
скрипт придется запустить от имени админа, иначе не будет работать


Этот способ работает, но когда это всё сделал по твоей инструкцией, то GTA вылетает.
aknqkzxlcs_4 Дата: Вторник, 21.03.2017, 13:52 | Сообщение # 163
Любитель
Сообщений: 40
Статус: Offline
Цитата Richard_Montgomery ()
Этот способ работает, но когда это всё сделал по твоей инструкцией, то GTA вылетает.

так работает или вылетает? почему у нас работает, а у тебя нет?


Сообщение отредактировал aknqkzxlcs_4 - Вторник, 21.03.2017, 13:59
Richard_Montgomery Дата: Вторник, 21.03.2017, 22:29 | Сообщение # 164
Боец
Сообщений: 287
Статус: Offline
Цитата aknqkzxlcs_4 ()
так работает или вылетает? почему у нас работает, а у тебя нет?


Всё одновременно. Вот я всё сделал запускаю. ALT+1 нажимаю высветился текст и через 1-3 секунд вылетает.

P.S. Есть ли способ более легкий + автоматическое сохранение.
Godarck Дата: Среда, 22.03.2017, 01:28 | Сообщение # 165
AHK Скриптер
Сообщений: 252
Статус: Offline
Цитата aknqkzxlcs_4 ()
getLastDamagePed(playerid, weapon) ; возвращает ид игрока, который последний раз стрелял в вас и с какого оружия

пример
Код
death := false
Loop
{
if(!getPlayerHealth() && !death)
{
death := true
getLastDamagePed(playerid, weap)
dist := getDist(getCoordinates(), getPlayerPosById(playerid))
addChatMessageEx(0xdd0000, "Тебя убил " getPlayerNameById(playerid) " [" playerid "] с оружия " oWeaponNames[weap+1] " с расстояния " dist)
}
if(getPlayerHealth())
death := false
}

Код
getLastDamagePed(ByRef Ped := "", ByRef Weapon := "")
{
if(!checkHandles())
return -1
if(!CPed := readDWORD(hGTA, ADDR_CPED_PTR))
return -1
if(!dwPed := readDWORD(hGTA, CPed + 0x764))
return -1
Ped := getIdByPed(dwPed)
Weapon := readMem(hGTA, CPed + 0x760, 4, "int")
return Ped
}


У меня -1 выдает строка
if(!dwPed := readDWORD(hGTA, CPed + 0x764))
return -1
То бишь значение dwPed всегда равно 0. В чем может быть причина?

А Weapon := readMem(hGTA, CPed + 0x760, 4, "int")
всегда выдает 255


Бесплатный и новый бот рыбалки для GTA V RP
GunList для GTA V RP - писать в ЛС
Fake Time для GTA V RP


Сообщение отредактировал Godarck - Среда, 22.03.2017, 02:28
Поиск:
Статистика Форума