[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018 - Страница 27 - Форум Cheat-Master.ru
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018
LuntikElita Дата: Суббота, 10.02.2018, 19:42 | Сообщение # 391
Новичок
Сообщений: 1
Статус: Offline
Код
global ADDR_LPANGLE                         := 0xB7CD98      ;Player Angle
global ADDR_LPANGLE_OFFSET                  := 0x558         ;Player Angle

getPlayerAngle(ByRef pAngle) {
    dwaddressp := readDWORD(hGTA, ADDR_LPANGLE)
     if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return ""
    }
     pAngle := readFloat(hGTA, dwaddressp + ADDR_LPANGLE_OFFSET)
    if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return ""
    }


Использую этот код на airbreak, выдаёт какое то число от -1,5 до 1,5 (вроде так), которое отвечает за угол разворота локального персонажа, странно, но если подогнать к getPlayerAngle это вот так, то всё работает:
Код
myX := myX + 10*cos(myAngle + 1.70000)
    myY := myY + 10*sin(myAngle + 1.55000)

выдаёт координаты точки на 10 метров напротив тебя
попробуйте подлатать код, просто я не умею находить адреса.

Добавлено (10.02.2018, 19:42)
---------------------------------------------
И кстате, люди, которые шарят, вы не могли бы сделать функцию, чтобы типа когда локальный игрок падает, я делаю setPlayerFreeze(2), тогда анимация падения прекращалась и игрок был бы в стандартой анимации (когда просто стоит)

trenisk Дата: Пятница, 16.02.2018, 22:10 | Сообщение # 392
Любитель
Сообщений: 42
Статус: Offline
Привет! Тут такой вопрос, через Самп-удф можно узнать код операционной системы? Хочу сделать чтобы бинд работал только у определенных пацыков.
Rinat_Namazov Дата: Воскресенье, 18.02.2018, 00:59 | Сообщение # 393
Боец
Сообщений: 122
Статус: Offline
Цитата trenisk ()
код операционной системы

Не просветишь нас, что это ещё такое?
Цитата trenisk ()
через Самп-удф

Как самп и ОС вообще связаны?
Toopie Дата: Воскресенье, 18.02.2018, 10:08 | Сообщение # 394
Боец
Сообщений: 122
Статус: Offline
Rinat_Namazov, он про серийный номер.

лучший в мире самп сервер 185.159.129.71:7777 лидерки админки да
Rinat_Namazov Дата: Воскресенье, 18.02.2018, 21:15 | Сообщение # 395
Боец
Сообщений: 122
Статус: Offline
Цитата Toopie ()
Rinat_Namazov, он про серийный номер.

Это был сарказм.

Код

[code]
strComputer := "."
objWMIService := ComObjGet("winmgmts:{impersonationLevel=impersonate}!\\" . strComputer . "\root\cimv2")
colSettings := objWMIService.ExecQuery("Select * from Win32_OperatingSystem")._NewEnum
While colSettings[objOSItem]
{
    Key := objOSItem.SerialNumber
}

trenisk, Надеюсь разберешься в какой переменой ключ.
Toopie Дата: Понедельник, 19.02.2018, 22:00 | Сообщение # 396
Боец
Сообщений: 122
Статус: Offline
Rinat_Namazov, или кто-то просто решил набить пост.

лучший в мире самп сервер 185.159.129.71:7777 лидерки админки да
Fedy_GO Дата: Четверг, 22.02.2018, 17:51 | Сообщение # 397
Новичок
Сообщений: 7
Статус: Offline
getCoordinates() - не работает, всё время выдаёт пустое значение
Toopie Дата: Пятница, 23.02.2018, 18:38 | Сообщение # 398
Боец
Сообщений: 122
Статус: Offline
Fedy_GO, эта функция возвращает массив

лучший в мире самп сервер 185.159.129.71:7777 лидерки админки да
[CM]MurKotik Дата: Суббота, 03.03.2018, 19:29 | Сообщение # 399
Murkot Develop
Сообщений: 252
Статус: Offline
ROCK$TAR, Возможно не в той кодировк ахк поставили, нужно АНСИ. А ваще нужно больше деталей, тут ванги есть но они мало чем помогут

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

Ушёл в себя, вернусь поздно и пьяный!
Chikko_Five Дата: Суббота, 17.03.2018, 20:14 | Сообщение # 400
Новичок
Сообщений: 3
Статус: Offline
Как сделать кавычки в кавычках? Ну типа чтобы кавычки считались не частью команды, а выводимым символом.
Код
F2::
SendChat("Я никогда не пробовал работать в компании "Atlantic".")
Return
[CM]MurKotik Дата: Среда, 21.03.2018, 02:03 | Сообщение # 401
Murkot Develop
Сообщений: 252
Статус: Offline
Chikko_Five, две одинарные поставь '' azaza ''

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

Ушёл в себя, вернусь поздно и пьяный!
SGray Дата: Суббота, 24.03.2018, 01:33 | Сообщение # 402
Новичок
Сообщений: 14
Статус: Offline
Цитата Phoenixxx_Czar ()
!1:: ; бинд на alt + 1
check := isPlayerInStreamById(30)
if (check) ; Если функция выдала 1
    addChatMessage("Ид 30 находится в зоне стрима")
else if (!check) ; Если выдала 0
    addChatMessage("Ид 30 НЕ находится в зоне стрима")
return


помоги пж с /find advance делал столбы так

В строю сейчас:
Nick[ID] | В строю | AFK или не AFK

Не в строю сейчас:
Nick[ID] | Не в строю | AFK или не AFK
Gromar Дата: Понедельник, 26.03.2018, 17:56 | Сообщение # 403
Любитель
Сообщений: 33
Статус: Offline
Как сделать чтобы считывалась какая строка в диалоге была нажата?
nekpro Дата: Суббота, 31.03.2018, 14:49 | Сообщение # 404
Новичок
Сообщений: 15
Статус: Offline
[CM]MurKotik, ahk call to nonexistent function, Вот такая ошибка вылазит когда запускаю ахк. Что делать подскажи пожалуйста.
Dworkin Дата: Четверг, 05.04.2018, 17:47 | Сообщение # 405
Боец
Сообщений: 110
Статус: Offline
Решил поделиться.
Функции определяют только сам факт пересечения. Они не находят точки пересечения.
isIntersect_LineSegment_and_Circle(start1x,start1y,start2x,start2y, centerx, centery, radius) - факт пересечения отрезка и окружности. Если пересекает возвращает 1, если нет 0, если отрезок касается круга то выдает 0.
Думаю объяснять параметры не нужно и так понятно.
Код

isIntersect_LineSegment_and_Circle(start1x,start1y,start2x,start2y, centerx, centery, radius)
{
    x01 := start1x - centerx
    y01 := start1y - centery
    x02 := start2x - centerx
    y02 := start2y - centery

    dx := x02 - x01
    dy := y02 - y01

    a := dx*dx + dy*dy
    b := 2*(x01*dx + y01*dy)
    c := x01*x01 + y01*y01 - radius*radius

    if (-b<0)
  return (c<0)
    if (-b<(2*a))
  return (4*a*c-b*b<0)
    return (a+b+c<0)
}


isIntersect_2LineSegments(start1x, start1y, end1x, end1y, start2x, start2y, end2x, end2y) - факт пересечения двух отрезков. Если пересекаются возвращает 1, если нет 0, если один конец отрезка лежит на линии другого отрезка то возвращает 0.
Код
isIntersect_2LineSegments(start1x, start1y, end1x, end1y, start2x, start2y, end2x, end2y)
{
  dir1x := end1x - start1x
  dir1y := end1y - start1y
  dir2x := end2x - start2x
  dir2y := end2y - start2y

  ;считаем уравнения прямых проходящих через отрезки
        a1 := -dir1y
        b1 := +dir1x
        d1 := -(a1*start1x + b1*start1y)

        a2 := -dir2y
        b2 := +dir2x
        d2 := -(a2*start2x + b2*start2y)

        ;подставляем концы отрезков, для выяснения в каких полуплоскотях они
  seg1_line2_start := a2*start1x + b2*start1y + d2
        seg1_line2_end := a2*end1x + b2*end1y + d2

        seg2_line1_start := a1*start2x + b1*start2y + d1
        seg2_line1_end := a1*end2x + b1*end2y + d1

        ;если концы одного отрезка имеют один знак, значит он в одной полуплоскости и пересечения нет.
        if (seg1_line2_start * seg1_line2_end >= 0 || seg2_line1_start * seg2_line1_end >= 0)
            return false
  return true
}

Добавлено (05.04.2018, 17:47)
---------------------------------------------
isInAFKbyID(ID) - проверяет игрока на афк по иду. 1 - стоит в афк, 0 - не афк.

ТОЧНО РАБОТАЕТ В R1! В R2 не знаю!
При афк изменяются такие оффсеты как 462, 463, 464. Я выбрал один из них.

Код

isInAFKbyID(ID) {
if(!checkHandles())
return -1
dwAddress := readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET)
dwAddress := readDWORD(hGTA, dwAddress + SAMP_PPOOLS_OFFSET)
dwPlayers := readDWORD(hGTA, dwAddress + SAMP_PPOOL_PLAYER_OFFSET)
dwRemoteplayer := readDWORD(hGTA, dwPlayers+SAMP_PREMOTEPLAYER_OFFSET+ID*4) ;pRemotePlayer
dwRemoteplayerData := readDWORD(hGTA, dwRemoteplayer + 0x0) ;pPlayerData
isAFK := readDWORD(hGTA, dwRemoteplayerData + 462)
if (isAFK != 0)
return true
else
return false
}


Сообщение отредактировал Dworkin - Четверг, 05.04.2018, 17:47
Поиск:
Статистика Форума