Информация Гайд [SAMP] Любой текст на экране в самп

Maxim1234

Известный
Автор темы
3
0
Приветствую, в этой теме расскажу про интересный инструмент для программирования в самп
Название сие чуду — DX9-Overlay-API.



Итак, DX9-Overlay-API — это инструмент, который позволяет рисовать текст, фигуры или изображения поверх игр, использующих DirectX 9
Возможностей с этим оверлеем тьма, например, уведомления в вашем скрипте или текст с информацией или вообще свой худ сделат

сурс - https://github.com/agrippa1994/DX9-Overlay-API
p.s. понадобится 1.1 ahk

Примеры
ivkYudO0bDE.jpg


Изменил код из стандартного примера что-бы работал лучше

код:
#NoEnv
#SingleInstance, force
#include ..\..\include\ahk\overlay.ahk

text_id := -1

process := "gta_sa.exe"

SetParam("process", process)
DestroyAllVisual()
text_id := TextCreate("Arial", 10, false, false, 10, 580, 0xFFFFFFFF, "Framerate: ", true, true)
if(text_id == -1)
{
    MsgBox, The overlay couldn't be created!
    ExitApp
}

Gui, Add, Text, x12 y20 w260 h20 vFramerate, %A_Space%
Gui, Show, w286 h64, Framerate

SetTimer, update, 10
return

GuiClose:
cleanOverlay()
ExitApp

update:
frames := GetFrameRate()
if(frames == -1)
{
    cleanOverlay()
    ExitApp
}

TextSetString(text_id, "FPS: {FFFF00}" . frames)
GuiControl, Text, Framerate, Framerate: %frames%
return

cleanOverlay()
{
    DestroyAllVisual()
}

Пример от моего товарища:
1740524734821.png

Пример с фиксацией людей из моего биндера:​

1740526191793.png

код:
#NoEnv
SendMode Input 
SetWorkingDir %A_ScriptDir%
#Include overlay.ahk
#Include udf.ahk 

playerInfoTextID := -1 
process := "gta_sa.exe"
SetParam("process", process)

playerInfoTextID := TextCreate("Verdana", 14, true, false, 10, 580, 0xFF00FF00, "Player Info: ", true, true)
if (playerInfoTextID == -1) {
    MsgBox, The overlay couldn't be created!
    ExitApp
}

UpdatePlayerInfoOverlay(name, id, lvl) {
    global playerInfoTextID
    playerInfo := "Player: " name " | ID: " id " | LVL: " lvl
    TextSetString(playerInfoTextID, playerInfo)
}

~f3:: ;фикс по ид
    SendMessage, 0x50,, 0x4190419,, A
    BlockChatInput()
    SendInput, {F6} Введите ID подозреваемого:{Space}
    Input, fid, V,{Enter}
    fname := GetPlayerNameById(fid)
    flvl := GetPlayerScoreById(fid)
    roz := WantedPlayer(fid)
    playerFraction := playerFraction(fid)
    Sleep, 100

    if (fid = "") or (fid = "-1") or (fid > 999) {
        AddChatMessage(tegg " Вы вписали неверный ID")
        UnBlockChatInput()
        return
    } else {
        IniWrite, %fname%, fics.ini, GPD, fnick
        IniWrite, %fid%, fics.ini, GPD, fnum
        IniWrite, %flvl%, fics.ini, GPD, fscore
        if (fname = "") or (fname = "-1") {
            AddChatMessage(tegg " Такого игрока нет в сети")
            IniWrite, -1, fics.ini, GPD, fnick
            IniWrite, -1, fics.ini, GPD, fnum
            IniWrite, -1, fics.ini, GPD, fscore
            return
        } else {
            AddChatMessage(tegg " Зафиксирован игрок {" playerFraction.color "} " fname " {FF0000} [" fid " ID] {FF0000}[" flvl " LVL] [Роз." roz "{FF0000}]")
            UpdatePlayerInfoOverlay(fname, fid, flvl)
        }
    }
    UnBlockChatInput()
return

GuiClose:
    DestroyAllVisual()
    ExitApp


f12::
    DestroyAllVisual()
    return
 
Последнее редактирование: