[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018 - Страница 28 - Форум Cheat-Master.ru
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018
Dworkin Дата: Четверг, 05.04.2018, 17:47 | Сообщение # 406
Боец
Сообщений: 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
Ningaro Дата: Вторник, 17.04.2018, 21:02 | Сообщение # 407
Новичок
Сообщений: 7
Статус: Offline

Не работают переменные 5, 6, 7 строки, с чем это может быть связанно, и как это по фиксить?

UPDATE!
нашел решение тут же на форуме
Цитата [CM]MurKotik ()
Возможно не в той кодировк ахк поставили, нужно АНСИ

мне кажется, стоит это инфу закрепить!


Сообщение отредактировал Ningaro - Вторник, 17.04.2018, 21:06
Chikko_Five Дата: Суббота, 21.04.2018, 15:35 | Сообщение # 408
Новичок
Сообщений: 3
Статус: Offline
Цитата [CM]MurKotik ()
Chikko_Five, две одинарные поставь '' azaza ''

Мне нужно, чтобы в чат выводилось:
Я никогда не работал в компании "Atlantic".
А если я делаю так:
Код
SendChat("Я никогда не работал в компании "Atlantic".")

Мне при запуске скрипта пишет
The following variable name contains an illegal character:
"Atlintic""

Как сделать чтобы кавычки были выводимым текстом в SAMP, а не частью команды?
[BMW]Motorsports Дата: Суббота, 21.04.2018, 19:18 | Сообщение # 409
Бывалый
Сообщений: 394
Статус: Offline
Chikko_Five, ("azaza")

Telegram: @BMW_Motorsports
Chikko_Five Дата: Суббота, 28.04.2018, 14:22 | Сообщение # 410
Новичок
Сообщений: 3
Статус: Offline
Цитата [BMW ()
Motorsports;4502970]Chikko_Five, ("azaza")


Так что ли?

Код
SendChat("Я никогда не работал в компании ("Atlantic")")

Добавлено (28.04.2018, 14:22)
---------------------------------------------
Ещё я столкнулся с такой проблемой:

После перехода на версию SAMP R-2 у меня перестала работать функция getIdByPed()

Код
addChatMessage(getIdByPed(getTargetPed()))

После активации данной команды мне выводит в чат "-1", хотя по идее должно выводить ID игрока, на которого я нацелен.

При этом код ниже выводит мне нормальный PED игрока, на которого я нацелен
Код
addChatMessage(getTargetPed())


Сообщение отредактировал Chikko_Five - Суббота, 28.04.2018, 14:22
123dfggdfg Дата: Суббота, 28.04.2018, 21:27 | Сообщение # 411
Новичок
Сообщений: 3
Статус: Offline
Никто не задавался вопросом чтения 3d текста?
Мб подскажете адрес памяти где это хранится, если кто-то знает конечно)
Joni228 Дата: Суббота, 05.05.2018, 00:55 | Сообщение # 412
Бывалый
Сообщений: 314
Статус: Offline
Цитата Chikko_Five ()
Мне при запуске скрипта пишет
The following variable name contains an illegal character:
"Atlintic""
Как сделать чтобы кавычки были выводимым текстом в SAMP, а не частью команды?

SendChat("Я никогда не работал в компании \"Atlantic\".")

Добавлено (05.05.2018, 00:55)
---------------------------------------------

Цитата 123dfggdfg ()
Никто не задавался вопросом чтения 3d текста?
Мб подскажете адрес памяти где это хранится, если кто-то знает конечно)

3D текстов нету в GTA SA, есть GameText и TextDraw


CZAR Дата: Пятница, 11.05.2018, 03:13 | Сообщение # 413
Czar Of Scripts
Сообщений: 1373
Статус: Offline
Joni228, что ты творишь??
Chikko_Five, возвращайся обратно на R1
Chikko_Five, используй одинарные кавычки (''Текст'') - почти похоже, ну или же более запарнее: ""Atlantic""





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

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


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

Гарант 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
123dfggdfg Дата: Воскресенье, 13.05.2018, 21:11 | Сообщение # 414
Новичок
Сообщений: 3
Статус: Offline
Цитата Joni228 ()
3D текстов нету в GTA SA, есть GameText и TextDraw


Я про вот такой текст.
qweqrk Дата: Четверг, 17.05.2018, 11:33 | Сообщение # 415
Новичок
Сообщений: 10
Статус: Offline
Поставил новый UDF вот такая ошибка:
В самом ahk указал путь всё как надо #Include SAMP.ahk
Помогите как тогда поставить новый UDF ?
Прикрепления: 5629273.png (232.6 Kb) · 3310456.png (32.5 Kb)


qwe.

Сообщение отредактировал qweqrk - Четверг, 17.05.2018, 14:17
Toopie Дата: Четверг, 17.05.2018, 23:51 | Сообщение # 416
Боец
Сообщений: 122
Статус: Offline
qweqrk, в UDF нет функции getText()

лучший в мире самп сервер 185.159.129.71:7777 лидерки админки да
Mike_Cook Дата: Пятница, 25.05.2018, 16:39 | Сообщение # 417
Новичок
Сообщений: 14
Статус: Offline
Кто может написать этот ноп на ахк(



Сообщение отредактировал Mike_Cook - Пятница, 25.05.2018, 16:41
Benedict[CM] Дата: Суббота, 02.06.2018, 19:48 | Сообщение # 418
Боец
Сообщений: 132
Статус: Offline
Цитата [CM ()
MurKotik;3899679]06.12.2016 | New - getVehicleIdServer() | MrGPro

Не работает данная функция.
Вписывал в SAMP.ahk, под остальные. Использую самую новую вурсию UDF, что на GitHube.

Так же заинтересован в НОПе (Наверное, так называется) DisableOnFootData, для ухода в АФК и не "двиганья" у других во время того, как он включен.


Сообщение отредактировал Benedict[CM] - Суббота, 02.06.2018, 19:48
Drygok Дата: Четверг, 07.06.2018, 22:07 | Сообщение # 419
Любитель
Сообщений: 37
Статус: Offline
Не знаю, может кому понадобится. Скорость авто в режиме наблюдения.

Код
SpecSpeed() {
    if(!checkHandles())
        return -1
    dwAddr := readDWORD(hGTA, getModuleBaseAddress("gta_sa.exe", hGTA) + 0x76F3B8)
    
    fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
    fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
    fSpeedZ := readMem(hGTA, dwAddr + ADDR_VEHICLE_Z, 4, "float")
    
    fVehicleSpeed := ((sqrt((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ))) * 100) * 1.43

    return fVehicleSpeed
}
Kanris1488 Дата: Воскресенье, 10.06.2018, 22:44 | Сообщение # 420
Новичок
Сообщений: 15
Статус: Offline
кст, наверное в UDF можно добавить функцию SendMultibind:
Код
SendMultiBind(bind)
{
Loop, Parse, bind,`n,`r
{
if (RegExMatch(A_LoopField, "Sleep (\d+)", delay))
{
AddChatMessage("Включена задержка " Round(delay1 / 1000, 1) " секунд")
Sleep, %delay1%
}
else
{
SendChat(A_LoopField)
Sleep 2500
}
}
}

Где в строке "Sleep 2500" 2500 - задержка между строками.
Пример:
Код
"название бинда"=
(
/me ...
/do ...
123
)
и т.д

Использование:
SendMultiBind("название бинда")
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7210]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
doghunter30 [10:34]

bondarkovasyl [01:24]

DeTruXer [00:16]

NapoleonBonapart [23:46]

Dfgafgwdxz [18:04]

Dominikopon [18:00]

cheatjopa2 [11:58]

gabitovismaismaisma [09:18]

Gotham_ws [03:45]

раре [02:58]

Epiphonexmr [02:38]

ksuexe [01:35]

petrusenko_t [23:29]