Jump to content

Recommended Posts


                  Author and editor of Ilnaz Isangulov                      

DxCreateDiagram                                                                                                                               Client-only function

Draws an diargam on the screen for a single frame. In order for the diagram to stay visible continuously, you need to call this function with the same parameters on each frame update (see onClientRender).


bool dxCreateDiagram (float N, float posX, float posY, float cleanWidth, int color = tocolor(255,255,255,255), float scaleXY = 1, bool postGUI = false)

Required Arguments

  • N: changing parameter, for example speed
  • posX: the absolute X coordinate of the top left corner of the image
  • posY: the absolute Y coordinate of the top left corner of the image
  • cleanWidth: the width at which it will be cleaned and updated

Optional Arguments

  • color: Tints the image with a value produced by tocolor or hexadecimal number in format: 0xAARRGGBB (RR = red, GG = green, BB = blue, AA = alpha).
  • postGUI: A bool representing whether the image should be drawn on top of or behind any ingame GUI (rendered by CEGUI).


Example of a pendulum swinging from the top of the screen, made using dxDrawImage.

local screenWidth,screenHeight = guiGetScreenSize()  -- Get screen resolution.

function renderDisplay ( )
	dxCreateDiagram ( math.random ( 0, 200 ), 0, screenHeight / , , tocolor ( 255, 0, 255, 255 ) , 1, false )
addEventHandler("onClientRender", root, renderDisplay)  -- Keep everything visible with onClientRender.

                  Author and editor of Ilnaz Isangulov                       

This is required in the code!  
local dataTable = {}
local zOld = 0

function dxCreateDiagram(N,x,y,cleanSize,color,size,gui)
    local _,h = guiGetScreenSize()
    local x = x or 0
    local y = y or h/2
    local N = N or 0
    local cleanSize = cleanSize or h/2
    local color = color or tocolor(255, 255, 255, 255)
    local size = size or 1
    local gui = gui or false
    local izmen = (N-zOld)

    table.insert( dataTable, izmen)

    for i, z in pairs(dataTable) do
        local x3 = dataTable[i+1] or 1
        local x2 = dataTable[i] or 1
        if i >= cleanSize then
            for f,_ in pairs(dataTable) do
                table.remove(dataTable, f)
         dxDrawLine(x+(i-1), y+1-x2, x+i, y+1-x3, color,size,gui)

                  Author and editor of Ilnaz Isangulov                       

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...